diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml index dae59730378..655502c55e7 100644 --- a/.pre-commit-config.yaml +++ b/.pre-commit-config.yaml @@ -19,5 +19,5 @@ repos: args: [ '--ignore-words-list', - 'crate,ninjs,ans,specif,seh,specifid,deriver,isnt,tye,forin,dependees,rouge,interm,fo,wast,nome,statics,ue,aack,gost,inout,provId,handels,bu,testng,ags,edn,aks,te,decorder,provid,branche,alse,nd,mape,wil,clude,wit,flate,omlet,THIRDPARTY,NotIn,notIn', + 'crate,ninjs,ans,specif,seh,specifid,deriver,isnt,tye,forin,dependees,rouge,interm,fo,wast,nome,statics,ue,aack,gost,inout,provId,handels,bu,testng,ags,edn,aks,te,decorder,provid,branche,alse,nd,mape,wil,clude,wit,flate,omlet,THIRDPARTY,NotIn,notIn,CopyIn', ] diff --git a/src/api/json/catalog.json b/src/api/json/catalog.json index 0155604f539..b583cc7679a 100644 --- a/src/api/json/catalog.json +++ b/src/api/json/catalog.json @@ -2921,6 +2921,15 @@ "fileMatch": ["kimmdy.yml", "kimmdy.yaml"], "url": "https://raw.githubusercontent.com/graeter-group/kimmdy/main/src/kimmdy/kimmdy-yaml-schema.json" }, + { + "name": "Kestra flow file", + "description": "Kestra Flow definition file, see: kestra.io/docs/workflow-components/flow#flow-sample", + "fileMatch": ["**/flows/*.yml"], + "url": "https://json.schemastore.org/kestra-0.18.json", + "versions": { + "0.18": "https://json.schemastore.org/kestra-0.18.json" + } + }, { "name": "KrakenD", "description": "KrakenD API Gateway configuration file", diff --git a/src/schema-validation.jsonc b/src/schema-validation.jsonc index 4e01b1f0355..7e90eb6d8c9 100644 --- a/src/schema-validation.jsonc +++ b/src/schema-validation.jsonc @@ -112,6 +112,7 @@ "json-api-1.0.json", "json-patch.json", "jsone.json", + "kestra-0.18.json", "kong_json_schema.json", "kustomization.json", "label-commenter-config.json", @@ -707,6 +708,14 @@ "allowTrailingCommas" ] }, + "kestra-0.18.json": { + "unknownKeywords": [ + "markdownDescription", + "$deprecated", + "$dynamic", + "$metrics" + ] + }, "launchsettings.json": { "unknownKeywords": ["allowTrailingCommas"] }, diff --git a/src/schemas/json/kestra-0.18.json b/src/schemas/json/kestra-0.18.json new file mode 100644 index 00000000000..296daba2740 --- /dev/null +++ b/src/schemas/json/kestra-0.18.json @@ -0,0 +1,216026 @@ +{ + "$schema": "http://json-schema.org/draft-07/schema#", + "$id": "https://json.schemastore.org/kestra-0.18.json", + "$ref": "#/definitions/io.kestra.core.models.flows.Flow", + "definitions": { + "com.fasterxml.jackson.databind.JsonNode": { + "type": "object" + }, + "com.google.cloud.bigquery.EncryptionConfiguration": { + "type": "object", + "properties": { + "kmsKeyName": { + "type": "string" + } + } + }, + "com.google.cloud.bigquery.StandardTableDefinition-StreamingBuffer": { + "type": "object", + "properties": { + "estimatedBytes": { + "type": "integer" + }, + "estimatedRows": { + "type": "integer" + }, + "oldestEntryTime": { + "type": "integer" + } + } + }, + "com.google.cloud.storage.Cors-Origin": { + "type": "object", + "properties": { + "value": { + "type": "string" + } + } + }, + "com.surrealdb.connection.SurrealConnection": { + "type": "object" + }, + "com.theokanning.openai.completion.chat.ChatFunctionCall": { + "type": "object", + "properties": { + "arguments": { + "$ref": "#/definitions/com.fasterxml.jackson.databind.JsonNode" + }, + "name": { + "type": "string" + } + } + }, + "com.theokanning.openai.completion.chat.ChatMessage": { + "type": "object", + "properties": { + "content": { + "type": "string" + }, + "function_call": { + "$ref": "#/definitions/com.theokanning.openai.completion.chat.ChatFunctionCall" + }, + "name": { + "type": "string" + }, + "role": { + "type": "string" + } + } + }, + "com.unboundid.ldap.sdk.SearchScope": { + "type": "object", + "properties": { + "name": { + "type": "string" + } + } + }, + "io.kestra.core.models.Label": { + "type": "object", + "properties": { + "key": { + "type": "string" + }, + "value": { + "type": "string" + } + }, + "required": ["key", "value"] + }, + "io.kestra.core.models.conditions.Condition": { + "oneOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.DateTimeBetweenCondition" + }, + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.DayWeekCondition" + }, + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.DayWeekInMonthCondition" + }, + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.ExecutionFlowCondition" + }, + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.ExecutionLabelsCondition" + }, + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.ExecutionNamespaceCondition" + }, + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.ExecutionOutputsCondition" + }, + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.ExecutionStatusCondition" + }, + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.ExpressionCondition" + }, + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.FlowCondition" + }, + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.FlowNamespaceCondition" + }, + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.HasRetryAttemptCondition" + }, + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.MultipleCondition" + }, + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.NotCondition" + }, + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.OrCondition" + }, + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.PublicHolidayCondition" + }, + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.TimeBetweenCondition" + }, + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.WeekendCondition" + } + ] + }, + "io.kestra.core.models.executions.statistics.Flow": { + "type": "object", + "properties": { + "flowId": { + "type": "string" + }, + "namespace": { + "type": "string" + } + }, + "required": ["flowId", "namespace"] + }, + "io.kestra.core.models.flows.Concurrency": { + "type": "object", + "properties": { + "behavior": { + "type": "string", + "enum": ["QUEUE", "CANCEL", "FAIL"], + "default": "QUEUE", + "markdownDescription": "Default value is : `QUEUE`" + }, + "limit": { + "type": "integer", + "exclusiveMinimum": 0 + } + }, + "required": ["limit"] + }, + "io.kestra.core.models.flows.Flow": { + "type": "object", + "properties": { + "concurrency": { + "$ref": "#/definitions/io.kestra.core.models.flows.Concurrency" + }, + "deleted": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "description": { + "type": "string" + }, + "disabled": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "errors": { + "type": "array", + "items": { + "oneOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.debug.Echo" + }, + { + "$ref": "#/definitions/io.kestra.plugin.core.debug.Return" + }, + { + "$ref": "#/definitions/io.kestra.plugin.core.execution.Count" + }, + { + "$ref": "#/definitions/io.kestra.plugin.core.execution.Fail" + }, + { + "$ref": "#/definitions/io.kestra.plugin.core.execution.Labels" + }, + { + "$ref": "#/definitions/io.kestra.plugin.core.execution.PurgeExecutions" + }, + { + "$ref": "#/definitions/io.kestra.plugin.core.execution.Resume" + }, + { + "$ref": "#/definitions/io.kestra.plugin.core.flow.AllowFailure" + }, + { + "$ref": "#/definitions/io.kestra.plugin.core.flow.Dag" + }, + { + "$ref": "#/definitions/io.kestra.plugin.core.flow.EachParallel" + }, + { + "$ref": "#/definitions/io.kestra.plugin.core.flow.EachSequential" + }, + { + "$ref": "#/definitions/io.kestra.plugin.core.flow.ForEach" + }, + { + "$ref": "#/definitions/io.kestra.plugin.core.flow.ForEachItem" + }, + { + "$ref": "#/definitions/io.kestra.plugin.core.flow.If" + }, + { + "$ref": "#/definitions/io.kestra.plugin.core.flow.Parallel" + }, + { + "$ref": "#/definitions/io.kestra.plugin.core.flow.Pause" + }, + { + "$ref": "#/definitions/io.kestra.plugin.core.flow.Sequential" + }, + { + "$ref": "#/definitions/io.kestra.plugin.core.flow.Subflow" + }, + { + "$ref": "#/definitions/io.kestra.plugin.core.flow.Switch" + }, + { + "$ref": "#/definitions/io.kestra.plugin.core.flow.Template" + }, + { + "$ref": "#/definitions/io.kestra.plugin.core.flow.WaitFor" + }, + { + "$ref": "#/definitions/io.kestra.plugin.core.flow.WorkingDirectory" + }, + { + "$ref": "#/definitions/io.kestra.plugin.core.http.Download" + }, + { + "$ref": "#/definitions/io.kestra.plugin.core.http.Request" + }, + { + "$ref": "#/definitions/io.kestra.plugin.core.kv.Delete" + }, + { + "$ref": "#/definitions/io.kestra.plugin.core.kv.Get" + }, + { + "$ref": "#/definitions/io.kestra.plugin.core.kv.GetKeys" + }, + { + "$ref": "#/definitions/io.kestra.plugin.core.kv.Set" + }, + { + "$ref": "#/definitions/io.kestra.plugin.core.log.Fetch" + }, + { + "$ref": "#/definitions/io.kestra.plugin.core.log.Log" + }, + { + "$ref": "#/definitions/io.kestra.plugin.core.log.PurgeLogs" + }, + { + "$ref": "#/definitions/io.kestra.plugin.core.namespace.DeleteFiles" + }, + { + "$ref": "#/definitions/io.kestra.plugin.core.namespace.DownloadFiles" + }, + { + "$ref": "#/definitions/io.kestra.plugin.core.namespace.UploadFiles" + }, + { + "$ref": "#/definitions/io.kestra.plugin.core.output.OutputValues" + }, + { + "$ref": "#/definitions/io.kestra.plugin.core.state.Delete" + }, + { + "$ref": "#/definitions/io.kestra.plugin.core.state.Get" + }, + { + "$ref": "#/definitions/io.kestra.plugin.core.state.Set" + }, + { + "$ref": "#/definitions/io.kestra.plugin.core.storage.Concat" + }, + { + "$ref": "#/definitions/io.kestra.plugin.core.storage.DeduplicateItems" + }, + { + "$ref": "#/definitions/io.kestra.plugin.core.storage.Delete" + }, + { + "$ref": "#/definitions/io.kestra.plugin.core.storage.FilterItems" + }, + { + "$ref": "#/definitions/io.kestra.plugin.core.storage.LocalFiles" + }, + { + "$ref": "#/definitions/io.kestra.plugin.core.storage.PurgeCurrentExecutionFiles" + }, + { + "$ref": "#/definitions/io.kestra.plugin.core.storage.Reverse" + }, + { + "$ref": "#/definitions/io.kestra.plugin.core.storage.Size" + }, + { + "$ref": "#/definitions/io.kestra.plugin.core.storage.Split" + }, + { + "$ref": "#/definitions/io.kestra.plugin.core.templating.TemplatedTask" + }, + { + "$ref": "#/definitions/io.kestra.plugin.core.trigger.Toggle" + }, + { + "$ref": "#/definitions/io.kestra.plugin.hightouch.Sync" + }, + { + "$ref": "#/definitions/io.kestra.plugin.github.code.Search" + }, + { + "$ref": "#/definitions/io.kestra.plugin.github.commits.Search" + }, + { + "$ref": "#/definitions/io.kestra.plugin.github.issues.Comment" + }, + { + "$ref": "#/definitions/io.kestra.plugin.github.issues.Create" + }, + { + "$ref": "#/definitions/io.kestra.plugin.github.issues.Search" + }, + { + "$ref": "#/definitions/io.kestra.plugin.github.pulls.Create" + }, + { + "$ref": "#/definitions/io.kestra.plugin.github.pulls.Search" + }, + { + "$ref": "#/definitions/io.kestra.plugin.github.repositories.Search" + }, + { + "$ref": "#/definitions/io.kestra.plugin.github.topics.Search" + }, + { + "$ref": "#/definitions/io.kestra.plugin.github.users.Search" + }, + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.druid.Query" + }, + { + "$ref": "#/definitions/io.kestra.plugin.weaviate.BatchCreate" + }, + { + "$ref": "#/definitions/io.kestra.plugin.weaviate.Delete" + }, + { + "$ref": "#/definitions/io.kestra.plugin.weaviate.Query" + }, + { + "$ref": "#/definitions/io.kestra.plugin.weaviate.SchemaCreate" + }, + { + "$ref": "#/definitions/io.kestra.plugin.spark.JarSubmit" + }, + { + "$ref": "#/definitions/io.kestra.plugin.spark.PythonSubmit" + }, + { + "$ref": "#/definitions/io.kestra.plugin.spark.RSubmit" + }, + { + "$ref": "#/definitions/io.kestra.plugin.spark.SparkCLI" + }, + { + "$ref": "#/definitions/io.kestra.plugin.gcp.auth.OauthAccessToken" + }, + { + "$ref": "#/definitions/io.kestra.plugin.gcp.bigquery.Copy" + }, + { + "$ref": "#/definitions/io.kestra.plugin.gcp.bigquery.CopyPartitions" + }, + { + "$ref": "#/definitions/io.kestra.plugin.gcp.bigquery.CreateDataset" + }, + { + "$ref": "#/definitions/io.kestra.plugin.gcp.bigquery.CreateTable" + }, + { + "$ref": "#/definitions/io.kestra.plugin.gcp.bigquery.DeleteDataset" + }, + { + "$ref": "#/definitions/io.kestra.plugin.gcp.bigquery.DeletePartitions" + }, + { + "$ref": "#/definitions/io.kestra.plugin.gcp.bigquery.DeleteTable" + }, + { + "$ref": "#/definitions/io.kestra.plugin.gcp.bigquery.ExtractToGcs" + }, + { + "$ref": "#/definitions/io.kestra.plugin.gcp.bigquery.Load" + }, + { + "$ref": "#/definitions/io.kestra.plugin.gcp.bigquery.LoadFromGcs" + }, + { + "$ref": "#/definitions/io.kestra.plugin.gcp.bigquery.Query" + }, + { + "$ref": "#/definitions/io.kestra.plugin.gcp.bigquery.StorageWrite" + }, + { + "$ref": "#/definitions/io.kestra.plugin.gcp.bigquery.TableMetadata" + }, + { + "$ref": "#/definitions/io.kestra.plugin.gcp.bigquery.UpdateDataset" + }, + { + "$ref": "#/definitions/io.kestra.plugin.gcp.bigquery.UpdateTable" + }, + { + "$ref": "#/definitions/io.kestra.plugin.gcp.cli.GCloudCLI" + }, + { + "$ref": "#/definitions/io.kestra.plugin.gcp.dataproc.batches.PySparkSubmit" + }, + { + "$ref": "#/definitions/io.kestra.plugin.gcp.dataproc.batches.RSparkSubmit" + }, + { + "$ref": "#/definitions/io.kestra.plugin.gcp.dataproc.batches.SparkSqlSubmit" + }, + { + "$ref": "#/definitions/io.kestra.plugin.gcp.dataproc.batches.SparkSubmit" + }, + { + "$ref": "#/definitions/io.kestra.plugin.gcp.firestore.Delete" + }, + { + "$ref": "#/definitions/io.kestra.plugin.gcp.firestore.Get" + }, + { + "$ref": "#/definitions/io.kestra.plugin.gcp.firestore.Query" + }, + { + "$ref": "#/definitions/io.kestra.plugin.gcp.firestore.Set" + }, + { + "$ref": "#/definitions/io.kestra.plugin.gcp.gcs.Compose" + }, + { + "$ref": "#/definitions/io.kestra.plugin.gcp.gcs.Copy" + }, + { + "$ref": "#/definitions/io.kestra.plugin.gcp.gcs.CreateBucket" + }, + { + "$ref": "#/definitions/io.kestra.plugin.gcp.gcs.CreateBucketIamPolicy" + }, + { + "$ref": "#/definitions/io.kestra.plugin.gcp.gcs.Delete" + }, + { + "$ref": "#/definitions/io.kestra.plugin.gcp.gcs.DeleteBucket" + }, + { + "$ref": "#/definitions/io.kestra.plugin.gcp.gcs.DeleteList" + }, + { + "$ref": "#/definitions/io.kestra.plugin.gcp.gcs.Download" + }, + { + "$ref": "#/definitions/io.kestra.plugin.gcp.gcs.Downloads" + }, + { + "$ref": "#/definitions/io.kestra.plugin.gcp.gcs.List" + }, + { + "$ref": "#/definitions/io.kestra.plugin.gcp.gcs.UpdateBucket" + }, + { + "$ref": "#/definitions/io.kestra.plugin.gcp.gcs.Upload" + }, + { + "$ref": "#/definitions/io.kestra.plugin.gcp.gke.ClusterMetadata" + }, + { + "$ref": "#/definitions/io.kestra.plugin.gcp.pubsub.Consume" + }, + { + "$ref": "#/definitions/io.kestra.plugin.gcp.pubsub.Publish" + }, + { + "$ref": "#/definitions/io.kestra.plugin.gcp.vertexai.ChatCompletion" + }, + { + "$ref": "#/definitions/io.kestra.plugin.gcp.vertexai.CustomJob" + }, + { + "$ref": "#/definitions/io.kestra.plugin.gcp.vertexai.MultimodalCompletion" + }, + { + "$ref": "#/definitions/io.kestra.plugin.gcp.vertexai.TextCompletion" + }, + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.db2.Query" + }, + { + "$ref": "#/definitions/io.kestra.plugin.minio.Copy" + }, + { + "$ref": "#/definitions/io.kestra.plugin.minio.CreateBucket" + }, + { + "$ref": "#/definitions/io.kestra.plugin.minio.Delete" + }, + { + "$ref": "#/definitions/io.kestra.plugin.minio.DeleteList" + }, + { + "$ref": "#/definitions/io.kestra.plugin.minio.Download" + }, + { + "$ref": "#/definitions/io.kestra.plugin.minio.Downloads" + }, + { + "$ref": "#/definitions/io.kestra.plugin.minio.List" + }, + { + "$ref": "#/definitions/io.kestra.plugin.minio.Upload" + }, + { + "$ref": "#/definitions/io.kestra.plugin.soda.Scan" + }, + { + "$ref": "#/definitions/io.kestra.plugin.modal.cli.ModalCLI" + }, + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.rockset.Query" + }, + { + "$ref": "#/definitions/io.kestra.plugin.scripts.nashorn.Eval" + }, + { + "$ref": "#/definitions/io.kestra.plugin.scripts.nashorn.FileTransform" + }, + { + "$ref": "#/definitions/io.kestra.plugin.scripts.ruby.Commands" + }, + { + "$ref": "#/definitions/io.kestra.plugin.scripts.ruby.Script" + }, + { + "$ref": "#/definitions/io.kestra.plugin.mongodb.Bulk" + }, + { + "$ref": "#/definitions/io.kestra.plugin.mongodb.Delete" + }, + { + "$ref": "#/definitions/io.kestra.plugin.mongodb.Find" + }, + { + "$ref": "#/definitions/io.kestra.plugin.mongodb.InsertOne" + }, + { + "$ref": "#/definitions/io.kestra.plugin.mongodb.Load" + }, + { + "$ref": "#/definitions/io.kestra.plugin.mongodb.Update" + }, + { + "$ref": "#/definitions/io.kestra.plugin.debezium.postgres.Capture" + }, + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.BigQuery" + }, + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.BingAds" + }, + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.ChargeBee" + }, + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.ExchangeRateHost" + }, + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.FacebookAds" + }, + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.Fastly" + }, + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.GenericTap" + }, + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.GitHub" + }, + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.Gitlab" + }, + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.GoogleAdwords" + }, + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.GoogleAnalytics" + }, + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.GoogleSearchConsole" + }, + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.HubSpot" + }, + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.Marketo" + }, + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.Netsuite" + }, + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.PipelinewiseMongoDb" + }, + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.PipelinewiseMysql" + }, + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.PipelinewiseOracle" + }, + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.PipelinewisePostgres" + }, + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.PipelinewiseSqlServer" + }, + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.Quickbooks" + }, + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.Recharge" + }, + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.SageIntacct" + }, + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.Salesforce" + }, + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.Shopify" + }, + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.Slack" + }, + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.Stripe" + }, + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.Zendesk" + }, + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.Zoom" + }, + { + "$ref": "#/definitions/io.kestra.plugin.singer.targets.AdswerveBigQuery" + }, + { + "$ref": "#/definitions/io.kestra.plugin.singer.targets.Csv" + }, + { + "$ref": "#/definitions/io.kestra.plugin.singer.targets.DatamillCoPostgres" + }, + { + "$ref": "#/definitions/io.kestra.plugin.singer.targets.GenericTarget" + }, + { + "$ref": "#/definitions/io.kestra.plugin.singer.targets.Json" + }, + { + "$ref": "#/definitions/io.kestra.plugin.singer.targets.MeltanoSnowflake" + }, + { + "$ref": "#/definitions/io.kestra.plugin.singer.targets.Oracle" + }, + { + "$ref": "#/definitions/io.kestra.plugin.singer.targets.PipelinewisePostgres" + }, + { + "$ref": "#/definitions/io.kestra.plugin.singer.targets.PipelinewiseRedshift" + }, + { + "$ref": "#/definitions/io.kestra.plugin.singer.targets.PipelinewiseSnowflake" + }, + { + "$ref": "#/definitions/io.kestra.plugin.singer.targets.SqlServer" + }, + { + "$ref": "#/definitions/io.kestra.plugin.scripts.julia.Commands" + }, + { + "$ref": "#/definitions/io.kestra.plugin.scripts.julia.Script" + }, + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.trino.Query" + }, + { + "$ref": "#/definitions/io.kestra.plugin.compress.ArchiveCompress" + }, + { + "$ref": "#/definitions/io.kestra.plugin.compress.ArchiveDecompress" + }, + { + "$ref": "#/definitions/io.kestra.plugin.compress.FileCompress" + }, + { + "$ref": "#/definitions/io.kestra.plugin.compress.FileDecompress" + }, + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.duckdb.Query" + }, + { + "$ref": "#/definitions/io.kestra.plugin.dataform.cli.DataformCLI" + }, + { + "$ref": "#/definitions/io.kestra.plugin.couchbase.Query" + }, + { + "$ref": "#/definitions/io.kestra.plugin.serdes.avro.AvroToIon" + }, + { + "$ref": "#/definitions/io.kestra.plugin.serdes.avro.IonToAvro" + }, + { + "$ref": "#/definitions/io.kestra.plugin.serdes.csv.CsvToIon" + }, + { + "$ref": "#/definitions/io.kestra.plugin.serdes.csv.IonToCsv" + }, + { + "$ref": "#/definitions/io.kestra.plugin.serdes.excel.ExcelToIon" + }, + { + "$ref": "#/definitions/io.kestra.plugin.serdes.excel.IonToExcel" + }, + { + "$ref": "#/definitions/io.kestra.plugin.serdes.json.IonToJson" + }, + { + "$ref": "#/definitions/io.kestra.plugin.serdes.json.JsonToIon" + }, + { + "$ref": "#/definitions/io.kestra.plugin.serdes.parquet.IonToParquet" + }, + { + "$ref": "#/definitions/io.kestra.plugin.serdes.parquet.ParquetToIon" + }, + { + "$ref": "#/definitions/io.kestra.plugin.serdes.xml.IonToXml" + }, + { + "$ref": "#/definitions/io.kestra.plugin.serdes.xml.XmlToIon" + }, + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.sqlserver.Batch" + }, + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.sqlserver.Query" + }, + { + "$ref": "#/definitions/io.kestra.plugin.powerbi.RefreshGroupDataset" + }, + { + "$ref": "#/definitions/io.kestra.core.tasks.scripts.Node" + }, + { + "$ref": "#/definitions/io.kestra.plugin.scripts.node.Commands" + }, + { + "$ref": "#/definitions/io.kestra.plugin.scripts.node.Script" + }, + { + "$ref": "#/definitions/io.kestra.plugin.docker.Build" + }, + { + "$ref": "#/definitions/io.kestra.plugin.docker.Run" + }, + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.oracle.Batch" + }, + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.oracle.Query" + }, + { + "$ref": "#/definitions/io.kestra.plugin.zendesk.tickets.Create" + }, + { + "$ref": "#/definitions/io.kestra.plugin.debezium.mysql.Capture" + }, + { + "$ref": "#/definitions/io.kestra.plugin.debezium.sqlserver.Capture" + }, + { + "$ref": "#/definitions/io.kestra.plugin.cassandra.astradb.Query" + }, + { + "$ref": "#/definitions/io.kestra.plugin.cassandra.standard.Query" + }, + { + "$ref": "#/definitions/io.kestra.plugin.openai.ChatCompletion" + }, + { + "$ref": "#/definitions/io.kestra.plugin.openai.CreateImage" + }, + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.postgresql.Batch" + }, + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.postgresql.CopyIn" + }, + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.postgresql.CopyOut" + }, + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.postgresql.Query" + }, + { + "$ref": "#/definitions/io.kestra.core.tasks.scripts.Bash" + }, + { + "$ref": "#/definitions/io.kestra.plugin.scripts.shell.Commands" + }, + { + "$ref": "#/definitions/io.kestra.plugin.scripts.shell.Script" + }, + { + "$ref": "#/definitions/io.kestra.plugin.scripts.r.Commands" + }, + { + "$ref": "#/definitions/io.kestra.plugin.scripts.r.Script" + }, + { + "$ref": "#/definitions/io.kestra.plugin.debezium.db2.Capture" + }, + { + "$ref": "#/definitions/io.kestra.plugin.tika.Parse" + }, + { + "$ref": "#/definitions/io.kestra.plugin.jira.issues.Create" + }, + { + "$ref": "#/definitions/io.kestra.plugin.jira.issues.CreateComment" + }, + { + "$ref": "#/definitions/io.kestra.plugin.debezium.oracle.Capture" + }, + { + "$ref": "#/definitions/io.kestra.plugin.git.Clone" + }, + { + "$ref": "#/definitions/io.kestra.plugin.git.Push" + }, + { + "$ref": "#/definitions/io.kestra.plugin.git.PushFlows" + }, + { + "$ref": "#/definitions/io.kestra.plugin.git.PushNamespaceFiles" + }, + { + "$ref": "#/definitions/io.kestra.plugin.git.Sync" + }, + { + "$ref": "#/definitions/io.kestra.plugin.git.SyncFlows" + }, + { + "$ref": "#/definitions/io.kestra.plugin.git.SyncNamespaceFiles" + }, + { + "$ref": "#/definitions/io.kestra.plugin.servicenow.Post" + }, + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.sybase.Query" + }, + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.as400.Query" + }, + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.clickhouse.BulkInsert" + }, + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.clickhouse.Query" + }, + { + "$ref": "#/definitions/io.kestra.plugin.scripts.groovy.Eval" + }, + { + "$ref": "#/definitions/io.kestra.plugin.scripts.groovy.FileTransform" + }, + { + "$ref": "#/definitions/io.kestra.plugin.redis.list.ListPop" + }, + { + "$ref": "#/definitions/io.kestra.plugin.redis.list.ListPush" + }, + { + "$ref": "#/definitions/io.kestra.plugin.redis.pubsub.Publish" + }, + { + "$ref": "#/definitions/io.kestra.plugin.redis.string.Delete" + }, + { + "$ref": "#/definitions/io.kestra.plugin.redis.string.Get" + }, + { + "$ref": "#/definitions/io.kestra.plugin.redis.string.Set" + }, + { + "$ref": "#/definitions/io.kestra.plugin.linear.issues.Create" + }, + { + "$ref": "#/definitions/io.kestra.plugin.malloy.CLI" + }, + { + "$ref": "#/definitions/io.kestra.plugin.neo4j.Batch" + }, + { + "$ref": "#/definitions/io.kestra.plugin.neo4j.Query" + }, + { + "$ref": "#/definitions/io.kestra.plugin.hubspot.tickets.Create" + }, + { + "$ref": "#/definitions/io.kestra.plugin.scripts.powershell.Commands" + }, + { + "$ref": "#/definitions/io.kestra.plugin.scripts.powershell.Script" + }, + { + "$ref": "#/definitions/io.kestra.plugin.cloudquery.CloudQueryCLI" + }, + { + "$ref": "#/definitions/io.kestra.plugin.cloudquery.Sync" + }, + { + "$ref": "#/definitions/io.kestra.plugin.nats.Consume" + }, + { + "$ref": "#/definitions/io.kestra.plugin.nats.Produce" + }, + { + "$ref": "#/definitions/io.kestra.plugin.amqp.Consume" + }, + { + "$ref": "#/definitions/io.kestra.plugin.amqp.CreateQueue" + }, + { + "$ref": "#/definitions/io.kestra.plugin.amqp.DeclareExchange" + }, + { + "$ref": "#/definitions/io.kestra.plugin.amqp.Publish" + }, + { + "$ref": "#/definitions/io.kestra.plugin.amqp.QueueBind" + }, + { + "$ref": "#/definitions/io.kestra.plugin.notifications.discord.DiscordExecution" + }, + { + "$ref": "#/definitions/io.kestra.plugin.notifications.discord.DiscordIncomingWebhook" + }, + { + "$ref": "#/definitions/io.kestra.plugin.notifications.google.GoogleChatExecution" + }, + { + "$ref": "#/definitions/io.kestra.plugin.notifications.google.GoogleChatIncomingWebhook" + }, + { + "$ref": "#/definitions/io.kestra.plugin.notifications.mail.MailExecution" + }, + { + "$ref": "#/definitions/io.kestra.plugin.notifications.mail.MailSend" + }, + { + "$ref": "#/definitions/io.kestra.plugin.notifications.opsgenie.OpsgenieAlert" + }, + { + "$ref": "#/definitions/io.kestra.plugin.notifications.opsgenie.OpsgenieExecution" + }, + { + "$ref": "#/definitions/io.kestra.plugin.notifications.pagerduty.PagerDutyAlert" + }, + { + "$ref": "#/definitions/io.kestra.plugin.notifications.pagerduty.PagerDutyExecution" + }, + { + "$ref": "#/definitions/io.kestra.plugin.notifications.sendgrid.SendGridMailExecution" + }, + { + "$ref": "#/definitions/io.kestra.plugin.notifications.sendgrid.SendGridMailSend" + }, + { + "$ref": "#/definitions/io.kestra.plugin.notifications.sentry.SentryAlert" + }, + { + "$ref": "#/definitions/io.kestra.plugin.notifications.sentry.SentryExecution" + }, + { + "$ref": "#/definitions/io.kestra.plugin.notifications.slack.SlackExecution" + }, + { + "$ref": "#/definitions/io.kestra.plugin.notifications.slack.SlackIncomingWebhook" + }, + { + "$ref": "#/definitions/io.kestra.plugin.notifications.teams.TeamsExecution" + }, + { + "$ref": "#/definitions/io.kestra.plugin.notifications.teams.TeamsIncomingWebhook" + }, + { + "$ref": "#/definitions/io.kestra.plugin.notifications.telegram.TelegramExecution" + }, + { + "$ref": "#/definitions/io.kestra.plugin.notifications.telegram.TelegramSend" + }, + { + "$ref": "#/definitions/io.kestra.plugin.notifications.twilio.TwilioAlert" + }, + { + "$ref": "#/definitions/io.kestra.plugin.notifications.twilio.TwilioExecution" + }, + { + "$ref": "#/definitions/io.kestra.plugin.notifications.whatsapp.WhatsAppExecution" + }, + { + "$ref": "#/definitions/io.kestra.plugin.notifications.whatsapp.WhatsAppIncomingWebhook" + }, + { + "$ref": "#/definitions/io.kestra.plugin.notifications.zenduty.ZendutyAlert" + }, + { + "$ref": "#/definitions/io.kestra.plugin.notifications.zenduty.ZendutyExecution" + }, + { + "$ref": "#/definitions/io.kestra.plugin.azure.batch.job.Create" + }, + { + "$ref": "#/definitions/io.kestra.plugin.azure.batch.pool.Resize" + }, + { + "$ref": "#/definitions/io.kestra.plugin.azure.cli.AzCLI" + }, + { + "$ref": "#/definitions/io.kestra.plugin.azure.eventhubs.Consume" + }, + { + "$ref": "#/definitions/io.kestra.plugin.azure.eventhubs.Produce" + }, + { + "$ref": "#/definitions/io.kestra.plugin.azure.storage.blob.Copy" + }, + { + "$ref": "#/definitions/io.kestra.plugin.azure.storage.blob.Delete" + }, + { + "$ref": "#/definitions/io.kestra.plugin.azure.storage.blob.DeleteList" + }, + { + "$ref": "#/definitions/io.kestra.plugin.azure.storage.blob.Download" + }, + { + "$ref": "#/definitions/io.kestra.plugin.azure.storage.blob.Downloads" + }, + { + "$ref": "#/definitions/io.kestra.plugin.azure.storage.blob.List" + }, + { + "$ref": "#/definitions/io.kestra.plugin.azure.storage.blob.SharedAccess" + }, + { + "$ref": "#/definitions/io.kestra.plugin.azure.storage.blob.Upload" + }, + { + "$ref": "#/definitions/io.kestra.plugin.azure.storage.table.Bulk" + }, + { + "$ref": "#/definitions/io.kestra.plugin.azure.storage.table.Delete" + }, + { + "$ref": "#/definitions/io.kestra.plugin.azure.storage.table.Get" + }, + { + "$ref": "#/definitions/io.kestra.plugin.azure.storage.table.List" + }, + { + "$ref": "#/definitions/io.kestra.plugin.transform.grok.TransformItems" + }, + { + "$ref": "#/definitions/io.kestra.plugin.transform.grok.TransformValue" + }, + { + "$ref": "#/definitions/io.kestra.plugin.kubernetes.PodCreate" + }, + { + "$ref": "#/definitions/io.kestra.plugin.kubernetes.kubectl.Apply" + }, + { + "$ref": "#/definitions/io.kestra.plugin.transform.jsonata.TransformItems" + }, + { + "$ref": "#/definitions/io.kestra.plugin.transform.jsonata.TransformValue" + }, + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.vertica.Batch" + }, + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.vertica.Query" + }, + { + "$ref": "#/definitions/io.kestra.plugin.solace.Consume" + }, + { + "$ref": "#/definitions/io.kestra.plugin.solace.Produce" + }, + { + "$ref": "#/definitions/io.kestra.plugin.ansible.cli.AnsibleCLI" + }, + { + "$ref": "#/definitions/io.kestra.plugin.elasticsearch.Bulk" + }, + { + "$ref": "#/definitions/io.kestra.plugin.elasticsearch.Get" + }, + { + "$ref": "#/definitions/io.kestra.plugin.elasticsearch.Load" + }, + { + "$ref": "#/definitions/io.kestra.plugin.elasticsearch.Put" + }, + { + "$ref": "#/definitions/io.kestra.plugin.elasticsearch.Request" + }, + { + "$ref": "#/definitions/io.kestra.plugin.elasticsearch.Scroll" + }, + { + "$ref": "#/definitions/io.kestra.plugin.elasticsearch.Search" + }, + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.pinot.Query" + }, + { + "$ref": "#/definitions/io.kestra.plugin.aws.athena.Query" + }, + { + "$ref": "#/definitions/io.kestra.plugin.aws.cli.AwsCLI" + }, + { + "$ref": "#/definitions/io.kestra.plugin.aws.dynamodb.DeleteItem" + }, + { + "$ref": "#/definitions/io.kestra.plugin.aws.dynamodb.GetItem" + }, + { + "$ref": "#/definitions/io.kestra.plugin.aws.dynamodb.PutItem" + }, + { + "$ref": "#/definitions/io.kestra.plugin.aws.dynamodb.Query" + }, + { + "$ref": "#/definitions/io.kestra.plugin.aws.dynamodb.Scan" + }, + { + "$ref": "#/definitions/io.kestra.plugin.aws.ecr.GetAuthToken" + }, + { + "$ref": "#/definitions/io.kestra.plugin.aws.eventbridge.PutEvents" + }, + { + "$ref": "#/definitions/io.kestra.plugin.aws.kinesis.PutRecords" + }, + { + "$ref": "#/definitions/io.kestra.plugin.aws.lambda.Invoke" + }, + { + "$ref": "#/definitions/io.kestra.plugin.aws.s3.Copy" + }, + { + "$ref": "#/definitions/io.kestra.plugin.aws.s3.CreateBucket" + }, + { + "$ref": "#/definitions/io.kestra.plugin.aws.s3.Delete" + }, + { + "$ref": "#/definitions/io.kestra.plugin.aws.s3.DeleteList" + }, + { + "$ref": "#/definitions/io.kestra.plugin.aws.s3.Download" + }, + { + "$ref": "#/definitions/io.kestra.plugin.aws.s3.Downloads" + }, + { + "$ref": "#/definitions/io.kestra.plugin.aws.s3.List" + }, + { + "$ref": "#/definitions/io.kestra.plugin.aws.s3.Upload" + }, + { + "$ref": "#/definitions/io.kestra.plugin.aws.sns.Publish" + }, + { + "$ref": "#/definitions/io.kestra.plugin.aws.sqs.Consume" + }, + { + "$ref": "#/definitions/io.kestra.plugin.aws.sqs.Publish" + }, + { + "$ref": "#/definitions/io.kestra.plugin.sqlmesh.cli.SQLMeshCLI" + }, + { + "$ref": "#/definitions/io.kestra.plugin.surrealdb.Query" + }, + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.vectorwise.Batch" + }, + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.vectorwise.Query" + }, + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.arrowflight.Query" + }, + { + "$ref": "#/definitions/io.kestra.plugin.terraform.cli.TerraformCLI" + }, + { + "$ref": "#/definitions/io.kestra.plugin.debezium.mongodb.Capture" + }, + { + "$ref": "#/definitions/io.kestra.plugin.fs.ftp.Delete" + }, + { + "$ref": "#/definitions/io.kestra.plugin.fs.ftp.Download" + }, + { + "$ref": "#/definitions/io.kestra.plugin.fs.ftp.Downloads" + }, + { + "$ref": "#/definitions/io.kestra.plugin.fs.ftp.List" + }, + { + "$ref": "#/definitions/io.kestra.plugin.fs.ftp.Move" + }, + { + "$ref": "#/definitions/io.kestra.plugin.fs.ftp.Upload" + }, + { + "$ref": "#/definitions/io.kestra.plugin.fs.ftp.Uploads" + }, + { + "$ref": "#/definitions/io.kestra.plugin.fs.ftps.Delete" + }, + { + "$ref": "#/definitions/io.kestra.plugin.fs.ftps.Download" + }, + { + "$ref": "#/definitions/io.kestra.plugin.fs.ftps.Downloads" + }, + { + "$ref": "#/definitions/io.kestra.plugin.fs.ftps.List" + }, + { + "$ref": "#/definitions/io.kestra.plugin.fs.ftps.Move" + }, + { + "$ref": "#/definitions/io.kestra.plugin.fs.ftps.Upload" + }, + { + "$ref": "#/definitions/io.kestra.plugin.fs.ftps.Uploads" + }, + { + "$ref": "#/definitions/io.kestra.plugin.fs.sftp.Delete" + }, + { + "$ref": "#/definitions/io.kestra.plugin.fs.sftp.Download" + }, + { + "$ref": "#/definitions/io.kestra.plugin.fs.sftp.Downloads" + }, + { + "$ref": "#/definitions/io.kestra.plugin.fs.sftp.List" + }, + { + "$ref": "#/definitions/io.kestra.plugin.fs.sftp.Move" + }, + { + "$ref": "#/definitions/io.kestra.plugin.fs.sftp.Upload" + }, + { + "$ref": "#/definitions/io.kestra.plugin.fs.sftp.Uploads" + }, + { + "$ref": "#/definitions/io.kestra.plugin.fs.smb.Delete" + }, + { + "$ref": "#/definitions/io.kestra.plugin.fs.smb.Download" + }, + { + "$ref": "#/definitions/io.kestra.plugin.fs.smb.Downloads" + }, + { + "$ref": "#/definitions/io.kestra.plugin.fs.smb.List" + }, + { + "$ref": "#/definitions/io.kestra.plugin.fs.smb.Move" + }, + { + "$ref": "#/definitions/io.kestra.plugin.fs.smb.Upload" + }, + { + "$ref": "#/definitions/io.kestra.plugin.fs.smb.Uploads" + }, + { + "$ref": "#/definitions/io.kestra.plugin.fs.ssh.Command" + }, + { + "$ref": "#/definitions/io.kestra.plugin.kafka.Consume" + }, + { + "$ref": "#/definitions/io.kestra.plugin.kafka.Produce" + }, + { + "$ref": "#/definitions/io.kestra.plugin.airflow.dags.TriggerDagRun" + }, + { + "$ref": "#/definitions/io.kestra.core.tasks.scripts.Python" + }, + { + "$ref": "#/definitions/io.kestra.plugin.scripts.python.Commands" + }, + { + "$ref": "#/definitions/io.kestra.plugin.scripts.python.Script" + }, + { + "$ref": "#/definitions/io.kestra.plugin.crypto.openpgp.Decrypt" + }, + { + "$ref": "#/definitions/io.kestra.plugin.crypto.openpgp.Encrypt" + }, + { + "$ref": "#/definitions/io.kestra.plugin.scripts.jython.Eval" + }, + { + "$ref": "#/definitions/io.kestra.plugin.scripts.jython.FileTransform" + }, + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.mysql.Batch" + }, + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.mysql.Query" + }, + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.snowflake.Download" + }, + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.snowflake.Query" + }, + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.snowflake.Upload" + }, + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.redshift.Query" + }, + { + "$ref": "#/definitions/io.kestra.plugin.ldap.Add" + }, + { + "$ref": "#/definitions/io.kestra.plugin.ldap.Delete" + }, + { + "$ref": "#/definitions/io.kestra.plugin.ldap.IonToLdif" + }, + { + "$ref": "#/definitions/io.kestra.plugin.ldap.LdifToIon" + }, + { + "$ref": "#/definitions/io.kestra.plugin.ldap.Modify" + }, + { + "$ref": "#/definitions/io.kestra.plugin.ldap.Search" + }, + { + "$ref": "#/definitions/io.kestra.plugin.databricks.cluster.CreateCluster" + }, + { + "$ref": "#/definitions/io.kestra.plugin.databricks.cluster.DeleteCluster" + }, + { + "$ref": "#/definitions/io.kestra.plugin.databricks.dbfs.Download" + }, + { + "$ref": "#/definitions/io.kestra.plugin.databricks.dbfs.Upload" + }, + { + "$ref": "#/definitions/io.kestra.plugin.databricks.job.CreateJob" + }, + { + "$ref": "#/definitions/io.kestra.plugin.databricks.job.SubmitRun" + }, + { + "$ref": "#/definitions/io.kestra.plugin.databricks.sql.Query" + }, + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.sqlite.Query" + }, + { + "$ref": "#/definitions/io.kestra.plugin.mqtt.Publish" + }, + { + "$ref": "#/definitions/io.kestra.plugin.mqtt.Subscribe" + }, + { + "$ref": "#/definitions/io.kestra.plugin.pulsar.Consume" + }, + { + "$ref": "#/definitions/io.kestra.plugin.pulsar.Produce" + }, + { + "$ref": "#/definitions/io.kestra.plugin.pulsar.Reader" + }, + { + "$ref": "#/definitions/io.kestra.plugin.dbt.cli.Build" + }, + { + "$ref": "#/definitions/io.kestra.plugin.dbt.cli.Compile" + }, + { + "$ref": "#/definitions/io.kestra.plugin.dbt.cli.DbtCLI" + }, + { + "$ref": "#/definitions/io.kestra.plugin.dbt.cli.Deps" + }, + { + "$ref": "#/definitions/io.kestra.plugin.dbt.cli.Freshness" + }, + { + "$ref": "#/definitions/io.kestra.plugin.dbt.cli.List" + }, + { + "$ref": "#/definitions/io.kestra.plugin.dbt.cli.Run" + }, + { + "$ref": "#/definitions/io.kestra.plugin.dbt.cli.Seed" + }, + { + "$ref": "#/definitions/io.kestra.plugin.dbt.cli.Setup" + }, + { + "$ref": "#/definitions/io.kestra.plugin.dbt.cli.Snapshot" + }, + { + "$ref": "#/definitions/io.kestra.plugin.dbt.cli.Test" + }, + { + "$ref": "#/definitions/io.kestra.plugin.dbt.cloud.CheckStatus" + }, + { + "$ref": "#/definitions/io.kestra.plugin.dbt.cloud.TriggerRun" + }, + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.dremio.Query" + }, + { + "$ref": "#/definitions/io.kestra.plugin.googleworkspace.drive.Create" + }, + { + "$ref": "#/definitions/io.kestra.plugin.googleworkspace.drive.Delete" + }, + { + "$ref": "#/definitions/io.kestra.plugin.googleworkspace.drive.Download" + }, + { + "$ref": "#/definitions/io.kestra.plugin.googleworkspace.drive.Export" + }, + { + "$ref": "#/definitions/io.kestra.plugin.googleworkspace.drive.List" + }, + { + "$ref": "#/definitions/io.kestra.plugin.googleworkspace.drive.Upload" + }, + { + "$ref": "#/definitions/io.kestra.plugin.googleworkspace.sheets.Read" + }, + { + "$ref": "#/definitions/io.kestra.plugin.googleworkspace.sheets.ReadRange" + }, + { + "$ref": "#/definitions/io.kestra.plugin.airbyte.cloud.jobs.Reset" + }, + { + "$ref": "#/definitions/io.kestra.plugin.airbyte.cloud.jobs.Sync" + }, + { + "$ref": "#/definitions/io.kestra.plugin.airbyte.connections.CheckStatus" + }, + { + "$ref": "#/definitions/io.kestra.plugin.airbyte.connections.Sync" + }, + { + "$ref": "#/definitions/io.kestra.plugin.fivetran.connectors.Sync" + } + ] + } + }, + "id": { + "type": "string", + "minLength": 1, + "pattern": "^[a-zA-Z0-9][a-zA-Z0-9._-]*" + }, + "inputs": { + "type": "array", + "items": { + "oneOf": [ + { + "$ref": "#/definitions/io.kestra.core.models.flows.input.ArrayInput-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.flows.input.BooleanInput-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.flows.input.DateInput-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.flows.input.DateTimeInput-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.flows.input.DurationInput-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.flows.input.FileInput-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.flows.input.FloatInput-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.flows.input.IntInput-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.flows.input.JsonInput-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.flows.input.SecretInput-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.flows.input.StringInput-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.flows.input.EnumInput-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.flows.input.SelectInput-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.flows.input.TimeInput-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.flows.input.URIInput-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.flows.input.MultiselectInput-2" + } + ] + } + }, + "labels": { + "oneOf": [ + { + "type": "array", + "items": {} + }, + { + "type": "object" + } + ] + }, + "listeners": { + "$deprecated": true, + "type": "array", + "items": { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.core.models.listeners.Listener" + }, + { + "$deprecated": true + } + ] + } + }, + "namespace": { + "type": "string", + "pattern": "^[a-z0-9][a-z0-9._-]*" + }, + "outputs": { + "$dynamic": true, + "title": "Output values available and exposes to other flows.", + "markdownDescription": "Output values make information about the execution of your Flow available and expose for other Kestra flows to use. Output values are similar to return values in programming languages.", + "type": "array", + "items": { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.core.models.flows.Output" + }, + { + "$dynamic": true + } + ] + } + }, + "pluginDefaults": { + "type": "array", + "items": { + "$ref": "#/definitions/io.kestra.core.models.flows.PluginDefault" + } + }, + "retry": { + "oneOf": [ + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Constant-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Exponential-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Random-2" + } + ] + }, + "revision": { + "type": "integer", + "minimum": 1 + }, + "taskDefaults": { + "$deprecated": true, + "type": "array", + "items": { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.core.models.flows.PluginDefault" + }, + { + "$deprecated": true + } + ] + } + }, + "tasks": { + "minItems": 1, + "type": "array", + "items": { + "oneOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.debug.Echo" + }, + { + "$ref": "#/definitions/io.kestra.plugin.core.debug.Return" + }, + { + "$ref": "#/definitions/io.kestra.plugin.core.execution.Count" + }, + { + "$ref": "#/definitions/io.kestra.plugin.core.execution.Fail" + }, + { + "$ref": "#/definitions/io.kestra.plugin.core.execution.Labels" + }, + { + "$ref": "#/definitions/io.kestra.plugin.core.execution.PurgeExecutions" + }, + { + "$ref": "#/definitions/io.kestra.plugin.core.execution.Resume" + }, + { + "$ref": "#/definitions/io.kestra.plugin.core.flow.AllowFailure" + }, + { + "$ref": "#/definitions/io.kestra.plugin.core.flow.Dag" + }, + { + "$ref": "#/definitions/io.kestra.plugin.core.flow.EachParallel" + }, + { + "$ref": "#/definitions/io.kestra.plugin.core.flow.EachSequential" + }, + { + "$ref": "#/definitions/io.kestra.plugin.core.flow.ForEach" + }, + { + "$ref": "#/definitions/io.kestra.plugin.core.flow.ForEachItem" + }, + { + "$ref": "#/definitions/io.kestra.plugin.core.flow.If" + }, + { + "$ref": "#/definitions/io.kestra.plugin.core.flow.Parallel" + }, + { + "$ref": "#/definitions/io.kestra.plugin.core.flow.Pause" + }, + { + "$ref": "#/definitions/io.kestra.plugin.core.flow.Sequential" + }, + { + "$ref": "#/definitions/io.kestra.plugin.core.flow.Subflow" + }, + { + "$ref": "#/definitions/io.kestra.plugin.core.flow.Switch" + }, + { + "$ref": "#/definitions/io.kestra.plugin.core.flow.Template" + }, + { + "$ref": "#/definitions/io.kestra.plugin.core.flow.WaitFor" + }, + { + "$ref": "#/definitions/io.kestra.plugin.core.flow.WorkingDirectory" + }, + { + "$ref": "#/definitions/io.kestra.plugin.core.http.Download" + }, + { + "$ref": "#/definitions/io.kestra.plugin.core.http.Request" + }, + { + "$ref": "#/definitions/io.kestra.plugin.core.kv.Delete" + }, + { + "$ref": "#/definitions/io.kestra.plugin.core.kv.Get" + }, + { + "$ref": "#/definitions/io.kestra.plugin.core.kv.GetKeys" + }, + { + "$ref": "#/definitions/io.kestra.plugin.core.kv.Set" + }, + { + "$ref": "#/definitions/io.kestra.plugin.core.log.Fetch" + }, + { + "$ref": "#/definitions/io.kestra.plugin.core.log.Log" + }, + { + "$ref": "#/definitions/io.kestra.plugin.core.log.PurgeLogs" + }, + { + "$ref": "#/definitions/io.kestra.plugin.core.namespace.DeleteFiles" + }, + { + "$ref": "#/definitions/io.kestra.plugin.core.namespace.DownloadFiles" + }, + { + "$ref": "#/definitions/io.kestra.plugin.core.namespace.UploadFiles" + }, + { + "$ref": "#/definitions/io.kestra.plugin.core.output.OutputValues" + }, + { + "$ref": "#/definitions/io.kestra.plugin.core.state.Delete" + }, + { + "$ref": "#/definitions/io.kestra.plugin.core.state.Get" + }, + { + "$ref": "#/definitions/io.kestra.plugin.core.state.Set" + }, + { + "$ref": "#/definitions/io.kestra.plugin.core.storage.Concat" + }, + { + "$ref": "#/definitions/io.kestra.plugin.core.storage.DeduplicateItems" + }, + { + "$ref": "#/definitions/io.kestra.plugin.core.storage.Delete" + }, + { + "$ref": "#/definitions/io.kestra.plugin.core.storage.FilterItems" + }, + { + "$ref": "#/definitions/io.kestra.plugin.core.storage.LocalFiles" + }, + { + "$ref": "#/definitions/io.kestra.plugin.core.storage.PurgeCurrentExecutionFiles" + }, + { + "$ref": "#/definitions/io.kestra.plugin.core.storage.Reverse" + }, + { + "$ref": "#/definitions/io.kestra.plugin.core.storage.Size" + }, + { + "$ref": "#/definitions/io.kestra.plugin.core.storage.Split" + }, + { + "$ref": "#/definitions/io.kestra.plugin.core.templating.TemplatedTask" + }, + { + "$ref": "#/definitions/io.kestra.plugin.core.trigger.Toggle" + }, + { + "$ref": "#/definitions/io.kestra.plugin.hightouch.Sync" + }, + { + "$ref": "#/definitions/io.kestra.plugin.github.code.Search" + }, + { + "$ref": "#/definitions/io.kestra.plugin.github.commits.Search" + }, + { + "$ref": "#/definitions/io.kestra.plugin.github.issues.Comment" + }, + { + "$ref": "#/definitions/io.kestra.plugin.github.issues.Create" + }, + { + "$ref": "#/definitions/io.kestra.plugin.github.issues.Search" + }, + { + "$ref": "#/definitions/io.kestra.plugin.github.pulls.Create" + }, + { + "$ref": "#/definitions/io.kestra.plugin.github.pulls.Search" + }, + { + "$ref": "#/definitions/io.kestra.plugin.github.repositories.Search" + }, + { + "$ref": "#/definitions/io.kestra.plugin.github.topics.Search" + }, + { + "$ref": "#/definitions/io.kestra.plugin.github.users.Search" + }, + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.druid.Query" + }, + { + "$ref": "#/definitions/io.kestra.plugin.weaviate.BatchCreate" + }, + { + "$ref": "#/definitions/io.kestra.plugin.weaviate.Delete" + }, + { + "$ref": "#/definitions/io.kestra.plugin.weaviate.Query" + }, + { + "$ref": "#/definitions/io.kestra.plugin.weaviate.SchemaCreate" + }, + { + "$ref": "#/definitions/io.kestra.plugin.spark.JarSubmit" + }, + { + "$ref": "#/definitions/io.kestra.plugin.spark.PythonSubmit" + }, + { + "$ref": "#/definitions/io.kestra.plugin.spark.RSubmit" + }, + { + "$ref": "#/definitions/io.kestra.plugin.spark.SparkCLI" + }, + { + "$ref": "#/definitions/io.kestra.plugin.gcp.auth.OauthAccessToken" + }, + { + "$ref": "#/definitions/io.kestra.plugin.gcp.bigquery.Copy" + }, + { + "$ref": "#/definitions/io.kestra.plugin.gcp.bigquery.CopyPartitions" + }, + { + "$ref": "#/definitions/io.kestra.plugin.gcp.bigquery.CreateDataset" + }, + { + "$ref": "#/definitions/io.kestra.plugin.gcp.bigquery.CreateTable" + }, + { + "$ref": "#/definitions/io.kestra.plugin.gcp.bigquery.DeleteDataset" + }, + { + "$ref": "#/definitions/io.kestra.plugin.gcp.bigquery.DeletePartitions" + }, + { + "$ref": "#/definitions/io.kestra.plugin.gcp.bigquery.DeleteTable" + }, + { + "$ref": "#/definitions/io.kestra.plugin.gcp.bigquery.ExtractToGcs" + }, + { + "$ref": "#/definitions/io.kestra.plugin.gcp.bigquery.Load" + }, + { + "$ref": "#/definitions/io.kestra.plugin.gcp.bigquery.LoadFromGcs" + }, + { + "$ref": "#/definitions/io.kestra.plugin.gcp.bigquery.Query" + }, + { + "$ref": "#/definitions/io.kestra.plugin.gcp.bigquery.StorageWrite" + }, + { + "$ref": "#/definitions/io.kestra.plugin.gcp.bigquery.TableMetadata" + }, + { + "$ref": "#/definitions/io.kestra.plugin.gcp.bigquery.UpdateDataset" + }, + { + "$ref": "#/definitions/io.kestra.plugin.gcp.bigquery.UpdateTable" + }, + { + "$ref": "#/definitions/io.kestra.plugin.gcp.cli.GCloudCLI" + }, + { + "$ref": "#/definitions/io.kestra.plugin.gcp.dataproc.batches.PySparkSubmit" + }, + { + "$ref": "#/definitions/io.kestra.plugin.gcp.dataproc.batches.RSparkSubmit" + }, + { + "$ref": "#/definitions/io.kestra.plugin.gcp.dataproc.batches.SparkSqlSubmit" + }, + { + "$ref": "#/definitions/io.kestra.plugin.gcp.dataproc.batches.SparkSubmit" + }, + { + "$ref": "#/definitions/io.kestra.plugin.gcp.firestore.Delete" + }, + { + "$ref": "#/definitions/io.kestra.plugin.gcp.firestore.Get" + }, + { + "$ref": "#/definitions/io.kestra.plugin.gcp.firestore.Query" + }, + { + "$ref": "#/definitions/io.kestra.plugin.gcp.firestore.Set" + }, + { + "$ref": "#/definitions/io.kestra.plugin.gcp.gcs.Compose" + }, + { + "$ref": "#/definitions/io.kestra.plugin.gcp.gcs.Copy" + }, + { + "$ref": "#/definitions/io.kestra.plugin.gcp.gcs.CreateBucket" + }, + { + "$ref": "#/definitions/io.kestra.plugin.gcp.gcs.CreateBucketIamPolicy" + }, + { + "$ref": "#/definitions/io.kestra.plugin.gcp.gcs.Delete" + }, + { + "$ref": "#/definitions/io.kestra.plugin.gcp.gcs.DeleteBucket" + }, + { + "$ref": "#/definitions/io.kestra.plugin.gcp.gcs.DeleteList" + }, + { + "$ref": "#/definitions/io.kestra.plugin.gcp.gcs.Download" + }, + { + "$ref": "#/definitions/io.kestra.plugin.gcp.gcs.Downloads" + }, + { + "$ref": "#/definitions/io.kestra.plugin.gcp.gcs.List" + }, + { + "$ref": "#/definitions/io.kestra.plugin.gcp.gcs.UpdateBucket" + }, + { + "$ref": "#/definitions/io.kestra.plugin.gcp.gcs.Upload" + }, + { + "$ref": "#/definitions/io.kestra.plugin.gcp.gke.ClusterMetadata" + }, + { + "$ref": "#/definitions/io.kestra.plugin.gcp.pubsub.Consume" + }, + { + "$ref": "#/definitions/io.kestra.plugin.gcp.pubsub.Publish" + }, + { + "$ref": "#/definitions/io.kestra.plugin.gcp.vertexai.ChatCompletion" + }, + { + "$ref": "#/definitions/io.kestra.plugin.gcp.vertexai.CustomJob" + }, + { + "$ref": "#/definitions/io.kestra.plugin.gcp.vertexai.MultimodalCompletion" + }, + { + "$ref": "#/definitions/io.kestra.plugin.gcp.vertexai.TextCompletion" + }, + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.db2.Query" + }, + { + "$ref": "#/definitions/io.kestra.plugin.minio.Copy" + }, + { + "$ref": "#/definitions/io.kestra.plugin.minio.CreateBucket" + }, + { + "$ref": "#/definitions/io.kestra.plugin.minio.Delete" + }, + { + "$ref": "#/definitions/io.kestra.plugin.minio.DeleteList" + }, + { + "$ref": "#/definitions/io.kestra.plugin.minio.Download" + }, + { + "$ref": "#/definitions/io.kestra.plugin.minio.Downloads" + }, + { + "$ref": "#/definitions/io.kestra.plugin.minio.List" + }, + { + "$ref": "#/definitions/io.kestra.plugin.minio.Upload" + }, + { + "$ref": "#/definitions/io.kestra.plugin.soda.Scan" + }, + { + "$ref": "#/definitions/io.kestra.plugin.modal.cli.ModalCLI" + }, + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.rockset.Query" + }, + { + "$ref": "#/definitions/io.kestra.plugin.scripts.nashorn.Eval" + }, + { + "$ref": "#/definitions/io.kestra.plugin.scripts.nashorn.FileTransform" + }, + { + "$ref": "#/definitions/io.kestra.plugin.scripts.ruby.Commands" + }, + { + "$ref": "#/definitions/io.kestra.plugin.scripts.ruby.Script" + }, + { + "$ref": "#/definitions/io.kestra.plugin.mongodb.Bulk" + }, + { + "$ref": "#/definitions/io.kestra.plugin.mongodb.Delete" + }, + { + "$ref": "#/definitions/io.kestra.plugin.mongodb.Find" + }, + { + "$ref": "#/definitions/io.kestra.plugin.mongodb.InsertOne" + }, + { + "$ref": "#/definitions/io.kestra.plugin.mongodb.Load" + }, + { + "$ref": "#/definitions/io.kestra.plugin.mongodb.Update" + }, + { + "$ref": "#/definitions/io.kestra.plugin.debezium.postgres.Capture" + }, + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.BigQuery" + }, + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.BingAds" + }, + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.ChargeBee" + }, + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.ExchangeRateHost" + }, + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.FacebookAds" + }, + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.Fastly" + }, + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.GenericTap" + }, + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.GitHub" + }, + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.Gitlab" + }, + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.GoogleAdwords" + }, + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.GoogleAnalytics" + }, + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.GoogleSearchConsole" + }, + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.HubSpot" + }, + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.Marketo" + }, + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.Netsuite" + }, + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.PipelinewiseMongoDb" + }, + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.PipelinewiseMysql" + }, + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.PipelinewiseOracle" + }, + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.PipelinewisePostgres" + }, + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.PipelinewiseSqlServer" + }, + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.Quickbooks" + }, + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.Recharge" + }, + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.SageIntacct" + }, + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.Salesforce" + }, + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.Shopify" + }, + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.Slack" + }, + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.Stripe" + }, + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.Zendesk" + }, + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.Zoom" + }, + { + "$ref": "#/definitions/io.kestra.plugin.singer.targets.AdswerveBigQuery" + }, + { + "$ref": "#/definitions/io.kestra.plugin.singer.targets.Csv" + }, + { + "$ref": "#/definitions/io.kestra.plugin.singer.targets.DatamillCoPostgres" + }, + { + "$ref": "#/definitions/io.kestra.plugin.singer.targets.GenericTarget" + }, + { + "$ref": "#/definitions/io.kestra.plugin.singer.targets.Json" + }, + { + "$ref": "#/definitions/io.kestra.plugin.singer.targets.MeltanoSnowflake" + }, + { + "$ref": "#/definitions/io.kestra.plugin.singer.targets.Oracle" + }, + { + "$ref": "#/definitions/io.kestra.plugin.singer.targets.PipelinewisePostgres" + }, + { + "$ref": "#/definitions/io.kestra.plugin.singer.targets.PipelinewiseRedshift" + }, + { + "$ref": "#/definitions/io.kestra.plugin.singer.targets.PipelinewiseSnowflake" + }, + { + "$ref": "#/definitions/io.kestra.plugin.singer.targets.SqlServer" + }, + { + "$ref": "#/definitions/io.kestra.plugin.scripts.julia.Commands" + }, + { + "$ref": "#/definitions/io.kestra.plugin.scripts.julia.Script" + }, + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.trino.Query" + }, + { + "$ref": "#/definitions/io.kestra.plugin.compress.ArchiveCompress" + }, + { + "$ref": "#/definitions/io.kestra.plugin.compress.ArchiveDecompress" + }, + { + "$ref": "#/definitions/io.kestra.plugin.compress.FileCompress" + }, + { + "$ref": "#/definitions/io.kestra.plugin.compress.FileDecompress" + }, + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.duckdb.Query" + }, + { + "$ref": "#/definitions/io.kestra.plugin.dataform.cli.DataformCLI" + }, + { + "$ref": "#/definitions/io.kestra.plugin.couchbase.Query" + }, + { + "$ref": "#/definitions/io.kestra.plugin.serdes.avro.AvroToIon" + }, + { + "$ref": "#/definitions/io.kestra.plugin.serdes.avro.IonToAvro" + }, + { + "$ref": "#/definitions/io.kestra.plugin.serdes.csv.CsvToIon" + }, + { + "$ref": "#/definitions/io.kestra.plugin.serdes.csv.IonToCsv" + }, + { + "$ref": "#/definitions/io.kestra.plugin.serdes.excel.ExcelToIon" + }, + { + "$ref": "#/definitions/io.kestra.plugin.serdes.excel.IonToExcel" + }, + { + "$ref": "#/definitions/io.kestra.plugin.serdes.json.IonToJson" + }, + { + "$ref": "#/definitions/io.kestra.plugin.serdes.json.JsonToIon" + }, + { + "$ref": "#/definitions/io.kestra.plugin.serdes.parquet.IonToParquet" + }, + { + "$ref": "#/definitions/io.kestra.plugin.serdes.parquet.ParquetToIon" + }, + { + "$ref": "#/definitions/io.kestra.plugin.serdes.xml.IonToXml" + }, + { + "$ref": "#/definitions/io.kestra.plugin.serdes.xml.XmlToIon" + }, + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.sqlserver.Batch" + }, + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.sqlserver.Query" + }, + { + "$ref": "#/definitions/io.kestra.plugin.powerbi.RefreshGroupDataset" + }, + { + "$ref": "#/definitions/io.kestra.core.tasks.scripts.Node" + }, + { + "$ref": "#/definitions/io.kestra.plugin.scripts.node.Commands" + }, + { + "$ref": "#/definitions/io.kestra.plugin.scripts.node.Script" + }, + { + "$ref": "#/definitions/io.kestra.plugin.docker.Build" + }, + { + "$ref": "#/definitions/io.kestra.plugin.docker.Run" + }, + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.oracle.Batch" + }, + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.oracle.Query" + }, + { + "$ref": "#/definitions/io.kestra.plugin.zendesk.tickets.Create" + }, + { + "$ref": "#/definitions/io.kestra.plugin.debezium.mysql.Capture" + }, + { + "$ref": "#/definitions/io.kestra.plugin.debezium.sqlserver.Capture" + }, + { + "$ref": "#/definitions/io.kestra.plugin.cassandra.astradb.Query" + }, + { + "$ref": "#/definitions/io.kestra.plugin.cassandra.standard.Query" + }, + { + "$ref": "#/definitions/io.kestra.plugin.openai.ChatCompletion" + }, + { + "$ref": "#/definitions/io.kestra.plugin.openai.CreateImage" + }, + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.postgresql.Batch" + }, + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.postgresql.CopyIn" + }, + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.postgresql.CopyOut" + }, + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.postgresql.Query" + }, + { + "$ref": "#/definitions/io.kestra.core.tasks.scripts.Bash" + }, + { + "$ref": "#/definitions/io.kestra.plugin.scripts.shell.Commands" + }, + { + "$ref": "#/definitions/io.kestra.plugin.scripts.shell.Script" + }, + { + "$ref": "#/definitions/io.kestra.plugin.scripts.r.Commands" + }, + { + "$ref": "#/definitions/io.kestra.plugin.scripts.r.Script" + }, + { + "$ref": "#/definitions/io.kestra.plugin.debezium.db2.Capture" + }, + { + "$ref": "#/definitions/io.kestra.plugin.tika.Parse" + }, + { + "$ref": "#/definitions/io.kestra.plugin.jira.issues.Create" + }, + { + "$ref": "#/definitions/io.kestra.plugin.jira.issues.CreateComment" + }, + { + "$ref": "#/definitions/io.kestra.plugin.debezium.oracle.Capture" + }, + { + "$ref": "#/definitions/io.kestra.plugin.git.Clone" + }, + { + "$ref": "#/definitions/io.kestra.plugin.git.Push" + }, + { + "$ref": "#/definitions/io.kestra.plugin.git.PushFlows" + }, + { + "$ref": "#/definitions/io.kestra.plugin.git.PushNamespaceFiles" + }, + { + "$ref": "#/definitions/io.kestra.plugin.git.Sync" + }, + { + "$ref": "#/definitions/io.kestra.plugin.git.SyncFlows" + }, + { + "$ref": "#/definitions/io.kestra.plugin.git.SyncNamespaceFiles" + }, + { + "$ref": "#/definitions/io.kestra.plugin.servicenow.Post" + }, + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.sybase.Query" + }, + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.as400.Query" + }, + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.clickhouse.BulkInsert" + }, + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.clickhouse.Query" + }, + { + "$ref": "#/definitions/io.kestra.plugin.scripts.groovy.Eval" + }, + { + "$ref": "#/definitions/io.kestra.plugin.scripts.groovy.FileTransform" + }, + { + "$ref": "#/definitions/io.kestra.plugin.redis.list.ListPop" + }, + { + "$ref": "#/definitions/io.kestra.plugin.redis.list.ListPush" + }, + { + "$ref": "#/definitions/io.kestra.plugin.redis.pubsub.Publish" + }, + { + "$ref": "#/definitions/io.kestra.plugin.redis.string.Delete" + }, + { + "$ref": "#/definitions/io.kestra.plugin.redis.string.Get" + }, + { + "$ref": "#/definitions/io.kestra.plugin.redis.string.Set" + }, + { + "$ref": "#/definitions/io.kestra.plugin.linear.issues.Create" + }, + { + "$ref": "#/definitions/io.kestra.plugin.malloy.CLI" + }, + { + "$ref": "#/definitions/io.kestra.plugin.neo4j.Batch" + }, + { + "$ref": "#/definitions/io.kestra.plugin.neo4j.Query" + }, + { + "$ref": "#/definitions/io.kestra.plugin.hubspot.tickets.Create" + }, + { + "$ref": "#/definitions/io.kestra.plugin.scripts.powershell.Commands" + }, + { + "$ref": "#/definitions/io.kestra.plugin.scripts.powershell.Script" + }, + { + "$ref": "#/definitions/io.kestra.plugin.cloudquery.CloudQueryCLI" + }, + { + "$ref": "#/definitions/io.kestra.plugin.cloudquery.Sync" + }, + { + "$ref": "#/definitions/io.kestra.plugin.nats.Consume" + }, + { + "$ref": "#/definitions/io.kestra.plugin.nats.Produce" + }, + { + "$ref": "#/definitions/io.kestra.plugin.amqp.Consume" + }, + { + "$ref": "#/definitions/io.kestra.plugin.amqp.CreateQueue" + }, + { + "$ref": "#/definitions/io.kestra.plugin.amqp.DeclareExchange" + }, + { + "$ref": "#/definitions/io.kestra.plugin.amqp.Publish" + }, + { + "$ref": "#/definitions/io.kestra.plugin.amqp.QueueBind" + }, + { + "$ref": "#/definitions/io.kestra.plugin.notifications.discord.DiscordExecution" + }, + { + "$ref": "#/definitions/io.kestra.plugin.notifications.discord.DiscordIncomingWebhook" + }, + { + "$ref": "#/definitions/io.kestra.plugin.notifications.google.GoogleChatExecution" + }, + { + "$ref": "#/definitions/io.kestra.plugin.notifications.google.GoogleChatIncomingWebhook" + }, + { + "$ref": "#/definitions/io.kestra.plugin.notifications.mail.MailExecution" + }, + { + "$ref": "#/definitions/io.kestra.plugin.notifications.mail.MailSend" + }, + { + "$ref": "#/definitions/io.kestra.plugin.notifications.opsgenie.OpsgenieAlert" + }, + { + "$ref": "#/definitions/io.kestra.plugin.notifications.opsgenie.OpsgenieExecution" + }, + { + "$ref": "#/definitions/io.kestra.plugin.notifications.pagerduty.PagerDutyAlert" + }, + { + "$ref": "#/definitions/io.kestra.plugin.notifications.pagerduty.PagerDutyExecution" + }, + { + "$ref": "#/definitions/io.kestra.plugin.notifications.sendgrid.SendGridMailExecution" + }, + { + "$ref": "#/definitions/io.kestra.plugin.notifications.sendgrid.SendGridMailSend" + }, + { + "$ref": "#/definitions/io.kestra.plugin.notifications.sentry.SentryAlert" + }, + { + "$ref": "#/definitions/io.kestra.plugin.notifications.sentry.SentryExecution" + }, + { + "$ref": "#/definitions/io.kestra.plugin.notifications.slack.SlackExecution" + }, + { + "$ref": "#/definitions/io.kestra.plugin.notifications.slack.SlackIncomingWebhook" + }, + { + "$ref": "#/definitions/io.kestra.plugin.notifications.teams.TeamsExecution" + }, + { + "$ref": "#/definitions/io.kestra.plugin.notifications.teams.TeamsIncomingWebhook" + }, + { + "$ref": "#/definitions/io.kestra.plugin.notifications.telegram.TelegramExecution" + }, + { + "$ref": "#/definitions/io.kestra.plugin.notifications.telegram.TelegramSend" + }, + { + "$ref": "#/definitions/io.kestra.plugin.notifications.twilio.TwilioAlert" + }, + { + "$ref": "#/definitions/io.kestra.plugin.notifications.twilio.TwilioExecution" + }, + { + "$ref": "#/definitions/io.kestra.plugin.notifications.whatsapp.WhatsAppExecution" + }, + { + "$ref": "#/definitions/io.kestra.plugin.notifications.whatsapp.WhatsAppIncomingWebhook" + }, + { + "$ref": "#/definitions/io.kestra.plugin.notifications.zenduty.ZendutyAlert" + }, + { + "$ref": "#/definitions/io.kestra.plugin.notifications.zenduty.ZendutyExecution" + }, + { + "$ref": "#/definitions/io.kestra.plugin.azure.batch.job.Create" + }, + { + "$ref": "#/definitions/io.kestra.plugin.azure.batch.pool.Resize" + }, + { + "$ref": "#/definitions/io.kestra.plugin.azure.cli.AzCLI" + }, + { + "$ref": "#/definitions/io.kestra.plugin.azure.eventhubs.Consume" + }, + { + "$ref": "#/definitions/io.kestra.plugin.azure.eventhubs.Produce" + }, + { + "$ref": "#/definitions/io.kestra.plugin.azure.storage.blob.Copy" + }, + { + "$ref": "#/definitions/io.kestra.plugin.azure.storage.blob.Delete" + }, + { + "$ref": "#/definitions/io.kestra.plugin.azure.storage.blob.DeleteList" + }, + { + "$ref": "#/definitions/io.kestra.plugin.azure.storage.blob.Download" + }, + { + "$ref": "#/definitions/io.kestra.plugin.azure.storage.blob.Downloads" + }, + { + "$ref": "#/definitions/io.kestra.plugin.azure.storage.blob.List" + }, + { + "$ref": "#/definitions/io.kestra.plugin.azure.storage.blob.SharedAccess" + }, + { + "$ref": "#/definitions/io.kestra.plugin.azure.storage.blob.Upload" + }, + { + "$ref": "#/definitions/io.kestra.plugin.azure.storage.table.Bulk" + }, + { + "$ref": "#/definitions/io.kestra.plugin.azure.storage.table.Delete" + }, + { + "$ref": "#/definitions/io.kestra.plugin.azure.storage.table.Get" + }, + { + "$ref": "#/definitions/io.kestra.plugin.azure.storage.table.List" + }, + { + "$ref": "#/definitions/io.kestra.plugin.transform.grok.TransformItems" + }, + { + "$ref": "#/definitions/io.kestra.plugin.transform.grok.TransformValue" + }, + { + "$ref": "#/definitions/io.kestra.plugin.kubernetes.PodCreate" + }, + { + "$ref": "#/definitions/io.kestra.plugin.kubernetes.kubectl.Apply" + }, + { + "$ref": "#/definitions/io.kestra.plugin.transform.jsonata.TransformItems" + }, + { + "$ref": "#/definitions/io.kestra.plugin.transform.jsonata.TransformValue" + }, + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.vertica.Batch" + }, + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.vertica.Query" + }, + { + "$ref": "#/definitions/io.kestra.plugin.solace.Consume" + }, + { + "$ref": "#/definitions/io.kestra.plugin.solace.Produce" + }, + { + "$ref": "#/definitions/io.kestra.plugin.ansible.cli.AnsibleCLI" + }, + { + "$ref": "#/definitions/io.kestra.plugin.elasticsearch.Bulk" + }, + { + "$ref": "#/definitions/io.kestra.plugin.elasticsearch.Get" + }, + { + "$ref": "#/definitions/io.kestra.plugin.elasticsearch.Load" + }, + { + "$ref": "#/definitions/io.kestra.plugin.elasticsearch.Put" + }, + { + "$ref": "#/definitions/io.kestra.plugin.elasticsearch.Request" + }, + { + "$ref": "#/definitions/io.kestra.plugin.elasticsearch.Scroll" + }, + { + "$ref": "#/definitions/io.kestra.plugin.elasticsearch.Search" + }, + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.pinot.Query" + }, + { + "$ref": "#/definitions/io.kestra.plugin.aws.athena.Query" + }, + { + "$ref": "#/definitions/io.kestra.plugin.aws.cli.AwsCLI" + }, + { + "$ref": "#/definitions/io.kestra.plugin.aws.dynamodb.DeleteItem" + }, + { + "$ref": "#/definitions/io.kestra.plugin.aws.dynamodb.GetItem" + }, + { + "$ref": "#/definitions/io.kestra.plugin.aws.dynamodb.PutItem" + }, + { + "$ref": "#/definitions/io.kestra.plugin.aws.dynamodb.Query" + }, + { + "$ref": "#/definitions/io.kestra.plugin.aws.dynamodb.Scan" + }, + { + "$ref": "#/definitions/io.kestra.plugin.aws.ecr.GetAuthToken" + }, + { + "$ref": "#/definitions/io.kestra.plugin.aws.eventbridge.PutEvents" + }, + { + "$ref": "#/definitions/io.kestra.plugin.aws.kinesis.PutRecords" + }, + { + "$ref": "#/definitions/io.kestra.plugin.aws.lambda.Invoke" + }, + { + "$ref": "#/definitions/io.kestra.plugin.aws.s3.Copy" + }, + { + "$ref": "#/definitions/io.kestra.plugin.aws.s3.CreateBucket" + }, + { + "$ref": "#/definitions/io.kestra.plugin.aws.s3.Delete" + }, + { + "$ref": "#/definitions/io.kestra.plugin.aws.s3.DeleteList" + }, + { + "$ref": "#/definitions/io.kestra.plugin.aws.s3.Download" + }, + { + "$ref": "#/definitions/io.kestra.plugin.aws.s3.Downloads" + }, + { + "$ref": "#/definitions/io.kestra.plugin.aws.s3.List" + }, + { + "$ref": "#/definitions/io.kestra.plugin.aws.s3.Upload" + }, + { + "$ref": "#/definitions/io.kestra.plugin.aws.sns.Publish" + }, + { + "$ref": "#/definitions/io.kestra.plugin.aws.sqs.Consume" + }, + { + "$ref": "#/definitions/io.kestra.plugin.aws.sqs.Publish" + }, + { + "$ref": "#/definitions/io.kestra.plugin.sqlmesh.cli.SQLMeshCLI" + }, + { + "$ref": "#/definitions/io.kestra.plugin.surrealdb.Query" + }, + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.vectorwise.Batch" + }, + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.vectorwise.Query" + }, + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.arrowflight.Query" + }, + { + "$ref": "#/definitions/io.kestra.plugin.terraform.cli.TerraformCLI" + }, + { + "$ref": "#/definitions/io.kestra.plugin.debezium.mongodb.Capture" + }, + { + "$ref": "#/definitions/io.kestra.plugin.fs.ftp.Delete" + }, + { + "$ref": "#/definitions/io.kestra.plugin.fs.ftp.Download" + }, + { + "$ref": "#/definitions/io.kestra.plugin.fs.ftp.Downloads" + }, + { + "$ref": "#/definitions/io.kestra.plugin.fs.ftp.List" + }, + { + "$ref": "#/definitions/io.kestra.plugin.fs.ftp.Move" + }, + { + "$ref": "#/definitions/io.kestra.plugin.fs.ftp.Upload" + }, + { + "$ref": "#/definitions/io.kestra.plugin.fs.ftp.Uploads" + }, + { + "$ref": "#/definitions/io.kestra.plugin.fs.ftps.Delete" + }, + { + "$ref": "#/definitions/io.kestra.plugin.fs.ftps.Download" + }, + { + "$ref": "#/definitions/io.kestra.plugin.fs.ftps.Downloads" + }, + { + "$ref": "#/definitions/io.kestra.plugin.fs.ftps.List" + }, + { + "$ref": "#/definitions/io.kestra.plugin.fs.ftps.Move" + }, + { + "$ref": "#/definitions/io.kestra.plugin.fs.ftps.Upload" + }, + { + "$ref": "#/definitions/io.kestra.plugin.fs.ftps.Uploads" + }, + { + "$ref": "#/definitions/io.kestra.plugin.fs.sftp.Delete" + }, + { + "$ref": "#/definitions/io.kestra.plugin.fs.sftp.Download" + }, + { + "$ref": "#/definitions/io.kestra.plugin.fs.sftp.Downloads" + }, + { + "$ref": "#/definitions/io.kestra.plugin.fs.sftp.List" + }, + { + "$ref": "#/definitions/io.kestra.plugin.fs.sftp.Move" + }, + { + "$ref": "#/definitions/io.kestra.plugin.fs.sftp.Upload" + }, + { + "$ref": "#/definitions/io.kestra.plugin.fs.sftp.Uploads" + }, + { + "$ref": "#/definitions/io.kestra.plugin.fs.smb.Delete" + }, + { + "$ref": "#/definitions/io.kestra.plugin.fs.smb.Download" + }, + { + "$ref": "#/definitions/io.kestra.plugin.fs.smb.Downloads" + }, + { + "$ref": "#/definitions/io.kestra.plugin.fs.smb.List" + }, + { + "$ref": "#/definitions/io.kestra.plugin.fs.smb.Move" + }, + { + "$ref": "#/definitions/io.kestra.plugin.fs.smb.Upload" + }, + { + "$ref": "#/definitions/io.kestra.plugin.fs.smb.Uploads" + }, + { + "$ref": "#/definitions/io.kestra.plugin.fs.ssh.Command" + }, + { + "$ref": "#/definitions/io.kestra.plugin.kafka.Consume" + }, + { + "$ref": "#/definitions/io.kestra.plugin.kafka.Produce" + }, + { + "$ref": "#/definitions/io.kestra.plugin.airflow.dags.TriggerDagRun" + }, + { + "$ref": "#/definitions/io.kestra.core.tasks.scripts.Python" + }, + { + "$ref": "#/definitions/io.kestra.plugin.scripts.python.Commands" + }, + { + "$ref": "#/definitions/io.kestra.plugin.scripts.python.Script" + }, + { + "$ref": "#/definitions/io.kestra.plugin.crypto.openpgp.Decrypt" + }, + { + "$ref": "#/definitions/io.kestra.plugin.crypto.openpgp.Encrypt" + }, + { + "$ref": "#/definitions/io.kestra.plugin.scripts.jython.Eval" + }, + { + "$ref": "#/definitions/io.kestra.plugin.scripts.jython.FileTransform" + }, + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.mysql.Batch" + }, + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.mysql.Query" + }, + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.snowflake.Download" + }, + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.snowflake.Query" + }, + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.snowflake.Upload" + }, + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.redshift.Query" + }, + { + "$ref": "#/definitions/io.kestra.plugin.ldap.Add" + }, + { + "$ref": "#/definitions/io.kestra.plugin.ldap.Delete" + }, + { + "$ref": "#/definitions/io.kestra.plugin.ldap.IonToLdif" + }, + { + "$ref": "#/definitions/io.kestra.plugin.ldap.LdifToIon" + }, + { + "$ref": "#/definitions/io.kestra.plugin.ldap.Modify" + }, + { + "$ref": "#/definitions/io.kestra.plugin.ldap.Search" + }, + { + "$ref": "#/definitions/io.kestra.plugin.databricks.cluster.CreateCluster" + }, + { + "$ref": "#/definitions/io.kestra.plugin.databricks.cluster.DeleteCluster" + }, + { + "$ref": "#/definitions/io.kestra.plugin.databricks.dbfs.Download" + }, + { + "$ref": "#/definitions/io.kestra.plugin.databricks.dbfs.Upload" + }, + { + "$ref": "#/definitions/io.kestra.plugin.databricks.job.CreateJob" + }, + { + "$ref": "#/definitions/io.kestra.plugin.databricks.job.SubmitRun" + }, + { + "$ref": "#/definitions/io.kestra.plugin.databricks.sql.Query" + }, + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.sqlite.Query" + }, + { + "$ref": "#/definitions/io.kestra.plugin.mqtt.Publish" + }, + { + "$ref": "#/definitions/io.kestra.plugin.mqtt.Subscribe" + }, + { + "$ref": "#/definitions/io.kestra.plugin.pulsar.Consume" + }, + { + "$ref": "#/definitions/io.kestra.plugin.pulsar.Produce" + }, + { + "$ref": "#/definitions/io.kestra.plugin.pulsar.Reader" + }, + { + "$ref": "#/definitions/io.kestra.plugin.dbt.cli.Build" + }, + { + "$ref": "#/definitions/io.kestra.plugin.dbt.cli.Compile" + }, + { + "$ref": "#/definitions/io.kestra.plugin.dbt.cli.DbtCLI" + }, + { + "$ref": "#/definitions/io.kestra.plugin.dbt.cli.Deps" + }, + { + "$ref": "#/definitions/io.kestra.plugin.dbt.cli.Freshness" + }, + { + "$ref": "#/definitions/io.kestra.plugin.dbt.cli.List" + }, + { + "$ref": "#/definitions/io.kestra.plugin.dbt.cli.Run" + }, + { + "$ref": "#/definitions/io.kestra.plugin.dbt.cli.Seed" + }, + { + "$ref": "#/definitions/io.kestra.plugin.dbt.cli.Setup" + }, + { + "$ref": "#/definitions/io.kestra.plugin.dbt.cli.Snapshot" + }, + { + "$ref": "#/definitions/io.kestra.plugin.dbt.cli.Test" + }, + { + "$ref": "#/definitions/io.kestra.plugin.dbt.cloud.CheckStatus" + }, + { + "$ref": "#/definitions/io.kestra.plugin.dbt.cloud.TriggerRun" + }, + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.dremio.Query" + }, + { + "$ref": "#/definitions/io.kestra.plugin.googleworkspace.drive.Create" + }, + { + "$ref": "#/definitions/io.kestra.plugin.googleworkspace.drive.Delete" + }, + { + "$ref": "#/definitions/io.kestra.plugin.googleworkspace.drive.Download" + }, + { + "$ref": "#/definitions/io.kestra.plugin.googleworkspace.drive.Export" + }, + { + "$ref": "#/definitions/io.kestra.plugin.googleworkspace.drive.List" + }, + { + "$ref": "#/definitions/io.kestra.plugin.googleworkspace.drive.Upload" + }, + { + "$ref": "#/definitions/io.kestra.plugin.googleworkspace.sheets.Read" + }, + { + "$ref": "#/definitions/io.kestra.plugin.googleworkspace.sheets.ReadRange" + }, + { + "$ref": "#/definitions/io.kestra.plugin.airbyte.cloud.jobs.Reset" + }, + { + "$ref": "#/definitions/io.kestra.plugin.airbyte.cloud.jobs.Sync" + }, + { + "$ref": "#/definitions/io.kestra.plugin.airbyte.connections.CheckStatus" + }, + { + "$ref": "#/definitions/io.kestra.plugin.airbyte.connections.Sync" + }, + { + "$ref": "#/definitions/io.kestra.plugin.fivetran.connectors.Sync" + } + ] + } + }, + "tenantId": { + "type": "string", + "pattern": "^[a-z0-9][a-z0-9_-]*" + }, + "triggers": { + "type": "array", + "items": { + "oneOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.http.Trigger" + }, + { + "$ref": "#/definitions/io.kestra.plugin.core.trigger.Flow" + }, + { + "$ref": "#/definitions/io.kestra.plugin.core.trigger.Schedule" + }, + { + "$ref": "#/definitions/io.kestra.plugin.core.trigger.Webhook" + }, + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.druid.Trigger" + }, + { + "$ref": "#/definitions/io.kestra.plugin.gcp.bigquery.Trigger" + }, + { + "$ref": "#/definitions/io.kestra.plugin.gcp.gcs.Trigger" + }, + { + "$ref": "#/definitions/io.kestra.plugin.gcp.pubsub.RealtimeTrigger" + }, + { + "$ref": "#/definitions/io.kestra.plugin.gcp.pubsub.Trigger" + }, + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.db2.Trigger" + }, + { + "$ref": "#/definitions/io.kestra.plugin.minio.Trigger" + }, + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.rockset.Trigger" + }, + { + "$ref": "#/definitions/io.kestra.plugin.debezium.postgres.RealtimeTrigger" + }, + { + "$ref": "#/definitions/io.kestra.plugin.debezium.postgres.Trigger" + }, + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.trino.Trigger" + }, + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.duckdb.Trigger" + }, + { + "$ref": "#/definitions/io.kestra.plugin.couchbase.Trigger" + }, + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.sqlserver.Trigger" + }, + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.oracle.Trigger" + }, + { + "$ref": "#/definitions/io.kestra.plugin.debezium.mysql.RealtimeTrigger" + }, + { + "$ref": "#/definitions/io.kestra.plugin.debezium.mysql.Trigger" + }, + { + "$ref": "#/definitions/io.kestra.plugin.debezium.sqlserver.RealtimeTrigger" + }, + { + "$ref": "#/definitions/io.kestra.plugin.debezium.sqlserver.Trigger" + }, + { + "$ref": "#/definitions/io.kestra.plugin.cassandra.astradb.Trigger" + }, + { + "$ref": "#/definitions/io.kestra.plugin.cassandra.standard.Trigger" + }, + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.postgresql.Trigger" + }, + { + "$ref": "#/definitions/io.kestra.plugin.debezium.db2.RealtimeTrigger" + }, + { + "$ref": "#/definitions/io.kestra.plugin.debezium.db2.Trigger" + }, + { + "$ref": "#/definitions/io.kestra.plugin.debezium.oracle.RealtimeTrigger" + }, + { + "$ref": "#/definitions/io.kestra.plugin.debezium.oracle.Trigger" + }, + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.sybase.Trigger" + }, + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.as400.Trigger" + }, + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.clickhouse.Trigger" + }, + { + "$ref": "#/definitions/io.kestra.plugin.redis.list.RealtimeTrigger" + }, + { + "$ref": "#/definitions/io.kestra.plugin.redis.list.Trigger" + }, + { + "$ref": "#/definitions/io.kestra.plugin.nats.RealtimeTrigger" + }, + { + "$ref": "#/definitions/io.kestra.plugin.nats.Trigger" + }, + { + "$ref": "#/definitions/io.kestra.plugin.amqp.RealtimeTrigger" + }, + { + "$ref": "#/definitions/io.kestra.plugin.amqp.Trigger" + }, + { + "$ref": "#/definitions/io.kestra.plugin.azure.eventhubs.RealtimeTrigger" + }, + { + "$ref": "#/definitions/io.kestra.plugin.azure.eventhubs.Trigger" + }, + { + "$ref": "#/definitions/io.kestra.plugin.azure.storage.blob.Trigger" + }, + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.vertica.Trigger" + }, + { + "$ref": "#/definitions/io.kestra.plugin.solace.Trigger" + }, + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.pinot.Trigger" + }, + { + "$ref": "#/definitions/io.kestra.plugin.aws.s3.Trigger" + }, + { + "$ref": "#/definitions/io.kestra.plugin.aws.sqs.RealtimeTrigger" + }, + { + "$ref": "#/definitions/io.kestra.plugin.aws.sqs.Trigger" + }, + { + "$ref": "#/definitions/io.kestra.plugin.surrealdb.Trigger" + }, + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.vectorwise.Trigger" + }, + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.arrowflight.Trigger" + }, + { + "$ref": "#/definitions/io.kestra.plugin.debezium.mongodb.RealtimeTrigger" + }, + { + "$ref": "#/definitions/io.kestra.plugin.debezium.mongodb.Trigger" + }, + { + "$ref": "#/definitions/io.kestra.plugin.fs.ftp.Trigger" + }, + { + "$ref": "#/definitions/io.kestra.plugin.fs.ftps.Trigger" + }, + { + "$ref": "#/definitions/io.kestra.plugin.fs.sftp.Trigger" + }, + { + "$ref": "#/definitions/io.kestra.plugin.fs.smb.Trigger" + }, + { + "$ref": "#/definitions/io.kestra.plugin.kafka.RealtimeTrigger" + }, + { + "$ref": "#/definitions/io.kestra.plugin.kafka.Trigger" + }, + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.mysql.Trigger" + }, + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.snowflake.Trigger" + }, + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.redshift.Trigger" + }, + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.sqlite.Trigger" + }, + { + "$ref": "#/definitions/io.kestra.plugin.mqtt.RealtimeTrigger" + }, + { + "$ref": "#/definitions/io.kestra.plugin.mqtt.Trigger" + }, + { + "$ref": "#/definitions/io.kestra.plugin.pulsar.RealtimeTrigger" + }, + { + "$ref": "#/definitions/io.kestra.plugin.pulsar.Trigger" + }, + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.dremio.Trigger" + } + ] + } + }, + "variables": { + "type": "object" + } + }, + "required": ["id", "namespace", "tasks"] + }, + "io.kestra.core.models.flows.Output": { + "type": "object", + "properties": { + "description": { + "type": "string" + }, + "id": { + "type": "string", + "minLength": 1, + "pattern": "^[a-zA-Z0-9][.a-zA-Z0-9_-]*" + }, + "type": { + "type": "string", + "enum": [ + "STRING", + "ENUM", + "SELECT", + "INT", + "FLOAT", + "BOOLEAN", + "DATETIME", + "DATE", + "TIME", + "DURATION", + "FILE", + "JSON", + "URI", + "SECRET", + "ARRAY", + "MULTISELECT" + ] + }, + "value": {} + }, + "required": ["id", "type", "value"] + }, + "io.kestra.core.models.flows.PluginDefault": { + "type": "object", + "properties": { + "forced": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "type": { + "type": "string" + }, + "values": { + "type": "object" + } + }, + "required": ["type"] + }, + "io.kestra.core.models.flows.input.ArrayInput-1": { + "type": "object", + "properties": { + "defaults": {}, + "description": { + "type": "string" + }, + "id": { + "type": "string", + "minLength": 1, + "pattern": "^[a-zA-Z0-9][.a-zA-Z0-9_-]*" + }, + "itemType": { + "type": "string", + "enum": [ + "STRING", + "ENUM", + "SELECT", + "INT", + "FLOAT", + "BOOLEAN", + "DATETIME", + "DATE", + "TIME", + "DURATION", + "FILE", + "JSON", + "URI", + "SECRET", + "ARRAY", + "MULTISELECT" + ], + "title": "Type of the array items.", + "markdownDescription": "Cannot be of type `ARRAY`." + }, + "name": { + "$deprecated": true, + "type": "string" + }, + "required": { + "type": "boolean", + "default": true, + "markdownDescription": "Default value is : `true`" + }, + "type": { + "type": "string", + "enum": [ + "STRING", + "ENUM", + "SELECT", + "INT", + "FLOAT", + "BOOLEAN", + "DATETIME", + "DATE", + "TIME", + "DURATION", + "FILE", + "JSON", + "URI", + "SECRET", + "ARRAY", + "MULTISELECT" + ] + } + }, + "required": ["id", "itemType", "type"] + }, + "io.kestra.core.models.flows.input.ArrayInput-2": { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.core.models.flows.input.ArrayInput-1" + }, + { + "type": "object", + "properties": { + "type": { + "const": "ARRAY" + } + }, + "required": ["type"] + } + ] + }, + "io.kestra.core.models.flows.input.BooleanInput-1": { + "type": "object", + "properties": { + "defaults": {}, + "description": { + "type": "string" + }, + "id": { + "type": "string", + "minLength": 1, + "pattern": "^[a-zA-Z0-9][.a-zA-Z0-9_-]*" + }, + "name": { + "$deprecated": true, + "type": "string" + }, + "required": { + "type": "boolean", + "default": true, + "markdownDescription": "Default value is : `true`" + }, + "type": { + "type": "string", + "enum": [ + "STRING", + "ENUM", + "SELECT", + "INT", + "FLOAT", + "BOOLEAN", + "DATETIME", + "DATE", + "TIME", + "DURATION", + "FILE", + "JSON", + "URI", + "SECRET", + "ARRAY", + "MULTISELECT" + ] + } + }, + "required": ["id", "type"] + }, + "io.kestra.core.models.flows.input.BooleanInput-2": { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.core.models.flows.input.BooleanInput-1" + }, + { + "type": "object", + "properties": { + "type": { + "const": "BOOLEAN" + } + }, + "required": ["type"] + } + ] + }, + "io.kestra.core.models.flows.input.DateInput-1": { + "type": "object", + "properties": { + "after": { + "type": "string", + "format": "date", + "title": "Minimal value." + }, + "before": { + "type": "string", + "format": "date", + "title": "Maximal value." + }, + "defaults": {}, + "description": { + "type": "string" + }, + "id": { + "type": "string", + "minLength": 1, + "pattern": "^[a-zA-Z0-9][.a-zA-Z0-9_-]*" + }, + "name": { + "$deprecated": true, + "type": "string" + }, + "required": { + "type": "boolean", + "default": true, + "markdownDescription": "Default value is : `true`" + }, + "type": { + "type": "string", + "enum": [ + "STRING", + "ENUM", + "SELECT", + "INT", + "FLOAT", + "BOOLEAN", + "DATETIME", + "DATE", + "TIME", + "DURATION", + "FILE", + "JSON", + "URI", + "SECRET", + "ARRAY", + "MULTISELECT" + ] + } + }, + "required": ["id", "type"] + }, + "io.kestra.core.models.flows.input.DateInput-2": { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.core.models.flows.input.DateInput-1" + }, + { + "type": "object", + "properties": { + "type": { + "const": "DATE" + } + }, + "required": ["type"] + } + ] + }, + "io.kestra.core.models.flows.input.DateTimeInput-1": { + "type": "object", + "properties": { + "after": { + "type": "string", + "format": "date-time", + "title": "Minimal value." + }, + "before": { + "type": "string", + "format": "date-time", + "title": "Maximal value." + }, + "defaults": {}, + "description": { + "type": "string" + }, + "id": { + "type": "string", + "minLength": 1, + "pattern": "^[a-zA-Z0-9][.a-zA-Z0-9_-]*" + }, + "name": { + "$deprecated": true, + "type": "string" + }, + "required": { + "type": "boolean", + "default": true, + "markdownDescription": "Default value is : `true`" + }, + "type": { + "type": "string", + "enum": [ + "STRING", + "ENUM", + "SELECT", + "INT", + "FLOAT", + "BOOLEAN", + "DATETIME", + "DATE", + "TIME", + "DURATION", + "FILE", + "JSON", + "URI", + "SECRET", + "ARRAY", + "MULTISELECT" + ] + } + }, + "required": ["id", "type"] + }, + "io.kestra.core.models.flows.input.DateTimeInput-2": { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.core.models.flows.input.DateTimeInput-1" + }, + { + "type": "object", + "properties": { + "type": { + "const": "DATETIME" + } + }, + "required": ["type"] + } + ] + }, + "io.kestra.core.models.flows.input.DurationInput-1": { + "type": "object", + "properties": { + "defaults": {}, + "description": { + "type": "string" + }, + "id": { + "type": "string", + "minLength": 1, + "pattern": "^[a-zA-Z0-9][.a-zA-Z0-9_-]*" + }, + "max": { + "type": "string", + "format": "duration", + "title": "Maximal value." + }, + "min": { + "type": "string", + "format": "duration", + "title": "Minimal value." + }, + "name": { + "$deprecated": true, + "type": "string" + }, + "required": { + "type": "boolean", + "default": true, + "markdownDescription": "Default value is : `true`" + }, + "type": { + "type": "string", + "enum": [ + "STRING", + "ENUM", + "SELECT", + "INT", + "FLOAT", + "BOOLEAN", + "DATETIME", + "DATE", + "TIME", + "DURATION", + "FILE", + "JSON", + "URI", + "SECRET", + "ARRAY", + "MULTISELECT" + ] + } + }, + "required": ["id", "type"] + }, + "io.kestra.core.models.flows.input.DurationInput-2": { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.core.models.flows.input.DurationInput-1" + }, + { + "type": "object", + "properties": { + "type": { + "const": "DURATION" + } + }, + "required": ["type"] + } + ] + }, + "io.kestra.core.models.flows.input.EnumInput-1": { + "$deprecated": "true", + "type": "object", + "properties": { + "defaults": {}, + "description": { + "type": "string" + }, + "id": { + "type": "string", + "minLength": 1, + "pattern": "^[a-zA-Z0-9][.a-zA-Z0-9_-]*" + }, + "name": { + "$deprecated": true, + "type": "string" + }, + "required": { + "type": "boolean", + "default": true, + "markdownDescription": "Default value is : `true`" + }, + "type": { + "type": "string", + "enum": [ + "STRING", + "ENUM", + "SELECT", + "INT", + "FLOAT", + "BOOLEAN", + "DATETIME", + "DATE", + "TIME", + "DURATION", + "FILE", + "JSON", + "URI", + "SECRET", + "ARRAY", + "MULTISELECT" + ] + }, + "values": { + "title": "List of values.", + "markdownDescription": "DEPRECATED; use 'SELECT' instead.", + "type": "array", + "items": { + "type": "string" + } + } + }, + "required": ["id", "type", "values"] + }, + "io.kestra.core.models.flows.input.EnumInput-2": { + "$deprecated": "true", + "allOf": [ + { + "$ref": "#/definitions/io.kestra.core.models.flows.input.EnumInput-1" + }, + { + "type": "object", + "properties": { + "type": { + "const": "ENUM" + } + }, + "required": ["type"] + } + ] + }, + "io.kestra.core.models.flows.input.FileInput-1": { + "type": "object", + "properties": { + "defaults": {}, + "description": { + "type": "string" + }, + "extension": { + "type": "string", + "default": ".upl", + "markdownDescription": "Default value is : `.upl`" + }, + "id": { + "type": "string", + "minLength": 1, + "pattern": "^[a-zA-Z0-9][.a-zA-Z0-9_-]*" + }, + "name": { + "$deprecated": true, + "type": "string" + }, + "required": { + "type": "boolean", + "default": true, + "markdownDescription": "Default value is : `true`" + }, + "type": { + "type": "string", + "enum": [ + "STRING", + "ENUM", + "SELECT", + "INT", + "FLOAT", + "BOOLEAN", + "DATETIME", + "DATE", + "TIME", + "DURATION", + "FILE", + "JSON", + "URI", + "SECRET", + "ARRAY", + "MULTISELECT" + ] + } + }, + "required": ["id", "type"] + }, + "io.kestra.core.models.flows.input.FileInput-2": { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.core.models.flows.input.FileInput-1" + }, + { + "type": "object", + "properties": { + "type": { + "const": "FILE" + } + }, + "required": ["type"] + } + ] + }, + "io.kestra.core.models.flows.input.FloatInput-1": { + "type": "object", + "properties": { + "defaults": {}, + "description": { + "type": "string" + }, + "id": { + "type": "string", + "minLength": 1, + "pattern": "^[a-zA-Z0-9][.a-zA-Z0-9_-]*" + }, + "max": { + "type": "number", + "title": "Maximal value." + }, + "min": { + "type": "number", + "title": "Minimal value." + }, + "name": { + "$deprecated": true, + "type": "string" + }, + "required": { + "type": "boolean", + "default": true, + "markdownDescription": "Default value is : `true`" + }, + "type": { + "type": "string", + "enum": [ + "STRING", + "ENUM", + "SELECT", + "INT", + "FLOAT", + "BOOLEAN", + "DATETIME", + "DATE", + "TIME", + "DURATION", + "FILE", + "JSON", + "URI", + "SECRET", + "ARRAY", + "MULTISELECT" + ] + } + }, + "required": ["id", "type"] + }, + "io.kestra.core.models.flows.input.FloatInput-2": { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.core.models.flows.input.FloatInput-1" + }, + { + "type": "object", + "properties": { + "type": { + "const": "FLOAT" + } + }, + "required": ["type"] + } + ] + }, + "io.kestra.core.models.flows.input.IntInput-1": { + "type": "object", + "properties": { + "defaults": {}, + "description": { + "type": "string" + }, + "id": { + "type": "string", + "minLength": 1, + "pattern": "^[a-zA-Z0-9][.a-zA-Z0-9_-]*" + }, + "max": { + "type": "integer", + "title": "Maximal value." + }, + "min": { + "type": "integer", + "title": "Minimal value." + }, + "name": { + "$deprecated": true, + "type": "string" + }, + "required": { + "type": "boolean", + "default": true, + "markdownDescription": "Default value is : `true`" + }, + "type": { + "type": "string", + "enum": [ + "STRING", + "ENUM", + "SELECT", + "INT", + "FLOAT", + "BOOLEAN", + "DATETIME", + "DATE", + "TIME", + "DURATION", + "FILE", + "JSON", + "URI", + "SECRET", + "ARRAY", + "MULTISELECT" + ] + } + }, + "required": ["id", "type"] + }, + "io.kestra.core.models.flows.input.IntInput-2": { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.core.models.flows.input.IntInput-1" + }, + { + "type": "object", + "properties": { + "type": { + "const": "INT" + } + }, + "required": ["type"] + } + ] + }, + "io.kestra.core.models.flows.input.JsonInput-1": { + "type": "object", + "properties": { + "defaults": {}, + "description": { + "type": "string" + }, + "id": { + "type": "string", + "minLength": 1, + "pattern": "^[a-zA-Z0-9][.a-zA-Z0-9_-]*" + }, + "name": { + "$deprecated": true, + "type": "string" + }, + "required": { + "type": "boolean", + "default": true, + "markdownDescription": "Default value is : `true`" + }, + "type": { + "type": "string", + "enum": [ + "STRING", + "ENUM", + "SELECT", + "INT", + "FLOAT", + "BOOLEAN", + "DATETIME", + "DATE", + "TIME", + "DURATION", + "FILE", + "JSON", + "URI", + "SECRET", + "ARRAY", + "MULTISELECT" + ] + } + }, + "required": ["id", "type"] + }, + "io.kestra.core.models.flows.input.JsonInput-2": { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.core.models.flows.input.JsonInput-1" + }, + { + "type": "object", + "properties": { + "type": { + "const": "JSON" + } + }, + "required": ["type"] + } + ] + }, + "io.kestra.core.models.flows.input.MultiselectInput-1": { + "type": "object", + "properties": { + "defaults": {}, + "description": { + "type": "string" + }, + "id": { + "type": "string", + "minLength": 1, + "pattern": "^[a-zA-Z0-9][.a-zA-Z0-9_-]*" + }, + "itemType": { + "type": "string", + "enum": [ + "STRING", + "ENUM", + "SELECT", + "INT", + "FLOAT", + "BOOLEAN", + "DATETIME", + "DATE", + "TIME", + "DURATION", + "FILE", + "JSON", + "URI", + "SECRET", + "ARRAY", + "MULTISELECT" + ], + "title": "Type of the different values available.", + "default": "STRING", + "markdownDescription": "Cannot be of type `ARRAY` nor 'MULTISELECT'.\n\nDefault value is : `STRING`" + }, + "name": { + "$deprecated": true, + "type": "string" + }, + "options": { + "title": "List of values available.", + "type": "array", + "items": { + "type": "string" + } + }, + "required": { + "type": "boolean", + "default": true, + "markdownDescription": "Default value is : `true`" + }, + "type": { + "type": "string", + "enum": [ + "STRING", + "ENUM", + "SELECT", + "INT", + "FLOAT", + "BOOLEAN", + "DATETIME", + "DATE", + "TIME", + "DURATION", + "FILE", + "JSON", + "URI", + "SECRET", + "ARRAY", + "MULTISELECT" + ] + } + }, + "required": ["id", "options", "type"] + }, + "io.kestra.core.models.flows.input.MultiselectInput-2": { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.core.models.flows.input.MultiselectInput-1" + }, + { + "type": "object", + "properties": { + "type": { + "const": "MULTISELECT" + } + }, + "required": ["type"] + } + ] + }, + "io.kestra.core.models.flows.input.SecretInput-1": { + "type": "object", + "properties": { + "defaults": {}, + "description": { + "type": "string" + }, + "id": { + "type": "string", + "minLength": 1, + "pattern": "^[a-zA-Z0-9][.a-zA-Z0-9_-]*" + }, + "name": { + "$deprecated": true, + "type": "string" + }, + "required": { + "type": "boolean", + "default": true, + "markdownDescription": "Default value is : `true`" + }, + "type": { + "type": "string", + "enum": [ + "STRING", + "ENUM", + "SELECT", + "INT", + "FLOAT", + "BOOLEAN", + "DATETIME", + "DATE", + "TIME", + "DURATION", + "FILE", + "JSON", + "URI", + "SECRET", + "ARRAY", + "MULTISELECT" + ] + }, + "validator": { + "type": "string", + "title": "Regular expression validating the value." + } + }, + "required": ["id", "type"] + }, + "io.kestra.core.models.flows.input.SecretInput-2": { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.core.models.flows.input.SecretInput-1" + }, + { + "type": "object", + "properties": { + "type": { + "const": "SECRET" + } + }, + "required": ["type"] + } + ] + }, + "io.kestra.core.models.flows.input.SelectInput-1": { + "type": "object", + "properties": { + "defaults": {}, + "description": { + "type": "string" + }, + "id": { + "type": "string", + "minLength": 1, + "pattern": "^[a-zA-Z0-9][.a-zA-Z0-9_-]*" + }, + "name": { + "$deprecated": true, + "type": "string" + }, + "required": { + "type": "boolean", + "default": true, + "markdownDescription": "Default value is : `true`" + }, + "type": { + "type": "string", + "enum": [ + "STRING", + "ENUM", + "SELECT", + "INT", + "FLOAT", + "BOOLEAN", + "DATETIME", + "DATE", + "TIME", + "DURATION", + "FILE", + "JSON", + "URI", + "SECRET", + "ARRAY", + "MULTISELECT" + ] + }, + "values": { + "title": "List of values.", + "type": "array", + "items": { + "type": "string" + } + } + }, + "required": ["id", "type", "values"] + }, + "io.kestra.core.models.flows.input.SelectInput-2": { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.core.models.flows.input.SelectInput-1" + }, + { + "type": "object", + "properties": { + "type": { + "const": "SELECT" + } + }, + "required": ["type"] + } + ] + }, + "io.kestra.core.models.flows.input.StringInput-1": { + "type": "object", + "properties": { + "defaults": {}, + "description": { + "type": "string" + }, + "id": { + "type": "string", + "minLength": 1, + "pattern": "^[a-zA-Z0-9][.a-zA-Z0-9_-]*" + }, + "name": { + "$deprecated": true, + "type": "string" + }, + "required": { + "type": "boolean", + "default": true, + "markdownDescription": "Default value is : `true`" + }, + "type": { + "type": "string", + "enum": [ + "STRING", + "ENUM", + "SELECT", + "INT", + "FLOAT", + "BOOLEAN", + "DATETIME", + "DATE", + "TIME", + "DURATION", + "FILE", + "JSON", + "URI", + "SECRET", + "ARRAY", + "MULTISELECT" + ] + }, + "validator": { + "type": "string", + "title": "Regular expression validating the value." + } + }, + "required": ["id", "type"] + }, + "io.kestra.core.models.flows.input.StringInput-2": { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.core.models.flows.input.StringInput-1" + }, + { + "type": "object", + "properties": { + "type": { + "const": "STRING" + } + }, + "required": ["type"] + } + ] + }, + "io.kestra.core.models.flows.input.TimeInput-1": { + "type": "object", + "properties": { + "after": { + "type": "string", + "format": "time", + "title": "Minimal value." + }, + "before": { + "type": "string", + "format": "time", + "title": "Maximal value." + }, + "defaults": {}, + "description": { + "type": "string" + }, + "id": { + "type": "string", + "minLength": 1, + "pattern": "^[a-zA-Z0-9][.a-zA-Z0-9_-]*" + }, + "name": { + "$deprecated": true, + "type": "string" + }, + "required": { + "type": "boolean", + "default": true, + "markdownDescription": "Default value is : `true`" + }, + "type": { + "type": "string", + "enum": [ + "STRING", + "ENUM", + "SELECT", + "INT", + "FLOAT", + "BOOLEAN", + "DATETIME", + "DATE", + "TIME", + "DURATION", + "FILE", + "JSON", + "URI", + "SECRET", + "ARRAY", + "MULTISELECT" + ] + } + }, + "required": ["id", "type"] + }, + "io.kestra.core.models.flows.input.TimeInput-2": { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.core.models.flows.input.TimeInput-1" + }, + { + "type": "object", + "properties": { + "type": { + "const": "TIME" + } + }, + "required": ["type"] + } + ] + }, + "io.kestra.core.models.flows.input.URIInput-1": { + "type": "object", + "properties": { + "defaults": {}, + "description": { + "type": "string" + }, + "id": { + "type": "string", + "minLength": 1, + "pattern": "^[a-zA-Z0-9][.a-zA-Z0-9_-]*" + }, + "name": { + "$deprecated": true, + "type": "string" + }, + "required": { + "type": "boolean", + "default": true, + "markdownDescription": "Default value is : `true`" + }, + "type": { + "type": "string", + "enum": [ + "STRING", + "ENUM", + "SELECT", + "INT", + "FLOAT", + "BOOLEAN", + "DATETIME", + "DATE", + "TIME", + "DURATION", + "FILE", + "JSON", + "URI", + "SECRET", + "ARRAY", + "MULTISELECT" + ] + } + }, + "required": ["id", "type"] + }, + "io.kestra.core.models.flows.input.URIInput-2": { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.core.models.flows.input.URIInput-1" + }, + { + "type": "object", + "properties": { + "type": { + "const": "URI" + } + }, + "required": ["type"] + } + ] + }, + "io.kestra.core.models.listeners.Listener": { + "type": "object", + "properties": { + "conditions": { + "type": "array", + "items": { + "oneOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.DateTimeBetweenCondition" + }, + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.DayWeekCondition" + }, + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.DayWeekInMonthCondition" + }, + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.ExecutionFlowCondition" + }, + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.ExecutionLabelsCondition" + }, + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.ExecutionNamespaceCondition" + }, + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.ExecutionOutputsCondition" + }, + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.ExecutionStatusCondition" + }, + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.ExpressionCondition" + }, + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.FlowCondition" + }, + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.FlowNamespaceCondition" + }, + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.HasRetryAttemptCondition" + }, + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.MultipleCondition" + }, + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.NotCondition" + }, + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.OrCondition" + }, + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.PublicHolidayCondition" + }, + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.TimeBetweenCondition" + }, + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.WeekendCondition" + } + ] + } + }, + "description": { + "type": "string" + }, + "tasks": { + "minItems": 1, + "type": "array", + "items": { + "oneOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.debug.Echo" + }, + { + "$ref": "#/definitions/io.kestra.plugin.core.debug.Return" + }, + { + "$ref": "#/definitions/io.kestra.plugin.core.execution.Count" + }, + { + "$ref": "#/definitions/io.kestra.plugin.core.execution.Fail" + }, + { + "$ref": "#/definitions/io.kestra.plugin.core.execution.Labels" + }, + { + "$ref": "#/definitions/io.kestra.plugin.core.execution.PurgeExecutions" + }, + { + "$ref": "#/definitions/io.kestra.plugin.core.execution.Resume" + }, + { + "$ref": "#/definitions/io.kestra.plugin.core.flow.AllowFailure" + }, + { + "$ref": "#/definitions/io.kestra.plugin.core.flow.Dag" + }, + { + "$ref": "#/definitions/io.kestra.plugin.core.flow.EachParallel" + }, + { + "$ref": "#/definitions/io.kestra.plugin.core.flow.EachSequential" + }, + { + "$ref": "#/definitions/io.kestra.plugin.core.flow.ForEach" + }, + { + "$ref": "#/definitions/io.kestra.plugin.core.flow.ForEachItem" + }, + { + "$ref": "#/definitions/io.kestra.plugin.core.flow.If" + }, + { + "$ref": "#/definitions/io.kestra.plugin.core.flow.Parallel" + }, + { + "$ref": "#/definitions/io.kestra.plugin.core.flow.Pause" + }, + { + "$ref": "#/definitions/io.kestra.plugin.core.flow.Sequential" + }, + { + "$ref": "#/definitions/io.kestra.plugin.core.flow.Subflow" + }, + { + "$ref": "#/definitions/io.kestra.plugin.core.flow.Switch" + }, + { + "$ref": "#/definitions/io.kestra.plugin.core.flow.Template" + }, + { + "$ref": "#/definitions/io.kestra.plugin.core.flow.WaitFor" + }, + { + "$ref": "#/definitions/io.kestra.plugin.core.flow.WorkingDirectory" + }, + { + "$ref": "#/definitions/io.kestra.plugin.core.http.Download" + }, + { + "$ref": "#/definitions/io.kestra.plugin.core.http.Request" + }, + { + "$ref": "#/definitions/io.kestra.plugin.core.kv.Delete" + }, + { + "$ref": "#/definitions/io.kestra.plugin.core.kv.Get" + }, + { + "$ref": "#/definitions/io.kestra.plugin.core.kv.GetKeys" + }, + { + "$ref": "#/definitions/io.kestra.plugin.core.kv.Set" + }, + { + "$ref": "#/definitions/io.kestra.plugin.core.log.Fetch" + }, + { + "$ref": "#/definitions/io.kestra.plugin.core.log.Log" + }, + { + "$ref": "#/definitions/io.kestra.plugin.core.log.PurgeLogs" + }, + { + "$ref": "#/definitions/io.kestra.plugin.core.namespace.DeleteFiles" + }, + { + "$ref": "#/definitions/io.kestra.plugin.core.namespace.DownloadFiles" + }, + { + "$ref": "#/definitions/io.kestra.plugin.core.namespace.UploadFiles" + }, + { + "$ref": "#/definitions/io.kestra.plugin.core.output.OutputValues" + }, + { + "$ref": "#/definitions/io.kestra.plugin.core.state.Delete" + }, + { + "$ref": "#/definitions/io.kestra.plugin.core.state.Get" + }, + { + "$ref": "#/definitions/io.kestra.plugin.core.state.Set" + }, + { + "$ref": "#/definitions/io.kestra.plugin.core.storage.Concat" + }, + { + "$ref": "#/definitions/io.kestra.plugin.core.storage.DeduplicateItems" + }, + { + "$ref": "#/definitions/io.kestra.plugin.core.storage.Delete" + }, + { + "$ref": "#/definitions/io.kestra.plugin.core.storage.FilterItems" + }, + { + "$ref": "#/definitions/io.kestra.plugin.core.storage.LocalFiles" + }, + { + "$ref": "#/definitions/io.kestra.plugin.core.storage.PurgeCurrentExecutionFiles" + }, + { + "$ref": "#/definitions/io.kestra.plugin.core.storage.Reverse" + }, + { + "$ref": "#/definitions/io.kestra.plugin.core.storage.Size" + }, + { + "$ref": "#/definitions/io.kestra.plugin.core.storage.Split" + }, + { + "$ref": "#/definitions/io.kestra.plugin.core.templating.TemplatedTask" + }, + { + "$ref": "#/definitions/io.kestra.plugin.core.trigger.Toggle" + }, + { + "$ref": "#/definitions/io.kestra.plugin.hightouch.Sync" + }, + { + "$ref": "#/definitions/io.kestra.plugin.github.code.Search" + }, + { + "$ref": "#/definitions/io.kestra.plugin.github.commits.Search" + }, + { + "$ref": "#/definitions/io.kestra.plugin.github.issues.Comment" + }, + { + "$ref": "#/definitions/io.kestra.plugin.github.issues.Create" + }, + { + "$ref": "#/definitions/io.kestra.plugin.github.issues.Search" + }, + { + "$ref": "#/definitions/io.kestra.plugin.github.pulls.Create" + }, + { + "$ref": "#/definitions/io.kestra.plugin.github.pulls.Search" + }, + { + "$ref": "#/definitions/io.kestra.plugin.github.repositories.Search" + }, + { + "$ref": "#/definitions/io.kestra.plugin.github.topics.Search" + }, + { + "$ref": "#/definitions/io.kestra.plugin.github.users.Search" + }, + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.druid.Query" + }, + { + "$ref": "#/definitions/io.kestra.plugin.weaviate.BatchCreate" + }, + { + "$ref": "#/definitions/io.kestra.plugin.weaviate.Delete" + }, + { + "$ref": "#/definitions/io.kestra.plugin.weaviate.Query" + }, + { + "$ref": "#/definitions/io.kestra.plugin.weaviate.SchemaCreate" + }, + { + "$ref": "#/definitions/io.kestra.plugin.spark.JarSubmit" + }, + { + "$ref": "#/definitions/io.kestra.plugin.spark.PythonSubmit" + }, + { + "$ref": "#/definitions/io.kestra.plugin.spark.RSubmit" + }, + { + "$ref": "#/definitions/io.kestra.plugin.spark.SparkCLI" + }, + { + "$ref": "#/definitions/io.kestra.plugin.gcp.auth.OauthAccessToken" + }, + { + "$ref": "#/definitions/io.kestra.plugin.gcp.bigquery.Copy" + }, + { + "$ref": "#/definitions/io.kestra.plugin.gcp.bigquery.CopyPartitions" + }, + { + "$ref": "#/definitions/io.kestra.plugin.gcp.bigquery.CreateDataset" + }, + { + "$ref": "#/definitions/io.kestra.plugin.gcp.bigquery.CreateTable" + }, + { + "$ref": "#/definitions/io.kestra.plugin.gcp.bigquery.DeleteDataset" + }, + { + "$ref": "#/definitions/io.kestra.plugin.gcp.bigquery.DeletePartitions" + }, + { + "$ref": "#/definitions/io.kestra.plugin.gcp.bigquery.DeleteTable" + }, + { + "$ref": "#/definitions/io.kestra.plugin.gcp.bigquery.ExtractToGcs" + }, + { + "$ref": "#/definitions/io.kestra.plugin.gcp.bigquery.Load" + }, + { + "$ref": "#/definitions/io.kestra.plugin.gcp.bigquery.LoadFromGcs" + }, + { + "$ref": "#/definitions/io.kestra.plugin.gcp.bigquery.Query" + }, + { + "$ref": "#/definitions/io.kestra.plugin.gcp.bigquery.StorageWrite" + }, + { + "$ref": "#/definitions/io.kestra.plugin.gcp.bigquery.TableMetadata" + }, + { + "$ref": "#/definitions/io.kestra.plugin.gcp.bigquery.UpdateDataset" + }, + { + "$ref": "#/definitions/io.kestra.plugin.gcp.bigquery.UpdateTable" + }, + { + "$ref": "#/definitions/io.kestra.plugin.gcp.cli.GCloudCLI" + }, + { + "$ref": "#/definitions/io.kestra.plugin.gcp.dataproc.batches.PySparkSubmit" + }, + { + "$ref": "#/definitions/io.kestra.plugin.gcp.dataproc.batches.RSparkSubmit" + }, + { + "$ref": "#/definitions/io.kestra.plugin.gcp.dataproc.batches.SparkSqlSubmit" + }, + { + "$ref": "#/definitions/io.kestra.plugin.gcp.dataproc.batches.SparkSubmit" + }, + { + "$ref": "#/definitions/io.kestra.plugin.gcp.firestore.Delete" + }, + { + "$ref": "#/definitions/io.kestra.plugin.gcp.firestore.Get" + }, + { + "$ref": "#/definitions/io.kestra.plugin.gcp.firestore.Query" + }, + { + "$ref": "#/definitions/io.kestra.plugin.gcp.firestore.Set" + }, + { + "$ref": "#/definitions/io.kestra.plugin.gcp.gcs.Compose" + }, + { + "$ref": "#/definitions/io.kestra.plugin.gcp.gcs.Copy" + }, + { + "$ref": "#/definitions/io.kestra.plugin.gcp.gcs.CreateBucket" + }, + { + "$ref": "#/definitions/io.kestra.plugin.gcp.gcs.CreateBucketIamPolicy" + }, + { + "$ref": "#/definitions/io.kestra.plugin.gcp.gcs.Delete" + }, + { + "$ref": "#/definitions/io.kestra.plugin.gcp.gcs.DeleteBucket" + }, + { + "$ref": "#/definitions/io.kestra.plugin.gcp.gcs.DeleteList" + }, + { + "$ref": "#/definitions/io.kestra.plugin.gcp.gcs.Download" + }, + { + "$ref": "#/definitions/io.kestra.plugin.gcp.gcs.Downloads" + }, + { + "$ref": "#/definitions/io.kestra.plugin.gcp.gcs.List" + }, + { + "$ref": "#/definitions/io.kestra.plugin.gcp.gcs.UpdateBucket" + }, + { + "$ref": "#/definitions/io.kestra.plugin.gcp.gcs.Upload" + }, + { + "$ref": "#/definitions/io.kestra.plugin.gcp.gke.ClusterMetadata" + }, + { + "$ref": "#/definitions/io.kestra.plugin.gcp.pubsub.Consume" + }, + { + "$ref": "#/definitions/io.kestra.plugin.gcp.pubsub.Publish" + }, + { + "$ref": "#/definitions/io.kestra.plugin.gcp.vertexai.ChatCompletion" + }, + { + "$ref": "#/definitions/io.kestra.plugin.gcp.vertexai.CustomJob" + }, + { + "$ref": "#/definitions/io.kestra.plugin.gcp.vertexai.MultimodalCompletion" + }, + { + "$ref": "#/definitions/io.kestra.plugin.gcp.vertexai.TextCompletion" + }, + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.db2.Query" + }, + { + "$ref": "#/definitions/io.kestra.plugin.minio.Copy" + }, + { + "$ref": "#/definitions/io.kestra.plugin.minio.CreateBucket" + }, + { + "$ref": "#/definitions/io.kestra.plugin.minio.Delete" + }, + { + "$ref": "#/definitions/io.kestra.plugin.minio.DeleteList" + }, + { + "$ref": "#/definitions/io.kestra.plugin.minio.Download" + }, + { + "$ref": "#/definitions/io.kestra.plugin.minio.Downloads" + }, + { + "$ref": "#/definitions/io.kestra.plugin.minio.List" + }, + { + "$ref": "#/definitions/io.kestra.plugin.minio.Upload" + }, + { + "$ref": "#/definitions/io.kestra.plugin.soda.Scan" + }, + { + "$ref": "#/definitions/io.kestra.plugin.modal.cli.ModalCLI" + }, + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.rockset.Query" + }, + { + "$ref": "#/definitions/io.kestra.plugin.scripts.nashorn.Eval" + }, + { + "$ref": "#/definitions/io.kestra.plugin.scripts.nashorn.FileTransform" + }, + { + "$ref": "#/definitions/io.kestra.plugin.scripts.ruby.Commands" + }, + { + "$ref": "#/definitions/io.kestra.plugin.scripts.ruby.Script" + }, + { + "$ref": "#/definitions/io.kestra.plugin.mongodb.Bulk" + }, + { + "$ref": "#/definitions/io.kestra.plugin.mongodb.Delete" + }, + { + "$ref": "#/definitions/io.kestra.plugin.mongodb.Find" + }, + { + "$ref": "#/definitions/io.kestra.plugin.mongodb.InsertOne" + }, + { + "$ref": "#/definitions/io.kestra.plugin.mongodb.Load" + }, + { + "$ref": "#/definitions/io.kestra.plugin.mongodb.Update" + }, + { + "$ref": "#/definitions/io.kestra.plugin.debezium.postgres.Capture" + }, + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.BigQuery" + }, + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.BingAds" + }, + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.ChargeBee" + }, + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.ExchangeRateHost" + }, + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.FacebookAds" + }, + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.Fastly" + }, + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.GenericTap" + }, + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.GitHub" + }, + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.Gitlab" + }, + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.GoogleAdwords" + }, + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.GoogleAnalytics" + }, + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.GoogleSearchConsole" + }, + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.HubSpot" + }, + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.Marketo" + }, + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.Netsuite" + }, + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.PipelinewiseMongoDb" + }, + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.PipelinewiseMysql" + }, + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.PipelinewiseOracle" + }, + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.PipelinewisePostgres" + }, + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.PipelinewiseSqlServer" + }, + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.Quickbooks" + }, + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.Recharge" + }, + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.SageIntacct" + }, + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.Salesforce" + }, + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.Shopify" + }, + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.Slack" + }, + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.Stripe" + }, + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.Zendesk" + }, + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.Zoom" + }, + { + "$ref": "#/definitions/io.kestra.plugin.singer.targets.AdswerveBigQuery" + }, + { + "$ref": "#/definitions/io.kestra.plugin.singer.targets.Csv" + }, + { + "$ref": "#/definitions/io.kestra.plugin.singer.targets.DatamillCoPostgres" + }, + { + "$ref": "#/definitions/io.kestra.plugin.singer.targets.GenericTarget" + }, + { + "$ref": "#/definitions/io.kestra.plugin.singer.targets.Json" + }, + { + "$ref": "#/definitions/io.kestra.plugin.singer.targets.MeltanoSnowflake" + }, + { + "$ref": "#/definitions/io.kestra.plugin.singer.targets.Oracle" + }, + { + "$ref": "#/definitions/io.kestra.plugin.singer.targets.PipelinewisePostgres" + }, + { + "$ref": "#/definitions/io.kestra.plugin.singer.targets.PipelinewiseRedshift" + }, + { + "$ref": "#/definitions/io.kestra.plugin.singer.targets.PipelinewiseSnowflake" + }, + { + "$ref": "#/definitions/io.kestra.plugin.singer.targets.SqlServer" + }, + { + "$ref": "#/definitions/io.kestra.plugin.scripts.julia.Commands" + }, + { + "$ref": "#/definitions/io.kestra.plugin.scripts.julia.Script" + }, + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.trino.Query" + }, + { + "$ref": "#/definitions/io.kestra.plugin.compress.ArchiveCompress" + }, + { + "$ref": "#/definitions/io.kestra.plugin.compress.ArchiveDecompress" + }, + { + "$ref": "#/definitions/io.kestra.plugin.compress.FileCompress" + }, + { + "$ref": "#/definitions/io.kestra.plugin.compress.FileDecompress" + }, + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.duckdb.Query" + }, + { + "$ref": "#/definitions/io.kestra.plugin.dataform.cli.DataformCLI" + }, + { + "$ref": "#/definitions/io.kestra.plugin.couchbase.Query" + }, + { + "$ref": "#/definitions/io.kestra.plugin.serdes.avro.AvroToIon" + }, + { + "$ref": "#/definitions/io.kestra.plugin.serdes.avro.IonToAvro" + }, + { + "$ref": "#/definitions/io.kestra.plugin.serdes.csv.CsvToIon" + }, + { + "$ref": "#/definitions/io.kestra.plugin.serdes.csv.IonToCsv" + }, + { + "$ref": "#/definitions/io.kestra.plugin.serdes.excel.ExcelToIon" + }, + { + "$ref": "#/definitions/io.kestra.plugin.serdes.excel.IonToExcel" + }, + { + "$ref": "#/definitions/io.kestra.plugin.serdes.json.IonToJson" + }, + { + "$ref": "#/definitions/io.kestra.plugin.serdes.json.JsonToIon" + }, + { + "$ref": "#/definitions/io.kestra.plugin.serdes.parquet.IonToParquet" + }, + { + "$ref": "#/definitions/io.kestra.plugin.serdes.parquet.ParquetToIon" + }, + { + "$ref": "#/definitions/io.kestra.plugin.serdes.xml.IonToXml" + }, + { + "$ref": "#/definitions/io.kestra.plugin.serdes.xml.XmlToIon" + }, + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.sqlserver.Batch" + }, + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.sqlserver.Query" + }, + { + "$ref": "#/definitions/io.kestra.plugin.powerbi.RefreshGroupDataset" + }, + { + "$ref": "#/definitions/io.kestra.core.tasks.scripts.Node" + }, + { + "$ref": "#/definitions/io.kestra.plugin.scripts.node.Commands" + }, + { + "$ref": "#/definitions/io.kestra.plugin.scripts.node.Script" + }, + { + "$ref": "#/definitions/io.kestra.plugin.docker.Build" + }, + { + "$ref": "#/definitions/io.kestra.plugin.docker.Run" + }, + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.oracle.Batch" + }, + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.oracle.Query" + }, + { + "$ref": "#/definitions/io.kestra.plugin.zendesk.tickets.Create" + }, + { + "$ref": "#/definitions/io.kestra.plugin.debezium.mysql.Capture" + }, + { + "$ref": "#/definitions/io.kestra.plugin.debezium.sqlserver.Capture" + }, + { + "$ref": "#/definitions/io.kestra.plugin.cassandra.astradb.Query" + }, + { + "$ref": "#/definitions/io.kestra.plugin.cassandra.standard.Query" + }, + { + "$ref": "#/definitions/io.kestra.plugin.openai.ChatCompletion" + }, + { + "$ref": "#/definitions/io.kestra.plugin.openai.CreateImage" + }, + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.postgresql.Batch" + }, + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.postgresql.CopyIn" + }, + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.postgresql.CopyOut" + }, + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.postgresql.Query" + }, + { + "$ref": "#/definitions/io.kestra.core.tasks.scripts.Bash" + }, + { + "$ref": "#/definitions/io.kestra.plugin.scripts.shell.Commands" + }, + { + "$ref": "#/definitions/io.kestra.plugin.scripts.shell.Script" + }, + { + "$ref": "#/definitions/io.kestra.plugin.scripts.r.Commands" + }, + { + "$ref": "#/definitions/io.kestra.plugin.scripts.r.Script" + }, + { + "$ref": "#/definitions/io.kestra.plugin.debezium.db2.Capture" + }, + { + "$ref": "#/definitions/io.kestra.plugin.tika.Parse" + }, + { + "$ref": "#/definitions/io.kestra.plugin.jira.issues.Create" + }, + { + "$ref": "#/definitions/io.kestra.plugin.jira.issues.CreateComment" + }, + { + "$ref": "#/definitions/io.kestra.plugin.debezium.oracle.Capture" + }, + { + "$ref": "#/definitions/io.kestra.plugin.git.Clone" + }, + { + "$ref": "#/definitions/io.kestra.plugin.git.Push" + }, + { + "$ref": "#/definitions/io.kestra.plugin.git.PushFlows" + }, + { + "$ref": "#/definitions/io.kestra.plugin.git.PushNamespaceFiles" + }, + { + "$ref": "#/definitions/io.kestra.plugin.git.Sync" + }, + { + "$ref": "#/definitions/io.kestra.plugin.git.SyncFlows" + }, + { + "$ref": "#/definitions/io.kestra.plugin.git.SyncNamespaceFiles" + }, + { + "$ref": "#/definitions/io.kestra.plugin.servicenow.Post" + }, + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.sybase.Query" + }, + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.as400.Query" + }, + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.clickhouse.BulkInsert" + }, + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.clickhouse.Query" + }, + { + "$ref": "#/definitions/io.kestra.plugin.scripts.groovy.Eval" + }, + { + "$ref": "#/definitions/io.kestra.plugin.scripts.groovy.FileTransform" + }, + { + "$ref": "#/definitions/io.kestra.plugin.redis.list.ListPop" + }, + { + "$ref": "#/definitions/io.kestra.plugin.redis.list.ListPush" + }, + { + "$ref": "#/definitions/io.kestra.plugin.redis.pubsub.Publish" + }, + { + "$ref": "#/definitions/io.kestra.plugin.redis.string.Delete" + }, + { + "$ref": "#/definitions/io.kestra.plugin.redis.string.Get" + }, + { + "$ref": "#/definitions/io.kestra.plugin.redis.string.Set" + }, + { + "$ref": "#/definitions/io.kestra.plugin.linear.issues.Create" + }, + { + "$ref": "#/definitions/io.kestra.plugin.malloy.CLI" + }, + { + "$ref": "#/definitions/io.kestra.plugin.neo4j.Batch" + }, + { + "$ref": "#/definitions/io.kestra.plugin.neo4j.Query" + }, + { + "$ref": "#/definitions/io.kestra.plugin.hubspot.tickets.Create" + }, + { + "$ref": "#/definitions/io.kestra.plugin.scripts.powershell.Commands" + }, + { + "$ref": "#/definitions/io.kestra.plugin.scripts.powershell.Script" + }, + { + "$ref": "#/definitions/io.kestra.plugin.cloudquery.CloudQueryCLI" + }, + { + "$ref": "#/definitions/io.kestra.plugin.cloudquery.Sync" + }, + { + "$ref": "#/definitions/io.kestra.plugin.nats.Consume" + }, + { + "$ref": "#/definitions/io.kestra.plugin.nats.Produce" + }, + { + "$ref": "#/definitions/io.kestra.plugin.amqp.Consume" + }, + { + "$ref": "#/definitions/io.kestra.plugin.amqp.CreateQueue" + }, + { + "$ref": "#/definitions/io.kestra.plugin.amqp.DeclareExchange" + }, + { + "$ref": "#/definitions/io.kestra.plugin.amqp.Publish" + }, + { + "$ref": "#/definitions/io.kestra.plugin.amqp.QueueBind" + }, + { + "$ref": "#/definitions/io.kestra.plugin.notifications.discord.DiscordExecution" + }, + { + "$ref": "#/definitions/io.kestra.plugin.notifications.discord.DiscordIncomingWebhook" + }, + { + "$ref": "#/definitions/io.kestra.plugin.notifications.google.GoogleChatExecution" + }, + { + "$ref": "#/definitions/io.kestra.plugin.notifications.google.GoogleChatIncomingWebhook" + }, + { + "$ref": "#/definitions/io.kestra.plugin.notifications.mail.MailExecution" + }, + { + "$ref": "#/definitions/io.kestra.plugin.notifications.mail.MailSend" + }, + { + "$ref": "#/definitions/io.kestra.plugin.notifications.opsgenie.OpsgenieAlert" + }, + { + "$ref": "#/definitions/io.kestra.plugin.notifications.opsgenie.OpsgenieExecution" + }, + { + "$ref": "#/definitions/io.kestra.plugin.notifications.pagerduty.PagerDutyAlert" + }, + { + "$ref": "#/definitions/io.kestra.plugin.notifications.pagerduty.PagerDutyExecution" + }, + { + "$ref": "#/definitions/io.kestra.plugin.notifications.sendgrid.SendGridMailExecution" + }, + { + "$ref": "#/definitions/io.kestra.plugin.notifications.sendgrid.SendGridMailSend" + }, + { + "$ref": "#/definitions/io.kestra.plugin.notifications.sentry.SentryAlert" + }, + { + "$ref": "#/definitions/io.kestra.plugin.notifications.sentry.SentryExecution" + }, + { + "$ref": "#/definitions/io.kestra.plugin.notifications.slack.SlackExecution" + }, + { + "$ref": "#/definitions/io.kestra.plugin.notifications.slack.SlackIncomingWebhook" + }, + { + "$ref": "#/definitions/io.kestra.plugin.notifications.teams.TeamsExecution" + }, + { + "$ref": "#/definitions/io.kestra.plugin.notifications.teams.TeamsIncomingWebhook" + }, + { + "$ref": "#/definitions/io.kestra.plugin.notifications.telegram.TelegramExecution" + }, + { + "$ref": "#/definitions/io.kestra.plugin.notifications.telegram.TelegramSend" + }, + { + "$ref": "#/definitions/io.kestra.plugin.notifications.twilio.TwilioAlert" + }, + { + "$ref": "#/definitions/io.kestra.plugin.notifications.twilio.TwilioExecution" + }, + { + "$ref": "#/definitions/io.kestra.plugin.notifications.whatsapp.WhatsAppExecution" + }, + { + "$ref": "#/definitions/io.kestra.plugin.notifications.whatsapp.WhatsAppIncomingWebhook" + }, + { + "$ref": "#/definitions/io.kestra.plugin.notifications.zenduty.ZendutyAlert" + }, + { + "$ref": "#/definitions/io.kestra.plugin.notifications.zenduty.ZendutyExecution" + }, + { + "$ref": "#/definitions/io.kestra.plugin.azure.batch.job.Create" + }, + { + "$ref": "#/definitions/io.kestra.plugin.azure.batch.pool.Resize" + }, + { + "$ref": "#/definitions/io.kestra.plugin.azure.cli.AzCLI" + }, + { + "$ref": "#/definitions/io.kestra.plugin.azure.eventhubs.Consume" + }, + { + "$ref": "#/definitions/io.kestra.plugin.azure.eventhubs.Produce" + }, + { + "$ref": "#/definitions/io.kestra.plugin.azure.storage.blob.Copy" + }, + { + "$ref": "#/definitions/io.kestra.plugin.azure.storage.blob.Delete" + }, + { + "$ref": "#/definitions/io.kestra.plugin.azure.storage.blob.DeleteList" + }, + { + "$ref": "#/definitions/io.kestra.plugin.azure.storage.blob.Download" + }, + { + "$ref": "#/definitions/io.kestra.plugin.azure.storage.blob.Downloads" + }, + { + "$ref": "#/definitions/io.kestra.plugin.azure.storage.blob.List" + }, + { + "$ref": "#/definitions/io.kestra.plugin.azure.storage.blob.SharedAccess" + }, + { + "$ref": "#/definitions/io.kestra.plugin.azure.storage.blob.Upload" + }, + { + "$ref": "#/definitions/io.kestra.plugin.azure.storage.table.Bulk" + }, + { + "$ref": "#/definitions/io.kestra.plugin.azure.storage.table.Delete" + }, + { + "$ref": "#/definitions/io.kestra.plugin.azure.storage.table.Get" + }, + { + "$ref": "#/definitions/io.kestra.plugin.azure.storage.table.List" + }, + { + "$ref": "#/definitions/io.kestra.plugin.transform.grok.TransformItems" + }, + { + "$ref": "#/definitions/io.kestra.plugin.transform.grok.TransformValue" + }, + { + "$ref": "#/definitions/io.kestra.plugin.kubernetes.PodCreate" + }, + { + "$ref": "#/definitions/io.kestra.plugin.kubernetes.kubectl.Apply" + }, + { + "$ref": "#/definitions/io.kestra.plugin.transform.jsonata.TransformItems" + }, + { + "$ref": "#/definitions/io.kestra.plugin.transform.jsonata.TransformValue" + }, + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.vertica.Batch" + }, + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.vertica.Query" + }, + { + "$ref": "#/definitions/io.kestra.plugin.solace.Consume" + }, + { + "$ref": "#/definitions/io.kestra.plugin.solace.Produce" + }, + { + "$ref": "#/definitions/io.kestra.plugin.ansible.cli.AnsibleCLI" + }, + { + "$ref": "#/definitions/io.kestra.plugin.elasticsearch.Bulk" + }, + { + "$ref": "#/definitions/io.kestra.plugin.elasticsearch.Get" + }, + { + "$ref": "#/definitions/io.kestra.plugin.elasticsearch.Load" + }, + { + "$ref": "#/definitions/io.kestra.plugin.elasticsearch.Put" + }, + { + "$ref": "#/definitions/io.kestra.plugin.elasticsearch.Request" + }, + { + "$ref": "#/definitions/io.kestra.plugin.elasticsearch.Scroll" + }, + { + "$ref": "#/definitions/io.kestra.plugin.elasticsearch.Search" + }, + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.pinot.Query" + }, + { + "$ref": "#/definitions/io.kestra.plugin.aws.athena.Query" + }, + { + "$ref": "#/definitions/io.kestra.plugin.aws.cli.AwsCLI" + }, + { + "$ref": "#/definitions/io.kestra.plugin.aws.dynamodb.DeleteItem" + }, + { + "$ref": "#/definitions/io.kestra.plugin.aws.dynamodb.GetItem" + }, + { + "$ref": "#/definitions/io.kestra.plugin.aws.dynamodb.PutItem" + }, + { + "$ref": "#/definitions/io.kestra.plugin.aws.dynamodb.Query" + }, + { + "$ref": "#/definitions/io.kestra.plugin.aws.dynamodb.Scan" + }, + { + "$ref": "#/definitions/io.kestra.plugin.aws.ecr.GetAuthToken" + }, + { + "$ref": "#/definitions/io.kestra.plugin.aws.eventbridge.PutEvents" + }, + { + "$ref": "#/definitions/io.kestra.plugin.aws.kinesis.PutRecords" + }, + { + "$ref": "#/definitions/io.kestra.plugin.aws.lambda.Invoke" + }, + { + "$ref": "#/definitions/io.kestra.plugin.aws.s3.Copy" + }, + { + "$ref": "#/definitions/io.kestra.plugin.aws.s3.CreateBucket" + }, + { + "$ref": "#/definitions/io.kestra.plugin.aws.s3.Delete" + }, + { + "$ref": "#/definitions/io.kestra.plugin.aws.s3.DeleteList" + }, + { + "$ref": "#/definitions/io.kestra.plugin.aws.s3.Download" + }, + { + "$ref": "#/definitions/io.kestra.plugin.aws.s3.Downloads" + }, + { + "$ref": "#/definitions/io.kestra.plugin.aws.s3.List" + }, + { + "$ref": "#/definitions/io.kestra.plugin.aws.s3.Upload" + }, + { + "$ref": "#/definitions/io.kestra.plugin.aws.sns.Publish" + }, + { + "$ref": "#/definitions/io.kestra.plugin.aws.sqs.Consume" + }, + { + "$ref": "#/definitions/io.kestra.plugin.aws.sqs.Publish" + }, + { + "$ref": "#/definitions/io.kestra.plugin.sqlmesh.cli.SQLMeshCLI" + }, + { + "$ref": "#/definitions/io.kestra.plugin.surrealdb.Query" + }, + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.vectorwise.Batch" + }, + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.vectorwise.Query" + }, + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.arrowflight.Query" + }, + { + "$ref": "#/definitions/io.kestra.plugin.terraform.cli.TerraformCLI" + }, + { + "$ref": "#/definitions/io.kestra.plugin.debezium.mongodb.Capture" + }, + { + "$ref": "#/definitions/io.kestra.plugin.fs.ftp.Delete" + }, + { + "$ref": "#/definitions/io.kestra.plugin.fs.ftp.Download" + }, + { + "$ref": "#/definitions/io.kestra.plugin.fs.ftp.Downloads" + }, + { + "$ref": "#/definitions/io.kestra.plugin.fs.ftp.List" + }, + { + "$ref": "#/definitions/io.kestra.plugin.fs.ftp.Move" + }, + { + "$ref": "#/definitions/io.kestra.plugin.fs.ftp.Upload" + }, + { + "$ref": "#/definitions/io.kestra.plugin.fs.ftp.Uploads" + }, + { + "$ref": "#/definitions/io.kestra.plugin.fs.ftps.Delete" + }, + { + "$ref": "#/definitions/io.kestra.plugin.fs.ftps.Download" + }, + { + "$ref": "#/definitions/io.kestra.plugin.fs.ftps.Downloads" + }, + { + "$ref": "#/definitions/io.kestra.plugin.fs.ftps.List" + }, + { + "$ref": "#/definitions/io.kestra.plugin.fs.ftps.Move" + }, + { + "$ref": "#/definitions/io.kestra.plugin.fs.ftps.Upload" + }, + { + "$ref": "#/definitions/io.kestra.plugin.fs.ftps.Uploads" + }, + { + "$ref": "#/definitions/io.kestra.plugin.fs.sftp.Delete" + }, + { + "$ref": "#/definitions/io.kestra.plugin.fs.sftp.Download" + }, + { + "$ref": "#/definitions/io.kestra.plugin.fs.sftp.Downloads" + }, + { + "$ref": "#/definitions/io.kestra.plugin.fs.sftp.List" + }, + { + "$ref": "#/definitions/io.kestra.plugin.fs.sftp.Move" + }, + { + "$ref": "#/definitions/io.kestra.plugin.fs.sftp.Upload" + }, + { + "$ref": "#/definitions/io.kestra.plugin.fs.sftp.Uploads" + }, + { + "$ref": "#/definitions/io.kestra.plugin.fs.smb.Delete" + }, + { + "$ref": "#/definitions/io.kestra.plugin.fs.smb.Download" + }, + { + "$ref": "#/definitions/io.kestra.plugin.fs.smb.Downloads" + }, + { + "$ref": "#/definitions/io.kestra.plugin.fs.smb.List" + }, + { + "$ref": "#/definitions/io.kestra.plugin.fs.smb.Move" + }, + { + "$ref": "#/definitions/io.kestra.plugin.fs.smb.Upload" + }, + { + "$ref": "#/definitions/io.kestra.plugin.fs.smb.Uploads" + }, + { + "$ref": "#/definitions/io.kestra.plugin.fs.ssh.Command" + }, + { + "$ref": "#/definitions/io.kestra.plugin.kafka.Consume" + }, + { + "$ref": "#/definitions/io.kestra.plugin.kafka.Produce" + }, + { + "$ref": "#/definitions/io.kestra.plugin.airflow.dags.TriggerDagRun" + }, + { + "$ref": "#/definitions/io.kestra.core.tasks.scripts.Python" + }, + { + "$ref": "#/definitions/io.kestra.plugin.scripts.python.Commands" + }, + { + "$ref": "#/definitions/io.kestra.plugin.scripts.python.Script" + }, + { + "$ref": "#/definitions/io.kestra.plugin.crypto.openpgp.Decrypt" + }, + { + "$ref": "#/definitions/io.kestra.plugin.crypto.openpgp.Encrypt" + }, + { + "$ref": "#/definitions/io.kestra.plugin.scripts.jython.Eval" + }, + { + "$ref": "#/definitions/io.kestra.plugin.scripts.jython.FileTransform" + }, + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.mysql.Batch" + }, + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.mysql.Query" + }, + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.snowflake.Download" + }, + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.snowflake.Query" + }, + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.snowflake.Upload" + }, + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.redshift.Query" + }, + { + "$ref": "#/definitions/io.kestra.plugin.ldap.Add" + }, + { + "$ref": "#/definitions/io.kestra.plugin.ldap.Delete" + }, + { + "$ref": "#/definitions/io.kestra.plugin.ldap.IonToLdif" + }, + { + "$ref": "#/definitions/io.kestra.plugin.ldap.LdifToIon" + }, + { + "$ref": "#/definitions/io.kestra.plugin.ldap.Modify" + }, + { + "$ref": "#/definitions/io.kestra.plugin.ldap.Search" + }, + { + "$ref": "#/definitions/io.kestra.plugin.databricks.cluster.CreateCluster" + }, + { + "$ref": "#/definitions/io.kestra.plugin.databricks.cluster.DeleteCluster" + }, + { + "$ref": "#/definitions/io.kestra.plugin.databricks.dbfs.Download" + }, + { + "$ref": "#/definitions/io.kestra.plugin.databricks.dbfs.Upload" + }, + { + "$ref": "#/definitions/io.kestra.plugin.databricks.job.CreateJob" + }, + { + "$ref": "#/definitions/io.kestra.plugin.databricks.job.SubmitRun" + }, + { + "$ref": "#/definitions/io.kestra.plugin.databricks.sql.Query" + }, + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.sqlite.Query" + }, + { + "$ref": "#/definitions/io.kestra.plugin.mqtt.Publish" + }, + { + "$ref": "#/definitions/io.kestra.plugin.mqtt.Subscribe" + }, + { + "$ref": "#/definitions/io.kestra.plugin.pulsar.Consume" + }, + { + "$ref": "#/definitions/io.kestra.plugin.pulsar.Produce" + }, + { + "$ref": "#/definitions/io.kestra.plugin.pulsar.Reader" + }, + { + "$ref": "#/definitions/io.kestra.plugin.dbt.cli.Build" + }, + { + "$ref": "#/definitions/io.kestra.plugin.dbt.cli.Compile" + }, + { + "$ref": "#/definitions/io.kestra.plugin.dbt.cli.DbtCLI" + }, + { + "$ref": "#/definitions/io.kestra.plugin.dbt.cli.Deps" + }, + { + "$ref": "#/definitions/io.kestra.plugin.dbt.cli.Freshness" + }, + { + "$ref": "#/definitions/io.kestra.plugin.dbt.cli.List" + }, + { + "$ref": "#/definitions/io.kestra.plugin.dbt.cli.Run" + }, + { + "$ref": "#/definitions/io.kestra.plugin.dbt.cli.Seed" + }, + { + "$ref": "#/definitions/io.kestra.plugin.dbt.cli.Setup" + }, + { + "$ref": "#/definitions/io.kestra.plugin.dbt.cli.Snapshot" + }, + { + "$ref": "#/definitions/io.kestra.plugin.dbt.cli.Test" + }, + { + "$ref": "#/definitions/io.kestra.plugin.dbt.cloud.CheckStatus" + }, + { + "$ref": "#/definitions/io.kestra.plugin.dbt.cloud.TriggerRun" + }, + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.dremio.Query" + }, + { + "$ref": "#/definitions/io.kestra.plugin.googleworkspace.drive.Create" + }, + { + "$ref": "#/definitions/io.kestra.plugin.googleworkspace.drive.Delete" + }, + { + "$ref": "#/definitions/io.kestra.plugin.googleworkspace.drive.Download" + }, + { + "$ref": "#/definitions/io.kestra.plugin.googleworkspace.drive.Export" + }, + { + "$ref": "#/definitions/io.kestra.plugin.googleworkspace.drive.List" + }, + { + "$ref": "#/definitions/io.kestra.plugin.googleworkspace.drive.Upload" + }, + { + "$ref": "#/definitions/io.kestra.plugin.googleworkspace.sheets.Read" + }, + { + "$ref": "#/definitions/io.kestra.plugin.googleworkspace.sheets.ReadRange" + }, + { + "$ref": "#/definitions/io.kestra.plugin.airbyte.cloud.jobs.Reset" + }, + { + "$ref": "#/definitions/io.kestra.plugin.airbyte.cloud.jobs.Sync" + }, + { + "$ref": "#/definitions/io.kestra.plugin.airbyte.connections.CheckStatus" + }, + { + "$ref": "#/definitions/io.kestra.plugin.airbyte.connections.Sync" + }, + { + "$ref": "#/definitions/io.kestra.plugin.fivetran.connectors.Sync" + } + ] + } + } + }, + "required": ["tasks"] + }, + "io.kestra.core.models.tasks.NamespaceFiles": { + "type": "object", + "properties": { + "enabled": { + "$dynamic": false, + "type": "boolean", + "title": "Whether to enable namespace files to be loaded into the working directory. If explicitly set to `true` in a task, it will load all [Namespace Files](https://kestra.io/docs/developer-guide/namespace-files) into the task's working directory. Note that this property is by default set to `true` so that you can specify only the `include` and `exclude` properties to filter the files to load without having to explicitly set `enabled` to `true`.", + "default": true, + "markdownDescription": "Default value is : `true`" + }, + "exclude": { + "$dynamic": false, + "title": "A list of filters to exclude matching glob patterns. This allows you to exclude a subset of the [Namespace Files](https://kestra.io/docs/developer-guide/namespace-files) from being downloaded at runtime. You can combine this property together with `include` to only inject a subset of files that you need into the task's working directory.", + "type": "array", + "items": { + "$dynamic": false, + "type": "string" + } + }, + "include": { + "$dynamic": false, + "title": "A list of filters to include only matching glob patterns. This allows you to only load a subset of the [Namespace Files](https://kestra.io/docs/developer-guide/namespace-files) into the working directory.", + "type": "array", + "items": { + "$dynamic": false, + "type": "string" + } + } + } + }, + "io.kestra.core.models.tasks.WorkerGroup": { + "type": "object", + "properties": { + "key": { + "type": "string", + "pattern": "^[a-zA-Z0-9][a-zA-Z0-9_-]*" + } + } + }, + "io.kestra.core.models.tasks.retrys.Constant-1": { + "type": "object", + "properties": { + "behavior": { + "type": "string", + "enum": ["RETRY_FAILED_TASK", "CREATE_NEW_EXECUTION"], + "default": "RETRY_FAILED_TASK", + "markdownDescription": "Default value is : `RETRY_FAILED_TASK`" + }, + "interval": { + "type": "string", + "format": "duration" + }, + "maxAttempt": { + "type": "integer", + "minimum": 1 + }, + "maxDuration": { + "type": "string", + "format": "duration" + }, + "type": { + "type": "string", + "default": "constant", + "markdownDescription": "Default value is : `constant`" + }, + "warningOnRetry": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + } + }, + "required": ["interval"] + }, + "io.kestra.core.models.tasks.retrys.Constant-2": { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Constant-1" + }, + { + "type": "object", + "properties": { + "type": { + "const": "constant" + } + }, + "required": ["type"] + } + ] + }, + "io.kestra.core.models.tasks.retrys.Exponential-1": { + "type": "object", + "properties": { + "behavior": { + "type": "string", + "enum": ["RETRY_FAILED_TASK", "CREATE_NEW_EXECUTION"], + "default": "RETRY_FAILED_TASK", + "markdownDescription": "Default value is : `RETRY_FAILED_TASK`" + }, + "delayFactor": { + "type": "number" + }, + "interval": { + "type": "string", + "format": "duration" + }, + "maxAttempt": { + "type": "integer", + "minimum": 1 + }, + "maxDuration": { + "type": "string", + "format": "duration" + }, + "maxInterval": { + "type": "string", + "format": "duration" + }, + "type": { + "type": "string", + "default": "exponential", + "markdownDescription": "Default value is : `exponential`" + }, + "warningOnRetry": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + } + }, + "required": ["interval", "maxInterval"] + }, + "io.kestra.core.models.tasks.retrys.Exponential-2": { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Exponential-1" + }, + { + "type": "object", + "properties": { + "type": { + "const": "exponential" + } + }, + "required": ["type"] + } + ] + }, + "io.kestra.core.models.tasks.retrys.Random-1": { + "type": "object", + "properties": { + "behavior": { + "type": "string", + "enum": ["RETRY_FAILED_TASK", "CREATE_NEW_EXECUTION"], + "default": "RETRY_FAILED_TASK", + "markdownDescription": "Default value is : `RETRY_FAILED_TASK`" + }, + "maxAttempt": { + "type": "integer", + "minimum": 1 + }, + "maxDuration": { + "type": "string", + "format": "duration" + }, + "maxInterval": { + "type": "string", + "format": "duration" + }, + "minInterval": { + "type": "string", + "format": "duration" + }, + "type": { + "type": "string", + "default": "random", + "markdownDescription": "Default value is : `random`" + }, + "warningOnRetry": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + } + }, + "required": ["maxInterval", "minInterval"] + }, + "io.kestra.core.models.tasks.retrys.Random-2": { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Random-1" + }, + { + "type": "object", + "properties": { + "type": { + "const": "random" + } + }, + "required": ["type"] + } + ] + }, + "io.kestra.core.services.FlowService": { + "type": "object" + }, + "io.kestra.core.tasks.scripts.Bash": { + "$deprecated": "true", + "type": "object", + "properties": { + "allowFailure": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "commands": { + "$dynamic": true, + "title": "The commands to run.", + "minItems": 1, + "markdownDescription": "Default command will be launched with `/bin/sh -c \"commands\"`.", + "type": "array", + "items": { + "$dynamic": true, + "type": "string" + } + }, + "description": { + "type": "string" + }, + "disabled": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "dockerOptions": { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.scripts.exec.scripts.models.DockerOptions" + }, + { + "$dynamic": false, + "title": "Docker options when using the `DOCKER` runner." + } + ] + }, + "env": { + "$dynamic": true, + "type": "object", + "title": "One or more additional environment variable(s) to add to the task run.", + "additionalProperties": { + "type": "string" + } + }, + "exitOnFailed": { + "$dynamic": false, + "type": "boolean", + "title": "Exit if any non-true value is returned.", + "default": true, + "markdownDescription": "This tells bash that it should exit the script if any statement returns a non-true return value. \nSetting this to `true` helps catch cases where a command fails and the script continues to run anyway.\n\nDefault value is : `true`" + }, + "files": { + "$deprecated": true, + "$dynamic": true, + "title": "[Deprecated] The list of files that will be uploaded to Kestra's internal storage.", + "markdownDescription": "Use `outputFiles` instead.", + "type": "array", + "items": { + "$deprecated": true, + "$dynamic": true, + "type": "string" + } + }, + "id": { + "type": "string", + "minLength": 1, + "pattern": "^[a-zA-Z0-9][a-zA-Z0-9_-]*" + }, + "inputFiles": { + "$dynamic": true, + "title": "Input files are extra files that will be available in the script's working directory.", + "additionalProperties": { + "type": "string" + }, + "markdownDescription": "Define the files **as a map** of a file name being the key, and the value being the file's content.\nAlternatively, configure the files **as a JSON string** with the same key/value structure as the map.\nIn both cases, you can either specify the file's content inline, or reference a file from Kestra's internal storage by its URI, e.g. a file from an input, output of a previous task, or a [Namespace File](https://kestra.io/docs/developer-guide/namespace-files)." + }, + "interpreter": { + "$dynamic": false, + "type": "string", + "title": "Interpreter to use when launching the process.", + "default": "/bin/sh", + "minLength": 1, + "markdownDescription": "Default value is : `/bin/sh`" + }, + "interpreterArgs": { + "$dynamic": false, + "title": "Interpreter arguments to be used.", + "default": ["-c"], + "markdownDescription": "Default value is : `- -c`\n\nDefault value is : `- -c`", + "type": "array", + "items": { + "$dynamic": false, + "type": "string" + } + }, + "logLevel": { + "type": "string", + "enum": ["ERROR", "WARN", "INFO", "DEBUG", "TRACE"] + }, + "outputDirs": { + "$dynamic": false, + "title": "List of output directories that will be uploaded to Kestra's internal storage.", + "markdownDescription": "List of keys that will generate temporary directories.\nThis property can be used with a special variable named `outputDirs.key`.\nIf you add a file with `[\"myDir\"]`, you can use the special var `echo 1 \u003E\u003E {[ outputDirs.myDir }}/file1.txt` and `echo 2 \u003E\u003E {[ outputDirs.myDir }}/file2.txt`, and both the files will be uploaded to Kestra's internal storage. You can reference them in other tasks using `{{ outputs.taskId.outputFiles['myDir/file1.txt'] }}`.", + "type": "array", + "items": { + "$dynamic": false, + "type": "string" + } + }, + "outputFiles": { + "$dynamic": false, + "title": "Output file list that will be uploaded to Kestra's internal storage.", + "markdownDescription": "List of keys that will generate temporary files.\nThis property can be used with a special variable named `outputFiles.key`.\nIf you add a file with `[\"first\"]`, you can use the special var `echo 1 \u003E\u003E {[ outputFiles.first }}`, and on other tasks, you can reference it using `{{ outputs.taskId.outputFiles.first }}`.", + "type": "array", + "items": { + "$dynamic": false, + "type": "string" + } + }, + "outputsFiles": { + "$deprecated": true, + "$dynamic": false, + "title": "[Deprecated] Output files.", + "markdownDescription": "Use `outputFiles` instead.", + "type": "array", + "items": { + "$deprecated": true, + "$dynamic": false, + "type": "string" + } + }, + "retry": { + "oneOf": [ + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Constant-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Exponential-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Random-2" + } + ] + }, + "runner": { + "$dynamic": false, + "type": "string", + "enum": ["PROCESS", "DOCKER"], + "title": "The task runner.", + "default": "PROCESS", + "markdownDescription": "Default value is : `PROCESS`" + }, + "timeout": { + "type": "string", + "format": "duration" + }, + "type": { + "const": "io.kestra.core.tasks.scripts.Bash" + }, + "warningOnStdErr": { + "$dynamic": false, + "type": "boolean", + "title": "Whether to set the execution state to `WARNING` if any `stdErr` is emitted.", + "default": true, + "markdownDescription": "Default value is : `true`" + }, + "workerGroup": { + "$ref": "#/definitions/io.kestra.core.models.tasks.WorkerGroup" + } + }, + "required": ["commands", "id", "type"], + "title": "Execute a Bash script, command or set of commands.", + "markdownDescription": "This task is deprecated, please use the [io.kestra.plugin.scripts.shell.Script](https://kestra.io/plugins/tasks/io.kestra.plugin.scripts.shell.script) or [io.kestra.plugin.scripts.shell.Commands](https://kestra.io/plugins/tasks/io.kestra.plugin.scripts.shell.commands) task instead.##### Examples\n\u003E Single bash command.\n```yaml\ncommands:\n - 'echo \"The current execution is : {{ execution.id }}\"'\n```\n\n\u003E Bash command that generate file in storage accessible through outputs.\n```yaml\noutputFiles:\n - first\n - second\ncommands:\n - echo \"1\" \u003E\u003E {{ outputFiles.first }}\n - echo \"2\" \u003E\u003E {{ outputFiles.second }}\n```\n\n\u003E Bash with some inputs files.\n```yaml\ninputFiles:\n script.sh: |\n echo {{ workingDir }}\ncommands:\n - /bin/bash script.sh\n```\n\n\u003E Bash with an input file from Kestra's local storage created by a previous task.\n```yaml\ninputFiles:\n data.csv: {{ outputs.previousTaskId.uri }}\ncommands:\n - cat data.csv\n```\n\n\u003E Run a command on a Docker image.\n```yaml\nrunner: DOCKER\ndockerOptions:\n image: php\ncommands:\n - 'php -r 'print(phpversion() . \"\\n\");'\n```\n\n\u003E Execute cmd on Windows.\n```yaml\ncommands:\n - 'echo \"The current execution is : {{ execution.id }}\"'\nexitOnFailed: false\ninterpreter: cmd\ninterpreterArgs:\n - /c\n```\n\n\u003E Set outputs from bash standard output.\n```yaml\ncommands:\n - echo '::{\"outputs\":{\"test\":\"value\",\"int\":2,\"bool\":true,\"float\":3.65}}::'\n```\n\n\u003E Send a counter metric from bash standard output.\n```yaml\ncommands:\n - echo '::{\"metrics\":[{\"name\":\"count\",\"type\":\"counter\",\"value\":1,\"tags\":{\"tag1\":\"i\",\"tag2\":\"win\"}}]}::'\n```" + }, + "io.kestra.core.tasks.scripts.Node": { + "$deprecated": "true", + "type": "object", + "properties": { + "allowFailure": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "args": { + "$dynamic": true, + "title": "Node command args.", + "markdownDescription": "Arguments list to pass to main JavaScript script.", + "type": "array", + "items": { + "$dynamic": true, + "type": "string" + } + }, + "description": { + "type": "string" + }, + "disabled": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "dockerOptions": { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.scripts.exec.scripts.models.DockerOptions" + }, + { + "$dynamic": false, + "title": "Docker options when using the `DOCKER` runner." + } + ] + }, + "env": { + "$dynamic": true, + "type": "object", + "title": "One or more additional environment variable(s) to add to the task run.", + "additionalProperties": { + "type": "string" + } + }, + "exitOnFailed": { + "$dynamic": false, + "type": "boolean", + "title": "Exit if any non-true value is returned.", + "default": true, + "markdownDescription": "This tells bash that it should exit the script if any statement returns a non-true return value. \nSetting this to `true` helps catch cases where a command fails and the script continues to run anyway.\n\nDefault value is : `true`" + }, + "files": { + "$deprecated": true, + "$dynamic": true, + "title": "[Deprecated] The list of files that will be uploaded to Kestra's internal storage.", + "markdownDescription": "Use `outputFiles` instead.", + "type": "array", + "items": { + "$deprecated": true, + "$dynamic": true, + "type": "string" + } + }, + "id": { + "type": "string", + "minLength": 1, + "pattern": "^[a-zA-Z0-9][a-zA-Z0-9_-]*" + }, + "inputFiles": { + "$dynamic": true, + "title": "Input files are extra files that will be available in the script's working directory.", + "additionalProperties": { + "type": "string" + }, + "markdownDescription": "Define the files **as a map** of a file name being the key, and the value being the file's content.\nAlternatively, configure the files **as a JSON string** with the same key/value structure as the map.\nIn both cases, you can either specify the file's content inline, or reference a file from Kestra's internal storage by its URI, e.g. a file from an input, output of a previous task, or a [Namespace File](https://kestra.io/docs/developer-guide/namespace-files)." + }, + "interpreter": { + "$dynamic": false, + "type": "string", + "title": "Interpreter to use when launching the process.", + "default": "/bin/sh", + "minLength": 1, + "markdownDescription": "Default value is : `/bin/sh`" + }, + "interpreterArgs": { + "$dynamic": false, + "title": "Interpreter arguments to be used.", + "default": ["-c"], + "markdownDescription": "Default value is : `- -c`\n\nDefault value is : `- -c`", + "type": "array", + "items": { + "$dynamic": false, + "type": "string" + } + }, + "logLevel": { + "type": "string", + "enum": ["ERROR", "WARN", "INFO", "DEBUG", "TRACE"] + }, + "nodePath": { + "$dynamic": false, + "type": "string", + "title": "The node interpreter to use.", + "default": "node", + "markdownDescription": "Set the node interpreter path to use.\n\nDefault value is : `node`" + }, + "npmPath": { + "$dynamic": false, + "type": "string", + "title": "The npm binary to use.", + "default": "npm", + "markdownDescription": "Set the npm binary path for node dependencies setup.\n\nDefault value is : `npm`" + }, + "outputDirs": { + "$dynamic": false, + "title": "List of output directories that will be uploaded to Kestra's internal storage.", + "markdownDescription": "List of keys that will generate temporary directories.\nThis property can be used with a special variable named `outputDirs.key`.\nIf you add a file with `[\"myDir\"]`, you can use the special var `echo 1 \u003E\u003E {[ outputDirs.myDir }}/file1.txt` and `echo 2 \u003E\u003E {[ outputDirs.myDir }}/file2.txt`, and both the files will be uploaded to Kestra's internal storage. You can reference them in other tasks using `{{ outputs.taskId.outputFiles['myDir/file1.txt'] }}`.", + "type": "array", + "items": { + "$dynamic": false, + "type": "string" + } + }, + "outputFiles": { + "$dynamic": false, + "title": "Output file list that will be uploaded to Kestra's internal storage.", + "markdownDescription": "List of keys that will generate temporary files.\nThis property can be used with a special variable named `outputFiles.key`.\nIf you add a file with `[\"first\"]`, you can use the special var `echo 1 \u003E\u003E {[ outputFiles.first }}`, and on other tasks, you can reference it using `{{ outputs.taskId.outputFiles.first }}`.", + "type": "array", + "items": { + "$dynamic": false, + "type": "string" + } + }, + "outputsFiles": { + "$deprecated": true, + "$dynamic": false, + "title": "[Deprecated] Output files.", + "markdownDescription": "Use `outputFiles` instead.", + "type": "array", + "items": { + "$deprecated": true, + "$dynamic": false, + "type": "string" + } + }, + "retry": { + "oneOf": [ + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Constant-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Exponential-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Random-2" + } + ] + }, + "runner": { + "$dynamic": false, + "type": "string", + "enum": ["PROCESS", "DOCKER"], + "title": "The task runner.", + "default": "PROCESS", + "markdownDescription": "Default value is : `PROCESS`" + }, + "timeout": { + "type": "string", + "format": "duration" + }, + "type": { + "const": "io.kestra.core.tasks.scripts.Node" + }, + "warningOnStdErr": { + "$dynamic": false, + "type": "boolean", + "title": "Whether to set the execution state to `WARNING` if any `stdErr` is emitted.", + "default": true, + "markdownDescription": "Default value is : `true`" + }, + "workerGroup": { + "$ref": "#/definitions/io.kestra.core.models.tasks.WorkerGroup" + } + }, + "required": ["id", "type"], + "title": "Execute a Node.js script.", + "markdownDescription": "This task is deprecated, please use the [io.kestra.plugin.scripts.node.Script](https://kestra.io/plugins/tasks/io.kestra.plugin.scripts.node.script) or [io.kestra.plugin.scripts.node.Commands](https://kestra.io/plugins/tasks/io.kestra.plugin.scripts.node.commands) task instead.\n\nWith the Node task, you can execute a full JavaScript script.\nThe task will create a temporary folder for each task, and allows you to install some npm packages defined in an optional `package.json` file.\n\nBy convention, you need to define at least a `main.js` file in `inputFiles` that will be the script used.\nYou can also add as many JavaScript files as you need in `inputFiles`.\n\nThe outputs & metrics from your Node.js script can be used by others tasks. In order to make things easy, we inject a node package directly on the working directory.Here is an example usage:\n```javascript\nconst Kestra = require(\"./kestra\");\nKestra.outputs({test: 'value', int: 2, bool: true, float: 3.65});\nKestra.counter('count', 1, {tag1: 'i', tag2: 'win'});\nKestra.timer('timer1', (callback) =\u003E { setTimeout(callback, 1000) }, {tag1: 'i', tag2: 'lost'});\nKestra.timer('timer2', 2.12, {tag1: 'i', tag2: 'destroy'});\n```##### Examples\n\u003E Execute a Node.js script.\n```yaml\ninputFiles:\n main.js: |\n const Kestra = require(\"./kestra\");\n const fs = require('fs')\n const result = fs.readFileSync(process.argv[2], \"utf-8\")\n console.log(JSON.parse(result).status)\n const axios = require('axios')\n axios.get('http://google.fr').then(d =\u003E { console.log(d.status); Kestra.outputs({'status': d.status, 'text': d.data})})\n console.log(require('./mymodule').value)\n data.json: |\n {\"status\": \"OK\"}\n mymodule.js: |\n module.exports.value = 'hello world'\n package.json: |\n {\n \"name\": \"tmp\",\n \"version\": \"1.0.0\",\n \"description\": \"\",\n \"main\": \"index.js\",\n \"dependencies\": {\n \"axios\": \"^0.20.0\"\n },\n \"devDependencies\": {},\n \"scripts\": {\n \"test\": \"echo `Error: no test specified` && exit 1\"\n },\n \"author\": \"\",\n \"license\": \"ISC\"\n }\nargs:\n - data.json\nwarningOnStdErr: false\n```\n\n\u003E Execute a Node.js script with an input file from Kestra's internal storage created by a previous task.\n```yaml\ninputFiles:\n data.csv: {{ outputs.previousTaskId.uri }}\n main.js: |\n const fs = require('fs')\n const result = fs.readFileSync('data.csv', 'utf-8')\n console.log(result)\n```" + }, + "io.kestra.core.tasks.scripts.Python": { + "$deprecated": "true", + "type": "object", + "properties": { + "allowFailure": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "args": { + "$dynamic": true, + "title": "Python command args", + "markdownDescription": "Arguments list to pass to main python script", + "type": "array", + "items": { + "$dynamic": true, + "type": "string" + } + }, + "commands": { + "$dynamic": true, + "title": "The commands to run", + "default": ["./bin/python main.py"], + "minItems": 1, + "markdownDescription": "Default command will be launched with `./bin/python main.py {{args}}`\n\nDefault value is : `- ./bin/python main.py`\n\nDefault value is : `- ./bin/python main.py`", + "type": "array", + "items": { + "$dynamic": true, + "type": "string" + } + }, + "description": { + "type": "string" + }, + "disabled": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "dockerOptions": { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.scripts.exec.scripts.models.DockerOptions" + }, + { + "$dynamic": false, + "title": "Docker options when using the `DOCKER` runner." + } + ] + }, + "env": { + "$dynamic": true, + "type": "object", + "title": "One or more additional environment variable(s) to add to the task run.", + "additionalProperties": { + "type": "string" + } + }, + "exitOnFailed": { + "$dynamic": false, + "type": "boolean", + "title": "Exit if any non-true value is returned.", + "default": true, + "markdownDescription": "This tells bash that it should exit the script if any statement returns a non-true return value. \nSetting this to `true` helps catch cases where a command fails and the script continues to run anyway.\n\nDefault value is : `true`" + }, + "files": { + "$deprecated": true, + "$dynamic": true, + "title": "[Deprecated] The list of files that will be uploaded to Kestra's internal storage.", + "markdownDescription": "Use `outputFiles` instead.", + "type": "array", + "items": { + "$deprecated": true, + "$dynamic": true, + "type": "string" + } + }, + "id": { + "type": "string", + "minLength": 1, + "pattern": "^[a-zA-Z0-9][a-zA-Z0-9_-]*" + }, + "inputFiles": { + "$dynamic": true, + "title": "Input files are extra files that will be available in the script's working directory.", + "additionalProperties": { + "type": "string" + }, + "markdownDescription": "Define the files **as a map** of a file name being the key, and the value being the file's content.\nAlternatively, configure the files **as a JSON string** with the same key/value structure as the map.\nIn both cases, you can either specify the file's content inline, or reference a file from Kestra's internal storage by its URI, e.g. a file from an input, output of a previous task, or a [Namespace File](https://kestra.io/docs/developer-guide/namespace-files)." + }, + "interpreter": { + "$dynamic": false, + "type": "string", + "title": "Interpreter to use when launching the process.", + "default": "/bin/sh", + "minLength": 1, + "markdownDescription": "Default value is : `/bin/sh`" + }, + "interpreterArgs": { + "$dynamic": false, + "title": "Interpreter arguments to be used.", + "default": ["-c"], + "markdownDescription": "Default value is : `- -c`\n\nDefault value is : `- -c`", + "type": "array", + "items": { + "$dynamic": false, + "type": "string" + } + }, + "logLevel": { + "type": "string", + "enum": ["ERROR", "WARN", "INFO", "DEBUG", "TRACE"] + }, + "outputDirs": { + "$dynamic": false, + "title": "List of output directories that will be uploaded to Kestra's internal storage.", + "markdownDescription": "List of keys that will generate temporary directories.\nThis property can be used with a special variable named `outputDirs.key`.\nIf you add a file with `[\"myDir\"]`, you can use the special var `echo 1 \u003E\u003E {[ outputDirs.myDir }}/file1.txt` and `echo 2 \u003E\u003E {[ outputDirs.myDir }}/file2.txt`, and both the files will be uploaded to Kestra's internal storage. You can reference them in other tasks using `{{ outputs.taskId.outputFiles['myDir/file1.txt'] }}`.", + "type": "array", + "items": { + "$dynamic": false, + "type": "string" + } + }, + "outputFiles": { + "$dynamic": false, + "title": "Output file list that will be uploaded to Kestra's internal storage.", + "markdownDescription": "List of keys that will generate temporary files.\nThis property can be used with a special variable named `outputFiles.key`.\nIf you add a file with `[\"first\"]`, you can use the special var `echo 1 \u003E\u003E {[ outputFiles.first }}`, and on other tasks, you can reference it using `{{ outputs.taskId.outputFiles.first }}`.", + "type": "array", + "items": { + "$dynamic": false, + "type": "string" + } + }, + "outputsFiles": { + "$deprecated": true, + "$dynamic": false, + "title": "[Deprecated] Output files.", + "markdownDescription": "Use `outputFiles` instead.", + "type": "array", + "items": { + "$deprecated": true, + "$dynamic": false, + "type": "string" + } + }, + "pythonPath": { + "$dynamic": true, + "type": "string", + "title": "The python interpreter to use", + "default": "python", + "minLength": 1, + "markdownDescription": "Set the python interpreter path to use\n\nDefault value is : `python`" + }, + "requirements": { + "$dynamic": true, + "title": "Requirements are python dependencies to add to the python execution process", + "markdownDescription": "Python dependencies list to setup in the virtualenv, in the same format than requirements.txt", + "type": "array", + "items": { + "$dynamic": true, + "type": "string" + } + }, + "retry": { + "oneOf": [ + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Constant-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Exponential-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Random-2" + } + ] + }, + "runner": { + "$dynamic": false, + "type": "string", + "enum": ["PROCESS", "DOCKER"], + "title": "The task runner.", + "default": "PROCESS", + "markdownDescription": "Default value is : `PROCESS`" + }, + "timeout": { + "type": "string", + "format": "duration" + }, + "type": { + "const": "io.kestra.core.tasks.scripts.Python" + }, + "virtualEnv": { + "$dynamic": false, + "type": "boolean", + "title": "Create a virtual env", + "default": true, + "markdownDescription": "When a virtual env is created, we will install the `requirements` needed. Disabled it if all the requirements is already on the file system.\nIf you disabled the virtual env creation, the `requirements` will be ignored.\n\nDefault value is : `true`" + }, + "warningOnStdErr": { + "$dynamic": false, + "type": "boolean", + "title": "Whether to set the execution state to `WARNING` if any `stdErr` is emitted.", + "default": true, + "markdownDescription": "Default value is : `true`" + }, + "workerGroup": { + "$ref": "#/definitions/io.kestra.core.models.tasks.WorkerGroup" + } + }, + "required": ["id", "type"], + "title": "Execute a Python script", + "markdownDescription": "This task is deprecated, please use the [io.kestra.plugin.scripts.python.Script](https://kestra.io/plugins/tasks/io.kestra.plugin.scripts.python.script) or [io.kestra.plugin.scripts.python.Commands](https://kestra.io/plugins/tasks/io.kestra.plugin.scripts.python.commands) task instead.\n\nWith the Python task, you can execute a full Python script.\nThe task will create a fresh `virtualenv` for every tasks and allows to install some Python package define in `requirements` property.\n\nBy convention, you need to define at least a `main.py` files in `inputFiles` that will be the script used.\nBut you are also able to add as many script as you need in `inputFiles`.\n\nYou can also add a `pip.conf` in `inputFiles` to customize the pip download of dependencies (like a private registry).\n\nYou can send outputs & metrics from your python script that can be used by others tasks. In order to help, we inject a python package directly on the working dir.Here is an example usage:\n```python\nfrom kestra import Kestra\nKestra.outputs({'test': 'value', 'int': 2, 'bool': True, 'float': 3.65})\nKestra.counter('count', 1, {'tag1': 'i', 'tag2': 'win'})\nKestra.timer('timer1', lambda: time.sleep(1), {'tag1': 'i', 'tag2': 'lost'})\nKestra.timer('timer2', 2.12, {'tag1': 'i', 'tag2': 'destroy'})\n```##### Examples\n\u003E Execute a python script\n```yaml\ninputFiles:\n data.json: |\n {\"status\": \"OK\"}\n main.py: |\n from kestra import Kestra\n import json\n import requests\n import sys\n result = json.loads(open(sys.argv[1]).read())\n print(f\"python script {result['status']}\")\n response = requests.get('http://google.com')\n print(response.status_code)\n Kestra.outputs({'status': response.status_code, 'text': response.text})\n pip.conf: |\n # some specific pip repository configuration\nargs:\n - data.json\nrequirements:\n - requests\n```\n\n\u003E Execute a python script with an input file from Kestra's local storage created by a previous task.\n```yaml\ninputFiles:\n data.csv: {{outputs.previousTaskId.uri}}\n main.py: |\n with open('data.csv', 'r') as f:\n print(f.read())\n```" + }, + "io.kestra.plugin.airbyte.cloud.jobs.Reset": { + "$metrics": [ + { + "name": "bytes_synced", + "type": "counter", + "unit": "", + "description": "" + }, + { + "name": "rows_synced", + "type": "counter", + "unit": "", + "description": "" + }, + { + "name": "duration", + "type": "timer", + "unit": "", + "description": "" + } + ], + "type": "object", + "properties": { + "allowFailure": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "connectionId": { + "$dynamic": true, + "type": "string", + "title": "The connection ID to sync." + }, + "description": { + "type": "string" + }, + "disabled": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "id": { + "type": "string", + "minLength": 1, + "pattern": "^[a-zA-Z0-9][a-zA-Z0-9_-]*" + }, + "logLevel": { + "type": "string", + "enum": ["ERROR", "WARN", "INFO", "DEBUG", "TRACE"] + }, + "maxDuration": { + "$dynamic": false, + "type": "string", + "format": "duration", + "title": "The maximum total wait duration.", + "default": 3600, + "markdownDescription": "Default value is : `3600.000000000`" + }, + "password": { + "$dynamic": true, + "type": "string", + "title": "BasicAuth authentication password." + }, + "pollFrequency": { + "$dynamic": false, + "type": "string", + "format": "duration", + "title": "Specify frequency for state check API call.", + "default": 1, + "markdownDescription": "Default value is : `1.000000000`" + }, + "retry": { + "oneOf": [ + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Constant-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Exponential-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Random-2" + } + ] + }, + "timeout": { + "type": "string", + "format": "duration" + }, + "token": { + "$dynamic": true, + "type": "string", + "title": "API key." + }, + "type": { + "const": "io.kestra.plugin.airbyte.cloud.jobs.Reset" + }, + "username": { + "$dynamic": true, + "type": "string", + "title": "BasicAuth authentication username." + }, + "wait": { + "$dynamic": false, + "type": "boolean", + "title": "Wait for the job to end.", + "default": true, + "markdownDescription": "Allowing capture of job status & logs.\n\nDefault value is : `true`" + }, + "workerGroup": { + "$ref": "#/definitions/io.kestra.core.models.tasks.WorkerGroup" + } + }, + "required": ["id", "type"], + "title": "Reset a job.", + "markdownDescription": "##### Examples\n\u003E \n```yaml\ntoken: \u003Ctoken\u003E\nconnectionId: e3b1ce92-547c-436f-b1e8-23b6936c12cd\n```" + }, + "io.kestra.plugin.airbyte.cloud.jobs.Sync": { + "$metrics": [ + { + "name": "bytes_synced", + "type": "counter", + "unit": "", + "description": "" + }, + { + "name": "rows_synced", + "type": "counter", + "unit": "", + "description": "" + }, + { + "name": "duration", + "type": "timer", + "unit": "", + "description": "" + } + ], + "type": "object", + "properties": { + "allowFailure": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "connectionId": { + "$dynamic": true, + "type": "string", + "title": "The connection ID to sync." + }, + "description": { + "type": "string" + }, + "disabled": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "id": { + "type": "string", + "minLength": 1, + "pattern": "^[a-zA-Z0-9][a-zA-Z0-9_-]*" + }, + "logLevel": { + "type": "string", + "enum": ["ERROR", "WARN", "INFO", "DEBUG", "TRACE"] + }, + "maxDuration": { + "$dynamic": false, + "type": "string", + "format": "duration", + "title": "The maximum total wait duration.", + "default": 3600, + "markdownDescription": "Default value is : `3600.000000000`" + }, + "password": { + "$dynamic": true, + "type": "string", + "title": "BasicAuth authentication password." + }, + "pollFrequency": { + "$dynamic": false, + "type": "string", + "format": "duration", + "title": "Specify frequency for state check API call.", + "default": 1, + "markdownDescription": "Default value is : `1.000000000`" + }, + "retry": { + "oneOf": [ + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Constant-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Exponential-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Random-2" + } + ] + }, + "timeout": { + "type": "string", + "format": "duration" + }, + "token": { + "$dynamic": true, + "type": "string", + "title": "API key." + }, + "type": { + "const": "io.kestra.plugin.airbyte.cloud.jobs.Sync" + }, + "username": { + "$dynamic": true, + "type": "string", + "title": "BasicAuth authentication username." + }, + "wait": { + "$dynamic": false, + "type": "boolean", + "title": "Wait for the job to end.", + "default": true, + "markdownDescription": "Allowing capture of job status & logs.\n\nDefault value is : `true`" + }, + "workerGroup": { + "$ref": "#/definitions/io.kestra.core.models.tasks.WorkerGroup" + } + }, + "required": ["id", "type"], + "title": "Sync a job.", + "markdownDescription": "##### Examples\n\u003E \n```yaml\ntoken: \u003Ctoken\u003E\nconnectionId: e3b1ce92-547c-436f-b1e8-23b6936c12cd\n```" + }, + "io.kestra.plugin.airbyte.connections.CheckStatus": { + "type": "object", + "properties": { + "allowFailure": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "description": { + "type": "string" + }, + "disabled": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "httpTimeout": { + "$dynamic": false, + "type": "string", + "format": "duration", + "title": "HTTP connection timeout.", + "default": 10, + "markdownDescription": "Default value is : `10.000000000`" + }, + "id": { + "type": "string", + "minLength": 1, + "pattern": "^[a-zA-Z0-9][a-zA-Z0-9_-]*" + }, + "jobId": { + "$dynamic": true, + "type": "string", + "title": "The job ID to check status for." + }, + "logLevel": { + "type": "string", + "enum": ["ERROR", "WARN", "INFO", "DEBUG", "TRACE"] + }, + "maxDuration": { + "$dynamic": false, + "type": "string", + "format": "duration", + "title": "The maximum total wait duration.", + "default": 3600, + "markdownDescription": "Default value is : `3600.000000000`" + }, + "password": { + "$dynamic": true, + "type": "string", + "title": "Basic authentication password." + }, + "pollFrequency": { + "$dynamic": false, + "type": "string", + "format": "duration", + "title": "Specify how often the task should poll for the sync status.", + "default": 1, + "markdownDescription": "Default value is : `1.000000000`" + }, + "retry": { + "oneOf": [ + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Constant-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Exponential-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Random-2" + } + ] + }, + "timeout": { + "type": "string", + "format": "duration" + }, + "token": { + "$dynamic": true, + "type": "string", + "title": "API key." + }, + "type": { + "const": "io.kestra.plugin.airbyte.connections.CheckStatus" + }, + "url": { + "$dynamic": true, + "type": "string", + "title": "The URL of your Airbyte instance." + }, + "username": { + "$dynamic": true, + "type": "string", + "title": "Basic authentication username." + }, + "workerGroup": { + "$ref": "#/definitions/io.kestra.core.models.tasks.WorkerGroup" + } + }, + "required": ["id", "type", "url"], + "title": "Check job status of a running sync connection.", + "markdownDescription": "##### Examples\n\u003E \n```yaml\nurl: http://localhost:8080\njobId: 970\n```" + }, + "io.kestra.plugin.airbyte.connections.Sync": { + "type": "object", + "properties": { + "allowFailure": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "connectionId": { + "$dynamic": true, + "type": "string", + "title": "The connection ID to sync." + }, + "description": { + "type": "string" + }, + "disabled": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "failOnActiveSync": { + "$dynamic": false, + "type": "boolean", + "title": "Specify whether task should fail if a sync is already running.", + "default": true, + "markdownDescription": "Default value is : `true`" + }, + "httpTimeout": { + "$dynamic": false, + "type": "string", + "format": "duration", + "title": "HTTP connection timeout.", + "default": 10, + "markdownDescription": "Default value is : `10.000000000`" + }, + "id": { + "type": "string", + "minLength": 1, + "pattern": "^[a-zA-Z0-9][a-zA-Z0-9_-]*" + }, + "logLevel": { + "type": "string", + "enum": ["ERROR", "WARN", "INFO", "DEBUG", "TRACE"] + }, + "maxDuration": { + "$dynamic": false, + "type": "string", + "format": "duration", + "title": "The maximum total wait duration.", + "default": 3600, + "markdownDescription": "Default value is : `3600.000000000`" + }, + "password": { + "$dynamic": true, + "type": "string", + "title": "Basic authentication password." + }, + "pollFrequency": { + "$dynamic": false, + "type": "string", + "format": "duration", + "title": "Specify frequency for sync attempt state check API call.", + "default": 1, + "markdownDescription": "Default value is : `1.000000000`" + }, + "retry": { + "oneOf": [ + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Constant-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Exponential-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Random-2" + } + ] + }, + "timeout": { + "type": "string", + "format": "duration" + }, + "token": { + "$dynamic": true, + "type": "string", + "title": "API key." + }, + "type": { + "const": "io.kestra.plugin.airbyte.connections.Sync" + }, + "url": { + "$dynamic": true, + "type": "string", + "title": "The URL of your Airbyte instance." + }, + "username": { + "$dynamic": true, + "type": "string", + "title": "Basic authentication username." + }, + "wait": { + "$dynamic": false, + "type": "boolean", + "title": "Wait for the job to end.", + "default": true, + "markdownDescription": "Allowing capture of job status & logs.\n\nDefault value is : `true`" + }, + "workerGroup": { + "$ref": "#/definitions/io.kestra.core.models.tasks.WorkerGroup" + } + }, + "required": ["id", "type", "url"], + "title": "Run a sync on a connection.", + "markdownDescription": "##### Examples\n\u003E \n```yaml\nurl: http://localhost:8080\nconnectionId: e3b1ce92-547c-436f-b1e8-23b6936c12cd\n```" + }, + "io.kestra.plugin.airflow.dags.TriggerDagRun": { + "type": "object", + "properties": { + "allowFailure": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "baseUrl": { + "$dynamic": true, + "type": "string", + "title": "The base URL of the Airflow instance" + }, + "body": { + "$dynamic": false, + "type": "object", + "title": "Overrides the default configuration payload" + }, + "dagId": { + "$dynamic": true, + "type": "string", + "title": "The ID of the DAG to trigger" + }, + "description": { + "type": "string" + }, + "disabled": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "headers": { + "$dynamic": false, + "type": "object", + "title": "Adds custom headers" + }, + "id": { + "type": "string", + "minLength": 1, + "pattern": "^[a-zA-Z0-9][a-zA-Z0-9_-]*" + }, + "jobId": { + "$dynamic": true, + "type": "string", + "title": "The job ID to check status for." + }, + "logLevel": { + "type": "string", + "enum": ["ERROR", "WARN", "INFO", "DEBUG", "TRACE"] + }, + "maxDuration": { + "$dynamic": false, + "type": "string", + "format": "duration", + "title": "The maximum total wait duration.", + "default": 3600, + "markdownDescription": "Default value is : `3600.000000000`" + }, + "options": { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.http.HttpInterface-RequestOptions" + }, + { + "$dynamic": false, + "title": "Request options" + } + ] + }, + "pollFrequency": { + "$dynamic": false, + "type": "string", + "format": "duration", + "title": "Specify how often the task should poll for the DAG run status.", + "default": 1, + "markdownDescription": "Default value is : `1.000000000`" + }, + "retry": { + "oneOf": [ + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Constant-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Exponential-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Random-2" + } + ] + }, + "timeout": { + "type": "string", + "format": "duration" + }, + "type": { + "const": "io.kestra.plugin.airflow.dags.TriggerDagRun" + }, + "wait": { + "$dynamic": false, + "type": "boolean", + "title": "Whether task should wait for the DAG to run to completion", + "default": false, + "markdownDescription": "Default value is false\n\nDefault value is : `false`" + }, + "workerGroup": { + "$ref": "#/definitions/io.kestra.core.models.tasks.WorkerGroup" + } + }, + "required": ["baseUrl", "dagId", "id", "type"], + "title": "Trigger Airflow DAG", + "markdownDescription": "Trigger an Airflow DAG run and wait for its completion.##### Examples\n\u003E Basic authorization\n```yaml\n - id: trigger_dag\n type: io.kestra.plugin.airflow.TriggerDagRun\n baseUrl: http://airflow.example.com\n dagId: example_dag\n checkFrequency: PT30S\n interval: PT30S\n maxIterations: 100\n maxDuration: PT1H\n options:\n basicAuthUser: myusername\n basicAuthPassword: mypassword\n```\n\n\u003E Bearer authorization\n```yaml\n - id: trigger_dag\n type: io.kestra.plugin.airflow.TriggerDagRun\n baseUrl: http://airflow.example.com\n dagId: example_dag\n checkFrequency: PT30S\n interval: PT30S\n headers:\n authorization: 'Bearer {{ TOKEN }}'\n```\n\n\u003E Basic authorization. Custom body\n```yaml\n - id: trigger_dag\n type: io.kestra.plugin.airflow.TriggerDagRun\n baseUrl: http://airflow.example.com\n dagId: example_dag\n checkFrequency: PT30S\n interval: PT30S\n options:\n basicAuthUser: myusername\n basicAuthPassword: mypassword\n body: |\n {\n \"conf\": {\n \"source\": \"kestra\",\n \"flow\": \"{{ flow.id }}\",\n \"namespace\": \"{{ flow.namespace }}\",\n \"task\": \"{{ task.id }}\",\n \"execution\": \"{{ execution.id }}\"\n }\n }\n```" + }, + "io.kestra.plugin.amqp.Consume": { + "type": "object", + "properties": { + "allowFailure": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "consumerTag": { + "$dynamic": true, + "type": "string", + "title": "A client-generated consumer tag to establish context.", + "default": "Kestra", + "markdownDescription": "Default value is : `Kestra`" + }, + "description": { + "type": "string" + }, + "disabled": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "host": { + "$dynamic": true, + "type": "string", + "title": "The broker host." + }, + "id": { + "type": "string", + "minLength": 1, + "pattern": "^[a-zA-Z0-9][a-zA-Z0-9_-]*" + }, + "logLevel": { + "type": "string", + "enum": ["ERROR", "WARN", "INFO", "DEBUG", "TRACE"] + }, + "maxDuration": { + "type": "string", + "format": "duration", + "title": "The maximum duration to wait for new rows.", + "markdownDescription": "It's not an hard limit and is evaluated every second." + }, + "maxRecords": { + "type": "integer", + "title": "The maximum number of rows to fetch before stopping.", + "markdownDescription": "It's not an hard limit and is evaluated every second." + }, + "password": { + "$dynamic": true, + "type": "string", + "title": "The broker password." + }, + "port": { + "$dynamic": true, + "type": "string", + "title": "The broker port." + }, + "queue": { + "$dynamic": true, + "type": "string", + "title": "The queue to pull messages from." + }, + "retry": { + "oneOf": [ + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Constant-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Exponential-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Random-2" + } + ] + }, + "serdeType": { + "type": "string", + "enum": ["STRING", "JSON"], + "title": "Serializer / Deserializer used for the message.", + "default": "STRING", + "markdownDescription": "Default value is : `STRING`" + }, + "timeout": { + "type": "string", + "format": "duration" + }, + "type": { + "const": "io.kestra.plugin.amqp.Consume" + }, + "username": { + "$dynamic": true, + "type": "string", + "title": "The broker username." + }, + "virtualHost": { + "$dynamic": true, + "type": "string", + "title": "The broker virtual host." + }, + "workerGroup": { + "$ref": "#/definitions/io.kestra.core.models.tasks.WorkerGroup" + } + }, + "required": ["id", "queue", "type"], + "title": "Consume messages from an AMQP queue.", + "markdownDescription": "Requires `maxDuration` or `maxRecords`.##### Examples\n\u003E \n```yaml\nurl: amqp://guest:guest@localhost:5672/my_vhost\nqueue: kestramqp.queue\nmaxRecords: 1000\n```" + }, + "io.kestra.plugin.amqp.CreateQueue": { + "type": "object", + "properties": { + "allowFailure": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "args": { + "type": "object", + "title": "Other properties (construction arguments) for the queue." + }, + "autoDelete": { + "type": "boolean", + "title": "Specify if we are declaring an auto-delete queue (server will delete it when no longer in use).", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "description": { + "type": "string" + }, + "disabled": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "durability": { + "type": "boolean", + "title": "Specify if we are declaring a durable queue (the queue will survive a server restart).", + "default": true, + "markdownDescription": "Default value is : `true`" + }, + "exclusive": { + "type": "boolean", + "title": "Specify if we are declaring an exclusive queue (restricted to this connection).", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "host": { + "$dynamic": true, + "type": "string", + "title": "The broker host." + }, + "id": { + "type": "string", + "minLength": 1, + "pattern": "^[a-zA-Z0-9][a-zA-Z0-9_-]*" + }, + "logLevel": { + "type": "string", + "enum": ["ERROR", "WARN", "INFO", "DEBUG", "TRACE"] + }, + "name": { + "$dynamic": true, + "type": "string", + "title": "The name of the queue." + }, + "password": { + "$dynamic": true, + "type": "string", + "title": "The broker password." + }, + "port": { + "$dynamic": true, + "type": "string", + "title": "The broker port." + }, + "retry": { + "oneOf": [ + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Constant-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Exponential-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Random-2" + } + ] + }, + "timeout": { + "type": "string", + "format": "duration" + }, + "type": { + "const": "io.kestra.plugin.amqp.CreateQueue" + }, + "username": { + "$dynamic": true, + "type": "string", + "title": "The broker username." + }, + "virtualHost": { + "$dynamic": true, + "type": "string", + "title": "The broker virtual host." + }, + "workerGroup": { + "$ref": "#/definitions/io.kestra.core.models.tasks.WorkerGroup" + } + }, + "required": ["id", "name", "type"], + "title": "Create a queue.", + "markdownDescription": "Create a queue, including specified arguments.##### Examples\n\u003E \n```yaml\nurl: amqp://guest:guest@localhost:5672/my_vhost\nname: kestramqp.queue\n```" + }, + "io.kestra.plugin.amqp.DeclareExchange": { + "type": "object", + "properties": { + "allowFailure": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "args": { + "type": "object", + "title": "Other properties (construction arguments) for the exchange." + }, + "autoDelete": { + "type": "boolean", + "title": "Specify if the server should delete the exchange when it is no longer in use.", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "description": { + "type": "string" + }, + "disabled": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "durability": { + "type": "boolean", + "title": "Specify if we are declaring a durable exchange (the exchange will survive a server restart).", + "default": true, + "markdownDescription": "Default value is : `true`" + }, + "exchangeType": { + "type": "string", + "enum": ["DIRECT", "FANOUT", "TOPIC", "HEADERS"], + "title": "The exchange type.", + "default": "DIRECT", + "markdownDescription": "Default value is : `DIRECT`" + }, + "host": { + "$dynamic": true, + "type": "string", + "title": "The broker host." + }, + "id": { + "type": "string", + "minLength": 1, + "pattern": "^[a-zA-Z0-9][a-zA-Z0-9_-]*" + }, + "internal": { + "type": "boolean", + "title": "Specify if the exchange is internal, i.e. can't be directly published to by a client.", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "logLevel": { + "type": "string", + "enum": ["ERROR", "WARN", "INFO", "DEBUG", "TRACE"] + }, + "name": { + "$dynamic": true, + "type": "string", + "title": "The name of the exchange." + }, + "password": { + "$dynamic": true, + "type": "string", + "title": "The broker password." + }, + "port": { + "$dynamic": true, + "type": "string", + "title": "The broker port." + }, + "retry": { + "oneOf": [ + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Constant-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Exponential-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Random-2" + } + ] + }, + "timeout": { + "type": "string", + "format": "duration" + }, + "type": { + "const": "io.kestra.plugin.amqp.DeclareExchange" + }, + "username": { + "$dynamic": true, + "type": "string", + "title": "The broker username." + }, + "virtualHost": { + "$dynamic": true, + "type": "string", + "title": "The broker virtual host." + }, + "workerGroup": { + "$ref": "#/definitions/io.kestra.core.models.tasks.WorkerGroup" + } + }, + "required": ["id", "name", "type"], + "title": "Create an exchange.", + "markdownDescription": "##### Examples\n\u003E \n```yaml\nurl: amqp://guest:guest@localhost:5672/my_vhost\nname: kestramqp.exchange\n```" + }, + "io.kestra.plugin.amqp.Publish": { + "type": "object", + "properties": { + "allowFailure": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "description": { + "type": "string" + }, + "disabled": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "exchange": { + "$dynamic": true, + "type": "string", + "title": "The exchange to publish the message to" + }, + "from": { + "$dynamic": true, + "title": "The source of the data published.", + "markdownDescription": "It can be a Kestra's internal storage URI or a list.", + "oneOf": [ + { + "type": "string" + }, + { + "type": "array", + "items": {} + }, + {} + ] + }, + "host": { + "$dynamic": true, + "type": "string", + "title": "The broker host." + }, + "id": { + "type": "string", + "minLength": 1, + "pattern": "^[a-zA-Z0-9][a-zA-Z0-9_-]*" + }, + "logLevel": { + "type": "string", + "enum": ["ERROR", "WARN", "INFO", "DEBUG", "TRACE"] + }, + "password": { + "$dynamic": true, + "type": "string", + "title": "The broker password." + }, + "port": { + "$dynamic": true, + "type": "string", + "title": "The broker port." + }, + "retry": { + "oneOf": [ + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Constant-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Exponential-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Random-2" + } + ] + }, + "routingKey": { + "$dynamic": true, + "type": "string", + "title": "The routing key" + }, + "serdeType": { + "type": "string", + "enum": ["STRING", "JSON"], + "title": "Serializer / Deserializer used for the message.", + "default": "STRING", + "markdownDescription": "Default value is : `STRING`" + }, + "timeout": { + "type": "string", + "format": "duration" + }, + "type": { + "const": "io.kestra.plugin.amqp.Publish" + }, + "username": { + "$dynamic": true, + "type": "string", + "title": "The broker username." + }, + "virtualHost": { + "$dynamic": true, + "type": "string", + "title": "The broker virtual host." + }, + "workerGroup": { + "$ref": "#/definitions/io.kestra.core.models.tasks.WorkerGroup" + } + }, + "required": ["exchange", "from", "id", "type"], + "title": "Publish a message to an AMQP exchange.", + "markdownDescription": "##### Examples\n\u003E \n```yaml\nurl: amqp://guest:guest@localhost:5672/my_vhost\nexchange: kestramqp.exchange\nfrom:\n- data: value-1\n headers:\n testHeader: KestraTest\n timestamp: '2023-01-09T08:46:33.103130753Z'\n- data: value-2\n timestamp: '2023-01-09T08:46:33.115456977Z'\n appId: unit-kestra\n```" + }, + "io.kestra.plugin.amqp.QueueBind": { + "type": "object", + "properties": { + "allowFailure": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "args": { + "type": "object", + "title": "Other properties (binding parameters)." + }, + "description": { + "type": "string" + }, + "disabled": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "exchange": { + "$dynamic": true, + "type": "string", + "title": "The exchange to bind with." + }, + "host": { + "$dynamic": true, + "type": "string", + "title": "The broker host." + }, + "id": { + "type": "string", + "minLength": 1, + "pattern": "^[a-zA-Z0-9][a-zA-Z0-9_-]*" + }, + "logLevel": { + "type": "string", + "enum": ["ERROR", "WARN", "INFO", "DEBUG", "TRACE"] + }, + "password": { + "$dynamic": true, + "type": "string", + "title": "The broker password." + }, + "port": { + "$dynamic": true, + "type": "string", + "title": "The broker port." + }, + "queue": { + "$dynamic": true, + "type": "string", + "title": "The queue to bind." + }, + "retry": { + "oneOf": [ + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Constant-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Exponential-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Random-2" + } + ] + }, + "routingKey": { + "type": "string", + "title": "The routing key to use for the binding." + }, + "timeout": { + "type": "string", + "format": "duration" + }, + "type": { + "const": "io.kestra.plugin.amqp.QueueBind" + }, + "username": { + "$dynamic": true, + "type": "string", + "title": "The broker username." + }, + "virtualHost": { + "$dynamic": true, + "type": "string", + "title": "The broker virtual host." + }, + "workerGroup": { + "$ref": "#/definitions/io.kestra.core.models.tasks.WorkerGroup" + } + }, + "required": ["exchange", "id", "queue", "type"], + "title": "Bind a queue to an exchange.", + "markdownDescription": "##### Examples\n\u003E \n```yaml\nurl: amqp://guest:guest@localhost:5672/my_vhost\nexchange: kestramqp.exchange\nqueue: kestramqp.queue\n```" + }, + "io.kestra.plugin.amqp.RealtimeTrigger": { + "type": "object", + "properties": { + "conditions": { + "$dynamic": false, + "title": "List of conditions in order to limit the flow trigger.", + "type": "array", + "items": { + "oneOf": [ + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.DateTimeBetweenCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.DayWeekCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.DayWeekInMonthCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.ExecutionFlowCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.ExecutionLabelsCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.ExecutionNamespaceCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.ExecutionOutputsCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.ExecutionStatusCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.ExpressionCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.FlowCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.FlowNamespaceCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.HasRetryAttemptCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.MultipleCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.NotCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.OrCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.PublicHolidayCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.TimeBetweenCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.WeekendCondition" + }, + { + "$dynamic": false + } + ] + } + ] + } + }, + "consumerTag": { + "$dynamic": true, + "type": "string", + "title": "A client-generated consumer tag to establish context.", + "default": "Kestra", + "markdownDescription": "Default value is : `Kestra`" + }, + "description": { + "type": "string" + }, + "disabled": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "host": { + "$dynamic": true, + "type": "string", + "title": "The broker host." + }, + "id": { + "type": "string", + "title": "A unique ID for the whole flow.", + "minLength": 1, + "pattern": "^[a-zA-Z0-9][a-zA-Z0-9_-]*" + }, + "labels": { + "title": "The labels to pass to the execution created.", + "type": "array", + "items": { + "$ref": "#/definitions/io.kestra.core.models.Label" + } + }, + "logLevel": { + "type": "string", + "enum": ["ERROR", "WARN", "INFO", "DEBUG", "TRACE"] + }, + "password": { + "$dynamic": true, + "type": "string", + "title": "The broker password." + }, + "port": { + "$dynamic": true, + "type": "string", + "title": "The broker port." + }, + "queue": { + "$dynamic": true, + "type": "string", + "title": "The queue to pull messages from." + }, + "serdeType": { + "type": "string", + "enum": ["STRING", "JSON"], + "title": "Serializer / Deserializer used for the message.", + "default": "STRING", + "markdownDescription": "Default value is : `STRING`" + }, + "stopAfter": { + "$dynamic": false, + "title": "List of execution states after which a trigger should be stopped (a.k.a. disabled).", + "type": "array", + "items": { + "$dynamic": false, + "type": "string", + "enum": [ + "CREATED", + "RUNNING", + "PAUSED", + "RESTARTED", + "KILLING", + "SUCCESS", + "WARNING", + "FAILED", + "KILLED", + "CANCELLED", + "QUEUED", + "RETRYING", + "RETRIED" + ] + } + }, + "type": { + "const": "io.kestra.plugin.amqp.RealtimeTrigger" + }, + "username": { + "$dynamic": true, + "type": "string", + "title": "The broker username." + }, + "virtualHost": { + "$dynamic": true, + "type": "string", + "title": "The broker virtual host." + }, + "workerGroup": { + "$ref": "#/definitions/io.kestra.core.models.tasks.WorkerGroup" + } + }, + "required": ["id", "queue", "type"], + "title": "Consume a message in real-time from an AMQP queue and create one execution per message.", + "markdownDescription": "If you would like to consume multiple messages processed within a given time frame and process them in batch, you can use the [io.kestra.plugin.amqp.Trigger](https://kestra.io/plugins/plugin-amqp/triggers/io.kestra.plugin.amqp.trigger) instead.##### Examples\n\u003E Consume a message from a AMQP queue in real-time.\n```yaml\nid: amqp\nnamespace: company.team\n\ntasks:\n- id: log\n type: io.kestra.plugin.core.log.Log\n message: \"{{ trigger.data }}\"\n\ntriggers:\n- id: realtime_trigger\n type: io.kestra.plugin.amqp.RealtimeTrigger\n url: amqp://guest:guest@localhost:5672/my_vhost\n queue: amqpTrigger.queue\n\n```" + }, + "io.kestra.plugin.amqp.Trigger": { + "type": "object", + "properties": { + "conditions": { + "$dynamic": false, + "title": "List of conditions in order to limit the flow trigger.", + "type": "array", + "items": { + "oneOf": [ + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.DateTimeBetweenCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.DayWeekCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.DayWeekInMonthCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.ExecutionFlowCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.ExecutionLabelsCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.ExecutionNamespaceCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.ExecutionOutputsCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.ExecutionStatusCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.ExpressionCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.FlowCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.FlowNamespaceCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.HasRetryAttemptCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.MultipleCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.NotCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.OrCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.PublicHolidayCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.TimeBetweenCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.WeekendCondition" + }, + { + "$dynamic": false + } + ] + } + ] + } + }, + "consumerTag": { + "$dynamic": true, + "type": "string", + "title": "A client-generated consumer tag to establish context.", + "default": "Kestra", + "markdownDescription": "Default value is : `Kestra`" + }, + "description": { + "type": "string" + }, + "disabled": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "host": { + "$dynamic": true, + "type": "string", + "title": "The broker host." + }, + "id": { + "type": "string", + "title": "A unique ID for the whole flow.", + "minLength": 1, + "pattern": "^[a-zA-Z0-9][a-zA-Z0-9_-]*" + }, + "interval": { + "$dynamic": false, + "type": "string", + "format": "duration", + "title": "Interval between polling.", + "default": 60, + "markdownDescription": "The interval between 2 different polls of schedule, this can avoid to overload the remote system with too many calls. For most of the triggers that depend on external systems, a minimal interval must be at least PT30S.\nSee [ISO_8601 Durations](https://en.wikipedia.org/wiki/ISO_8601#Durations) for more information of available interval values.\n\nDefault value is : `60.000000000`" + }, + "labels": { + "title": "The labels to pass to the execution created.", + "type": "array", + "items": { + "$ref": "#/definitions/io.kestra.core.models.Label" + } + }, + "logLevel": { + "type": "string", + "enum": ["ERROR", "WARN", "INFO", "DEBUG", "TRACE"] + }, + "maxDuration": { + "type": "string", + "format": "duration", + "title": "The maximum duration to wait for new rows.", + "markdownDescription": "It's not an hard limit and is evaluated every second." + }, + "maxRecords": { + "type": "integer", + "title": "The maximum number of rows to fetch before stopping.", + "markdownDescription": "It's not an hard limit and is evaluated every second." + }, + "password": { + "$dynamic": true, + "type": "string", + "title": "The broker password." + }, + "port": { + "$dynamic": true, + "type": "string", + "title": "The broker port." + }, + "queue": { + "$dynamic": true, + "type": "string", + "title": "The queue to pull messages from." + }, + "serdeType": { + "type": "string", + "enum": ["STRING", "JSON"], + "title": "Serializer / Deserializer used for the message.", + "default": "STRING", + "markdownDescription": "Default value is : `STRING`" + }, + "stopAfter": { + "$dynamic": false, + "title": "List of execution states after which a trigger should be stopped (a.k.a. disabled).", + "type": "array", + "items": { + "$dynamic": false, + "type": "string", + "enum": [ + "CREATED", + "RUNNING", + "PAUSED", + "RESTARTED", + "KILLING", + "SUCCESS", + "WARNING", + "FAILED", + "KILLED", + "CANCELLED", + "QUEUED", + "RETRYING", + "RETRIED" + ] + } + }, + "type": { + "const": "io.kestra.plugin.amqp.Trigger" + }, + "username": { + "$dynamic": true, + "type": "string", + "title": "The broker username." + }, + "virtualHost": { + "$dynamic": true, + "type": "string", + "title": "The broker virtual host." + }, + "workerGroup": { + "$ref": "#/definitions/io.kestra.core.models.tasks.WorkerGroup" + } + }, + "required": ["id", "queue", "type"], + "title": "Consume messages periodically from a AMQP queue and create one execution per batch.", + "markdownDescription": "Note that you don't need an extra task to consume the message from the event trigger. The trigger will automatically consume messages and you can retrieve their content in your flow using the `{{ trigger.uri }}` variable. If you would like to consume each message from a AMQP queue in real-time and create one execution per message, you can use the [io.kestra.plugin.amqp.RealtimeTrigger](https://kestra.io/plugins/plugin-amqp/triggers/io.kestra.plugin.amqp.realtimetrigger) instead.##### Examples\n\u003E \n```yaml\nurl: amqp://guest:guest@localhost:5672/my_vhost\nmaxRecords: 2\nqueue: amqpTrigger.queue\n```" + }, + "io.kestra.plugin.ansible.cli.AnsibleCLI": { + "type": "object", + "properties": { + "allowFailure": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "beforeCommands": { + "$dynamic": true, + "title": "The commands to run before the main list of commands.", + "type": "array", + "items": { + "$dynamic": true, + "type": "string" + } + }, + "commands": { + "$dynamic": true, + "title": "The commands to run.", + "minItems": 1, + "type": "array", + "items": { + "$dynamic": true, + "type": "string" + } + }, + "containerImage": { + "$dynamic": true, + "type": "string", + "title": "The task runner container image, only used if the task runner is container-based.", + "default": "cytopia/ansible:latest-tools", + "markdownDescription": "Default value is : `cytopia/ansible:latest-tools`" + }, + "description": { + "type": "string" + }, + "disabled": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "docker": { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.scripts.exec.scripts.models.DockerOptions" + }, + { + "$deprecated": true, + "$dynamic": false, + "title": "Deprecated, use 'taskRunner' instead" + } + ] + }, + "env": { + "$dynamic": true, + "type": "object", + "title": "Additional environment variables for the current process.", + "additionalProperties": { + "type": "string" + } + }, + "id": { + "type": "string", + "minLength": 1, + "pattern": "^[a-zA-Z0-9][a-zA-Z0-9_-]*" + }, + "inputFiles": { + "$dynamic": true, + "title": "The files to create on the local filesystem. It can be a map or a JSON object.", + "oneOf": [ + { + "type": "object" + }, + { + "type": "string" + } + ] + }, + "logLevel": { + "type": "string", + "enum": ["ERROR", "WARN", "INFO", "DEBUG", "TRACE"] + }, + "namespaceFiles": { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.core.models.tasks.NamespaceFiles" + }, + { + "$dynamic": false, + "title": "Inject namespace files.", + "markdownDescription": "Inject namespace files to this task. When enabled, it will, by default, load all namespace files into the working directory. However, you can use the `include` or `exclude` properties to limit which namespace files will be injected." + } + ] + }, + "outputFiles": { + "$dynamic": true, + "title": "The files from the local filesystem to send to Kestra's internal storage.", + "markdownDescription": "Must be a list of [glob](https://en.wikipedia.org/wiki/Glob_(programming)) expressions relative to the current working directory, some examples: `my-dir/**`, `my-dir/*/**` or `my-dir/my-file.txt`.", + "type": "array", + "items": { + "$dynamic": true, + "type": "string" + } + }, + "retry": { + "oneOf": [ + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Constant-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Exponential-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Random-2" + } + ] + }, + "taskRunner": { + "oneOf": [ + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.scripts.runner.docker.Docker" + }, + { + "$dynamic": false, + "title": "The task runner to use.", + "markdownDescription": "Task runners are provided by plugins, each have their own properties." + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.runner.Process" + }, + { + "$dynamic": false, + "title": "The task runner to use.", + "markdownDescription": "Task runners are provided by plugins, each have their own properties." + } + ] + } + ] + }, + "timeout": { + "type": "string", + "format": "duration" + }, + "type": { + "const": "io.kestra.plugin.ansible.cli.AnsibleCLI" + }, + "workerGroup": { + "$ref": "#/definitions/io.kestra.core.models.tasks.WorkerGroup" + } + }, + "required": ["commands", "id", "type"], + "title": "Execute Ansible command.", + "markdownDescription": "##### Examples\n\u003E Execute a list of Ansible CLI commands to orchestrate an Ansible playbook stored in the Editor using [Namespace Files](https://kestra.io/docs/developer-guide/namespace-files).\n```yaml\nid: ansible\nnamespace: company.team\n\ntasks:\n - id: ansible_task\n type: io.kestra.plugin.ansible.cli.AnsibleCLI\n inputFiles:\n inventory.ini: \"{{ read('inventory.ini') }}\"\n myplaybook.yml: \"{{ read('myplaybook.yml') }}\"\n docker:\n image: cytopia/ansible:latest-tools\n commands:\n - ansible-playbook -i inventory.ini myplaybook.yml\n```\n\n\u003E Execute a list of Ansible CLI commands to orchestrate an Ansible playbook defined inline in the flow definition.\n```yaml\nid: ansible\nnamespace: company.team\n\ntasks:\n - id: ansible_task\n type: io.kestra.plugin.ansible.cli.AnsibleCLI\n inputFiles:\n inventory.ini: |\n localhost ansible_connection=local\n myplaybook.yml: |\n ---\n - hosts: localhost\n tasks:\n - name: Print Hello World\n debug:\n msg: \"Hello, World!\"\n docker:\n image: cytopia/ansible:latest-tools\n commands:\n - ansible-playbook -i inventory.ini myplaybook.yml\n```" + }, + "io.kestra.plugin.aws.athena.Query": { + "type": "object", + "properties": { + "accessKeyId": { + "$dynamic": true, + "type": "string", + "title": "Access Key Id in order to connect to AWS.", + "markdownDescription": "If no credentials are defined, we will use the [default credentials provider chain](https://docs.aws.amazon.com/sdk-for-java/latest/developer-guide/credentials-chain.html) to fetch credentials." + }, + "allowFailure": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "catalog": { + "$dynamic": true, + "type": "string", + "title": "Athena catalog." + }, + "compatibilityMode": { + "$dynamic": true, + "type": "boolean" + }, + "database": { + "$dynamic": true, + "type": "string", + "title": "Athena database." + }, + "description": { + "type": "string" + }, + "disabled": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "endpointOverride": { + "$dynamic": true, + "type": "string", + "title": "The endpoint with which the SDK should communicate.", + "markdownDescription": "This property allows you to use a different S3 compatible storage backend." + }, + "fetchType": { + "$dynamic": false, + "type": "string", + "enum": ["STORE", "FETCH", "FETCH_ONE", "NONE"], + "title": "The way you want to store the data.", + "default": "STORE", + "markdownDescription": "FETCH_ONE outputs the first row, FETCH outputs all the rows, STORE stores all rows in a file, NONE does nothing — in this case, the task submits the query without waiting for its completion.\n\nDefault value is : `STORE`" + }, + "id": { + "type": "string", + "minLength": 1, + "pattern": "^[a-zA-Z0-9][a-zA-Z0-9_-]*" + }, + "logLevel": { + "type": "string", + "enum": ["ERROR", "WARN", "INFO", "DEBUG", "TRACE"] + }, + "outputLocation": { + "$dynamic": true, + "type": "string", + "title": "Athena output location.", + "markdownDescription": "The query results will be stored in this output location. Must be an existing S3 bucket." + }, + "query": { + "$dynamic": true, + "type": "string", + "title": "Athena SQL query." + }, + "region": { + "$dynamic": true, + "type": "string", + "title": "AWS region with which the SDK should communicate." + }, + "retry": { + "oneOf": [ + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Constant-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Exponential-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Random-2" + } + ] + }, + "secretKeyId": { + "$dynamic": true, + "type": "string", + "title": "Secret Key Id in order to connect to AWS.", + "markdownDescription": "If no credentials are defined, we will use the [default credentials provider chain](https://docs.aws.amazon.com/sdk-for-java/latest/developer-guide/credentials-chain.html) to fetch credentials." + }, + "sessionToken": { + "$dynamic": true, + "type": "string", + "title": "AWS session token, retrieved from an AWS token service, used for authenticating that this user has received temporary permissions to access a given resource.", + "markdownDescription": "If no credentials are defined, we will use the [default credentials provider chain](https://docs.aws.amazon.com/sdk-for-java/latest/developer-guide/credentials-chain.html) to fetch credentials." + }, + "skipHeader": { + "$dynamic": false, + "type": "boolean", + "title": "Whether to skip the first row which is usually the header.", + "default": true, + "markdownDescription": "Default value is : `true`" + }, + "stsEndpointOverride": { + "$dynamic": true, + "type": "string", + "title": "The AWS STS endpoint with which the SDKClient should communicate." + }, + "stsRoleArn": { + "$dynamic": true, + "type": "string", + "title": "AWS STS Role.", + "markdownDescription": "The Amazon Resource Name (ARN) of the role to assume. If set the task will use the `StsAssumeRoleCredentialsProvider`. If no credentials are defined, we will use the [default credentials provider chain](https://docs.aws.amazon.com/sdk-for-java/latest/developer-guide/credentials-chain.html) to fetch credentials." + }, + "stsRoleExternalId": { + "$dynamic": true, + "type": "string", + "title": "AWS STS External Id.", + "markdownDescription": " A unique identifier that might be required when you assume a role in another account. This property is only used when an `stsRoleArn` is defined." + }, + "stsRoleSessionDuration": { + "$dynamic": false, + "type": "string", + "format": "duration", + "title": "AWS STS Session duration.", + "default": 900, + "markdownDescription": "The duration of the role session (default: 15 minutes, i.e., PT15M). This property is only used when an `stsRoleArn` is defined.\n\nDefault value is : `900.000000000`" + }, + "stsRoleSessionName": { + "$dynamic": true, + "type": "string", + "title": "AWS STS Session name.", + "markdownDescription": "This property is only used when an `stsRoleArn` is defined." + }, + "timeout": { + "type": "string", + "format": "duration" + }, + "type": { + "const": "io.kestra.plugin.aws.athena.Query" + }, + "workerGroup": { + "$ref": "#/definitions/io.kestra.core.models.tasks.WorkerGroup" + } + }, + "required": ["database", "id", "outputLocation", "query", "type"], + "title": "Query an Athena table.", + "markdownDescription": "The query will wait for completion, except if fetchMode is set to `NONE`, and will output converted rows.\nRow conversion is based on the types listed [here](https://docs.aws.amazon.com/athena/latest/ug/data-types.html).\nComplex data types like array, map and struct will be converted to a string.##### Examples\n\u003E \n```yaml\naccessKeyId: \"\u003Caccess-key\u003E\"\nsecretKeyId: \"\u003Csecret-key\u003E\"\nregion: \"eu-central-1\"\ndatabase: my_database\noutputLocation: s3://some-s3-bucket\nquery: |\n select * from cloudfront_logs limit 10\n\n```" + }, + "io.kestra.plugin.aws.cli.AwsCLI": { + "type": "object", + "properties": { + "accessKeyId": { + "$dynamic": true, + "type": "string", + "title": "Access Key Id in order to connect to AWS.", + "markdownDescription": "If no credentials are defined, we will use the [default credentials provider chain](https://docs.aws.amazon.com/sdk-for-java/latest/developer-guide/credentials-chain.html) to fetch credentials." + }, + "allowFailure": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "commands": { + "$dynamic": true, + "title": "The AWS commands to run.", + "minItems": 1, + "type": "array", + "items": { + "$dynamic": true, + "type": "string" + } + }, + "compatibilityMode": { + "$dynamic": true, + "type": "boolean" + }, + "containerImage": { + "$dynamic": true, + "type": "string", + "title": "The task runner container image, only used if the task runner is container-based.", + "default": "amazon/aws-cli", + "markdownDescription": "Default value is : `amazon/aws-cli`" + }, + "description": { + "type": "string" + }, + "disabled": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "docker": { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.scripts.exec.scripts.models.DockerOptions" + }, + { + "$deprecated": true, + "$dynamic": false, + "title": "Deprecated, use 'taskRunner' instead" + } + ] + }, + "endpointOverride": { + "$dynamic": true, + "type": "string", + "title": "The endpoint with which the SDK should communicate.", + "markdownDescription": "This property allows you to use a different S3 compatible storage backend." + }, + "env": { + "$dynamic": true, + "type": "object", + "title": "Additional environment variables for the current process.", + "additionalProperties": { + "type": "string" + } + }, + "id": { + "type": "string", + "minLength": 1, + "pattern": "^[a-zA-Z0-9][a-zA-Z0-9_-]*" + }, + "inputFiles": { + "$dynamic": true, + "title": "The files to create on the local filesystem. It can be a map or a JSON object.", + "oneOf": [ + { + "type": "object" + }, + { + "type": "string" + } + ] + }, + "logLevel": { + "type": "string", + "enum": ["ERROR", "WARN", "INFO", "DEBUG", "TRACE"] + }, + "namespaceFiles": { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.core.models.tasks.NamespaceFiles" + }, + { + "$dynamic": false, + "title": "Inject namespace files.", + "markdownDescription": "Inject namespace files to this task. When enabled, it will, by default, load all namespace files into the working directory. However, you can use the `include` or `exclude` properties to limit which namespace files will be injected." + } + ] + }, + "outputFiles": { + "$dynamic": true, + "title": "The files from the local filesystem to send to Kestra's internal storage.", + "markdownDescription": "Must be a list of [glob](https://en.wikipedia.org/wiki/Glob_(programming)) expressions relative to the current working directory, some examples: `my-dir/**`, `my-dir/*/**` or `my-dir/my-file.txt`.", + "type": "array", + "items": { + "$dynamic": true, + "type": "string" + } + }, + "outputFormat": { + "$dynamic": false, + "type": "string", + "enum": ["JSON", "TEXT", "TABLE", "YAML"], + "title": "Expected output format for AWS commands (can be overridden with --format parameter).", + "default": "JSON", + "markdownDescription": "Default value is : `JSON`" + }, + "region": { + "$dynamic": true, + "type": "string", + "title": "AWS region with which the SDK should communicate." + }, + "retry": { + "oneOf": [ + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Constant-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Exponential-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Random-2" + } + ] + }, + "secretKeyId": { + "$dynamic": true, + "type": "string", + "title": "Secret Key Id in order to connect to AWS.", + "markdownDescription": "If no credentials are defined, we will use the [default credentials provider chain](https://docs.aws.amazon.com/sdk-for-java/latest/developer-guide/credentials-chain.html) to fetch credentials." + }, + "sessionToken": { + "$dynamic": true, + "type": "string", + "title": "AWS session token, retrieved from an AWS token service, used for authenticating that this user has received temporary permissions to access a given resource.", + "markdownDescription": "If no credentials are defined, we will use the [default credentials provider chain](https://docs.aws.amazon.com/sdk-for-java/latest/developer-guide/credentials-chain.html) to fetch credentials." + }, + "stsEndpointOverride": { + "$dynamic": true, + "type": "string", + "title": "The AWS STS endpoint with which the SDKClient should communicate." + }, + "stsRoleArn": { + "$dynamic": true, + "type": "string", + "title": "AWS STS Role.", + "markdownDescription": "The Amazon Resource Name (ARN) of the role to assume. If set the task will use the `StsAssumeRoleCredentialsProvider`. If no credentials are defined, we will use the [default credentials provider chain](https://docs.aws.amazon.com/sdk-for-java/latest/developer-guide/credentials-chain.html) to fetch credentials." + }, + "stsRoleExternalId": { + "$dynamic": true, + "type": "string", + "title": "AWS STS External Id.", + "markdownDescription": " A unique identifier that might be required when you assume a role in another account. This property is only used when an `stsRoleArn` is defined." + }, + "stsRoleSessionDuration": { + "$dynamic": false, + "type": "string", + "format": "duration", + "title": "AWS STS Session duration.", + "default": 900, + "markdownDescription": "The duration of the role session (default: 15 minutes, i.e., PT15M). This property is only used when an `stsRoleArn` is defined.\n\nDefault value is : `900.000000000`" + }, + "stsRoleSessionName": { + "$dynamic": true, + "type": "string", + "title": "AWS STS Session name.", + "markdownDescription": "This property is only used when an `stsRoleArn` is defined." + }, + "taskRunner": { + "oneOf": [ + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.scripts.runner.docker.Docker" + }, + { + "$dynamic": false, + "title": "The task runner to use.", + "markdownDescription": "Task runners are provided by plugins, each have their own properties." + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.runner.Process" + }, + { + "$dynamic": false, + "title": "The task runner to use.", + "markdownDescription": "Task runners are provided by plugins, each have their own properties." + } + ] + } + ] + }, + "timeout": { + "type": "string", + "format": "duration" + }, + "type": { + "const": "io.kestra.plugin.aws.cli.AwsCLI" + }, + "workerGroup": { + "$ref": "#/definitions/io.kestra.core.models.tasks.WorkerGroup" + } + }, + "required": ["commands", "id", "type"], + "title": "Execute AWS commands.", + "markdownDescription": "##### Examples\n\u003E Create a simple S3 bucket.\n```yaml\naccessKeyId: \"\u003Caccess-key\u003E\"\nsecretKeyId: \"\u003Csecret-key\u003E\"\nregion: \"eu-central-1\"\ncommands:\n - aws s3 mb s3://test-bucket\n```\n\n\u003E List all S3 buckets as the task's output.\n```yaml\naccessKeyId: \"\u003Caccess-key\u003E\"\nsecretKeyId: \"\u003Csecret-key\u003E\"\nregion: \"eu-central-1\"\ncommands:\n - aws s3api list-buckets | tr -d ' \\n' | xargs -0 -I {} echo '::{\"outputs\":{}}::'\n```" + }, + "io.kestra.plugin.aws.dynamodb.DeleteItem": { + "type": "object", + "properties": { + "accessKeyId": { + "$dynamic": true, + "type": "string", + "title": "Access Key Id in order to connect to AWS.", + "markdownDescription": "If no credentials are defined, we will use the [default credentials provider chain](https://docs.aws.amazon.com/sdk-for-java/latest/developer-guide/credentials-chain.html) to fetch credentials." + }, + "allowFailure": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "compatibilityMode": { + "$dynamic": true, + "type": "boolean" + }, + "description": { + "type": "string" + }, + "disabled": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "endpointOverride": { + "$dynamic": true, + "type": "string", + "title": "The endpoint with which the SDK should communicate.", + "markdownDescription": "This property allows you to use a different S3 compatible storage backend." + }, + "id": { + "type": "string", + "minLength": 1, + "pattern": "^[a-zA-Z0-9][a-zA-Z0-9_-]*" + }, + "key": { + "$dynamic": false, + "type": "object", + "title": "The DynamoDB item key.", + "markdownDescription": "The DynamoDB item identifier." + }, + "logLevel": { + "type": "string", + "enum": ["ERROR", "WARN", "INFO", "DEBUG", "TRACE"] + }, + "region": { + "$dynamic": true, + "type": "string", + "title": "AWS region with which the SDK should communicate." + }, + "retry": { + "oneOf": [ + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Constant-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Exponential-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Random-2" + } + ] + }, + "secretKeyId": { + "$dynamic": true, + "type": "string", + "title": "Secret Key Id in order to connect to AWS.", + "markdownDescription": "If no credentials are defined, we will use the [default credentials provider chain](https://docs.aws.amazon.com/sdk-for-java/latest/developer-guide/credentials-chain.html) to fetch credentials." + }, + "sessionToken": { + "$dynamic": true, + "type": "string", + "title": "AWS session token, retrieved from an AWS token service, used for authenticating that this user has received temporary permissions to access a given resource.", + "markdownDescription": "If no credentials are defined, we will use the [default credentials provider chain](https://docs.aws.amazon.com/sdk-for-java/latest/developer-guide/credentials-chain.html) to fetch credentials." + }, + "stsEndpointOverride": { + "$dynamic": true, + "type": "string", + "title": "The AWS STS endpoint with which the SDKClient should communicate." + }, + "stsRoleArn": { + "$dynamic": true, + "type": "string", + "title": "AWS STS Role.", + "markdownDescription": "The Amazon Resource Name (ARN) of the role to assume. If set the task will use the `StsAssumeRoleCredentialsProvider`. If no credentials are defined, we will use the [default credentials provider chain](https://docs.aws.amazon.com/sdk-for-java/latest/developer-guide/credentials-chain.html) to fetch credentials." + }, + "stsRoleExternalId": { + "$dynamic": true, + "type": "string", + "title": "AWS STS External Id.", + "markdownDescription": " A unique identifier that might be required when you assume a role in another account. This property is only used when an `stsRoleArn` is defined." + }, + "stsRoleSessionDuration": { + "$dynamic": false, + "type": "string", + "format": "duration", + "title": "AWS STS Session duration.", + "default": 900, + "markdownDescription": "The duration of the role session (default: 15 minutes, i.e., PT15M). This property is only used when an `stsRoleArn` is defined.\n\nDefault value is : `900.000000000`" + }, + "stsRoleSessionName": { + "$dynamic": true, + "type": "string", + "title": "AWS STS Session name.", + "markdownDescription": "This property is only used when an `stsRoleArn` is defined." + }, + "tableName": { + "$dynamic": true, + "type": "string", + "title": "The DynamoDB table name." + }, + "timeout": { + "type": "string", + "format": "duration" + }, + "type": { + "const": "io.kestra.plugin.aws.dynamodb.DeleteItem" + }, + "workerGroup": { + "$ref": "#/definitions/io.kestra.core.models.tasks.WorkerGroup" + } + }, + "required": ["id", "tableName", "type"], + "title": "Delete an item from a table.", + "markdownDescription": "##### Examples\n\u003E Delete an item by its key.\n```yaml\naccessKeyId: \"\u003Caccess-key\u003E\"\nsecretKeyId: \"\u003Csecret-key\u003E\"\nregion: \"eu-central-1\"\ntableName: \"persons\"\nkey: \n id: \"1\"\n```" + }, + "io.kestra.plugin.aws.dynamodb.GetItem": { + "type": "object", + "properties": { + "accessKeyId": { + "$dynamic": true, + "type": "string", + "title": "Access Key Id in order to connect to AWS.", + "markdownDescription": "If no credentials are defined, we will use the [default credentials provider chain](https://docs.aws.amazon.com/sdk-for-java/latest/developer-guide/credentials-chain.html) to fetch credentials." + }, + "allowFailure": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "compatibilityMode": { + "$dynamic": true, + "type": "boolean" + }, + "description": { + "type": "string" + }, + "disabled": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "endpointOverride": { + "$dynamic": true, + "type": "string", + "title": "The endpoint with which the SDK should communicate.", + "markdownDescription": "This property allows you to use a different S3 compatible storage backend." + }, + "id": { + "type": "string", + "minLength": 1, + "pattern": "^[a-zA-Z0-9][a-zA-Z0-9_-]*" + }, + "key": { + "$dynamic": true, + "type": "object", + "title": "The DynamoDB item key.", + "markdownDescription": "The DynamoDB item identifier." + }, + "logLevel": { + "type": "string", + "enum": ["ERROR", "WARN", "INFO", "DEBUG", "TRACE"] + }, + "region": { + "$dynamic": true, + "type": "string", + "title": "AWS region with which the SDK should communicate." + }, + "retry": { + "oneOf": [ + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Constant-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Exponential-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Random-2" + } + ] + }, + "secretKeyId": { + "$dynamic": true, + "type": "string", + "title": "Secret Key Id in order to connect to AWS.", + "markdownDescription": "If no credentials are defined, we will use the [default credentials provider chain](https://docs.aws.amazon.com/sdk-for-java/latest/developer-guide/credentials-chain.html) to fetch credentials." + }, + "sessionToken": { + "$dynamic": true, + "type": "string", + "title": "AWS session token, retrieved from an AWS token service, used for authenticating that this user has received temporary permissions to access a given resource.", + "markdownDescription": "If no credentials are defined, we will use the [default credentials provider chain](https://docs.aws.amazon.com/sdk-for-java/latest/developer-guide/credentials-chain.html) to fetch credentials." + }, + "stsEndpointOverride": { + "$dynamic": true, + "type": "string", + "title": "The AWS STS endpoint with which the SDKClient should communicate." + }, + "stsRoleArn": { + "$dynamic": true, + "type": "string", + "title": "AWS STS Role.", + "markdownDescription": "The Amazon Resource Name (ARN) of the role to assume. If set the task will use the `StsAssumeRoleCredentialsProvider`. If no credentials are defined, we will use the [default credentials provider chain](https://docs.aws.amazon.com/sdk-for-java/latest/developer-guide/credentials-chain.html) to fetch credentials." + }, + "stsRoleExternalId": { + "$dynamic": true, + "type": "string", + "title": "AWS STS External Id.", + "markdownDescription": " A unique identifier that might be required when you assume a role in another account. This property is only used when an `stsRoleArn` is defined." + }, + "stsRoleSessionDuration": { + "$dynamic": false, + "type": "string", + "format": "duration", + "title": "AWS STS Session duration.", + "default": 900, + "markdownDescription": "The duration of the role session (default: 15 minutes, i.e., PT15M). This property is only used when an `stsRoleArn` is defined.\n\nDefault value is : `900.000000000`" + }, + "stsRoleSessionName": { + "$dynamic": true, + "type": "string", + "title": "AWS STS Session name.", + "markdownDescription": "This property is only used when an `stsRoleArn` is defined." + }, + "tableName": { + "$dynamic": true, + "type": "string", + "title": "The DynamoDB table name." + }, + "timeout": { + "type": "string", + "format": "duration" + }, + "type": { + "const": "io.kestra.plugin.aws.dynamodb.GetItem" + }, + "workerGroup": { + "$ref": "#/definitions/io.kestra.core.models.tasks.WorkerGroup" + } + }, + "required": ["id", "tableName", "type"], + "title": "Get an item from a table.", + "markdownDescription": "##### Examples\n\u003E Get an item by its key.\n```yaml\naccessKeyId: \"\u003Caccess-key\u003E\"\nsecretKeyId: \"\u003Csecret-key\u003E\"\nregion: \"eu-central-1\"\ntableName: \"persons\"\nkey: \n id: \"1\"\n```" + }, + "io.kestra.plugin.aws.dynamodb.PutItem": { + "type": "object", + "properties": { + "accessKeyId": { + "$dynamic": true, + "type": "string", + "title": "Access Key Id in order to connect to AWS.", + "markdownDescription": "If no credentials are defined, we will use the [default credentials provider chain](https://docs.aws.amazon.com/sdk-for-java/latest/developer-guide/credentials-chain.html) to fetch credentials." + }, + "allowFailure": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "compatibilityMode": { + "$dynamic": true, + "type": "boolean" + }, + "description": { + "type": "string" + }, + "disabled": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "endpointOverride": { + "$dynamic": true, + "type": "string", + "title": "The endpoint with which the SDK should communicate.", + "markdownDescription": "This property allows you to use a different S3 compatible storage backend." + }, + "id": { + "type": "string", + "minLength": 1, + "pattern": "^[a-zA-Z0-9][a-zA-Z0-9_-]*" + }, + "item": { + "$dynamic": true, + "title": "The DynamoDB item.", + "markdownDescription": "The item can be in the form of a JSON string, or a map." + }, + "logLevel": { + "type": "string", + "enum": ["ERROR", "WARN", "INFO", "DEBUG", "TRACE"] + }, + "region": { + "$dynamic": true, + "type": "string", + "title": "AWS region with which the SDK should communicate." + }, + "retry": { + "oneOf": [ + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Constant-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Exponential-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Random-2" + } + ] + }, + "secretKeyId": { + "$dynamic": true, + "type": "string", + "title": "Secret Key Id in order to connect to AWS.", + "markdownDescription": "If no credentials are defined, we will use the [default credentials provider chain](https://docs.aws.amazon.com/sdk-for-java/latest/developer-guide/credentials-chain.html) to fetch credentials." + }, + "sessionToken": { + "$dynamic": true, + "type": "string", + "title": "AWS session token, retrieved from an AWS token service, used for authenticating that this user has received temporary permissions to access a given resource.", + "markdownDescription": "If no credentials are defined, we will use the [default credentials provider chain](https://docs.aws.amazon.com/sdk-for-java/latest/developer-guide/credentials-chain.html) to fetch credentials." + }, + "stsEndpointOverride": { + "$dynamic": true, + "type": "string", + "title": "The AWS STS endpoint with which the SDKClient should communicate." + }, + "stsRoleArn": { + "$dynamic": true, + "type": "string", + "title": "AWS STS Role.", + "markdownDescription": "The Amazon Resource Name (ARN) of the role to assume. If set the task will use the `StsAssumeRoleCredentialsProvider`. If no credentials are defined, we will use the [default credentials provider chain](https://docs.aws.amazon.com/sdk-for-java/latest/developer-guide/credentials-chain.html) to fetch credentials." + }, + "stsRoleExternalId": { + "$dynamic": true, + "type": "string", + "title": "AWS STS External Id.", + "markdownDescription": " A unique identifier that might be required when you assume a role in another account. This property is only used when an `stsRoleArn` is defined." + }, + "stsRoleSessionDuration": { + "$dynamic": false, + "type": "string", + "format": "duration", + "title": "AWS STS Session duration.", + "default": 900, + "markdownDescription": "The duration of the role session (default: 15 minutes, i.e., PT15M). This property is only used when an `stsRoleArn` is defined.\n\nDefault value is : `900.000000000`" + }, + "stsRoleSessionName": { + "$dynamic": true, + "type": "string", + "title": "AWS STS Session name.", + "markdownDescription": "This property is only used when an `stsRoleArn` is defined." + }, + "tableName": { + "$dynamic": true, + "type": "string", + "title": "The DynamoDB table name." + }, + "timeout": { + "type": "string", + "format": "duration" + }, + "type": { + "const": "io.kestra.plugin.aws.dynamodb.PutItem" + }, + "workerGroup": { + "$ref": "#/definitions/io.kestra.core.models.tasks.WorkerGroup" + } + }, + "required": ["id", "tableName", "type"], + "title": "Put an item into a DynamoDB table. If an item with the same key already exists, the element will be updated.", + "markdownDescription": "##### Examples\n\u003E Put an item in map form into a table.\n```yaml\naccessKeyId: \"\u003Caccess-key\u003E\"\nsecretKeyId: \"\u003Csecret-key\u003E\"\nregion: \"eu-central-1\"\ntableName: \"persons\"\nitem:\n id: 1\n firstname: \"John\"\n lastname: \"Doe\"\n```\n\n\u003E Put an item in JSON string form into a table.\n```yaml\naccessKeyId: \"\u003Caccess-key\u003E\"\nsecretKeyId: \"\u003Csecret-key\u003E\"\nregion: \"eu-central-1\"\ntableName: \"persons\"\nitem: \"{{ outputs.task_id.data | json }}\"\n```" + }, + "io.kestra.plugin.aws.dynamodb.Query": { + "type": "object", + "properties": { + "accessKeyId": { + "$dynamic": true, + "type": "string", + "title": "Access Key Id in order to connect to AWS.", + "markdownDescription": "If no credentials are defined, we will use the [default credentials provider chain](https://docs.aws.amazon.com/sdk-for-java/latest/developer-guide/credentials-chain.html) to fetch credentials." + }, + "allowFailure": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "compatibilityMode": { + "$dynamic": true, + "type": "boolean" + }, + "description": { + "type": "string" + }, + "disabled": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "endpointOverride": { + "$dynamic": true, + "type": "string", + "title": "The endpoint with which the SDK should communicate.", + "markdownDescription": "This property allows you to use a different S3 compatible storage backend." + }, + "expressionAttributeValues": { + "$dynamic": true, + "type": "object", + "title": "Query expression attributes.", + "markdownDescription": "It's a map of string -\u003E object." + }, + "fetchType": { + "$dynamic": false, + "type": "string", + "enum": ["STORE", "FETCH", "FETCH_ONE", "NONE"], + "title": "The way you want to store the data.", + "default": "STORE", + "markdownDescription": "FETCH_ONE output the first row, FETCH output all the rows, STORE store all rows in a file, NONE do nothing.\n\nDefault value is : `STORE`" + }, + "filterExpression": { + "$dynamic": true, + "type": "string", + "title": "Query filter expression.", + "markdownDescription": "Query filter expression." + }, + "id": { + "type": "string", + "minLength": 1, + "pattern": "^[a-zA-Z0-9][a-zA-Z0-9_-]*" + }, + "keyConditionExpression": { + "$dynamic": true, + "type": "string", + "title": "Query key condition expression." + }, + "limit": { + "$dynamic": false, + "type": "integer", + "title": "Maximum numbers of returned results." + }, + "logLevel": { + "type": "string", + "enum": ["ERROR", "WARN", "INFO", "DEBUG", "TRACE"] + }, + "region": { + "$dynamic": true, + "type": "string", + "title": "AWS region with which the SDK should communicate." + }, + "retry": { + "oneOf": [ + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Constant-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Exponential-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Random-2" + } + ] + }, + "secretKeyId": { + "$dynamic": true, + "type": "string", + "title": "Secret Key Id in order to connect to AWS.", + "markdownDescription": "If no credentials are defined, we will use the [default credentials provider chain](https://docs.aws.amazon.com/sdk-for-java/latest/developer-guide/credentials-chain.html) to fetch credentials." + }, + "sessionToken": { + "$dynamic": true, + "type": "string", + "title": "AWS session token, retrieved from an AWS token service, used for authenticating that this user has received temporary permissions to access a given resource.", + "markdownDescription": "If no credentials are defined, we will use the [default credentials provider chain](https://docs.aws.amazon.com/sdk-for-java/latest/developer-guide/credentials-chain.html) to fetch credentials." + }, + "stsEndpointOverride": { + "$dynamic": true, + "type": "string", + "title": "The AWS STS endpoint with which the SDKClient should communicate." + }, + "stsRoleArn": { + "$dynamic": true, + "type": "string", + "title": "AWS STS Role.", + "markdownDescription": "The Amazon Resource Name (ARN) of the role to assume. If set the task will use the `StsAssumeRoleCredentialsProvider`. If no credentials are defined, we will use the [default credentials provider chain](https://docs.aws.amazon.com/sdk-for-java/latest/developer-guide/credentials-chain.html) to fetch credentials." + }, + "stsRoleExternalId": { + "$dynamic": true, + "type": "string", + "title": "AWS STS External Id.", + "markdownDescription": " A unique identifier that might be required when you assume a role in another account. This property is only used when an `stsRoleArn` is defined." + }, + "stsRoleSessionDuration": { + "$dynamic": false, + "type": "string", + "format": "duration", + "title": "AWS STS Session duration.", + "default": 900, + "markdownDescription": "The duration of the role session (default: 15 minutes, i.e., PT15M). This property is only used when an `stsRoleArn` is defined.\n\nDefault value is : `900.000000000`" + }, + "stsRoleSessionName": { + "$dynamic": true, + "type": "string", + "title": "AWS STS Session name.", + "markdownDescription": "This property is only used when an `stsRoleArn` is defined." + }, + "tableName": { + "$dynamic": true, + "type": "string", + "title": "The DynamoDB table name." + }, + "timeout": { + "type": "string", + "format": "duration" + }, + "type": { + "const": "io.kestra.plugin.aws.dynamodb.Query" + }, + "workerGroup": { + "$ref": "#/definitions/io.kestra.core.models.tasks.WorkerGroup" + } + }, + "required": [ + "expressionAttributeValues", + "id", + "keyConditionExpression", + "tableName", + "type" + ], + "title": "Query items from a table.", + "markdownDescription": "##### Examples\n\u003E Query items from a table.\n```yaml\naccessKeyId: \"\u003Caccess-key\u003E\"\nsecretKeyId: \"\u003Csecret-key\u003E\"\nregion: \"eu-central-1\"\ntableName: \"persons\"\nkeyConditionExpression: id = :id\nexpressionAttributeValues:\n :id: \"1\"\n```\n\n\u003E Query items from a table with a filter expression.\n```yaml\naccessKeyId: \"\u003Caccess-key\u003E\"\nsecretKeyId: \"\u003Csecret-key\u003E\"\nregion: \"eu-central-1\"\ntableName: \"persons\"\nkeyConditionExpression: id = :id\nexpressionAttributeValues:\n :id: \"1\"\n :lastname: \"Doe\"\n```" + }, + "io.kestra.plugin.aws.dynamodb.Scan": { + "type": "object", + "properties": { + "accessKeyId": { + "$dynamic": true, + "type": "string", + "title": "Access Key Id in order to connect to AWS.", + "markdownDescription": "If no credentials are defined, we will use the [default credentials provider chain](https://docs.aws.amazon.com/sdk-for-java/latest/developer-guide/credentials-chain.html) to fetch credentials." + }, + "allowFailure": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "compatibilityMode": { + "$dynamic": true, + "type": "boolean" + }, + "description": { + "type": "string" + }, + "disabled": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "endpointOverride": { + "$dynamic": true, + "type": "string", + "title": "The endpoint with which the SDK should communicate.", + "markdownDescription": "This property allows you to use a different S3 compatible storage backend." + }, + "expressionAttributeValues": { + "$dynamic": true, + "type": "object", + "title": "Scan expression attributes.", + "markdownDescription": "It's a map of string -\u003E object." + }, + "fetchType": { + "$dynamic": false, + "type": "string", + "enum": ["STORE", "FETCH", "FETCH_ONE", "NONE"], + "title": "The way you want to store the data.", + "default": "STORE", + "markdownDescription": "FETCH_ONE output the first row, FETCH output all the rows, STORE store all rows in a file, NONE do nothing.\n\nDefault value is : `STORE`" + }, + "filterExpression": { + "$dynamic": true, + "type": "string", + "title": "Scan filter expression.", + "markdownDescription": "When used, `expressionAttributeValues` property must also be provided." + }, + "id": { + "type": "string", + "minLength": 1, + "pattern": "^[a-zA-Z0-9][a-zA-Z0-9_-]*" + }, + "limit": { + "$dynamic": false, + "type": "integer", + "title": "Maximum numbers of returned results." + }, + "logLevel": { + "type": "string", + "enum": ["ERROR", "WARN", "INFO", "DEBUG", "TRACE"] + }, + "region": { + "$dynamic": true, + "type": "string", + "title": "AWS region with which the SDK should communicate." + }, + "retry": { + "oneOf": [ + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Constant-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Exponential-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Random-2" + } + ] + }, + "secretKeyId": { + "$dynamic": true, + "type": "string", + "title": "Secret Key Id in order to connect to AWS.", + "markdownDescription": "If no credentials are defined, we will use the [default credentials provider chain](https://docs.aws.amazon.com/sdk-for-java/latest/developer-guide/credentials-chain.html) to fetch credentials." + }, + "sessionToken": { + "$dynamic": true, + "type": "string", + "title": "AWS session token, retrieved from an AWS token service, used for authenticating that this user has received temporary permissions to access a given resource.", + "markdownDescription": "If no credentials are defined, we will use the [default credentials provider chain](https://docs.aws.amazon.com/sdk-for-java/latest/developer-guide/credentials-chain.html) to fetch credentials." + }, + "stsEndpointOverride": { + "$dynamic": true, + "type": "string", + "title": "The AWS STS endpoint with which the SDKClient should communicate." + }, + "stsRoleArn": { + "$dynamic": true, + "type": "string", + "title": "AWS STS Role.", + "markdownDescription": "The Amazon Resource Name (ARN) of the role to assume. If set the task will use the `StsAssumeRoleCredentialsProvider`. If no credentials are defined, we will use the [default credentials provider chain](https://docs.aws.amazon.com/sdk-for-java/latest/developer-guide/credentials-chain.html) to fetch credentials." + }, + "stsRoleExternalId": { + "$dynamic": true, + "type": "string", + "title": "AWS STS External Id.", + "markdownDescription": " A unique identifier that might be required when you assume a role in another account. This property is only used when an `stsRoleArn` is defined." + }, + "stsRoleSessionDuration": { + "$dynamic": false, + "type": "string", + "format": "duration", + "title": "AWS STS Session duration.", + "default": 900, + "markdownDescription": "The duration of the role session (default: 15 minutes, i.e., PT15M). This property is only used when an `stsRoleArn` is defined.\n\nDefault value is : `900.000000000`" + }, + "stsRoleSessionName": { + "$dynamic": true, + "type": "string", + "title": "AWS STS Session name.", + "markdownDescription": "This property is only used when an `stsRoleArn` is defined." + }, + "tableName": { + "$dynamic": true, + "type": "string", + "title": "The DynamoDB table name." + }, + "timeout": { + "type": "string", + "format": "duration" + }, + "type": { + "const": "io.kestra.plugin.aws.dynamodb.Scan" + }, + "workerGroup": { + "$ref": "#/definitions/io.kestra.core.models.tasks.WorkerGroup" + } + }, + "required": ["id", "tableName", "type"], + "title": "Scan items from a table.", + "markdownDescription": "##### Examples\n\u003E Scan all items from a table.\n```yaml\naccessKeyId: \"\u003Caccess-key\u003E\"\nsecretKeyId: \"\u003Csecret-key\u003E\"\nregion: \"eu-central-1\"\ntableName: \"persons\"\n```\n\n\u003E Scan items from a table with a filter expression.\n```yaml\naccessKeyId: \"\u003Caccess-key\u003E\"\nsecretKeyId: \"\u003Csecret-key\u003E\"\nregion: \"eu-central-1\"\ntableName: \"persons\"\nfilterExpression: \"lastname = :lastname\"\nexpressionAttributeValues:\n :lastname: \"Doe\"\n```" + }, + "io.kestra.plugin.aws.ecr.GetAuthToken": { + "type": "object", + "properties": { + "accessKeyId": { + "$dynamic": true, + "type": "string", + "title": "Access Key Id in order to connect to AWS.", + "markdownDescription": "If no credentials are defined, we will use the [default credentials provider chain](https://docs.aws.amazon.com/sdk-for-java/latest/developer-guide/credentials-chain.html) to fetch credentials." + }, + "allowFailure": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "compatibilityMode": { + "$dynamic": true, + "type": "boolean" + }, + "description": { + "type": "string" + }, + "disabled": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "endpointOverride": { + "$dynamic": true, + "type": "string", + "title": "The endpoint with which the SDK should communicate.", + "markdownDescription": "This property allows you to use a different S3 compatible storage backend." + }, + "id": { + "type": "string", + "minLength": 1, + "pattern": "^[a-zA-Z0-9][a-zA-Z0-9_-]*" + }, + "logLevel": { + "type": "string", + "enum": ["ERROR", "WARN", "INFO", "DEBUG", "TRACE"] + }, + "region": { + "$dynamic": true, + "type": "string", + "title": "AWS region with which the SDK should communicate." + }, + "retry": { + "oneOf": [ + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Constant-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Exponential-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Random-2" + } + ] + }, + "secretKeyId": { + "$dynamic": true, + "type": "string", + "title": "Secret Key Id in order to connect to AWS.", + "markdownDescription": "If no credentials are defined, we will use the [default credentials provider chain](https://docs.aws.amazon.com/sdk-for-java/latest/developer-guide/credentials-chain.html) to fetch credentials." + }, + "sessionToken": { + "$dynamic": true, + "type": "string", + "title": "AWS session token, retrieved from an AWS token service, used for authenticating that this user has received temporary permissions to access a given resource.", + "markdownDescription": "If no credentials are defined, we will use the [default credentials provider chain](https://docs.aws.amazon.com/sdk-for-java/latest/developer-guide/credentials-chain.html) to fetch credentials." + }, + "stsEndpointOverride": { + "$dynamic": true, + "type": "string", + "title": "The AWS STS endpoint with which the SDKClient should communicate." + }, + "stsRoleArn": { + "$dynamic": true, + "type": "string", + "title": "AWS STS Role.", + "markdownDescription": "The Amazon Resource Name (ARN) of the role to assume. If set the task will use the `StsAssumeRoleCredentialsProvider`. If no credentials are defined, we will use the [default credentials provider chain](https://docs.aws.amazon.com/sdk-for-java/latest/developer-guide/credentials-chain.html) to fetch credentials." + }, + "stsRoleExternalId": { + "$dynamic": true, + "type": "string", + "title": "AWS STS External Id.", + "markdownDescription": " A unique identifier that might be required when you assume a role in another account. This property is only used when an `stsRoleArn` is defined." + }, + "stsRoleSessionDuration": { + "$dynamic": false, + "type": "string", + "format": "duration", + "title": "AWS STS Session duration.", + "default": 900, + "markdownDescription": "The duration of the role session (default: 15 minutes, i.e., PT15M). This property is only used when an `stsRoleArn` is defined.\n\nDefault value is : `900.000000000`" + }, + "stsRoleSessionName": { + "$dynamic": true, + "type": "string", + "title": "AWS STS Session name.", + "markdownDescription": "This property is only used when an `stsRoleArn` is defined." + }, + "timeout": { + "type": "string", + "format": "duration" + }, + "type": { + "const": "io.kestra.plugin.aws.ecr.GetAuthToken" + }, + "workerGroup": { + "$ref": "#/definitions/io.kestra.core.models.tasks.WorkerGroup" + } + }, + "required": ["id", "type"], + "title": "Retrieve AWS ECR authorization token to push Docker images to Amazon ECR, or pull images from that container registry.", + "markdownDescription": "##### Examples\n\u003E Retrieve the AWS ECR authorization token.\n```yaml\naccessKeyId: \"\u003Caccess-key\u003E\"\nsecretKeyId: \"\u003Csecret-key\u003E\"\nregion: \"eu-central-1\"\n```" + }, + "io.kestra.plugin.aws.eventbridge.PutEvents": { + "type": "object", + "properties": { + "accessKeyId": { + "$dynamic": true, + "type": "string", + "title": "Access Key Id in order to connect to AWS.", + "markdownDescription": "If no credentials are defined, we will use the [default credentials provider chain](https://docs.aws.amazon.com/sdk-for-java/latest/developer-guide/credentials-chain.html) to fetch credentials." + }, + "allowFailure": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "compatibilityMode": { + "$dynamic": true, + "type": "boolean" + }, + "description": { + "type": "string" + }, + "disabled": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "endpointOverride": { + "$dynamic": true, + "type": "string", + "title": "The endpoint with which the SDK should communicate.", + "markdownDescription": "This property allows you to use a different S3 compatible storage backend." + }, + "entries": { + "$dynamic": true, + "title": "List of event entries to send to, or internal storage URI to retrieve it.", + "oneOf": [ + { + "type": "string" + }, + { + "type": "array", + "items": { + "$ref": "#/definitions/io.kestra.plugin.aws.eventbridge.model.Entry" + } + } + ], + "markdownDescription": "A list of at least one EventBridge entry." + }, + "failOnUnsuccessfulEvents": { + "$dynamic": false, + "type": "boolean", + "title": "Mark the task as failed when sending an event is unsuccessful.", + "default": true, + "markdownDescription": "If true, the task will fail when any event fails to be sent.\n\nDefault value is : `true`" + }, + "id": { + "type": "string", + "minLength": 1, + "pattern": "^[a-zA-Z0-9][a-zA-Z0-9_-]*" + }, + "logLevel": { + "type": "string", + "enum": ["ERROR", "WARN", "INFO", "DEBUG", "TRACE"] + }, + "region": { + "$dynamic": true, + "type": "string", + "title": "AWS region with which the SDK should communicate." + }, + "retry": { + "oneOf": [ + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Constant-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Exponential-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Random-2" + } + ] + }, + "secretKeyId": { + "$dynamic": true, + "type": "string", + "title": "Secret Key Id in order to connect to AWS.", + "markdownDescription": "If no credentials are defined, we will use the [default credentials provider chain](https://docs.aws.amazon.com/sdk-for-java/latest/developer-guide/credentials-chain.html) to fetch credentials." + }, + "sessionToken": { + "$dynamic": true, + "type": "string", + "title": "AWS session token, retrieved from an AWS token service, used for authenticating that this user has received temporary permissions to access a given resource.", + "markdownDescription": "If no credentials are defined, we will use the [default credentials provider chain](https://docs.aws.amazon.com/sdk-for-java/latest/developer-guide/credentials-chain.html) to fetch credentials." + }, + "stsEndpointOverride": { + "$dynamic": true, + "type": "string", + "title": "The AWS STS endpoint with which the SDKClient should communicate." + }, + "stsRoleArn": { + "$dynamic": true, + "type": "string", + "title": "AWS STS Role.", + "markdownDescription": "The Amazon Resource Name (ARN) of the role to assume. If set the task will use the `StsAssumeRoleCredentialsProvider`. If no credentials are defined, we will use the [default credentials provider chain](https://docs.aws.amazon.com/sdk-for-java/latest/developer-guide/credentials-chain.html) to fetch credentials." + }, + "stsRoleExternalId": { + "$dynamic": true, + "type": "string", + "title": "AWS STS External Id.", + "markdownDescription": " A unique identifier that might be required when you assume a role in another account. This property is only used when an `stsRoleArn` is defined." + }, + "stsRoleSessionDuration": { + "$dynamic": false, + "type": "string", + "format": "duration", + "title": "AWS STS Session duration.", + "default": 900, + "markdownDescription": "The duration of the role session (default: 15 minutes, i.e., PT15M). This property is only used when an `stsRoleArn` is defined.\n\nDefault value is : `900.000000000`" + }, + "stsRoleSessionName": { + "$dynamic": true, + "type": "string", + "title": "AWS STS Session name.", + "markdownDescription": "This property is only used when an `stsRoleArn` is defined." + }, + "timeout": { + "type": "string", + "format": "duration" + }, + "type": { + "const": "io.kestra.plugin.aws.eventbridge.PutEvents" + }, + "workerGroup": { + "$ref": "#/definitions/io.kestra.core.models.tasks.WorkerGroup" + } + }, + "required": ["entries", "id", "type"], + "title": "Send multiple custom events to Amazon EventBridge so that they can be matched to rules.", + "markdownDescription": "##### Examples\n\u003E Send multiple custom events as maps to Amazon EventBridge so that they can be matched to rules.\n```yaml\naccessKeyId: \"\u003Caccess-key\u003E\"\nsecretKeyId: \"\u003Csecret-key\u003E\"\nregion: \"eu-central-1\"\nentries:\n - eventBusName: \"events\"\n source: \"Kestra\"\n detailType: \"my_object\"\n detail:\n message: \"hello from EventBridge and Kestra\"\n```\n\n\u003E Send multiple custom events as a JSON string to Amazon EventBridge so that they can be matched to rules.\n```yaml\naccessKeyId: \"\u003Caccess-key\u003E\"\nsecretKeyId: \"\u003Csecret-key\u003E\"\nregion: \"eu-central-1\"\nentries:\n - eventBusName: \"events\"\n source: \"Kestra\"\n detailType: \"my_object\"\n detail: \"{\\\"message\\\": \\\"hello from EventBridge and Kestra\\\"}\"\n resources:\n - \"arn:aws:iam::123456789012:user/johndoe\"\n```" + }, + "io.kestra.plugin.aws.eventbridge.model.Entry": { + "type": "object", + "properties": { + "detail": { + "$dynamic": true, + "title": "The EventBridge entry.", + "markdownDescription": "Can be a JSON string, or a map." + }, + "detailType": { + "$dynamic": true, + "type": "string", + "title": "Free-form string used to decide what fields to expect in the event detail." + }, + "eventBusName": { + "$dynamic": true, + "type": "string", + "title": "The name or ARN of the event bus to receive the event." + }, + "resources": { + "$dynamic": true, + "title": "AWS resources which the event primarily concerns.", + "markdownDescription": "AWS resources, identified by Amazon Resource Name (ARN), which the event primarily concerns. Any number, including zero, may be present.", + "type": "array", + "items": { + "$dynamic": true, + "type": "string" + } + }, + "source": { + "$dynamic": true, + "type": "string", + "title": "The source of the event." + } + }, + "required": ["detailType", "eventBusName", "source"] + }, + "io.kestra.plugin.aws.kinesis.PutRecords": { + "type": "object", + "properties": { + "accessKeyId": { + "$dynamic": true, + "type": "string", + "title": "Access Key Id in order to connect to AWS.", + "markdownDescription": "If no credentials are defined, we will use the [default credentials provider chain](https://docs.aws.amazon.com/sdk-for-java/latest/developer-guide/credentials-chain.html) to fetch credentials." + }, + "allowFailure": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "compatibilityMode": { + "$dynamic": true, + "type": "boolean" + }, + "description": { + "type": "string" + }, + "disabled": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "endpointOverride": { + "$dynamic": true, + "type": "string", + "title": "The endpoint with which the SDK should communicate.", + "markdownDescription": "This property allows you to use a different S3 compatible storage backend." + }, + "failOnUnsuccessfulRecords": { + "$dynamic": false, + "type": "boolean", + "title": "Mark the task as failed when sending a record is unsuccessful.", + "default": true, + "markdownDescription": "If true, the task will fail when any record fails to be sent.\n\nDefault value is : `true`" + }, + "id": { + "type": "string", + "minLength": 1, + "pattern": "^[a-zA-Z0-9][a-zA-Z0-9_-]*" + }, + "logLevel": { + "type": "string", + "enum": ["ERROR", "WARN", "INFO", "DEBUG", "TRACE"] + }, + "records": { + "$dynamic": true, + "title": "List of records (i.e., list of maps) or internal storage URI of the file that defines the records to be sent to AWS Kinesis Data Streams.", + "markdownDescription": "A list of at least one record with a map including `data` and `partitionKey` properties (those two are required arguments). Check the [PutRecordsRequestEntry](https://docs.aws.amazon.com/kinesis/latest/APIReference/API_PutRecordsRequestEntry.html) API reference for a detailed description of required fields.", + "oneOf": [ + { + "type": "string" + }, + { + "type": "array", + "items": { + "$ref": "#/definitions/io.kestra.plugin.aws.kinesis.model.Record" + } + } + ] + }, + "region": { + "$dynamic": true, + "type": "string", + "title": "AWS region with which the SDK should communicate." + }, + "retry": { + "oneOf": [ + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Constant-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Exponential-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Random-2" + } + ] + }, + "secretKeyId": { + "$dynamic": true, + "type": "string", + "title": "Secret Key Id in order to connect to AWS.", + "markdownDescription": "If no credentials are defined, we will use the [default credentials provider chain](https://docs.aws.amazon.com/sdk-for-java/latest/developer-guide/credentials-chain.html) to fetch credentials." + }, + "sessionToken": { + "$dynamic": true, + "type": "string", + "title": "AWS session token, retrieved from an AWS token service, used for authenticating that this user has received temporary permissions to access a given resource.", + "markdownDescription": "If no credentials are defined, we will use the [default credentials provider chain](https://docs.aws.amazon.com/sdk-for-java/latest/developer-guide/credentials-chain.html) to fetch credentials." + }, + "streamArn": { + "$dynamic": true, + "type": "string", + "title": "The ARN of the stream to push the records.", + "markdownDescription": "Make sure to set either `streamName` or `streamArn`. One of those must be provided." + }, + "streamName": { + "$dynamic": true, + "type": "string", + "title": "The name of the stream to push the records.", + "markdownDescription": "Make sure to set either `streamName` or `streamArn`. One of those must be provided." + }, + "stsEndpointOverride": { + "$dynamic": true, + "type": "string", + "title": "The AWS STS endpoint with which the SDKClient should communicate." + }, + "stsRoleArn": { + "$dynamic": true, + "type": "string", + "title": "AWS STS Role.", + "markdownDescription": "The Amazon Resource Name (ARN) of the role to assume. If set the task will use the `StsAssumeRoleCredentialsProvider`. If no credentials are defined, we will use the [default credentials provider chain](https://docs.aws.amazon.com/sdk-for-java/latest/developer-guide/credentials-chain.html) to fetch credentials." + }, + "stsRoleExternalId": { + "$dynamic": true, + "type": "string", + "title": "AWS STS External Id.", + "markdownDescription": " A unique identifier that might be required when you assume a role in another account. This property is only used when an `stsRoleArn` is defined." + }, + "stsRoleSessionDuration": { + "$dynamic": false, + "type": "string", + "format": "duration", + "title": "AWS STS Session duration.", + "default": 900, + "markdownDescription": "The duration of the role session (default: 15 minutes, i.e., PT15M). This property is only used when an `stsRoleArn` is defined.\n\nDefault value is : `900.000000000`" + }, + "stsRoleSessionName": { + "$dynamic": true, + "type": "string", + "title": "AWS STS Session name.", + "markdownDescription": "This property is only used when an `stsRoleArn` is defined." + }, + "timeout": { + "type": "string", + "format": "duration" + }, + "type": { + "const": "io.kestra.plugin.aws.kinesis.PutRecords" + }, + "workerGroup": { + "$ref": "#/definitions/io.kestra.core.models.tasks.WorkerGroup" + } + }, + "required": ["id", "records", "type"], + "title": "Send multiple records to Amazon Kinesis Data Streams.", + "markdownDescription": "##### Examples\n\u003E Send multiple records as maps to Amazon Kinesis Data Streams. Check the following AWS API reference for the structure of the [PutRecordsRequestEntry](https://docs.aws.amazon.com/kinesis/latest/APIReference/API_PutRecordsRequestEntry.html) request payload.\n```yaml\naccessKeyId: \"\u003Caccess-key\u003E\"\nsecretKeyId: \"\u003Csecret-key\u003E\"\nregion: \"eu-central-1\"\nstreamName: \"mystream\"\nrecords:\n - data: \"user sign-in event\"\n explicitHashKey: \"optional hash value overriding the partition key\"\n partitionKey: \"user1\"\n - data: \"user sign-out event\"\n partitionKey: \"user1\"\n```\n\n\u003E Send multiple records from an internal storage ion file to Amazon Kinesis Data Streams.\n```yaml\naccessKeyId: \"\u003Caccess-key\u003E\"\nsecretKeyId: \"\u003Csecret-key\u003E\"\nregion: \"eu-central-1\"\nstreamName: \"mystream\"\nrecords: kestra:///myfile.ion\n```" + }, + "io.kestra.plugin.aws.kinesis.model.Record": { + "type": "object", + "properties": { + "data": { + "$dynamic": true, + "type": "string", + "title": "Free-form data blob to put into the record." + }, + "explicitHashKey": { + "$dynamic": true, + "type": "string", + "title": "The optional hash value used to determine explicitly the shard that the data record is assigned to by overriding the partition key hash." + }, + "partitionKey": { + "$dynamic": true, + "type": "string", + "title": "Determines which shard in the stream the data record is assigned to." + } + }, + "required": ["data", "partitionKey"] + }, + "io.kestra.plugin.aws.lambda.Invoke": { + "$metrics": [ + { + "name": "file.size", + "type": "counter", + "unit": "", + "description": "" + }, + { + "name": "duration", + "type": "timer", + "unit": "", + "description": "" + } + ], + "type": "object", + "properties": { + "accessKeyId": { + "$dynamic": true, + "type": "string", + "title": "Access Key Id in order to connect to AWS.", + "markdownDescription": "If no credentials are defined, we will use the [default credentials provider chain](https://docs.aws.amazon.com/sdk-for-java/latest/developer-guide/credentials-chain.html) to fetch credentials." + }, + "allowFailure": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "compatibilityMode": { + "$dynamic": true, + "type": "boolean" + }, + "description": { + "type": "string" + }, + "disabled": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "endpointOverride": { + "$dynamic": true, + "type": "string", + "title": "The endpoint with which the SDK should communicate.", + "markdownDescription": "This property allows you to use a different S3 compatible storage backend." + }, + "functionArn": { + "$dynamic": true, + "type": "string", + "title": "The Lambda function name." + }, + "functionPayload": { + "$dynamic": true, + "type": "object", + "title": "Function request payload.", + "markdownDescription": "Request payload. It's a map of string -\u003E object." + }, + "id": { + "type": "string", + "minLength": 1, + "pattern": "^[a-zA-Z0-9][a-zA-Z0-9_-]*" + }, + "logLevel": { + "type": "string", + "enum": ["ERROR", "WARN", "INFO", "DEBUG", "TRACE"] + }, + "region": { + "$dynamic": true, + "type": "string", + "title": "AWS region with which the SDK should communicate." + }, + "retry": { + "oneOf": [ + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Constant-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Exponential-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Random-2" + } + ] + }, + "secretKeyId": { + "$dynamic": true, + "type": "string", + "title": "Secret Key Id in order to connect to AWS.", + "markdownDescription": "If no credentials are defined, we will use the [default credentials provider chain](https://docs.aws.amazon.com/sdk-for-java/latest/developer-guide/credentials-chain.html) to fetch credentials." + }, + "sessionToken": { + "$dynamic": true, + "type": "string", + "title": "AWS session token, retrieved from an AWS token service, used for authenticating that this user has received temporary permissions to access a given resource.", + "markdownDescription": "If no credentials are defined, we will use the [default credentials provider chain](https://docs.aws.amazon.com/sdk-for-java/latest/developer-guide/credentials-chain.html) to fetch credentials." + }, + "stsEndpointOverride": { + "$dynamic": true, + "type": "string", + "title": "The AWS STS endpoint with which the SDKClient should communicate." + }, + "stsRoleArn": { + "$dynamic": true, + "type": "string", + "title": "AWS STS Role.", + "markdownDescription": "The Amazon Resource Name (ARN) of the role to assume. If set the task will use the `StsAssumeRoleCredentialsProvider`. If no credentials are defined, we will use the [default credentials provider chain](https://docs.aws.amazon.com/sdk-for-java/latest/developer-guide/credentials-chain.html) to fetch credentials." + }, + "stsRoleExternalId": { + "$dynamic": true, + "type": "string", + "title": "AWS STS External Id.", + "markdownDescription": " A unique identifier that might be required when you assume a role in another account. This property is only used when an `stsRoleArn` is defined." + }, + "stsRoleSessionDuration": { + "$dynamic": false, + "type": "string", + "format": "duration", + "title": "AWS STS Session duration.", + "default": 900, + "markdownDescription": "The duration of the role session (default: 15 minutes, i.e., PT15M). This property is only used when an `stsRoleArn` is defined.\n\nDefault value is : `900.000000000`" + }, + "stsRoleSessionName": { + "$dynamic": true, + "type": "string", + "title": "AWS STS Session name.", + "markdownDescription": "This property is only used when an `stsRoleArn` is defined." + }, + "timeout": { + "type": "string", + "format": "duration" + }, + "type": { + "const": "io.kestra.plugin.aws.lambda.Invoke" + }, + "workerGroup": { + "$ref": "#/definitions/io.kestra.core.models.tasks.WorkerGroup" + } + }, + "required": ["functionArn", "id", "type"], + "title": "Invoke Lambda function and wait for its completion.", + "markdownDescription": "##### Examples\n\u003E Invoke given Lambda function and wait for its completion.\n```yaml\naccessKeyId: \"\u003Caccess-key\u003E\"\nsecretKeyId: \"\u003Csecret-key\u003E\"\nregion: \"eu-central-1\"\nfunctionArn: \"arn:aws:lambda:eu-central-1:123456789012:function:my-function\"\n```\n\n\u003E Invoke given Lambda function with given payload parameters and wait for its completion. Payload is a map of items.\n```yaml\naccessKeyId: \"\u003Caccess-key\u003E\"\nsecretKeyId: \"\u003Csecret-key\u003E\"\nregion: \"eu-central-1\"\nfunctionArn: \"arn:aws:lambda:eu-central-1:123456789012:function:my-function\"\nfunctionPayload:\n id: 1\n firstname: \"John\"\n lastname: \"Doe\"\n```" + }, + "io.kestra.plugin.aws.s3.Copy": { + "type": "object", + "properties": { + "accessKeyId": { + "$dynamic": true, + "type": "string", + "title": "Access Key Id in order to connect to AWS.", + "markdownDescription": "If no credentials are defined, we will use the [default credentials provider chain](https://docs.aws.amazon.com/sdk-for-java/latest/developer-guide/credentials-chain.html) to fetch credentials." + }, + "allowFailure": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "compatibilityMode": { + "$dynamic": true, + "type": "boolean" + }, + "delete": { + "$dynamic": false, + "type": "boolean", + "title": "Whether to delete the source file after download.", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "description": { + "type": "string" + }, + "disabled": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "endpointOverride": { + "$dynamic": true, + "type": "string", + "title": "The endpoint with which the SDK should communicate.", + "markdownDescription": "This property allows you to use a different S3 compatible storage backend." + }, + "from": { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.aws.s3.Copy-CopyObjectFrom" + }, + { + "$dynamic": false, + "title": "The source bucket and key." + } + ] + }, + "id": { + "type": "string", + "minLength": 1, + "pattern": "^[a-zA-Z0-9][a-zA-Z0-9_-]*" + }, + "logLevel": { + "type": "string", + "enum": ["ERROR", "WARN", "INFO", "DEBUG", "TRACE"] + }, + "region": { + "$dynamic": true, + "type": "string", + "title": "AWS region with which the SDK should communicate." + }, + "retry": { + "oneOf": [ + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Constant-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Exponential-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Random-2" + } + ] + }, + "secretKeyId": { + "$dynamic": true, + "type": "string", + "title": "Secret Key Id in order to connect to AWS.", + "markdownDescription": "If no credentials are defined, we will use the [default credentials provider chain](https://docs.aws.amazon.com/sdk-for-java/latest/developer-guide/credentials-chain.html) to fetch credentials." + }, + "sessionToken": { + "$dynamic": true, + "type": "string", + "title": "AWS session token, retrieved from an AWS token service, used for authenticating that this user has received temporary permissions to access a given resource.", + "markdownDescription": "If no credentials are defined, we will use the [default credentials provider chain](https://docs.aws.amazon.com/sdk-for-java/latest/developer-guide/credentials-chain.html) to fetch credentials." + }, + "stsEndpointOverride": { + "$dynamic": true, + "type": "string", + "title": "The AWS STS endpoint with which the SDKClient should communicate." + }, + "stsRoleArn": { + "$dynamic": true, + "type": "string", + "title": "AWS STS Role.", + "markdownDescription": "The Amazon Resource Name (ARN) of the role to assume. If set the task will use the `StsAssumeRoleCredentialsProvider`. If no credentials are defined, we will use the [default credentials provider chain](https://docs.aws.amazon.com/sdk-for-java/latest/developer-guide/credentials-chain.html) to fetch credentials." + }, + "stsRoleExternalId": { + "$dynamic": true, + "type": "string", + "title": "AWS STS External Id.", + "markdownDescription": " A unique identifier that might be required when you assume a role in another account. This property is only used when an `stsRoleArn` is defined." + }, + "stsRoleSessionDuration": { + "$dynamic": false, + "type": "string", + "format": "duration", + "title": "AWS STS Session duration.", + "default": 900, + "markdownDescription": "The duration of the role session (default: 15 minutes, i.e., PT15M). This property is only used when an `stsRoleArn` is defined.\n\nDefault value is : `900.000000000`" + }, + "stsRoleSessionName": { + "$dynamic": true, + "type": "string", + "title": "AWS STS Session name.", + "markdownDescription": "This property is only used when an `stsRoleArn` is defined." + }, + "timeout": { + "type": "string", + "format": "duration" + }, + "to": { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.aws.s3.Copy-CopyObject" + }, + { + "$dynamic": false, + "title": "The destination bucket and key." + } + ] + }, + "type": { + "const": "io.kestra.plugin.aws.s3.Copy" + }, + "workerGroup": { + "$ref": "#/definitions/io.kestra.core.models.tasks.WorkerGroup" + } + }, + "required": ["id", "type"], + "title": "Copy a file between S3 buckets.", + "markdownDescription": "##### Examples\n\u003E \n```yaml\naccessKeyId: \"\u003Caccess-key\u003E\"\nsecretKeyId: \"\u003Csecret-key\u003E\"\nregion: \"eu-central-1\"\nfrom:\n bucket: \"my-bucket\"\n key: \"path/to/file\"\nto:\n bucket: \"my-bucket2\"\n key: \"path/to/file2\"\n```" + }, + "io.kestra.plugin.aws.s3.Copy-CopyObject": { + "type": "object", + "properties": { + "bucket": { + "$dynamic": true, + "type": "string", + "title": "The bucket name" + }, + "key": { + "$dynamic": true, + "type": "string", + "title": "The bucket key" + } + } + }, + "io.kestra.plugin.aws.s3.Copy-CopyObjectFrom": { + "type": "object", + "properties": { + "bucket": { + "$dynamic": true, + "type": "string", + "title": "The bucket name" + }, + "key": { + "$dynamic": true, + "type": "string", + "title": "The bucket key" + }, + "versionId": { + "$dynamic": true, + "type": "string", + "title": "The specific version of the object." + } + } + }, + "io.kestra.plugin.aws.s3.CreateBucket": { + "type": "object", + "properties": { + "accessKeyId": { + "$dynamic": true, + "type": "string", + "title": "Access Key Id in order to connect to AWS.", + "markdownDescription": "If no credentials are defined, we will use the [default credentials provider chain](https://docs.aws.amazon.com/sdk-for-java/latest/developer-guide/credentials-chain.html) to fetch credentials." + }, + "acl": { + "$dynamic": true, + "type": "string", + "title": "The canned ACL to apply to the bucket." + }, + "allowFailure": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "bucket": { + "$dynamic": true, + "type": "string", + "markdownDescription": "The S3 bucket name to create." + }, + "compatibilityMode": { + "$dynamic": true, + "type": "boolean" + }, + "description": { + "type": "string" + }, + "disabled": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "endpointOverride": { + "$dynamic": true, + "type": "string", + "title": "The endpoint with which the SDK should communicate.", + "markdownDescription": "This property allows you to use a different S3 compatible storage backend." + }, + "grantFullControl": { + "$dynamic": true, + "type": "string", + "markdownDescription": "Allows grantee the read, write, read ACP, and write ACP permissions on the bucket." + }, + "grantRead": { + "$dynamic": true, + "type": "string", + "title": "Allows grantee to list the objects in the bucket." + }, + "grantReadACP": { + "$dynamic": true, + "type": "string", + "title": "Allows grantee to list the ACL for the applicable bucket." + }, + "grantWrite": { + "$dynamic": true, + "type": "string", + "title": "Allows grantee to create, overwrite, and delete any object in the bucket." + }, + "grantWriteACP": { + "$dynamic": true, + "type": "string", + "title": "Allows grantee to write the ACL for the applicable bucket." + }, + "id": { + "type": "string", + "minLength": 1, + "pattern": "^[a-zA-Z0-9][a-zA-Z0-9_-]*" + }, + "logLevel": { + "type": "string", + "enum": ["ERROR", "WARN", "INFO", "DEBUG", "TRACE"] + }, + "objectLockEnabledForBucket": { + "$dynamic": false, + "type": "boolean", + "title": "Specifies whether you want S3 Object Lock to be enabled for the new bucket." + }, + "region": { + "$dynamic": true, + "type": "string", + "title": "AWS region with which the SDK should communicate." + }, + "retry": { + "oneOf": [ + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Constant-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Exponential-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Random-2" + } + ] + }, + "secretKeyId": { + "$dynamic": true, + "type": "string", + "title": "Secret Key Id in order to connect to AWS.", + "markdownDescription": "If no credentials are defined, we will use the [default credentials provider chain](https://docs.aws.amazon.com/sdk-for-java/latest/developer-guide/credentials-chain.html) to fetch credentials." + }, + "sessionToken": { + "$dynamic": true, + "type": "string", + "title": "AWS session token, retrieved from an AWS token service, used for authenticating that this user has received temporary permissions to access a given resource.", + "markdownDescription": "If no credentials are defined, we will use the [default credentials provider chain](https://docs.aws.amazon.com/sdk-for-java/latest/developer-guide/credentials-chain.html) to fetch credentials." + }, + "stsEndpointOverride": { + "$dynamic": true, + "type": "string", + "title": "The AWS STS endpoint with which the SDKClient should communicate." + }, + "stsRoleArn": { + "$dynamic": true, + "type": "string", + "title": "AWS STS Role.", + "markdownDescription": "The Amazon Resource Name (ARN) of the role to assume. If set the task will use the `StsAssumeRoleCredentialsProvider`. If no credentials are defined, we will use the [default credentials provider chain](https://docs.aws.amazon.com/sdk-for-java/latest/developer-guide/credentials-chain.html) to fetch credentials." + }, + "stsRoleExternalId": { + "$dynamic": true, + "type": "string", + "title": "AWS STS External Id.", + "markdownDescription": " A unique identifier that might be required when you assume a role in another account. This property is only used when an `stsRoleArn` is defined." + }, + "stsRoleSessionDuration": { + "$dynamic": false, + "type": "string", + "format": "duration", + "title": "AWS STS Session duration.", + "default": 900, + "markdownDescription": "The duration of the role session (default: 15 minutes, i.e., PT15M). This property is only used when an `stsRoleArn` is defined.\n\nDefault value is : `900.000000000`" + }, + "stsRoleSessionName": { + "$dynamic": true, + "type": "string", + "title": "AWS STS Session name.", + "markdownDescription": "This property is only used when an `stsRoleArn` is defined." + }, + "timeout": { + "type": "string", + "format": "duration" + }, + "type": { + "const": "io.kestra.plugin.aws.s3.CreateBucket" + }, + "workerGroup": { + "$ref": "#/definitions/io.kestra.core.models.tasks.WorkerGroup" + } + }, + "required": ["id", "type"], + "title": "Create a bucket", + "markdownDescription": "##### Examples\n\u003E Create a new bucket with some options\n```yaml\naccessKeyId: \"\u003Caccess-key\u003E\"\nsecretKeyId: \"\u003Csecret-key\u003E\"\nregion: \"eu-central-1\"\nbucket: \"my-bucket\"\n```" + }, + "io.kestra.plugin.aws.s3.Delete": { + "type": "object", + "properties": { + "accessKeyId": { + "$dynamic": true, + "type": "string", + "title": "Access Key Id in order to connect to AWS.", + "markdownDescription": "If no credentials are defined, we will use the [default credentials provider chain](https://docs.aws.amazon.com/sdk-for-java/latest/developer-guide/credentials-chain.html) to fetch credentials." + }, + "allowFailure": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "bucket": { + "$dynamic": true, + "type": "string", + "title": "The S3 bucket name." + }, + "bypassGovernanceRetention": { + "$dynamic": false, + "type": "boolean", + "title": "Indicates whether S3 Object Lock should bypass Governance-mode restrictions to process this operation." + }, + "compatibilityMode": { + "$dynamic": true, + "type": "boolean" + }, + "description": { + "type": "string" + }, + "disabled": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "endpointOverride": { + "$dynamic": true, + "type": "string", + "title": "The endpoint with which the SDK should communicate.", + "markdownDescription": "This property allows you to use a different S3 compatible storage backend." + }, + "id": { + "type": "string", + "minLength": 1, + "pattern": "^[a-zA-Z0-9][a-zA-Z0-9_-]*" + }, + "key": { + "$dynamic": true, + "type": "string", + "title": "The key to delete." + }, + "logLevel": { + "type": "string", + "enum": ["ERROR", "WARN", "INFO", "DEBUG", "TRACE"] + }, + "mfa": { + "$dynamic": true, + "type": "string", + "title": "The concatenation of the authentication device's serial number, a space, and the value that is displayed on your authentication device.", + "markdownDescription": "Required to permanently delete a versioned object if versioning is configured with MFA delete enabled." + }, + "region": { + "$dynamic": true, + "type": "string", + "title": "AWS region with which the SDK should communicate." + }, + "requestPayer": { + "$dynamic": true, + "type": "string", + "markdownDescription": "Sets the value of the RequestPayer property for this object." + }, + "retry": { + "oneOf": [ + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Constant-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Exponential-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Random-2" + } + ] + }, + "secretKeyId": { + "$dynamic": true, + "type": "string", + "title": "Secret Key Id in order to connect to AWS.", + "markdownDescription": "If no credentials are defined, we will use the [default credentials provider chain](https://docs.aws.amazon.com/sdk-for-java/latest/developer-guide/credentials-chain.html) to fetch credentials." + }, + "sessionToken": { + "$dynamic": true, + "type": "string", + "title": "AWS session token, retrieved from an AWS token service, used for authenticating that this user has received temporary permissions to access a given resource.", + "markdownDescription": "If no credentials are defined, we will use the [default credentials provider chain](https://docs.aws.amazon.com/sdk-for-java/latest/developer-guide/credentials-chain.html) to fetch credentials." + }, + "stsEndpointOverride": { + "$dynamic": true, + "type": "string", + "title": "The AWS STS endpoint with which the SDKClient should communicate." + }, + "stsRoleArn": { + "$dynamic": true, + "type": "string", + "title": "AWS STS Role.", + "markdownDescription": "The Amazon Resource Name (ARN) of the role to assume. If set the task will use the `StsAssumeRoleCredentialsProvider`. If no credentials are defined, we will use the [default credentials provider chain](https://docs.aws.amazon.com/sdk-for-java/latest/developer-guide/credentials-chain.html) to fetch credentials." + }, + "stsRoleExternalId": { + "$dynamic": true, + "type": "string", + "title": "AWS STS External Id.", + "markdownDescription": " A unique identifier that might be required when you assume a role in another account. This property is only used when an `stsRoleArn` is defined." + }, + "stsRoleSessionDuration": { + "$dynamic": false, + "type": "string", + "format": "duration", + "title": "AWS STS Session duration.", + "default": 900, + "markdownDescription": "The duration of the role session (default: 15 minutes, i.e., PT15M). This property is only used when an `stsRoleArn` is defined.\n\nDefault value is : `900.000000000`" + }, + "stsRoleSessionName": { + "$dynamic": true, + "type": "string", + "title": "AWS STS Session name.", + "markdownDescription": "This property is only used when an `stsRoleArn` is defined." + }, + "timeout": { + "type": "string", + "format": "duration" + }, + "type": { + "const": "io.kestra.plugin.aws.s3.Delete" + }, + "workerGroup": { + "$ref": "#/definitions/io.kestra.core.models.tasks.WorkerGroup" + } + }, + "required": ["id", "type"], + "title": "Delete a file in a S3 bucket.", + "markdownDescription": "##### Examples\n\u003E \n```yaml\naccessKeyId: \"\u003Caccess-key\u003E\"\nsecretKeyId: \"\u003Csecret-key\u003E\"\nregion: \"eu-central-1\"\nbucket: \"my-bucket\"\nkey: \"path/to/file\"\n```" + }, + "io.kestra.plugin.aws.s3.DeleteList": { + "type": "object", + "properties": { + "accessKeyId": { + "$dynamic": true, + "type": "string", + "title": "Access Key Id in order to connect to AWS.", + "markdownDescription": "If no credentials are defined, we will use the [default credentials provider chain](https://docs.aws.amazon.com/sdk-for-java/latest/developer-guide/credentials-chain.html) to fetch credentials." + }, + "allowFailure": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "bucket": { + "$dynamic": true, + "type": "string", + "title": "The S3 bucket where to download the file." + }, + "compatibilityMode": { + "$dynamic": true, + "type": "boolean" + }, + "concurrent": { + "$dynamic": false, + "type": "integer", + "title": "Number of concurrent parallels deletion", + "minimum": 2 + }, + "delimiter": { + "$dynamic": true, + "type": "string", + "title": "A delimiter is a character you use to group keys." + }, + "description": { + "type": "string" + }, + "disabled": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "encodingType": { + "$dynamic": true, + "type": "string", + "title": "The EncodingType property for this object." + }, + "endpointOverride": { + "$dynamic": true, + "type": "string", + "title": "The endpoint with which the SDK should communicate.", + "markdownDescription": "This property allows you to use a different S3 compatible storage backend." + }, + "errorOnEmpty": { + "$dynamic": true, + "type": "boolean", + "title": "raise an error if the file is not found", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "expectedBucketOwner": { + "$dynamic": true, + "type": "string", + "title": "The account ID of the expected bucket owner.", + "markdownDescription": "If the bucket is owned by a different account, the request fails with the HTTP status code 403 Forbidden (access denied)." + }, + "filter": { + "$dynamic": false, + "type": "string", + "enum": ["FILES", "DIRECTORY", "BOTH"], + "title": "The type of objects to filter: files, directory, or both.", + "default": "BOTH", + "markdownDescription": "Default value is : `BOTH`" + }, + "id": { + "type": "string", + "minLength": 1, + "pattern": "^[a-zA-Z0-9][a-zA-Z0-9_-]*" + }, + "logLevel": { + "type": "string", + "enum": ["ERROR", "WARN", "INFO", "DEBUG", "TRACE"] + }, + "marker": { + "$dynamic": true, + "type": "string", + "title": "Marker is where you want Amazon S3 to start listing from.", + "markdownDescription": "Amazon S3 starts listing after this specified key. Marker can be any key in the bucket." + }, + "maxKeys": { + "$dynamic": true, + "type": "integer", + "title": "Sets the maximum number of keys returned in the response.", + "default": 1000, + "markdownDescription": "By default, the action returns up to 1,000 key names. The response might contain fewer keys but will never contain more.\n\nDefault value is : `1000`" + }, + "prefix": { + "$dynamic": true, + "type": "string", + "title": "Limits the response to keys that begin with the specified prefix." + }, + "regexp": { + "$dynamic": true, + "type": "string", + "title": "A regexp to filter on full key.", + "markdownDescription": "ex:\n`regExp: .*` to match all files\n`regExp: .*2020-01-0.\\\\.csv` to match files between 01 and 09 of january ending with `.csv`" + }, + "region": { + "$dynamic": true, + "type": "string", + "title": "AWS region with which the SDK should communicate." + }, + "requestPayer": { + "$dynamic": true, + "type": "string", + "title": "Sets the value of the RequestPayer property for this object." + }, + "retry": { + "oneOf": [ + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Constant-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Exponential-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Random-2" + } + ] + }, + "secretKeyId": { + "$dynamic": true, + "type": "string", + "title": "Secret Key Id in order to connect to AWS.", + "markdownDescription": "If no credentials are defined, we will use the [default credentials provider chain](https://docs.aws.amazon.com/sdk-for-java/latest/developer-guide/credentials-chain.html) to fetch credentials." + }, + "sessionToken": { + "$dynamic": true, + "type": "string", + "title": "AWS session token, retrieved from an AWS token service, used for authenticating that this user has received temporary permissions to access a given resource.", + "markdownDescription": "If no credentials are defined, we will use the [default credentials provider chain](https://docs.aws.amazon.com/sdk-for-java/latest/developer-guide/credentials-chain.html) to fetch credentials." + }, + "stsEndpointOverride": { + "$dynamic": true, + "type": "string", + "title": "The AWS STS endpoint with which the SDKClient should communicate." + }, + "stsRoleArn": { + "$dynamic": true, + "type": "string", + "title": "AWS STS Role.", + "markdownDescription": "The Amazon Resource Name (ARN) of the role to assume. If set the task will use the `StsAssumeRoleCredentialsProvider`. If no credentials are defined, we will use the [default credentials provider chain](https://docs.aws.amazon.com/sdk-for-java/latest/developer-guide/credentials-chain.html) to fetch credentials." + }, + "stsRoleExternalId": { + "$dynamic": true, + "type": "string", + "title": "AWS STS External Id.", + "markdownDescription": " A unique identifier that might be required when you assume a role in another account. This property is only used when an `stsRoleArn` is defined." + }, + "stsRoleSessionDuration": { + "$dynamic": false, + "type": "string", + "format": "duration", + "title": "AWS STS Session duration.", + "default": 900, + "markdownDescription": "The duration of the role session (default: 15 minutes, i.e., PT15M). This property is only used when an `stsRoleArn` is defined.\n\nDefault value is : `900.000000000`" + }, + "stsRoleSessionName": { + "$dynamic": true, + "type": "string", + "title": "AWS STS Session name.", + "markdownDescription": "This property is only used when an `stsRoleArn` is defined." + }, + "timeout": { + "type": "string", + "format": "duration" + }, + "type": { + "const": "io.kestra.plugin.aws.s3.DeleteList" + }, + "workerGroup": { + "$ref": "#/definitions/io.kestra.core.models.tasks.WorkerGroup" + } + }, + "required": ["bucket", "id", "type"], + "title": "Delete a list of keys on a S3 bucket.", + "markdownDescription": "##### Examples\n\u003E \n```yaml\naccessKeyId: \"\u003Caccess-key\u003E\"\nsecretKeyId: \"\u003Csecret-key\u003E\"\nregion: \"eu-central-1\"\nbucket: \"my-bucket\"\nprefix: \"sub-dir\"\n```" + }, + "io.kestra.plugin.aws.s3.Download": { + "type": "object", + "properties": { + "accessKeyId": { + "$dynamic": true, + "type": "string", + "title": "Access Key Id in order to connect to AWS.", + "markdownDescription": "If no credentials are defined, we will use the [default credentials provider chain](https://docs.aws.amazon.com/sdk-for-java/latest/developer-guide/credentials-chain.html) to fetch credentials." + }, + "allowFailure": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "bucket": { + "$dynamic": true, + "type": "string", + "title": "The S3 bucket name." + }, + "compatibilityMode": { + "$dynamic": false, + "type": "boolean", + "title": "If set to true, the task will use the AWS S3 DefaultAsyncClient instead of the S3CrtAsyncClient, which better integrates with S3-compatible services but restricts uploads and downloads to 2GB.", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "description": { + "type": "string" + }, + "disabled": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "endpointOverride": { + "$dynamic": true, + "type": "string", + "title": "The endpoint with which the SDK should communicate.", + "markdownDescription": "This property allows you to use a different S3 compatible storage backend." + }, + "id": { + "type": "string", + "minLength": 1, + "pattern": "^[a-zA-Z0-9][a-zA-Z0-9_-]*" + }, + "key": { + "$dynamic": true, + "type": "string", + "title": "The key of a file to download." + }, + "logLevel": { + "type": "string", + "enum": ["ERROR", "WARN", "INFO", "DEBUG", "TRACE"] + }, + "region": { + "$dynamic": true, + "type": "string", + "title": "AWS region with which the SDK should communicate." + }, + "requestPayer": { + "$dynamic": true, + "type": "string", + "title": "Sets the value of the RequestPayer property for this object." + }, + "retry": { + "oneOf": [ + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Constant-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Exponential-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Random-2" + } + ] + }, + "secretKeyId": { + "$dynamic": true, + "type": "string", + "title": "Secret Key Id in order to connect to AWS.", + "markdownDescription": "If no credentials are defined, we will use the [default credentials provider chain](https://docs.aws.amazon.com/sdk-for-java/latest/developer-guide/credentials-chain.html) to fetch credentials." + }, + "sessionToken": { + "$dynamic": true, + "type": "string", + "title": "AWS session token, retrieved from an AWS token service, used for authenticating that this user has received temporary permissions to access a given resource.", + "markdownDescription": "If no credentials are defined, we will use the [default credentials provider chain](https://docs.aws.amazon.com/sdk-for-java/latest/developer-guide/credentials-chain.html) to fetch credentials." + }, + "stsEndpointOverride": { + "$dynamic": true, + "type": "string", + "title": "The AWS STS endpoint with which the SDKClient should communicate." + }, + "stsRoleArn": { + "$dynamic": true, + "type": "string", + "title": "AWS STS Role.", + "markdownDescription": "The Amazon Resource Name (ARN) of the role to assume. If set the task will use the `StsAssumeRoleCredentialsProvider`. If no credentials are defined, we will use the [default credentials provider chain](https://docs.aws.amazon.com/sdk-for-java/latest/developer-guide/credentials-chain.html) to fetch credentials." + }, + "stsRoleExternalId": { + "$dynamic": true, + "type": "string", + "title": "AWS STS External Id.", + "markdownDescription": " A unique identifier that might be required when you assume a role in another account. This property is only used when an `stsRoleArn` is defined." + }, + "stsRoleSessionDuration": { + "$dynamic": false, + "type": "string", + "format": "duration", + "title": "AWS STS Session duration.", + "default": 900, + "markdownDescription": "The duration of the role session (default: 15 minutes, i.e., PT15M). This property is only used when an `stsRoleArn` is defined.\n\nDefault value is : `900.000000000`" + }, + "stsRoleSessionName": { + "$dynamic": true, + "type": "string", + "title": "AWS STS Session name.", + "markdownDescription": "This property is only used when an `stsRoleArn` is defined." + }, + "timeout": { + "type": "string", + "format": "duration" + }, + "type": { + "const": "io.kestra.plugin.aws.s3.Download" + }, + "versionId": { + "$dynamic": true, + "type": "string", + "title": "The specific version of the object." + }, + "workerGroup": { + "$ref": "#/definitions/io.kestra.core.models.tasks.WorkerGroup" + } + }, + "required": ["id", "type"], + "title": "Download a file from an S3 bucket.", + "markdownDescription": "##### Examples\n\u003E \n```yaml\naccessKeyId: \"\u003Caccess-key\u003E\"\nsecretKeyId: \"\u003Csecret-key\u003E\"\nregion: \"eu-central-1\"\nbucket: \"my-bucket\"\nkey: \"path/to/file\"\n```" + }, + "io.kestra.plugin.aws.s3.Downloads": { + "type": "object", + "properties": { + "accessKeyId": { + "$dynamic": true, + "type": "string", + "title": "Access Key Id in order to connect to AWS.", + "markdownDescription": "If no credentials are defined, we will use the [default credentials provider chain](https://docs.aws.amazon.com/sdk-for-java/latest/developer-guide/credentials-chain.html) to fetch credentials." + }, + "action": { + "$dynamic": true, + "type": "string", + "enum": ["MOVE", "DELETE", "NONE"], + "title": "The action to perform on the retrieved files. If using 'NONE' make sure to handle the files inside your flow to avoid infinite triggering." + }, + "allowFailure": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "bucket": { + "$dynamic": true, + "type": "string", + "title": "The S3 bucket where to download the file." + }, + "compatibilityMode": { + "$dynamic": false, + "type": "boolean", + "title": "This property will use the AWS S3 DefaultAsyncClient instead of the S3CrtAsyncClient, which maximizes compatibility with S3-compatible services but restricts uploads and downloads to 2GB.", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "delimiter": { + "$dynamic": true, + "type": "string", + "title": "A delimiter is a character you use to group keys." + }, + "description": { + "type": "string" + }, + "disabled": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "encodingType": { + "$dynamic": true, + "type": "string", + "title": "The EncodingType property for this object." + }, + "endpointOverride": { + "$dynamic": true, + "type": "string", + "title": "The endpoint with which the SDK should communicate.", + "markdownDescription": "This property allows you to use a different S3 compatible storage backend." + }, + "expectedBucketOwner": { + "$dynamic": true, + "type": "string", + "title": "The account ID of the expected bucket owner.", + "markdownDescription": "If the bucket is owned by a different account, the request fails with the HTTP status code 403 Forbidden (access denied)." + }, + "filter": { + "$dynamic": false, + "type": "string", + "enum": ["FILES", "DIRECTORY", "BOTH"], + "title": "The type of objects to filter: files, directory, or both.", + "default": "BOTH", + "markdownDescription": "Default value is : `BOTH`" + }, + "id": { + "type": "string", + "minLength": 1, + "pattern": "^[a-zA-Z0-9][a-zA-Z0-9_-]*" + }, + "logLevel": { + "type": "string", + "enum": ["ERROR", "WARN", "INFO", "DEBUG", "TRACE"] + }, + "marker": { + "$dynamic": true, + "type": "string", + "title": "Marker is where you want Amazon S3 to start listing from.", + "markdownDescription": "Amazon S3 starts listing after this specified key. Marker can be any key in the bucket." + }, + "maxKeys": { + "$dynamic": true, + "type": "integer", + "title": "Sets the maximum number of keys returned in the response.", + "default": 1000, + "markdownDescription": "By default, the action returns up to 1,000 key names. The response might contain fewer keys but will never contain more.\n\nDefault value is : `1000`" + }, + "moveTo": { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.aws.s3.Copy-CopyObject" + }, + { + "$dynamic": true, + "title": "The destination bucket and key for `MOVE` action." + } + ] + }, + "prefix": { + "$dynamic": true, + "type": "string", + "title": "Limits the response to keys that begin with the specified prefix." + }, + "regexp": { + "$dynamic": true, + "type": "string", + "title": "A regexp to filter on full key.", + "markdownDescription": "ex:\n`regExp: .*` to match all files\n`regExp: .*2020-01-0.\\\\.csv` to match files between 01 and 09 of january ending with `.csv`" + }, + "region": { + "$dynamic": true, + "type": "string", + "title": "AWS region with which the SDK should communicate." + }, + "requestPayer": { + "$dynamic": true, + "type": "string", + "title": "Sets the value of the RequestPayer property for this object." + }, + "retry": { + "oneOf": [ + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Constant-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Exponential-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Random-2" + } + ] + }, + "secretKeyId": { + "$dynamic": true, + "type": "string", + "title": "Secret Key Id in order to connect to AWS.", + "markdownDescription": "If no credentials are defined, we will use the [default credentials provider chain](https://docs.aws.amazon.com/sdk-for-java/latest/developer-guide/credentials-chain.html) to fetch credentials." + }, + "sessionToken": { + "$dynamic": true, + "type": "string", + "title": "AWS session token, retrieved from an AWS token service, used for authenticating that this user has received temporary permissions to access a given resource.", + "markdownDescription": "If no credentials are defined, we will use the [default credentials provider chain](https://docs.aws.amazon.com/sdk-for-java/latest/developer-guide/credentials-chain.html) to fetch credentials." + }, + "stsEndpointOverride": { + "$dynamic": true, + "type": "string", + "title": "The AWS STS endpoint with which the SDKClient should communicate." + }, + "stsRoleArn": { + "$dynamic": true, + "type": "string", + "title": "AWS STS Role.", + "markdownDescription": "The Amazon Resource Name (ARN) of the role to assume. If set the task will use the `StsAssumeRoleCredentialsProvider`. If no credentials are defined, we will use the [default credentials provider chain](https://docs.aws.amazon.com/sdk-for-java/latest/developer-guide/credentials-chain.html) to fetch credentials." + }, + "stsRoleExternalId": { + "$dynamic": true, + "type": "string", + "title": "AWS STS External Id.", + "markdownDescription": " A unique identifier that might be required when you assume a role in another account. This property is only used when an `stsRoleArn` is defined." + }, + "stsRoleSessionDuration": { + "$dynamic": false, + "type": "string", + "format": "duration", + "title": "AWS STS Session duration.", + "default": 900, + "markdownDescription": "The duration of the role session (default: 15 minutes, i.e., PT15M). This property is only used when an `stsRoleArn` is defined.\n\nDefault value is : `900.000000000`" + }, + "stsRoleSessionName": { + "$dynamic": true, + "type": "string", + "title": "AWS STS Session name.", + "markdownDescription": "This property is only used when an `stsRoleArn` is defined." + }, + "timeout": { + "type": "string", + "format": "duration" + }, + "type": { + "const": "io.kestra.plugin.aws.s3.Downloads" + }, + "workerGroup": { + "$ref": "#/definitions/io.kestra.core.models.tasks.WorkerGroup" + } + }, + "required": ["action", "bucket", "id", "type"], + "title": "Downloads multiple files from a S3 bucket.", + "markdownDescription": "##### Examples\n\u003E \n```yaml\naccessKeyId: \"\u003Caccess-key\u003E\"\nsecretKeyId: \"\u003Csecret-key\u003E\"\nregion: \"eu-central-1\"\nbucket: \"my-bucket\"\nprefix: \"sub-dir\"\n```" + }, + "io.kestra.plugin.aws.s3.List": { + "type": "object", + "properties": { + "accessKeyId": { + "$dynamic": true, + "type": "string", + "title": "Access Key Id in order to connect to AWS.", + "markdownDescription": "If no credentials are defined, we will use the [default credentials provider chain](https://docs.aws.amazon.com/sdk-for-java/latest/developer-guide/credentials-chain.html) to fetch credentials." + }, + "allowFailure": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "bucket": { + "$dynamic": true, + "type": "string", + "title": "The S3 bucket where to download the file." + }, + "compatibilityMode": { + "$dynamic": true, + "type": "boolean" + }, + "delimiter": { + "$dynamic": true, + "type": "string", + "title": "A delimiter is a character you use to group keys." + }, + "description": { + "type": "string" + }, + "disabled": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "encodingType": { + "$dynamic": true, + "type": "string", + "title": "The EncodingType property for this object." + }, + "endpointOverride": { + "$dynamic": true, + "type": "string", + "title": "The endpoint with which the SDK should communicate.", + "markdownDescription": "This property allows you to use a different S3 compatible storage backend." + }, + "expectedBucketOwner": { + "$dynamic": true, + "type": "string", + "title": "The account ID of the expected bucket owner.", + "markdownDescription": "If the bucket is owned by a different account, the request fails with the HTTP status code 403 Forbidden (access denied)." + }, + "filter": { + "$dynamic": false, + "type": "string", + "enum": ["FILES", "DIRECTORY", "BOTH"], + "title": "The type of objects to filter: files, directory, or both.", + "default": "BOTH", + "markdownDescription": "Default value is : `BOTH`" + }, + "id": { + "type": "string", + "minLength": 1, + "pattern": "^[a-zA-Z0-9][a-zA-Z0-9_-]*" + }, + "logLevel": { + "type": "string", + "enum": ["ERROR", "WARN", "INFO", "DEBUG", "TRACE"] + }, + "marker": { + "$dynamic": true, + "type": "string", + "title": "Marker is where you want Amazon S3 to start listing from.", + "markdownDescription": "Amazon S3 starts listing after this specified key. Marker can be any key in the bucket." + }, + "maxKeys": { + "$dynamic": true, + "type": "integer", + "title": "Sets the maximum number of keys returned in the response.", + "default": 1000, + "markdownDescription": "By default, the action returns up to 1,000 key names. The response might contain fewer keys but will never contain more.\n\nDefault value is : `1000`" + }, + "prefix": { + "$dynamic": true, + "type": "string", + "title": "Limits the response to keys that begin with the specified prefix." + }, + "regexp": { + "$dynamic": true, + "type": "string", + "title": "A regexp to filter on full key.", + "markdownDescription": "ex:\n`regExp: .*` to match all files\n`regExp: .*2020-01-0.\\\\.csv` to match files between 01 and 09 of january ending with `.csv`" + }, + "region": { + "$dynamic": true, + "type": "string", + "title": "AWS region with which the SDK should communicate." + }, + "requestPayer": { + "$dynamic": true, + "type": "string", + "title": "Sets the value of the RequestPayer property for this object." + }, + "retry": { + "oneOf": [ + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Constant-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Exponential-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Random-2" + } + ] + }, + "secretKeyId": { + "$dynamic": true, + "type": "string", + "title": "Secret Key Id in order to connect to AWS.", + "markdownDescription": "If no credentials are defined, we will use the [default credentials provider chain](https://docs.aws.amazon.com/sdk-for-java/latest/developer-guide/credentials-chain.html) to fetch credentials." + }, + "sessionToken": { + "$dynamic": true, + "type": "string", + "title": "AWS session token, retrieved from an AWS token service, used for authenticating that this user has received temporary permissions to access a given resource.", + "markdownDescription": "If no credentials are defined, we will use the [default credentials provider chain](https://docs.aws.amazon.com/sdk-for-java/latest/developer-guide/credentials-chain.html) to fetch credentials." + }, + "stsEndpointOverride": { + "$dynamic": true, + "type": "string", + "title": "The AWS STS endpoint with which the SDKClient should communicate." + }, + "stsRoleArn": { + "$dynamic": true, + "type": "string", + "title": "AWS STS Role.", + "markdownDescription": "The Amazon Resource Name (ARN) of the role to assume. If set the task will use the `StsAssumeRoleCredentialsProvider`. If no credentials are defined, we will use the [default credentials provider chain](https://docs.aws.amazon.com/sdk-for-java/latest/developer-guide/credentials-chain.html) to fetch credentials." + }, + "stsRoleExternalId": { + "$dynamic": true, + "type": "string", + "title": "AWS STS External Id.", + "markdownDescription": " A unique identifier that might be required when you assume a role in another account. This property is only used when an `stsRoleArn` is defined." + }, + "stsRoleSessionDuration": { + "$dynamic": false, + "type": "string", + "format": "duration", + "title": "AWS STS Session duration.", + "default": 900, + "markdownDescription": "The duration of the role session (default: 15 minutes, i.e., PT15M). This property is only used when an `stsRoleArn` is defined.\n\nDefault value is : `900.000000000`" + }, + "stsRoleSessionName": { + "$dynamic": true, + "type": "string", + "title": "AWS STS Session name.", + "markdownDescription": "This property is only used when an `stsRoleArn` is defined." + }, + "timeout": { + "type": "string", + "format": "duration" + }, + "type": { + "const": "io.kestra.plugin.aws.s3.List" + }, + "workerGroup": { + "$ref": "#/definitions/io.kestra.core.models.tasks.WorkerGroup" + } + }, + "required": ["bucket", "id", "type"], + "title": "List keys on a S3 bucket.", + "markdownDescription": "##### Examples\n\u003E \n```yaml\naccessKeyId: \"\u003Caccess-key\u003E\"\nsecretKeyId: \"\u003Csecret-key\u003E\"\nregion: \"eu-central-1\"\nbucket: \"my-bucket\"\nprefix: \"sub-dir\"\n```" + }, + "io.kestra.plugin.aws.s3.Trigger": { + "type": "object", + "properties": { + "accessKeyId": { + "$dynamic": true, + "type": "string", + "title": "Access Key Id in order to connect to AWS.", + "markdownDescription": "If no credentials are defined, we will use the [default credentials provider chain](https://docs.aws.amazon.com/sdk-for-java/latest/developer-guide/credentials-chain.html) to fetch credentials." + }, + "action": { + "$dynamic": true, + "type": "string", + "enum": ["MOVE", "DELETE", "NONE"], + "title": "The action to perform on the retrieved files. If using 'NONE' make sure to handle the files inside your flow to avoid infinite triggering." + }, + "bucket": { + "$dynamic": true, + "type": "string", + "title": "The S3 bucket where to download the file." + }, + "conditions": { + "$dynamic": false, + "title": "List of conditions in order to limit the flow trigger.", + "type": "array", + "items": { + "oneOf": [ + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.DateTimeBetweenCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.DayWeekCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.DayWeekInMonthCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.ExecutionFlowCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.ExecutionLabelsCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.ExecutionNamespaceCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.ExecutionOutputsCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.ExecutionStatusCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.ExpressionCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.FlowCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.FlowNamespaceCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.HasRetryAttemptCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.MultipleCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.NotCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.OrCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.PublicHolidayCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.TimeBetweenCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.WeekendCondition" + }, + { + "$dynamic": false + } + ] + } + ] + } + }, + "delimiter": { + "$dynamic": true, + "type": "string", + "title": "A delimiter is a character you use to group keys." + }, + "description": { + "type": "string" + }, + "disabled": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "encodingType": { + "$dynamic": true, + "type": "string", + "title": "The EncodingType property for this object." + }, + "endpointOverride": { + "$dynamic": true, + "type": "string", + "title": "The endpoint with which the SDK should communicate.", + "markdownDescription": "This property allows you to use a different S3 compatible storage backend." + }, + "expectedBucketOwner": { + "$dynamic": true, + "type": "string", + "title": "The account ID of the expected bucket owner.", + "markdownDescription": "If the bucket is owned by a different account, the request fails with the HTTP status code 403 Forbidden (access denied)." + }, + "filter": { + "$dynamic": false, + "type": "string", + "enum": ["FILES", "DIRECTORY", "BOTH"], + "title": "The type of objects to filter: files, directory, or both.", + "default": "BOTH", + "markdownDescription": "Default value is : `BOTH`" + }, + "id": { + "type": "string", + "title": "A unique ID for the whole flow.", + "minLength": 1, + "pattern": "^[a-zA-Z0-9][a-zA-Z0-9_-]*" + }, + "interval": { + "$dynamic": false, + "type": "string", + "format": "duration", + "title": "Interval between polling.", + "default": 60, + "markdownDescription": "The interval between 2 different polls of schedule, this can avoid to overload the remote system with too many calls. For most of the triggers that depend on external systems, a minimal interval must be at least PT30S.\nSee [ISO_8601 Durations](https://en.wikipedia.org/wiki/ISO_8601#Durations) for more information of available interval values.\n\nDefault value is : `60.000000000`" + }, + "labels": { + "title": "The labels to pass to the execution created.", + "type": "array", + "items": { + "$ref": "#/definitions/io.kestra.core.models.Label" + } + }, + "logLevel": { + "type": "string", + "enum": ["ERROR", "WARN", "INFO", "DEBUG", "TRACE"] + }, + "marker": { + "$dynamic": true, + "type": "string", + "title": "Marker is where you want Amazon S3 to start listing from.", + "markdownDescription": "Amazon S3 starts listing after this specified key. Marker can be any key in the bucket." + }, + "maxKeys": { + "$dynamic": true, + "type": "integer", + "title": "Sets the maximum number of keys returned in the response.", + "default": 1000, + "markdownDescription": "By default, the action returns up to 1,000 key names. The response might contain fewer keys but will never contain more.\n\nDefault value is : `1000`" + }, + "moveTo": { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.aws.s3.Copy-CopyObject" + }, + { + "$dynamic": true, + "title": "The destination bucket and key for `MOVE` action." + } + ] + }, + "prefix": { + "$dynamic": true, + "type": "string", + "title": "Limits the response to keys that begin with the specified prefix." + }, + "regexp": { + "$dynamic": true, + "type": "string", + "title": "A regexp to filter on full key.", + "markdownDescription": "ex:\n`regExp: .*` to match all files\n`regExp: .*2020-01-0.\\\\.csv` to match files between 01 and 09 of january ending with `.csv`" + }, + "region": { + "$dynamic": true, + "type": "string", + "title": "AWS region with which the SDK should communicate." + }, + "requestPayer": { + "$dynamic": true, + "type": "string", + "title": "Sets the value of the RequestPayer property for this object." + }, + "secretKeyId": { + "$dynamic": true, + "type": "string", + "title": "Secret Key Id in order to connect to AWS.", + "markdownDescription": "If no credentials are defined, we will use the [default credentials provider chain](https://docs.aws.amazon.com/sdk-for-java/latest/developer-guide/credentials-chain.html) to fetch credentials." + }, + "sessionToken": { + "$dynamic": true, + "type": "string", + "title": "AWS session token, retrieved from an AWS token service, used for authenticating that this user has received temporary permissions to access a given resource.", + "markdownDescription": "If no credentials are defined, we will use the [default credentials provider chain](https://docs.aws.amazon.com/sdk-for-java/latest/developer-guide/credentials-chain.html) to fetch credentials." + }, + "stopAfter": { + "$dynamic": false, + "title": "List of execution states after which a trigger should be stopped (a.k.a. disabled).", + "type": "array", + "items": { + "$dynamic": false, + "type": "string", + "enum": [ + "CREATED", + "RUNNING", + "PAUSED", + "RESTARTED", + "KILLING", + "SUCCESS", + "WARNING", + "FAILED", + "KILLED", + "CANCELLED", + "QUEUED", + "RETRYING", + "RETRIED" + ] + } + }, + "stsEndpointOverride": { + "$dynamic": true, + "type": "string", + "title": "The AWS STS endpoint with which the SDKClient should communicate." + }, + "stsRoleArn": { + "$dynamic": true, + "type": "string", + "title": "AWS STS Role.", + "markdownDescription": "The Amazon Resource Name (ARN) of the role to assume. If set the task will use the `StsAssumeRoleCredentialsProvider`. If no credentials are defined, we will use the [default credentials provider chain](https://docs.aws.amazon.com/sdk-for-java/latest/developer-guide/credentials-chain.html) to fetch credentials." + }, + "stsRoleExternalId": { + "$dynamic": true, + "type": "string", + "title": "AWS STS External Id.", + "markdownDescription": " A unique identifier that might be required when you assume a role in another account. This property is only used when an `stsRoleArn` is defined." + }, + "stsRoleSessionDuration": { + "$dynamic": false, + "type": "string", + "format": "duration", + "title": "AWS STS Session duration.", + "default": 900, + "markdownDescription": "The duration of the role session (default: 15 minutes, i.e., PT15M). This property is only used when an `stsRoleArn` is defined.\n\nDefault value is : `900.000000000`" + }, + "stsRoleSessionName": { + "$dynamic": true, + "type": "string", + "title": "AWS STS Session name.", + "markdownDescription": "This property is only used when an `stsRoleArn` is defined." + }, + "type": { + "const": "io.kestra.plugin.aws.s3.Trigger" + }, + "workerGroup": { + "$ref": "#/definitions/io.kestra.core.models.tasks.WorkerGroup" + } + }, + "required": ["action", "bucket", "id", "type"], + "title": "Wait for files on S3 bucket.", + "markdownDescription": "This trigger will poll every `interval` s3 bucket. You can search for all files in a bucket or directory in `from` or you can filter the files with a `regExp`. The detection is atomic, internally we do a list and interact only with files listed.\nOnce a file is detected, we download the file on internal storage and processed with declared `action` in order to move or delete the files from the bucket (to avoid double detection on new poll).##### Examples\n\u003E Wait for a list of files on a s3 bucket and iterate through the files.\n```yaml\nid: s3-listen\nnamespace: company.team\n\ntasks:\n - id: each\n type: io.kestra.plugin.core.flow.EachSequential\n tasks:\n - id: return\n type: io.kestra.plugin.core.debug.Return\n format: \"{{ taskrun.value }}\"\n value: \"{{ trigger.objects | jq('.[].uri') }}\"\n\ntriggers:\n - id: watch\n type: io.kestra.plugin.aws.s3.Trigger\n interval: \"PT5M\"\n accessKeyId: \"\u003Caccess-key\u003E\"\n secretKeyId: \"\u003Csecret-key\u003E\"\n region: \"eu-central-1\"\n bucket: \"my-bucket\"\n prefix: \"sub-dir\"\n action: MOVE\n moveTo: \n key: archive\n```\n\n\u003E Wait for a list of files on a s3 bucket and iterate through the files. Delete files manually after processing to prevent infinite triggering.\n```yaml\nid: s3-listen\nnamespace: company.team\n\ntasks:\n - id: each\n type: io.kestra.plugin.core.flow.EachSequential\n tasks:\n - id: return\n type: io.kestra.plugin.core.debug.Return\n format: \"{{ taskrun.value }}\"\n - id: delete\n type: io.kestra.plugin.aws.s3.Delete\n accessKeyId: \"\u003Caccess-key\u003E\"\n secretKeyId: \"\u003Csecret-key\u003E\"\n region: \"eu-central-1\"\n bucket: \"my-bucket\"\n key: \"{{ taskrun.value }}\"\n value: \"{{ trigger.objects | jq('.[].key') }}\"\n\ntriggers:\n - id: watch\n type: io.kestra.plugin.aws.s3.Trigger\n interval: \"PT5M\"\n accessKeyId: \"\u003Caccess-key\u003E\"\n secretKeyId: \"\u003Csecret-key\u003E\"\n region: \"eu-central-1\"\n bucket: \"my-bucket\"\n prefix: \"sub-dir\"\n action: NONE\n```" + }, + "io.kestra.plugin.aws.s3.Upload": { + "type": "object", + "properties": { + "accessKeyId": { + "$dynamic": true, + "type": "string", + "title": "Access Key Id in order to connect to AWS.", + "markdownDescription": "If no credentials are defined, we will use the [default credentials provider chain](https://docs.aws.amazon.com/sdk-for-java/latest/developer-guide/credentials-chain.html) to fetch credentials." + }, + "acl": { + "$dynamic": true, + "type": "string", + "title": "The canned ACL to apply to the object." + }, + "allowFailure": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "bucket": { + "$dynamic": true, + "type": "string", + "title": "The S3 bucket name." + }, + "bucketKeyEnabled": { + "$dynamic": false, + "type": "boolean", + "title": "Specifies whether Amazon S3 should use an S3 Bucket Key for object encryption with server-side encryption using Key Management Service (KMS) keys (SSE-KMS).", + "markdownDescription": "Setting this header to true causes Amazon S3 to use an S3 Bucket Key for object encryption with SSE-KMS." + }, + "cacheControl": { + "$dynamic": true, + "type": "string", + "title": "Can be used to specify caching behavior along the request/response chain." + }, + "checksum": { + "$dynamic": true, + "type": "string", + "title": "The checksum data integrity check to verify that the data received is the same data that was originally sent.", + "markdownDescription": "Must be used in pair with `checksumAlgorithm` to defined the expect algorithm of these values" + }, + "checksumAlgorithm": { + "$dynamic": false, + "type": "string", + "enum": [ + "CRC32", + "CRC32_C", + "SHA1", + "SHA256", + "UNKNOWN_TO_SDK_VERSION" + ], + "title": "Indicates the algorithm used to create the checksum for the object when using the SDK." + }, + "compatibilityMode": { + "$dynamic": false, + "type": "boolean", + "title": "This property will use the AWS S3 DefaultAsyncClient instead of the S3CrtAsyncClient, which maximizes compatibility with S3-compatible services but restricts uploads and downloads to 2GB.", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "contentDisposition": { + "$dynamic": true, + "type": "string", + "title": "Specifies presentational information for the object." + }, + "contentEncoding": { + "$dynamic": true, + "type": "string", + "title": "Specifies what content encodings have been applied to the object.", + "markdownDescription": "And thus, what decoding mechanisms must be applied to obtain the media-type referenced by the Content-Type header field." + }, + "contentLanguage": { + "$dynamic": true, + "type": "string", + "title": "The language the content is in." + }, + "contentLength": { + "$dynamic": false, + "type": "integer", + "title": "The size of the body in bytes.", + "markdownDescription": "This parameter is useful when the size of the body cannot be determined automatically." + }, + "contentType": { + "$dynamic": true, + "type": "string", + "title": "A standard MIME type describing the format of the contents." + }, + "description": { + "type": "string" + }, + "disabled": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "endpointOverride": { + "$dynamic": true, + "type": "string", + "title": "The endpoint with which the SDK should communicate.", + "markdownDescription": "This property allows you to use a different S3 compatible storage backend." + }, + "expectedBucketOwner": { + "$dynamic": true, + "type": "string", + "title": "The account ID of the expected bucket owner.", + "markdownDescription": "If the bucket is owned by a different account, the request fails with the HTTP status code `403 Forbidden` (access denied)." + }, + "expires": { + "$dynamic": true, + "type": "string", + "title": "The date and time after which the object is no longer cacheable." + }, + "from": { + "$dynamic": true, + "title": "The file(s) to upload.", + "markdownDescription": "Can be a single file, a list of files or json array.", + "oneOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.aws.s3.List" + }, + { + "type": "string" + } + ] + }, + "id": { + "type": "string", + "minLength": 1, + "pattern": "^[a-zA-Z0-9][a-zA-Z0-9_-]*" + }, + "key": { + "$dynamic": true, + "type": "string", + "title": "The key where to upload the file.", + "markdownDescription": "a full key (with filename) or the directory path if from is multiple files." + }, + "logLevel": { + "type": "string", + "enum": ["ERROR", "WARN", "INFO", "DEBUG", "TRACE"] + }, + "metadata": { + "$dynamic": true, + "type": "object", + "title": "A map of metadata to store with the object in S3." + }, + "objectLockLegalHoldStatus": { + "$dynamic": false, + "type": "string", + "enum": ["ON", "OFF", "UNKNOWN_TO_SDK_VERSION"], + "title": "Specifies whether a legal hold will be applied to this object." + }, + "objectLockMode": { + "$dynamic": false, + "type": "string", + "enum": ["GOVERNANCE", "COMPLIANCE", "UNKNOWN_TO_SDK_VERSION"], + "title": "The Object Lock mode that you want to apply to this object." + }, + "objectLockRetainUntilDate": { + "$dynamic": true, + "type": "string", + "title": "The date and time when you want this object's Object Lock to expire. " + }, + "region": { + "$dynamic": true, + "type": "string", + "title": "AWS region with which the SDK should communicate." + }, + "requestPayer": { + "$dynamic": true, + "type": "string", + "title": "Sets the value of the RequestPayer property for this object." + }, + "retry": { + "oneOf": [ + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Constant-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Exponential-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Random-2" + } + ] + }, + "secretKeyId": { + "$dynamic": true, + "type": "string", + "title": "Secret Key Id in order to connect to AWS.", + "markdownDescription": "If no credentials are defined, we will use the [default credentials provider chain](https://docs.aws.amazon.com/sdk-for-java/latest/developer-guide/credentials-chain.html) to fetch credentials." + }, + "serverSideEncryption": { + "$dynamic": false, + "type": "string", + "enum": [ + "AES256", + "AWS_KMS", + "AWS_KMS_DSSE", + "UNKNOWN_TO_SDK_VERSION" + ], + "title": "The server-side encryption algorithm used when storing this object in Amazon S3.", + "markdownDescription": "For example, AES256, aws:kms, aws:kms:dsse" + }, + "sessionToken": { + "$dynamic": true, + "type": "string", + "title": "AWS session token, retrieved from an AWS token service, used for authenticating that this user has received temporary permissions to access a given resource.", + "markdownDescription": "If no credentials are defined, we will use the [default credentials provider chain](https://docs.aws.amazon.com/sdk-for-java/latest/developer-guide/credentials-chain.html) to fetch credentials." + }, + "storageClass": { + "$dynamic": false, + "type": "string", + "enum": [ + "STANDARD", + "REDUCED_REDUNDANCY", + "STANDARD_IA", + "ONEZONE_IA", + "INTELLIGENT_TIERING", + "GLACIER", + "DEEP_ARCHIVE", + "OUTPOSTS", + "GLACIER_IR", + "SNOW", + "EXPRESS_ONEZONE", + "UNKNOWN_TO_SDK_VERSION" + ], + "title": "If you don't specify, S3 Standard is the default storage class. Amazon S3 supports other storage classes." + }, + "stsEndpointOverride": { + "$dynamic": true, + "type": "string", + "title": "The AWS STS endpoint with which the SDKClient should communicate." + }, + "stsRoleArn": { + "$dynamic": true, + "type": "string", + "title": "AWS STS Role.", + "markdownDescription": "The Amazon Resource Name (ARN) of the role to assume. If set the task will use the `StsAssumeRoleCredentialsProvider`. If no credentials are defined, we will use the [default credentials provider chain](https://docs.aws.amazon.com/sdk-for-java/latest/developer-guide/credentials-chain.html) to fetch credentials." + }, + "stsRoleExternalId": { + "$dynamic": true, + "type": "string", + "title": "AWS STS External Id.", + "markdownDescription": " A unique identifier that might be required when you assume a role in another account. This property is only used when an `stsRoleArn` is defined." + }, + "stsRoleSessionDuration": { + "$dynamic": false, + "type": "string", + "format": "duration", + "title": "AWS STS Session duration.", + "default": 900, + "markdownDescription": "The duration of the role session (default: 15 minutes, i.e., PT15M). This property is only used when an `stsRoleArn` is defined.\n\nDefault value is : `900.000000000`" + }, + "stsRoleSessionName": { + "$dynamic": true, + "type": "string", + "title": "AWS STS Session name.", + "markdownDescription": "This property is only used when an `stsRoleArn` is defined." + }, + "tagging": { + "$dynamic": false, + "type": "object", + "title": "The tag-set for the object." + }, + "timeout": { + "type": "string", + "format": "duration" + }, + "type": { + "const": "io.kestra.plugin.aws.s3.Upload" + }, + "workerGroup": { + "$ref": "#/definitions/io.kestra.core.models.tasks.WorkerGroup" + } + }, + "required": ["id", "type"], + "title": "Upload a file to a S3 bucket.", + "markdownDescription": "##### Examples\n\u003E \n```yaml\naccessKeyId: \"\u003Caccess-key\u003E\"\nsecretKeyId: \"\u003Csecret-key\u003E\"\nregion: \"eu-central-1\"\nfrom: \"{{ inputs.file }}\"\nbucket: \"my-bucket\"\nkey: \"path/to/file\"\n```" + }, + "io.kestra.plugin.aws.sns.Publish": { + "type": "object", + "properties": { + "accessKeyId": { + "$dynamic": true, + "type": "string", + "title": "Access Key Id in order to connect to AWS.", + "markdownDescription": "If no credentials are defined, we will use the [default credentials provider chain](https://docs.aws.amazon.com/sdk-for-java/latest/developer-guide/credentials-chain.html) to fetch credentials." + }, + "allowFailure": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "compatibilityMode": { + "$dynamic": true, + "type": "boolean" + }, + "description": { + "type": "string" + }, + "disabled": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "endpointOverride": { + "$dynamic": true, + "type": "string", + "title": "The endpoint with which the SDK should communicate.", + "markdownDescription": "This property allows you to use a different S3 compatible storage backend." + }, + "from": { + "$dynamic": true, + "title": "The source of the published data.", + "markdownDescription": "Can be an internal storage URI, a list of SNS messages, or a single SNS message." + }, + "id": { + "type": "string", + "minLength": 1, + "pattern": "^[a-zA-Z0-9][a-zA-Z0-9_-]*" + }, + "logLevel": { + "type": "string", + "enum": ["ERROR", "WARN", "INFO", "DEBUG", "TRACE"] + }, + "region": { + "$dynamic": true, + "type": "string", + "title": "AWS region with which the SDK should communicate." + }, + "retry": { + "oneOf": [ + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Constant-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Exponential-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Random-2" + } + ] + }, + "secretKeyId": { + "$dynamic": true, + "type": "string", + "title": "Secret Key Id in order to connect to AWS.", + "markdownDescription": "If no credentials are defined, we will use the [default credentials provider chain](https://docs.aws.amazon.com/sdk-for-java/latest/developer-guide/credentials-chain.html) to fetch credentials." + }, + "sessionToken": { + "$dynamic": true, + "type": "string", + "title": "AWS session token, retrieved from an AWS token service, used for authenticating that this user has received temporary permissions to access a given resource.", + "markdownDescription": "If no credentials are defined, we will use the [default credentials provider chain](https://docs.aws.amazon.com/sdk-for-java/latest/developer-guide/credentials-chain.html) to fetch credentials." + }, + "stsEndpointOverride": { + "$dynamic": true, + "type": "string", + "title": "The AWS STS endpoint with which the SDKClient should communicate." + }, + "stsRoleArn": { + "$dynamic": true, + "type": "string", + "title": "AWS STS Role.", + "markdownDescription": "The Amazon Resource Name (ARN) of the role to assume. If set the task will use the `StsAssumeRoleCredentialsProvider`. If no credentials are defined, we will use the [default credentials provider chain](https://docs.aws.amazon.com/sdk-for-java/latest/developer-guide/credentials-chain.html) to fetch credentials." + }, + "stsRoleExternalId": { + "$dynamic": true, + "type": "string", + "title": "AWS STS External Id.", + "markdownDescription": " A unique identifier that might be required when you assume a role in another account. This property is only used when an `stsRoleArn` is defined." + }, + "stsRoleSessionDuration": { + "$dynamic": false, + "type": "string", + "format": "duration", + "title": "AWS STS Session duration.", + "default": 900, + "markdownDescription": "The duration of the role session (default: 15 minutes, i.e., PT15M). This property is only used when an `stsRoleArn` is defined.\n\nDefault value is : `900.000000000`" + }, + "stsRoleSessionName": { + "$dynamic": true, + "type": "string", + "title": "AWS STS Session name.", + "markdownDescription": "This property is only used when an `stsRoleArn` is defined." + }, + "timeout": { + "type": "string", + "format": "duration" + }, + "topicArn": { + "$dynamic": true, + "type": "string", + "title": "The SNS topic ARN. The topic must already exist." + }, + "type": { + "const": "io.kestra.plugin.aws.sns.Publish" + }, + "workerGroup": { + "$ref": "#/definitions/io.kestra.core.models.tasks.WorkerGroup" + } + }, + "required": ["from", "id", "topicArn", "type"], + "title": "Publish a message to a SNS topic.", + "markdownDescription": "##### Examples\n\u003E \n```yaml\naccessKeyId: \"\u003Caccess-key\u003E\"\nsecretKeyId: \"\u003Csecret-key\u003E\"\nregion: \"eu-central-1\"\ntopicArn: \"arn:aws:sns:eu-central-1:000000000000:MessageTopic\"\nfrom:\n- data: Hello World\n- data: Hello Kestra\n subject: Kestra\n```" + }, + "io.kestra.plugin.aws.sqs.Consume": { + "type": "object", + "properties": { + "accessKeyId": { + "$dynamic": true, + "type": "string", + "title": "Access Key Id in order to connect to AWS.", + "markdownDescription": "If no credentials are defined, we will use the [default credentials provider chain](https://docs.aws.amazon.com/sdk-for-java/latest/developer-guide/credentials-chain.html) to fetch credentials." + }, + "allowFailure": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "compatibilityMode": { + "$dynamic": true, + "type": "boolean" + }, + "description": { + "type": "string" + }, + "disabled": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "endpointOverride": { + "$dynamic": true, + "type": "string", + "title": "The endpoint with which the SDK should communicate.", + "markdownDescription": "This property allows you to use a different S3 compatible storage backend." + }, + "id": { + "type": "string", + "minLength": 1, + "pattern": "^[a-zA-Z0-9][a-zA-Z0-9_-]*" + }, + "logLevel": { + "type": "string", + "enum": ["ERROR", "WARN", "INFO", "DEBUG", "TRACE"] + }, + "maxDuration": { + "$dynamic": false, + "type": "string", + "format": "duration", + "title": "Maximum duration in the Duration ISO format, after that the task will end." + }, + "maxRecords": { + "$dynamic": false, + "type": "integer", + "title": "Maximum number of records; when reached, the task will end." + }, + "queueUrl": { + "$dynamic": true, + "type": "string", + "title": "The SQS queue URL. The queue must already exist." + }, + "region": { + "$dynamic": true, + "type": "string", + "title": "AWS region with which the SDK should communicate." + }, + "retry": { + "oneOf": [ + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Constant-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Exponential-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Random-2" + } + ] + }, + "secretKeyId": { + "$dynamic": true, + "type": "string", + "title": "Secret Key Id in order to connect to AWS.", + "markdownDescription": "If no credentials are defined, we will use the [default credentials provider chain](https://docs.aws.amazon.com/sdk-for-java/latest/developer-guide/credentials-chain.html) to fetch credentials." + }, + "serdeType": { + "$dynamic": false, + "type": "string", + "enum": ["STRING", "JSON"], + "title": "The serializer/deserializer to use.", + "default": "STRING", + "markdownDescription": "Default value is : `STRING`" + }, + "sessionToken": { + "$dynamic": true, + "type": "string", + "title": "AWS session token, retrieved from an AWS token service, used for authenticating that this user has received temporary permissions to access a given resource.", + "markdownDescription": "If no credentials are defined, we will use the [default credentials provider chain](https://docs.aws.amazon.com/sdk-for-java/latest/developer-guide/credentials-chain.html) to fetch credentials." + }, + "stsEndpointOverride": { + "$dynamic": true, + "type": "string", + "title": "The AWS STS endpoint with which the SDKClient should communicate." + }, + "stsRoleArn": { + "$dynamic": true, + "type": "string", + "title": "AWS STS Role.", + "markdownDescription": "The Amazon Resource Name (ARN) of the role to assume. If set the task will use the `StsAssumeRoleCredentialsProvider`. If no credentials are defined, we will use the [default credentials provider chain](https://docs.aws.amazon.com/sdk-for-java/latest/developer-guide/credentials-chain.html) to fetch credentials." + }, + "stsRoleExternalId": { + "$dynamic": true, + "type": "string", + "title": "AWS STS External Id.", + "markdownDescription": " A unique identifier that might be required when you assume a role in another account. This property is only used when an `stsRoleArn` is defined." + }, + "stsRoleSessionDuration": { + "$dynamic": false, + "type": "string", + "format": "duration", + "title": "AWS STS Session duration.", + "default": 900, + "markdownDescription": "The duration of the role session (default: 15 minutes, i.e., PT15M). This property is only used when an `stsRoleArn` is defined.\n\nDefault value is : `900.000000000`" + }, + "stsRoleSessionName": { + "$dynamic": true, + "type": "string", + "title": "AWS STS Session name.", + "markdownDescription": "This property is only used when an `stsRoleArn` is defined." + }, + "timeout": { + "type": "string", + "format": "duration" + }, + "type": { + "const": "io.kestra.plugin.aws.sqs.Consume" + }, + "workerGroup": { + "$ref": "#/definitions/io.kestra.core.models.tasks.WorkerGroup" + } + }, + "required": ["id", "queueUrl", "type"], + "title": "Consume messages from a SQS queue.", + "markdownDescription": "Requires `maxDuration` or `maxRecords`.##### Examples\n\u003E \n```yaml\naccessKeyId: \"\u003Caccess-key\u003E\"\nsecretKeyId: \"\u003Csecret-key\u003E\"\nregion: \"eu-central-1\"\nqueueUrl: \"https://sqs.eu-central-1.amazonaws.com/000000000000/test-queue\"\n```" + }, + "io.kestra.plugin.aws.sqs.Publish": { + "type": "object", + "properties": { + "accessKeyId": { + "$dynamic": true, + "type": "string", + "title": "Access Key Id in order to connect to AWS.", + "markdownDescription": "If no credentials are defined, we will use the [default credentials provider chain](https://docs.aws.amazon.com/sdk-for-java/latest/developer-guide/credentials-chain.html) to fetch credentials." + }, + "allowFailure": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "compatibilityMode": { + "$dynamic": true, + "type": "boolean" + }, + "description": { + "type": "string" + }, + "disabled": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "endpointOverride": { + "$dynamic": true, + "type": "string", + "title": "The endpoint with which the SDK should communicate.", + "markdownDescription": "This property allows you to use a different S3 compatible storage backend." + }, + "from": { + "$dynamic": true, + "title": "The source of the published data.", + "markdownDescription": "Can be an internal storage URI, a list of SQS messages, or a single SQS message.", + "oneOf": [ + { + "type": "string" + }, + { + "type": "array", + "items": {} + }, + { + "$ref": "#/definitions/io.kestra.plugin.aws.sqs.model.Message" + } + ] + }, + "id": { + "type": "string", + "minLength": 1, + "pattern": "^[a-zA-Z0-9][a-zA-Z0-9_-]*" + }, + "logLevel": { + "type": "string", + "enum": ["ERROR", "WARN", "INFO", "DEBUG", "TRACE"] + }, + "queueUrl": { + "$dynamic": true, + "type": "string", + "title": "The SQS queue URL. The queue must already exist." + }, + "region": { + "$dynamic": true, + "type": "string", + "title": "AWS region with which the SDK should communicate." + }, + "retry": { + "oneOf": [ + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Constant-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Exponential-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Random-2" + } + ] + }, + "secretKeyId": { + "$dynamic": true, + "type": "string", + "title": "Secret Key Id in order to connect to AWS.", + "markdownDescription": "If no credentials are defined, we will use the [default credentials provider chain](https://docs.aws.amazon.com/sdk-for-java/latest/developer-guide/credentials-chain.html) to fetch credentials." + }, + "sessionToken": { + "$dynamic": true, + "type": "string", + "title": "AWS session token, retrieved from an AWS token service, used for authenticating that this user has received temporary permissions to access a given resource.", + "markdownDescription": "If no credentials are defined, we will use the [default credentials provider chain](https://docs.aws.amazon.com/sdk-for-java/latest/developer-guide/credentials-chain.html) to fetch credentials." + }, + "stsEndpointOverride": { + "$dynamic": true, + "type": "string", + "title": "The AWS STS endpoint with which the SDKClient should communicate." + }, + "stsRoleArn": { + "$dynamic": true, + "type": "string", + "title": "AWS STS Role.", + "markdownDescription": "The Amazon Resource Name (ARN) of the role to assume. If set the task will use the `StsAssumeRoleCredentialsProvider`. If no credentials are defined, we will use the [default credentials provider chain](https://docs.aws.amazon.com/sdk-for-java/latest/developer-guide/credentials-chain.html) to fetch credentials." + }, + "stsRoleExternalId": { + "$dynamic": true, + "type": "string", + "title": "AWS STS External Id.", + "markdownDescription": " A unique identifier that might be required when you assume a role in another account. This property is only used when an `stsRoleArn` is defined." + }, + "stsRoleSessionDuration": { + "$dynamic": false, + "type": "string", + "format": "duration", + "title": "AWS STS Session duration.", + "default": 900, + "markdownDescription": "The duration of the role session (default: 15 minutes, i.e., PT15M). This property is only used when an `stsRoleArn` is defined.\n\nDefault value is : `900.000000000`" + }, + "stsRoleSessionName": { + "$dynamic": true, + "type": "string", + "title": "AWS STS Session name.", + "markdownDescription": "This property is only used when an `stsRoleArn` is defined." + }, + "timeout": { + "type": "string", + "format": "duration" + }, + "type": { + "const": "io.kestra.plugin.aws.sqs.Publish" + }, + "workerGroup": { + "$ref": "#/definitions/io.kestra.core.models.tasks.WorkerGroup" + } + }, + "required": ["from", "id", "queueUrl", "type"], + "title": "Publish a message to an SQS queue.", + "markdownDescription": "##### Examples\n\u003E \n```yaml\naccessKeyId: \"\u003Caccess-key\u003E\"\nsecretKeyId: \"\u003Csecret-key\u003E\"\nregion: \"eu-central-1\"\nqueueUrl: \"https://sqs.eu-central-1.amazonaws.com/000000000000/test-queue\"\nfrom:\n- data: Hello World\n- data: Hello Kestra\n delaySeconds: 5\n```" + }, + "io.kestra.plugin.aws.sqs.RealtimeTrigger": { + "type": "object", + "properties": { + "accessKeyId": { + "$dynamic": true, + "type": "string", + "title": "Access Key Id in order to connect to AWS.", + "markdownDescription": "If no credentials are defined, we will use the [default credentials provider chain](https://docs.aws.amazon.com/sdk-for-java/latest/developer-guide/credentials-chain.html) to fetch credentials." + }, + "clientRetryMaxAttempts": { + "$dynamic": false, + "type": "integer", + "title": "The maximum number of attempts used by the SQS client's retry strategy.", + "default": 3, + "markdownDescription": "Default value is : `3`" + }, + "conditions": { + "$dynamic": false, + "title": "List of conditions in order to limit the flow trigger.", + "type": "array", + "items": { + "oneOf": [ + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.DateTimeBetweenCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.DayWeekCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.DayWeekInMonthCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.ExecutionFlowCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.ExecutionLabelsCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.ExecutionNamespaceCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.ExecutionOutputsCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.ExecutionStatusCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.ExpressionCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.FlowCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.FlowNamespaceCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.HasRetryAttemptCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.MultipleCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.NotCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.OrCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.PublicHolidayCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.TimeBetweenCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.WeekendCondition" + }, + { + "$dynamic": false + } + ] + } + ] + } + }, + "description": { + "type": "string" + }, + "disabled": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "endpointOverride": { + "$dynamic": true, + "type": "string", + "title": "The endpoint with which the SDK should communicate.", + "markdownDescription": "This property allows you to use a different S3 compatible storage backend." + }, + "id": { + "type": "string", + "title": "A unique ID for the whole flow.", + "minLength": 1, + "pattern": "^[a-zA-Z0-9][a-zA-Z0-9_-]*" + }, + "labels": { + "title": "The labels to pass to the execution created.", + "type": "array", + "items": { + "$ref": "#/definitions/io.kestra.core.models.Label" + } + }, + "logLevel": { + "type": "string", + "enum": ["ERROR", "WARN", "INFO", "DEBUG", "TRACE"] + }, + "maxNumberOfMessage": { + "$dynamic": false, + "type": "integer", + "title": "The maximum number of messages returned from request made to SQS.", + "default": 5, + "markdownDescription": "Increasing this value can reduce the number of requests made to SQS. Amazon SQS never returns more messages than this value (however, fewer messages might be returned). Valid values: 1 to 10.\n\nDefault value is : `5`" + }, + "queueUrl": { + "$dynamic": true, + "type": "string", + "title": "The SQS queue URL. The queue must already exist." + }, + "region": { + "$dynamic": true, + "type": "string", + "title": "AWS region with which the SDK should communicate." + }, + "secretKeyId": { + "$dynamic": true, + "type": "string", + "title": "Secret Key Id in order to connect to AWS.", + "markdownDescription": "If no credentials are defined, we will use the [default credentials provider chain](https://docs.aws.amazon.com/sdk-for-java/latest/developer-guide/credentials-chain.html) to fetch credentials." + }, + "serdeType": { + "$dynamic": false, + "type": "string", + "enum": ["STRING", "JSON"], + "title": "The serializer/deserializer to use.", + "default": "STRING", + "markdownDescription": "Default value is : `STRING`" + }, + "sessionToken": { + "$dynamic": true, + "type": "string", + "title": "AWS session token, retrieved from an AWS token service, used for authenticating that this user has received temporary permissions to access a given resource.", + "markdownDescription": "If no credentials are defined, we will use the [default credentials provider chain](https://docs.aws.amazon.com/sdk-for-java/latest/developer-guide/credentials-chain.html) to fetch credentials." + }, + "stopAfter": { + "$dynamic": false, + "title": "List of execution states after which a trigger should be stopped (a.k.a. disabled).", + "type": "array", + "items": { + "$dynamic": false, + "type": "string", + "enum": [ + "CREATED", + "RUNNING", + "PAUSED", + "RESTARTED", + "KILLING", + "SUCCESS", + "WARNING", + "FAILED", + "KILLED", + "CANCELLED", + "QUEUED", + "RETRYING", + "RETRIED" + ] + } + }, + "stsEndpointOverride": { + "$dynamic": true, + "type": "string", + "title": "The AWS STS endpoint with which the SDKClient should communicate." + }, + "stsRoleArn": { + "$dynamic": true, + "type": "string", + "title": "AWS STS Role.", + "markdownDescription": "The Amazon Resource Name (ARN) of the role to assume. If set the task will use the `StsAssumeRoleCredentialsProvider`. If no credentials are defined, we will use the [default credentials provider chain](https://docs.aws.amazon.com/sdk-for-java/latest/developer-guide/credentials-chain.html) to fetch credentials." + }, + "stsRoleExternalId": { + "$dynamic": true, + "type": "string", + "title": "AWS STS External Id.", + "markdownDescription": " A unique identifier that might be required when you assume a role in another account. This property is only used when an `stsRoleArn` is defined." + }, + "stsRoleSessionDuration": { + "$dynamic": false, + "type": "string", + "format": "duration", + "title": "AWS STS Session duration.", + "default": 900, + "markdownDescription": "The duration of the role session (default: 15 minutes, i.e., PT15M). This property is only used when an `stsRoleArn` is defined.\n\nDefault value is : `900.000000000`" + }, + "stsRoleSessionName": { + "$dynamic": true, + "type": "string", + "title": "AWS STS Session name.", + "markdownDescription": "This property is only used when an `stsRoleArn` is defined." + }, + "type": { + "const": "io.kestra.plugin.aws.sqs.RealtimeTrigger" + }, + "waitTime": { + "$dynamic": false, + "type": "string", + "format": "duration", + "title": "The duration for which the SQS client waits for a message.", + "default": 20, + "markdownDescription": "Default value is : `20.000000000`" + }, + "workerGroup": { + "$ref": "#/definitions/io.kestra.core.models.tasks.WorkerGroup" + } + }, + "required": ["id", "queueUrl", "type"], + "title": "Consume a message in real-time from an SQS queue and create one execution per message.", + "markdownDescription": "If you would like to consume multiple messages processed within a given time frame and process them in batch, you can use the [io.kestra.plugin.aws.sqs.Trigger](https://kestra.io/plugins/plugin-aws/triggers/io.kestra.plugin.aws.sqs.trigger) instead.##### Examples\n\u003E Consume a message from an SQS queue in real-time.\n```yaml\nid: sqs\nnamespace: company.team\n\ntasks:\n- id: log\n type: io.kestra.plugin.core.log.Log\n message: \"{{ trigger.data }}\"\n\ntriggers:\n- id: realtime_trigger\n type: io.kestra.plugin.aws.sqs.RealtimeTrigger\n accessKeyId: \"access_key\"\n secretKeyId: \"secret_key\"\n region: \"eu-central-1\"\n queueUrl: https://sqs.eu-central-1.amazonaws.com/000000000000/test-queue\n```" + }, + "io.kestra.plugin.aws.sqs.Trigger": { + "type": "object", + "properties": { + "accessKeyId": { + "$dynamic": true, + "type": "string", + "title": "Access Key Id in order to connect to AWS.", + "markdownDescription": "If no credentials are defined, we will use the [default credentials provider chain](https://docs.aws.amazon.com/sdk-for-java/latest/developer-guide/credentials-chain.html) to fetch credentials." + }, + "conditions": { + "$dynamic": false, + "title": "List of conditions in order to limit the flow trigger.", + "type": "array", + "items": { + "oneOf": [ + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.DateTimeBetweenCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.DayWeekCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.DayWeekInMonthCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.ExecutionFlowCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.ExecutionLabelsCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.ExecutionNamespaceCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.ExecutionOutputsCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.ExecutionStatusCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.ExpressionCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.FlowCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.FlowNamespaceCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.HasRetryAttemptCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.MultipleCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.NotCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.OrCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.PublicHolidayCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.TimeBetweenCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.WeekendCondition" + }, + { + "$dynamic": false + } + ] + } + ] + } + }, + "description": { + "type": "string" + }, + "disabled": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "endpointOverride": { + "$dynamic": true, + "type": "string", + "title": "The endpoint with which the SDK should communicate.", + "markdownDescription": "This property allows you to use a different S3 compatible storage backend." + }, + "id": { + "type": "string", + "title": "A unique ID for the whole flow.", + "minLength": 1, + "pattern": "^[a-zA-Z0-9][a-zA-Z0-9_-]*" + }, + "interval": { + "$dynamic": false, + "type": "string", + "format": "duration", + "title": "Interval between polling.", + "default": 60, + "markdownDescription": "The interval between 2 different polls of schedule, this can avoid to overload the remote system with too many calls. For most of the triggers that depend on external systems, a minimal interval must be at least PT30S.\nSee [ISO_8601 Durations](https://en.wikipedia.org/wiki/ISO_8601#Durations) for more information of available interval values.\n\nDefault value is : `60.000000000`" + }, + "labels": { + "title": "The labels to pass to the execution created.", + "type": "array", + "items": { + "$ref": "#/definitions/io.kestra.core.models.Label" + } + }, + "logLevel": { + "type": "string", + "enum": ["ERROR", "WARN", "INFO", "DEBUG", "TRACE"] + }, + "maxDuration": { + "$dynamic": false, + "type": "string", + "format": "duration", + "title": "Max duration in the Duration ISO format, after that the task will end." + }, + "maxRecords": { + "$dynamic": false, + "type": "integer", + "title": "Max number of records, when reached the task will end." + }, + "queueUrl": { + "$dynamic": true, + "type": "string", + "title": "The SQS queue URL. The queue must already exist." + }, + "region": { + "$dynamic": true, + "type": "string", + "title": "AWS region with which the SDK should communicate." + }, + "secretKeyId": { + "$dynamic": true, + "type": "string", + "title": "Secret Key Id in order to connect to AWS.", + "markdownDescription": "If no credentials are defined, we will use the [default credentials provider chain](https://docs.aws.amazon.com/sdk-for-java/latest/developer-guide/credentials-chain.html) to fetch credentials." + }, + "serdeType": { + "$dynamic": false, + "type": "string", + "enum": ["STRING", "JSON"], + "title": "The serializer/deserializer to use.", + "default": "STRING", + "markdownDescription": "Default value is : `STRING`" + }, + "sessionToken": { + "$dynamic": true, + "type": "string", + "title": "AWS session token, retrieved from an AWS token service, used for authenticating that this user has received temporary permissions to access a given resource.", + "markdownDescription": "If no credentials are defined, we will use the [default credentials provider chain](https://docs.aws.amazon.com/sdk-for-java/latest/developer-guide/credentials-chain.html) to fetch credentials." + }, + "stopAfter": { + "$dynamic": false, + "title": "List of execution states after which a trigger should be stopped (a.k.a. disabled).", + "type": "array", + "items": { + "$dynamic": false, + "type": "string", + "enum": [ + "CREATED", + "RUNNING", + "PAUSED", + "RESTARTED", + "KILLING", + "SUCCESS", + "WARNING", + "FAILED", + "KILLED", + "CANCELLED", + "QUEUED", + "RETRYING", + "RETRIED" + ] + } + }, + "stsEndpointOverride": { + "$dynamic": true, + "type": "string", + "title": "The AWS STS endpoint with which the SDKClient should communicate." + }, + "stsRoleArn": { + "$dynamic": true, + "type": "string", + "title": "AWS STS Role.", + "markdownDescription": "The Amazon Resource Name (ARN) of the role to assume. If set the task will use the `StsAssumeRoleCredentialsProvider`. If no credentials are defined, we will use the [default credentials provider chain](https://docs.aws.amazon.com/sdk-for-java/latest/developer-guide/credentials-chain.html) to fetch credentials." + }, + "stsRoleExternalId": { + "$dynamic": true, + "type": "string", + "title": "AWS STS External Id.", + "markdownDescription": " A unique identifier that might be required when you assume a role in another account. This property is only used when an `stsRoleArn` is defined." + }, + "stsRoleSessionDuration": { + "$dynamic": false, + "type": "string", + "format": "duration", + "title": "AWS STS Session duration.", + "default": 900, + "markdownDescription": "The duration of the role session (default: 15 minutes, i.e., PT15M). This property is only used when an `stsRoleArn` is defined.\n\nDefault value is : `900.000000000`" + }, + "stsRoleSessionName": { + "$dynamic": true, + "type": "string", + "title": "AWS STS Session name.", + "markdownDescription": "This property is only used when an `stsRoleArn` is defined." + }, + "type": { + "const": "io.kestra.plugin.aws.sqs.Trigger" + }, + "workerGroup": { + "$ref": "#/definitions/io.kestra.core.models.tasks.WorkerGroup" + } + }, + "required": ["id", "queueUrl", "type"], + "title": "Consume messages periodically from an SQS queue and create one execution per batch.", + "markdownDescription": "Requires `maxDuration` or `maxRecords`.\nNote that you don't need an extra task to consume the message from the event trigger. The trigger will automatically consume messages and you can retrieve their content in your flow using the `{{ trigger.uri }}` variable. If you would like to consume each message from an SQS queue in real-time and create one execution per message, you can use the [io.kestra.plugin.aws.sqs.RealtimeTrigger](https://kestra.io/plugins/plugin-aws/triggers/io.kestra.plugin.aws.sqs.realtimetrigger) instead.##### Examples\n\u003E \n```yaml\naccessKeyId: \"\u003Caccess-key\u003E\"\nsecretKeyId: \"\u003Csecret-key\u003E\"\nregion: \"eu-central-1\"\nqueueUrl: \"https://sqs.eu-central-1.amazonaws.com/000000000000/test-queue\"\nmaxRecords: 10\n```" + }, + "io.kestra.plugin.aws.sqs.model.Message": { + "type": "object", + "properties": { + "data": { + "$dynamic": true, + "type": "string", + "title": "The message data." + }, + "deduplicationId": { + "$dynamic": true, + "type": "string", + "title": "The message deduplication ID." + }, + "delaySeconds": { + "$dynamic": false, + "type": "integer", + "title": "The message delay in seconds." + }, + "groupId": { + "$dynamic": true, + "type": "string", + "title": "The message group ID." + } + }, + "required": ["data"] + }, + "io.kestra.plugin.azure.batch.job.Create": { + "type": "object", + "properties": { + "accessKey": { + "type": "string" + }, + "account": { + "type": "string" + }, + "allowFailure": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "completionCheckInterval": { + "$dynamic": false, + "type": "string", + "format": "duration", + "title": "The frequency with which the task checks whether the job is completed.", + "default": 1, + "markdownDescription": "Default value is : `1.000000000`" + }, + "delete": { + "$dynamic": false, + "type": "boolean", + "title": "Whether the job should be deleted upon completion.", + "default": true, + "markdownDescription": "Default value is : `true`" + }, + "description": { + "type": "string" + }, + "disabled": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "endpoint": { + "$dynamic": true, + "type": "string", + "title": "The blob service endpoint." + }, + "id": { + "type": "string", + "minLength": 1, + "pattern": "^[a-zA-Z0-9][a-zA-Z0-9_-]*" + }, + "job": { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.azure.batch.models.Job" + }, + { + "$dynamic": true, + "title": "The job to create." + } + ] + }, + "logLevel": { + "type": "string", + "enum": ["ERROR", "WARN", "INFO", "DEBUG", "TRACE"] + }, + "maxDuration": { + "$dynamic": false, + "type": "string", + "format": "duration", + "title": "The maximum total wait duration.", + "markdownDescription": "If null, there is no timeout and the task is delegated to Azure Batch." + }, + "poolId": { + "$dynamic": true, + "type": "string", + "title": "The ID of the pool." + }, + "resume": { + "$dynamic": false, + "type": "boolean", + "title": "Whether to reconnect to the current job if it already exists.", + "default": true, + "markdownDescription": "Default value is : `true`" + }, + "retry": { + "oneOf": [ + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Constant-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Exponential-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Random-2" + } + ] + }, + "tasks": { + "$dynamic": false, + "title": "The list of tasks to be run.", + "type": "array", + "items": { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.azure.batch.models.Task" + }, + { + "$dynamic": false + } + ] + } + }, + "timeout": { + "type": "string", + "format": "duration" + }, + "type": { + "const": "io.kestra.plugin.azure.batch.job.Create" + }, + "workerGroup": { + "$ref": "#/definitions/io.kestra.core.models.tasks.WorkerGroup" + } + }, + "required": ["endpoint", "id", "job", "poolId", "tasks", "type"], + "title": "Create a Azure Batch job with tasks.", + "markdownDescription": "##### Examples\n\u003E \n```yaml\nendpoint: https://***.francecentral.batch.azure.com\naccount: \u003Cbatch-account\u003E\naccessKey: \u003Caccess-key\u003E\npoolId: \u003Cpool-id\u003E\njob:\n id: \u003Cjob-name\u003E\ntasks:\n- id: env\n commands:\n - 'echo t1=$ENV_STRING'\n environments:\n ENV_STRING: \"{{ inputs.first }}\"\n- id: echo\n commands:\n - 'echo t2={{ inputs.second }} 1\u003E&2'\n- id: for\n commands:\n - 'for i in $(seq 10); do echo t3=$i; done'\n- id: vars\n commands:\n - echo '::{\"outputs\":{\"extract\":\"'$(cat files/in/in.txt)'\"}::'\n resourceFiles:\n - httpUrl: https://unittestkt.blob.core.windows.net/tasks/***?sv=***&se=***&sr=***&sp=***&sig=***\n filePath: files/in/in.txt\n- id: output\n commands:\n - 'mkdir -p outs/child/sub'\n - 'echo 1 \u003E outs/1.txt'\n - 'echo 2 \u003E outs/child/2.txt'\n - 'echo 3 \u003E outs/child/sub/3.txt'\n outputFiles:\n - outs/1.txt\n outputDirs:\n - outs/child\n```\n\n\u003E Use a container to start the task, the pool must use a `microsoft-azure-batch` publisher.\n```yaml\nendpoint: https://***.francecentral.batch.azure.com\naccount: \u003Cbatch-account\u003E\naccessKey: \u003Caccess-key\u003E\npoolId: \u003Cpool-id\u003E\njob:\n id: \u003Cjob-name\u003E\ntasks:\n- id: echo\n commands:\n - 'python --version'\n containerSettings:\n imageName: python\n```" + }, + "io.kestra.plugin.azure.batch.models.ComputeNodeIdentityReference": { + "type": "object", + "properties": { + "resourceId": { + "$dynamic": true, + "type": "string", + "title": "The ARM resource ID of the user assigned identity." + } + } + }, + "io.kestra.plugin.azure.batch.models.ContainerRegistry": { + "type": "object", + "properties": { + "identityReference": { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.azure.batch.models.ComputeNodeIdentityReference" + }, + { + "$dynamic": true, + "title": "The reference to the user assigned identity to use to access the Azure Container Registry instead of username and password." + } + ] + }, + "password": { + "$dynamic": true, + "type": "string", + "title": "The password to log into the registry server." + }, + "registryServer": { + "$dynamic": true, + "type": "string", + "title": "The registry server URL.", + "markdownDescription": "If omitted, the default is \"docker.io\"." + }, + "userName": { + "$dynamic": true, + "type": "string", + "title": "The user name to log into the registry server." + } + } + }, + "io.kestra.plugin.azure.batch.models.Job": { + "type": "object", + "properties": { + "displayName": { + "$dynamic": true, + "type": "string", + "title": "The display name for the Job.", + "maxLength": 1024, + "markdownDescription": "The display name need not be unique and can contain any Unicode characters up to a maximum length of 1024." + }, + "id": { + "$dynamic": true, + "type": "string", + "title": "A string that uniquely identifies the Job within the Account. ", + "maxLength": 64, + "markdownDescription": "The ID can contain any combination of alphanumeric characters including hyphens and underscores, and cannot contain more than 64 characters. The ID is case-preserving and case-insensitive (that is, you may not have two IDs within an Account that differ only by case)." + }, + "labels": { + "$dynamic": true, + "type": "object", + "title": "Labels to attach to the created job." + }, + "maxParallelTasks": { + "$dynamic": false, + "type": "integer", + "title": "The maximum number of tasks that can be executed in parallel for the Job.", + "markdownDescription": "The value of `maxParallelTasks` must be -1 or greater than 0, if specified. If not specified, the default value is -1, which means there's no limit to the number of tasks that can be run at once. You can update a job's `maxParallelTasks` after it has been created using the update job API." + }, + "priority": { + "$dynamic": false, + "type": "integer", + "title": "The priority of the Job.", + "markdownDescription": "Priority values can range from -1000 to 1000, with -1000 being the lowest priority and 1000 being the highest priority. The default value is 0." + } + }, + "required": ["id"] + }, + "io.kestra.plugin.azure.batch.models.OutputFile": { + "type": "object", + "properties": { + "destination": { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.azure.batch.models.OutputFileDestination" + }, + { + "$dynamic": false, + "title": "The destination for the output file(s)." + } + ] + }, + "filePattern": { + "$dynamic": true, + "type": "string", + "title": "A pattern indicating which file(s) to upload.", + "markdownDescription": "Both relative and absolute paths are supported. Relative paths are relative to the Task working directory. The following wildcards are supported: `*` matches 0 or more characters (for example, pattern `abc*` would match `abc` or `abcdef`), `**` matches any directory, `?` matches any single character, `[abc]` matches one character in the brackets, and `[a-c]` matches one character in the range. Brackets can include a negation to match any character not specified (for example, `[!abc]` matches any character but `a`, `b`, or `c`). If a file name starts with `\".\"` it is ignored by default but may be matched by specifying it explicitly (for example `*.gif` will not match `.a.gif`, but `.*.gif` will). A simple example: `**\\*.txt` matches any file that does not start in '.' and ends with `.txt` in the Task working directory or any subdirectory. If the filename contains a wildcard character it can be escaped using brackets (for example, `abc[*]` would match a file named `abc*`). Note that both `\\` and `/` are treated as directory separators on Windows, but only `/` is on Linux.Environment variables (`%var%` on Windows or `$var` on Linux) are expanded prior to the pattern being applied." + }, + "uploadOptions": { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.azure.batch.models.OutputFileUploadOptions" + }, + { + "$dynamic": false, + "title": "Additional options for the upload operation, including the conditions under which to perform the upload.", + "default": { + "uploadCondition": "taskcompletion" + }, + "markdownDescription": "Default value is : `uploadCondition: taskcompletion`" + } + ] + } + }, + "required": ["destination"] + }, + "io.kestra.plugin.azure.batch.models.OutputFileBlobContainerDestination": { + "type": "object", + "properties": { + "containerUrl": { + "type": "string", + "title": "The URL of the container within Azure Blob Storage to which to upload the file(s).", + "markdownDescription": "If not using a managed identity, the URL must include a Shared Access Signature (SAS) granting write permissions to the container." + }, + "identityReference": { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.azure.batch.models.ComputeNodeIdentityReference" + }, + { + "title": "The reference to the user assigned identity to use to access Azure Blob Storage specified by `containerUrl`.", + "markdownDescription": "The identity must have write access to the Azure Blob Storage container." + } + ] + }, + "path": { + "$dynamic": true, + "type": "string", + "title": "The destination blob or virtual directory within the Azure Storage container.", + "markdownDescription": "If `filePattern` refers to a specific file (i.e. contains no wildcards), then `path` is the name of the blob to which to upload that file. If `filePattern` contains one or more wildcards (and therefore may match multiple files), then `path` is the name of the blob virtual directory (which is prepended to each blob name) to which to upload the file(s). If omitted, file(s) are uploaded to the root of the container with a blob name matching their file name." + } + }, + "required": ["containerUrl"] + }, + "io.kestra.plugin.azure.batch.models.OutputFileDestination": { + "type": "object", + "properties": { + "container": { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.azure.batch.models.OutputFileBlobContainerDestination" + }, + { + "$dynamic": true, + "title": "A location in Azure Blob Storage to which the files are uploaded." + } + ] + } + }, + "required": ["container"] + }, + "io.kestra.plugin.azure.batch.models.OutputFileUploadOptions": { + "type": "object", + "properties": { + "uploadCondition": { + "$dynamic": false, + "type": "string", + "enum": ["TASK_SUCCESS", "TASK_FAILURE", "TASK_COMPLETION"], + "title": "The conditions under which the Task output file or set of files should be uploaded.", + "default": "taskcompletion", + "markdownDescription": "Default value is : `taskcompletion`" + } + }, + "required": [] + }, + "io.kestra.plugin.azure.batch.models.ResourceFile": { + "type": "object", + "properties": { + "autoStorageContainerName": { + "$dynamic": true, + "type": "string", + "title": "The storage container name in the auto storage Account.", + "markdownDescription": "The `autoStorageContainerName`, `storageContainerUrl` and `httpUrl` properties are mutually exclusive, and one of them must be specified." + }, + "blobPrefix": { + "$dynamic": true, + "type": "string", + "title": "The blob prefix to use when downloading blobs from the Azure Storage container.", + "markdownDescription": "Only the blobs whose names begin with the specified prefix will be downloaded. The property is valid only when `autoStorageContainerName` or `storageContainerUrl` is used. This prefix can be a partial file name or a subdirectory. If a prefix is not specified, all the files in the container will be downloaded." + }, + "fileMode": { + "$dynamic": true, + "type": "string", + "title": "The file permission mode attribute in octal format.", + "markdownDescription": "This property applies only to files being downloaded to Linux Compute Nodes. It will be ignored if it is specified for a `resourceFile` which will be downloaded to a Windows Compute Node. If this property is not specified for a Linux Compute Node, then a default value of `0770` is applied to the file." + }, + "filePath": { + "$dynamic": true, + "type": "string", + "title": "The location on the Compute Node to which to download the file(s), relative to the Task's working directory.", + "markdownDescription": "If the `httpUrl` property is specified, the `filePath` is required and describes the path which the file will be downloaded to, including the file name. Otherwise, if the `autoStorageContainerName` or `storageContainerUrl` property is specified, `filePath` is optional and is the directory to download the files to. In the case where `filePath` is used as a directory, any directory structure already associated with the input data will be retained in full and appended to the specified `filePath` directory. The specified relative path cannot break out of the Task's working directory (for example by using `..`)." + }, + "httpUrl": { + "$dynamic": true, + "type": "string", + "title": "The URL of the file to download.", + "markdownDescription": "The `autoStorageContainerName`, `storageContainerUrl` and `httpUrl` properties are mutually exclusive, and one of them must be specified. If the URL points to Azure Blob Storage, it must be readable from compute nodes. There are three ways to get such a URL for a blob in Azure storage: include a Shared Access Signature (SAS) granting read permissions on the blob, use a managed identity with read permission, or set the ACL for the blob or its container to allow public access." + }, + "identityReference": { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.azure.batch.models.ComputeNodeIdentityReference" + }, + { + "$dynamic": true, + "title": "The reference to the user assigned identity to use to access Azure Blob Storage specified by `storageContainerUrl` or `httpUrl`." + } + ] + }, + "storageContainerUrl": { + "$dynamic": true, + "type": "string", + "title": "The URL of the blob container within Azure Blob Storage.", + "markdownDescription": "The `autoStorageContainerName`, `storageContainerUrl` and `httpUrl` properties are mutually exclusive, and one of them must be specified. This URL must be readable and listable from compute nodes. There are three ways to get such a URL for a container in Azure storage: include a Shared Access Signature (SAS) granting read and list permissions on the container, use a managed identity with read and list permissions, or set the ACL for the container to allow public access." + } + } + }, + "io.kestra.plugin.azure.batch.models.Task": { + "type": "object", + "properties": { + "commands": { + "$dynamic": true, + "title": "The command line of the Task.", + "markdownDescription": "For multi-instance Tasks, the command line is executed as the primary Task, after the primary Task and all subtasks have finished executing the coordination command line. The command line does not run under a shell, and therefore cannot take advantage of shell features such as environment variable expansion. If you want to take advantage of such features, you should invoke the shell in the command line, for example, using `cmd /c MyCommand` in Windows or `/bin/sh -c MyCommand` in Linux. If the command line refers to file paths, it should use a relative path (relative to the Task working directory), or use the Batch provided [environment variable](https://docs.microsoft.com/en-us/azure/batch/batch-compute-node-environment-variables).\n\nCommand will be passed as `/bin/sh -c \"command\"` by default.", + "type": "array", + "items": { + "$dynamic": true, + "type": "string" + } + }, + "constraints": { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.azure.batch.models.TaskConstraints" + }, + { + "$dynamic": false, + "title": "The execution constraints that apply to this Task." + } + ] + }, + "containerSettings": { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.azure.batch.models.TaskContainerSettings" + }, + { + "$dynamic": true, + "title": "The settings for the container under which the Task runs.", + "markdownDescription": "If the Pool that will run this Task has `containerConfiguration` set, this must be set as well. If the Pool that will run this Task doesn't have `containerConfiguration` set, this must not be set. When this is specified, all directories recursively below the AZ_BATCH_NODE_ROOT_DIR (the root of Azure Batch directories on the node) are mapped into the container, all Task environment variables are mapped into the container, and the Task command line is executed in the container. Files produced in the container outside of AZ_BATCH_NODE_ROOT_DIR might not be reflected to the host disk, meaning that Batch file APIs will not be able to access those files." + } + ] + }, + "displayName": { + "$dynamic": true, + "type": "string", + "title": "A display name for the Task.", + "maxLength": 1024, + "markdownDescription": "The display name need not be unique and can contain any Unicode characters up to a maximum length of 1024." + }, + "environments": { + "$dynamic": true, + "type": "object", + "title": "A list of environment variable settings for the Task." + }, + "id": { + "$dynamic": true, + "type": "string", + "title": "A string that uniquely identifies the Task within the Job.", + "maxLength": 64, + "markdownDescription": "The ID can contain any combination of alphanumeric characters including hyphens and underscores, and cannot contain more than 64 characters. The ID is case-preserving and case-insensitive (that is, you may not have two IDs within a Job that differ only by case).\nIf not provided, a random UUID will be generated." + }, + "interpreter": { + "$dynamic": false, + "type": "string", + "title": "Interpreter to be used.", + "default": "/bin/sh", + "minLength": 1, + "markdownDescription": "Default value is : `/bin/sh`" + }, + "interpreterArgs": { + "$dynamic": false, + "title": "Interpreter args to be used.", + "default": ["-c"], + "markdownDescription": "Default value is : `- -c`\n\nDefault value is : `- -c`", + "type": "array", + "items": { + "$dynamic": false, + "type": "string" + } + }, + "outputDirs": { + "$dynamic": false, + "title": "Output directories list that will be uploaded to the internal storage.", + "markdownDescription": "List of keys that will generate temporary directories.\nIn the command, you can use a special variable named `outputDirs.key`.\nIf you add a file with `[\"myDir\"]`, you can use the special variable `echo 1 \u003E\u003E {{ outputDirs.myDir }}/file1.txt` and `echo 2 \u003E\u003E {{ outputDirs.myDir }}/file2.txt`, and both files will be uploaded to the internal storage. Then, you can use them on other tasks using `{{ outputs.taskId.files['myDir/file1.txt'] }}`", + "type": "array", + "items": { + "$dynamic": false, + "type": "string" + } + }, + "outputFiles": { + "$dynamic": false, + "title": "Output file list that will be uploaded to the internal storage.", + "markdownDescription": "List of keys that will generate temporary files.\nIn the command, you can use a special variable named `outputFiles.key`.\nIf you add a file with `[\"first\"]`, you can use the special variable `echo 1 \u003E\u003E {{ outputFiles.first }}`on this task, and reference this file on others tasks using `{{ outputs.taskId.outputFiles.first }}`.", + "type": "array", + "items": { + "$dynamic": false, + "type": "string" + } + }, + "requiredSlots": { + "$dynamic": false, + "type": "integer", + "title": "The number of scheduling slots that the Task requires to run.", + "markdownDescription": "The default is 1. A Task can only be scheduled to run on a compute node if the node has enough free scheduling slots available. For multi-instance Tasks, this must be 1." + }, + "resourceFiles": { + "$dynamic": true, + "title": "A list of files that the Batch service will download to the Compute Node before running the command line.", + "markdownDescription": "For multi-instance Tasks, the resource files will only be downloaded to the Compute Node on which the primary Task is executed. There is a maximum size for the list of resource files. When the max size is exceeded, the request will fail and the response error code will be RequestEntityTooLarge. If this occurs, the collection of ResourceFiles must be reduced in size. This can be achieved using .zip files, Application Packages, or Docker Containers.", + "type": "array", + "items": { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.azure.batch.models.ResourceFile" + }, + { + "$dynamic": true + } + ] + } + }, + "uploadFiles": { + "$dynamic": true, + "title": "A list of files that the Batch service will upload from the Compute Node after running the command line.", + "markdownDescription": "For multi-instance Tasks, the files will only be uploaded from the Compute Node on which the primary Task is executed.", + "type": "array", + "items": { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.azure.batch.models.OutputFile" + }, + { + "$dynamic": true + } + ] + } + } + }, + "required": ["commands", "id"] + }, + "io.kestra.plugin.azure.batch.models.TaskConstraints": { + "type": "object", + "properties": { + "maxTaskRetryCount": { + "$dynamic": false, + "type": "integer", + "title": "The maximum number of times the Task may be retried.", + "markdownDescription": "The Batch service retries a Task if its exit code is nonzero. Note that this value specifically controls the number of retries for the Task executable due to a nonzero exit code. The Batch service will try the Task once, and may then retry up to this limit. For example, if the maximum retry count is 3, Batch tries the Task up to 4 times (one initial try and 3 retries). If the maximum retry count is 0, the Batch service does not retry the Task after the first attempt. If the maximum retry count is -1, the Batch service retries the Task without limit." + }, + "maxWallClockTime": { + "$dynamic": false, + "type": "string", + "format": "duration", + "title": "The maximum elapsed time that the Task may run, measured from the time the Task starts.", + "markdownDescription": "If the Task does not complete within the time limit, the Batch service terminates it. If this is not specified, there is no time limit on how long the Task may run." + }, + "retentionTime": { + "$dynamic": false, + "type": "string", + "format": "duration", + "title": "The minimum time to retain the Task directory on the Compute Node where it ran, from the time it completes execution.", + "markdownDescription": "After this time, the Batch service may delete the Task directory and all its contents. The default is 7 days, i.e. the Task directory will be retained for 7 days unless the Compute Node is removed or the Job is deleted." + } + } + }, + "io.kestra.plugin.azure.batch.models.TaskContainerSettings": { + "type": "object", + "properties": { + "containerRunOptions": { + "$dynamic": true, + "type": "string", + "title": "Additional options to the container create command.", + "markdownDescription": "These additional options are supplied as arguments to the `docker create` command, in addition to those controlled by the Batch Service." + }, + "imageName": { + "$dynamic": true, + "type": "string", + "title": "The Image to use to create the container in which the Task will run.", + "markdownDescription": "This is the full Image reference, as would be specified to `docker pull`. If no tag is provided as part of the Image name, the tag `:latest` is used as a default." + }, + "registry": { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.azure.batch.models.ContainerRegistry" + }, + { + "$dynamic": false, + "title": "The private registry which contains the container image.", + "markdownDescription": "This setting can be omitted if was already provided at Pool creation." + } + ] + }, + "workingDirectory": { + "$dynamic": false, + "type": "string", + "enum": ["TASK_WORKING_DIRECTORY", "CONTAINER_IMAGE_DEFAULT"], + "title": "The location of the container Task working directory.", + "markdownDescription": "The default is `taskWorkingDirectory`. Possible values include: `taskWorkingDirectory`, `containerImageDefault`." + } + }, + "required": ["imageName"] + }, + "io.kestra.plugin.azure.batch.pool.Resize": { + "type": "object", + "properties": { + "accessKey": { + "type": "string" + }, + "account": { + "type": "string" + }, + "allowFailure": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "description": { + "type": "string" + }, + "disabled": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "endpoint": { + "$dynamic": true, + "type": "string", + "title": "The blob service endpoint." + }, + "id": { + "type": "string", + "minLength": 1, + "pattern": "^[a-zA-Z0-9][a-zA-Z0-9_-]*" + }, + "logLevel": { + "type": "string", + "enum": ["ERROR", "WARN", "INFO", "DEBUG", "TRACE"] + }, + "poolId": { + "$dynamic": true, + "type": "string", + "title": "The ID of the pool." + }, + "retry": { + "oneOf": [ + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Constant-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Exponential-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Random-2" + } + ] + }, + "targetDedicatedNodes": { + "$dynamic": true, + "type": "integer", + "title": "The desired number of dedicated compute nodes in the pool.", + "default": 0, + "markdownDescription": "Default value is : `0`" + }, + "targetLowPriorityNodes": { + "$dynamic": true, + "type": "integer", + "title": "The desired number of low-priority compute nodes in the pool.", + "default": 0, + "markdownDescription": "Default value is : `0`" + }, + "timeout": { + "type": "string", + "format": "duration" + }, + "type": { + "const": "io.kestra.plugin.azure.batch.pool.Resize" + }, + "workerGroup": { + "$ref": "#/definitions/io.kestra.core.models.tasks.WorkerGroup" + } + }, + "required": ["endpoint", "id", "poolId", "type"], + "title": "Resize a Azure Batch pool.", + "markdownDescription": "##### Examples\n\u003E \n```yaml\npoolId: \"\u003Cyour-pool-id\u003E\"\ntargetDedicatedNodes: \"12\"\n```" + }, + "io.kestra.plugin.azure.cli.AzCLI": { + "type": "object", + "properties": { + "allowFailure": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "commands": { + "$dynamic": true, + "title": "The commands to run.", + "minItems": 1, + "type": "array", + "items": { + "$dynamic": true, + "type": "string" + } + }, + "containerImage": { + "$dynamic": true, + "type": "string", + "title": "The task runner container image, only used if the task runner is container-based.", + "default": "mcr.microsoft.com/azure-cli", + "markdownDescription": "Default value is : `mcr.microsoft.com/azure-cli`" + }, + "description": { + "type": "string" + }, + "disabled": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "docker": { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.scripts.exec.scripts.models.DockerOptions" + }, + { + "$deprecated": true, + "$dynamic": false, + "title": "Deprecated, use 'taskRunner' instead" + } + ] + }, + "env": { + "$dynamic": true, + "type": "object", + "title": "Additional environment variables for the current process.", + "additionalProperties": { + "type": "string" + } + }, + "id": { + "type": "string", + "minLength": 1, + "pattern": "^[a-zA-Z0-9][a-zA-Z0-9_-]*" + }, + "inputFiles": { + "$dynamic": true, + "title": "The files to create on the local filesystem. It can be a map or a JSON object.", + "oneOf": [ + { + "type": "object" + }, + { + "type": "string" + } + ] + }, + "logLevel": { + "type": "string", + "enum": ["ERROR", "WARN", "INFO", "DEBUG", "TRACE"] + }, + "namespaceFiles": { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.core.models.tasks.NamespaceFiles" + }, + { + "$dynamic": false, + "title": "Inject namespace files.", + "markdownDescription": "Inject namespace files to this task. When enabled, it will, by default, load all namespace files into the working directory. However, you can use the `include` or `exclude` properties to limit which namespace files will be injected." + } + ] + }, + "outputFiles": { + "$dynamic": true, + "title": "The files from the local filesystem to send to Kestra's internal storage.", + "markdownDescription": "Must be a list of [glob](https://en.wikipedia.org/wiki/Glob_(programming)) expressions relative to the current working directory, some examples: `my-dir/**`, `my-dir/*/**` or `my-dir/my-file.txt`.", + "type": "array", + "items": { + "$dynamic": true, + "type": "string" + } + }, + "password": { + "$dynamic": true, + "type": "string", + "title": "Account password." + }, + "retry": { + "oneOf": [ + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Constant-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Exponential-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Random-2" + } + ] + }, + "servicePrincipal": { + "$dynamic": false, + "type": "boolean", + "title": "Is the account a service principal?", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "taskRunner": { + "oneOf": [ + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.scripts.runner.docker.Docker" + }, + { + "$dynamic": false, + "title": "The task runner to use.", + "markdownDescription": "Task runners are provided by plugins, each have their own properties." + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.runner.Process" + }, + { + "$dynamic": false, + "title": "The task runner to use.", + "markdownDescription": "Task runners are provided by plugins, each have their own properties." + } + ] + } + ] + }, + "tenant": { + "$dynamic": true, + "type": "string", + "title": "Tenant ID to use." + }, + "timeout": { + "type": "string", + "format": "duration" + }, + "type": { + "const": "io.kestra.plugin.azure.cli.AzCLI" + }, + "username": { + "$dynamic": true, + "type": "string", + "title": "Account username. If set, it will use `az login` before running the commands." + }, + "workerGroup": { + "$ref": "#/definitions/io.kestra.core.models.tasks.WorkerGroup" + } + }, + "required": ["commands", "id", "type"], + "title": "Execute one or more `az` commands from a Command Line Interface. We recommend using a Service Principal and a Client Secret for authentication. To create a Service Principal and Client Secret, you can use the following [documentation](https://registry.terraform.io/providers/hashicorp/azurerm/latest/docs/guides/service_principal_client_secret). Then, use the generated `appId` as the `username` and the generated `password` as the `password` in the Kestra task configuration. Finally, pass the returned `tenantId` to the `tenant` field in the Kestra task configuration and set `servicePrincipal` to `true`.", + "markdownDescription": "##### Examples\n\u003E List Azure Active Directory users for the currently authenticated tenant.\n```yaml\nusername: \"\u003CappId\u003E\"\npassword: \"{{ secret('AZURE_SERVICE_PRINCIPAL_PASSWORD') }}\"\ntenant: \"{{ secret('AZURE_TENANT_ID') }}\"\ncommands:\n - az ad user list\n```\n\n\u003E List all successfully provisioned VMs using a Service Principal authentication.\n```yaml\nusername: \"\u003Capp-id\u003E\"\npassword: \"{{ secret('AZURE_SERVICE_PRINCIPAL_PASSWORD') }}\"\ntenant: \"\u003Ctenant-id\u003E\"\nservicePrincipal: true\ncommands:\n - az vm list --query \"[?provisioningState=='Succeeded']\"\n```\n\n\u003E Command without authentication.\n```yaml\ncommands:\n - az --help\n```\n\n\u003E List supported regions for the current Azure subscription.\n```yaml\nid: azureRegions\nnamespace: company.team\ntasks:\n - id: list-locations\n type: io.kestra.plugin.azure.cli.AzCLI\n tenant: {{ secret('AZURE_TENANT_ID') }}\n username: {{ secret('AZURE_SERVICE_PRINCIPAL_CLIENT_ID') }}\n password: {{ secret('AZURE_SERVICE_PRINCIPAL_PASSWORD') }}\n servicePrincipal: true\n commands:\n - az account list-locations --query \"[].{Region:name}\" -o table\n```" + }, + "io.kestra.plugin.azure.eventhubs.Consume": { + "type": "object", + "properties": { + "allowFailure": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "bodyDeserializer": { + "$dynamic": false, + "type": "string", + "enum": ["STRING", "BINARY", "ION", "JSON"], + "title": "The Deserializer to be used for serializing the event value.", + "default": "STRING", + "markdownDescription": "Default value is : `STRING`" + }, + "bodyDeserializerProperties": { + "$dynamic": false, + "type": "object", + "title": "The config properties to be passed to the Deserializer.", + "default": {}, + "markdownDescription": "Configs in key/value pairs.\n\nDefault value is : `{}`" + }, + "checkpointStoreProperties": { + "$dynamic": false, + "type": "object", + "title": "The config properties to be used for configuring the BlobCheckpointStore.", + "default": {}, + "markdownDescription": "Azure Event Hubs Checkpoint Store can be used for storing checkpoints while processing events from Azure Event Hubs.\n\nDefault value is : `{}`" + }, + "clientMaxRetries": { + "$dynamic": false, + "type": "integer", + "title": "The maximum number of retry attempts before considering a client operation to have failed.", + "default": 5, + "markdownDescription": "Default value is : `5`" + }, + "clientRetryDelay": { + "$dynamic": false, + "type": "integer", + "title": "The maximum permissible delay between retry attempts in milliseconds.", + "default": 500, + "markdownDescription": "Default value is : `500`" + }, + "connectionString": { + "$dynamic": true, + "type": "string", + "title": "Connection string of the Storage Account." + }, + "consumerGroup": { + "$dynamic": false, + "type": "string", + "title": "The consumer group.", + "default": "$Default", + "markdownDescription": "Default value is : `$Default`" + }, + "customEndpointAddress": { + "$dynamic": true, + "type": "string", + "title": "Custom endpoint address when connecting to the Event Hubs service." + }, + "description": { + "type": "string" + }, + "disabled": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "enqueueTime": { + "$dynamic": false, + "type": "string", + "title": "The ISO Datetime to be used when `PartitionStartingPosition` is configured to `INSTANT`.", + "markdownDescription": "Configs in key/value pairs." + }, + "eventHubName": { + "$dynamic": true, + "type": "string", + "title": "The event hub to read from." + }, + "id": { + "type": "string", + "minLength": 1, + "pattern": "^[a-zA-Z0-9][a-zA-Z0-9_-]*" + }, + "logLevel": { + "type": "string", + "enum": ["ERROR", "WARN", "INFO", "DEBUG", "TRACE"] + }, + "maxBatchSizePerPartition": { + "$dynamic": false, + "type": "integer", + "title": "The maximum number of events to consume per event hub partition per poll.", + "default": 50, + "markdownDescription": "Default value is : `50`" + }, + "maxDuration": { + "$dynamic": false, + "type": "string", + "format": "duration", + "title": "The max time duration to wait to receive events from all partitions.", + "default": 10, + "markdownDescription": "Default value is : `10.000000000`" + }, + "maxWaitTimePerPartition": { + "$dynamic": false, + "type": "string", + "format": "duration", + "title": "The max time duration to wait to receive a batch of events up to the `maxBatchSizePerPartition`.", + "default": 5, + "markdownDescription": "Default value is : `5.000000000`" + }, + "namespace": { + "$dynamic": true, + "type": "string", + "title": "Namespace name of the event hub to connect to." + }, + "partitionStartingPosition": { + "$dynamic": false, + "type": "string", + "enum": ["EARLIEST", "LATEST", "INSTANT"], + "title": "The starting position.", + "default": "EARLIEST", + "markdownDescription": "Default value is : `EARLIEST`" + }, + "retry": { + "oneOf": [ + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Constant-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Exponential-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Random-2" + } + ] + }, + "sasToken": { + "$dynamic": true, + "type": "string", + "title": "The SAS token to use for authenticating requests.", + "markdownDescription": "This string should only be the query parameters (with or without a leading '?') and not a full URL." + }, + "sharedKeyAccountAccessKey": { + "$dynamic": true, + "type": "string", + "title": "Shared Key access key for authenticating requests." + }, + "sharedKeyAccountName": { + "$dynamic": true, + "type": "string", + "title": "Shared Key account name for authenticating requests." + }, + "timeout": { + "type": "string", + "format": "duration" + }, + "type": { + "const": "io.kestra.plugin.azure.eventhubs.Consume" + }, + "workerGroup": { + "$ref": "#/definitions/io.kestra.core.models.tasks.WorkerGroup" + } + }, + "required": ["eventHubName", "id", "namespace", "type"], + "title": "Consume events from Azure Event Hubs.", + "markdownDescription": "##### Examples\n\u003E Consume data events from Azure EventHubs.\n```yaml\nid: ConsumeDataEventsFromAzureEventHubs\nnamespace: company.team\ntasks:\n- id: consumeFromEventHubs\n type: io.kestra.plugin.azure.eventhubs.Consume\n eventHubName: my-eventhub\n namespace: my-eventhub-namespace\n connectionString: \"{{ secret('EVENTHUBS_CONNECTION') }}\"\n bodyDeserializer: JSON\n consumerGroup: \"$Default\"\n checkpointStoreProperties:\n containerName: kestra\n connectionString: \"{{ secret('BLOB_CONNECTION') }}\"\n\n```" + }, + "io.kestra.plugin.azure.eventhubs.Produce": { + "type": "object", + "properties": { + "allowFailure": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "bodyContentType": { + "$dynamic": false, + "type": "string", + "title": "The MIME type describing the event data", + "markdownDescription": "The MIME type describing the data contained in event body allowing consumers to make informed decisions for inspecting and processing the event." + }, + "bodySerializer": { + "$dynamic": false, + "type": "string", + "enum": ["STRING", "BINARY", "ION", "JSON"], + "title": "The Serializer to be used for serializing the event value.", + "default": "STRING", + "markdownDescription": "Default value is : `STRING`" + }, + "bodySerializerProperties": { + "$dynamic": false, + "type": "object", + "title": "The config properties to be passed to the Serializer.", + "default": {}, + "markdownDescription": "Configs in key/value pairs.\n\nDefault value is : `{}`" + }, + "clientMaxRetries": { + "$dynamic": false, + "type": "integer", + "title": "The maximum number of retry attempts before considering a client operation to have failed.", + "default": 5, + "markdownDescription": "Default value is : `5`" + }, + "clientRetryDelay": { + "$dynamic": false, + "type": "integer", + "title": "The maximum permissible delay between retry attempts in milliseconds.", + "default": 500, + "markdownDescription": "Default value is : `500`" + }, + "connectionString": { + "$dynamic": true, + "type": "string", + "title": "Connection string of the Storage Account." + }, + "customEndpointAddress": { + "$dynamic": true, + "type": "string", + "title": "Custom endpoint address when connecting to the Event Hubs service." + }, + "description": { + "type": "string" + }, + "disabled": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "eventHubName": { + "$dynamic": true, + "type": "string", + "title": "The event hub to read from." + }, + "eventProperties": { + "$dynamic": false, + "type": "object", + "title": "The event properties", + "default": {}, + "markdownDescription": "The event properties which may be used for passing metadata associated with the event body during Event Hubs operations.\n\nDefault value is : `{}`" + }, + "from": { + "$dynamic": true, + "title": "The content of the message to be sent to EventHub", + "markdownDescription": "Can be an internal storage URI, a map (i.e. a list of key-value pairs) or a list of maps. The following keys are supported: `from`, `contentType`, `properties`.", + "oneOf": [ + { + "type": "string" + }, + { + "type": "array", + "items": {} + }, + { + "type": "object" + } + ] + }, + "id": { + "type": "string", + "minLength": 1, + "pattern": "^[a-zA-Z0-9][a-zA-Z0-9_-]*" + }, + "logLevel": { + "type": "string", + "enum": ["ERROR", "WARN", "INFO", "DEBUG", "TRACE"] + }, + "maxBatchSizeInBytes": { + "$dynamic": false, + "type": "integer", + "title": "The maximum size for batches of events, in bytes." + }, + "maxEventsPerBatch": { + "$dynamic": false, + "type": "integer", + "title": "The maximum number of events per batches.", + "default": 1000, + "markdownDescription": "Default value is : `1000`" + }, + "namespace": { + "$dynamic": true, + "type": "string", + "title": "Namespace name of the event hub to connect to." + }, + "partitionKey": { + "$dynamic": false, + "type": "string", + "title": "The hashing key to be provided for the batches of events.", + "markdownDescription": "Events with the same `partitionKey` are hashed and sent to the same partition. The provided `partitionKey` will be used for all the events sent by the `Produce` task." + }, + "retry": { + "oneOf": [ + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Constant-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Exponential-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Random-2" + } + ] + }, + "sasToken": { + "$dynamic": true, + "type": "string", + "title": "The SAS token to use for authenticating requests.", + "markdownDescription": "This string should only be the query parameters (with or without a leading '?') and not a full URL." + }, + "sharedKeyAccountAccessKey": { + "$dynamic": true, + "type": "string", + "title": "Shared Key access key for authenticating requests." + }, + "sharedKeyAccountName": { + "$dynamic": true, + "type": "string", + "title": "Shared Key account name for authenticating requests." + }, + "timeout": { + "type": "string", + "format": "duration" + }, + "type": { + "const": "io.kestra.plugin.azure.eventhubs.Produce" + }, + "workerGroup": { + "$ref": "#/definitions/io.kestra.core.models.tasks.WorkerGroup" + } + }, + "required": ["eventHubName", "from", "id", "namespace", "type"], + "title": "Publish events to Azure Event Hubs.", + "markdownDescription": "##### Examples\n\u003E Publish a file as events into Azure EventHubs.\n```yaml\nid: SendEventsIntoAzureEventHubs\nnamespace: company.team\ninputs:\n - type: FILE\n id: file\n description: a CSV file with columns id, username, tweet, and timestamp\ntasks:\n - id: readCsvFile\n type: io.kestra.plugin.serdes.csv.CsvToIon\n from: \"{{ inputs.file }}\"\n - id: transformRowToJson\n type: io.kestra.plugin.scripts.nashorn.FileTransform\n from: \"{{ outputs.readCsvFile.uri }}\"\n script: |\n var result = {\n \"body\": {\n \"username\": row.username,\n \"tweet\": row.tweet\n }\n };\n row = result\n - id: sendToEventHubs\n type: io.kestra.plugin.azure.eventhubs.Produce\n from: \"{{ outputs.transformRowToJson.uri }}\"\n eventHubName: my-eventhub\n namespace: my-event-hub-namespace\n connectionString: \"{{ secret('EVENTHUBS_CONNECTION') }}\"\n maxBatchSizeInBytes: 4096\n maxEventsPerBatch: 100\n bodySerializer: \"JSON\"\n bodyContentType: application/json\n eventProperties:\n source: kestra\n\n```" + }, + "io.kestra.plugin.azure.eventhubs.RealtimeTrigger": { + "type": "object", + "properties": { + "bodyDeserializer": { + "$dynamic": false, + "type": "string", + "enum": ["STRING", "BINARY", "ION", "JSON"], + "title": "The Deserializer to be used for serializing the event value.", + "default": "STRING", + "markdownDescription": "Default value is : `STRING`" + }, + "bodyDeserializerProperties": { + "$dynamic": false, + "type": "object", + "title": "The config properties to be passed to the Deserializer.", + "default": {}, + "markdownDescription": "Configs in key/value pairs.\n\nDefault value is : `{}`" + }, + "checkpointStoreProperties": { + "$dynamic": false, + "type": "object", + "title": "The config properties to be used for configuring the BlobCheckpointStore.", + "default": {}, + "markdownDescription": "Azure Event Hubs Checkpoint Store can be used for storing checkpoints while processing events from Azure Event Hubs.\n\nDefault value is : `{}`" + }, + "clientMaxRetries": { + "$dynamic": false, + "type": "integer", + "title": "The maximum number of retry attempts before considering a client operation to have failed.", + "default": 5, + "markdownDescription": "Default value is : `5`" + }, + "clientRetryDelay": { + "$dynamic": false, + "type": "integer", + "title": "The maximum permissible delay between retry attempts in milliseconds.", + "default": 500, + "markdownDescription": "Default value is : `500`" + }, + "conditions": { + "$dynamic": false, + "title": "List of conditions in order to limit the flow trigger.", + "type": "array", + "items": { + "oneOf": [ + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.DateTimeBetweenCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.DayWeekCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.DayWeekInMonthCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.ExecutionFlowCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.ExecutionLabelsCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.ExecutionNamespaceCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.ExecutionOutputsCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.ExecutionStatusCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.ExpressionCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.FlowCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.FlowNamespaceCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.HasRetryAttemptCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.MultipleCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.NotCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.OrCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.PublicHolidayCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.TimeBetweenCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.WeekendCondition" + }, + { + "$dynamic": false + } + ] + } + ] + } + }, + "connectionString": { + "$dynamic": true, + "type": "string", + "title": "Connection string of the Storage Account." + }, + "consumerGroup": { + "$dynamic": false, + "type": "string", + "title": "The consumer group.", + "default": "$Default", + "markdownDescription": "Default value is : `$Default`" + }, + "customEndpointAddress": { + "$dynamic": true, + "type": "string", + "title": "Custom endpoint address when connecting to the Event Hubs service." + }, + "description": { + "type": "string" + }, + "disabled": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "enqueueTime": { + "$dynamic": false, + "type": "string", + "title": "The ISO Datetime to be used when `PartitionStartingPosition` is configured to `INSTANT`.", + "markdownDescription": "Configs in key/value pairs." + }, + "eventHubName": { + "$dynamic": true, + "type": "string", + "title": "The event hub to read from." + }, + "id": { + "type": "string", + "title": "A unique ID for the whole flow.", + "minLength": 1, + "pattern": "^[a-zA-Z0-9][a-zA-Z0-9_-]*" + }, + "labels": { + "title": "The labels to pass to the execution created.", + "type": "array", + "items": { + "$ref": "#/definitions/io.kestra.core.models.Label" + } + }, + "logLevel": { + "type": "string", + "enum": ["ERROR", "WARN", "INFO", "DEBUG", "TRACE"] + }, + "namespace": { + "$dynamic": true, + "type": "string", + "title": "Namespace name of the event hub to connect to." + }, + "partitionStartingPosition": { + "$dynamic": false, + "type": "string", + "enum": ["EARLIEST", "LATEST", "INSTANT"], + "title": "The starting position.", + "default": "EARLIEST", + "markdownDescription": "Default value is : `EARLIEST`" + }, + "sasToken": { + "$dynamic": true, + "type": "string", + "title": "The SAS token to use for authenticating requests.", + "markdownDescription": "This string should only be the query parameters (with or without a leading '?') and not a full URL." + }, + "sharedKeyAccountAccessKey": { + "$dynamic": true, + "type": "string", + "title": "Shared Key access key for authenticating requests." + }, + "sharedKeyAccountName": { + "$dynamic": true, + "type": "string", + "title": "Shared Key account name for authenticating requests." + }, + "stopAfter": { + "$dynamic": false, + "title": "List of execution states after which a trigger should be stopped (a.k.a. disabled).", + "type": "array", + "items": { + "$dynamic": false, + "type": "string", + "enum": [ + "CREATED", + "RUNNING", + "PAUSED", + "RESTARTED", + "KILLING", + "SUCCESS", + "WARNING", + "FAILED", + "KILLED", + "CANCELLED", + "QUEUED", + "RETRYING", + "RETRIED" + ] + } + }, + "type": { + "const": "io.kestra.plugin.azure.eventhubs.RealtimeTrigger" + }, + "workerGroup": { + "$ref": "#/definitions/io.kestra.core.models.tasks.WorkerGroup" + } + }, + "required": ["eventHubName", "id", "namespace", "type"], + "title": "Consume a message in real-time from a Azure Event Hubs and create one execution per message.", + "markdownDescription": "If you would like to consume multiple messages processed within a given time frame and process them in batch, you can use the [io.kestra.plugin.azure.eventhubs.Trigger](https://kestra.io/plugins/plugin-azure/triggers/io.kestra.plugin.azure.eventhubs.trigger) instead.##### Examples\n\u003E Trigger flow based on events received from Azure Event Hubs in real-time.\n```yaml\nid: TriggerFromAzureEventHubs\nnamespace: company.team\ntasks:\n - id: hello\n type: io.kestra.plugin.core.log.Log\n message: Hello there! I received {{ trigger.body }} from Azure EventHubs!\ntriggers:\n - id: readFromEventHubs\n type: \"io.kestra.plugin.azure.eventhubs.RealtimeTrigger\"\n eventHubName: my-eventhub\n namespace: my-eventhub-namespace\n connectionString: \"{{ secret('EVENTHUBS_CONNECTION') }}\"\n bodyDeserializer: JSON\n consumerGroup: \"$Default\"\n checkpointStoreProperties:\n containerName: kestra\n connectionString: \"{{ secret('BLOB_CONNECTION') }}\"\n\n```" + }, + "io.kestra.plugin.azure.eventhubs.Trigger": { + "type": "object", + "properties": { + "bodyDeserializer": { + "$dynamic": false, + "type": "string", + "enum": ["STRING", "BINARY", "ION", "JSON"], + "title": "The Deserializer to be used for serializing the event value.", + "default": "STRING", + "markdownDescription": "Default value is : `STRING`" + }, + "bodyDeserializerProperties": { + "$dynamic": false, + "type": "object", + "title": "The config properties to be passed to the Deserializer.", + "default": {}, + "markdownDescription": "Configs in key/value pairs.\n\nDefault value is : `{}`" + }, + "checkpointStoreProperties": { + "$dynamic": false, + "type": "object", + "title": "The config properties to be used for configuring the BlobCheckpointStore.", + "default": {}, + "markdownDescription": "Azure Event Hubs Checkpoint Store can be used for storing checkpoints while processing events from Azure Event Hubs.\n\nDefault value is : `{}`" + }, + "clientMaxRetries": { + "$dynamic": false, + "type": "integer", + "title": "The maximum number of retry attempts before considering a client operation to have failed.", + "default": 5, + "markdownDescription": "Default value is : `5`" + }, + "clientRetryDelay": { + "$dynamic": false, + "type": "integer", + "title": "The maximum permissible delay between retry attempts in milliseconds.", + "default": 500, + "markdownDescription": "Default value is : `500`" + }, + "conditions": { + "$dynamic": false, + "title": "List of conditions in order to limit the flow trigger.", + "type": "array", + "items": { + "oneOf": [ + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.DateTimeBetweenCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.DayWeekCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.DayWeekInMonthCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.ExecutionFlowCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.ExecutionLabelsCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.ExecutionNamespaceCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.ExecutionOutputsCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.ExecutionStatusCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.ExpressionCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.FlowCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.FlowNamespaceCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.HasRetryAttemptCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.MultipleCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.NotCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.OrCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.PublicHolidayCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.TimeBetweenCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.WeekendCondition" + }, + { + "$dynamic": false + } + ] + } + ] + } + }, + "connectionString": { + "$dynamic": true, + "type": "string", + "title": "Connection string of the Storage Account." + }, + "consumerGroup": { + "$dynamic": false, + "type": "string", + "title": "The consumer group.", + "default": "$Default", + "markdownDescription": "Default value is : `$Default`" + }, + "customEndpointAddress": { + "$dynamic": true, + "type": "string", + "title": "Custom endpoint address when connecting to the Event Hubs service." + }, + "description": { + "type": "string" + }, + "disabled": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "enqueueTime": { + "$dynamic": false, + "type": "string", + "title": "The ISO Datetime to be used when `PartitionStartingPosition` is configured to `INSTANT`.", + "markdownDescription": "Configs in key/value pairs." + }, + "eventHubName": { + "$dynamic": true, + "type": "string", + "title": "The event hub to read from." + }, + "id": { + "type": "string", + "title": "A unique ID for the whole flow.", + "minLength": 1, + "pattern": "^[a-zA-Z0-9][a-zA-Z0-9_-]*" + }, + "interval": { + "$dynamic": false, + "type": "string", + "format": "duration", + "title": "Interval between polling.", + "default": 60, + "markdownDescription": "The interval between 2 different polls of schedule, this can avoid to overload the remote system with too many calls. For most of the triggers that depend on external systems, a minimal interval must be at least PT30S.\nSee [ISO_8601 Durations](https://en.wikipedia.org/wiki/ISO_8601#Durations) for more information of available interval values.\n\nDefault value is : `60.000000000`" + }, + "labels": { + "title": "The labels to pass to the execution created.", + "type": "array", + "items": { + "$ref": "#/definitions/io.kestra.core.models.Label" + } + }, + "logLevel": { + "type": "string", + "enum": ["ERROR", "WARN", "INFO", "DEBUG", "TRACE"] + }, + "maxBatchSizePerPartition": { + "$dynamic": false, + "type": "integer", + "title": "The maximum number of events to consume per event hub partition per poll.", + "default": 50, + "markdownDescription": "Default value is : `50`" + }, + "maxDuration": { + "$dynamic": false, + "type": "string", + "format": "duration", + "title": "The max time duration to wait to receive events from all partitions.", + "default": 10, + "markdownDescription": "Default value is : `10.000000000`" + }, + "maxWaitTimePerPartition": { + "$dynamic": false, + "type": "string", + "format": "duration", + "title": "The max time duration to wait to receive a batch of events up to the `maxBatchSizePerPartition`.", + "default": 5, + "markdownDescription": "Default value is : `5.000000000`" + }, + "namespace": { + "$dynamic": true, + "type": "string", + "title": "Namespace name of the event hub to connect to." + }, + "partitionStartingPosition": { + "$dynamic": false, + "type": "string", + "enum": ["EARLIEST", "LATEST", "INSTANT"], + "title": "The starting position.", + "default": "EARLIEST", + "markdownDescription": "Default value is : `EARLIEST`" + }, + "sasToken": { + "$dynamic": true, + "type": "string", + "title": "The SAS token to use for authenticating requests.", + "markdownDescription": "This string should only be the query parameters (with or without a leading '?') and not a full URL." + }, + "sharedKeyAccountAccessKey": { + "$dynamic": true, + "type": "string", + "title": "Shared Key access key for authenticating requests." + }, + "sharedKeyAccountName": { + "$dynamic": true, + "type": "string", + "title": "Shared Key account name for authenticating requests." + }, + "stopAfter": { + "$dynamic": false, + "title": "List of execution states after which a trigger should be stopped (a.k.a. disabled).", + "type": "array", + "items": { + "$dynamic": false, + "type": "string", + "enum": [ + "CREATED", + "RUNNING", + "PAUSED", + "RESTARTED", + "KILLING", + "SUCCESS", + "WARNING", + "FAILED", + "KILLED", + "CANCELLED", + "QUEUED", + "RETRYING", + "RETRIED" + ] + } + }, + "type": { + "const": "io.kestra.plugin.azure.eventhubs.Trigger" + }, + "workerGroup": { + "$ref": "#/definitions/io.kestra.core.models.tasks.WorkerGroup" + } + }, + "required": ["eventHubName", "id", "namespace", "type"], + "title": "Consume messages periodically from Azure Event Hubs and create one execution per batch.", + "markdownDescription": "If you would like to consume each message from Azure Event Hubs in real-time and create one execution per message, you can use the [io.kestra.plugin.azure.eventhubs.RealtimeTrigger](https://kestra.io/plugins/plugin-azure/triggers/io.kestra.plugin.azure.eventhubs.realtimetrigger) instead.##### Examples\n\u003E Trigger flow based on events received from Azure Event Hubs in batch.\n```yaml\nid: TriggerFromAzureEventHubs\nnamespace: company.team\ntasks:\n - id: hello\n type: io.kestra.plugin.core.log.Log\n message: Hello there! I received {{ trigger.eventsCount }} from Azure EventHubs!\ntriggers:\n - id: readFromEventHubs\n type: \"io.kestra.plugin.azure.eventhubs.Trigger\"\n interval: PT30S\n eventHubName: my-eventhub\n namespace: my-eventhub-namespace\n connectionString: \"{{ secret('EVENTHUBS_CONNECTION') }}\"\n bodyDeserializer: JSON\n consumerGroup: \"$Default\"\n checkpointStoreProperties:\n containerName: kestra\n connectionString: \"{{ secret('BLOB_CONNECTION') }}\"\n\n```" + }, + "io.kestra.plugin.azure.storage.blob.Copy": { + "type": "object", + "properties": { + "allowFailure": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "connectionString": { + "$dynamic": true, + "type": "string", + "title": "Connection string of the Storage Account." + }, + "delete": { + "$dynamic": false, + "type": "boolean", + "title": "Whether to delete the source file after copy.", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "description": { + "type": "string" + }, + "disabled": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "endpoint": { + "$dynamic": true, + "type": "string", + "title": "The blob service endpoint." + }, + "from": { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.azure.storage.blob.Copy-CopyObject" + }, + { + "$dynamic": true, + "title": "The source from where the file should be copied." + } + ] + }, + "id": { + "type": "string", + "minLength": 1, + "pattern": "^[a-zA-Z0-9][a-zA-Z0-9_-]*" + }, + "logLevel": { + "type": "string", + "enum": ["ERROR", "WARN", "INFO", "DEBUG", "TRACE"] + }, + "retry": { + "oneOf": [ + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Constant-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Exponential-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Random-2" + } + ] + }, + "sasToken": { + "$dynamic": true, + "type": "string", + "title": "The SAS token to use for authenticating requests.", + "markdownDescription": "This string should only be the query parameters (with or without a leading '?') and not a full URL." + }, + "sharedKeyAccountAccessKey": { + "$dynamic": true, + "type": "string", + "title": "Shared Key access key for authenticating requests." + }, + "sharedKeyAccountName": { + "$dynamic": true, + "type": "string", + "title": "Shared Key account name for authenticating requests." + }, + "timeout": { + "type": "string", + "format": "duration" + }, + "to": { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.azure.storage.blob.Copy-CopyObject" + }, + { + "$dynamic": false, + "title": "The destination to copy the file to." + } + ] + }, + "type": { + "const": "io.kestra.plugin.azure.storage.blob.Copy" + }, + "workerGroup": { + "$ref": "#/definitions/io.kestra.core.models.tasks.WorkerGroup" + } + }, + "required": ["endpoint", "from", "id", "to", "type"], + "title": "Copy a file between Azure Blob Storage.", + "markdownDescription": "##### Examples\n\u003E \n```yaml\nfrom:\n container: \"my-bucket\"\n key: \"path/to/file\"\nto:\n container: \"my-bucket2\"\n key: \"path/to/file2\"\n```" + }, + "io.kestra.plugin.azure.storage.blob.Copy-CopyObject": { + "type": "object", + "properties": { + "container": { + "$dynamic": true, + "type": "string", + "title": "The blob container." + }, + "name": { + "$dynamic": true, + "type": "string", + "title": "The full blob path on the container." + } + }, + "required": ["container", "name"] + }, + "io.kestra.plugin.azure.storage.blob.Delete": { + "type": "object", + "properties": { + "allowFailure": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "connectionString": { + "$dynamic": true, + "type": "string", + "title": "Connection string of the Storage Account." + }, + "container": { + "$dynamic": true, + "type": "string", + "title": "The blob container." + }, + "description": { + "type": "string" + }, + "disabled": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "endpoint": { + "$dynamic": true, + "type": "string", + "title": "The blob service endpoint." + }, + "id": { + "type": "string", + "minLength": 1, + "pattern": "^[a-zA-Z0-9][a-zA-Z0-9_-]*" + }, + "logLevel": { + "type": "string", + "enum": ["ERROR", "WARN", "INFO", "DEBUG", "TRACE"] + }, + "name": { + "$dynamic": true, + "type": "string", + "title": "The full blob path on the container." + }, + "retry": { + "oneOf": [ + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Constant-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Exponential-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Random-2" + } + ] + }, + "sasToken": { + "$dynamic": true, + "type": "string", + "title": "The SAS token to use for authenticating requests.", + "markdownDescription": "This string should only be the query parameters (with or without a leading '?') and not a full URL." + }, + "sharedKeyAccountAccessKey": { + "$dynamic": true, + "type": "string", + "title": "Shared Key access key for authenticating requests." + }, + "sharedKeyAccountName": { + "$dynamic": true, + "type": "string", + "title": "Shared Key account name for authenticating requests." + }, + "timeout": { + "type": "string", + "format": "duration" + }, + "type": { + "const": "io.kestra.plugin.azure.storage.blob.Delete" + }, + "workerGroup": { + "$ref": "#/definitions/io.kestra.core.models.tasks.WorkerGroup" + } + }, + "required": ["container", "endpoint", "id", "name", "type"], + "title": "Delete a file from the Azure Blob Storage.", + "markdownDescription": "##### Examples\n\u003E \n```yaml\nendpoint: \"https://yourblob.blob.core.windows.net\"\nconnectionString: \"DefaultEndpointsProtocol=...==\"\ncontainer: \"mydata\"\nname: \"myblob\"\n```" + }, + "io.kestra.plugin.azure.storage.blob.DeleteList": { + "type": "object", + "properties": { + "allowFailure": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "concurrent": { + "$dynamic": false, + "type": "integer", + "title": "Number of concurrent parallel deletions.", + "minimum": 2 + }, + "connectionString": { + "$dynamic": true, + "type": "string", + "title": "Connection string of the Storage Account." + }, + "container": { + "$dynamic": true, + "type": "string", + "title": "The blob container." + }, + "delimiter": { + "$dynamic": true, + "type": "string", + "title": "The delimiter for blob hierarchy, \"/\" for hierarchy based on directories." + }, + "description": { + "type": "string" + }, + "disabled": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "endpoint": { + "$dynamic": true, + "type": "string", + "title": "The blob service endpoint." + }, + "errorOnEmpty": { + "$dynamic": true, + "type": "boolean", + "title": "Whether to raise an error if the file is not found.", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "filter": { + "type": "string", + "enum": ["FILES", "DIRECTORY", "BOTH"], + "title": "The filter for files or directories.", + "default": "FILES", + "markdownDescription": "Default value is : `FILES`" + }, + "id": { + "type": "string", + "minLength": 1, + "pattern": "^[a-zA-Z0-9][a-zA-Z0-9_-]*" + }, + "logLevel": { + "type": "string", + "enum": ["ERROR", "WARN", "INFO", "DEBUG", "TRACE"] + }, + "prefix": { + "$dynamic": true, + "type": "string", + "title": "Limits the response to keys that begin with the specified prefix." + }, + "regexp": { + "$dynamic": true, + "type": "string", + "title": "A regular expression to filter on the full key.", + "markdownDescription": "ex:\n`regExp: .*` to match all files\n`regExp: .*2020-01-0.\\\\.csv` to match files between 01 and 09 of january ending with `.csv`" + }, + "retry": { + "oneOf": [ + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Constant-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Exponential-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Random-2" + } + ] + }, + "sasToken": { + "$dynamic": true, + "type": "string", + "title": "The SAS token to use for authenticating requests.", + "markdownDescription": "This string should only be the query parameters (with or without a leading '?') and not a full URL." + }, + "sharedKeyAccountAccessKey": { + "$dynamic": true, + "type": "string", + "title": "Shared Key access key for authenticating requests." + }, + "sharedKeyAccountName": { + "$dynamic": true, + "type": "string", + "title": "Shared Key account name for authenticating requests." + }, + "timeout": { + "type": "string", + "format": "duration" + }, + "type": { + "const": "io.kestra.plugin.azure.storage.blob.DeleteList" + }, + "workerGroup": { + "$ref": "#/definitions/io.kestra.core.models.tasks.WorkerGroup" + } + }, + "required": ["container", "endpoint", "id", "type"], + "title": "Delete a list of keys from the Azure Blob Storage.", + "markdownDescription": "##### Examples\n\u003E \n```yaml\nendpoint: \"https://yourblob.blob.core.windows.net\"\nconnectionString: \"DefaultEndpointsProtocol=...==\"\ncontainer: \"mydata\"\nprefix: \"sub-dir\"\ndelimiter: \"/\"\n```" + }, + "io.kestra.plugin.azure.storage.blob.Download": { + "type": "object", + "properties": { + "allowFailure": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "connectionString": { + "$dynamic": true, + "type": "string", + "title": "Connection string of the Storage Account." + }, + "container": { + "$dynamic": true, + "type": "string", + "title": "The blob container." + }, + "description": { + "type": "string" + }, + "disabled": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "endpoint": { + "$dynamic": true, + "type": "string", + "title": "The blob service endpoint." + }, + "id": { + "type": "string", + "minLength": 1, + "pattern": "^[a-zA-Z0-9][a-zA-Z0-9_-]*" + }, + "logLevel": { + "type": "string", + "enum": ["ERROR", "WARN", "INFO", "DEBUG", "TRACE"] + }, + "name": { + "$dynamic": true, + "type": "string", + "title": "The full blob path on the container." + }, + "retry": { + "oneOf": [ + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Constant-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Exponential-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Random-2" + } + ] + }, + "sasToken": { + "$dynamic": true, + "type": "string", + "title": "The SAS token to use for authenticating requests.", + "markdownDescription": "This string should only be the query parameters (with or without a leading '?') and not a full URL." + }, + "sharedKeyAccountAccessKey": { + "$dynamic": true, + "type": "string", + "title": "Shared Key access key for authenticating requests." + }, + "sharedKeyAccountName": { + "$dynamic": true, + "type": "string", + "title": "Shared Key account name for authenticating requests." + }, + "timeout": { + "type": "string", + "format": "duration" + }, + "type": { + "const": "io.kestra.plugin.azure.storage.blob.Download" + }, + "workerGroup": { + "$ref": "#/definitions/io.kestra.core.models.tasks.WorkerGroup" + } + }, + "required": ["container", "endpoint", "id", "name", "type"], + "title": "Download a file from the Azure Blob Storage.", + "markdownDescription": "##### Examples\n\u003E \n```yaml\nendpoint: \"https://yourblob.blob.core.windows.net\"\nconnectionString: \"DefaultEndpointsProtocol=...==\"\ncontainer: \"mydata\"\nname: \"myblob\"\n```" + }, + "io.kestra.plugin.azure.storage.blob.Downloads": { + "type": "object", + "properties": { + "action": { + "$dynamic": true, + "type": "string", + "enum": ["MOVE", "DELETE", "NONE"], + "title": "The action to perform on the retrieved files. If using `NONE`, make sure to handle the files inside your flow to avoid infinite triggering." + }, + "allowFailure": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "connectionString": { + "$dynamic": true, + "type": "string", + "title": "Connection string of the Storage Account." + }, + "container": { + "$dynamic": true, + "type": "string", + "title": "The blob container." + }, + "delimiter": { + "$dynamic": true, + "type": "string", + "title": "The delimiter for blob hierarchy, \"/\" for hierarchy based on directories." + }, + "description": { + "type": "string" + }, + "disabled": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "endpoint": { + "$dynamic": true, + "type": "string", + "title": "The blob service endpoint." + }, + "filter": { + "type": "string", + "enum": ["FILES", "DIRECTORY", "BOTH"], + "title": "The filter for files or directories.", + "default": "FILES", + "markdownDescription": "Default value is : `FILES`" + }, + "id": { + "type": "string", + "minLength": 1, + "pattern": "^[a-zA-Z0-9][a-zA-Z0-9_-]*" + }, + "logLevel": { + "type": "string", + "enum": ["ERROR", "WARN", "INFO", "DEBUG", "TRACE"] + }, + "moveTo": { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.azure.storage.blob.Copy-CopyObject" + }, + { + "$dynamic": true, + "title": "The destination container and key." + } + ] + }, + "prefix": { + "$dynamic": true, + "type": "string", + "title": "Limits the response to keys that begin with the specified prefix." + }, + "regexp": { + "$dynamic": true, + "type": "string", + "title": "A regular expression to filter on the full key.", + "markdownDescription": "ex:\n`regExp: .*` to match all files\n`regExp: .*2020-01-0.\\\\.csv` to match files between 01 and 09 of january ending with `.csv`" + }, + "retry": { + "oneOf": [ + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Constant-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Exponential-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Random-2" + } + ] + }, + "sasToken": { + "$dynamic": true, + "type": "string", + "title": "The SAS token to use for authenticating requests.", + "markdownDescription": "This string should only be the query parameters (with or without a leading '?') and not a full URL." + }, + "sharedKeyAccountAccessKey": { + "$dynamic": true, + "type": "string", + "title": "Shared Key access key for authenticating requests." + }, + "sharedKeyAccountName": { + "$dynamic": true, + "type": "string", + "title": "Shared Key account name for authenticating requests." + }, + "timeout": { + "type": "string", + "format": "duration" + }, + "type": { + "const": "io.kestra.plugin.azure.storage.blob.Downloads" + }, + "workerGroup": { + "$ref": "#/definitions/io.kestra.core.models.tasks.WorkerGroup" + } + }, + "required": ["action", "container", "endpoint", "id", "type"], + "title": "Downloads files from the Azure Blob Storage.", + "markdownDescription": "##### Examples\n\u003E \n```yaml\nendpoint: \"https://yourblob.blob.core.windows.net\"\nconnectionString: \"DefaultEndpointsProtocol=...==\"\ncontainer: \"mydata\"\nprefix: \"sub-dir\"\ndelimiter: \"/\"\n```" + }, + "io.kestra.plugin.azure.storage.blob.List": { + "type": "object", + "properties": { + "allowFailure": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "connectionString": { + "$dynamic": true, + "type": "string", + "title": "Connection string of the Storage Account." + }, + "container": { + "$dynamic": true, + "type": "string", + "title": "The blob container." + }, + "delimiter": { + "$dynamic": true, + "type": "string", + "title": "The delimiter for blob hierarchy, \"/\" for hierarchy based on directories." + }, + "description": { + "type": "string" + }, + "disabled": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "endpoint": { + "$dynamic": true, + "type": "string", + "title": "The blob service endpoint." + }, + "filter": { + "type": "string", + "enum": ["FILES", "DIRECTORY", "BOTH"], + "title": "The filter for files or directories.", + "default": "FILES", + "markdownDescription": "Default value is : `FILES`" + }, + "id": { + "type": "string", + "minLength": 1, + "pattern": "^[a-zA-Z0-9][a-zA-Z0-9_-]*" + }, + "logLevel": { + "type": "string", + "enum": ["ERROR", "WARN", "INFO", "DEBUG", "TRACE"] + }, + "prefix": { + "$dynamic": true, + "type": "string", + "title": "Limits the response to keys that begin with the specified prefix." + }, + "regexp": { + "$dynamic": true, + "type": "string", + "title": "A regular expression to filter on the full key.", + "markdownDescription": "ex:\n`regExp: .*` to match all files\n`regExp: .*2020-01-0.\\\\.csv` to match files between 01 and 09 of january ending with `.csv`" + }, + "retry": { + "oneOf": [ + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Constant-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Exponential-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Random-2" + } + ] + }, + "sasToken": { + "$dynamic": true, + "type": "string", + "title": "The SAS token to use for authenticating requests.", + "markdownDescription": "This string should only be the query parameters (with or without a leading '?') and not a full URL." + }, + "sharedKeyAccountAccessKey": { + "$dynamic": true, + "type": "string", + "title": "Shared Key access key for authenticating requests." + }, + "sharedKeyAccountName": { + "$dynamic": true, + "type": "string", + "title": "Shared Key account name for authenticating requests." + }, + "timeout": { + "type": "string", + "format": "duration" + }, + "type": { + "const": "io.kestra.plugin.azure.storage.blob.List" + }, + "workerGroup": { + "$ref": "#/definitions/io.kestra.core.models.tasks.WorkerGroup" + } + }, + "required": ["container", "endpoint", "id", "type"], + "title": "List blobs on the Azure Blob Storage.", + "markdownDescription": "##### Examples\n\u003E \n```yaml\nendpoint: \"https://yourblob.blob.core.windows.net\"\nconnectionString: \"DefaultEndpointsProtocol=...==\"\ncontainer: \"mydata\"\nprefix: \"sub-dir\"\ndelimiter: \"/\"\n```" + }, + "io.kestra.plugin.azure.storage.blob.SharedAccess": { + "type": "object", + "properties": { + "allowFailure": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "connectionString": { + "$dynamic": true, + "type": "string", + "title": "Connection string of the Storage Account." + }, + "container": { + "$dynamic": true, + "type": "string", + "title": "The blob container." + }, + "description": { + "type": "string" + }, + "disabled": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "endpoint": { + "$dynamic": true, + "type": "string", + "title": "The blob service endpoint." + }, + "expirationDate": { + "$dynamic": true, + "type": "string", + "title": " The time after which the SAS will no longer work." + }, + "id": { + "type": "string", + "minLength": 1, + "pattern": "^[a-zA-Z0-9][a-zA-Z0-9_-]*" + }, + "logLevel": { + "type": "string", + "enum": ["ERROR", "WARN", "INFO", "DEBUG", "TRACE"] + }, + "name": { + "$dynamic": true, + "type": "string", + "title": "The full blob path on the container." + }, + "permissions": { + "$dynamic": true, + "title": " The permissions to be set for the Shared Access.", + "type": "array", + "items": { + "$dynamic": true, + "type": "string", + "enum": [ + "READ", + "ADD", + "CREATE", + "WRITE", + "DELETE", + "DELETE_VERSION", + "TAGS", + "LIST", + "MOVE", + "EXECUTE", + "FILTER", + "IMMUTABILITY_POLICY" + ] + } + }, + "retry": { + "oneOf": [ + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Constant-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Exponential-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Random-2" + } + ] + }, + "sharedKeyAccountAccessKey": { + "$dynamic": true, + "type": "string", + "title": "Shared Key access key for authenticating requests." + }, + "sharedKeyAccountName": { + "$dynamic": true, + "type": "string", + "title": "Shared Key account name for authenticating requests." + }, + "timeout": { + "type": "string", + "format": "duration" + }, + "type": { + "const": "io.kestra.plugin.azure.storage.blob.SharedAccess" + }, + "workerGroup": { + "$ref": "#/definitions/io.kestra.core.models.tasks.WorkerGroup" + } + }, + "required": [ + "container", + "endpoint", + "expirationDate", + "id", + "name", + "permissions", + "type" + ], + "title": "Shared Access on the Azure Blob Storage.", + "markdownDescription": "##### Examples\n\u003E \n```yaml\nendpoint: \"https://yourblob.blob.core.windows.net\"\nconnectionString: \"DefaultEndpointsProtocol=...==\"\ncontainer: \"mydata\"\nname: \"myblob\"\nexpirationDate: \"{{ now() | dateAdd(1, 'DAYS') }}\"\npermissions:\n - r\n```" + }, + "io.kestra.plugin.azure.storage.blob.Trigger": { + "type": "object", + "properties": { + "action": { + "$dynamic": true, + "type": "string", + "enum": ["MOVE", "DELETE", "NONE"], + "title": "The action to perform on the retrieved files. If using `NONE`, make sure to handle the files inside your flow to avoid infinite triggering." + }, + "conditions": { + "$dynamic": false, + "title": "List of conditions in order to limit the flow trigger.", + "type": "array", + "items": { + "oneOf": [ + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.DateTimeBetweenCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.DayWeekCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.DayWeekInMonthCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.ExecutionFlowCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.ExecutionLabelsCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.ExecutionNamespaceCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.ExecutionOutputsCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.ExecutionStatusCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.ExpressionCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.FlowCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.FlowNamespaceCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.HasRetryAttemptCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.MultipleCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.NotCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.OrCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.PublicHolidayCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.TimeBetweenCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.WeekendCondition" + }, + { + "$dynamic": false + } + ] + } + ] + } + }, + "connectionString": { + "$dynamic": true, + "type": "string", + "title": "Connection string of the Storage Account." + }, + "container": { + "$dynamic": true, + "type": "string", + "title": "The blob container." + }, + "delimiter": { + "$dynamic": true, + "type": "string", + "title": "The delimiter for blob hierarchy, \"/\" for hierarchy based on directories." + }, + "description": { + "type": "string" + }, + "disabled": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "endpoint": { + "$dynamic": true, + "type": "string", + "title": "The blob service endpoint." + }, + "filter": { + "type": "string", + "enum": ["FILES", "DIRECTORY", "BOTH"], + "title": "The filter for files or directories.", + "default": "FILES", + "markdownDescription": "Default value is : `FILES`" + }, + "id": { + "type": "string", + "title": "A unique ID for the whole flow.", + "minLength": 1, + "pattern": "^[a-zA-Z0-9][a-zA-Z0-9_-]*" + }, + "interval": { + "$dynamic": false, + "type": "string", + "format": "duration", + "title": "Interval between polling.", + "default": 60, + "markdownDescription": "The interval between 2 different polls of schedule, this can avoid to overload the remote system with too many calls. For most of the triggers that depend on external systems, a minimal interval must be at least PT30S.\nSee [ISO_8601 Durations](https://en.wikipedia.org/wiki/ISO_8601#Durations) for more information of available interval values.\n\nDefault value is : `60.000000000`" + }, + "labels": { + "title": "The labels to pass to the execution created.", + "type": "array", + "items": { + "$ref": "#/definitions/io.kestra.core.models.Label" + } + }, + "logLevel": { + "type": "string", + "enum": ["ERROR", "WARN", "INFO", "DEBUG", "TRACE"] + }, + "moveTo": { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.azure.storage.blob.Copy-CopyObject" + }, + { + "$dynamic": true, + "title": "The destination container and key." + } + ] + }, + "prefix": { + "$dynamic": true, + "type": "string", + "title": "Limits the response to keys that begin with the specified prefix." + }, + "regexp": { + "$dynamic": true, + "type": "string", + "title": "A regular expression to filter on the full key.", + "markdownDescription": "ex:\n`regExp: .*` to match all files\n`regExp: .*2020-01-0.\\\\.csv` to match files between 01 and 09 of january ending with `.csv`" + }, + "sasToken": { + "$dynamic": true, + "type": "string", + "title": "The SAS token to use for authenticating requests.", + "markdownDescription": "This string should only be the query parameters (with or without a leading '?') and not a full URL." + }, + "sharedKeyAccountAccessKey": { + "$dynamic": true, + "type": "string", + "title": "Shared Key access key for authenticating requests." + }, + "sharedKeyAccountName": { + "$dynamic": true, + "type": "string", + "title": "Shared Key account name for authenticating requests." + }, + "stopAfter": { + "$dynamic": false, + "title": "List of execution states after which a trigger should be stopped (a.k.a. disabled).", + "type": "array", + "items": { + "$dynamic": false, + "type": "string", + "enum": [ + "CREATED", + "RUNNING", + "PAUSED", + "RESTARTED", + "KILLING", + "SUCCESS", + "WARNING", + "FAILED", + "KILLED", + "CANCELLED", + "QUEUED", + "RETRYING", + "RETRIED" + ] + } + }, + "type": { + "const": "io.kestra.plugin.azure.storage.blob.Trigger" + }, + "workerGroup": { + "$ref": "#/definitions/io.kestra.core.models.tasks.WorkerGroup" + } + }, + "required": ["action", "container", "id", "type"], + "title": "Wait for files on the Azure Blob Storage.", + "markdownDescription": "This trigger will poll every `interval` on the Azure Blob Storage. You can search for all files in a container or directory in `from` or you can filter the files with a `regExp`.The detection is atomic, internally we do a list and interact only with files listed.\nOnce a file is detected, we download the file on internal storage and processed with declared `action` in order to move or delete the files from the container (to avoid double detection on new poll)##### Examples\n\u003E Wait for a list of files on Azure Blob Storage bucket, and then iterate through the files.\n```yaml\nid: storage-listen\nnamespace: company.team\n\ntasks:\n - id: each\n type: io.kestra.plugin.core.flow.EachSequential\n tasks:\n - id: return\n type: io.kestra.plugin.core.debug.Return\n format: \"{{ taskrun.value }}\"\n value: \"{{ trigger.blobs | jq('.[].uri') }}\"\n\ntriggers:\n - id: watch\n type: io.kestra.plugin.azure.storage.blob.Trigger\n interval: PT5M\n endpoint: \"https://yourblob.blob.core.windows.net\"\n connectionString: \"DefaultEndpointsProtocol=...==\"\n container: \"mydata\"\n prefix: \"trigger/storage-listen\"\n action: MOVE\n moveTo: \n container: mydata\n name: archive\n```\n\n\u003E Wait for a list of file on a Azure Blob Storage bucket and iterate through the files. Delete files manually after processing to prevent infinite triggering.\n```yaml\nid: storage-listen\nnamespace: company.team\n\ntasks:\n - id: each\n type: io.kestra.plugin.core.flow.EachSequential\n tasks:\n - id: return\n type: io.kestra.plugin.core.debug.Return\n format: \"{{taskrun.value}}\"\n - id: delete\n type: io.kestra.plugin.azure.storage.blob.Delete\n endpoint: \"https://yourblob.blob.core.windows.net\"\n connectionString: \"DefaultEndpointsProtocol=...==\"\n container: \"mydata\"\n name: \"{{ taskrun.value }}\"\n value: \"{{ trigger.blobs | jq('.[].name') }}\"\n\ntriggers:\n - id: watch\n type: io.kestra.plugin.azure.storage.blob.Trigger\n endpoint: \"https://yourblob.blob.core.windows.net\"\n connectionString: \"DefaultEndpointsProtocol=...==\"\n container: \"mydata\"\n prefix: \"trigger/storage-listen\"\n action: MOVE\n moveTo: \n container: mydata\n name: archive\n```" + }, + "io.kestra.plugin.azure.storage.blob.Upload": { + "type": "object", + "properties": { + "accessTier": { + "$dynamic": false, + "type": "string", + "enum": [ + "P4", + "P6", + "P10", + "P15", + "P20", + "P30", + "P40", + "P50", + "P60", + "P70", + "P80", + "HOT", + "COOL", + "ARCHIVE" + ], + "title": "The access tier of the uploaded blob.", + "markdownDescription": "The operation is allowed on a page blob in a premium Storage Account or a block blob in a blob Storage Account or GPV2 Account. A premium page blob's tier determines the allowed size, IOPS, and bandwidth of the blob. A block blob's tier determines the Hot/Cool/Archive storage type. This does not update the blob's etag." + }, + "allowFailure": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "connectionString": { + "$dynamic": true, + "type": "string", + "title": "Connection string of the Storage Account." + }, + "container": { + "$dynamic": true, + "type": "string", + "title": "The blob container." + }, + "description": { + "type": "string" + }, + "disabled": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "endpoint": { + "$dynamic": true, + "type": "string", + "title": "The blob service endpoint." + }, + "from": { + "$dynamic": true, + "type": "string", + "title": "The file from the internal storage to upload to the Azure Blob Storage." + }, + "id": { + "type": "string", + "minLength": 1, + "pattern": "^[a-zA-Z0-9][a-zA-Z0-9_-]*" + }, + "immutabilityPolicy": { + "$ref": "#/definitions/io.kestra.plugin.azure.storage.blob.models.BlobImmutabilityPolicy" + }, + "legalHold": { + "$dynamic": false, + "type": "boolean", + "title": "Sets a legal hold on the blob.", + "markdownDescription": "NOTE: Blob Versioning must be enabled on your storage account and the blob must be in a container with immutable storage with versioning enabled to call this API." + }, + "logLevel": { + "type": "string", + "enum": ["ERROR", "WARN", "INFO", "DEBUG", "TRACE"] + }, + "metadata": { + "$dynamic": true, + "type": "object", + "title": "Metadata for the blob." + }, + "name": { + "$dynamic": true, + "type": "string", + "title": "The full blob path on the container." + }, + "retry": { + "oneOf": [ + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Constant-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Exponential-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Random-2" + } + ] + }, + "sasToken": { + "$dynamic": true, + "type": "string", + "title": "The SAS token to use for authenticating requests.", + "markdownDescription": "This string should only be the query parameters (with or without a leading '?') and not a full URL." + }, + "sharedKeyAccountAccessKey": { + "$dynamic": true, + "type": "string", + "title": "Shared Key access key for authenticating requests." + }, + "sharedKeyAccountName": { + "$dynamic": true, + "type": "string", + "title": "Shared Key account name for authenticating requests." + }, + "tags": { + "$dynamic": true, + "type": "object", + "title": "User defined tags." + }, + "timeout": { + "type": "string", + "format": "duration" + }, + "type": { + "const": "io.kestra.plugin.azure.storage.blob.Upload" + }, + "workerGroup": { + "$ref": "#/definitions/io.kestra.core.models.tasks.WorkerGroup" + } + }, + "required": ["container", "endpoint", "id", "name", "type"], + "title": "Upload a file to the Azure Blob Storage.", + "markdownDescription": "##### Examples\n\u003E \n```yaml\nendpoint: \"https://yourblob.blob.core.windows.net\"\nconnectionString: \"DefaultEndpointsProtocol=...==\"\ncontainer: \"mydata\"\nfrom: \"{{ inputs.file }}\"\nname: \"myblob\"\n```" + }, + "io.kestra.plugin.azure.storage.blob.models.BlobImmutabilityPolicy": { + "type": "object", + "properties": { + "expiryTime": { + "$dynamic": false, + "type": "string", + "format": "date-time", + "title": "The time when the immutability policy expires." + }, + "policyMode": { + "$dynamic": false, + "type": "string", + "enum": ["MUTABLE", "UNLOCKED", "LOCKED"], + "title": "The immutability policy mode." + } + } + }, + "io.kestra.plugin.azure.storage.table.Bulk": { + "type": "object", + "properties": { + "allowFailure": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "connectionString": { + "$dynamic": true, + "type": "string", + "title": "Connection string of the Storage Account." + }, + "defaultType": { + "$dynamic": true, + "type": "string", + "enum": [ + "CREATE", + "UPSERT_MERGE", + "UPSERT_REPLACE", + "UPDATE_MERGE", + "UPDATE_REPLACE", + "DELETE" + ], + "title": "The default operation type to be applied to the entity.", + "default": "UPSERT_REPLACE", + "markdownDescription": "Default value is : `UPSERT_REPLACE`" + }, + "description": { + "type": "string" + }, + "disabled": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "endpoint": { + "$dynamic": true, + "type": "string", + "title": "The blob service endpoint." + }, + "from": { + "$dynamic": true, + "title": "Source of a message.", + "markdownDescription": "Can be an internal storage URI or a list of maps in the format `partitionKey`, `rowKey`, `type`, `properties`, as shown in the example." + }, + "id": { + "type": "string", + "minLength": 1, + "pattern": "^[a-zA-Z0-9][a-zA-Z0-9_-]*" + }, + "logLevel": { + "type": "string", + "enum": ["ERROR", "WARN", "INFO", "DEBUG", "TRACE"] + }, + "retry": { + "oneOf": [ + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Constant-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Exponential-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Random-2" + } + ] + }, + "sasToken": { + "$dynamic": true, + "type": "string", + "title": "The SAS token to use for authenticating requests.", + "markdownDescription": "This string should only be the query parameters (with or without a leading '?') and not a full URL." + }, + "sharedKeyAccountAccessKey": { + "$dynamic": true, + "type": "string", + "title": "Shared Key access key for authenticating requests." + }, + "sharedKeyAccountName": { + "$dynamic": true, + "type": "string", + "title": "Shared Key account name for authenticating requests." + }, + "table": { + "$dynamic": true, + "type": "string", + "title": "The Azure Storage Table name." + }, + "timeout": { + "type": "string", + "format": "duration" + }, + "type": { + "const": "io.kestra.plugin.azure.storage.table.Bulk" + }, + "workerGroup": { + "$ref": "#/definitions/io.kestra.core.models.tasks.WorkerGroup" + } + }, + "required": ["endpoint", "from", "id", "table", "type"], + "title": "Inserts or updates entities into the Azure Storage Table. Make sure to pass either a list of entities or a file with a list of entities.", + "markdownDescription": "##### Examples\n\u003E \n```yaml\nendpoint: \"https://yourstorageaccount.blob.core.windows.net\"\nconnectionString: \"DefaultEndpointsProtocol=...==\"\ntable: \"table_name\"\nfrom:\n - partitionKey: \"color\"\n rowKey: \"green\"\n type: \"UPSERT_MERGE\"\n properties:\n \"code\": \"00FF00\"\n```" + }, + "io.kestra.plugin.azure.storage.table.Delete": { + "type": "object", + "properties": { + "allowFailure": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "connectionString": { + "$dynamic": true, + "type": "string", + "title": "Connection string of the Storage Account." + }, + "description": { + "type": "string" + }, + "disabled": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "endpoint": { + "$dynamic": true, + "type": "string", + "title": "The blob service endpoint." + }, + "id": { + "type": "string", + "minLength": 1, + "pattern": "^[a-zA-Z0-9][a-zA-Z0-9_-]*" + }, + "logLevel": { + "type": "string", + "enum": ["ERROR", "WARN", "INFO", "DEBUG", "TRACE"] + }, + "partitionKey": { + "$dynamic": true, + "type": "string", + "title": "The partition key of the entity." + }, + "retry": { + "oneOf": [ + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Constant-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Exponential-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Random-2" + } + ] + }, + "rowKey": { + "$dynamic": true, + "type": "string", + "title": "The row key of the entity." + }, + "sasToken": { + "$dynamic": true, + "type": "string", + "title": "The SAS token to use for authenticating requests.", + "markdownDescription": "This string should only be the query parameters (with or without a leading '?') and not a full URL." + }, + "sharedKeyAccountAccessKey": { + "$dynamic": true, + "type": "string", + "title": "Shared Key access key for authenticating requests." + }, + "sharedKeyAccountName": { + "$dynamic": true, + "type": "string", + "title": "Shared Key account name for authenticating requests." + }, + "table": { + "$dynamic": true, + "type": "string", + "title": "The Azure Storage Table name." + }, + "timeout": { + "type": "string", + "format": "duration" + }, + "type": { + "const": "io.kestra.plugin.azure.storage.table.Delete" + }, + "workerGroup": { + "$ref": "#/definitions/io.kestra.core.models.tasks.WorkerGroup" + } + }, + "required": ["endpoint", "id", "partitionKey", "table", "type"], + "title": "Delete an entity on the Azure Storage Table.", + "markdownDescription": "##### Examples\n\u003E \n```yaml\nendpoint: \"https://yourstorageaccount.table.core.windows.net\"\nconnectionString: \"DefaultEndpointsProtocol=...==\"\ntable: \"table_name\"\npartitionKey: \"color\"\nrowKey: \"green\"\n```" + }, + "io.kestra.plugin.azure.storage.table.Get": { + "type": "object", + "properties": { + "allowFailure": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "connectionString": { + "$dynamic": true, + "type": "string", + "title": "Connection string of the Storage Account." + }, + "description": { + "type": "string" + }, + "disabled": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "endpoint": { + "$dynamic": true, + "type": "string", + "title": "The blob service endpoint." + }, + "id": { + "type": "string", + "minLength": 1, + "pattern": "^[a-zA-Z0-9][a-zA-Z0-9_-]*" + }, + "logLevel": { + "type": "string", + "enum": ["ERROR", "WARN", "INFO", "DEBUG", "TRACE"] + }, + "partitionKey": { + "$dynamic": true, + "type": "string", + "title": "The partition key of the entity." + }, + "retry": { + "oneOf": [ + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Constant-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Exponential-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Random-2" + } + ] + }, + "rowKey": { + "$dynamic": true, + "type": "string", + "title": "The row key of the entity." + }, + "sasToken": { + "$dynamic": true, + "type": "string", + "title": "The SAS token to use for authenticating requests.", + "markdownDescription": "This string should only be the query parameters (with or without a leading '?') and not a full URL." + }, + "sharedKeyAccountAccessKey": { + "$dynamic": true, + "type": "string", + "title": "Shared Key access key for authenticating requests." + }, + "sharedKeyAccountName": { + "$dynamic": true, + "type": "string", + "title": "Shared Key account name for authenticating requests." + }, + "table": { + "$dynamic": true, + "type": "string", + "title": "The Azure Storage Table name." + }, + "timeout": { + "type": "string", + "format": "duration" + }, + "type": { + "const": "io.kestra.plugin.azure.storage.table.Get" + }, + "workerGroup": { + "$ref": "#/definitions/io.kestra.core.models.tasks.WorkerGroup" + } + }, + "required": ["endpoint", "id", "partitionKey", "table", "type"], + "title": "Gets an entity from the Azure Storage Table.", + "markdownDescription": "##### Examples\n\u003E \n```yaml\nendpoint: \"https://yourstorageaccount.table.core.windows.net\"\nconnectionString: \"DefaultEndpointsProtocol=...==\"\ntable: \"table_name\"\npartitionKey: \"color\"\nrowKey: \"green\"\n```" + }, + "io.kestra.plugin.azure.storage.table.List": { + "type": "object", + "properties": { + "allowFailure": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "connectionString": { + "$dynamic": true, + "type": "string", + "title": "Connection string of the Storage Account." + }, + "description": { + "type": "string" + }, + "disabled": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "endpoint": { + "$dynamic": true, + "type": "string", + "title": "The blob service endpoint." + }, + "filter": { + "$dynamic": true, + "type": "string", + "title": "Returns only tables or entities that satisfy the specified filter.", + "markdownDescription": "You can specify the filter using [Filter Strings](https://docs.microsoft.com/en-us/visualstudio/azure/vs-azure-tools-table-designer-construct-filter-strings?view=vs-2022)." + }, + "id": { + "type": "string", + "minLength": 1, + "pattern": "^[a-zA-Z0-9][a-zA-Z0-9_-]*" + }, + "logLevel": { + "type": "string", + "enum": ["ERROR", "WARN", "INFO", "DEBUG", "TRACE"] + }, + "retry": { + "oneOf": [ + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Constant-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Exponential-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Random-2" + } + ] + }, + "sasToken": { + "$dynamic": true, + "type": "string", + "title": "The SAS token to use for authenticating requests.", + "markdownDescription": "This string should only be the query parameters (with or without a leading '?') and not a full URL." + }, + "select": { + "$dynamic": true, + "title": "The desired properties of an entity from the Azure Storage Table.", + "type": "array", + "items": { + "$dynamic": true, + "type": "string" + } + }, + "sharedKeyAccountAccessKey": { + "$dynamic": true, + "type": "string", + "title": "Shared Key access key for authenticating requests." + }, + "sharedKeyAccountName": { + "$dynamic": true, + "type": "string", + "title": "Shared Key account name for authenticating requests." + }, + "table": { + "$dynamic": true, + "type": "string", + "title": "The Azure Storage Table name." + }, + "timeout": { + "type": "string", + "format": "duration" + }, + "top": { + "$dynamic": true, + "type": "integer", + "title": "List the top `n` tables or entities from the Azure Storage Table." + }, + "type": { + "const": "io.kestra.plugin.azure.storage.table.List" + }, + "workerGroup": { + "$ref": "#/definitions/io.kestra.core.models.tasks.WorkerGroup" + } + }, + "required": ["endpoint", "id", "table", "type"], + "title": "Lists entities from the Azure Storage Table using the parameters in the provided options.", + "markdownDescription": "If the `filter` parameter in the options is set, only entities matching the filter will be returned.\nIf the `select` parameter is set, only the properties included in the select parameter will be returned for each entity.\nIf the `top` parameter is set, the maximum number of returned entities per page will be limited to that value.##### Examples\n\u003E \n```yaml\nendpoint: \"https://yourstorageaccount.table.core.windows.net\"\nconnectionString: \"DefaultEndpointsProtocol=...==\"\ntable: \"table_name\"\n```" + }, + "io.kestra.plugin.cassandra.astradb.AstraDbSession": { + "type": "object", + "properties": { + "clientId": { + "$dynamic": true, + "type": "string" + }, + "clientSecret": { + "$dynamic": true, + "type": "string" + }, + "keyspace": { + "$dynamic": true, + "type": "string" + }, + "proxyAddress": { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.cassandra.astradb.AstraDbSession-ProxyAddress" + }, + { + "$dynamic": false, + "title": "The Astra DB proxy address.", + "markdownDescription": " Use it only when you are not using the secure bundle." + } + ] + }, + "secureBundle": { + "$dynamic": true, + "type": "string", + "title": "The Astra DB secure bundle, base64 encoded.", + "markdownDescription": "It must be the ZIP archive containing the secure bundle encoded in base64. Use it only when you are not using the proxy address." + } + }, + "required": ["clientId", "clientSecret", "keyspace"] + }, + "io.kestra.plugin.cassandra.astradb.AstraDbSession-ProxyAddress": { + "type": "object", + "properties": { + "hostname": { + "$dynamic": true, + "type": "string", + "title": "The hostname of the Astra DB server.", + "minLength": 1 + }, + "port": { + "$dynamic": false, + "type": "integer", + "title": "The port of the Astra DB server.", + "default": 9042, + "markdownDescription": "Default value is : `9042`" + } + }, + "required": ["hostname"] + }, + "io.kestra.plugin.cassandra.astradb.Query": { + "type": "object", + "properties": { + "allowFailure": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "cql": { + "$dynamic": true, + "type": "string", + "title": "CQL query to execute." + }, + "description": { + "type": "string" + }, + "disabled": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "fetch": { + "$dynamic": false, + "type": "boolean", + "title": "Whether to fetch the data from the query result to the task output.", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "fetchOne": { + "$dynamic": false, + "type": "boolean", + "title": "Whether to fetch only one data row from the query result to the task output.", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "id": { + "type": "string", + "minLength": 1, + "pattern": "^[a-zA-Z0-9][a-zA-Z0-9_-]*" + }, + "logLevel": { + "type": "string", + "enum": ["ERROR", "WARN", "INFO", "DEBUG", "TRACE"] + }, + "retry": { + "oneOf": [ + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Constant-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Exponential-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Random-2" + } + ] + }, + "session": { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.cassandra.astradb.AstraDbSession" + }, + { + "$dynamic": false, + "title": "The session connection properties." + } + ] + }, + "store": { + "$dynamic": false, + "type": "boolean", + "title": "Whether to store the data from the query result into an ion serialized data file.", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "timeout": { + "type": "string", + "format": "duration" + }, + "type": { + "const": "io.kestra.plugin.cassandra.astradb.Query" + }, + "workerGroup": { + "$ref": "#/definitions/io.kestra.core.models.tasks.WorkerGroup" + } + }, + "required": ["cql", "id", "session", "type"], + "title": "Query an Astra DB with CQL.", + "markdownDescription": "##### Examples\n\u003E Send a CQL query to an Astra DB.\n```yaml\nsession:\n secureBundle: /path/to/secureBundle.zip\n keyspace: astradb_keyspace\n clientId: astradb_clientId\n clientSecret: astradb_clientSecret\ncql: SELECT * FROM CQL_TABLE\nfetch: true\n```" + }, + "io.kestra.plugin.cassandra.astradb.Trigger": { + "type": "object", + "properties": { + "conditions": { + "$dynamic": false, + "title": "List of conditions in order to limit the flow trigger.", + "type": "array", + "items": { + "oneOf": [ + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.DateTimeBetweenCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.DayWeekCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.DayWeekInMonthCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.ExecutionFlowCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.ExecutionLabelsCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.ExecutionNamespaceCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.ExecutionOutputsCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.ExecutionStatusCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.ExpressionCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.FlowCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.FlowNamespaceCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.HasRetryAttemptCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.MultipleCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.NotCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.OrCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.PublicHolidayCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.TimeBetweenCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.WeekendCondition" + }, + { + "$dynamic": false + } + ] + } + ] + } + }, + "cql": { + "$dynamic": false, + "type": "string", + "title": "CQL query." + }, + "description": { + "type": "string" + }, + "disabled": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "fetch": { + "$dynamic": false, + "type": "boolean", + "title": "Whether to fetch the data from the query result to the task output.", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "fetchOne": { + "$dynamic": false, + "type": "boolean", + "title": "Whether to fetch only one data row from the query result to the task output.", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "id": { + "type": "string", + "title": "A unique ID for the whole flow.", + "minLength": 1, + "pattern": "^[a-zA-Z0-9][a-zA-Z0-9_-]*" + }, + "interval": { + "$dynamic": false, + "type": "string", + "format": "duration", + "title": "Interval between polling.", + "default": 60, + "markdownDescription": "The interval between 2 different polls of schedule, this can avoid to overload the remote system with too many calls. For most of the triggers that depend on external systems, a minimal interval must be at least PT30S.\nSee [ISO_8601 Durations](https://en.wikipedia.org/wiki/ISO_8601#Durations) for more information of available interval values.\n\nDefault value is : `60.000000000`" + }, + "labels": { + "title": "The labels to pass to the execution created.", + "type": "array", + "items": { + "$ref": "#/definitions/io.kestra.core.models.Label" + } + }, + "logLevel": { + "type": "string", + "enum": ["ERROR", "WARN", "INFO", "DEBUG", "TRACE"] + }, + "session": { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.cassandra.astradb.AstraDbSession" + }, + { + "$dynamic": false, + "title": "The session connection properties." + } + ] + }, + "stopAfter": { + "$dynamic": false, + "title": "List of execution states after which a trigger should be stopped (a.k.a. disabled).", + "type": "array", + "items": { + "$dynamic": false, + "type": "string", + "enum": [ + "CREATED", + "RUNNING", + "PAUSED", + "RESTARTED", + "KILLING", + "SUCCESS", + "WARNING", + "FAILED", + "KILLED", + "CANCELLED", + "QUEUED", + "RETRYING", + "RETRIED" + ] + } + }, + "store": { + "$dynamic": false, + "type": "boolean", + "title": "Whether to store the data from the query result into an ion serialized data file.", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "timeZoneId": { + "type": "string" + }, + "type": { + "const": "io.kestra.plugin.cassandra.astradb.Trigger" + }, + "workerGroup": { + "$ref": "#/definitions/io.kestra.core.models.tasks.WorkerGroup" + } + }, + "required": ["cql", "id", "session", "type"], + "title": "Wait for a query to return results on Astra DB.", + "markdownDescription": "##### Examples\n\u003E Wait for a CQL query to return results, and then iterate through rows.\n```yaml\nid: astra-trigger\nnamespace: io.kestra.tests\ntasks:\n - id: each\n type: io.kestra.core.tasks.flows.EachSequential\n tasks:\n - id: return\n type: io.kestra.core.tasks.debugs.Return\n format: \"{{ json(taskrun.value) }}\"\n value: \"{{ trigger.rows }}\"\n\ntriggers:\n - id: watch\n type: io.kestra.plugin.cassandra.astradb.Trigger\n interval: \"PT5M\"\n session:\n secureBundle: /path/to/secureBundle.zip\n keyspace: astradb_keyspace\n clientId: astradb_clientId\n clientSecret: astradb_clientSecret\n cql: \"SELECT * FROM CQL_KEYSPACE.CQL_TABLE\"\n fetch: true\n```" + }, + "io.kestra.plugin.cassandra.standard.CassandraDbSession": { + "type": "object", + "properties": { + "applicationName": { + "$dynamic": true, + "type": "string", + "title": "The name of the application using the created session.", + "markdownDescription": "It will be sent in the STARTUP protocol message, under the key `APPLICATION_NAME`, for each new connection established by the driver. Currently, this information is used by Insights monitoring (if the target cluster does not support Insights, the entry will be ignored by the server)." + }, + "endpoints": { + "$dynamic": true, + "title": "List of contact endpoints to use for the initial connection to the cluster.", + "type": "array", + "items": { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.cassandra.standard.CassandraDbSession-Endpoint" + }, + { + "$dynamic": true + } + ] + } + }, + "localDatacenter": { + "$dynamic": true, + "type": "string", + "title": "Specifies the datacenter that is considered \"local\" by the load balancing policy." + }, + "password": { + "$dynamic": true, + "type": "string", + "title": "Plaintext authentication password." + }, + "username": { + "$dynamic": true, + "type": "string", + "title": "Plaintext authentication username." + } + } + }, + "io.kestra.plugin.cassandra.standard.CassandraDbSession-Endpoint": { + "type": "object", + "properties": { + "hostname": { + "$dynamic": true, + "type": "string", + "title": "The hostname of the Cassandra server.", + "minLength": 1 + }, + "port": { + "$dynamic": false, + "type": "integer", + "title": "The port of the Cassandra server.", + "default": 9042, + "markdownDescription": "Default value is : `9042`" + }, + "serverName": { + "$dynamic": true, + "type": "string", + "title": "The SNI server name.", + "markdownDescription": "In the context of Cloud, this is the string representation of the host ID." + } + }, + "required": ["hostname"] + }, + "io.kestra.plugin.cassandra.standard.Query": { + "type": "object", + "properties": { + "allowFailure": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "cql": { + "$dynamic": true, + "type": "string", + "title": "CQL query to execute." + }, + "description": { + "type": "string" + }, + "disabled": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "fetch": { + "$dynamic": false, + "type": "boolean", + "title": "Whether to fetch the data from the query result to the task output.", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "fetchOne": { + "$dynamic": false, + "type": "boolean", + "title": "Whether to fetch only one data row from the query result to the task output.", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "id": { + "type": "string", + "minLength": 1, + "pattern": "^[a-zA-Z0-9][a-zA-Z0-9_-]*" + }, + "logLevel": { + "type": "string", + "enum": ["ERROR", "WARN", "INFO", "DEBUG", "TRACE"] + }, + "retry": { + "oneOf": [ + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Constant-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Exponential-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Random-2" + } + ] + }, + "session": { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.cassandra.standard.CassandraDbSession" + }, + { + "$dynamic": false, + "title": "The session connection properties." + } + ] + }, + "store": { + "$dynamic": false, + "type": "boolean", + "title": "Whether to store the data from the query result into an ion serialized data file.", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "timeout": { + "type": "string", + "format": "duration" + }, + "type": { + "const": "io.kestra.plugin.cassandra.standard.Query" + }, + "workerGroup": { + "$ref": "#/definitions/io.kestra.core.models.tasks.WorkerGroup" + } + }, + "required": ["cql", "id", "session", "type"], + "title": "Query a Cassandra database with CQL.", + "markdownDescription": "##### Examples\n\u003E Send a CQL query to a Cassandra database.\n```yaml\nsession:\n endpoints:\n - hostname: localhost\n username: cassandra_user\n password: cassandra_passwd\ncql: SELECT * FROM CQL_KEYSPACE.CQL_TABLE\nfetch: true\n```" + }, + "io.kestra.plugin.cassandra.standard.Trigger": { + "type": "object", + "properties": { + "conditions": { + "$dynamic": false, + "title": "List of conditions in order to limit the flow trigger.", + "type": "array", + "items": { + "oneOf": [ + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.DateTimeBetweenCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.DayWeekCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.DayWeekInMonthCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.ExecutionFlowCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.ExecutionLabelsCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.ExecutionNamespaceCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.ExecutionOutputsCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.ExecutionStatusCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.ExpressionCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.FlowCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.FlowNamespaceCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.HasRetryAttemptCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.MultipleCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.NotCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.OrCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.PublicHolidayCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.TimeBetweenCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.WeekendCondition" + }, + { + "$dynamic": false + } + ] + } + ] + } + }, + "cql": { + "$dynamic": false, + "type": "string", + "title": "CQL query." + }, + "description": { + "type": "string" + }, + "disabled": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "fetch": { + "$dynamic": false, + "type": "boolean", + "title": "Whether to fetch the data from the query result to the task output.", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "fetchOne": { + "$dynamic": false, + "type": "boolean", + "title": "Whether to fetch only one data row from the query result to the task output.", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "id": { + "type": "string", + "title": "A unique ID for the whole flow.", + "minLength": 1, + "pattern": "^[a-zA-Z0-9][a-zA-Z0-9_-]*" + }, + "interval": { + "$dynamic": false, + "type": "string", + "format": "duration", + "title": "Interval between polling.", + "default": 60, + "markdownDescription": "The interval between 2 different polls of schedule, this can avoid to overload the remote system with too many calls. For most of the triggers that depend on external systems, a minimal interval must be at least PT30S.\nSee [ISO_8601 Durations](https://en.wikipedia.org/wiki/ISO_8601#Durations) for more information of available interval values.\n\nDefault value is : `60.000000000`" + }, + "labels": { + "title": "The labels to pass to the execution created.", + "type": "array", + "items": { + "$ref": "#/definitions/io.kestra.core.models.Label" + } + }, + "logLevel": { + "type": "string", + "enum": ["ERROR", "WARN", "INFO", "DEBUG", "TRACE"] + }, + "session": { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.cassandra.standard.CassandraDbSession" + }, + { + "$dynamic": false, + "title": "The session connection properties" + } + ] + }, + "stopAfter": { + "$dynamic": false, + "title": "List of execution states after which a trigger should be stopped (a.k.a. disabled).", + "type": "array", + "items": { + "$dynamic": false, + "type": "string", + "enum": [ + "CREATED", + "RUNNING", + "PAUSED", + "RESTARTED", + "KILLING", + "SUCCESS", + "WARNING", + "FAILED", + "KILLED", + "CANCELLED", + "QUEUED", + "RETRYING", + "RETRIED" + ] + } + }, + "store": { + "$dynamic": false, + "type": "boolean", + "title": "Whether to store the data from the query result into an ion serialized data file.", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "timeZoneId": { + "type": "string" + }, + "type": { + "const": "io.kestra.plugin.cassandra.standard.Trigger" + }, + "workerGroup": { + "$ref": "#/definitions/io.kestra.core.models.tasks.WorkerGroup" + } + }, + "required": ["cql", "id", "session", "type"], + "title": "Wait for a query to return results on a Cassandra database.", + "markdownDescription": "##### Examples\n\u003E Wait for a CQL query to return results, and then iterate through rows.\n```yaml\nid: cassandra-trigger\nnamespace: io.kestra.tests\ntasks:\n - id: each\n type: io.kestra.core.tasks.flows.EachSequential\n tasks:\n - id: return\n type: io.kestra.core.tasks.debugs.Return\n format: \"{{ json(taskrun.value) }}\"\n value: \"{{ trigger.rows }}\"\n\ntriggers:\n - id: watch\n type: io.kestra.plugin.cassandra.standard.Trigger\n interval: \"PT5M\"\n session:\n endpoints:\n - hostname: localhost\n username: cassandra_user\n password: cassandra_passwd\n cql: \"SELECT * FROM CQL_KEYSPACE.CQL_TABLE\"\n fetch: true\n```" + }, + "io.kestra.plugin.cloudquery.CloudQueryCLI": { + "type": "object", + "properties": { + "allowFailure": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "commands": { + "$dynamic": true, + "title": "List of CloudQuery commands to run.", + "minItems": 1, + "type": "array", + "items": { + "$dynamic": true, + "type": "string" + } + }, + "containerImage": { + "$dynamic": true, + "type": "string", + "title": "The task runner container image, only used if the task runner is container-based.", + "default": "ghcr.io/cloudquery/cloudquery:latest", + "markdownDescription": "Default value is : `ghcr.io/cloudquery/cloudquery:latest`" + }, + "description": { + "type": "string" + }, + "disabled": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "docker": { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.scripts.exec.scripts.models.DockerOptions" + }, + { + "$deprecated": true, + "$dynamic": false, + "title": "Deprecated, use 'taskRunner' instead" + } + ] + }, + "env": { + "$dynamic": true, + "type": "object", + "title": "Additional environment variables for the CloudQuery process.", + "additionalProperties": { + "type": "string" + } + }, + "id": { + "type": "string", + "minLength": 1, + "pattern": "^[a-zA-Z0-9][a-zA-Z0-9_-]*" + }, + "inputFiles": { + "$dynamic": true, + "title": "The files to create on the local filesystem. It can be a map or a JSON object.", + "oneOf": [ + { + "type": "object" + }, + { + "type": "string" + } + ] + }, + "logLevel": { + "type": "string", + "enum": ["ERROR", "WARN", "INFO", "DEBUG", "TRACE"] + }, + "namespaceFiles": { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.core.models.tasks.NamespaceFiles" + }, + { + "$dynamic": false, + "title": "Inject namespace files.", + "markdownDescription": "Inject namespace files to this task. When enabled, it will, by default, load all namespace files into the working directory. However, you can use the `include` or `exclude` properties to limit which namespace files will be injected." + } + ] + }, + "outputFiles": { + "$dynamic": true, + "title": "The files from the local filesystem to send to Kestra's internal storage.", + "markdownDescription": "Must be a list of [glob](https://en.wikipedia.org/wiki/Glob_(programming)) expressions relative to the current working directory, some examples: `my-dir/**`, `my-dir/*/**` or `my-dir/my-file.txt`.", + "type": "array", + "items": { + "$dynamic": true, + "type": "string" + } + }, + "retry": { + "oneOf": [ + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Constant-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Exponential-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Random-2" + } + ] + }, + "taskRunner": { + "oneOf": [ + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.scripts.runner.docker.Docker" + }, + { + "$dynamic": false, + "title": "The task runner to use.", + "markdownDescription": "Task runners are provided by plugins, each have their own properties.\nIf you change from the default one, be careful to also configure the entrypoint to an empty list if needed." + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.runner.Process" + }, + { + "$dynamic": false, + "title": "The task runner to use.", + "markdownDescription": "Task runners are provided by plugins, each have their own properties.\nIf you change from the default one, be careful to also configure the entrypoint to an empty list if needed." + } + ] + } + ] + }, + "timeout": { + "type": "string", + "format": "duration" + }, + "type": { + "const": "io.kestra.plugin.cloudquery.CloudQueryCLI" + }, + "workerGroup": { + "$ref": "#/definitions/io.kestra.core.models.tasks.WorkerGroup" + } + }, + "required": ["commands", "id", "type"], + "title": "Execute CloudQuery commands from a CLI.", + "markdownDescription": "##### Examples\n\u003E Run a CloudQuery sync from CLI. You need an [API key](https://docs.cloudquery.io/docs/deployment/generate-api-key) to download plugins. You can add the API key as an environment variable called `CLOUDQUERY_API_KEY`.\n```yaml\nid: cloudquery_sync_cli\nnamespace: company.team\n\ntasks:\n - id: hn_to_duckdb\n type: io.kestra.plugin.cloudquery.CloudQueryCLI\n env:\n CLOUDQUERY_API_KEY: \"{{ secret('CLOUDQUERY_API_KEY') }}\"\n inputFiles:\n config.yml: |\n kind: source\n spec:\n name: hackernews\n path: cloudquery/hackernews\n version: v3.0.13\n tables: [\"*\"]\n backend_options:\n table_name: cq_cursor\n connection: \"@@plugins.duckdb.connection\"\n destinations:\n - \"duckdb\"\n spec:\n item_concurrency: 100\n start_time: \"{{ now() | dateAdd(-1, 'DAYS') }}\"\n ---\n kind: destination\n spec:\n name: duckdb\n path: cloudquery/duckdb\n version: v4.2.10\n write_mode: overwrite-delete-stale\n spec:\n connection_string: hn.db\n commands:\n - cloudquery sync config.yml --log-console\n```" + }, + "io.kestra.plugin.cloudquery.Sync": { + "type": "object", + "properties": { + "allowFailure": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "configs": { + "$dynamic": false, + "title": "CloudQuery configurations.", + "markdownDescription": "A list of CloudQuery configurations or files containing CloudQuery configurations.", + "type": "array", + "items": { + "$dynamic": false + }, + "oneOf": [ + { + "type": "array", + "items": { + "type": "string" + } + }, + { + "type": "array", + "items": { + "type": "object" + } + } + ] + }, + "containerImage": { + "$dynamic": true, + "type": "string", + "title": "The task runner container image, only used if the task runner is container-based.", + "default": "ghcr.io/cloudquery/cloudquery:latest", + "markdownDescription": "Default value is : `ghcr.io/cloudquery/cloudquery:latest`" + }, + "description": { + "type": "string" + }, + "disabled": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "docker": { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.scripts.exec.scripts.models.DockerOptions" + }, + { + "$deprecated": true, + "$dynamic": false, + "title": "Deprecated, use 'taskRunner' instead" + } + ] + }, + "env": { + "$dynamic": true, + "type": "object", + "title": "Additional environment variables for the CloudQuery process.", + "additionalProperties": { + "type": "string" + } + }, + "id": { + "type": "string", + "minLength": 1, + "pattern": "^[a-zA-Z0-9][a-zA-Z0-9_-]*" + }, + "incremental": { + "$dynamic": false, + "type": "boolean", + "title": "Whether to use Kestra's internal backend to save incremental index.", + "default": false, + "markdownDescription": "Kestra can automatically add a backend option to your sources and same incremental indexes in the internal storage. Use this boolean to activate this option.\n\nDefault value is : `false`" + }, + "inputFiles": { + "$dynamic": true, + "title": "The files to create on the local filesystem. It can be a map or a JSON object.", + "oneOf": [ + { + "type": "object" + }, + { + "type": "string" + } + ] + }, + "logLevel": { + "type": "string", + "enum": ["ERROR", "WARN", "INFO", "DEBUG", "TRACE"] + }, + "namespaceFiles": { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.core.models.tasks.NamespaceFiles" + }, + { + "$dynamic": false, + "title": "Inject namespace files.", + "markdownDescription": "Inject namespace files to this task. When enabled, it will, by default, load all namespace files into the working directory. However, you can use the `include` or `exclude` properties to limit which namespace files will be injected." + } + ] + }, + "outputFiles": { + "$dynamic": true, + "title": "The files from the local filesystem to send to Kestra's internal storage.", + "markdownDescription": "Must be a list of [glob](https://en.wikipedia.org/wiki/Glob_(programming)) expressions relative to the current working directory, some examples: `my-dir/**`, `my-dir/*/**` or `my-dir/my-file.txt`.", + "type": "array", + "items": { + "$dynamic": true, + "type": "string" + } + }, + "retry": { + "oneOf": [ + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Constant-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Exponential-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Random-2" + } + ] + }, + "taskRunner": { + "oneOf": [ + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.scripts.runner.docker.Docker" + }, + { + "$dynamic": false, + "title": "The task runner to use.", + "markdownDescription": "Task runners are provided by plugins, each have their own properties.\nIf you change from the default one, be careful to also configure the entrypoint to an empty list if needed." + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.runner.Process" + }, + { + "$dynamic": false, + "title": "The task runner to use.", + "markdownDescription": "Task runners are provided by plugins, each have their own properties.\nIf you change from the default one, be careful to also configure the entrypoint to an empty list if needed." + } + ] + } + ] + }, + "timeout": { + "type": "string", + "format": "duration" + }, + "type": { + "const": "io.kestra.plugin.cloudquery.Sync" + }, + "workerGroup": { + "$ref": "#/definitions/io.kestra.core.models.tasks.WorkerGroup" + } + }, + "required": ["configs", "id", "type"], + "title": "Execute a CloudQuery sync.", + "markdownDescription": "##### Examples\n\u003E Start a CloudQuery sync based on a YAML configuration. You need an [API key](https://docs.cloudquery.io/docs/deployment/generate-api-key) to download plugins. You can add the API key as an environment variable called `CLOUDQUERY_API_KEY`.\n```yaml\nid: cloudquery_sync\nnamespace: company.team\n\ntasks:\n - id: hn_to_duckdb\n type: io.kestra.plugin.cloudquery.Sync\n env:\n CLOUDQUERY_API_KEY: \"{{ secret('CLOUDQUERY_API_KEY') }}\"\n incremental: false\n configs:\n - kind: source\n spec:\n name: hackernews\n path: cloudquery/hackernews\n version: v3.0.13\n tables: [\"*\"]\n destinations: [\"duckdb\"]\n spec:\n item_concurrency: 100\n start_time: \"{{ now() | dateAdd(-1, 'DAYS') }}\"\n - kind: destination\n spec:\n name: duckdb\n path: cloudquery/duckdb\n version: v4.2.10\n write_mode: overwrite-delete-stale\n spec:\n connection_string: hn.db\n```\n\n\u003E Start a CloudQuery sync based on a file(s) input.\n```yaml\nid: cloudquery_sync\nnamespace: company.team\n\ntasks:\n - id: hn_to_duckdb\n type: io.kestra.plugin.cloudquery.Sync\n incremental: false\n env:\n AWS_ACCESS_KEY_ID: \"{{ secret('AWS_ACCESS_KEY_ID') }}\"\n AWS_SECRET_ACCESS_KEY: \"{{ secret('AWS_SECRET_ACCESS_KEY') }}\"\n AWS_DEFAULT_REGION: \"{{ secret('AWS_DEFAULT_REGION') }}\"\n CLOUDQUERY_API_KEY: \"{{ secret('CLOUDQUERY_API_KEY') }}\"\n PG_CONNECTION_STRING: \"postgresql://postgres:{{ secret('DB_PASSWORD') }}@host.docker.internal:5432/demo?sslmode=disable\"\n configs:\n - sources.yml\n - destination.yml\n```" + }, + "io.kestra.plugin.compress.ArchiveCompress": { + "type": "object", + "properties": { + "algorithm": { + "$dynamic": false, + "type": "string", + "enum": ["AR", "ARJ", "CPIO", "DUMP", "JAR", "TAR", "ZIP"], + "title": "The algorithm of the archive file" + }, + "allowFailure": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "compression": { + "$dynamic": false, + "type": "string", + "enum": [ + "BROTLI", + "BZIP2", + "DEFLATE", + "DEFLATE64", + "GZIP", + "LZ4BLOCK", + "LZ4FRAME", + "LZMA", + "SNAPPY", + "SNAPPYFRAME", + "XZ", + "Z", + "ZSTD" + ], + "title": "The compression used for the archive file. Some algorithms focus on compressing individual files (for example GZIP), while others compress and combine multiple files into a single archive. The single-file compressor is often used alongside a separate tool for archiving multiple files (TAR and GZIP for example)" + }, + "description": { + "type": "string" + }, + "disabled": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "from": { + "$dynamic": true, + "title": "The files to compress.", + "additionalProperties": { + "type": "string" + }, + "markdownDescription": "The key must be a valid path in the archive and can contain `/` to represent the directory, the value must be a Kestra internal storage URI.\nThe value can also be a JSON containing multiple keys/values." + }, + "id": { + "type": "string", + "minLength": 1, + "pattern": "^[a-zA-Z0-9][a-zA-Z0-9_-]*" + }, + "logLevel": { + "type": "string", + "enum": ["ERROR", "WARN", "INFO", "DEBUG", "TRACE"] + }, + "retry": { + "oneOf": [ + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Constant-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Exponential-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Random-2" + } + ] + }, + "timeout": { + "type": "string", + "format": "duration" + }, + "type": { + "const": "io.kestra.plugin.compress.ArchiveCompress" + }, + "workerGroup": { + "$ref": "#/definitions/io.kestra.core.models.tasks.WorkerGroup" + } + }, + "required": ["algorithm", "from", "id", "type"], + "title": "Compress an archive file.", + "markdownDescription": "##### Examples\n\u003E \n```yaml\nfrom:\n myfile.txt: \"{{ inputs.files }}\"\nalgorithm: ZIP\n```\n\n\u003E \n```yaml\nfrom: \"{{ outputs.taskId.uri }}\"\nalgorithm: TAR\ncompression: GZIP\n```" + }, + "io.kestra.plugin.compress.ArchiveDecompress": { + "type": "object", + "properties": { + "algorithm": { + "$dynamic": false, + "type": "string", + "enum": ["AR", "ARJ", "CPIO", "DUMP", "JAR", "TAR", "ZIP"], + "title": "The algorithm of the archive file" + }, + "allowFailure": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "compression": { + "$dynamic": false, + "type": "string", + "enum": [ + "BROTLI", + "BZIP2", + "DEFLATE", + "DEFLATE64", + "GZIP", + "LZ4BLOCK", + "LZ4FRAME", + "LZMA", + "SNAPPY", + "SNAPPYFRAME", + "XZ", + "Z", + "ZSTD" + ], + "title": "The compression used for the archive file. Some algorithms focus on compressing individual files (for example GZIP), while others compress and combine multiple files into a single archive. The single-file compressor is often used alongside a separate tool for archiving multiple files (TAR and GZIP for example)" + }, + "description": { + "type": "string" + }, + "disabled": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "from": { + "$dynamic": true, + "type": "string", + "title": "The file's internal storage URI." + }, + "id": { + "type": "string", + "minLength": 1, + "pattern": "^[a-zA-Z0-9][a-zA-Z0-9_-]*" + }, + "logLevel": { + "type": "string", + "enum": ["ERROR", "WARN", "INFO", "DEBUG", "TRACE"] + }, + "retry": { + "oneOf": [ + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Constant-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Exponential-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Random-2" + } + ] + }, + "timeout": { + "type": "string", + "format": "duration" + }, + "type": { + "const": "io.kestra.plugin.compress.ArchiveDecompress" + }, + "workerGroup": { + "$ref": "#/definitions/io.kestra.core.models.tasks.WorkerGroup" + } + }, + "required": ["algorithm", "from", "id", "type"], + "title": "Decompress an archive file.", + "markdownDescription": "##### Examples\n\u003E \n```yaml\nfrom: \"{{ inputs.files }}\"\nalgorithm: ZIP\ncompression: GZIP\n```" + }, + "io.kestra.plugin.compress.FileCompress": { + "type": "object", + "properties": { + "allowFailure": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "compression": { + "$dynamic": false, + "type": "string", + "enum": [ + "BROTLI", + "BZIP2", + "DEFLATE", + "DEFLATE64", + "GZIP", + "LZ4BLOCK", + "LZ4FRAME", + "LZMA", + "SNAPPY", + "SNAPPYFRAME", + "XZ", + "Z", + "ZSTD" + ], + "title": "The algorithm compression of the archive file" + }, + "description": { + "type": "string" + }, + "disabled": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "from": { + "$dynamic": true, + "type": "string", + "title": "The file's internal storage URI." + }, + "id": { + "type": "string", + "minLength": 1, + "pattern": "^[a-zA-Z0-9][a-zA-Z0-9_-]*" + }, + "logLevel": { + "type": "string", + "enum": ["ERROR", "WARN", "INFO", "DEBUG", "TRACE"] + }, + "retry": { + "oneOf": [ + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Constant-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Exponential-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Random-2" + } + ] + }, + "timeout": { + "type": "string", + "format": "duration" + }, + "type": { + "const": "io.kestra.plugin.compress.FileCompress" + }, + "workerGroup": { + "$ref": "#/definitions/io.kestra.core.models.tasks.WorkerGroup" + } + }, + "required": ["compression", "from", "id", "type"], + "title": "Compress a file.", + "markdownDescription": "##### Examples\n\u003E \n```yaml\nfrom: \"{{ inputs.files }}\"\ncompression: Z\n```" + }, + "io.kestra.plugin.compress.FileDecompress": { + "type": "object", + "properties": { + "allowFailure": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "compression": { + "$dynamic": false, + "type": "string", + "enum": [ + "BROTLI", + "BZIP2", + "DEFLATE", + "DEFLATE64", + "GZIP", + "LZ4BLOCK", + "LZ4FRAME", + "LZMA", + "SNAPPY", + "SNAPPYFRAME", + "XZ", + "Z", + "ZSTD" + ], + "title": "The algorithm compression of the archive file" + }, + "description": { + "type": "string" + }, + "disabled": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "from": { + "$dynamic": true, + "type": "string", + "title": "The file's internal storage URI." + }, + "id": { + "type": "string", + "minLength": 1, + "pattern": "^[a-zA-Z0-9][a-zA-Z0-9_-]*" + }, + "logLevel": { + "type": "string", + "enum": ["ERROR", "WARN", "INFO", "DEBUG", "TRACE"] + }, + "retry": { + "oneOf": [ + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Constant-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Exponential-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Random-2" + } + ] + }, + "timeout": { + "type": "string", + "format": "duration" + }, + "type": { + "const": "io.kestra.plugin.compress.FileDecompress" + }, + "workerGroup": { + "$ref": "#/definitions/io.kestra.core.models.tasks.WorkerGroup" + } + }, + "required": ["compression", "from", "id", "type"], + "title": "Decompress a file.", + "markdownDescription": "##### Examples\n\u003E \n```yaml\nfrom: \"{{ inputs.files }}\"\ncompression: Z\n```" + }, + "io.kestra.plugin.core.condition.DateTimeBetweenCondition": { + "type": "object", + "properties": { + "after": { + "$dynamic": false, + "type": "string", + "format": "date-time", + "title": "The date to test must be after this one.", + "markdownDescription": "Must be a valid ISO 8601 datetime with the zone identifier (use 'Z' for the default zone identifier)." + }, + "before": { + "$dynamic": false, + "type": "string", + "format": "date-time", + "title": "The date to test must be before this one.", + "markdownDescription": "Must be a valid ISO 8601 datetime with the zone identifier (use 'Z' for the default zone identifier)." + }, + "date": { + "$dynamic": true, + "type": "string", + "title": "The date to test.", + "default": "{{ trigger.date }}", + "markdownDescription": "Can be any variable or any valid ISO 8601 datetime. By default, it will use the trigger date.\n\nDefault value is : `\"{{ trigger.date }}\"`" + }, + "type": { + "const": "io.kestra.plugin.core.condition.DateTimeBetweenCondition" + } + }, + "required": ["type"], + "title": "Condition to allow events between two specific datetime values.", + "markdownDescription": "##### Examples\n\u003E \n```yaml\n# This will evaluate to true when the trigger date falls after the `after` date.\n- conditions:\n - type: io.kestra.plugin.core.condition.DateTimeBetweenCondition\n date: \"{{ trigger.date }}\"\n after: \"2024-01-01T08:30:00Z\"\n\n# This will evaluate to true when the trigger date falls between the `before` and `after` dates.\n- conditions:\n - type: io.kestra.plugin.core.condition.DateTimeBetweenCondition\n date: \"{{ trigger.date }}\"\n before: \"2024-01-01T08:30:00Z\"\n after: \"2024-12-31T23:30:00Z\"\n```" + }, + "io.kestra.plugin.core.condition.DayWeekCondition": { + "type": "object", + "properties": { + "date": { + "$dynamic": true, + "type": "string", + "title": "The date to test.", + "default": "{{ trigger.date }}", + "markdownDescription": "Can be any variable or any valid ISO 8601 datetime. By default, it will use the trigger date.\n\nDefault value is : `\"{{ trigger.date }}\"`" + }, + "dayOfWeek": { + "$dynamic": false, + "type": "string", + "enum": [ + "MONDAY", + "TUESDAY", + "WEDNESDAY", + "THURSDAY", + "FRIDAY", + "SATURDAY", + "SUNDAY" + ], + "title": "The day of week." + }, + "type": { + "const": "io.kestra.plugin.core.condition.DayWeekCondition" + } + }, + "required": ["dayOfWeek", "type"], + "title": "Condition to allow events on weekdays.", + "markdownDescription": "##### Examples\n\u003E \n```yaml\n- conditions:\n - type: io.kestra.plugin.core.condition.DayWeekCondition\n dayOfWeek: \"MONDAY\"\n```" + }, + "io.kestra.plugin.core.condition.DayWeekInMonthCondition": { + "type": "object", + "properties": { + "date": { + "$dynamic": true, + "type": "string", + "title": "The date to test.", + "default": "{{ trigger.date }}", + "markdownDescription": "Can be any variable or any valid ISO 8601 datetime. By default, it will use the trigger date.\n\nDefault value is : `\"{{ trigger.date }}\"`" + }, + "dayInMonth": { + "$dynamic": false, + "type": "string", + "enum": ["FIRST", "LAST", "SECOND", "THIRD", "FOURTH"], + "title": "Are you looking for the first or the last day in the month?" + }, + "dayOfWeek": { + "$dynamic": false, + "type": "string", + "enum": [ + "MONDAY", + "TUESDAY", + "WEDNESDAY", + "THURSDAY", + "FRIDAY", + "SATURDAY", + "SUNDAY" + ], + "title": "The day of week." + }, + "type": { + "const": "io.kestra.plugin.core.condition.DayWeekInMonthCondition" + } + }, + "required": ["dayInMonth", "dayOfWeek", "type"], + "title": "Condition to allow events on weekdays relative to current month (first, last, ...)", + "markdownDescription": "##### Examples\n\u003E \n```yaml\n- conditions:\n - type: io.kestra.plugin.core.condition.DayWeekInMonthCondition\n dayOfWeek: MONDAY\n dayInMonth: FIRST\n```" + }, + "io.kestra.plugin.core.condition.ExecutionFlowCondition": { + "type": "object", + "properties": { + "flowId": { + "$dynamic": false, + "type": "string", + "title": "The flow id." + }, + "namespace": { + "$dynamic": false, + "type": "string", + "title": "The namespace of the flow." + }, + "type": { + "const": "io.kestra.plugin.core.condition.ExecutionFlowCondition" + } + }, + "required": ["flowId", "namespace", "type"], + "title": "Condition for a specific flow of an execution.", + "markdownDescription": "##### Examples\n\u003E \n```yaml\n- conditions:\n - type: io.kestra.plugin.core.condition.ExecutionFlowCondition\n namespace: company.team\n flowId: my-current-flow\n```" + }, + "io.kestra.plugin.core.condition.ExecutionLabelsCondition": { + "type": "object", + "properties": { + "labels": { + "$dynamic": false, + "oneOf": [ + { + "type": "array", + "items": {} + }, + { + "type": "object" + } + ], + "markdownDescription": "List of labels to match in the execution." + }, + "type": { + "const": "io.kestra.plugin.core.condition.ExecutionLabelsCondition" + } + }, + "required": ["labels", "type"], + "title": "Condition that check labels of an execution.", + "markdownDescription": "##### Examples\n\u003E \n```yaml\n- conditions:\n - type: io.kestra.plugin.core.condition.ExecutionLabelsCondition\n labels:\n owner: john.doe\n```" + }, + "io.kestra.plugin.core.condition.ExecutionNamespaceCondition": { + "type": "object", + "properties": { + "comparison": { + "$dynamic": false, + "type": "string", + "enum": ["EQUALS", "PREFIX", "SUFFIX"], + "title": "Comparison to use when checking if namespace matches. If not provided, it will use `EQUALS` by default." + }, + "namespace": { + "$dynamic": false, + "type": "string", + "title": "String against which to match the execution namespace depending on the provided comparison." + }, + "prefix": { + "$dynamic": false, + "type": "boolean", + "title": "Whether to look at the flow namespace by prefix. Shortcut for `comparison: PREFIX`.", + "default": false, + "markdownDescription": "Only used when `comparison` is not set\n\nDefault value is : `false`" + }, + "type": { + "const": "io.kestra.plugin.core.condition.ExecutionNamespaceCondition" + } + }, + "required": ["namespace", "type"], + "title": "Condition for an execution namespace.", + "markdownDescription": "##### Examples\n\u003E \n```yaml\n- conditions:\n - type: io.kestra.plugin.core.condition.ExecutionNamespaceCondition\n namespace: company.team\n comparison: PREFIX\n```" + }, + "io.kestra.plugin.core.condition.ExecutionOutputsCondition": { + "type": "object", + "properties": { + "expression": { + "$dynamic": false, + "type": "string", + "minLength": 1 + }, + "type": { + "const": "io.kestra.plugin.core.condition.ExecutionOutputsCondition" + } + }, + "required": ["expression", "type"], + "title": "Condition based on the outputs of an execution.", + "markdownDescription": "The condition returns `false` if the execution has no output. If the result is an empty string, a space, or `false`, the condition will also be considered as `false`.##### Examples\n\u003E A condition that will return true for an output matching a specific value.\n```yaml\n- conditions:\n - type: io.kestra.plugin.core.condition.ExecutionOutputsCondition\n expression: {{ trigger.outputs.status_code == '200' }}\n```" + }, + "io.kestra.plugin.core.condition.ExecutionStatusCondition": { + "type": "object", + "properties": { + "in": { + "$dynamic": false, + "title": "List of states that are authorized.", + "type": "array", + "items": { + "$dynamic": false, + "type": "string", + "enum": [ + "CREATED", + "RUNNING", + "PAUSED", + "RESTARTED", + "KILLING", + "SUCCESS", + "WARNING", + "FAILED", + "KILLED", + "CANCELLED", + "QUEUED", + "RETRYING", + "RETRIED" + ] + } + }, + "notIn": { + "$dynamic": false, + "title": "List of states that aren't authorized.", + "type": "array", + "items": { + "$dynamic": false, + "type": "string", + "enum": [ + "CREATED", + "RUNNING", + "PAUSED", + "RESTARTED", + "KILLING", + "SUCCESS", + "WARNING", + "FAILED", + "KILLED", + "CANCELLED", + "QUEUED", + "RETRYING", + "RETRIED" + ] + } + }, + "type": { + "const": "io.kestra.plugin.core.condition.ExecutionStatusCondition" + } + }, + "required": ["type"], + "title": "Condition based on execution status.", + "markdownDescription": "##### Examples\n\u003E \n```yaml\n- conditions:\n - type: io.kestra.plugin.core.condition.ExecutionStatusCondition\n in:\n - SUCCESS\n notIn: \n - FAILED\n```" + }, + "io.kestra.plugin.core.condition.ExpressionCondition": { + "type": "object", + "properties": { + "expression": { + "$dynamic": false, + "type": "string", + "minLength": 1 + }, + "type": { + "const": "io.kestra.plugin.core.condition.ExpressionCondition" + } + }, + "required": ["expression", "type"], + "title": "Condition based on variable expression.", + "markdownDescription": "If the result is an empty string, a string containing only space or `false`, the condition will be considered as false.##### Examples\n\u003E A condition that will return false for a missing variable.\n```yaml\n- conditions:\n - type: io.kestra.plugin.core.condition.ExpressionCondition\n expression: {{ unknown is defined }}\n```" + }, + "io.kestra.plugin.core.condition.FlowCondition": { + "$deprecated": "true", + "type": "object", + "properties": { + "flowId": { + "$dynamic": false, + "type": "string", + "title": "The flow id." + }, + "namespace": { + "$dynamic": false, + "type": "string", + "title": "The namespace of the flow." + }, + "type": { + "const": "io.kestra.plugin.core.condition.FlowCondition" + } + }, + "required": ["flowId", "namespace", "type"], + "title": "Condition for a specific flow. Note that this condition is deprecated, use `io.kestra.plugin.core.condition.ExecutionFlowCondition` instead.", + "markdownDescription": "##### Examples\n\u003E \n```yaml\n- conditions:\n - type: io.kestra.plugin.core.condition.FlowCondition\n namespace: company.team\n flowId: my-current-flow\n```" + }, + "io.kestra.plugin.core.condition.FlowNamespaceCondition": { + "$deprecated": "true", + "type": "object", + "properties": { + "namespace": { + "$dynamic": false, + "type": "string", + "title": "The namespace of the flow or the prefix if `prefix` is true." + }, + "prefix": { + "$dynamic": false, + "type": "boolean", + "title": "If we must look at the flow namespace by prefix (checked using startWith). The prefix is case sensitive.", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "type": { + "const": "io.kestra.plugin.core.condition.FlowNamespaceCondition" + } + }, + "required": ["namespace", "type"], + "title": "Condition for a flow namespace.", + "markdownDescription": "Use `io.kestra.plugin.core.condition.ExecutionNamespaceCondition` instead.##### Examples\n\u003E \n```yaml\n- conditions:\n - type: io.kestra.plugin.core.condition.FlowNamespaceCondition\n namespace: io.kestra.tests\n prefix: true\n```" + }, + "io.kestra.plugin.core.condition.HasRetryAttemptCondition": { + "type": "object", + "properties": { + "in": { + "$dynamic": false, + "title": "List of states that are authorized.", + "type": "array", + "items": { + "$dynamic": false, + "type": "string", + "enum": [ + "CREATED", + "RUNNING", + "PAUSED", + "RESTARTED", + "KILLING", + "SUCCESS", + "WARNING", + "FAILED", + "KILLED", + "CANCELLED", + "QUEUED", + "RETRYING", + "RETRIED" + ] + } + }, + "notIn": { + "$dynamic": false, + "title": "List of states that aren't authorized.", + "type": "array", + "items": { + "$dynamic": false, + "type": "string", + "enum": [ + "CREATED", + "RUNNING", + "PAUSED", + "RESTARTED", + "KILLING", + "SUCCESS", + "WARNING", + "FAILED", + "KILLED", + "CANCELLED", + "QUEUED", + "RETRYING", + "RETRIED" + ] + } + }, + "type": { + "const": "io.kestra.plugin.core.condition.HasRetryAttemptCondition" + } + }, + "required": ["type"], + "title": "Condition that matches if any taskRun has retry attempts.", + "markdownDescription": "##### Examples\n\u003E \n```yaml\n- conditions:\n - type: io.kestra.plugin.core.condition.HasRetryAttemptCondition\n in:\n - KILLED\n```" + }, + "io.kestra.plugin.core.condition.MultipleCondition": { + "type": "object", + "properties": { + "conditions": { + "$dynamic": false, + "type": "object", + "title": "The list of conditions to wait for", + "additionalProperties": { + "$ref": "#/definitions/io.kestra.core.models.conditions.Condition" + }, + "minProperties": 1, + "markdownDescription": "The key must be unique for a trigger since it will be use to store previous result." + }, + "id": { + "$dynamic": false, + "type": "string", + "title": "A unique id for the whole flow", + "minLength": 1, + "pattern": "^[a-zA-Z0-9][a-zA-Z0-9_-]*" + }, + "type": { + "const": "io.kestra.plugin.core.condition.MultipleCondition" + }, + "window": { + "$dynamic": false, + "type": "string", + "format": "duration", + "title": "The duration of the window", + "markdownDescription": "See [ISO_8601 Durations](https://en.wikipedia.org/wiki/ISO_8601#Durations) for more information of available duration value.\nThe start of the window is always based on midnight except if you set windowAdvance parameter. Eg if you have a 10 minutes (PT10M) window, the first window will be 00:00 to 00:10 and a new window will be started each 10 minutes" + }, + "windowAdvance": { + "$dynamic": false, + "type": "string", + "format": "duration", + "title": "The window advance duration", + "markdownDescription": "Allow to specify the start hour of the window\nEg: you want a window of 6 hours (window=PT6H). By default the check will be done between: \n00:00 and 06:00 - 06:00 and 12:00 - 12:00 and 18:00 - 18:00 and 00:00 If you want to check the window between: \n03:00 and 09:00 - 09:00 and 15:00 - 15:00 and 21:00 - 21:00 and 3:00You will have to shift the window of 3 hours by settings windowAdvance: PT3H" + } + }, + "required": ["conditions", "id", "type", "window", "windowAdvance"], + "title": "Condition for a list of flows.", + "markdownDescription": "Trigger when all the flows are successfully executed for the first time during the `window` duration.##### Examples\n\u003E A flow that is waiting for 2 flows to run successfully in a day\n```yaml\ntriggers:\n - id: multiple-listen-flow\n type: io.kestra.plugin.core.trigger.Flow\n conditions:\n - type: io.kestra.plugin.core.condition.ExecutionStatusCondition\n in:\n - SUCCESS\n - id: multiple\n type: io.kestra.plugin.core.condition.MultipleCondition\n window: P1D\n windowAdvance: P0D\n conditions:\n flow-a:\n type: io.kestra.plugin.core.condition.ExecutionFlowCondition\n namespace: io.kestra.demo\n flowId: multiplecondition-flow-a\n flow-b:\n type: io.kestra.plugin.core.condition.ExecutionFlowCondition\n namespace: io.kestra.demo\n flowId: multiplecondition-flow-b\n```" + }, + "io.kestra.plugin.core.condition.NotCondition": { + "type": "object", + "properties": { + "conditions": { + "$dynamic": false, + "title": "The list of conditions to exclude.", + "minItems": 1, + "markdownDescription": "If any conditions is true, it will prevent the event's execution.", + "type": "array", + "items": { + "oneOf": [ + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.DateTimeBetweenCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.DayWeekCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.DayWeekInMonthCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.ExecutionFlowCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.ExecutionLabelsCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.ExecutionNamespaceCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.ExecutionOutputsCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.ExecutionStatusCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.ExpressionCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.FlowCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.FlowNamespaceCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.HasRetryAttemptCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.MultipleCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.NotCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.OrCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.PublicHolidayCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.TimeBetweenCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.WeekendCondition" + }, + { + "$dynamic": false + } + ] + } + ] + } + }, + "type": { + "const": "io.kestra.plugin.core.condition.NotCondition" + } + }, + "required": ["conditions", "type"], + "title": "Condition to exclude others conditions.", + "markdownDescription": "##### Examples\n\u003E \n```yaml\n- conditions:\n - type: io.kestra.plugin.core.condition.NotCondition\n conditions:\n - type: io.kestra.plugin.core.condition.DateBetweenCondition\n after: \"2013-09-08T16:19:12\"\n```" + }, + "io.kestra.plugin.core.condition.OrCondition": { + "type": "object", + "properties": { + "conditions": { + "$dynamic": false, + "title": "The list of conditions to validate.", + "minItems": 1, + "markdownDescription": "If any condition is true, it will allow the event's execution.", + "type": "array", + "items": { + "oneOf": [ + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.DateTimeBetweenCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.DayWeekCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.DayWeekInMonthCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.ExecutionFlowCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.ExecutionLabelsCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.ExecutionNamespaceCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.ExecutionOutputsCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.ExecutionStatusCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.ExpressionCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.FlowCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.FlowNamespaceCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.HasRetryAttemptCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.MultipleCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.NotCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.OrCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.PublicHolidayCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.TimeBetweenCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.WeekendCondition" + }, + { + "$dynamic": false + } + ] + } + ] + } + }, + "type": { + "const": "io.kestra.plugin.core.condition.OrCondition" + } + }, + "required": ["conditions", "type"], + "title": "Condition to have at least one condition validated.", + "markdownDescription": "##### Examples\n\u003E \n```yaml\n- conditions:\n - type: io.kestra.plugin.core.condition.OrCondition\n conditions:\n - type: io.kestra.plugin.core.condition.DayWeekCondition\n dayOfWeek: \"MONDAY\"\n - type: io.kestra.plugin.core.condition.DayWeekCondition\n dayOfWeek: \"SUNDAY\"\n```" + }, + "io.kestra.plugin.core.condition.PublicHolidayCondition": { + "type": "object", + "properties": { + "country": { + "$dynamic": true, + "type": "string", + "title": "[ISO 3166-1 alpha-2](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2) country code. If not set, it uses the country code from the default locale.", + "markdownDescription": "It uses the [Jollyday](https://github.com/focus-shift/jollyday) library for public holiday calendar that supports more than 70 countries." + }, + "date": { + "$dynamic": true, + "type": "string", + "title": "The date to test.", + "default": "{{ trigger.date }}", + "minLength": 1, + "markdownDescription": "Can be any variable or any valid ISO 8601 datetime. By default, it will use the trigger date.\n\nDefault value is : `\"{{ trigger.date }}\"`" + }, + "subDivision": { + "$dynamic": true, + "type": "string", + "title": "[ISO 3166-2](https://en.wikipedia.org/wiki/ISO_3166-2) country subdivision (e.g., provinces and states) code.", + "markdownDescription": "It uses the [Jollyday](https://github.com/focus-shift/jollyday) library for public holiday calendar that supports more than 70 countries." + }, + "type": { + "const": "io.kestra.plugin.core.condition.PublicHolidayCondition" + } + }, + "required": ["type"], + "title": "Condition to allow events on public holidays.", + "markdownDescription": "##### Examples\n\u003E Condition to allow events on public holidays.\n```yaml\n- conditions:\n - type: io.kestra.plugin.core.condition.PublicHolidayCondition\n country: FR\n\n```\n\n\u003E Conditions to allow events on work days.\n```yaml\n- conditions:\n - type: io.kestra.plugin.core.condition.NotCondition\n conditions:\n - type: io.kestra.plugin.core.condition.PublicHolidayCondition\n country: FR\n - type: io.kestra.plugin.core.condition.WeekendCondition\n\n```" + }, + "io.kestra.plugin.core.condition.TimeBetweenCondition": { + "type": "object", + "properties": { + "after": { + "$dynamic": false, + "type": "string", + "format": "time", + "title": "The time to test must be after this one.", + "markdownDescription": "Must be a valid ISO 8601 time with offset." + }, + "before": { + "$dynamic": false, + "type": "string", + "format": "time", + "title": "The time to test must be before this one.", + "markdownDescription": "Must be a valid ISO 8601 time with offset." + }, + "date": { + "$dynamic": true, + "type": "string", + "title": "The time to test.", + "default": "{{ trigger.date }}", + "markdownDescription": "Can be any variable or any valid ISO 8601 time. By default, it will use the trigger date.\n\nDefault value is : `\"{{ trigger.date }}\"`" + }, + "type": { + "const": "io.kestra.plugin.core.condition.TimeBetweenCondition" + } + }, + "required": ["type"], + "title": "Condition to allow events between two specific times.", + "markdownDescription": "##### Examples\n\u003E \n```yaml\n- conditions:\n - type: io.kestra.plugin.core.condition.TimeBetweenCondition\n after: \"16:19:12+02:00\"\n```" + }, + "io.kestra.plugin.core.condition.WeekendCondition": { + "type": "object", + "properties": { + "date": { + "$dynamic": true, + "type": "string", + "title": "The date to test.", + "default": "{{ trigger.date }}", + "markdownDescription": "Can be any variable or any valid ISO 8601 datetime. By default, it will use the trigger date.\n\nDefault value is : `\"{{ trigger.date }}\"`" + }, + "type": { + "const": "io.kestra.plugin.core.condition.WeekendCondition" + } + }, + "required": ["type"], + "title": "Condition to allow events on weekend.", + "markdownDescription": "##### Examples\n\u003E \n```yaml\n- conditions:\n - type: io.kestra.plugin.core.condition.WeekendCondition\n```" + }, + "io.kestra.plugin.core.debug.Echo": { + "$deprecated": "true", + "type": "object", + "properties": { + "allowFailure": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "description": { + "type": "string" + }, + "disabled": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "format": { + "$dynamic": true, + "type": "string", + "minLength": 1 + }, + "id": { + "type": "string", + "minLength": 1, + "pattern": "^[a-zA-Z0-9][a-zA-Z0-9_-]*" + }, + "level": { + "$dynamic": false, + "type": "string", + "enum": ["ERROR", "WARN", "INFO", "DEBUG", "TRACE"], + "default": "INFO", + "markdownDescription": "Default value is : `INFO`" + }, + "logLevel": { + "type": "string", + "enum": ["ERROR", "WARN", "INFO", "DEBUG", "TRACE"] + }, + "retry": { + "oneOf": [ + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Constant-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Exponential-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Random-2" + } + ] + }, + "timeout": { + "type": "string", + "format": "duration" + }, + "type": { + "const": "io.kestra.plugin.core.debug.Echo" + }, + "workerGroup": { + "$ref": "#/definitions/io.kestra.core.models.tasks.WorkerGroup" + } + }, + "required": ["format", "id", "type"], + "title": "Log a message in the task logs.", + "markdownDescription": "This task is deprecated, please use the `io.kestra.plugin.core.log.Log` task instead.##### Examples\n\u003E \n```yaml\nlevel: WARN\nformat: \"{{task.id}} \u003E {{taskrun.startDate}}\"\n```" + }, + "io.kestra.plugin.core.debug.Return": { + "$metrics": [ + { + "name": "length", + "type": "counter", + "unit": "", + "description": "" + }, + { + "name": "duration", + "type": "timer", + "unit": "", + "description": "" + } + ], + "type": "object", + "properties": { + "allowFailure": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "description": { + "type": "string" + }, + "disabled": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "format": { + "$dynamic": true, + "type": "string", + "title": "The templated string to render." + }, + "id": { + "type": "string", + "minLength": 1, + "pattern": "^[a-zA-Z0-9][a-zA-Z0-9_-]*" + }, + "logLevel": { + "type": "string", + "enum": ["ERROR", "WARN", "INFO", "DEBUG", "TRACE"] + }, + "retry": { + "oneOf": [ + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Constant-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Exponential-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Random-2" + } + ] + }, + "timeout": { + "type": "string", + "format": "duration" + }, + "type": { + "const": "io.kestra.plugin.core.debug.Return" + }, + "workerGroup": { + "$ref": "#/definitions/io.kestra.core.models.tasks.WorkerGroup" + } + }, + "required": ["id", "type"], + "title": "Return a value for debugging purposes.", + "markdownDescription": "This task is mostly useful for troubleshooting.\n\nIt allows you to return some templated functions, inputs or outputs.##### Examples\n\u003E \n```yaml\nformat: \"{{ task.id }} \u003E {{ taskrun.startDate }}\"\n```" + }, + "io.kestra.plugin.core.execution.Count": { + "type": "object", + "properties": { + "allowFailure": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "description": { + "type": "string" + }, + "disabled": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "endDate": { + "$dynamic": true, + "type": "string", + "title": "The end date." + }, + "expression": { + "$dynamic": true, + "type": "string", + "title": "The expression to look at against each flow.", + "markdownDescription": "The expression is such that expression must return `true` in order to keep the current line.\nSome examples: \n- ```yaml {{ eq count 0 }} ```: no execution found\n- ```yaml {{ gte count 5 }} ```: more than 5 executions\n" + }, + "flows": { + "$dynamic": false, + "title": "A list of flows to be filtered.", + "minItems": 1, + "type": "array", + "items": { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.core.models.executions.statistics.Flow" + }, + { + "$dynamic": false + } + ] + } + }, + "id": { + "type": "string", + "minLength": 1, + "pattern": "^[a-zA-Z0-9][a-zA-Z0-9_-]*" + }, + "logLevel": { + "type": "string", + "enum": ["ERROR", "WARN", "INFO", "DEBUG", "TRACE"] + }, + "retry": { + "oneOf": [ + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Constant-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Exponential-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Random-2" + } + ] + }, + "startDate": { + "$dynamic": true, + "type": "string", + "title": "The start date." + }, + "states": { + "$dynamic": false, + "title": "A list of states to be filtered.", + "type": "array", + "items": { + "$dynamic": false, + "type": "string", + "enum": [ + "CREATED", + "RUNNING", + "PAUSED", + "RESTARTED", + "KILLING", + "SUCCESS", + "WARNING", + "FAILED", + "KILLED", + "CANCELLED", + "QUEUED", + "RETRYING", + "RETRIED" + ] + } + }, + "timeout": { + "type": "string", + "format": "duration" + }, + "type": { + "const": "io.kestra.plugin.core.execution.Count" + }, + "workerGroup": { + "$ref": "#/definitions/io.kestra.core.models.tasks.WorkerGroup" + } + }, + "required": ["expression", "flows", "id", "startDate", "type"], + "title": "List execution counts for a list of flow.", + "markdownDescription": "This can be used to send an alert if a condition is met about execution counts.##### Examples\n\u003E Send a slack notification if there is no execution for a flow for the last 24 hours.\n```yaml\nid: executions-count\nnamespace: company.team\n\ntasks:\n - id: counts\n type: io.kestra.plugin.core.execution.Counts\n expression: \"{{ count == 0 }}\"\n flows:\n - namespace: company.team\n flowId: logs\n startDate: \"{{ now() | dateAdd(-1, 'DAYS') }}\"\n - id: each_parallel\n type: io.kestra.plugin.core.flow.EachParallel\n tasks:\n - id: slack_incoming_webhook\n type: io.kestra.plugin.notifications.slack.SlackIncomingWebhook\n payload: |\n {\n \"channel\": \"#run-channel\",\n \"text\": \":warning: Flow `{{ jq taskrun.value '.namespace' true }}`.`{{ jq taskrun.value '.flowId' true }}` has no execution for last 24h!\"\n }\n url: \"https://hooks.slack.com/services/T00000000/B00000000/XXXXXXXXXXXXXXXXXXXXXXXX\"\n value: \"{{ jq outputs.counts.results '. | select(. != null) | .[]' }}\"\n\ntriggers:\n - id: schedule\n type: io.kestra.plugin.core.trigger.Schedule\n backfill: {}\n cron: \"0 4 * * * \"\n```" + }, + "io.kestra.plugin.core.execution.Fail": { + "type": "object", + "properties": { + "allowFailure": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "condition": { + "$dynamic": true, + "type": "string", + "title": "Optional condition, must coerce to a boolean.", + "markdownDescription": "Boolean coercion allows 0, -0, and '' to coerce to false, all other values to coerce to true." + }, + "description": { + "type": "string" + }, + "disabled": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "errorMessage": { + "$dynamic": true, + "type": "string", + "title": "Optional error message.", + "default": "Task failure", + "markdownDescription": "Default value is : `Task failure`" + }, + "id": { + "type": "string", + "minLength": 1, + "pattern": "^[a-zA-Z0-9][a-zA-Z0-9_-]*" + }, + "logLevel": { + "type": "string", + "enum": ["ERROR", "WARN", "INFO", "DEBUG", "TRACE"] + }, + "retry": { + "oneOf": [ + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Constant-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Exponential-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Random-2" + } + ] + }, + "timeout": { + "type": "string", + "format": "duration" + }, + "type": { + "const": "io.kestra.plugin.core.execution.Fail" + }, + "workerGroup": { + "$ref": "#/definitions/io.kestra.core.models.tasks.WorkerGroup" + } + }, + "required": ["id", "type"], + "title": "Fail the execution.", + "markdownDescription": "Used to fail the execution, for example, on a switch branch or on some conditions based on the execution context.##### Examples\n\u003E Fail on a switch branch\n```yaml\nid: fail-on-switch\nnamespace: company.team\n\ninputs:\n - id: param\n type: STRING\n required: true\n\ntasks:\n - id: switch\n type: io.kestra.plugin.core.flow.Switch\n value: \"{{inputs.param}}\"\n cases:\n case1:\n - id: case1\n type: io.kestra.plugin.core.log.Log\n message: Case 1\n case2:\n - id: case2\n type: io.kestra.plugin.core.log.Log\n message: Case 2\n notexist:\n - id: fail\n type: io.kestra.plugin.core.execution.Fail\n default:\n - id: default\n type: io.kestra.plugin.core.log.Log\n message: default\n```\n\n\u003E Fail on a condition\n```yaml\nid: fail-on-condition\nnamespace: company.team\n\ninputs:\n - name: param\n type: STRING\n required: true\n\ntasks:\n - id: before\n type: io.kestra.plugin.core.debug.Echo\n format: I'm before the fail on condition \n - id: fail\n type: io.kestra.plugin.core.execution.Fail\n condition: '{{ inputs.param == \"fail\" }}'\n - id: after\n type: io.kestra.plugin.core.debug.Echo\n format: I'm after the fail on condition \n```" + }, + "io.kestra.plugin.core.execution.Labels": { + "type": "object", + "properties": { + "allowFailure": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "description": { + "type": "string" + }, + "disabled": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "id": { + "type": "string", + "minLength": 1, + "pattern": "^[a-zA-Z0-9][a-zA-Z0-9_-]*" + }, + "labels": { + "$dynamic": true, + "title": "Labels to add to the current execution.", + "additionalProperties": { + "type": "string" + }, + "oneOf": [ + { + "type": "string" + }, + { + "type": "array", + "items": { + "$ref": "#/definitions/io.kestra.core.models.Label" + } + }, + { + "type": "object" + } + ], + "markdownDescription": "The value should result in a list of labels or a labelKey:labelValue map" + }, + "logLevel": { + "type": "string", + "enum": ["ERROR", "WARN", "INFO", "DEBUG", "TRACE"] + }, + "retry": { + "oneOf": [ + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Constant-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Exponential-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Random-2" + } + ] + }, + "timeout": { + "type": "string", + "format": "duration" + }, + "type": { + "const": "io.kestra.plugin.core.execution.Labels" + }, + "workerGroup": { + "$ref": "#/definitions/io.kestra.core.models.tasks.WorkerGroup" + } + }, + "required": ["id", "labels", "type"], + "title": "Allow to add or overwrite labels for the current execution at runtime.", + "markdownDescription": "##### Examples\n\u003E Add labels based on a webhook payload\n```yaml\nid: webhook-based-labels\nnamespace: company.team\ntasks:\n - id: update-labels-with-map\n type: io.kestra.plugin.core.execution.Labels\n labels:\n customerId: \"{{trigger.body.customerId}}\"\n - id: by-list\n type: io.kestra.plugin.core.execution.Labels\n labels:\n - key: orderId\n value: \"{{trigger.body.orderId}}\"\n - key: orderType\n value: \"{{trigger.body.orderType}}\"\ntriggers:\n - id: webhook\n key: order-webhook\n type: io.kestra.plugin.core.trigger.Webhook\n conditions:\n - type: io.kestra.plugin.core.condition.ExpressionCondition\n expression: \"{{ trigger.body.customerId is defined and trigger.body.orderId is defined and trigger.body.orderType is defined }}\"\n```" + }, + "io.kestra.plugin.core.execution.PurgeExecutions": { + "type": "object", + "properties": { + "allowFailure": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "description": { + "type": "string" + }, + "disabled": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "endDate": { + "$dynamic": true, + "type": "string", + "title": "The maximum date to be purged.", + "markdownDescription": "All data of flows executed before this date will be purged." + }, + "flowId": { + "$dynamic": true, + "type": "string", + "title": "The flow ID to be purged.", + "markdownDescription": "You need to provide the `namespace` properties if you want to purge a flow." + }, + "id": { + "type": "string", + "minLength": 1, + "pattern": "^[a-zA-Z0-9][a-zA-Z0-9_-]*" + }, + "logLevel": { + "type": "string", + "enum": ["ERROR", "WARN", "INFO", "DEBUG", "TRACE"] + }, + "namespace": { + "$dynamic": true, + "type": "string", + "title": "Namespace whose flows need to be purged, or namespace of the flow that needs to be purged.", + "markdownDescription": "If `flowId` isn't provided, this is a namespace prefix, else the namespace of the flow." + }, + "purgeExecution": { + "$dynamic": false, + "type": "boolean", + "title": "Whether to purge executions.", + "default": true, + "markdownDescription": "Default value is : `true`" + }, + "purgeLog": { + "$dynamic": false, + "type": "boolean", + "title": "Whether to purge execution's logs.", + "default": true, + "markdownDescription": "This will only purge logs from executions not from triggers, and it will do it execution by execution.\nThe `io.kestra.plugin.core.log.PurgeLogs` task is a better fit to purge logs as it will purge logs in bulk, and will also purge logs not tied to an execution like trigger logs.\n\nDefault value is : `true`" + }, + "purgeMetric": { + "$dynamic": false, + "type": "boolean", + "title": "Whether to purge execution's metrics.", + "default": true, + "markdownDescription": "Default value is : `true`" + }, + "purgeStorage": { + "$dynamic": false, + "type": "boolean", + "title": "Whether to purge execution's files from the Kestra's internal storage.", + "default": true, + "markdownDescription": "Default value is : `true`" + }, + "retry": { + "oneOf": [ + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Constant-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Exponential-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Random-2" + } + ] + }, + "startDate": { + "$dynamic": true, + "type": "string", + "title": "The minimum date to be purged.", + "markdownDescription": "All data of flows executed after this date will be purged." + }, + "states": { + "$dynamic": false, + "title": "The state of the executions to be purged.", + "markdownDescription": "If not set, executions for any states will be purged.", + "type": "array", + "items": { + "$dynamic": false, + "type": "string", + "enum": [ + "CREATED", + "RUNNING", + "PAUSED", + "RESTARTED", + "KILLING", + "SUCCESS", + "WARNING", + "FAILED", + "KILLED", + "CANCELLED", + "QUEUED", + "RETRYING", + "RETRIED" + ] + } + }, + "timeout": { + "type": "string", + "format": "duration" + }, + "type": { + "const": "io.kestra.plugin.core.execution.PurgeExecutions" + }, + "workerGroup": { + "$ref": "#/definitions/io.kestra.core.models.tasks.WorkerGroup" + } + }, + "required": ["endDate", "id", "type"], + "title": "Purge executions, logs, metrics, and storage files.", + "markdownDescription": "This task can be used to purge flow executions data for all flows, for a specific namespace, or for a specific flow.##### Examples\n\u003E Purge all flow execution data for flows that ended more than one month ago.\n```yaml\nendDate: \"{{ now() | dateAdd(-1, 'MONTHS') }}\"\nstates: \n - KILLED\n - FAILED\n - WARNING\n - SUCCESS\n```" + }, + "io.kestra.plugin.core.execution.Resume": { + "type": "object", + "properties": { + "allowFailure": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "description": { + "type": "string" + }, + "disabled": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "executionId": { + "$dynamic": true, + "type": "string", + "title": "Filter for a specific execution.", + "markdownDescription": "If you explicitly define an `executionId`, Kestra will use that specific ID.\n\nIf another `namespace` and `flowId` properties are set, Kestra will look for a paused execution for that corresponding flow.\n\nIf `executionId` is not set, the task will use the ID of the current execution." + }, + "flowId": { + "$dynamic": true, + "type": "string", + "title": "Filter for a specific flow identifier in case `executionId` is set." + }, + "id": { + "type": "string", + "minLength": 1, + "pattern": "^[a-zA-Z0-9][a-zA-Z0-9_-]*" + }, + "inputs": { + "$dynamic": true, + "type": "object", + "title": "Inputs to be passed to the execution when it's resumed." + }, + "logLevel": { + "type": "string", + "enum": ["ERROR", "WARN", "INFO", "DEBUG", "TRACE"] + }, + "namespace": { + "$dynamic": true, + "type": "string", + "title": "Filter for a specific namespace in case `executionId` is set. In case you wonder why `executionId` is not enough — we require specifying the namespace to make permissions explicit. The Enterprise Edition of Kestra allows you to resume executions from another namespaces only if the permissions allow it. Check the [Allowed Namespaces](https://kestra.io/docs/enterprise/allowed-namespaces) documentation for more details." + }, + "retry": { + "oneOf": [ + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Constant-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Exponential-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Random-2" + } + ] + }, + "timeout": { + "type": "string", + "format": "duration" + }, + "type": { + "const": "io.kestra.plugin.core.execution.Resume" + }, + "workerGroup": { + "$ref": "#/definitions/io.kestra.core.models.tasks.WorkerGroup" + } + }, + "required": ["id", "type"], + "title": "Resume a paused execution. By default, the task assumes that you want to resume the current `executionId`. If you want to programmatically resume an execution of another flow, make sure to define the `executionId`, `flowId`, and `namespace` properties explicitly. Using the `inputs` property, you can additionally pass custom `onResume` input values to the execution.", + "markdownDescription": "##### Examples\n\u003E \n```yaml\nexecutionId: \"{{ trigger.executionId }}\"\n```" + }, + "io.kestra.plugin.core.flow.AllowFailure": { + "type": "object", + "properties": { + "allowFailure": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "description": { + "type": "string" + }, + "disabled": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "errors": { + "$dynamic": false, + "title": "List of tasks to run if any tasks failed on this FlowableTask.", + "type": "array", + "items": { + "oneOf": [ + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.debug.Echo" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.debug.Return" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.execution.Count" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.execution.Fail" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.execution.Labels" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.execution.PurgeExecutions" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.execution.Resume" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.flow.AllowFailure" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.flow.Dag" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.flow.EachParallel" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.flow.EachSequential" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.flow.ForEach" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.flow.ForEachItem" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.flow.If" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.flow.Parallel" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.flow.Pause" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.flow.Sequential" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.flow.Subflow" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.flow.Switch" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.flow.Template" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.flow.WaitFor" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.flow.WorkingDirectory" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.http.Download" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.http.Request" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.kv.Delete" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.kv.Get" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.kv.GetKeys" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.kv.Set" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.log.Fetch" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.log.Log" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.log.PurgeLogs" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.namespace.DeleteFiles" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.namespace.DownloadFiles" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.namespace.UploadFiles" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.output.OutputValues" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.state.Delete" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.state.Get" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.state.Set" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.storage.Concat" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.storage.DeduplicateItems" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.storage.Delete" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.storage.FilterItems" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.storage.LocalFiles" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.storage.PurgeCurrentExecutionFiles" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.storage.Reverse" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.storage.Size" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.storage.Split" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.templating.TemplatedTask" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.trigger.Toggle" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.hightouch.Sync" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.github.code.Search" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.github.commits.Search" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.github.issues.Comment" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.github.issues.Create" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.github.issues.Search" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.github.pulls.Create" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.github.pulls.Search" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.github.repositories.Search" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.github.topics.Search" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.github.users.Search" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.druid.Query" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.weaviate.BatchCreate" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.weaviate.Delete" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.weaviate.Query" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.weaviate.SchemaCreate" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.spark.JarSubmit" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.spark.PythonSubmit" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.spark.RSubmit" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.spark.SparkCLI" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.auth.OauthAccessToken" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.bigquery.Copy" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.bigquery.CopyPartitions" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.bigquery.CreateDataset" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.bigquery.CreateTable" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.bigquery.DeleteDataset" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.bigquery.DeletePartitions" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.bigquery.DeleteTable" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.bigquery.ExtractToGcs" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.bigquery.Load" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.bigquery.LoadFromGcs" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.bigquery.Query" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.bigquery.StorageWrite" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.bigquery.TableMetadata" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.bigquery.UpdateDataset" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.bigquery.UpdateTable" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.cli.GCloudCLI" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.dataproc.batches.PySparkSubmit" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.dataproc.batches.RSparkSubmit" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.dataproc.batches.SparkSqlSubmit" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.dataproc.batches.SparkSubmit" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.firestore.Delete" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.firestore.Get" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.firestore.Query" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.firestore.Set" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.gcs.Compose" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.gcs.Copy" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.gcs.CreateBucket" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.gcs.CreateBucketIamPolicy" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.gcs.Delete" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.gcs.DeleteBucket" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.gcs.DeleteList" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.gcs.Download" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.gcs.Downloads" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.gcs.List" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.gcs.UpdateBucket" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.gcs.Upload" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.gke.ClusterMetadata" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.pubsub.Consume" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.pubsub.Publish" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.vertexai.ChatCompletion" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.vertexai.CustomJob" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.vertexai.MultimodalCompletion" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.vertexai.TextCompletion" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.db2.Query" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.minio.Copy" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.minio.CreateBucket" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.minio.Delete" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.minio.DeleteList" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.minio.Download" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.minio.Downloads" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.minio.List" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.minio.Upload" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.soda.Scan" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.modal.cli.ModalCLI" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.rockset.Query" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.scripts.nashorn.Eval" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.scripts.nashorn.FileTransform" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.scripts.ruby.Commands" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.scripts.ruby.Script" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.mongodb.Bulk" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.mongodb.Delete" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.mongodb.Find" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.mongodb.InsertOne" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.mongodb.Load" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.mongodb.Update" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.debezium.postgres.Capture" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.BigQuery" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.BingAds" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.ChargeBee" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.ExchangeRateHost" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.FacebookAds" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.Fastly" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.GenericTap" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.GitHub" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.Gitlab" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.GoogleAdwords" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.GoogleAnalytics" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.GoogleSearchConsole" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.HubSpot" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.Marketo" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.Netsuite" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.PipelinewiseMongoDb" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.PipelinewiseMysql" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.PipelinewiseOracle" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.PipelinewisePostgres" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.PipelinewiseSqlServer" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.Quickbooks" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.Recharge" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.SageIntacct" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.Salesforce" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.Shopify" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.Slack" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.Stripe" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.Zendesk" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.Zoom" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.targets.AdswerveBigQuery" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.targets.Csv" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.targets.DatamillCoPostgres" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.targets.GenericTarget" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.targets.Json" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.targets.MeltanoSnowflake" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.targets.Oracle" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.targets.PipelinewisePostgres" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.targets.PipelinewiseRedshift" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.targets.PipelinewiseSnowflake" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.targets.SqlServer" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.scripts.julia.Commands" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.scripts.julia.Script" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.trino.Query" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.compress.ArchiveCompress" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.compress.ArchiveDecompress" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.compress.FileCompress" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.compress.FileDecompress" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.duckdb.Query" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.dataform.cli.DataformCLI" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.couchbase.Query" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.serdes.avro.AvroToIon" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.serdes.avro.IonToAvro" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.serdes.csv.CsvToIon" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.serdes.csv.IonToCsv" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.serdes.excel.ExcelToIon" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.serdes.excel.IonToExcel" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.serdes.json.IonToJson" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.serdes.json.JsonToIon" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.serdes.parquet.IonToParquet" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.serdes.parquet.ParquetToIon" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.serdes.xml.IonToXml" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.serdes.xml.XmlToIon" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.sqlserver.Batch" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.sqlserver.Query" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.powerbi.RefreshGroupDataset" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.core.tasks.scripts.Node" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.scripts.node.Commands" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.scripts.node.Script" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.docker.Build" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.docker.Run" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.oracle.Batch" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.oracle.Query" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.zendesk.tickets.Create" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.debezium.mysql.Capture" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.debezium.sqlserver.Capture" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.cassandra.astradb.Query" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.cassandra.standard.Query" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.openai.ChatCompletion" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.openai.CreateImage" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.postgresql.Batch" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.postgresql.CopyIn" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.postgresql.CopyOut" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.postgresql.Query" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.core.tasks.scripts.Bash" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.scripts.shell.Commands" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.scripts.shell.Script" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.scripts.r.Commands" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.scripts.r.Script" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.debezium.db2.Capture" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.tika.Parse" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jira.issues.Create" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jira.issues.CreateComment" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.debezium.oracle.Capture" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.git.Clone" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.git.Push" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.git.PushFlows" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.git.PushNamespaceFiles" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.git.Sync" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.git.SyncFlows" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.git.SyncNamespaceFiles" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.servicenow.Post" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.sybase.Query" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.as400.Query" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.clickhouse.BulkInsert" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.clickhouse.Query" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.scripts.groovy.Eval" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.scripts.groovy.FileTransform" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.redis.list.ListPop" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.redis.list.ListPush" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.redis.pubsub.Publish" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.redis.string.Delete" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.redis.string.Get" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.redis.string.Set" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.linear.issues.Create" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.malloy.CLI" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.neo4j.Batch" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.neo4j.Query" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.hubspot.tickets.Create" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.scripts.powershell.Commands" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.scripts.powershell.Script" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.cloudquery.CloudQueryCLI" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.cloudquery.Sync" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.nats.Consume" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.nats.Produce" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.amqp.Consume" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.amqp.CreateQueue" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.amqp.DeclareExchange" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.amqp.Publish" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.amqp.QueueBind" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.notifications.discord.DiscordExecution" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.notifications.discord.DiscordIncomingWebhook" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.notifications.google.GoogleChatExecution" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.notifications.google.GoogleChatIncomingWebhook" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.notifications.mail.MailExecution" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.notifications.mail.MailSend" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.notifications.opsgenie.OpsgenieAlert" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.notifications.opsgenie.OpsgenieExecution" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.notifications.pagerduty.PagerDutyAlert" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.notifications.pagerduty.PagerDutyExecution" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.notifications.sendgrid.SendGridMailExecution" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.notifications.sendgrid.SendGridMailSend" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.notifications.sentry.SentryAlert" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.notifications.sentry.SentryExecution" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.notifications.slack.SlackExecution" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.notifications.slack.SlackIncomingWebhook" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.notifications.teams.TeamsExecution" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.notifications.teams.TeamsIncomingWebhook" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.notifications.telegram.TelegramExecution" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.notifications.telegram.TelegramSend" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.notifications.twilio.TwilioAlert" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.notifications.twilio.TwilioExecution" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.notifications.whatsapp.WhatsAppExecution" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.notifications.whatsapp.WhatsAppIncomingWebhook" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.notifications.zenduty.ZendutyAlert" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.notifications.zenduty.ZendutyExecution" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.azure.batch.job.Create" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.azure.batch.pool.Resize" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.azure.cli.AzCLI" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.azure.eventhubs.Consume" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.azure.eventhubs.Produce" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.azure.storage.blob.Copy" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.azure.storage.blob.Delete" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.azure.storage.blob.DeleteList" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.azure.storage.blob.Download" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.azure.storage.blob.Downloads" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.azure.storage.blob.List" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.azure.storage.blob.SharedAccess" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.azure.storage.blob.Upload" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.azure.storage.table.Bulk" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.azure.storage.table.Delete" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.azure.storage.table.Get" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.azure.storage.table.List" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.transform.grok.TransformItems" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.transform.grok.TransformValue" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.kubernetes.PodCreate" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.kubernetes.kubectl.Apply" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.transform.jsonata.TransformItems" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.transform.jsonata.TransformValue" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.vertica.Batch" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.vertica.Query" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.solace.Consume" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.solace.Produce" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.ansible.cli.AnsibleCLI" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.elasticsearch.Bulk" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.elasticsearch.Get" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.elasticsearch.Load" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.elasticsearch.Put" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.elasticsearch.Request" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.elasticsearch.Scroll" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.elasticsearch.Search" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.pinot.Query" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.aws.athena.Query" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.aws.cli.AwsCLI" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.aws.dynamodb.DeleteItem" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.aws.dynamodb.GetItem" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.aws.dynamodb.PutItem" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.aws.dynamodb.Query" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.aws.dynamodb.Scan" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.aws.ecr.GetAuthToken" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.aws.eventbridge.PutEvents" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.aws.kinesis.PutRecords" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.aws.lambda.Invoke" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.aws.s3.Copy" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.aws.s3.CreateBucket" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.aws.s3.Delete" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.aws.s3.DeleteList" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.aws.s3.Download" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.aws.s3.Downloads" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.aws.s3.List" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.aws.s3.Upload" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.aws.sns.Publish" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.aws.sqs.Consume" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.aws.sqs.Publish" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.sqlmesh.cli.SQLMeshCLI" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.surrealdb.Query" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.vectorwise.Batch" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.vectorwise.Query" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.arrowflight.Query" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.terraform.cli.TerraformCLI" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.debezium.mongodb.Capture" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.fs.ftp.Delete" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.fs.ftp.Download" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.fs.ftp.Downloads" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.fs.ftp.List" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.fs.ftp.Move" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.fs.ftp.Upload" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.fs.ftp.Uploads" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.fs.ftps.Delete" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.fs.ftps.Download" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.fs.ftps.Downloads" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.fs.ftps.List" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.fs.ftps.Move" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.fs.ftps.Upload" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.fs.ftps.Uploads" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.fs.sftp.Delete" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.fs.sftp.Download" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.fs.sftp.Downloads" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.fs.sftp.List" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.fs.sftp.Move" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.fs.sftp.Upload" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.fs.sftp.Uploads" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.fs.smb.Delete" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.fs.smb.Download" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.fs.smb.Downloads" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.fs.smb.List" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.fs.smb.Move" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.fs.smb.Upload" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.fs.smb.Uploads" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.fs.ssh.Command" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.kafka.Consume" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.kafka.Produce" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.airflow.dags.TriggerDagRun" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.core.tasks.scripts.Python" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.scripts.python.Commands" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.scripts.python.Script" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.crypto.openpgp.Decrypt" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.crypto.openpgp.Encrypt" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.scripts.jython.Eval" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.scripts.jython.FileTransform" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.mysql.Batch" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.mysql.Query" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.snowflake.Download" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.snowflake.Query" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.snowflake.Upload" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.redshift.Query" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.ldap.Add" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.ldap.Delete" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.ldap.IonToLdif" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.ldap.LdifToIon" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.ldap.Modify" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.ldap.Search" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.databricks.cluster.CreateCluster" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.databricks.cluster.DeleteCluster" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.databricks.dbfs.Download" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.databricks.dbfs.Upload" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.databricks.job.CreateJob" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.databricks.job.SubmitRun" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.databricks.sql.Query" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.sqlite.Query" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.mqtt.Publish" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.mqtt.Subscribe" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.pulsar.Consume" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.pulsar.Produce" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.pulsar.Reader" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.dbt.cli.Build" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.dbt.cli.Compile" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.dbt.cli.DbtCLI" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.dbt.cli.Deps" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.dbt.cli.Freshness" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.dbt.cli.List" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.dbt.cli.Run" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.dbt.cli.Seed" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.dbt.cli.Setup" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.dbt.cli.Snapshot" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.dbt.cli.Test" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.dbt.cloud.CheckStatus" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.dbt.cloud.TriggerRun" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.dremio.Query" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.googleworkspace.drive.Create" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.googleworkspace.drive.Delete" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.googleworkspace.drive.Download" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.googleworkspace.drive.Export" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.googleworkspace.drive.List" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.googleworkspace.drive.Upload" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.googleworkspace.sheets.Read" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.googleworkspace.sheets.ReadRange" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.airbyte.cloud.jobs.Reset" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.airbyte.cloud.jobs.Sync" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.airbyte.connections.CheckStatus" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.airbyte.connections.Sync" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.fivetran.connectors.Sync" + }, + { + "$dynamic": false + } + ] + } + ] + } + }, + "id": { + "type": "string", + "minLength": 1, + "pattern": "^[a-zA-Z0-9][a-zA-Z0-9_-]*" + }, + "logLevel": { + "type": "string", + "enum": ["ERROR", "WARN", "INFO", "DEBUG", "TRACE"] + }, + "retry": { + "oneOf": [ + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Constant-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Exponential-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Random-2" + } + ] + }, + "tasks": { + "$dynamic": false, + "type": "array", + "items": { + "oneOf": [ + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.debug.Echo" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.debug.Return" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.execution.Count" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.execution.Fail" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.execution.Labels" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.execution.PurgeExecutions" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.execution.Resume" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.flow.AllowFailure" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.flow.Dag" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.flow.EachParallel" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.flow.EachSequential" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.flow.ForEach" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.flow.ForEachItem" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.flow.If" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.flow.Parallel" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.flow.Pause" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.flow.Sequential" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.flow.Subflow" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.flow.Switch" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.flow.Template" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.flow.WaitFor" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.flow.WorkingDirectory" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.http.Download" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.http.Request" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.kv.Delete" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.kv.Get" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.kv.GetKeys" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.kv.Set" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.log.Fetch" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.log.Log" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.log.PurgeLogs" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.namespace.DeleteFiles" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.namespace.DownloadFiles" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.namespace.UploadFiles" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.output.OutputValues" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.state.Delete" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.state.Get" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.state.Set" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.storage.Concat" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.storage.DeduplicateItems" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.storage.Delete" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.storage.FilterItems" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.storage.LocalFiles" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.storage.PurgeCurrentExecutionFiles" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.storage.Reverse" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.storage.Size" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.storage.Split" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.templating.TemplatedTask" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.trigger.Toggle" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.hightouch.Sync" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.github.code.Search" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.github.commits.Search" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.github.issues.Comment" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.github.issues.Create" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.github.issues.Search" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.github.pulls.Create" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.github.pulls.Search" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.github.repositories.Search" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.github.topics.Search" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.github.users.Search" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.druid.Query" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.weaviate.BatchCreate" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.weaviate.Delete" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.weaviate.Query" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.weaviate.SchemaCreate" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.spark.JarSubmit" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.spark.PythonSubmit" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.spark.RSubmit" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.spark.SparkCLI" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.auth.OauthAccessToken" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.bigquery.Copy" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.bigquery.CopyPartitions" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.bigquery.CreateDataset" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.bigquery.CreateTable" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.bigquery.DeleteDataset" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.bigquery.DeletePartitions" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.bigquery.DeleteTable" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.bigquery.ExtractToGcs" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.bigquery.Load" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.bigquery.LoadFromGcs" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.bigquery.Query" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.bigquery.StorageWrite" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.bigquery.TableMetadata" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.bigquery.UpdateDataset" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.bigquery.UpdateTable" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.cli.GCloudCLI" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.dataproc.batches.PySparkSubmit" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.dataproc.batches.RSparkSubmit" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.dataproc.batches.SparkSqlSubmit" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.dataproc.batches.SparkSubmit" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.firestore.Delete" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.firestore.Get" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.firestore.Query" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.firestore.Set" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.gcs.Compose" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.gcs.Copy" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.gcs.CreateBucket" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.gcs.CreateBucketIamPolicy" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.gcs.Delete" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.gcs.DeleteBucket" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.gcs.DeleteList" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.gcs.Download" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.gcs.Downloads" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.gcs.List" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.gcs.UpdateBucket" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.gcs.Upload" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.gke.ClusterMetadata" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.pubsub.Consume" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.pubsub.Publish" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.vertexai.ChatCompletion" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.vertexai.CustomJob" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.vertexai.MultimodalCompletion" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.vertexai.TextCompletion" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.db2.Query" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.minio.Copy" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.minio.CreateBucket" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.minio.Delete" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.minio.DeleteList" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.minio.Download" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.minio.Downloads" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.minio.List" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.minio.Upload" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.soda.Scan" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.modal.cli.ModalCLI" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.rockset.Query" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.scripts.nashorn.Eval" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.scripts.nashorn.FileTransform" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.scripts.ruby.Commands" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.scripts.ruby.Script" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.mongodb.Bulk" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.mongodb.Delete" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.mongodb.Find" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.mongodb.InsertOne" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.mongodb.Load" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.mongodb.Update" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.debezium.postgres.Capture" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.BigQuery" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.BingAds" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.ChargeBee" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.ExchangeRateHost" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.FacebookAds" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.Fastly" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.GenericTap" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.GitHub" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.Gitlab" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.GoogleAdwords" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.GoogleAnalytics" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.GoogleSearchConsole" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.HubSpot" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.Marketo" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.Netsuite" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.PipelinewiseMongoDb" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.PipelinewiseMysql" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.PipelinewiseOracle" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.PipelinewisePostgres" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.PipelinewiseSqlServer" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.Quickbooks" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.Recharge" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.SageIntacct" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.Salesforce" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.Shopify" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.Slack" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.Stripe" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.Zendesk" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.Zoom" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.targets.AdswerveBigQuery" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.targets.Csv" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.targets.DatamillCoPostgres" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.targets.GenericTarget" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.targets.Json" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.targets.MeltanoSnowflake" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.targets.Oracle" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.targets.PipelinewisePostgres" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.targets.PipelinewiseRedshift" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.targets.PipelinewiseSnowflake" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.targets.SqlServer" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.scripts.julia.Commands" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.scripts.julia.Script" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.trino.Query" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.compress.ArchiveCompress" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.compress.ArchiveDecompress" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.compress.FileCompress" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.compress.FileDecompress" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.duckdb.Query" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.dataform.cli.DataformCLI" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.couchbase.Query" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.serdes.avro.AvroToIon" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.serdes.avro.IonToAvro" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.serdes.csv.CsvToIon" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.serdes.csv.IonToCsv" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.serdes.excel.ExcelToIon" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.serdes.excel.IonToExcel" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.serdes.json.IonToJson" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.serdes.json.JsonToIon" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.serdes.parquet.IonToParquet" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.serdes.parquet.ParquetToIon" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.serdes.xml.IonToXml" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.serdes.xml.XmlToIon" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.sqlserver.Batch" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.sqlserver.Query" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.powerbi.RefreshGroupDataset" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.core.tasks.scripts.Node" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.scripts.node.Commands" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.scripts.node.Script" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.docker.Build" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.docker.Run" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.oracle.Batch" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.oracle.Query" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.zendesk.tickets.Create" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.debezium.mysql.Capture" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.debezium.sqlserver.Capture" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.cassandra.astradb.Query" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.cassandra.standard.Query" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.openai.ChatCompletion" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.openai.CreateImage" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.postgresql.Batch" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.postgresql.CopyIn" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.postgresql.CopyOut" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.postgresql.Query" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.core.tasks.scripts.Bash" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.scripts.shell.Commands" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.scripts.shell.Script" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.scripts.r.Commands" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.scripts.r.Script" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.debezium.db2.Capture" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.tika.Parse" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jira.issues.Create" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jira.issues.CreateComment" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.debezium.oracle.Capture" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.git.Clone" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.git.Push" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.git.PushFlows" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.git.PushNamespaceFiles" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.git.Sync" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.git.SyncFlows" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.git.SyncNamespaceFiles" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.servicenow.Post" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.sybase.Query" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.as400.Query" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.clickhouse.BulkInsert" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.clickhouse.Query" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.scripts.groovy.Eval" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.scripts.groovy.FileTransform" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.redis.list.ListPop" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.redis.list.ListPush" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.redis.pubsub.Publish" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.redis.string.Delete" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.redis.string.Get" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.redis.string.Set" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.linear.issues.Create" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.malloy.CLI" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.neo4j.Batch" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.neo4j.Query" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.hubspot.tickets.Create" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.scripts.powershell.Commands" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.scripts.powershell.Script" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.cloudquery.CloudQueryCLI" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.cloudquery.Sync" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.nats.Consume" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.nats.Produce" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.amqp.Consume" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.amqp.CreateQueue" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.amqp.DeclareExchange" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.amqp.Publish" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.amqp.QueueBind" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.notifications.discord.DiscordExecution" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.notifications.discord.DiscordIncomingWebhook" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.notifications.google.GoogleChatExecution" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.notifications.google.GoogleChatIncomingWebhook" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.notifications.mail.MailExecution" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.notifications.mail.MailSend" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.notifications.opsgenie.OpsgenieAlert" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.notifications.opsgenie.OpsgenieExecution" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.notifications.pagerduty.PagerDutyAlert" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.notifications.pagerduty.PagerDutyExecution" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.notifications.sendgrid.SendGridMailExecution" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.notifications.sendgrid.SendGridMailSend" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.notifications.sentry.SentryAlert" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.notifications.sentry.SentryExecution" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.notifications.slack.SlackExecution" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.notifications.slack.SlackIncomingWebhook" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.notifications.teams.TeamsExecution" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.notifications.teams.TeamsIncomingWebhook" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.notifications.telegram.TelegramExecution" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.notifications.telegram.TelegramSend" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.notifications.twilio.TwilioAlert" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.notifications.twilio.TwilioExecution" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.notifications.whatsapp.WhatsAppExecution" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.notifications.whatsapp.WhatsAppIncomingWebhook" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.notifications.zenduty.ZendutyAlert" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.notifications.zenduty.ZendutyExecution" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.azure.batch.job.Create" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.azure.batch.pool.Resize" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.azure.cli.AzCLI" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.azure.eventhubs.Consume" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.azure.eventhubs.Produce" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.azure.storage.blob.Copy" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.azure.storage.blob.Delete" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.azure.storage.blob.DeleteList" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.azure.storage.blob.Download" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.azure.storage.blob.Downloads" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.azure.storage.blob.List" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.azure.storage.blob.SharedAccess" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.azure.storage.blob.Upload" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.azure.storage.table.Bulk" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.azure.storage.table.Delete" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.azure.storage.table.Get" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.azure.storage.table.List" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.transform.grok.TransformItems" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.transform.grok.TransformValue" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.kubernetes.PodCreate" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.kubernetes.kubectl.Apply" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.transform.jsonata.TransformItems" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.transform.jsonata.TransformValue" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.vertica.Batch" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.vertica.Query" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.solace.Consume" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.solace.Produce" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.ansible.cli.AnsibleCLI" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.elasticsearch.Bulk" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.elasticsearch.Get" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.elasticsearch.Load" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.elasticsearch.Put" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.elasticsearch.Request" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.elasticsearch.Scroll" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.elasticsearch.Search" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.pinot.Query" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.aws.athena.Query" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.aws.cli.AwsCLI" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.aws.dynamodb.DeleteItem" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.aws.dynamodb.GetItem" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.aws.dynamodb.PutItem" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.aws.dynamodb.Query" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.aws.dynamodb.Scan" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.aws.ecr.GetAuthToken" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.aws.eventbridge.PutEvents" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.aws.kinesis.PutRecords" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.aws.lambda.Invoke" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.aws.s3.Copy" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.aws.s3.CreateBucket" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.aws.s3.Delete" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.aws.s3.DeleteList" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.aws.s3.Download" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.aws.s3.Downloads" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.aws.s3.List" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.aws.s3.Upload" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.aws.sns.Publish" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.aws.sqs.Consume" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.aws.sqs.Publish" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.sqlmesh.cli.SQLMeshCLI" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.surrealdb.Query" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.vectorwise.Batch" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.vectorwise.Query" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.arrowflight.Query" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.terraform.cli.TerraformCLI" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.debezium.mongodb.Capture" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.fs.ftp.Delete" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.fs.ftp.Download" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.fs.ftp.Downloads" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.fs.ftp.List" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.fs.ftp.Move" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.fs.ftp.Upload" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.fs.ftp.Uploads" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.fs.ftps.Delete" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.fs.ftps.Download" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.fs.ftps.Downloads" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.fs.ftps.List" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.fs.ftps.Move" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.fs.ftps.Upload" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.fs.ftps.Uploads" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.fs.sftp.Delete" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.fs.sftp.Download" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.fs.sftp.Downloads" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.fs.sftp.List" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.fs.sftp.Move" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.fs.sftp.Upload" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.fs.sftp.Uploads" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.fs.smb.Delete" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.fs.smb.Download" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.fs.smb.Downloads" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.fs.smb.List" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.fs.smb.Move" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.fs.smb.Upload" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.fs.smb.Uploads" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.fs.ssh.Command" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.kafka.Consume" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.kafka.Produce" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.airflow.dags.TriggerDagRun" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.core.tasks.scripts.Python" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.scripts.python.Commands" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.scripts.python.Script" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.crypto.openpgp.Decrypt" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.crypto.openpgp.Encrypt" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.scripts.jython.Eval" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.scripts.jython.FileTransform" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.mysql.Batch" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.mysql.Query" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.snowflake.Download" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.snowflake.Query" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.snowflake.Upload" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.redshift.Query" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.ldap.Add" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.ldap.Delete" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.ldap.IonToLdif" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.ldap.LdifToIon" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.ldap.Modify" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.ldap.Search" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.databricks.cluster.CreateCluster" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.databricks.cluster.DeleteCluster" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.databricks.dbfs.Download" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.databricks.dbfs.Upload" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.databricks.job.CreateJob" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.databricks.job.SubmitRun" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.databricks.sql.Query" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.sqlite.Query" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.mqtt.Publish" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.mqtt.Subscribe" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.pulsar.Consume" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.pulsar.Produce" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.pulsar.Reader" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.dbt.cli.Build" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.dbt.cli.Compile" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.dbt.cli.DbtCLI" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.dbt.cli.Deps" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.dbt.cli.Freshness" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.dbt.cli.List" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.dbt.cli.Run" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.dbt.cli.Seed" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.dbt.cli.Setup" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.dbt.cli.Snapshot" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.dbt.cli.Test" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.dbt.cloud.CheckStatus" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.dbt.cloud.TriggerRun" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.dremio.Query" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.googleworkspace.drive.Create" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.googleworkspace.drive.Delete" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.googleworkspace.drive.Download" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.googleworkspace.drive.Export" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.googleworkspace.drive.List" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.googleworkspace.drive.Upload" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.googleworkspace.sheets.Read" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.googleworkspace.sheets.ReadRange" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.airbyte.cloud.jobs.Reset" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.airbyte.cloud.jobs.Sync" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.airbyte.connections.CheckStatus" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.airbyte.connections.Sync" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.fivetran.connectors.Sync" + }, + { + "$dynamic": false + } + ] + } + ] + } + }, + "timeout": { + "type": "string", + "format": "duration" + }, + "type": { + "const": "io.kestra.plugin.core.flow.AllowFailure" + }, + "workerGroup": { + "$ref": "#/definitions/io.kestra.core.models.tasks.WorkerGroup" + } + }, + "required": ["id", "type"], + "title": "Allow a list of tasks to fail without stopping the execution of downstream tasks in the flow.", + "markdownDescription": "If any child task of the `AllowFailure` task fails, the flow will stop executing this block of tasks (i.e. the next tasks in the `AllowFailure` block will no longer be executed), but the flow execution of the tasks, following the `AllowFailure` task, will continue.##### Examples\n\u003E \n```yaml\nid: allow-failure\nnamespace: company.team\n\ntasks:\n - id: sequential\n type: io.kestra.plugin.core.flow.AllowFailure\n tasks:\n - id: ko\n type: io.kestra.plugin.scripts.shell.Commands\n commands:\n - 'exit 1'\n - id: last\n type: io.kestra.plugin.core.debug.Return\n format: \"{{ task.id }} \u003E {{ taskrun.startDate }}\"\n```" + }, + "io.kestra.plugin.core.flow.Dag": { + "type": "object", + "properties": { + "allowFailure": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "concurrent": { + "$dynamic": false, + "type": "integer", + "title": "Number of concurrent parallel tasks that can be running at any point in time.", + "default": 0, + "markdownDescription": "If the value is `0`, no concurrency limit exists for the tasks in a DAG and all tasks that can run in parallel will start at the same time.\n\nDefault value is : `0`" + }, + "description": { + "type": "string" + }, + "disabled": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "errors": { + "$dynamic": false, + "title": "List of tasks to run if any tasks failed on this FlowableTask.", + "type": "array", + "items": { + "oneOf": [ + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.debug.Echo" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.debug.Return" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.execution.Count" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.execution.Fail" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.execution.Labels" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.execution.PurgeExecutions" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.execution.Resume" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.flow.AllowFailure" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.flow.Dag" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.flow.EachParallel" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.flow.EachSequential" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.flow.ForEach" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.flow.ForEachItem" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.flow.If" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.flow.Parallel" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.flow.Pause" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.flow.Sequential" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.flow.Subflow" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.flow.Switch" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.flow.Template" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.flow.WaitFor" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.flow.WorkingDirectory" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.http.Download" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.http.Request" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.kv.Delete" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.kv.Get" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.kv.GetKeys" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.kv.Set" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.log.Fetch" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.log.Log" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.log.PurgeLogs" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.namespace.DeleteFiles" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.namespace.DownloadFiles" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.namespace.UploadFiles" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.output.OutputValues" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.state.Delete" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.state.Get" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.state.Set" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.storage.Concat" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.storage.DeduplicateItems" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.storage.Delete" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.storage.FilterItems" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.storage.LocalFiles" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.storage.PurgeCurrentExecutionFiles" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.storage.Reverse" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.storage.Size" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.storage.Split" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.templating.TemplatedTask" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.trigger.Toggle" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.hightouch.Sync" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.github.code.Search" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.github.commits.Search" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.github.issues.Comment" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.github.issues.Create" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.github.issues.Search" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.github.pulls.Create" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.github.pulls.Search" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.github.repositories.Search" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.github.topics.Search" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.github.users.Search" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.druid.Query" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.weaviate.BatchCreate" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.weaviate.Delete" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.weaviate.Query" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.weaviate.SchemaCreate" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.spark.JarSubmit" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.spark.PythonSubmit" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.spark.RSubmit" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.spark.SparkCLI" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.auth.OauthAccessToken" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.bigquery.Copy" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.bigquery.CopyPartitions" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.bigquery.CreateDataset" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.bigquery.CreateTable" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.bigquery.DeleteDataset" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.bigquery.DeletePartitions" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.bigquery.DeleteTable" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.bigquery.ExtractToGcs" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.bigquery.Load" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.bigquery.LoadFromGcs" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.bigquery.Query" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.bigquery.StorageWrite" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.bigquery.TableMetadata" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.bigquery.UpdateDataset" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.bigquery.UpdateTable" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.cli.GCloudCLI" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.dataproc.batches.PySparkSubmit" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.dataproc.batches.RSparkSubmit" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.dataproc.batches.SparkSqlSubmit" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.dataproc.batches.SparkSubmit" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.firestore.Delete" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.firestore.Get" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.firestore.Query" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.firestore.Set" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.gcs.Compose" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.gcs.Copy" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.gcs.CreateBucket" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.gcs.CreateBucketIamPolicy" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.gcs.Delete" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.gcs.DeleteBucket" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.gcs.DeleteList" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.gcs.Download" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.gcs.Downloads" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.gcs.List" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.gcs.UpdateBucket" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.gcs.Upload" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.gke.ClusterMetadata" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.pubsub.Consume" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.pubsub.Publish" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.vertexai.ChatCompletion" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.vertexai.CustomJob" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.vertexai.MultimodalCompletion" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.vertexai.TextCompletion" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.db2.Query" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.minio.Copy" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.minio.CreateBucket" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.minio.Delete" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.minio.DeleteList" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.minio.Download" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.minio.Downloads" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.minio.List" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.minio.Upload" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.soda.Scan" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.modal.cli.ModalCLI" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.rockset.Query" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.scripts.nashorn.Eval" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.scripts.nashorn.FileTransform" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.scripts.ruby.Commands" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.scripts.ruby.Script" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.mongodb.Bulk" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.mongodb.Delete" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.mongodb.Find" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.mongodb.InsertOne" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.mongodb.Load" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.mongodb.Update" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.debezium.postgres.Capture" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.BigQuery" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.BingAds" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.ChargeBee" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.ExchangeRateHost" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.FacebookAds" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.Fastly" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.GenericTap" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.GitHub" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.Gitlab" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.GoogleAdwords" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.GoogleAnalytics" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.GoogleSearchConsole" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.HubSpot" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.Marketo" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.Netsuite" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.PipelinewiseMongoDb" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.PipelinewiseMysql" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.PipelinewiseOracle" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.PipelinewisePostgres" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.PipelinewiseSqlServer" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.Quickbooks" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.Recharge" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.SageIntacct" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.Salesforce" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.Shopify" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.Slack" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.Stripe" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.Zendesk" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.Zoom" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.targets.AdswerveBigQuery" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.targets.Csv" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.targets.DatamillCoPostgres" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.targets.GenericTarget" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.targets.Json" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.targets.MeltanoSnowflake" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.targets.Oracle" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.targets.PipelinewisePostgres" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.targets.PipelinewiseRedshift" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.targets.PipelinewiseSnowflake" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.targets.SqlServer" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.scripts.julia.Commands" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.scripts.julia.Script" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.trino.Query" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.compress.ArchiveCompress" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.compress.ArchiveDecompress" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.compress.FileCompress" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.compress.FileDecompress" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.duckdb.Query" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.dataform.cli.DataformCLI" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.couchbase.Query" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.serdes.avro.AvroToIon" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.serdes.avro.IonToAvro" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.serdes.csv.CsvToIon" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.serdes.csv.IonToCsv" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.serdes.excel.ExcelToIon" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.serdes.excel.IonToExcel" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.serdes.json.IonToJson" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.serdes.json.JsonToIon" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.serdes.parquet.IonToParquet" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.serdes.parquet.ParquetToIon" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.serdes.xml.IonToXml" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.serdes.xml.XmlToIon" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.sqlserver.Batch" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.sqlserver.Query" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.powerbi.RefreshGroupDataset" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.core.tasks.scripts.Node" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.scripts.node.Commands" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.scripts.node.Script" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.docker.Build" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.docker.Run" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.oracle.Batch" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.oracle.Query" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.zendesk.tickets.Create" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.debezium.mysql.Capture" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.debezium.sqlserver.Capture" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.cassandra.astradb.Query" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.cassandra.standard.Query" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.openai.ChatCompletion" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.openai.CreateImage" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.postgresql.Batch" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.postgresql.CopyIn" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.postgresql.CopyOut" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.postgresql.Query" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.core.tasks.scripts.Bash" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.scripts.shell.Commands" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.scripts.shell.Script" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.scripts.r.Commands" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.scripts.r.Script" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.debezium.db2.Capture" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.tika.Parse" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jira.issues.Create" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jira.issues.CreateComment" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.debezium.oracle.Capture" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.git.Clone" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.git.Push" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.git.PushFlows" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.git.PushNamespaceFiles" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.git.Sync" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.git.SyncFlows" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.git.SyncNamespaceFiles" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.servicenow.Post" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.sybase.Query" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.as400.Query" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.clickhouse.BulkInsert" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.clickhouse.Query" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.scripts.groovy.Eval" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.scripts.groovy.FileTransform" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.redis.list.ListPop" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.redis.list.ListPush" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.redis.pubsub.Publish" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.redis.string.Delete" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.redis.string.Get" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.redis.string.Set" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.linear.issues.Create" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.malloy.CLI" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.neo4j.Batch" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.neo4j.Query" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.hubspot.tickets.Create" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.scripts.powershell.Commands" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.scripts.powershell.Script" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.cloudquery.CloudQueryCLI" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.cloudquery.Sync" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.nats.Consume" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.nats.Produce" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.amqp.Consume" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.amqp.CreateQueue" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.amqp.DeclareExchange" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.amqp.Publish" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.amqp.QueueBind" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.notifications.discord.DiscordExecution" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.notifications.discord.DiscordIncomingWebhook" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.notifications.google.GoogleChatExecution" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.notifications.google.GoogleChatIncomingWebhook" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.notifications.mail.MailExecution" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.notifications.mail.MailSend" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.notifications.opsgenie.OpsgenieAlert" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.notifications.opsgenie.OpsgenieExecution" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.notifications.pagerduty.PagerDutyAlert" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.notifications.pagerduty.PagerDutyExecution" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.notifications.sendgrid.SendGridMailExecution" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.notifications.sendgrid.SendGridMailSend" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.notifications.sentry.SentryAlert" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.notifications.sentry.SentryExecution" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.notifications.slack.SlackExecution" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.notifications.slack.SlackIncomingWebhook" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.notifications.teams.TeamsExecution" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.notifications.teams.TeamsIncomingWebhook" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.notifications.telegram.TelegramExecution" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.notifications.telegram.TelegramSend" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.notifications.twilio.TwilioAlert" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.notifications.twilio.TwilioExecution" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.notifications.whatsapp.WhatsAppExecution" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.notifications.whatsapp.WhatsAppIncomingWebhook" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.notifications.zenduty.ZendutyAlert" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.notifications.zenduty.ZendutyExecution" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.azure.batch.job.Create" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.azure.batch.pool.Resize" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.azure.cli.AzCLI" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.azure.eventhubs.Consume" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.azure.eventhubs.Produce" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.azure.storage.blob.Copy" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.azure.storage.blob.Delete" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.azure.storage.blob.DeleteList" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.azure.storage.blob.Download" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.azure.storage.blob.Downloads" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.azure.storage.blob.List" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.azure.storage.blob.SharedAccess" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.azure.storage.blob.Upload" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.azure.storage.table.Bulk" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.azure.storage.table.Delete" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.azure.storage.table.Get" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.azure.storage.table.List" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.transform.grok.TransformItems" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.transform.grok.TransformValue" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.kubernetes.PodCreate" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.kubernetes.kubectl.Apply" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.transform.jsonata.TransformItems" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.transform.jsonata.TransformValue" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.vertica.Batch" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.vertica.Query" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.solace.Consume" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.solace.Produce" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.ansible.cli.AnsibleCLI" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.elasticsearch.Bulk" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.elasticsearch.Get" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.elasticsearch.Load" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.elasticsearch.Put" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.elasticsearch.Request" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.elasticsearch.Scroll" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.elasticsearch.Search" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.pinot.Query" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.aws.athena.Query" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.aws.cli.AwsCLI" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.aws.dynamodb.DeleteItem" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.aws.dynamodb.GetItem" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.aws.dynamodb.PutItem" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.aws.dynamodb.Query" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.aws.dynamodb.Scan" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.aws.ecr.GetAuthToken" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.aws.eventbridge.PutEvents" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.aws.kinesis.PutRecords" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.aws.lambda.Invoke" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.aws.s3.Copy" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.aws.s3.CreateBucket" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.aws.s3.Delete" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.aws.s3.DeleteList" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.aws.s3.Download" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.aws.s3.Downloads" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.aws.s3.List" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.aws.s3.Upload" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.aws.sns.Publish" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.aws.sqs.Consume" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.aws.sqs.Publish" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.sqlmesh.cli.SQLMeshCLI" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.surrealdb.Query" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.vectorwise.Batch" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.vectorwise.Query" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.arrowflight.Query" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.terraform.cli.TerraformCLI" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.debezium.mongodb.Capture" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.fs.ftp.Delete" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.fs.ftp.Download" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.fs.ftp.Downloads" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.fs.ftp.List" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.fs.ftp.Move" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.fs.ftp.Upload" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.fs.ftp.Uploads" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.fs.ftps.Delete" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.fs.ftps.Download" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.fs.ftps.Downloads" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.fs.ftps.List" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.fs.ftps.Move" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.fs.ftps.Upload" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.fs.ftps.Uploads" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.fs.sftp.Delete" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.fs.sftp.Download" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.fs.sftp.Downloads" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.fs.sftp.List" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.fs.sftp.Move" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.fs.sftp.Upload" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.fs.sftp.Uploads" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.fs.smb.Delete" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.fs.smb.Download" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.fs.smb.Downloads" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.fs.smb.List" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.fs.smb.Move" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.fs.smb.Upload" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.fs.smb.Uploads" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.fs.ssh.Command" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.kafka.Consume" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.kafka.Produce" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.airflow.dags.TriggerDagRun" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.core.tasks.scripts.Python" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.scripts.python.Commands" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.scripts.python.Script" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.crypto.openpgp.Decrypt" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.crypto.openpgp.Encrypt" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.scripts.jython.Eval" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.scripts.jython.FileTransform" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.mysql.Batch" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.mysql.Query" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.snowflake.Download" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.snowflake.Query" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.snowflake.Upload" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.redshift.Query" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.ldap.Add" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.ldap.Delete" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.ldap.IonToLdif" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.ldap.LdifToIon" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.ldap.Modify" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.ldap.Search" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.databricks.cluster.CreateCluster" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.databricks.cluster.DeleteCluster" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.databricks.dbfs.Download" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.databricks.dbfs.Upload" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.databricks.job.CreateJob" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.databricks.job.SubmitRun" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.databricks.sql.Query" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.sqlite.Query" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.mqtt.Publish" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.mqtt.Subscribe" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.pulsar.Consume" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.pulsar.Produce" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.pulsar.Reader" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.dbt.cli.Build" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.dbt.cli.Compile" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.dbt.cli.DbtCLI" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.dbt.cli.Deps" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.dbt.cli.Freshness" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.dbt.cli.List" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.dbt.cli.Run" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.dbt.cli.Seed" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.dbt.cli.Setup" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.dbt.cli.Snapshot" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.dbt.cli.Test" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.dbt.cloud.CheckStatus" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.dbt.cloud.TriggerRun" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.dremio.Query" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.googleworkspace.drive.Create" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.googleworkspace.drive.Delete" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.googleworkspace.drive.Download" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.googleworkspace.drive.Export" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.googleworkspace.drive.List" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.googleworkspace.drive.Upload" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.googleworkspace.sheets.Read" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.googleworkspace.sheets.ReadRange" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.airbyte.cloud.jobs.Reset" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.airbyte.cloud.jobs.Sync" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.airbyte.connections.CheckStatus" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.airbyte.connections.Sync" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.fivetran.connectors.Sync" + }, + { + "$dynamic": false + } + ] + } + ] + } + }, + "id": { + "type": "string", + "minLength": 1, + "pattern": "^[a-zA-Z0-9][a-zA-Z0-9_-]*" + }, + "logLevel": { + "type": "string", + "enum": ["ERROR", "WARN", "INFO", "DEBUG", "TRACE"] + }, + "retry": { + "oneOf": [ + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Constant-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Exponential-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Random-2" + } + ] + }, + "tasks": { + "minItems": 1, + "type": "array", + "items": { + "$ref": "#/definitions/io.kestra.plugin.core.flow.Dag-DagTask" + } + }, + "timeout": { + "type": "string", + "format": "duration" + }, + "type": { + "const": "io.kestra.plugin.core.flow.Dag" + }, + "workerGroup": { + "$ref": "#/definitions/io.kestra.core.models.tasks.WorkerGroup" + } + }, + "required": ["id", "tasks", "type"], + "title": "Create a directed acyclic graph (DAG) of tasks without explicitly specifying the order in which the tasks need to run.", + "markdownDescription": "List your tasks and their dependencies, and Kestra will figure out the execution sequence.\nEach task can only depend on other tasks from the DAG task.\nFor technical reasons, low-code interaction via UI forms is disabled for now when using this task.##### Examples\n\u003E Run a series of tasks for which the execution order is defined by their upstream dependencies.\n```yaml\nid: dag-flow\nnamespace: company.team\ntasks:\n - id: dag\n type: io.kestra.plugin.core.flow.Dag\n tasks:\n - task:\n id: task1\n type: io.kestra.plugin.core.log.Log\n message: task 1\n - task:\n id: task2\n type: io.kestra.plugin.core.log.Log\n message: task 2\n dependsOn:\n - task1\n - task:\n id: task3\n type: io.kestra.plugin.core.log.Log\n message: task 3\n dependsOn:\n - task1\n - task:\n id: task4\n type: io.kestra.plugin.core.log.Log\n message: task 4\n dependsOn:\n - task2\n - task:\n id: task5\n type: io.kestra.plugin.core.log.Log\n message: task 5\n dependsOn:\n - task4\n - task3\n\n```" + }, + "io.kestra.plugin.core.flow.Dag-DagTask": { + "type": "object", + "properties": { + "dependsOn": { + "$dynamic": false, + "title": "The list of task IDs that should have been successfully executed before starting this task.", + "type": "array", + "items": { + "$dynamic": false, + "type": "string" + } + }, + "task": { + "oneOf": [ + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.debug.Echo" + }, + { + "$dynamic": false, + "title": "The task within the DAG." + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.debug.Return" + }, + { + "$dynamic": false, + "title": "The task within the DAG." + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.execution.Count" + }, + { + "$dynamic": false, + "title": "The task within the DAG." + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.execution.Fail" + }, + { + "$dynamic": false, + "title": "The task within the DAG." + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.execution.Labels" + }, + { + "$dynamic": false, + "title": "The task within the DAG." + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.execution.PurgeExecutions" + }, + { + "$dynamic": false, + "title": "The task within the DAG." + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.execution.Resume" + }, + { + "$dynamic": false, + "title": "The task within the DAG." + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.flow.AllowFailure" + }, + { + "$dynamic": false, + "title": "The task within the DAG." + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.flow.Dag" + }, + { + "$dynamic": false, + "title": "The task within the DAG." + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.flow.EachParallel" + }, + { + "$dynamic": false, + "title": "The task within the DAG." + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.flow.EachSequential" + }, + { + "$dynamic": false, + "title": "The task within the DAG." + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.flow.ForEach" + }, + { + "$dynamic": false, + "title": "The task within the DAG." + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.flow.ForEachItem" + }, + { + "$dynamic": false, + "title": "The task within the DAG." + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.flow.If" + }, + { + "$dynamic": false, + "title": "The task within the DAG." + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.flow.Parallel" + }, + { + "$dynamic": false, + "title": "The task within the DAG." + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.flow.Pause" + }, + { + "$dynamic": false, + "title": "The task within the DAG." + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.flow.Sequential" + }, + { + "$dynamic": false, + "title": "The task within the DAG." + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.flow.Subflow" + }, + { + "$dynamic": false, + "title": "The task within the DAG." + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.flow.Switch" + }, + { + "$dynamic": false, + "title": "The task within the DAG." + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.flow.Template" + }, + { + "$dynamic": false, + "title": "The task within the DAG." + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.flow.WaitFor" + }, + { + "$dynamic": false, + "title": "The task within the DAG." + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.flow.WorkingDirectory" + }, + { + "$dynamic": false, + "title": "The task within the DAG." + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.http.Download" + }, + { + "$dynamic": false, + "title": "The task within the DAG." + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.http.Request" + }, + { + "$dynamic": false, + "title": "The task within the DAG." + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.kv.Delete" + }, + { + "$dynamic": false, + "title": "The task within the DAG." + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.kv.Get" + }, + { + "$dynamic": false, + "title": "The task within the DAG." + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.kv.GetKeys" + }, + { + "$dynamic": false, + "title": "The task within the DAG." + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.kv.Set" + }, + { + "$dynamic": false, + "title": "The task within the DAG." + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.log.Fetch" + }, + { + "$dynamic": false, + "title": "The task within the DAG." + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.log.Log" + }, + { + "$dynamic": false, + "title": "The task within the DAG." + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.log.PurgeLogs" + }, + { + "$dynamic": false, + "title": "The task within the DAG." + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.namespace.DeleteFiles" + }, + { + "$dynamic": false, + "title": "The task within the DAG." + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.namespace.DownloadFiles" + }, + { + "$dynamic": false, + "title": "The task within the DAG." + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.namespace.UploadFiles" + }, + { + "$dynamic": false, + "title": "The task within the DAG." + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.output.OutputValues" + }, + { + "$dynamic": false, + "title": "The task within the DAG." + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.state.Delete" + }, + { + "$dynamic": false, + "title": "The task within the DAG." + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.state.Get" + }, + { + "$dynamic": false, + "title": "The task within the DAG." + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.state.Set" + }, + { + "$dynamic": false, + "title": "The task within the DAG." + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.storage.Concat" + }, + { + "$dynamic": false, + "title": "The task within the DAG." + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.storage.DeduplicateItems" + }, + { + "$dynamic": false, + "title": "The task within the DAG." + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.storage.Delete" + }, + { + "$dynamic": false, + "title": "The task within the DAG." + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.storage.FilterItems" + }, + { + "$dynamic": false, + "title": "The task within the DAG." + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.storage.LocalFiles" + }, + { + "$dynamic": false, + "title": "The task within the DAG." + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.storage.PurgeCurrentExecutionFiles" + }, + { + "$dynamic": false, + "title": "The task within the DAG." + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.storage.Reverse" + }, + { + "$dynamic": false, + "title": "The task within the DAG." + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.storage.Size" + }, + { + "$dynamic": false, + "title": "The task within the DAG." + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.storage.Split" + }, + { + "$dynamic": false, + "title": "The task within the DAG." + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.templating.TemplatedTask" + }, + { + "$dynamic": false, + "title": "The task within the DAG." + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.trigger.Toggle" + }, + { + "$dynamic": false, + "title": "The task within the DAG." + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.hightouch.Sync" + }, + { + "$dynamic": false, + "title": "The task within the DAG." + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.github.code.Search" + }, + { + "$dynamic": false, + "title": "The task within the DAG." + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.github.commits.Search" + }, + { + "$dynamic": false, + "title": "The task within the DAG." + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.github.issues.Comment" + }, + { + "$dynamic": false, + "title": "The task within the DAG." + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.github.issues.Create" + }, + { + "$dynamic": false, + "title": "The task within the DAG." + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.github.issues.Search" + }, + { + "$dynamic": false, + "title": "The task within the DAG." + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.github.pulls.Create" + }, + { + "$dynamic": false, + "title": "The task within the DAG." + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.github.pulls.Search" + }, + { + "$dynamic": false, + "title": "The task within the DAG." + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.github.repositories.Search" + }, + { + "$dynamic": false, + "title": "The task within the DAG." + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.github.topics.Search" + }, + { + "$dynamic": false, + "title": "The task within the DAG." + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.github.users.Search" + }, + { + "$dynamic": false, + "title": "The task within the DAG." + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.druid.Query" + }, + { + "$dynamic": false, + "title": "The task within the DAG." + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.weaviate.BatchCreate" + }, + { + "$dynamic": false, + "title": "The task within the DAG." + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.weaviate.Delete" + }, + { + "$dynamic": false, + "title": "The task within the DAG." + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.weaviate.Query" + }, + { + "$dynamic": false, + "title": "The task within the DAG." + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.weaviate.SchemaCreate" + }, + { + "$dynamic": false, + "title": "The task within the DAG." + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.spark.JarSubmit" + }, + { + "$dynamic": false, + "title": "The task within the DAG." + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.spark.PythonSubmit" + }, + { + "$dynamic": false, + "title": "The task within the DAG." + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.spark.RSubmit" + }, + { + "$dynamic": false, + "title": "The task within the DAG." + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.spark.SparkCLI" + }, + { + "$dynamic": false, + "title": "The task within the DAG." + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.auth.OauthAccessToken" + }, + { + "$dynamic": false, + "title": "The task within the DAG." + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.bigquery.Copy" + }, + { + "$dynamic": false, + "title": "The task within the DAG." + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.bigquery.CopyPartitions" + }, + { + "$dynamic": false, + "title": "The task within the DAG." + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.bigquery.CreateDataset" + }, + { + "$dynamic": false, + "title": "The task within the DAG." + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.bigquery.CreateTable" + }, + { + "$dynamic": false, + "title": "The task within the DAG." + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.bigquery.DeleteDataset" + }, + { + "$dynamic": false, + "title": "The task within the DAG." + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.bigquery.DeletePartitions" + }, + { + "$dynamic": false, + "title": "The task within the DAG." + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.bigquery.DeleteTable" + }, + { + "$dynamic": false, + "title": "The task within the DAG." + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.bigquery.ExtractToGcs" + }, + { + "$dynamic": false, + "title": "The task within the DAG." + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.bigquery.Load" + }, + { + "$dynamic": false, + "title": "The task within the DAG." + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.bigquery.LoadFromGcs" + }, + { + "$dynamic": false, + "title": "The task within the DAG." + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.bigquery.Query" + }, + { + "$dynamic": false, + "title": "The task within the DAG." + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.bigquery.StorageWrite" + }, + { + "$dynamic": false, + "title": "The task within the DAG." + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.bigquery.TableMetadata" + }, + { + "$dynamic": false, + "title": "The task within the DAG." + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.bigquery.UpdateDataset" + }, + { + "$dynamic": false, + "title": "The task within the DAG." + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.bigquery.UpdateTable" + }, + { + "$dynamic": false, + "title": "The task within the DAG." + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.cli.GCloudCLI" + }, + { + "$dynamic": false, + "title": "The task within the DAG." + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.dataproc.batches.PySparkSubmit" + }, + { + "$dynamic": false, + "title": "The task within the DAG." + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.dataproc.batches.RSparkSubmit" + }, + { + "$dynamic": false, + "title": "The task within the DAG." + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.dataproc.batches.SparkSqlSubmit" + }, + { + "$dynamic": false, + "title": "The task within the DAG." + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.dataproc.batches.SparkSubmit" + }, + { + "$dynamic": false, + "title": "The task within the DAG." + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.firestore.Delete" + }, + { + "$dynamic": false, + "title": "The task within the DAG." + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.firestore.Get" + }, + { + "$dynamic": false, + "title": "The task within the DAG." + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.firestore.Query" + }, + { + "$dynamic": false, + "title": "The task within the DAG." + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.firestore.Set" + }, + { + "$dynamic": false, + "title": "The task within the DAG." + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.gcs.Compose" + }, + { + "$dynamic": false, + "title": "The task within the DAG." + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.gcs.Copy" + }, + { + "$dynamic": false, + "title": "The task within the DAG." + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.gcs.CreateBucket" + }, + { + "$dynamic": false, + "title": "The task within the DAG." + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.gcs.CreateBucketIamPolicy" + }, + { + "$dynamic": false, + "title": "The task within the DAG." + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.gcs.Delete" + }, + { + "$dynamic": false, + "title": "The task within the DAG." + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.gcs.DeleteBucket" + }, + { + "$dynamic": false, + "title": "The task within the DAG." + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.gcs.DeleteList" + }, + { + "$dynamic": false, + "title": "The task within the DAG." + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.gcs.Download" + }, + { + "$dynamic": false, + "title": "The task within the DAG." + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.gcs.Downloads" + }, + { + "$dynamic": false, + "title": "The task within the DAG." + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.gcs.List" + }, + { + "$dynamic": false, + "title": "The task within the DAG." + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.gcs.UpdateBucket" + }, + { + "$dynamic": false, + "title": "The task within the DAG." + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.gcs.Upload" + }, + { + "$dynamic": false, + "title": "The task within the DAG." + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.gke.ClusterMetadata" + }, + { + "$dynamic": false, + "title": "The task within the DAG." + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.pubsub.Consume" + }, + { + "$dynamic": false, + "title": "The task within the DAG." + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.pubsub.Publish" + }, + { + "$dynamic": false, + "title": "The task within the DAG." + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.vertexai.ChatCompletion" + }, + { + "$dynamic": false, + "title": "The task within the DAG." + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.vertexai.CustomJob" + }, + { + "$dynamic": false, + "title": "The task within the DAG." + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.vertexai.MultimodalCompletion" + }, + { + "$dynamic": false, + "title": "The task within the DAG." + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.vertexai.TextCompletion" + }, + { + "$dynamic": false, + "title": "The task within the DAG." + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.db2.Query" + }, + { + "$dynamic": false, + "title": "The task within the DAG." + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.minio.Copy" + }, + { + "$dynamic": false, + "title": "The task within the DAG." + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.minio.CreateBucket" + }, + { + "$dynamic": false, + "title": "The task within the DAG." + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.minio.Delete" + }, + { + "$dynamic": false, + "title": "The task within the DAG." + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.minio.DeleteList" + }, + { + "$dynamic": false, + "title": "The task within the DAG." + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.minio.Download" + }, + { + "$dynamic": false, + "title": "The task within the DAG." + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.minio.Downloads" + }, + { + "$dynamic": false, + "title": "The task within the DAG." + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.minio.List" + }, + { + "$dynamic": false, + "title": "The task within the DAG." + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.minio.Upload" + }, + { + "$dynamic": false, + "title": "The task within the DAG." + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.soda.Scan" + }, + { + "$dynamic": false, + "title": "The task within the DAG." + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.modal.cli.ModalCLI" + }, + { + "$dynamic": false, + "title": "The task within the DAG." + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.rockset.Query" + }, + { + "$dynamic": false, + "title": "The task within the DAG." + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.scripts.nashorn.Eval" + }, + { + "$dynamic": false, + "title": "The task within the DAG." + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.scripts.nashorn.FileTransform" + }, + { + "$dynamic": false, + "title": "The task within the DAG." + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.scripts.ruby.Commands" + }, + { + "$dynamic": false, + "title": "The task within the DAG." + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.scripts.ruby.Script" + }, + { + "$dynamic": false, + "title": "The task within the DAG." + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.mongodb.Bulk" + }, + { + "$dynamic": false, + "title": "The task within the DAG." + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.mongodb.Delete" + }, + { + "$dynamic": false, + "title": "The task within the DAG." + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.mongodb.Find" + }, + { + "$dynamic": false, + "title": "The task within the DAG." + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.mongodb.InsertOne" + }, + { + "$dynamic": false, + "title": "The task within the DAG." + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.mongodb.Load" + }, + { + "$dynamic": false, + "title": "The task within the DAG." + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.mongodb.Update" + }, + { + "$dynamic": false, + "title": "The task within the DAG." + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.debezium.postgres.Capture" + }, + { + "$dynamic": false, + "title": "The task within the DAG." + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.BigQuery" + }, + { + "$dynamic": false, + "title": "The task within the DAG." + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.BingAds" + }, + { + "$dynamic": false, + "title": "The task within the DAG." + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.ChargeBee" + }, + { + "$dynamic": false, + "title": "The task within the DAG." + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.ExchangeRateHost" + }, + { + "$dynamic": false, + "title": "The task within the DAG." + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.FacebookAds" + }, + { + "$dynamic": false, + "title": "The task within the DAG." + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.Fastly" + }, + { + "$dynamic": false, + "title": "The task within the DAG." + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.GenericTap" + }, + { + "$dynamic": false, + "title": "The task within the DAG." + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.GitHub" + }, + { + "$dynamic": false, + "title": "The task within the DAG." + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.Gitlab" + }, + { + "$dynamic": false, + "title": "The task within the DAG." + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.GoogleAdwords" + }, + { + "$dynamic": false, + "title": "The task within the DAG." + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.GoogleAnalytics" + }, + { + "$dynamic": false, + "title": "The task within the DAG." + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.GoogleSearchConsole" + }, + { + "$dynamic": false, + "title": "The task within the DAG." + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.HubSpot" + }, + { + "$dynamic": false, + "title": "The task within the DAG." + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.Marketo" + }, + { + "$dynamic": false, + "title": "The task within the DAG." + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.Netsuite" + }, + { + "$dynamic": false, + "title": "The task within the DAG." + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.PipelinewiseMongoDb" + }, + { + "$dynamic": false, + "title": "The task within the DAG." + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.PipelinewiseMysql" + }, + { + "$dynamic": false, + "title": "The task within the DAG." + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.PipelinewiseOracle" + }, + { + "$dynamic": false, + "title": "The task within the DAG." + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.PipelinewisePostgres" + }, + { + "$dynamic": false, + "title": "The task within the DAG." + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.PipelinewiseSqlServer" + }, + { + "$dynamic": false, + "title": "The task within the DAG." + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.Quickbooks" + }, + { + "$dynamic": false, + "title": "The task within the DAG." + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.Recharge" + }, + { + "$dynamic": false, + "title": "The task within the DAG." + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.SageIntacct" + }, + { + "$dynamic": false, + "title": "The task within the DAG." + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.Salesforce" + }, + { + "$dynamic": false, + "title": "The task within the DAG." + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.Shopify" + }, + { + "$dynamic": false, + "title": "The task within the DAG." + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.Slack" + }, + { + "$dynamic": false, + "title": "The task within the DAG." + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.Stripe" + }, + { + "$dynamic": false, + "title": "The task within the DAG." + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.Zendesk" + }, + { + "$dynamic": false, + "title": "The task within the DAG." + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.Zoom" + }, + { + "$dynamic": false, + "title": "The task within the DAG." + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.targets.AdswerveBigQuery" + }, + { + "$dynamic": false, + "title": "The task within the DAG." + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.targets.Csv" + }, + { + "$dynamic": false, + "title": "The task within the DAG." + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.targets.DatamillCoPostgres" + }, + { + "$dynamic": false, + "title": "The task within the DAG." + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.targets.GenericTarget" + }, + { + "$dynamic": false, + "title": "The task within the DAG." + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.targets.Json" + }, + { + "$dynamic": false, + "title": "The task within the DAG." + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.targets.MeltanoSnowflake" + }, + { + "$dynamic": false, + "title": "The task within the DAG." + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.targets.Oracle" + }, + { + "$dynamic": false, + "title": "The task within the DAG." + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.targets.PipelinewisePostgres" + }, + { + "$dynamic": false, + "title": "The task within the DAG." + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.targets.PipelinewiseRedshift" + }, + { + "$dynamic": false, + "title": "The task within the DAG." + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.targets.PipelinewiseSnowflake" + }, + { + "$dynamic": false, + "title": "The task within the DAG." + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.targets.SqlServer" + }, + { + "$dynamic": false, + "title": "The task within the DAG." + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.scripts.julia.Commands" + }, + { + "$dynamic": false, + "title": "The task within the DAG." + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.scripts.julia.Script" + }, + { + "$dynamic": false, + "title": "The task within the DAG." + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.trino.Query" + }, + { + "$dynamic": false, + "title": "The task within the DAG." + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.compress.ArchiveCompress" + }, + { + "$dynamic": false, + "title": "The task within the DAG." + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.compress.ArchiveDecompress" + }, + { + "$dynamic": false, + "title": "The task within the DAG." + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.compress.FileCompress" + }, + { + "$dynamic": false, + "title": "The task within the DAG." + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.compress.FileDecompress" + }, + { + "$dynamic": false, + "title": "The task within the DAG." + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.duckdb.Query" + }, + { + "$dynamic": false, + "title": "The task within the DAG." + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.dataform.cli.DataformCLI" + }, + { + "$dynamic": false, + "title": "The task within the DAG." + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.couchbase.Query" + }, + { + "$dynamic": false, + "title": "The task within the DAG." + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.serdes.avro.AvroToIon" + }, + { + "$dynamic": false, + "title": "The task within the DAG." + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.serdes.avro.IonToAvro" + }, + { + "$dynamic": false, + "title": "The task within the DAG." + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.serdes.csv.CsvToIon" + }, + { + "$dynamic": false, + "title": "The task within the DAG." + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.serdes.csv.IonToCsv" + }, + { + "$dynamic": false, + "title": "The task within the DAG." + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.serdes.excel.ExcelToIon" + }, + { + "$dynamic": false, + "title": "The task within the DAG." + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.serdes.excel.IonToExcel" + }, + { + "$dynamic": false, + "title": "The task within the DAG." + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.serdes.json.IonToJson" + }, + { + "$dynamic": false, + "title": "The task within the DAG." + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.serdes.json.JsonToIon" + }, + { + "$dynamic": false, + "title": "The task within the DAG." + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.serdes.parquet.IonToParquet" + }, + { + "$dynamic": false, + "title": "The task within the DAG." + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.serdes.parquet.ParquetToIon" + }, + { + "$dynamic": false, + "title": "The task within the DAG." + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.serdes.xml.IonToXml" + }, + { + "$dynamic": false, + "title": "The task within the DAG." + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.serdes.xml.XmlToIon" + }, + { + "$dynamic": false, + "title": "The task within the DAG." + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.sqlserver.Batch" + }, + { + "$dynamic": false, + "title": "The task within the DAG." + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.sqlserver.Query" + }, + { + "$dynamic": false, + "title": "The task within the DAG." + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.powerbi.RefreshGroupDataset" + }, + { + "$dynamic": false, + "title": "The task within the DAG." + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.core.tasks.scripts.Node" + }, + { + "$dynamic": false, + "title": "The task within the DAG." + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.scripts.node.Commands" + }, + { + "$dynamic": false, + "title": "The task within the DAG." + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.scripts.node.Script" + }, + { + "$dynamic": false, + "title": "The task within the DAG." + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.docker.Build" + }, + { + "$dynamic": false, + "title": "The task within the DAG." + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.docker.Run" + }, + { + "$dynamic": false, + "title": "The task within the DAG." + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.oracle.Batch" + }, + { + "$dynamic": false, + "title": "The task within the DAG." + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.oracle.Query" + }, + { + "$dynamic": false, + "title": "The task within the DAG." + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.zendesk.tickets.Create" + }, + { + "$dynamic": false, + "title": "The task within the DAG." + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.debezium.mysql.Capture" + }, + { + "$dynamic": false, + "title": "The task within the DAG." + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.debezium.sqlserver.Capture" + }, + { + "$dynamic": false, + "title": "The task within the DAG." + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.cassandra.astradb.Query" + }, + { + "$dynamic": false, + "title": "The task within the DAG." + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.cassandra.standard.Query" + }, + { + "$dynamic": false, + "title": "The task within the DAG." + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.openai.ChatCompletion" + }, + { + "$dynamic": false, + "title": "The task within the DAG." + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.openai.CreateImage" + }, + { + "$dynamic": false, + "title": "The task within the DAG." + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.postgresql.Batch" + }, + { + "$dynamic": false, + "title": "The task within the DAG." + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.postgresql.CopyIn" + }, + { + "$dynamic": false, + "title": "The task within the DAG." + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.postgresql.CopyOut" + }, + { + "$dynamic": false, + "title": "The task within the DAG." + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.postgresql.Query" + }, + { + "$dynamic": false, + "title": "The task within the DAG." + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.core.tasks.scripts.Bash" + }, + { + "$dynamic": false, + "title": "The task within the DAG." + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.scripts.shell.Commands" + }, + { + "$dynamic": false, + "title": "The task within the DAG." + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.scripts.shell.Script" + }, + { + "$dynamic": false, + "title": "The task within the DAG." + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.scripts.r.Commands" + }, + { + "$dynamic": false, + "title": "The task within the DAG." + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.scripts.r.Script" + }, + { + "$dynamic": false, + "title": "The task within the DAG." + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.debezium.db2.Capture" + }, + { + "$dynamic": false, + "title": "The task within the DAG." + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.tika.Parse" + }, + { + "$dynamic": false, + "title": "The task within the DAG." + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jira.issues.Create" + }, + { + "$dynamic": false, + "title": "The task within the DAG." + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jira.issues.CreateComment" + }, + { + "$dynamic": false, + "title": "The task within the DAG." + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.debezium.oracle.Capture" + }, + { + "$dynamic": false, + "title": "The task within the DAG." + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.git.Clone" + }, + { + "$dynamic": false, + "title": "The task within the DAG." + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.git.Push" + }, + { + "$dynamic": false, + "title": "The task within the DAG." + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.git.PushFlows" + }, + { + "$dynamic": false, + "title": "The task within the DAG." + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.git.PushNamespaceFiles" + }, + { + "$dynamic": false, + "title": "The task within the DAG." + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.git.Sync" + }, + { + "$dynamic": false, + "title": "The task within the DAG." + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.git.SyncFlows" + }, + { + "$dynamic": false, + "title": "The task within the DAG." + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.git.SyncNamespaceFiles" + }, + { + "$dynamic": false, + "title": "The task within the DAG." + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.servicenow.Post" + }, + { + "$dynamic": false, + "title": "The task within the DAG." + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.sybase.Query" + }, + { + "$dynamic": false, + "title": "The task within the DAG." + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.as400.Query" + }, + { + "$dynamic": false, + "title": "The task within the DAG." + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.clickhouse.BulkInsert" + }, + { + "$dynamic": false, + "title": "The task within the DAG." + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.clickhouse.Query" + }, + { + "$dynamic": false, + "title": "The task within the DAG." + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.scripts.groovy.Eval" + }, + { + "$dynamic": false, + "title": "The task within the DAG." + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.scripts.groovy.FileTransform" + }, + { + "$dynamic": false, + "title": "The task within the DAG." + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.redis.list.ListPop" + }, + { + "$dynamic": false, + "title": "The task within the DAG." + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.redis.list.ListPush" + }, + { + "$dynamic": false, + "title": "The task within the DAG." + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.redis.pubsub.Publish" + }, + { + "$dynamic": false, + "title": "The task within the DAG." + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.redis.string.Delete" + }, + { + "$dynamic": false, + "title": "The task within the DAG." + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.redis.string.Get" + }, + { + "$dynamic": false, + "title": "The task within the DAG." + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.redis.string.Set" + }, + { + "$dynamic": false, + "title": "The task within the DAG." + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.linear.issues.Create" + }, + { + "$dynamic": false, + "title": "The task within the DAG." + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.malloy.CLI" + }, + { + "$dynamic": false, + "title": "The task within the DAG." + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.neo4j.Batch" + }, + { + "$dynamic": false, + "title": "The task within the DAG." + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.neo4j.Query" + }, + { + "$dynamic": false, + "title": "The task within the DAG." + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.hubspot.tickets.Create" + }, + { + "$dynamic": false, + "title": "The task within the DAG." + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.scripts.powershell.Commands" + }, + { + "$dynamic": false, + "title": "The task within the DAG." + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.scripts.powershell.Script" + }, + { + "$dynamic": false, + "title": "The task within the DAG." + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.cloudquery.CloudQueryCLI" + }, + { + "$dynamic": false, + "title": "The task within the DAG." + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.cloudquery.Sync" + }, + { + "$dynamic": false, + "title": "The task within the DAG." + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.nats.Consume" + }, + { + "$dynamic": false, + "title": "The task within the DAG." + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.nats.Produce" + }, + { + "$dynamic": false, + "title": "The task within the DAG." + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.amqp.Consume" + }, + { + "$dynamic": false, + "title": "The task within the DAG." + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.amqp.CreateQueue" + }, + { + "$dynamic": false, + "title": "The task within the DAG." + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.amqp.DeclareExchange" + }, + { + "$dynamic": false, + "title": "The task within the DAG." + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.amqp.Publish" + }, + { + "$dynamic": false, + "title": "The task within the DAG." + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.amqp.QueueBind" + }, + { + "$dynamic": false, + "title": "The task within the DAG." + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.notifications.discord.DiscordExecution" + }, + { + "$dynamic": false, + "title": "The task within the DAG." + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.notifications.discord.DiscordIncomingWebhook" + }, + { + "$dynamic": false, + "title": "The task within the DAG." + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.notifications.google.GoogleChatExecution" + }, + { + "$dynamic": false, + "title": "The task within the DAG." + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.notifications.google.GoogleChatIncomingWebhook" + }, + { + "$dynamic": false, + "title": "The task within the DAG." + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.notifications.mail.MailExecution" + }, + { + "$dynamic": false, + "title": "The task within the DAG." + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.notifications.mail.MailSend" + }, + { + "$dynamic": false, + "title": "The task within the DAG." + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.notifications.opsgenie.OpsgenieAlert" + }, + { + "$dynamic": false, + "title": "The task within the DAG." + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.notifications.opsgenie.OpsgenieExecution" + }, + { + "$dynamic": false, + "title": "The task within the DAG." + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.notifications.pagerduty.PagerDutyAlert" + }, + { + "$dynamic": false, + "title": "The task within the DAG." + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.notifications.pagerduty.PagerDutyExecution" + }, + { + "$dynamic": false, + "title": "The task within the DAG." + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.notifications.sendgrid.SendGridMailExecution" + }, + { + "$dynamic": false, + "title": "The task within the DAG." + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.notifications.sendgrid.SendGridMailSend" + }, + { + "$dynamic": false, + "title": "The task within the DAG." + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.notifications.sentry.SentryAlert" + }, + { + "$dynamic": false, + "title": "The task within the DAG." + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.notifications.sentry.SentryExecution" + }, + { + "$dynamic": false, + "title": "The task within the DAG." + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.notifications.slack.SlackExecution" + }, + { + "$dynamic": false, + "title": "The task within the DAG." + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.notifications.slack.SlackIncomingWebhook" + }, + { + "$dynamic": false, + "title": "The task within the DAG." + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.notifications.teams.TeamsExecution" + }, + { + "$dynamic": false, + "title": "The task within the DAG." + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.notifications.teams.TeamsIncomingWebhook" + }, + { + "$dynamic": false, + "title": "The task within the DAG." + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.notifications.telegram.TelegramExecution" + }, + { + "$dynamic": false, + "title": "The task within the DAG." + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.notifications.telegram.TelegramSend" + }, + { + "$dynamic": false, + "title": "The task within the DAG." + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.notifications.twilio.TwilioAlert" + }, + { + "$dynamic": false, + "title": "The task within the DAG." + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.notifications.twilio.TwilioExecution" + }, + { + "$dynamic": false, + "title": "The task within the DAG." + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.notifications.whatsapp.WhatsAppExecution" + }, + { + "$dynamic": false, + "title": "The task within the DAG." + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.notifications.whatsapp.WhatsAppIncomingWebhook" + }, + { + "$dynamic": false, + "title": "The task within the DAG." + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.notifications.zenduty.ZendutyAlert" + }, + { + "$dynamic": false, + "title": "The task within the DAG." + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.notifications.zenduty.ZendutyExecution" + }, + { + "$dynamic": false, + "title": "The task within the DAG." + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.azure.batch.job.Create" + }, + { + "$dynamic": false, + "title": "The task within the DAG." + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.azure.batch.pool.Resize" + }, + { + "$dynamic": false, + "title": "The task within the DAG." + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.azure.cli.AzCLI" + }, + { + "$dynamic": false, + "title": "The task within the DAG." + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.azure.eventhubs.Consume" + }, + { + "$dynamic": false, + "title": "The task within the DAG." + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.azure.eventhubs.Produce" + }, + { + "$dynamic": false, + "title": "The task within the DAG." + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.azure.storage.blob.Copy" + }, + { + "$dynamic": false, + "title": "The task within the DAG." + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.azure.storage.blob.Delete" + }, + { + "$dynamic": false, + "title": "The task within the DAG." + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.azure.storage.blob.DeleteList" + }, + { + "$dynamic": false, + "title": "The task within the DAG." + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.azure.storage.blob.Download" + }, + { + "$dynamic": false, + "title": "The task within the DAG." + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.azure.storage.blob.Downloads" + }, + { + "$dynamic": false, + "title": "The task within the DAG." + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.azure.storage.blob.List" + }, + { + "$dynamic": false, + "title": "The task within the DAG." + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.azure.storage.blob.SharedAccess" + }, + { + "$dynamic": false, + "title": "The task within the DAG." + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.azure.storage.blob.Upload" + }, + { + "$dynamic": false, + "title": "The task within the DAG." + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.azure.storage.table.Bulk" + }, + { + "$dynamic": false, + "title": "The task within the DAG." + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.azure.storage.table.Delete" + }, + { + "$dynamic": false, + "title": "The task within the DAG." + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.azure.storage.table.Get" + }, + { + "$dynamic": false, + "title": "The task within the DAG." + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.azure.storage.table.List" + }, + { + "$dynamic": false, + "title": "The task within the DAG." + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.transform.grok.TransformItems" + }, + { + "$dynamic": false, + "title": "The task within the DAG." + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.transform.grok.TransformValue" + }, + { + "$dynamic": false, + "title": "The task within the DAG." + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.kubernetes.PodCreate" + }, + { + "$dynamic": false, + "title": "The task within the DAG." + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.kubernetes.kubectl.Apply" + }, + { + "$dynamic": false, + "title": "The task within the DAG." + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.transform.jsonata.TransformItems" + }, + { + "$dynamic": false, + "title": "The task within the DAG." + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.transform.jsonata.TransformValue" + }, + { + "$dynamic": false, + "title": "The task within the DAG." + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.vertica.Batch" + }, + { + "$dynamic": false, + "title": "The task within the DAG." + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.vertica.Query" + }, + { + "$dynamic": false, + "title": "The task within the DAG." + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.solace.Consume" + }, + { + "$dynamic": false, + "title": "The task within the DAG." + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.solace.Produce" + }, + { + "$dynamic": false, + "title": "The task within the DAG." + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.ansible.cli.AnsibleCLI" + }, + { + "$dynamic": false, + "title": "The task within the DAG." + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.elasticsearch.Bulk" + }, + { + "$dynamic": false, + "title": "The task within the DAG." + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.elasticsearch.Get" + }, + { + "$dynamic": false, + "title": "The task within the DAG." + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.elasticsearch.Load" + }, + { + "$dynamic": false, + "title": "The task within the DAG." + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.elasticsearch.Put" + }, + { + "$dynamic": false, + "title": "The task within the DAG." + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.elasticsearch.Request" + }, + { + "$dynamic": false, + "title": "The task within the DAG." + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.elasticsearch.Scroll" + }, + { + "$dynamic": false, + "title": "The task within the DAG." + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.elasticsearch.Search" + }, + { + "$dynamic": false, + "title": "The task within the DAG." + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.pinot.Query" + }, + { + "$dynamic": false, + "title": "The task within the DAG." + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.aws.athena.Query" + }, + { + "$dynamic": false, + "title": "The task within the DAG." + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.aws.cli.AwsCLI" + }, + { + "$dynamic": false, + "title": "The task within the DAG." + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.aws.dynamodb.DeleteItem" + }, + { + "$dynamic": false, + "title": "The task within the DAG." + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.aws.dynamodb.GetItem" + }, + { + "$dynamic": false, + "title": "The task within the DAG." + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.aws.dynamodb.PutItem" + }, + { + "$dynamic": false, + "title": "The task within the DAG." + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.aws.dynamodb.Query" + }, + { + "$dynamic": false, + "title": "The task within the DAG." + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.aws.dynamodb.Scan" + }, + { + "$dynamic": false, + "title": "The task within the DAG." + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.aws.ecr.GetAuthToken" + }, + { + "$dynamic": false, + "title": "The task within the DAG." + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.aws.eventbridge.PutEvents" + }, + { + "$dynamic": false, + "title": "The task within the DAG." + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.aws.kinesis.PutRecords" + }, + { + "$dynamic": false, + "title": "The task within the DAG." + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.aws.lambda.Invoke" + }, + { + "$dynamic": false, + "title": "The task within the DAG." + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.aws.s3.Copy" + }, + { + "$dynamic": false, + "title": "The task within the DAG." + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.aws.s3.CreateBucket" + }, + { + "$dynamic": false, + "title": "The task within the DAG." + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.aws.s3.Delete" + }, + { + "$dynamic": false, + "title": "The task within the DAG." + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.aws.s3.DeleteList" + }, + { + "$dynamic": false, + "title": "The task within the DAG." + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.aws.s3.Download" + }, + { + "$dynamic": false, + "title": "The task within the DAG." + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.aws.s3.Downloads" + }, + { + "$dynamic": false, + "title": "The task within the DAG." + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.aws.s3.List" + }, + { + "$dynamic": false, + "title": "The task within the DAG." + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.aws.s3.Upload" + }, + { + "$dynamic": false, + "title": "The task within the DAG." + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.aws.sns.Publish" + }, + { + "$dynamic": false, + "title": "The task within the DAG." + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.aws.sqs.Consume" + }, + { + "$dynamic": false, + "title": "The task within the DAG." + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.aws.sqs.Publish" + }, + { + "$dynamic": false, + "title": "The task within the DAG." + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.sqlmesh.cli.SQLMeshCLI" + }, + { + "$dynamic": false, + "title": "The task within the DAG." + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.surrealdb.Query" + }, + { + "$dynamic": false, + "title": "The task within the DAG." + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.vectorwise.Batch" + }, + { + "$dynamic": false, + "title": "The task within the DAG." + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.vectorwise.Query" + }, + { + "$dynamic": false, + "title": "The task within the DAG." + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.arrowflight.Query" + }, + { + "$dynamic": false, + "title": "The task within the DAG." + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.terraform.cli.TerraformCLI" + }, + { + "$dynamic": false, + "title": "The task within the DAG." + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.debezium.mongodb.Capture" + }, + { + "$dynamic": false, + "title": "The task within the DAG." + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.fs.ftp.Delete" + }, + { + "$dynamic": false, + "title": "The task within the DAG." + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.fs.ftp.Download" + }, + { + "$dynamic": false, + "title": "The task within the DAG." + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.fs.ftp.Downloads" + }, + { + "$dynamic": false, + "title": "The task within the DAG." + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.fs.ftp.List" + }, + { + "$dynamic": false, + "title": "The task within the DAG." + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.fs.ftp.Move" + }, + { + "$dynamic": false, + "title": "The task within the DAG." + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.fs.ftp.Upload" + }, + { + "$dynamic": false, + "title": "The task within the DAG." + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.fs.ftp.Uploads" + }, + { + "$dynamic": false, + "title": "The task within the DAG." + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.fs.ftps.Delete" + }, + { + "$dynamic": false, + "title": "The task within the DAG." + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.fs.ftps.Download" + }, + { + "$dynamic": false, + "title": "The task within the DAG." + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.fs.ftps.Downloads" + }, + { + "$dynamic": false, + "title": "The task within the DAG." + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.fs.ftps.List" + }, + { + "$dynamic": false, + "title": "The task within the DAG." + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.fs.ftps.Move" + }, + { + "$dynamic": false, + "title": "The task within the DAG." + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.fs.ftps.Upload" + }, + { + "$dynamic": false, + "title": "The task within the DAG." + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.fs.ftps.Uploads" + }, + { + "$dynamic": false, + "title": "The task within the DAG." + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.fs.sftp.Delete" + }, + { + "$dynamic": false, + "title": "The task within the DAG." + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.fs.sftp.Download" + }, + { + "$dynamic": false, + "title": "The task within the DAG." + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.fs.sftp.Downloads" + }, + { + "$dynamic": false, + "title": "The task within the DAG." + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.fs.sftp.List" + }, + { + "$dynamic": false, + "title": "The task within the DAG." + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.fs.sftp.Move" + }, + { + "$dynamic": false, + "title": "The task within the DAG." + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.fs.sftp.Upload" + }, + { + "$dynamic": false, + "title": "The task within the DAG." + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.fs.sftp.Uploads" + }, + { + "$dynamic": false, + "title": "The task within the DAG." + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.fs.smb.Delete" + }, + { + "$dynamic": false, + "title": "The task within the DAG." + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.fs.smb.Download" + }, + { + "$dynamic": false, + "title": "The task within the DAG." + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.fs.smb.Downloads" + }, + { + "$dynamic": false, + "title": "The task within the DAG." + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.fs.smb.List" + }, + { + "$dynamic": false, + "title": "The task within the DAG." + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.fs.smb.Move" + }, + { + "$dynamic": false, + "title": "The task within the DAG." + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.fs.smb.Upload" + }, + { + "$dynamic": false, + "title": "The task within the DAG." + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.fs.smb.Uploads" + }, + { + "$dynamic": false, + "title": "The task within the DAG." + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.fs.ssh.Command" + }, + { + "$dynamic": false, + "title": "The task within the DAG." + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.kafka.Consume" + }, + { + "$dynamic": false, + "title": "The task within the DAG." + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.kafka.Produce" + }, + { + "$dynamic": false, + "title": "The task within the DAG." + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.airflow.dags.TriggerDagRun" + }, + { + "$dynamic": false, + "title": "The task within the DAG." + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.core.tasks.scripts.Python" + }, + { + "$dynamic": false, + "title": "The task within the DAG." + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.scripts.python.Commands" + }, + { + "$dynamic": false, + "title": "The task within the DAG." + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.scripts.python.Script" + }, + { + "$dynamic": false, + "title": "The task within the DAG." + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.crypto.openpgp.Decrypt" + }, + { + "$dynamic": false, + "title": "The task within the DAG." + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.crypto.openpgp.Encrypt" + }, + { + "$dynamic": false, + "title": "The task within the DAG." + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.scripts.jython.Eval" + }, + { + "$dynamic": false, + "title": "The task within the DAG." + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.scripts.jython.FileTransform" + }, + { + "$dynamic": false, + "title": "The task within the DAG." + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.mysql.Batch" + }, + { + "$dynamic": false, + "title": "The task within the DAG." + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.mysql.Query" + }, + { + "$dynamic": false, + "title": "The task within the DAG." + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.snowflake.Download" + }, + { + "$dynamic": false, + "title": "The task within the DAG." + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.snowflake.Query" + }, + { + "$dynamic": false, + "title": "The task within the DAG." + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.snowflake.Upload" + }, + { + "$dynamic": false, + "title": "The task within the DAG." + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.redshift.Query" + }, + { + "$dynamic": false, + "title": "The task within the DAG." + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.ldap.Add" + }, + { + "$dynamic": false, + "title": "The task within the DAG." + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.ldap.Delete" + }, + { + "$dynamic": false, + "title": "The task within the DAG." + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.ldap.IonToLdif" + }, + { + "$dynamic": false, + "title": "The task within the DAG." + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.ldap.LdifToIon" + }, + { + "$dynamic": false, + "title": "The task within the DAG." + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.ldap.Modify" + }, + { + "$dynamic": false, + "title": "The task within the DAG." + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.ldap.Search" + }, + { + "$dynamic": false, + "title": "The task within the DAG." + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.databricks.cluster.CreateCluster" + }, + { + "$dynamic": false, + "title": "The task within the DAG." + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.databricks.cluster.DeleteCluster" + }, + { + "$dynamic": false, + "title": "The task within the DAG." + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.databricks.dbfs.Download" + }, + { + "$dynamic": false, + "title": "The task within the DAG." + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.databricks.dbfs.Upload" + }, + { + "$dynamic": false, + "title": "The task within the DAG." + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.databricks.job.CreateJob" + }, + { + "$dynamic": false, + "title": "The task within the DAG." + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.databricks.job.SubmitRun" + }, + { + "$dynamic": false, + "title": "The task within the DAG." + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.databricks.sql.Query" + }, + { + "$dynamic": false, + "title": "The task within the DAG." + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.sqlite.Query" + }, + { + "$dynamic": false, + "title": "The task within the DAG." + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.mqtt.Publish" + }, + { + "$dynamic": false, + "title": "The task within the DAG." + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.mqtt.Subscribe" + }, + { + "$dynamic": false, + "title": "The task within the DAG." + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.pulsar.Consume" + }, + { + "$dynamic": false, + "title": "The task within the DAG." + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.pulsar.Produce" + }, + { + "$dynamic": false, + "title": "The task within the DAG." + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.pulsar.Reader" + }, + { + "$dynamic": false, + "title": "The task within the DAG." + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.dbt.cli.Build" + }, + { + "$dynamic": false, + "title": "The task within the DAG." + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.dbt.cli.Compile" + }, + { + "$dynamic": false, + "title": "The task within the DAG." + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.dbt.cli.DbtCLI" + }, + { + "$dynamic": false, + "title": "The task within the DAG." + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.dbt.cli.Deps" + }, + { + "$dynamic": false, + "title": "The task within the DAG." + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.dbt.cli.Freshness" + }, + { + "$dynamic": false, + "title": "The task within the DAG." + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.dbt.cli.List" + }, + { + "$dynamic": false, + "title": "The task within the DAG." + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.dbt.cli.Run" + }, + { + "$dynamic": false, + "title": "The task within the DAG." + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.dbt.cli.Seed" + }, + { + "$dynamic": false, + "title": "The task within the DAG." + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.dbt.cli.Setup" + }, + { + "$dynamic": false, + "title": "The task within the DAG." + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.dbt.cli.Snapshot" + }, + { + "$dynamic": false, + "title": "The task within the DAG." + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.dbt.cli.Test" + }, + { + "$dynamic": false, + "title": "The task within the DAG." + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.dbt.cloud.CheckStatus" + }, + { + "$dynamic": false, + "title": "The task within the DAG." + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.dbt.cloud.TriggerRun" + }, + { + "$dynamic": false, + "title": "The task within the DAG." + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.dremio.Query" + }, + { + "$dynamic": false, + "title": "The task within the DAG." + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.googleworkspace.drive.Create" + }, + { + "$dynamic": false, + "title": "The task within the DAG." + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.googleworkspace.drive.Delete" + }, + { + "$dynamic": false, + "title": "The task within the DAG." + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.googleworkspace.drive.Download" + }, + { + "$dynamic": false, + "title": "The task within the DAG." + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.googleworkspace.drive.Export" + }, + { + "$dynamic": false, + "title": "The task within the DAG." + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.googleworkspace.drive.List" + }, + { + "$dynamic": false, + "title": "The task within the DAG." + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.googleworkspace.drive.Upload" + }, + { + "$dynamic": false, + "title": "The task within the DAG." + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.googleworkspace.sheets.Read" + }, + { + "$dynamic": false, + "title": "The task within the DAG." + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.googleworkspace.sheets.ReadRange" + }, + { + "$dynamic": false, + "title": "The task within the DAG." + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.airbyte.cloud.jobs.Reset" + }, + { + "$dynamic": false, + "title": "The task within the DAG." + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.airbyte.cloud.jobs.Sync" + }, + { + "$dynamic": false, + "title": "The task within the DAG." + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.airbyte.connections.CheckStatus" + }, + { + "$dynamic": false, + "title": "The task within the DAG." + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.airbyte.connections.Sync" + }, + { + "$dynamic": false, + "title": "The task within the DAG." + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.fivetran.connectors.Sync" + }, + { + "$dynamic": false, + "title": "The task within the DAG." + } + ] + } + ] + } + }, + "required": ["task"] + }, + "io.kestra.plugin.core.flow.EachParallel": { + "type": "object", + "properties": { + "allowFailure": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "concurrent": { + "$dynamic": false, + "type": "integer", + "title": "Number of concurrent parallel tasks that can be running at any point in time.", + "default": 0, + "markdownDescription": "If the value is `0`, no limit exist and all the tasks will start at the same time.\n\nDefault value is : `0`" + }, + "description": { + "type": "string" + }, + "disabled": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "errors": { + "$dynamic": false, + "title": "List of tasks to run if any tasks failed on this FlowableTask.", + "type": "array", + "items": { + "oneOf": [ + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.debug.Echo" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.debug.Return" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.execution.Count" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.execution.Fail" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.execution.Labels" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.execution.PurgeExecutions" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.execution.Resume" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.flow.AllowFailure" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.flow.Dag" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.flow.EachParallel" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.flow.EachSequential" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.flow.ForEach" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.flow.ForEachItem" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.flow.If" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.flow.Parallel" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.flow.Pause" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.flow.Sequential" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.flow.Subflow" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.flow.Switch" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.flow.Template" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.flow.WaitFor" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.flow.WorkingDirectory" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.http.Download" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.http.Request" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.kv.Delete" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.kv.Get" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.kv.GetKeys" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.kv.Set" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.log.Fetch" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.log.Log" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.log.PurgeLogs" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.namespace.DeleteFiles" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.namespace.DownloadFiles" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.namespace.UploadFiles" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.output.OutputValues" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.state.Delete" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.state.Get" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.state.Set" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.storage.Concat" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.storage.DeduplicateItems" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.storage.Delete" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.storage.FilterItems" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.storage.LocalFiles" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.storage.PurgeCurrentExecutionFiles" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.storage.Reverse" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.storage.Size" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.storage.Split" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.templating.TemplatedTask" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.trigger.Toggle" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.hightouch.Sync" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.github.code.Search" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.github.commits.Search" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.github.issues.Comment" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.github.issues.Create" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.github.issues.Search" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.github.pulls.Create" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.github.pulls.Search" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.github.repositories.Search" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.github.topics.Search" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.github.users.Search" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.druid.Query" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.weaviate.BatchCreate" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.weaviate.Delete" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.weaviate.Query" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.weaviate.SchemaCreate" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.spark.JarSubmit" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.spark.PythonSubmit" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.spark.RSubmit" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.spark.SparkCLI" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.auth.OauthAccessToken" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.bigquery.Copy" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.bigquery.CopyPartitions" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.bigquery.CreateDataset" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.bigquery.CreateTable" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.bigquery.DeleteDataset" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.bigquery.DeletePartitions" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.bigquery.DeleteTable" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.bigquery.ExtractToGcs" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.bigquery.Load" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.bigquery.LoadFromGcs" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.bigquery.Query" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.bigquery.StorageWrite" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.bigquery.TableMetadata" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.bigquery.UpdateDataset" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.bigquery.UpdateTable" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.cli.GCloudCLI" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.dataproc.batches.PySparkSubmit" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.dataproc.batches.RSparkSubmit" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.dataproc.batches.SparkSqlSubmit" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.dataproc.batches.SparkSubmit" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.firestore.Delete" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.firestore.Get" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.firestore.Query" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.firestore.Set" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.gcs.Compose" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.gcs.Copy" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.gcs.CreateBucket" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.gcs.CreateBucketIamPolicy" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.gcs.Delete" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.gcs.DeleteBucket" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.gcs.DeleteList" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.gcs.Download" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.gcs.Downloads" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.gcs.List" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.gcs.UpdateBucket" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.gcs.Upload" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.gke.ClusterMetadata" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.pubsub.Consume" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.pubsub.Publish" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.vertexai.ChatCompletion" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.vertexai.CustomJob" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.vertexai.MultimodalCompletion" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.vertexai.TextCompletion" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.db2.Query" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.minio.Copy" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.minio.CreateBucket" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.minio.Delete" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.minio.DeleteList" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.minio.Download" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.minio.Downloads" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.minio.List" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.minio.Upload" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.soda.Scan" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.modal.cli.ModalCLI" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.rockset.Query" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.scripts.nashorn.Eval" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.scripts.nashorn.FileTransform" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.scripts.ruby.Commands" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.scripts.ruby.Script" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.mongodb.Bulk" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.mongodb.Delete" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.mongodb.Find" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.mongodb.InsertOne" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.mongodb.Load" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.mongodb.Update" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.debezium.postgres.Capture" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.BigQuery" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.BingAds" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.ChargeBee" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.ExchangeRateHost" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.FacebookAds" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.Fastly" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.GenericTap" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.GitHub" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.Gitlab" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.GoogleAdwords" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.GoogleAnalytics" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.GoogleSearchConsole" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.HubSpot" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.Marketo" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.Netsuite" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.PipelinewiseMongoDb" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.PipelinewiseMysql" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.PipelinewiseOracle" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.PipelinewisePostgres" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.PipelinewiseSqlServer" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.Quickbooks" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.Recharge" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.SageIntacct" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.Salesforce" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.Shopify" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.Slack" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.Stripe" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.Zendesk" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.Zoom" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.targets.AdswerveBigQuery" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.targets.Csv" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.targets.DatamillCoPostgres" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.targets.GenericTarget" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.targets.Json" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.targets.MeltanoSnowflake" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.targets.Oracle" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.targets.PipelinewisePostgres" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.targets.PipelinewiseRedshift" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.targets.PipelinewiseSnowflake" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.targets.SqlServer" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.scripts.julia.Commands" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.scripts.julia.Script" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.trino.Query" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.compress.ArchiveCompress" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.compress.ArchiveDecompress" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.compress.FileCompress" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.compress.FileDecompress" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.duckdb.Query" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.dataform.cli.DataformCLI" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.couchbase.Query" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.serdes.avro.AvroToIon" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.serdes.avro.IonToAvro" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.serdes.csv.CsvToIon" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.serdes.csv.IonToCsv" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.serdes.excel.ExcelToIon" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.serdes.excel.IonToExcel" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.serdes.json.IonToJson" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.serdes.json.JsonToIon" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.serdes.parquet.IonToParquet" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.serdes.parquet.ParquetToIon" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.serdes.xml.IonToXml" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.serdes.xml.XmlToIon" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.sqlserver.Batch" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.sqlserver.Query" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.powerbi.RefreshGroupDataset" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.core.tasks.scripts.Node" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.scripts.node.Commands" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.scripts.node.Script" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.docker.Build" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.docker.Run" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.oracle.Batch" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.oracle.Query" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.zendesk.tickets.Create" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.debezium.mysql.Capture" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.debezium.sqlserver.Capture" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.cassandra.astradb.Query" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.cassandra.standard.Query" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.openai.ChatCompletion" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.openai.CreateImage" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.postgresql.Batch" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.postgresql.CopyIn" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.postgresql.CopyOut" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.postgresql.Query" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.core.tasks.scripts.Bash" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.scripts.shell.Commands" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.scripts.shell.Script" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.scripts.r.Commands" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.scripts.r.Script" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.debezium.db2.Capture" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.tika.Parse" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jira.issues.Create" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jira.issues.CreateComment" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.debezium.oracle.Capture" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.git.Clone" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.git.Push" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.git.PushFlows" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.git.PushNamespaceFiles" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.git.Sync" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.git.SyncFlows" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.git.SyncNamespaceFiles" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.servicenow.Post" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.sybase.Query" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.as400.Query" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.clickhouse.BulkInsert" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.clickhouse.Query" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.scripts.groovy.Eval" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.scripts.groovy.FileTransform" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.redis.list.ListPop" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.redis.list.ListPush" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.redis.pubsub.Publish" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.redis.string.Delete" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.redis.string.Get" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.redis.string.Set" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.linear.issues.Create" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.malloy.CLI" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.neo4j.Batch" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.neo4j.Query" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.hubspot.tickets.Create" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.scripts.powershell.Commands" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.scripts.powershell.Script" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.cloudquery.CloudQueryCLI" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.cloudquery.Sync" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.nats.Consume" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.nats.Produce" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.amqp.Consume" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.amqp.CreateQueue" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.amqp.DeclareExchange" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.amqp.Publish" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.amqp.QueueBind" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.notifications.discord.DiscordExecution" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.notifications.discord.DiscordIncomingWebhook" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.notifications.google.GoogleChatExecution" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.notifications.google.GoogleChatIncomingWebhook" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.notifications.mail.MailExecution" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.notifications.mail.MailSend" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.notifications.opsgenie.OpsgenieAlert" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.notifications.opsgenie.OpsgenieExecution" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.notifications.pagerduty.PagerDutyAlert" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.notifications.pagerduty.PagerDutyExecution" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.notifications.sendgrid.SendGridMailExecution" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.notifications.sendgrid.SendGridMailSend" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.notifications.sentry.SentryAlert" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.notifications.sentry.SentryExecution" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.notifications.slack.SlackExecution" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.notifications.slack.SlackIncomingWebhook" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.notifications.teams.TeamsExecution" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.notifications.teams.TeamsIncomingWebhook" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.notifications.telegram.TelegramExecution" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.notifications.telegram.TelegramSend" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.notifications.twilio.TwilioAlert" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.notifications.twilio.TwilioExecution" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.notifications.whatsapp.WhatsAppExecution" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.notifications.whatsapp.WhatsAppIncomingWebhook" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.notifications.zenduty.ZendutyAlert" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.notifications.zenduty.ZendutyExecution" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.azure.batch.job.Create" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.azure.batch.pool.Resize" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.azure.cli.AzCLI" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.azure.eventhubs.Consume" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.azure.eventhubs.Produce" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.azure.storage.blob.Copy" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.azure.storage.blob.Delete" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.azure.storage.blob.DeleteList" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.azure.storage.blob.Download" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.azure.storage.blob.Downloads" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.azure.storage.blob.List" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.azure.storage.blob.SharedAccess" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.azure.storage.blob.Upload" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.azure.storage.table.Bulk" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.azure.storage.table.Delete" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.azure.storage.table.Get" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.azure.storage.table.List" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.transform.grok.TransformItems" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.transform.grok.TransformValue" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.kubernetes.PodCreate" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.kubernetes.kubectl.Apply" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.transform.jsonata.TransformItems" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.transform.jsonata.TransformValue" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.vertica.Batch" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.vertica.Query" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.solace.Consume" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.solace.Produce" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.ansible.cli.AnsibleCLI" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.elasticsearch.Bulk" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.elasticsearch.Get" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.elasticsearch.Load" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.elasticsearch.Put" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.elasticsearch.Request" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.elasticsearch.Scroll" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.elasticsearch.Search" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.pinot.Query" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.aws.athena.Query" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.aws.cli.AwsCLI" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.aws.dynamodb.DeleteItem" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.aws.dynamodb.GetItem" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.aws.dynamodb.PutItem" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.aws.dynamodb.Query" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.aws.dynamodb.Scan" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.aws.ecr.GetAuthToken" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.aws.eventbridge.PutEvents" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.aws.kinesis.PutRecords" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.aws.lambda.Invoke" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.aws.s3.Copy" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.aws.s3.CreateBucket" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.aws.s3.Delete" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.aws.s3.DeleteList" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.aws.s3.Download" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.aws.s3.Downloads" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.aws.s3.List" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.aws.s3.Upload" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.aws.sns.Publish" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.aws.sqs.Consume" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.aws.sqs.Publish" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.sqlmesh.cli.SQLMeshCLI" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.surrealdb.Query" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.vectorwise.Batch" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.vectorwise.Query" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.arrowflight.Query" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.terraform.cli.TerraformCLI" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.debezium.mongodb.Capture" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.fs.ftp.Delete" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.fs.ftp.Download" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.fs.ftp.Downloads" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.fs.ftp.List" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.fs.ftp.Move" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.fs.ftp.Upload" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.fs.ftp.Uploads" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.fs.ftps.Delete" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.fs.ftps.Download" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.fs.ftps.Downloads" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.fs.ftps.List" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.fs.ftps.Move" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.fs.ftps.Upload" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.fs.ftps.Uploads" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.fs.sftp.Delete" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.fs.sftp.Download" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.fs.sftp.Downloads" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.fs.sftp.List" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.fs.sftp.Move" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.fs.sftp.Upload" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.fs.sftp.Uploads" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.fs.smb.Delete" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.fs.smb.Download" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.fs.smb.Downloads" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.fs.smb.List" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.fs.smb.Move" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.fs.smb.Upload" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.fs.smb.Uploads" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.fs.ssh.Command" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.kafka.Consume" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.kafka.Produce" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.airflow.dags.TriggerDagRun" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.core.tasks.scripts.Python" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.scripts.python.Commands" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.scripts.python.Script" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.crypto.openpgp.Decrypt" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.crypto.openpgp.Encrypt" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.scripts.jython.Eval" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.scripts.jython.FileTransform" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.mysql.Batch" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.mysql.Query" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.snowflake.Download" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.snowflake.Query" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.snowflake.Upload" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.redshift.Query" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.ldap.Add" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.ldap.Delete" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.ldap.IonToLdif" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.ldap.LdifToIon" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.ldap.Modify" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.ldap.Search" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.databricks.cluster.CreateCluster" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.databricks.cluster.DeleteCluster" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.databricks.dbfs.Download" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.databricks.dbfs.Upload" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.databricks.job.CreateJob" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.databricks.job.SubmitRun" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.databricks.sql.Query" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.sqlite.Query" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.mqtt.Publish" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.mqtt.Subscribe" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.pulsar.Consume" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.pulsar.Produce" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.pulsar.Reader" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.dbt.cli.Build" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.dbt.cli.Compile" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.dbt.cli.DbtCLI" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.dbt.cli.Deps" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.dbt.cli.Freshness" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.dbt.cli.List" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.dbt.cli.Run" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.dbt.cli.Seed" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.dbt.cli.Setup" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.dbt.cli.Snapshot" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.dbt.cli.Test" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.dbt.cloud.CheckStatus" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.dbt.cloud.TriggerRun" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.dremio.Query" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.googleworkspace.drive.Create" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.googleworkspace.drive.Delete" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.googleworkspace.drive.Download" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.googleworkspace.drive.Export" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.googleworkspace.drive.List" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.googleworkspace.drive.Upload" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.googleworkspace.sheets.Read" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.googleworkspace.sheets.ReadRange" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.airbyte.cloud.jobs.Reset" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.airbyte.cloud.jobs.Sync" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.airbyte.connections.CheckStatus" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.airbyte.connections.Sync" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.fivetran.connectors.Sync" + }, + { + "$dynamic": false + } + ] + } + ] + } + }, + "id": { + "type": "string", + "minLength": 1, + "pattern": "^[a-zA-Z0-9][a-zA-Z0-9_-]*" + }, + "logLevel": { + "type": "string", + "enum": ["ERROR", "WARN", "INFO", "DEBUG", "TRACE"] + }, + "retry": { + "oneOf": [ + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Constant-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Exponential-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Random-2" + } + ] + }, + "tasks": { + "$dynamic": false, + "minItems": 1, + "type": "array", + "items": { + "oneOf": [ + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.debug.Echo" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.debug.Return" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.execution.Count" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.execution.Fail" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.execution.Labels" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.execution.PurgeExecutions" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.execution.Resume" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.flow.AllowFailure" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.flow.Dag" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.flow.EachParallel" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.flow.EachSequential" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.flow.ForEach" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.flow.ForEachItem" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.flow.If" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.flow.Parallel" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.flow.Pause" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.flow.Sequential" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.flow.Subflow" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.flow.Switch" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.flow.Template" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.flow.WaitFor" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.flow.WorkingDirectory" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.http.Download" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.http.Request" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.kv.Delete" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.kv.Get" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.kv.GetKeys" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.kv.Set" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.log.Fetch" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.log.Log" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.log.PurgeLogs" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.namespace.DeleteFiles" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.namespace.DownloadFiles" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.namespace.UploadFiles" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.output.OutputValues" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.state.Delete" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.state.Get" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.state.Set" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.storage.Concat" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.storage.DeduplicateItems" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.storage.Delete" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.storage.FilterItems" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.storage.LocalFiles" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.storage.PurgeCurrentExecutionFiles" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.storage.Reverse" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.storage.Size" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.storage.Split" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.templating.TemplatedTask" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.trigger.Toggle" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.hightouch.Sync" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.github.code.Search" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.github.commits.Search" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.github.issues.Comment" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.github.issues.Create" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.github.issues.Search" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.github.pulls.Create" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.github.pulls.Search" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.github.repositories.Search" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.github.topics.Search" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.github.users.Search" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.druid.Query" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.weaviate.BatchCreate" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.weaviate.Delete" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.weaviate.Query" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.weaviate.SchemaCreate" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.spark.JarSubmit" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.spark.PythonSubmit" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.spark.RSubmit" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.spark.SparkCLI" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.auth.OauthAccessToken" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.bigquery.Copy" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.bigquery.CopyPartitions" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.bigquery.CreateDataset" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.bigquery.CreateTable" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.bigquery.DeleteDataset" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.bigquery.DeletePartitions" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.bigquery.DeleteTable" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.bigquery.ExtractToGcs" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.bigquery.Load" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.bigquery.LoadFromGcs" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.bigquery.Query" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.bigquery.StorageWrite" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.bigquery.TableMetadata" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.bigquery.UpdateDataset" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.bigquery.UpdateTable" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.cli.GCloudCLI" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.dataproc.batches.PySparkSubmit" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.dataproc.batches.RSparkSubmit" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.dataproc.batches.SparkSqlSubmit" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.dataproc.batches.SparkSubmit" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.firestore.Delete" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.firestore.Get" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.firestore.Query" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.firestore.Set" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.gcs.Compose" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.gcs.Copy" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.gcs.CreateBucket" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.gcs.CreateBucketIamPolicy" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.gcs.Delete" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.gcs.DeleteBucket" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.gcs.DeleteList" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.gcs.Download" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.gcs.Downloads" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.gcs.List" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.gcs.UpdateBucket" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.gcs.Upload" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.gke.ClusterMetadata" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.pubsub.Consume" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.pubsub.Publish" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.vertexai.ChatCompletion" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.vertexai.CustomJob" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.vertexai.MultimodalCompletion" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.vertexai.TextCompletion" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.db2.Query" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.minio.Copy" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.minio.CreateBucket" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.minio.Delete" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.minio.DeleteList" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.minio.Download" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.minio.Downloads" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.minio.List" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.minio.Upload" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.soda.Scan" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.modal.cli.ModalCLI" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.rockset.Query" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.scripts.nashorn.Eval" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.scripts.nashorn.FileTransform" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.scripts.ruby.Commands" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.scripts.ruby.Script" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.mongodb.Bulk" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.mongodb.Delete" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.mongodb.Find" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.mongodb.InsertOne" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.mongodb.Load" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.mongodb.Update" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.debezium.postgres.Capture" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.BigQuery" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.BingAds" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.ChargeBee" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.ExchangeRateHost" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.FacebookAds" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.Fastly" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.GenericTap" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.GitHub" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.Gitlab" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.GoogleAdwords" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.GoogleAnalytics" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.GoogleSearchConsole" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.HubSpot" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.Marketo" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.Netsuite" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.PipelinewiseMongoDb" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.PipelinewiseMysql" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.PipelinewiseOracle" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.PipelinewisePostgres" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.PipelinewiseSqlServer" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.Quickbooks" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.Recharge" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.SageIntacct" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.Salesforce" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.Shopify" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.Slack" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.Stripe" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.Zendesk" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.Zoom" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.targets.AdswerveBigQuery" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.targets.Csv" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.targets.DatamillCoPostgres" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.targets.GenericTarget" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.targets.Json" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.targets.MeltanoSnowflake" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.targets.Oracle" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.targets.PipelinewisePostgres" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.targets.PipelinewiseRedshift" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.targets.PipelinewiseSnowflake" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.targets.SqlServer" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.scripts.julia.Commands" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.scripts.julia.Script" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.trino.Query" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.compress.ArchiveCompress" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.compress.ArchiveDecompress" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.compress.FileCompress" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.compress.FileDecompress" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.duckdb.Query" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.dataform.cli.DataformCLI" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.couchbase.Query" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.serdes.avro.AvroToIon" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.serdes.avro.IonToAvro" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.serdes.csv.CsvToIon" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.serdes.csv.IonToCsv" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.serdes.excel.ExcelToIon" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.serdes.excel.IonToExcel" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.serdes.json.IonToJson" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.serdes.json.JsonToIon" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.serdes.parquet.IonToParquet" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.serdes.parquet.ParquetToIon" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.serdes.xml.IonToXml" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.serdes.xml.XmlToIon" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.sqlserver.Batch" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.sqlserver.Query" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.powerbi.RefreshGroupDataset" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.core.tasks.scripts.Node" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.scripts.node.Commands" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.scripts.node.Script" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.docker.Build" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.docker.Run" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.oracle.Batch" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.oracle.Query" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.zendesk.tickets.Create" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.debezium.mysql.Capture" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.debezium.sqlserver.Capture" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.cassandra.astradb.Query" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.cassandra.standard.Query" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.openai.ChatCompletion" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.openai.CreateImage" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.postgresql.Batch" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.postgresql.CopyIn" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.postgresql.CopyOut" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.postgresql.Query" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.core.tasks.scripts.Bash" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.scripts.shell.Commands" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.scripts.shell.Script" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.scripts.r.Commands" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.scripts.r.Script" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.debezium.db2.Capture" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.tika.Parse" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jira.issues.Create" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jira.issues.CreateComment" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.debezium.oracle.Capture" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.git.Clone" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.git.Push" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.git.PushFlows" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.git.PushNamespaceFiles" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.git.Sync" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.git.SyncFlows" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.git.SyncNamespaceFiles" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.servicenow.Post" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.sybase.Query" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.as400.Query" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.clickhouse.BulkInsert" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.clickhouse.Query" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.scripts.groovy.Eval" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.scripts.groovy.FileTransform" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.redis.list.ListPop" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.redis.list.ListPush" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.redis.pubsub.Publish" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.redis.string.Delete" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.redis.string.Get" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.redis.string.Set" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.linear.issues.Create" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.malloy.CLI" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.neo4j.Batch" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.neo4j.Query" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.hubspot.tickets.Create" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.scripts.powershell.Commands" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.scripts.powershell.Script" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.cloudquery.CloudQueryCLI" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.cloudquery.Sync" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.nats.Consume" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.nats.Produce" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.amqp.Consume" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.amqp.CreateQueue" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.amqp.DeclareExchange" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.amqp.Publish" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.amqp.QueueBind" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.notifications.discord.DiscordExecution" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.notifications.discord.DiscordIncomingWebhook" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.notifications.google.GoogleChatExecution" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.notifications.google.GoogleChatIncomingWebhook" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.notifications.mail.MailExecution" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.notifications.mail.MailSend" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.notifications.opsgenie.OpsgenieAlert" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.notifications.opsgenie.OpsgenieExecution" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.notifications.pagerduty.PagerDutyAlert" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.notifications.pagerduty.PagerDutyExecution" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.notifications.sendgrid.SendGridMailExecution" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.notifications.sendgrid.SendGridMailSend" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.notifications.sentry.SentryAlert" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.notifications.sentry.SentryExecution" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.notifications.slack.SlackExecution" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.notifications.slack.SlackIncomingWebhook" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.notifications.teams.TeamsExecution" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.notifications.teams.TeamsIncomingWebhook" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.notifications.telegram.TelegramExecution" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.notifications.telegram.TelegramSend" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.notifications.twilio.TwilioAlert" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.notifications.twilio.TwilioExecution" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.notifications.whatsapp.WhatsAppExecution" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.notifications.whatsapp.WhatsAppIncomingWebhook" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.notifications.zenduty.ZendutyAlert" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.notifications.zenduty.ZendutyExecution" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.azure.batch.job.Create" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.azure.batch.pool.Resize" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.azure.cli.AzCLI" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.azure.eventhubs.Consume" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.azure.eventhubs.Produce" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.azure.storage.blob.Copy" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.azure.storage.blob.Delete" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.azure.storage.blob.DeleteList" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.azure.storage.blob.Download" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.azure.storage.blob.Downloads" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.azure.storage.blob.List" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.azure.storage.blob.SharedAccess" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.azure.storage.blob.Upload" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.azure.storage.table.Bulk" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.azure.storage.table.Delete" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.azure.storage.table.Get" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.azure.storage.table.List" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.transform.grok.TransformItems" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.transform.grok.TransformValue" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.kubernetes.PodCreate" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.kubernetes.kubectl.Apply" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.transform.jsonata.TransformItems" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.transform.jsonata.TransformValue" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.vertica.Batch" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.vertica.Query" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.solace.Consume" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.solace.Produce" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.ansible.cli.AnsibleCLI" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.elasticsearch.Bulk" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.elasticsearch.Get" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.elasticsearch.Load" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.elasticsearch.Put" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.elasticsearch.Request" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.elasticsearch.Scroll" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.elasticsearch.Search" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.pinot.Query" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.aws.athena.Query" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.aws.cli.AwsCLI" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.aws.dynamodb.DeleteItem" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.aws.dynamodb.GetItem" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.aws.dynamodb.PutItem" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.aws.dynamodb.Query" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.aws.dynamodb.Scan" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.aws.ecr.GetAuthToken" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.aws.eventbridge.PutEvents" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.aws.kinesis.PutRecords" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.aws.lambda.Invoke" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.aws.s3.Copy" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.aws.s3.CreateBucket" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.aws.s3.Delete" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.aws.s3.DeleteList" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.aws.s3.Download" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.aws.s3.Downloads" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.aws.s3.List" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.aws.s3.Upload" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.aws.sns.Publish" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.aws.sqs.Consume" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.aws.sqs.Publish" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.sqlmesh.cli.SQLMeshCLI" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.surrealdb.Query" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.vectorwise.Batch" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.vectorwise.Query" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.arrowflight.Query" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.terraform.cli.TerraformCLI" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.debezium.mongodb.Capture" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.fs.ftp.Delete" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.fs.ftp.Download" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.fs.ftp.Downloads" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.fs.ftp.List" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.fs.ftp.Move" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.fs.ftp.Upload" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.fs.ftp.Uploads" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.fs.ftps.Delete" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.fs.ftps.Download" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.fs.ftps.Downloads" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.fs.ftps.List" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.fs.ftps.Move" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.fs.ftps.Upload" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.fs.ftps.Uploads" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.fs.sftp.Delete" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.fs.sftp.Download" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.fs.sftp.Downloads" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.fs.sftp.List" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.fs.sftp.Move" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.fs.sftp.Upload" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.fs.sftp.Uploads" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.fs.smb.Delete" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.fs.smb.Download" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.fs.smb.Downloads" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.fs.smb.List" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.fs.smb.Move" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.fs.smb.Upload" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.fs.smb.Uploads" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.fs.ssh.Command" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.kafka.Consume" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.kafka.Produce" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.airflow.dags.TriggerDagRun" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.core.tasks.scripts.Python" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.scripts.python.Commands" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.scripts.python.Script" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.crypto.openpgp.Decrypt" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.crypto.openpgp.Encrypt" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.scripts.jython.Eval" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.scripts.jython.FileTransform" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.mysql.Batch" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.mysql.Query" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.snowflake.Download" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.snowflake.Query" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.snowflake.Upload" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.redshift.Query" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.ldap.Add" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.ldap.Delete" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.ldap.IonToLdif" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.ldap.LdifToIon" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.ldap.Modify" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.ldap.Search" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.databricks.cluster.CreateCluster" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.databricks.cluster.DeleteCluster" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.databricks.dbfs.Download" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.databricks.dbfs.Upload" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.databricks.job.CreateJob" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.databricks.job.SubmitRun" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.databricks.sql.Query" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.sqlite.Query" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.mqtt.Publish" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.mqtt.Subscribe" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.pulsar.Consume" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.pulsar.Produce" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.pulsar.Reader" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.dbt.cli.Build" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.dbt.cli.Compile" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.dbt.cli.DbtCLI" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.dbt.cli.Deps" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.dbt.cli.Freshness" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.dbt.cli.List" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.dbt.cli.Run" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.dbt.cli.Seed" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.dbt.cli.Setup" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.dbt.cli.Snapshot" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.dbt.cli.Test" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.dbt.cloud.CheckStatus" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.dbt.cloud.TriggerRun" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.dremio.Query" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.googleworkspace.drive.Create" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.googleworkspace.drive.Delete" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.googleworkspace.drive.Download" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.googleworkspace.drive.Export" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.googleworkspace.drive.List" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.googleworkspace.drive.Upload" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.googleworkspace.sheets.Read" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.googleworkspace.sheets.ReadRange" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.airbyte.cloud.jobs.Reset" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.airbyte.cloud.jobs.Sync" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.airbyte.connections.CheckStatus" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.airbyte.connections.Sync" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.fivetran.connectors.Sync" + }, + { + "$dynamic": false + } + ] + } + ] + } + }, + "timeout": { + "type": "string", + "format": "duration" + }, + "type": { + "const": "io.kestra.plugin.core.flow.EachParallel" + }, + "value": { + "$dynamic": true, + "title": "The list of values for this task.", + "oneOf": [ + { + "type": "string" + }, + { + "type": "array", + "items": {} + } + ], + "markdownDescription": "The value can be passed as a string, a list of strings, or a list of objects." + }, + "workerGroup": { + "$ref": "#/definitions/io.kestra.core.models.tasks.WorkerGroup" + } + }, + "required": ["id", "tasks", "type", "value"], + "title": "For each value in the list, execute one or more tasks in parallel.", + "markdownDescription": "The list of `tasks` will be executed for each item in parallel. The value must be a valid JSON string representing an array, e.g. a list of strings `[\"value1\", \"value2\"]` or a list of dictionaries `[{\"key\": \"value1\"}, {\"key\": \"value2\"}]`.\nYou can access the current iteration value using the variable `{{ taskrun.value }}`.\n\nThe task list will be executed in parallel for each item. For example, if you have a list with 3 elements and 2 tasks defined in the list of `tasks`, all 6 tasks will be computed in parallel without any order guarantee.\n\nIf you want to execute a group of sequential tasks for each value in parallel, you can wrap the list of `tasks` with the [Sequential task](https://kestra.io/plugins/core/tasks/flow/io.kestra.plugin.core.flow.sequential).\nIf your list of values is large, you can limit the number of concurrent tasks using the `concurrent` property.\n\nWe highly recommend triggering a subflow for each value (e.g. using the [ForEachItem](https://kestra.io/plugins/core/tasks/flow/io.kestra.plugin.core.flow.foreachitem) task) instead of specifying many tasks wrapped in a `Sequential` task. This allows better scalability and modularity. Check the [flow best practices documentation](https://kestra.io/docs/best-practices/flows) for more details.##### Examples\n\u003E \n```yaml\nid: each-parallel\nnamespace: company.team\n\ntasks:\n - id: each-parallel\n type: io.kestra.plugin.core.flow.EachParallel\n value: '[\"value 1\", \"value 2\", \"value 3\"]'\n tasks:\n - id: each-value\n type: io.kestra.plugin.core.debug.Return\n format: \"{{ task.id }} with current value '{{ taskrun.value }}'\"\n```\n\n\u003E Create a file for each value in parallel, then process all files in the next task. Note how the `inputFiles` property uses a `jq` expression with a `map` function to extract the paths of all files processed in parallel and pass them into the next task's working directory.\n```yaml\nid: parallel_script\nnamespace: company.team\n\ntasks:\n - id: each\n type: io.kestra.plugin.core.flow.EachParallel\n value: \"{{ range(1, 9) }}\"\n tasks:\n - id: script\n type: io.kestra.plugin.scripts.shell.Script\n outputFiles:\n - \"out/*.txt\"\n script: |\n mkdir out\n echo \"{{ taskrun.value }}\" \u003E out/file_{{ taskrun.value }}.txt\n\n - id: process_all_files\n type: io.kestra.plugin.scripts.shell.Script\n inputFiles: \"{{ outputs.script | jq('map(.outputFiles) | add') | first }}\"\n script: |\n ls -h out/\n\n```\n\n\u003E Run a group of tasks for each value in parallel.\n```yaml\nid: parallel_task_groups\nnamespace: company.team\n\ntasks:\n - id: for_each\n type: io.kestra.plugin.core.flow.EachParallel\n value: [\"value 1\", \"value 2\", \"value 3\"]\n tasks:\n - id: group\n type: io.kestra.plugin.core.flow.Sequential\n tasks:\n - id: task1\n type: io.kestra.plugin.scripts.shell.Commands\n commands:\n - echo \"{{task.id}} \u003E {{ parents[0].taskrun.value }}\"\n - sleep 1\n\n - id: task2\n type: io.kestra.plugin.scripts.shell.Commands\n commands:\n - echo \"{{task.id}} \u003E {{ parents[0].taskrun.value }}\"\n - sleep 1\n\n```" + }, + "io.kestra.plugin.core.flow.EachSequential": { + "type": "object", + "properties": { + "allowFailure": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "description": { + "type": "string" + }, + "disabled": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "errors": { + "$dynamic": false, + "title": "List of tasks to run if any tasks failed on this FlowableTask.", + "type": "array", + "items": { + "oneOf": [ + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.debug.Echo" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.debug.Return" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.execution.Count" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.execution.Fail" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.execution.Labels" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.execution.PurgeExecutions" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.execution.Resume" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.flow.AllowFailure" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.flow.Dag" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.flow.EachParallel" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.flow.EachSequential" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.flow.ForEach" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.flow.ForEachItem" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.flow.If" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.flow.Parallel" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.flow.Pause" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.flow.Sequential" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.flow.Subflow" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.flow.Switch" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.flow.Template" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.flow.WaitFor" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.flow.WorkingDirectory" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.http.Download" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.http.Request" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.kv.Delete" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.kv.Get" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.kv.GetKeys" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.kv.Set" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.log.Fetch" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.log.Log" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.log.PurgeLogs" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.namespace.DeleteFiles" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.namespace.DownloadFiles" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.namespace.UploadFiles" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.output.OutputValues" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.state.Delete" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.state.Get" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.state.Set" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.storage.Concat" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.storage.DeduplicateItems" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.storage.Delete" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.storage.FilterItems" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.storage.LocalFiles" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.storage.PurgeCurrentExecutionFiles" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.storage.Reverse" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.storage.Size" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.storage.Split" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.templating.TemplatedTask" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.trigger.Toggle" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.hightouch.Sync" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.github.code.Search" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.github.commits.Search" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.github.issues.Comment" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.github.issues.Create" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.github.issues.Search" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.github.pulls.Create" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.github.pulls.Search" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.github.repositories.Search" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.github.topics.Search" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.github.users.Search" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.druid.Query" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.weaviate.BatchCreate" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.weaviate.Delete" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.weaviate.Query" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.weaviate.SchemaCreate" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.spark.JarSubmit" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.spark.PythonSubmit" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.spark.RSubmit" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.spark.SparkCLI" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.auth.OauthAccessToken" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.bigquery.Copy" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.bigquery.CopyPartitions" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.bigquery.CreateDataset" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.bigquery.CreateTable" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.bigquery.DeleteDataset" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.bigquery.DeletePartitions" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.bigquery.DeleteTable" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.bigquery.ExtractToGcs" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.bigquery.Load" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.bigquery.LoadFromGcs" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.bigquery.Query" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.bigquery.StorageWrite" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.bigquery.TableMetadata" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.bigquery.UpdateDataset" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.bigquery.UpdateTable" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.cli.GCloudCLI" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.dataproc.batches.PySparkSubmit" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.dataproc.batches.RSparkSubmit" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.dataproc.batches.SparkSqlSubmit" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.dataproc.batches.SparkSubmit" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.firestore.Delete" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.firestore.Get" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.firestore.Query" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.firestore.Set" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.gcs.Compose" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.gcs.Copy" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.gcs.CreateBucket" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.gcs.CreateBucketIamPolicy" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.gcs.Delete" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.gcs.DeleteBucket" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.gcs.DeleteList" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.gcs.Download" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.gcs.Downloads" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.gcs.List" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.gcs.UpdateBucket" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.gcs.Upload" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.gke.ClusterMetadata" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.pubsub.Consume" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.pubsub.Publish" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.vertexai.ChatCompletion" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.vertexai.CustomJob" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.vertexai.MultimodalCompletion" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.vertexai.TextCompletion" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.db2.Query" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.minio.Copy" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.minio.CreateBucket" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.minio.Delete" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.minio.DeleteList" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.minio.Download" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.minio.Downloads" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.minio.List" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.minio.Upload" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.soda.Scan" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.modal.cli.ModalCLI" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.rockset.Query" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.scripts.nashorn.Eval" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.scripts.nashorn.FileTransform" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.scripts.ruby.Commands" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.scripts.ruby.Script" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.mongodb.Bulk" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.mongodb.Delete" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.mongodb.Find" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.mongodb.InsertOne" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.mongodb.Load" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.mongodb.Update" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.debezium.postgres.Capture" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.BigQuery" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.BingAds" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.ChargeBee" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.ExchangeRateHost" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.FacebookAds" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.Fastly" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.GenericTap" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.GitHub" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.Gitlab" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.GoogleAdwords" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.GoogleAnalytics" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.GoogleSearchConsole" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.HubSpot" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.Marketo" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.Netsuite" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.PipelinewiseMongoDb" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.PipelinewiseMysql" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.PipelinewiseOracle" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.PipelinewisePostgres" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.PipelinewiseSqlServer" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.Quickbooks" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.Recharge" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.SageIntacct" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.Salesforce" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.Shopify" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.Slack" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.Stripe" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.Zendesk" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.Zoom" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.targets.AdswerveBigQuery" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.targets.Csv" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.targets.DatamillCoPostgres" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.targets.GenericTarget" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.targets.Json" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.targets.MeltanoSnowflake" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.targets.Oracle" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.targets.PipelinewisePostgres" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.targets.PipelinewiseRedshift" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.targets.PipelinewiseSnowflake" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.targets.SqlServer" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.scripts.julia.Commands" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.scripts.julia.Script" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.trino.Query" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.compress.ArchiveCompress" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.compress.ArchiveDecompress" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.compress.FileCompress" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.compress.FileDecompress" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.duckdb.Query" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.dataform.cli.DataformCLI" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.couchbase.Query" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.serdes.avro.AvroToIon" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.serdes.avro.IonToAvro" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.serdes.csv.CsvToIon" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.serdes.csv.IonToCsv" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.serdes.excel.ExcelToIon" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.serdes.excel.IonToExcel" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.serdes.json.IonToJson" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.serdes.json.JsonToIon" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.serdes.parquet.IonToParquet" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.serdes.parquet.ParquetToIon" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.serdes.xml.IonToXml" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.serdes.xml.XmlToIon" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.sqlserver.Batch" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.sqlserver.Query" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.powerbi.RefreshGroupDataset" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.core.tasks.scripts.Node" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.scripts.node.Commands" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.scripts.node.Script" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.docker.Build" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.docker.Run" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.oracle.Batch" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.oracle.Query" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.zendesk.tickets.Create" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.debezium.mysql.Capture" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.debezium.sqlserver.Capture" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.cassandra.astradb.Query" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.cassandra.standard.Query" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.openai.ChatCompletion" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.openai.CreateImage" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.postgresql.Batch" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.postgresql.CopyIn" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.postgresql.CopyOut" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.postgresql.Query" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.core.tasks.scripts.Bash" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.scripts.shell.Commands" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.scripts.shell.Script" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.scripts.r.Commands" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.scripts.r.Script" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.debezium.db2.Capture" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.tika.Parse" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jira.issues.Create" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jira.issues.CreateComment" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.debezium.oracle.Capture" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.git.Clone" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.git.Push" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.git.PushFlows" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.git.PushNamespaceFiles" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.git.Sync" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.git.SyncFlows" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.git.SyncNamespaceFiles" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.servicenow.Post" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.sybase.Query" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.as400.Query" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.clickhouse.BulkInsert" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.clickhouse.Query" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.scripts.groovy.Eval" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.scripts.groovy.FileTransform" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.redis.list.ListPop" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.redis.list.ListPush" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.redis.pubsub.Publish" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.redis.string.Delete" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.redis.string.Get" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.redis.string.Set" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.linear.issues.Create" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.malloy.CLI" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.neo4j.Batch" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.neo4j.Query" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.hubspot.tickets.Create" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.scripts.powershell.Commands" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.scripts.powershell.Script" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.cloudquery.CloudQueryCLI" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.cloudquery.Sync" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.nats.Consume" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.nats.Produce" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.amqp.Consume" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.amqp.CreateQueue" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.amqp.DeclareExchange" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.amqp.Publish" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.amqp.QueueBind" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.notifications.discord.DiscordExecution" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.notifications.discord.DiscordIncomingWebhook" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.notifications.google.GoogleChatExecution" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.notifications.google.GoogleChatIncomingWebhook" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.notifications.mail.MailExecution" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.notifications.mail.MailSend" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.notifications.opsgenie.OpsgenieAlert" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.notifications.opsgenie.OpsgenieExecution" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.notifications.pagerduty.PagerDutyAlert" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.notifications.pagerduty.PagerDutyExecution" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.notifications.sendgrid.SendGridMailExecution" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.notifications.sendgrid.SendGridMailSend" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.notifications.sentry.SentryAlert" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.notifications.sentry.SentryExecution" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.notifications.slack.SlackExecution" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.notifications.slack.SlackIncomingWebhook" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.notifications.teams.TeamsExecution" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.notifications.teams.TeamsIncomingWebhook" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.notifications.telegram.TelegramExecution" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.notifications.telegram.TelegramSend" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.notifications.twilio.TwilioAlert" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.notifications.twilio.TwilioExecution" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.notifications.whatsapp.WhatsAppExecution" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.notifications.whatsapp.WhatsAppIncomingWebhook" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.notifications.zenduty.ZendutyAlert" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.notifications.zenduty.ZendutyExecution" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.azure.batch.job.Create" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.azure.batch.pool.Resize" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.azure.cli.AzCLI" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.azure.eventhubs.Consume" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.azure.eventhubs.Produce" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.azure.storage.blob.Copy" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.azure.storage.blob.Delete" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.azure.storage.blob.DeleteList" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.azure.storage.blob.Download" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.azure.storage.blob.Downloads" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.azure.storage.blob.List" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.azure.storage.blob.SharedAccess" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.azure.storage.blob.Upload" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.azure.storage.table.Bulk" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.azure.storage.table.Delete" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.azure.storage.table.Get" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.azure.storage.table.List" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.transform.grok.TransformItems" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.transform.grok.TransformValue" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.kubernetes.PodCreate" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.kubernetes.kubectl.Apply" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.transform.jsonata.TransformItems" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.transform.jsonata.TransformValue" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.vertica.Batch" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.vertica.Query" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.solace.Consume" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.solace.Produce" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.ansible.cli.AnsibleCLI" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.elasticsearch.Bulk" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.elasticsearch.Get" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.elasticsearch.Load" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.elasticsearch.Put" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.elasticsearch.Request" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.elasticsearch.Scroll" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.elasticsearch.Search" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.pinot.Query" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.aws.athena.Query" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.aws.cli.AwsCLI" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.aws.dynamodb.DeleteItem" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.aws.dynamodb.GetItem" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.aws.dynamodb.PutItem" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.aws.dynamodb.Query" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.aws.dynamodb.Scan" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.aws.ecr.GetAuthToken" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.aws.eventbridge.PutEvents" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.aws.kinesis.PutRecords" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.aws.lambda.Invoke" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.aws.s3.Copy" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.aws.s3.CreateBucket" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.aws.s3.Delete" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.aws.s3.DeleteList" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.aws.s3.Download" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.aws.s3.Downloads" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.aws.s3.List" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.aws.s3.Upload" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.aws.sns.Publish" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.aws.sqs.Consume" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.aws.sqs.Publish" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.sqlmesh.cli.SQLMeshCLI" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.surrealdb.Query" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.vectorwise.Batch" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.vectorwise.Query" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.arrowflight.Query" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.terraform.cli.TerraformCLI" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.debezium.mongodb.Capture" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.fs.ftp.Delete" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.fs.ftp.Download" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.fs.ftp.Downloads" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.fs.ftp.List" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.fs.ftp.Move" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.fs.ftp.Upload" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.fs.ftp.Uploads" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.fs.ftps.Delete" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.fs.ftps.Download" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.fs.ftps.Downloads" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.fs.ftps.List" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.fs.ftps.Move" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.fs.ftps.Upload" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.fs.ftps.Uploads" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.fs.sftp.Delete" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.fs.sftp.Download" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.fs.sftp.Downloads" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.fs.sftp.List" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.fs.sftp.Move" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.fs.sftp.Upload" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.fs.sftp.Uploads" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.fs.smb.Delete" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.fs.smb.Download" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.fs.smb.Downloads" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.fs.smb.List" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.fs.smb.Move" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.fs.smb.Upload" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.fs.smb.Uploads" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.fs.ssh.Command" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.kafka.Consume" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.kafka.Produce" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.airflow.dags.TriggerDagRun" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.core.tasks.scripts.Python" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.scripts.python.Commands" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.scripts.python.Script" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.crypto.openpgp.Decrypt" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.crypto.openpgp.Encrypt" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.scripts.jython.Eval" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.scripts.jython.FileTransform" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.mysql.Batch" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.mysql.Query" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.snowflake.Download" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.snowflake.Query" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.snowflake.Upload" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.redshift.Query" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.ldap.Add" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.ldap.Delete" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.ldap.IonToLdif" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.ldap.LdifToIon" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.ldap.Modify" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.ldap.Search" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.databricks.cluster.CreateCluster" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.databricks.cluster.DeleteCluster" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.databricks.dbfs.Download" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.databricks.dbfs.Upload" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.databricks.job.CreateJob" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.databricks.job.SubmitRun" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.databricks.sql.Query" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.sqlite.Query" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.mqtt.Publish" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.mqtt.Subscribe" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.pulsar.Consume" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.pulsar.Produce" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.pulsar.Reader" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.dbt.cli.Build" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.dbt.cli.Compile" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.dbt.cli.DbtCLI" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.dbt.cli.Deps" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.dbt.cli.Freshness" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.dbt.cli.List" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.dbt.cli.Run" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.dbt.cli.Seed" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.dbt.cli.Setup" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.dbt.cli.Snapshot" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.dbt.cli.Test" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.dbt.cloud.CheckStatus" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.dbt.cloud.TriggerRun" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.dremio.Query" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.googleworkspace.drive.Create" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.googleworkspace.drive.Delete" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.googleworkspace.drive.Download" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.googleworkspace.drive.Export" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.googleworkspace.drive.List" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.googleworkspace.drive.Upload" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.googleworkspace.sheets.Read" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.googleworkspace.sheets.ReadRange" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.airbyte.cloud.jobs.Reset" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.airbyte.cloud.jobs.Sync" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.airbyte.connections.CheckStatus" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.airbyte.connections.Sync" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.fivetran.connectors.Sync" + }, + { + "$dynamic": false + } + ] + } + ] + } + }, + "id": { + "type": "string", + "minLength": 1, + "pattern": "^[a-zA-Z0-9][a-zA-Z0-9_-]*" + }, + "logLevel": { + "type": "string", + "enum": ["ERROR", "WARN", "INFO", "DEBUG", "TRACE"] + }, + "retry": { + "oneOf": [ + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Constant-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Exponential-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Random-2" + } + ] + }, + "tasks": { + "$dynamic": false, + "type": "array", + "items": { + "oneOf": [ + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.debug.Echo" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.debug.Return" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.execution.Count" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.execution.Fail" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.execution.Labels" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.execution.PurgeExecutions" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.execution.Resume" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.flow.AllowFailure" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.flow.Dag" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.flow.EachParallel" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.flow.EachSequential" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.flow.ForEach" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.flow.ForEachItem" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.flow.If" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.flow.Parallel" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.flow.Pause" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.flow.Sequential" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.flow.Subflow" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.flow.Switch" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.flow.Template" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.flow.WaitFor" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.flow.WorkingDirectory" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.http.Download" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.http.Request" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.kv.Delete" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.kv.Get" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.kv.GetKeys" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.kv.Set" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.log.Fetch" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.log.Log" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.log.PurgeLogs" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.namespace.DeleteFiles" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.namespace.DownloadFiles" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.namespace.UploadFiles" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.output.OutputValues" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.state.Delete" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.state.Get" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.state.Set" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.storage.Concat" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.storage.DeduplicateItems" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.storage.Delete" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.storage.FilterItems" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.storage.LocalFiles" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.storage.PurgeCurrentExecutionFiles" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.storage.Reverse" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.storage.Size" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.storage.Split" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.templating.TemplatedTask" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.trigger.Toggle" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.hightouch.Sync" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.github.code.Search" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.github.commits.Search" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.github.issues.Comment" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.github.issues.Create" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.github.issues.Search" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.github.pulls.Create" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.github.pulls.Search" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.github.repositories.Search" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.github.topics.Search" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.github.users.Search" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.druid.Query" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.weaviate.BatchCreate" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.weaviate.Delete" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.weaviate.Query" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.weaviate.SchemaCreate" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.spark.JarSubmit" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.spark.PythonSubmit" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.spark.RSubmit" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.spark.SparkCLI" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.auth.OauthAccessToken" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.bigquery.Copy" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.bigquery.CopyPartitions" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.bigquery.CreateDataset" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.bigquery.CreateTable" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.bigquery.DeleteDataset" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.bigquery.DeletePartitions" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.bigquery.DeleteTable" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.bigquery.ExtractToGcs" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.bigquery.Load" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.bigquery.LoadFromGcs" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.bigquery.Query" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.bigquery.StorageWrite" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.bigquery.TableMetadata" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.bigquery.UpdateDataset" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.bigquery.UpdateTable" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.cli.GCloudCLI" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.dataproc.batches.PySparkSubmit" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.dataproc.batches.RSparkSubmit" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.dataproc.batches.SparkSqlSubmit" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.dataproc.batches.SparkSubmit" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.firestore.Delete" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.firestore.Get" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.firestore.Query" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.firestore.Set" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.gcs.Compose" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.gcs.Copy" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.gcs.CreateBucket" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.gcs.CreateBucketIamPolicy" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.gcs.Delete" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.gcs.DeleteBucket" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.gcs.DeleteList" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.gcs.Download" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.gcs.Downloads" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.gcs.List" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.gcs.UpdateBucket" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.gcs.Upload" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.gke.ClusterMetadata" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.pubsub.Consume" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.pubsub.Publish" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.vertexai.ChatCompletion" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.vertexai.CustomJob" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.vertexai.MultimodalCompletion" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.vertexai.TextCompletion" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.db2.Query" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.minio.Copy" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.minio.CreateBucket" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.minio.Delete" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.minio.DeleteList" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.minio.Download" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.minio.Downloads" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.minio.List" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.minio.Upload" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.soda.Scan" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.modal.cli.ModalCLI" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.rockset.Query" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.scripts.nashorn.Eval" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.scripts.nashorn.FileTransform" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.scripts.ruby.Commands" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.scripts.ruby.Script" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.mongodb.Bulk" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.mongodb.Delete" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.mongodb.Find" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.mongodb.InsertOne" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.mongodb.Load" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.mongodb.Update" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.debezium.postgres.Capture" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.BigQuery" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.BingAds" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.ChargeBee" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.ExchangeRateHost" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.FacebookAds" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.Fastly" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.GenericTap" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.GitHub" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.Gitlab" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.GoogleAdwords" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.GoogleAnalytics" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.GoogleSearchConsole" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.HubSpot" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.Marketo" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.Netsuite" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.PipelinewiseMongoDb" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.PipelinewiseMysql" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.PipelinewiseOracle" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.PipelinewisePostgres" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.PipelinewiseSqlServer" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.Quickbooks" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.Recharge" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.SageIntacct" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.Salesforce" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.Shopify" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.Slack" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.Stripe" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.Zendesk" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.Zoom" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.targets.AdswerveBigQuery" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.targets.Csv" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.targets.DatamillCoPostgres" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.targets.GenericTarget" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.targets.Json" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.targets.MeltanoSnowflake" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.targets.Oracle" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.targets.PipelinewisePostgres" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.targets.PipelinewiseRedshift" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.targets.PipelinewiseSnowflake" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.targets.SqlServer" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.scripts.julia.Commands" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.scripts.julia.Script" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.trino.Query" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.compress.ArchiveCompress" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.compress.ArchiveDecompress" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.compress.FileCompress" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.compress.FileDecompress" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.duckdb.Query" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.dataform.cli.DataformCLI" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.couchbase.Query" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.serdes.avro.AvroToIon" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.serdes.avro.IonToAvro" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.serdes.csv.CsvToIon" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.serdes.csv.IonToCsv" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.serdes.excel.ExcelToIon" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.serdes.excel.IonToExcel" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.serdes.json.IonToJson" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.serdes.json.JsonToIon" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.serdes.parquet.IonToParquet" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.serdes.parquet.ParquetToIon" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.serdes.xml.IonToXml" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.serdes.xml.XmlToIon" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.sqlserver.Batch" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.sqlserver.Query" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.powerbi.RefreshGroupDataset" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.core.tasks.scripts.Node" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.scripts.node.Commands" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.scripts.node.Script" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.docker.Build" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.docker.Run" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.oracle.Batch" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.oracle.Query" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.zendesk.tickets.Create" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.debezium.mysql.Capture" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.debezium.sqlserver.Capture" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.cassandra.astradb.Query" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.cassandra.standard.Query" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.openai.ChatCompletion" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.openai.CreateImage" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.postgresql.Batch" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.postgresql.CopyIn" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.postgresql.CopyOut" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.postgresql.Query" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.core.tasks.scripts.Bash" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.scripts.shell.Commands" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.scripts.shell.Script" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.scripts.r.Commands" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.scripts.r.Script" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.debezium.db2.Capture" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.tika.Parse" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jira.issues.Create" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jira.issues.CreateComment" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.debezium.oracle.Capture" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.git.Clone" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.git.Push" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.git.PushFlows" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.git.PushNamespaceFiles" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.git.Sync" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.git.SyncFlows" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.git.SyncNamespaceFiles" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.servicenow.Post" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.sybase.Query" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.as400.Query" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.clickhouse.BulkInsert" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.clickhouse.Query" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.scripts.groovy.Eval" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.scripts.groovy.FileTransform" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.redis.list.ListPop" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.redis.list.ListPush" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.redis.pubsub.Publish" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.redis.string.Delete" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.redis.string.Get" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.redis.string.Set" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.linear.issues.Create" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.malloy.CLI" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.neo4j.Batch" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.neo4j.Query" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.hubspot.tickets.Create" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.scripts.powershell.Commands" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.scripts.powershell.Script" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.cloudquery.CloudQueryCLI" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.cloudquery.Sync" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.nats.Consume" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.nats.Produce" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.amqp.Consume" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.amqp.CreateQueue" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.amqp.DeclareExchange" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.amqp.Publish" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.amqp.QueueBind" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.notifications.discord.DiscordExecution" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.notifications.discord.DiscordIncomingWebhook" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.notifications.google.GoogleChatExecution" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.notifications.google.GoogleChatIncomingWebhook" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.notifications.mail.MailExecution" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.notifications.mail.MailSend" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.notifications.opsgenie.OpsgenieAlert" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.notifications.opsgenie.OpsgenieExecution" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.notifications.pagerduty.PagerDutyAlert" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.notifications.pagerduty.PagerDutyExecution" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.notifications.sendgrid.SendGridMailExecution" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.notifications.sendgrid.SendGridMailSend" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.notifications.sentry.SentryAlert" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.notifications.sentry.SentryExecution" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.notifications.slack.SlackExecution" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.notifications.slack.SlackIncomingWebhook" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.notifications.teams.TeamsExecution" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.notifications.teams.TeamsIncomingWebhook" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.notifications.telegram.TelegramExecution" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.notifications.telegram.TelegramSend" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.notifications.twilio.TwilioAlert" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.notifications.twilio.TwilioExecution" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.notifications.whatsapp.WhatsAppExecution" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.notifications.whatsapp.WhatsAppIncomingWebhook" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.notifications.zenduty.ZendutyAlert" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.notifications.zenduty.ZendutyExecution" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.azure.batch.job.Create" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.azure.batch.pool.Resize" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.azure.cli.AzCLI" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.azure.eventhubs.Consume" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.azure.eventhubs.Produce" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.azure.storage.blob.Copy" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.azure.storage.blob.Delete" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.azure.storage.blob.DeleteList" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.azure.storage.blob.Download" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.azure.storage.blob.Downloads" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.azure.storage.blob.List" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.azure.storage.blob.SharedAccess" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.azure.storage.blob.Upload" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.azure.storage.table.Bulk" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.azure.storage.table.Delete" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.azure.storage.table.Get" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.azure.storage.table.List" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.transform.grok.TransformItems" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.transform.grok.TransformValue" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.kubernetes.PodCreate" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.kubernetes.kubectl.Apply" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.transform.jsonata.TransformItems" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.transform.jsonata.TransformValue" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.vertica.Batch" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.vertica.Query" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.solace.Consume" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.solace.Produce" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.ansible.cli.AnsibleCLI" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.elasticsearch.Bulk" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.elasticsearch.Get" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.elasticsearch.Load" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.elasticsearch.Put" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.elasticsearch.Request" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.elasticsearch.Scroll" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.elasticsearch.Search" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.pinot.Query" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.aws.athena.Query" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.aws.cli.AwsCLI" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.aws.dynamodb.DeleteItem" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.aws.dynamodb.GetItem" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.aws.dynamodb.PutItem" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.aws.dynamodb.Query" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.aws.dynamodb.Scan" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.aws.ecr.GetAuthToken" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.aws.eventbridge.PutEvents" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.aws.kinesis.PutRecords" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.aws.lambda.Invoke" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.aws.s3.Copy" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.aws.s3.CreateBucket" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.aws.s3.Delete" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.aws.s3.DeleteList" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.aws.s3.Download" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.aws.s3.Downloads" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.aws.s3.List" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.aws.s3.Upload" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.aws.sns.Publish" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.aws.sqs.Consume" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.aws.sqs.Publish" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.sqlmesh.cli.SQLMeshCLI" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.surrealdb.Query" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.vectorwise.Batch" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.vectorwise.Query" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.arrowflight.Query" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.terraform.cli.TerraformCLI" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.debezium.mongodb.Capture" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.fs.ftp.Delete" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.fs.ftp.Download" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.fs.ftp.Downloads" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.fs.ftp.List" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.fs.ftp.Move" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.fs.ftp.Upload" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.fs.ftp.Uploads" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.fs.ftps.Delete" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.fs.ftps.Download" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.fs.ftps.Downloads" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.fs.ftps.List" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.fs.ftps.Move" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.fs.ftps.Upload" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.fs.ftps.Uploads" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.fs.sftp.Delete" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.fs.sftp.Download" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.fs.sftp.Downloads" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.fs.sftp.List" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.fs.sftp.Move" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.fs.sftp.Upload" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.fs.sftp.Uploads" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.fs.smb.Delete" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.fs.smb.Download" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.fs.smb.Downloads" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.fs.smb.List" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.fs.smb.Move" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.fs.smb.Upload" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.fs.smb.Uploads" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.fs.ssh.Command" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.kafka.Consume" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.kafka.Produce" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.airflow.dags.TriggerDagRun" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.core.tasks.scripts.Python" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.scripts.python.Commands" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.scripts.python.Script" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.crypto.openpgp.Decrypt" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.crypto.openpgp.Encrypt" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.scripts.jython.Eval" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.scripts.jython.FileTransform" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.mysql.Batch" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.mysql.Query" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.snowflake.Download" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.snowflake.Query" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.snowflake.Upload" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.redshift.Query" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.ldap.Add" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.ldap.Delete" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.ldap.IonToLdif" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.ldap.LdifToIon" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.ldap.Modify" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.ldap.Search" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.databricks.cluster.CreateCluster" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.databricks.cluster.DeleteCluster" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.databricks.dbfs.Download" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.databricks.dbfs.Upload" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.databricks.job.CreateJob" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.databricks.job.SubmitRun" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.databricks.sql.Query" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.sqlite.Query" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.mqtt.Publish" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.mqtt.Subscribe" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.pulsar.Consume" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.pulsar.Produce" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.pulsar.Reader" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.dbt.cli.Build" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.dbt.cli.Compile" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.dbt.cli.DbtCLI" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.dbt.cli.Deps" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.dbt.cli.Freshness" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.dbt.cli.List" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.dbt.cli.Run" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.dbt.cli.Seed" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.dbt.cli.Setup" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.dbt.cli.Snapshot" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.dbt.cli.Test" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.dbt.cloud.CheckStatus" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.dbt.cloud.TriggerRun" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.dremio.Query" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.googleworkspace.drive.Create" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.googleworkspace.drive.Delete" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.googleworkspace.drive.Download" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.googleworkspace.drive.Export" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.googleworkspace.drive.List" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.googleworkspace.drive.Upload" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.googleworkspace.sheets.Read" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.googleworkspace.sheets.ReadRange" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.airbyte.cloud.jobs.Reset" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.airbyte.cloud.jobs.Sync" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.airbyte.connections.CheckStatus" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.airbyte.connections.Sync" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.fivetran.connectors.Sync" + }, + { + "$dynamic": false + } + ] + } + ] + } + }, + "timeout": { + "type": "string", + "format": "duration" + }, + "type": { + "const": "io.kestra.plugin.core.flow.EachSequential" + }, + "value": { + "$dynamic": true, + "title": "The list of values for this task.", + "oneOf": [ + { + "type": "string" + }, + { + "type": "array", + "items": {} + } + ], + "markdownDescription": "The value car be passed as a string, a list of strings, or a list of objects." + }, + "workerGroup": { + "$ref": "#/definitions/io.kestra.core.models.tasks.WorkerGroup" + } + }, + "required": ["id", "type", "value"], + "title": "For each value in the list, execute one or more tasks sequentially.", + "markdownDescription": "The list of `tasks` will be executed for each item sequentially. The value must be a valid JSON string representing an array, e.g. a list of strings `[\"value1\", \"value2\"]` or a list of dictionaries `[{\"key\": \"value1\"}, {\"key\": \"value2\"}]`. \n\nYou can access the current iteration value using the variable `{{ taskrun.value }}`. The task list will be executed sequentially for each item.\n\nWe highly recommend triggering a subflow for each value. This allows much better scalability and modularity. Check the [flow best practices documentation](https://kestra.io/docs/developer-guide/best-practices) and the [following Blueprint](https://kestra.io/blueprints/128-run-a-subflow-for-each-value-in-parallel-and-wait-for-their-completion-recommended-pattern-to-iterate-over-hundreds-or-thousands-of-list-items) for more details.##### Examples\n\u003E The taskrun.value from the `each_sequential` task is available only to immediate child tasks such as the `before_if` and the `if` tasks. To access the taskrun value in child tasks of the `if` task (such as in the `after_if` task), you need to use the syntax `{{ parent.taskrun.value }}` as this allows you to access the taskrun value of the parent task `each_sequential`.\n```yaml\nid: loop_example\nnamespace: company.team\n\ntasks:\n - id: each_sequential\n type: io.kestra.plugin.core.flow.EachSequential\n value: [\"value 1\", \"value 2\", \"value 3\"]\n tasks:\n - id: before_if\n type: io.kestra.plugin.core.debug.Return\n format: 'Before if {{ taskrun.value }}'\n - id: if\n type: io.kestra.plugin.core.flow.If\n condition: '{{ taskrun.value == \"value 2\" }}'\n then:\n - id: after_if\n type: io.kestra.plugin.core.debug.Return\n format: 'After if {{ parent.taskrun.value }}'\n```\n\n\u003E This task shows that the value can be a bullet-style list. The task iterates over the list of values and executes the `each-value` child task for each value.\n```yaml\nid: each_sequential\nnamespace: company.team\n\ntasks:\n - id: each-sequential\n type: io.kestra.plugin.core.flow.EachSequential\n value: \n - value 1\n - value 2\n - value 3\n tasks:\n - id: each-value\n type: io.kestra.plugin.core.debug.Return\n format: \"{{ task.id }} with value '{{ taskrun.value }}'\"\n```" + }, + "io.kestra.plugin.core.flow.ForEach": { + "type": "object", + "properties": { + "allowFailure": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "concurrencyLimit": { + "$dynamic": false, + "type": "integer", + "title": "The number of concurrent task groups for each value in the `values` array.", + "default": 1, + "minimum": 0, + "markdownDescription": "If you set the `concurrencyLimit` property to 0, Kestra will execute all task groups concurrently for all values (zero limits!). \n\nIf you set the `concurrencyLimit` property to 1, Kestra will execute each task group one after the other starting with the first value in the list (limit concurrency to one task group that can be actively running at any time).\n\nDefault value is : `1`" + }, + "description": { + "type": "string" + }, + "disabled": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "errors": { + "$dynamic": false, + "title": "List of tasks to run if any tasks failed on this FlowableTask.", + "type": "array", + "items": { + "oneOf": [ + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.debug.Echo" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.debug.Return" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.execution.Count" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.execution.Fail" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.execution.Labels" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.execution.PurgeExecutions" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.execution.Resume" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.flow.AllowFailure" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.flow.Dag" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.flow.EachParallel" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.flow.EachSequential" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.flow.ForEach" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.flow.ForEachItem" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.flow.If" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.flow.Parallel" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.flow.Pause" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.flow.Sequential" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.flow.Subflow" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.flow.Switch" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.flow.Template" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.flow.WaitFor" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.flow.WorkingDirectory" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.http.Download" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.http.Request" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.kv.Delete" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.kv.Get" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.kv.GetKeys" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.kv.Set" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.log.Fetch" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.log.Log" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.log.PurgeLogs" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.namespace.DeleteFiles" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.namespace.DownloadFiles" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.namespace.UploadFiles" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.output.OutputValues" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.state.Delete" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.state.Get" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.state.Set" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.storage.Concat" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.storage.DeduplicateItems" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.storage.Delete" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.storage.FilterItems" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.storage.LocalFiles" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.storage.PurgeCurrentExecutionFiles" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.storage.Reverse" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.storage.Size" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.storage.Split" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.templating.TemplatedTask" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.trigger.Toggle" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.hightouch.Sync" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.github.code.Search" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.github.commits.Search" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.github.issues.Comment" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.github.issues.Create" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.github.issues.Search" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.github.pulls.Create" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.github.pulls.Search" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.github.repositories.Search" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.github.topics.Search" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.github.users.Search" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.druid.Query" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.weaviate.BatchCreate" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.weaviate.Delete" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.weaviate.Query" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.weaviate.SchemaCreate" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.spark.JarSubmit" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.spark.PythonSubmit" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.spark.RSubmit" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.spark.SparkCLI" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.auth.OauthAccessToken" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.bigquery.Copy" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.bigquery.CopyPartitions" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.bigquery.CreateDataset" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.bigquery.CreateTable" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.bigquery.DeleteDataset" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.bigquery.DeletePartitions" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.bigquery.DeleteTable" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.bigquery.ExtractToGcs" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.bigquery.Load" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.bigquery.LoadFromGcs" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.bigquery.Query" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.bigquery.StorageWrite" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.bigquery.TableMetadata" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.bigquery.UpdateDataset" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.bigquery.UpdateTable" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.cli.GCloudCLI" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.dataproc.batches.PySparkSubmit" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.dataproc.batches.RSparkSubmit" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.dataproc.batches.SparkSqlSubmit" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.dataproc.batches.SparkSubmit" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.firestore.Delete" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.firestore.Get" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.firestore.Query" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.firestore.Set" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.gcs.Compose" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.gcs.Copy" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.gcs.CreateBucket" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.gcs.CreateBucketIamPolicy" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.gcs.Delete" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.gcs.DeleteBucket" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.gcs.DeleteList" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.gcs.Download" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.gcs.Downloads" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.gcs.List" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.gcs.UpdateBucket" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.gcs.Upload" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.gke.ClusterMetadata" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.pubsub.Consume" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.pubsub.Publish" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.vertexai.ChatCompletion" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.vertexai.CustomJob" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.vertexai.MultimodalCompletion" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.vertexai.TextCompletion" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.db2.Query" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.minio.Copy" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.minio.CreateBucket" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.minio.Delete" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.minio.DeleteList" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.minio.Download" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.minio.Downloads" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.minio.List" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.minio.Upload" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.soda.Scan" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.modal.cli.ModalCLI" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.rockset.Query" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.scripts.nashorn.Eval" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.scripts.nashorn.FileTransform" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.scripts.ruby.Commands" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.scripts.ruby.Script" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.mongodb.Bulk" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.mongodb.Delete" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.mongodb.Find" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.mongodb.InsertOne" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.mongodb.Load" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.mongodb.Update" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.debezium.postgres.Capture" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.BigQuery" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.BingAds" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.ChargeBee" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.ExchangeRateHost" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.FacebookAds" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.Fastly" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.GenericTap" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.GitHub" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.Gitlab" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.GoogleAdwords" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.GoogleAnalytics" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.GoogleSearchConsole" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.HubSpot" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.Marketo" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.Netsuite" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.PipelinewiseMongoDb" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.PipelinewiseMysql" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.PipelinewiseOracle" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.PipelinewisePostgres" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.PipelinewiseSqlServer" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.Quickbooks" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.Recharge" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.SageIntacct" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.Salesforce" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.Shopify" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.Slack" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.Stripe" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.Zendesk" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.Zoom" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.targets.AdswerveBigQuery" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.targets.Csv" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.targets.DatamillCoPostgres" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.targets.GenericTarget" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.targets.Json" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.targets.MeltanoSnowflake" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.targets.Oracle" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.targets.PipelinewisePostgres" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.targets.PipelinewiseRedshift" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.targets.PipelinewiseSnowflake" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.targets.SqlServer" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.scripts.julia.Commands" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.scripts.julia.Script" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.trino.Query" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.compress.ArchiveCompress" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.compress.ArchiveDecompress" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.compress.FileCompress" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.compress.FileDecompress" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.duckdb.Query" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.dataform.cli.DataformCLI" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.couchbase.Query" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.serdes.avro.AvroToIon" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.serdes.avro.IonToAvro" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.serdes.csv.CsvToIon" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.serdes.csv.IonToCsv" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.serdes.excel.ExcelToIon" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.serdes.excel.IonToExcel" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.serdes.json.IonToJson" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.serdes.json.JsonToIon" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.serdes.parquet.IonToParquet" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.serdes.parquet.ParquetToIon" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.serdes.xml.IonToXml" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.serdes.xml.XmlToIon" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.sqlserver.Batch" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.sqlserver.Query" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.powerbi.RefreshGroupDataset" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.core.tasks.scripts.Node" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.scripts.node.Commands" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.scripts.node.Script" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.docker.Build" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.docker.Run" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.oracle.Batch" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.oracle.Query" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.zendesk.tickets.Create" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.debezium.mysql.Capture" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.debezium.sqlserver.Capture" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.cassandra.astradb.Query" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.cassandra.standard.Query" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.openai.ChatCompletion" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.openai.CreateImage" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.postgresql.Batch" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.postgresql.CopyIn" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.postgresql.CopyOut" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.postgresql.Query" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.core.tasks.scripts.Bash" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.scripts.shell.Commands" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.scripts.shell.Script" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.scripts.r.Commands" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.scripts.r.Script" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.debezium.db2.Capture" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.tika.Parse" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jira.issues.Create" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jira.issues.CreateComment" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.debezium.oracle.Capture" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.git.Clone" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.git.Push" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.git.PushFlows" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.git.PushNamespaceFiles" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.git.Sync" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.git.SyncFlows" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.git.SyncNamespaceFiles" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.servicenow.Post" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.sybase.Query" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.as400.Query" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.clickhouse.BulkInsert" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.clickhouse.Query" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.scripts.groovy.Eval" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.scripts.groovy.FileTransform" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.redis.list.ListPop" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.redis.list.ListPush" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.redis.pubsub.Publish" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.redis.string.Delete" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.redis.string.Get" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.redis.string.Set" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.linear.issues.Create" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.malloy.CLI" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.neo4j.Batch" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.neo4j.Query" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.hubspot.tickets.Create" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.scripts.powershell.Commands" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.scripts.powershell.Script" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.cloudquery.CloudQueryCLI" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.cloudquery.Sync" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.nats.Consume" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.nats.Produce" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.amqp.Consume" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.amqp.CreateQueue" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.amqp.DeclareExchange" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.amqp.Publish" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.amqp.QueueBind" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.notifications.discord.DiscordExecution" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.notifications.discord.DiscordIncomingWebhook" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.notifications.google.GoogleChatExecution" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.notifications.google.GoogleChatIncomingWebhook" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.notifications.mail.MailExecution" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.notifications.mail.MailSend" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.notifications.opsgenie.OpsgenieAlert" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.notifications.opsgenie.OpsgenieExecution" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.notifications.pagerduty.PagerDutyAlert" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.notifications.pagerduty.PagerDutyExecution" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.notifications.sendgrid.SendGridMailExecution" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.notifications.sendgrid.SendGridMailSend" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.notifications.sentry.SentryAlert" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.notifications.sentry.SentryExecution" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.notifications.slack.SlackExecution" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.notifications.slack.SlackIncomingWebhook" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.notifications.teams.TeamsExecution" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.notifications.teams.TeamsIncomingWebhook" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.notifications.telegram.TelegramExecution" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.notifications.telegram.TelegramSend" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.notifications.twilio.TwilioAlert" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.notifications.twilio.TwilioExecution" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.notifications.whatsapp.WhatsAppExecution" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.notifications.whatsapp.WhatsAppIncomingWebhook" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.notifications.zenduty.ZendutyAlert" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.notifications.zenduty.ZendutyExecution" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.azure.batch.job.Create" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.azure.batch.pool.Resize" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.azure.cli.AzCLI" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.azure.eventhubs.Consume" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.azure.eventhubs.Produce" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.azure.storage.blob.Copy" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.azure.storage.blob.Delete" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.azure.storage.blob.DeleteList" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.azure.storage.blob.Download" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.azure.storage.blob.Downloads" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.azure.storage.blob.List" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.azure.storage.blob.SharedAccess" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.azure.storage.blob.Upload" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.azure.storage.table.Bulk" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.azure.storage.table.Delete" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.azure.storage.table.Get" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.azure.storage.table.List" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.transform.grok.TransformItems" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.transform.grok.TransformValue" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.kubernetes.PodCreate" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.kubernetes.kubectl.Apply" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.transform.jsonata.TransformItems" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.transform.jsonata.TransformValue" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.vertica.Batch" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.vertica.Query" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.solace.Consume" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.solace.Produce" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.ansible.cli.AnsibleCLI" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.elasticsearch.Bulk" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.elasticsearch.Get" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.elasticsearch.Load" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.elasticsearch.Put" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.elasticsearch.Request" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.elasticsearch.Scroll" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.elasticsearch.Search" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.pinot.Query" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.aws.athena.Query" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.aws.cli.AwsCLI" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.aws.dynamodb.DeleteItem" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.aws.dynamodb.GetItem" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.aws.dynamodb.PutItem" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.aws.dynamodb.Query" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.aws.dynamodb.Scan" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.aws.ecr.GetAuthToken" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.aws.eventbridge.PutEvents" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.aws.kinesis.PutRecords" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.aws.lambda.Invoke" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.aws.s3.Copy" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.aws.s3.CreateBucket" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.aws.s3.Delete" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.aws.s3.DeleteList" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.aws.s3.Download" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.aws.s3.Downloads" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.aws.s3.List" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.aws.s3.Upload" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.aws.sns.Publish" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.aws.sqs.Consume" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.aws.sqs.Publish" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.sqlmesh.cli.SQLMeshCLI" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.surrealdb.Query" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.vectorwise.Batch" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.vectorwise.Query" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.arrowflight.Query" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.terraform.cli.TerraformCLI" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.debezium.mongodb.Capture" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.fs.ftp.Delete" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.fs.ftp.Download" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.fs.ftp.Downloads" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.fs.ftp.List" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.fs.ftp.Move" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.fs.ftp.Upload" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.fs.ftp.Uploads" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.fs.ftps.Delete" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.fs.ftps.Download" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.fs.ftps.Downloads" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.fs.ftps.List" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.fs.ftps.Move" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.fs.ftps.Upload" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.fs.ftps.Uploads" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.fs.sftp.Delete" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.fs.sftp.Download" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.fs.sftp.Downloads" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.fs.sftp.List" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.fs.sftp.Move" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.fs.sftp.Upload" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.fs.sftp.Uploads" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.fs.smb.Delete" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.fs.smb.Download" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.fs.smb.Downloads" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.fs.smb.List" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.fs.smb.Move" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.fs.smb.Upload" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.fs.smb.Uploads" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.fs.ssh.Command" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.kafka.Consume" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.kafka.Produce" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.airflow.dags.TriggerDagRun" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.core.tasks.scripts.Python" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.scripts.python.Commands" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.scripts.python.Script" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.crypto.openpgp.Decrypt" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.crypto.openpgp.Encrypt" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.scripts.jython.Eval" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.scripts.jython.FileTransform" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.mysql.Batch" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.mysql.Query" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.snowflake.Download" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.snowflake.Query" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.snowflake.Upload" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.redshift.Query" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.ldap.Add" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.ldap.Delete" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.ldap.IonToLdif" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.ldap.LdifToIon" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.ldap.Modify" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.ldap.Search" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.databricks.cluster.CreateCluster" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.databricks.cluster.DeleteCluster" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.databricks.dbfs.Download" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.databricks.dbfs.Upload" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.databricks.job.CreateJob" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.databricks.job.SubmitRun" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.databricks.sql.Query" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.sqlite.Query" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.mqtt.Publish" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.mqtt.Subscribe" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.pulsar.Consume" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.pulsar.Produce" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.pulsar.Reader" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.dbt.cli.Build" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.dbt.cli.Compile" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.dbt.cli.DbtCLI" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.dbt.cli.Deps" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.dbt.cli.Freshness" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.dbt.cli.List" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.dbt.cli.Run" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.dbt.cli.Seed" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.dbt.cli.Setup" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.dbt.cli.Snapshot" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.dbt.cli.Test" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.dbt.cloud.CheckStatus" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.dbt.cloud.TriggerRun" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.dremio.Query" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.googleworkspace.drive.Create" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.googleworkspace.drive.Delete" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.googleworkspace.drive.Download" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.googleworkspace.drive.Export" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.googleworkspace.drive.List" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.googleworkspace.drive.Upload" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.googleworkspace.sheets.Read" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.googleworkspace.sheets.ReadRange" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.airbyte.cloud.jobs.Reset" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.airbyte.cloud.jobs.Sync" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.airbyte.connections.CheckStatus" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.airbyte.connections.Sync" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.fivetran.connectors.Sync" + }, + { + "$dynamic": false + } + ] + } + ] + } + }, + "id": { + "type": "string", + "minLength": 1, + "pattern": "^[a-zA-Z0-9][a-zA-Z0-9_-]*" + }, + "logLevel": { + "type": "string", + "enum": ["ERROR", "WARN", "INFO", "DEBUG", "TRACE"] + }, + "retry": { + "oneOf": [ + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Constant-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Exponential-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Random-2" + } + ] + }, + "tasks": { + "$dynamic": false, + "type": "array", + "items": { + "oneOf": [ + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.debug.Echo" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.debug.Return" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.execution.Count" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.execution.Fail" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.execution.Labels" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.execution.PurgeExecutions" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.execution.Resume" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.flow.AllowFailure" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.flow.Dag" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.flow.EachParallel" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.flow.EachSequential" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.flow.ForEach" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.flow.ForEachItem" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.flow.If" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.flow.Parallel" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.flow.Pause" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.flow.Sequential" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.flow.Subflow" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.flow.Switch" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.flow.Template" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.flow.WaitFor" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.flow.WorkingDirectory" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.http.Download" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.http.Request" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.kv.Delete" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.kv.Get" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.kv.GetKeys" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.kv.Set" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.log.Fetch" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.log.Log" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.log.PurgeLogs" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.namespace.DeleteFiles" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.namespace.DownloadFiles" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.namespace.UploadFiles" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.output.OutputValues" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.state.Delete" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.state.Get" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.state.Set" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.storage.Concat" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.storage.DeduplicateItems" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.storage.Delete" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.storage.FilterItems" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.storage.LocalFiles" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.storage.PurgeCurrentExecutionFiles" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.storage.Reverse" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.storage.Size" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.storage.Split" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.templating.TemplatedTask" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.trigger.Toggle" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.hightouch.Sync" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.github.code.Search" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.github.commits.Search" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.github.issues.Comment" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.github.issues.Create" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.github.issues.Search" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.github.pulls.Create" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.github.pulls.Search" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.github.repositories.Search" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.github.topics.Search" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.github.users.Search" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.druid.Query" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.weaviate.BatchCreate" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.weaviate.Delete" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.weaviate.Query" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.weaviate.SchemaCreate" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.spark.JarSubmit" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.spark.PythonSubmit" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.spark.RSubmit" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.spark.SparkCLI" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.auth.OauthAccessToken" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.bigquery.Copy" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.bigquery.CopyPartitions" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.bigquery.CreateDataset" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.bigquery.CreateTable" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.bigquery.DeleteDataset" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.bigquery.DeletePartitions" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.bigquery.DeleteTable" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.bigquery.ExtractToGcs" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.bigquery.Load" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.bigquery.LoadFromGcs" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.bigquery.Query" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.bigquery.StorageWrite" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.bigquery.TableMetadata" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.bigquery.UpdateDataset" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.bigquery.UpdateTable" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.cli.GCloudCLI" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.dataproc.batches.PySparkSubmit" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.dataproc.batches.RSparkSubmit" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.dataproc.batches.SparkSqlSubmit" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.dataproc.batches.SparkSubmit" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.firestore.Delete" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.firestore.Get" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.firestore.Query" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.firestore.Set" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.gcs.Compose" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.gcs.Copy" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.gcs.CreateBucket" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.gcs.CreateBucketIamPolicy" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.gcs.Delete" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.gcs.DeleteBucket" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.gcs.DeleteList" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.gcs.Download" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.gcs.Downloads" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.gcs.List" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.gcs.UpdateBucket" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.gcs.Upload" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.gke.ClusterMetadata" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.pubsub.Consume" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.pubsub.Publish" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.vertexai.ChatCompletion" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.vertexai.CustomJob" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.vertexai.MultimodalCompletion" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.vertexai.TextCompletion" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.db2.Query" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.minio.Copy" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.minio.CreateBucket" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.minio.Delete" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.minio.DeleteList" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.minio.Download" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.minio.Downloads" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.minio.List" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.minio.Upload" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.soda.Scan" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.modal.cli.ModalCLI" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.rockset.Query" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.scripts.nashorn.Eval" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.scripts.nashorn.FileTransform" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.scripts.ruby.Commands" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.scripts.ruby.Script" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.mongodb.Bulk" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.mongodb.Delete" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.mongodb.Find" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.mongodb.InsertOne" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.mongodb.Load" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.mongodb.Update" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.debezium.postgres.Capture" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.BigQuery" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.BingAds" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.ChargeBee" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.ExchangeRateHost" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.FacebookAds" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.Fastly" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.GenericTap" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.GitHub" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.Gitlab" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.GoogleAdwords" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.GoogleAnalytics" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.GoogleSearchConsole" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.HubSpot" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.Marketo" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.Netsuite" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.PipelinewiseMongoDb" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.PipelinewiseMysql" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.PipelinewiseOracle" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.PipelinewisePostgres" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.PipelinewiseSqlServer" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.Quickbooks" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.Recharge" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.SageIntacct" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.Salesforce" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.Shopify" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.Slack" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.Stripe" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.Zendesk" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.Zoom" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.targets.AdswerveBigQuery" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.targets.Csv" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.targets.DatamillCoPostgres" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.targets.GenericTarget" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.targets.Json" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.targets.MeltanoSnowflake" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.targets.Oracle" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.targets.PipelinewisePostgres" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.targets.PipelinewiseRedshift" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.targets.PipelinewiseSnowflake" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.targets.SqlServer" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.scripts.julia.Commands" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.scripts.julia.Script" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.trino.Query" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.compress.ArchiveCompress" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.compress.ArchiveDecompress" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.compress.FileCompress" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.compress.FileDecompress" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.duckdb.Query" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.dataform.cli.DataformCLI" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.couchbase.Query" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.serdes.avro.AvroToIon" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.serdes.avro.IonToAvro" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.serdes.csv.CsvToIon" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.serdes.csv.IonToCsv" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.serdes.excel.ExcelToIon" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.serdes.excel.IonToExcel" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.serdes.json.IonToJson" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.serdes.json.JsonToIon" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.serdes.parquet.IonToParquet" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.serdes.parquet.ParquetToIon" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.serdes.xml.IonToXml" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.serdes.xml.XmlToIon" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.sqlserver.Batch" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.sqlserver.Query" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.powerbi.RefreshGroupDataset" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.core.tasks.scripts.Node" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.scripts.node.Commands" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.scripts.node.Script" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.docker.Build" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.docker.Run" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.oracle.Batch" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.oracle.Query" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.zendesk.tickets.Create" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.debezium.mysql.Capture" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.debezium.sqlserver.Capture" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.cassandra.astradb.Query" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.cassandra.standard.Query" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.openai.ChatCompletion" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.openai.CreateImage" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.postgresql.Batch" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.postgresql.CopyIn" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.postgresql.CopyOut" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.postgresql.Query" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.core.tasks.scripts.Bash" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.scripts.shell.Commands" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.scripts.shell.Script" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.scripts.r.Commands" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.scripts.r.Script" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.debezium.db2.Capture" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.tika.Parse" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jira.issues.Create" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jira.issues.CreateComment" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.debezium.oracle.Capture" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.git.Clone" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.git.Push" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.git.PushFlows" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.git.PushNamespaceFiles" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.git.Sync" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.git.SyncFlows" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.git.SyncNamespaceFiles" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.servicenow.Post" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.sybase.Query" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.as400.Query" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.clickhouse.BulkInsert" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.clickhouse.Query" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.scripts.groovy.Eval" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.scripts.groovy.FileTransform" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.redis.list.ListPop" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.redis.list.ListPush" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.redis.pubsub.Publish" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.redis.string.Delete" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.redis.string.Get" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.redis.string.Set" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.linear.issues.Create" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.malloy.CLI" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.neo4j.Batch" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.neo4j.Query" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.hubspot.tickets.Create" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.scripts.powershell.Commands" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.scripts.powershell.Script" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.cloudquery.CloudQueryCLI" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.cloudquery.Sync" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.nats.Consume" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.nats.Produce" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.amqp.Consume" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.amqp.CreateQueue" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.amqp.DeclareExchange" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.amqp.Publish" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.amqp.QueueBind" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.notifications.discord.DiscordExecution" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.notifications.discord.DiscordIncomingWebhook" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.notifications.google.GoogleChatExecution" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.notifications.google.GoogleChatIncomingWebhook" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.notifications.mail.MailExecution" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.notifications.mail.MailSend" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.notifications.opsgenie.OpsgenieAlert" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.notifications.opsgenie.OpsgenieExecution" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.notifications.pagerduty.PagerDutyAlert" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.notifications.pagerduty.PagerDutyExecution" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.notifications.sendgrid.SendGridMailExecution" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.notifications.sendgrid.SendGridMailSend" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.notifications.sentry.SentryAlert" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.notifications.sentry.SentryExecution" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.notifications.slack.SlackExecution" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.notifications.slack.SlackIncomingWebhook" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.notifications.teams.TeamsExecution" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.notifications.teams.TeamsIncomingWebhook" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.notifications.telegram.TelegramExecution" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.notifications.telegram.TelegramSend" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.notifications.twilio.TwilioAlert" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.notifications.twilio.TwilioExecution" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.notifications.whatsapp.WhatsAppExecution" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.notifications.whatsapp.WhatsAppIncomingWebhook" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.notifications.zenduty.ZendutyAlert" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.notifications.zenduty.ZendutyExecution" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.azure.batch.job.Create" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.azure.batch.pool.Resize" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.azure.cli.AzCLI" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.azure.eventhubs.Consume" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.azure.eventhubs.Produce" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.azure.storage.blob.Copy" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.azure.storage.blob.Delete" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.azure.storage.blob.DeleteList" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.azure.storage.blob.Download" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.azure.storage.blob.Downloads" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.azure.storage.blob.List" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.azure.storage.blob.SharedAccess" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.azure.storage.blob.Upload" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.azure.storage.table.Bulk" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.azure.storage.table.Delete" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.azure.storage.table.Get" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.azure.storage.table.List" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.transform.grok.TransformItems" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.transform.grok.TransformValue" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.kubernetes.PodCreate" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.kubernetes.kubectl.Apply" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.transform.jsonata.TransformItems" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.transform.jsonata.TransformValue" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.vertica.Batch" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.vertica.Query" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.solace.Consume" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.solace.Produce" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.ansible.cli.AnsibleCLI" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.elasticsearch.Bulk" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.elasticsearch.Get" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.elasticsearch.Load" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.elasticsearch.Put" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.elasticsearch.Request" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.elasticsearch.Scroll" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.elasticsearch.Search" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.pinot.Query" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.aws.athena.Query" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.aws.cli.AwsCLI" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.aws.dynamodb.DeleteItem" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.aws.dynamodb.GetItem" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.aws.dynamodb.PutItem" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.aws.dynamodb.Query" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.aws.dynamodb.Scan" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.aws.ecr.GetAuthToken" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.aws.eventbridge.PutEvents" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.aws.kinesis.PutRecords" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.aws.lambda.Invoke" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.aws.s3.Copy" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.aws.s3.CreateBucket" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.aws.s3.Delete" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.aws.s3.DeleteList" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.aws.s3.Download" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.aws.s3.Downloads" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.aws.s3.List" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.aws.s3.Upload" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.aws.sns.Publish" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.aws.sqs.Consume" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.aws.sqs.Publish" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.sqlmesh.cli.SQLMeshCLI" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.surrealdb.Query" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.vectorwise.Batch" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.vectorwise.Query" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.arrowflight.Query" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.terraform.cli.TerraformCLI" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.debezium.mongodb.Capture" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.fs.ftp.Delete" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.fs.ftp.Download" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.fs.ftp.Downloads" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.fs.ftp.List" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.fs.ftp.Move" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.fs.ftp.Upload" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.fs.ftp.Uploads" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.fs.ftps.Delete" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.fs.ftps.Download" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.fs.ftps.Downloads" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.fs.ftps.List" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.fs.ftps.Move" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.fs.ftps.Upload" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.fs.ftps.Uploads" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.fs.sftp.Delete" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.fs.sftp.Download" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.fs.sftp.Downloads" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.fs.sftp.List" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.fs.sftp.Move" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.fs.sftp.Upload" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.fs.sftp.Uploads" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.fs.smb.Delete" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.fs.smb.Download" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.fs.smb.Downloads" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.fs.smb.List" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.fs.smb.Move" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.fs.smb.Upload" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.fs.smb.Uploads" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.fs.ssh.Command" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.kafka.Consume" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.kafka.Produce" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.airflow.dags.TriggerDagRun" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.core.tasks.scripts.Python" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.scripts.python.Commands" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.scripts.python.Script" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.crypto.openpgp.Decrypt" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.crypto.openpgp.Encrypt" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.scripts.jython.Eval" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.scripts.jython.FileTransform" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.mysql.Batch" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.mysql.Query" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.snowflake.Download" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.snowflake.Query" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.snowflake.Upload" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.redshift.Query" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.ldap.Add" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.ldap.Delete" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.ldap.IonToLdif" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.ldap.LdifToIon" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.ldap.Modify" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.ldap.Search" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.databricks.cluster.CreateCluster" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.databricks.cluster.DeleteCluster" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.databricks.dbfs.Download" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.databricks.dbfs.Upload" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.databricks.job.CreateJob" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.databricks.job.SubmitRun" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.databricks.sql.Query" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.sqlite.Query" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.mqtt.Publish" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.mqtt.Subscribe" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.pulsar.Consume" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.pulsar.Produce" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.pulsar.Reader" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.dbt.cli.Build" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.dbt.cli.Compile" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.dbt.cli.DbtCLI" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.dbt.cli.Deps" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.dbt.cli.Freshness" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.dbt.cli.List" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.dbt.cli.Run" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.dbt.cli.Seed" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.dbt.cli.Setup" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.dbt.cli.Snapshot" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.dbt.cli.Test" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.dbt.cloud.CheckStatus" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.dbt.cloud.TriggerRun" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.dremio.Query" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.googleworkspace.drive.Create" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.googleworkspace.drive.Delete" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.googleworkspace.drive.Download" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.googleworkspace.drive.Export" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.googleworkspace.drive.List" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.googleworkspace.drive.Upload" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.googleworkspace.sheets.Read" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.googleworkspace.sheets.ReadRange" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.airbyte.cloud.jobs.Reset" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.airbyte.cloud.jobs.Sync" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.airbyte.connections.CheckStatus" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.airbyte.connections.Sync" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.fivetran.connectors.Sync" + }, + { + "$dynamic": false + } + ] + } + ] + } + }, + "timeout": { + "type": "string", + "format": "duration" + }, + "type": { + "const": "io.kestra.plugin.core.flow.ForEach" + }, + "values": { + "$dynamic": true, + "title": "The list of values for which Kestra will execute a group of tasks.", + "oneOf": [ + { + "type": "string" + }, + { + "type": "array", + "items": {} + } + ], + "markdownDescription": "The values can be passed as a string, a list of strings, or a list of objects." + }, + "workerGroup": { + "$ref": "#/definitions/io.kestra.core.models.tasks.WorkerGroup" + } + }, + "required": ["id", "type", "values"], + "title": "Execute a group of tasks for each value in the list.", + "markdownDescription": "You can control how many task groups are executed concurrently by setting the `concurrencyLimit` property. \n- If you set the `concurrencyLimit` property to `0`, Kestra will execute all task groups concurrently for all values. \n- If you set the `concurrencyLimit` property to `1`, Kestra will execute each task group one after the other starting with the task group for the first value in the list. \n\nRegardless of the `concurrencyLimit` property, the `tasks` will run one after the other — to run those in parallel, wrap them in a [Parallel](https://kestra.io/plugins/core/tasks/flow/io.kestra.plugin.core.flow.parallel) task as shown in the last example below (_see the flow `parallel_tasks_example`_). \n\nThe `values` should be defined as a JSON string or an array, e.g. a list of string values `[\"value1\", \"value2\"]` or a list of key-value pairs `[{\"key\": \"value1\"}, {\"key\": \"value2\"}]`. \n\n\nYou can access the current iteration value using the variable `{{ taskrun.value }}` or `{{ parent.taskrun.value }}` if you are in a nested child task. \n\nIf you need to execute more than 2-5 tasks for each value, we recommend triggering a subflow for each value for better performance and modularity. Check the [flow best practices documentation](https://kestra.io/docs/best-practices/flows) for more details.##### Examples\n\u003E The `{{ taskrun.value }}` from the `for_each` task is available only to direct child tasks such as the `before_if` and the `if` tasks. To access the taskrun value of the parent task in a nested child task such as the `after_if` task, use `{{ parent.taskrun.value }}`.\n```yaml\nid: for_loop_example\nnamespace: company.team\n\ntasks:\n - id: for_each\n type: io.kestra.plugin.core.flow.ForEach\n values: [\"value 1\", \"value 2\", \"value 3\"]\n tasks:\n - id: before_if\n type: io.kestra.plugin.core.debug.Return\n format: 'Before if {{ taskrun.value }}'\n - id: if\n type: io.kestra.plugin.core.flow.If\n condition: '{{ taskrun.value == \"value 2\" }}'\n then:\n - id: after_if\n type: io.kestra.plugin.core.debug.Return\n format: 'After if {{ parent.taskrun.value }}'\n```\n\n\u003E This flow uses YAML-style array for `values`. The task `for_each` iterates over a list of values and executes the `return` child task for each value. The `concurrencyLimit` property is set to 2, so the `return` task will run concurrently for the first two values in the list at first. The `return` task will run for the next two values only after the task runs for the first two values have completed.\n```yaml\nid: for_each_value\nnamespace: company.team\n\ntasks:\n - id: for_each\n type: io.kestra.plugin.core.flow.ForEach\n values: \n - value 1\n - value 2\n - value 3\n - value 4\n concurrencyLimit: 2\n tasks:\n - id: return\n type: io.kestra.plugin.core.debug.Return\n format: \"{{ task.id }} with value '{{ taskrun.value }}'\"\n```\n\n\u003E This example shows how to run tasks in parallel for each value in the list. All child tasks of the `parallel` task will run in parallel. However, due to the `concurrencyLimit` property set to 2, only two `parallel` task groups will run at any given time.\n```yaml\nid: parallel_tasks_example\nnamespace: company.team\n\ntasks:\n - id: for_each\n type: io.kestra.plugin.core.flow.ForEach\n values: [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]\n concurrencyLimit: 2\n tasks:\n - id: parallel\n type: io.kestra.plugin.core.flow.Parallel\n tasks:\n - id: log\n type: io.kestra.plugin.core.log.Log\n message: Processing {{ parent.taskrun.value }}\n - id: shell\n type: io.kestra.plugin.scripts.shell.Commands\n commands:\n - sleep {{ parent.taskrun.value }}\n```" + }, + "io.kestra.plugin.core.flow.ForEachItem": { + "type": "object", + "properties": { + "allowFailure": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "batch": { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.flow.ForEachItem-Batch" + }, + { + "$dynamic": false, + "title": "How to split the items into batches.", + "default": { + "rows": 1, + "separator": "\n" + }, + "markdownDescription": "Default value is : `rows: 1\nseparator: |2+`" + } + ] + }, + "description": { + "type": "string" + }, + "disabled": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "errors": { + "$dynamic": false, + "title": "List of tasks to run if any tasks failed on this FlowableTask.", + "type": "array", + "items": { + "oneOf": [ + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.debug.Echo" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.debug.Return" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.execution.Count" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.execution.Fail" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.execution.Labels" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.execution.PurgeExecutions" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.execution.Resume" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.flow.AllowFailure" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.flow.Dag" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.flow.EachParallel" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.flow.EachSequential" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.flow.ForEach" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.flow.ForEachItem" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.flow.If" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.flow.Parallel" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.flow.Pause" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.flow.Sequential" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.flow.Subflow" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.flow.Switch" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.flow.Template" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.flow.WaitFor" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.flow.WorkingDirectory" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.http.Download" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.http.Request" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.kv.Delete" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.kv.Get" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.kv.GetKeys" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.kv.Set" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.log.Fetch" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.log.Log" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.log.PurgeLogs" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.namespace.DeleteFiles" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.namespace.DownloadFiles" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.namespace.UploadFiles" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.output.OutputValues" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.state.Delete" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.state.Get" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.state.Set" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.storage.Concat" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.storage.DeduplicateItems" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.storage.Delete" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.storage.FilterItems" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.storage.LocalFiles" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.storage.PurgeCurrentExecutionFiles" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.storage.Reverse" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.storage.Size" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.storage.Split" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.templating.TemplatedTask" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.trigger.Toggle" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.hightouch.Sync" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.github.code.Search" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.github.commits.Search" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.github.issues.Comment" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.github.issues.Create" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.github.issues.Search" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.github.pulls.Create" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.github.pulls.Search" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.github.repositories.Search" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.github.topics.Search" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.github.users.Search" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.druid.Query" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.weaviate.BatchCreate" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.weaviate.Delete" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.weaviate.Query" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.weaviate.SchemaCreate" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.spark.JarSubmit" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.spark.PythonSubmit" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.spark.RSubmit" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.spark.SparkCLI" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.auth.OauthAccessToken" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.bigquery.Copy" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.bigquery.CopyPartitions" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.bigquery.CreateDataset" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.bigquery.CreateTable" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.bigquery.DeleteDataset" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.bigquery.DeletePartitions" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.bigquery.DeleteTable" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.bigquery.ExtractToGcs" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.bigquery.Load" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.bigquery.LoadFromGcs" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.bigquery.Query" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.bigquery.StorageWrite" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.bigquery.TableMetadata" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.bigquery.UpdateDataset" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.bigquery.UpdateTable" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.cli.GCloudCLI" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.dataproc.batches.PySparkSubmit" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.dataproc.batches.RSparkSubmit" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.dataproc.batches.SparkSqlSubmit" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.dataproc.batches.SparkSubmit" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.firestore.Delete" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.firestore.Get" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.firestore.Query" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.firestore.Set" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.gcs.Compose" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.gcs.Copy" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.gcs.CreateBucket" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.gcs.CreateBucketIamPolicy" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.gcs.Delete" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.gcs.DeleteBucket" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.gcs.DeleteList" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.gcs.Download" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.gcs.Downloads" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.gcs.List" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.gcs.UpdateBucket" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.gcs.Upload" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.gke.ClusterMetadata" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.pubsub.Consume" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.pubsub.Publish" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.vertexai.ChatCompletion" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.vertexai.CustomJob" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.vertexai.MultimodalCompletion" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.vertexai.TextCompletion" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.db2.Query" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.minio.Copy" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.minio.CreateBucket" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.minio.Delete" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.minio.DeleteList" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.minio.Download" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.minio.Downloads" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.minio.List" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.minio.Upload" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.soda.Scan" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.modal.cli.ModalCLI" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.rockset.Query" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.scripts.nashorn.Eval" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.scripts.nashorn.FileTransform" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.scripts.ruby.Commands" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.scripts.ruby.Script" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.mongodb.Bulk" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.mongodb.Delete" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.mongodb.Find" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.mongodb.InsertOne" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.mongodb.Load" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.mongodb.Update" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.debezium.postgres.Capture" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.BigQuery" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.BingAds" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.ChargeBee" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.ExchangeRateHost" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.FacebookAds" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.Fastly" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.GenericTap" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.GitHub" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.Gitlab" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.GoogleAdwords" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.GoogleAnalytics" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.GoogleSearchConsole" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.HubSpot" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.Marketo" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.Netsuite" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.PipelinewiseMongoDb" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.PipelinewiseMysql" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.PipelinewiseOracle" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.PipelinewisePostgres" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.PipelinewiseSqlServer" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.Quickbooks" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.Recharge" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.SageIntacct" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.Salesforce" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.Shopify" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.Slack" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.Stripe" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.Zendesk" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.Zoom" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.targets.AdswerveBigQuery" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.targets.Csv" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.targets.DatamillCoPostgres" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.targets.GenericTarget" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.targets.Json" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.targets.MeltanoSnowflake" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.targets.Oracle" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.targets.PipelinewisePostgres" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.targets.PipelinewiseRedshift" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.targets.PipelinewiseSnowflake" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.targets.SqlServer" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.scripts.julia.Commands" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.scripts.julia.Script" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.trino.Query" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.compress.ArchiveCompress" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.compress.ArchiveDecompress" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.compress.FileCompress" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.compress.FileDecompress" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.duckdb.Query" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.dataform.cli.DataformCLI" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.couchbase.Query" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.serdes.avro.AvroToIon" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.serdes.avro.IonToAvro" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.serdes.csv.CsvToIon" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.serdes.csv.IonToCsv" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.serdes.excel.ExcelToIon" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.serdes.excel.IonToExcel" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.serdes.json.IonToJson" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.serdes.json.JsonToIon" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.serdes.parquet.IonToParquet" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.serdes.parquet.ParquetToIon" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.serdes.xml.IonToXml" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.serdes.xml.XmlToIon" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.sqlserver.Batch" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.sqlserver.Query" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.powerbi.RefreshGroupDataset" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.core.tasks.scripts.Node" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.scripts.node.Commands" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.scripts.node.Script" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.docker.Build" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.docker.Run" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.oracle.Batch" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.oracle.Query" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.zendesk.tickets.Create" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.debezium.mysql.Capture" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.debezium.sqlserver.Capture" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.cassandra.astradb.Query" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.cassandra.standard.Query" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.openai.ChatCompletion" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.openai.CreateImage" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.postgresql.Batch" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.postgresql.CopyIn" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.postgresql.CopyOut" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.postgresql.Query" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.core.tasks.scripts.Bash" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.scripts.shell.Commands" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.scripts.shell.Script" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.scripts.r.Commands" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.scripts.r.Script" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.debezium.db2.Capture" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.tika.Parse" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jira.issues.Create" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jira.issues.CreateComment" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.debezium.oracle.Capture" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.git.Clone" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.git.Push" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.git.PushFlows" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.git.PushNamespaceFiles" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.git.Sync" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.git.SyncFlows" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.git.SyncNamespaceFiles" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.servicenow.Post" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.sybase.Query" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.as400.Query" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.clickhouse.BulkInsert" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.clickhouse.Query" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.scripts.groovy.Eval" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.scripts.groovy.FileTransform" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.redis.list.ListPop" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.redis.list.ListPush" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.redis.pubsub.Publish" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.redis.string.Delete" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.redis.string.Get" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.redis.string.Set" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.linear.issues.Create" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.malloy.CLI" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.neo4j.Batch" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.neo4j.Query" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.hubspot.tickets.Create" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.scripts.powershell.Commands" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.scripts.powershell.Script" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.cloudquery.CloudQueryCLI" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.cloudquery.Sync" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.nats.Consume" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.nats.Produce" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.amqp.Consume" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.amqp.CreateQueue" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.amqp.DeclareExchange" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.amqp.Publish" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.amqp.QueueBind" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.notifications.discord.DiscordExecution" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.notifications.discord.DiscordIncomingWebhook" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.notifications.google.GoogleChatExecution" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.notifications.google.GoogleChatIncomingWebhook" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.notifications.mail.MailExecution" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.notifications.mail.MailSend" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.notifications.opsgenie.OpsgenieAlert" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.notifications.opsgenie.OpsgenieExecution" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.notifications.pagerduty.PagerDutyAlert" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.notifications.pagerduty.PagerDutyExecution" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.notifications.sendgrid.SendGridMailExecution" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.notifications.sendgrid.SendGridMailSend" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.notifications.sentry.SentryAlert" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.notifications.sentry.SentryExecution" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.notifications.slack.SlackExecution" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.notifications.slack.SlackIncomingWebhook" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.notifications.teams.TeamsExecution" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.notifications.teams.TeamsIncomingWebhook" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.notifications.telegram.TelegramExecution" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.notifications.telegram.TelegramSend" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.notifications.twilio.TwilioAlert" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.notifications.twilio.TwilioExecution" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.notifications.whatsapp.WhatsAppExecution" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.notifications.whatsapp.WhatsAppIncomingWebhook" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.notifications.zenduty.ZendutyAlert" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.notifications.zenduty.ZendutyExecution" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.azure.batch.job.Create" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.azure.batch.pool.Resize" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.azure.cli.AzCLI" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.azure.eventhubs.Consume" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.azure.eventhubs.Produce" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.azure.storage.blob.Copy" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.azure.storage.blob.Delete" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.azure.storage.blob.DeleteList" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.azure.storage.blob.Download" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.azure.storage.blob.Downloads" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.azure.storage.blob.List" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.azure.storage.blob.SharedAccess" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.azure.storage.blob.Upload" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.azure.storage.table.Bulk" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.azure.storage.table.Delete" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.azure.storage.table.Get" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.azure.storage.table.List" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.transform.grok.TransformItems" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.transform.grok.TransformValue" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.kubernetes.PodCreate" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.kubernetes.kubectl.Apply" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.transform.jsonata.TransformItems" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.transform.jsonata.TransformValue" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.vertica.Batch" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.vertica.Query" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.solace.Consume" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.solace.Produce" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.ansible.cli.AnsibleCLI" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.elasticsearch.Bulk" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.elasticsearch.Get" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.elasticsearch.Load" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.elasticsearch.Put" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.elasticsearch.Request" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.elasticsearch.Scroll" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.elasticsearch.Search" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.pinot.Query" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.aws.athena.Query" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.aws.cli.AwsCLI" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.aws.dynamodb.DeleteItem" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.aws.dynamodb.GetItem" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.aws.dynamodb.PutItem" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.aws.dynamodb.Query" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.aws.dynamodb.Scan" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.aws.ecr.GetAuthToken" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.aws.eventbridge.PutEvents" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.aws.kinesis.PutRecords" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.aws.lambda.Invoke" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.aws.s3.Copy" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.aws.s3.CreateBucket" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.aws.s3.Delete" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.aws.s3.DeleteList" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.aws.s3.Download" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.aws.s3.Downloads" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.aws.s3.List" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.aws.s3.Upload" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.aws.sns.Publish" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.aws.sqs.Consume" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.aws.sqs.Publish" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.sqlmesh.cli.SQLMeshCLI" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.surrealdb.Query" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.vectorwise.Batch" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.vectorwise.Query" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.arrowflight.Query" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.terraform.cli.TerraformCLI" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.debezium.mongodb.Capture" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.fs.ftp.Delete" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.fs.ftp.Download" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.fs.ftp.Downloads" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.fs.ftp.List" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.fs.ftp.Move" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.fs.ftp.Upload" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.fs.ftp.Uploads" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.fs.ftps.Delete" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.fs.ftps.Download" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.fs.ftps.Downloads" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.fs.ftps.List" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.fs.ftps.Move" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.fs.ftps.Upload" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.fs.ftps.Uploads" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.fs.sftp.Delete" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.fs.sftp.Download" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.fs.sftp.Downloads" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.fs.sftp.List" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.fs.sftp.Move" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.fs.sftp.Upload" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.fs.sftp.Uploads" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.fs.smb.Delete" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.fs.smb.Download" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.fs.smb.Downloads" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.fs.smb.List" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.fs.smb.Move" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.fs.smb.Upload" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.fs.smb.Uploads" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.fs.ssh.Command" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.kafka.Consume" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.kafka.Produce" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.airflow.dags.TriggerDagRun" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.core.tasks.scripts.Python" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.scripts.python.Commands" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.scripts.python.Script" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.crypto.openpgp.Decrypt" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.crypto.openpgp.Encrypt" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.scripts.jython.Eval" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.scripts.jython.FileTransform" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.mysql.Batch" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.mysql.Query" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.snowflake.Download" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.snowflake.Query" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.snowflake.Upload" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.redshift.Query" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.ldap.Add" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.ldap.Delete" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.ldap.IonToLdif" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.ldap.LdifToIon" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.ldap.Modify" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.ldap.Search" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.databricks.cluster.CreateCluster" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.databricks.cluster.DeleteCluster" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.databricks.dbfs.Download" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.databricks.dbfs.Upload" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.databricks.job.CreateJob" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.databricks.job.SubmitRun" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.databricks.sql.Query" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.sqlite.Query" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.mqtt.Publish" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.mqtt.Subscribe" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.pulsar.Consume" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.pulsar.Produce" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.pulsar.Reader" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.dbt.cli.Build" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.dbt.cli.Compile" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.dbt.cli.DbtCLI" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.dbt.cli.Deps" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.dbt.cli.Freshness" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.dbt.cli.List" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.dbt.cli.Run" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.dbt.cli.Seed" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.dbt.cli.Setup" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.dbt.cli.Snapshot" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.dbt.cli.Test" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.dbt.cloud.CheckStatus" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.dbt.cloud.TriggerRun" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.dremio.Query" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.googleworkspace.drive.Create" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.googleworkspace.drive.Delete" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.googleworkspace.drive.Download" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.googleworkspace.drive.Export" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.googleworkspace.drive.List" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.googleworkspace.drive.Upload" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.googleworkspace.sheets.Read" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.googleworkspace.sheets.ReadRange" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.airbyte.cloud.jobs.Reset" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.airbyte.cloud.jobs.Sync" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.airbyte.connections.CheckStatus" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.airbyte.connections.Sync" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.fivetran.connectors.Sync" + }, + { + "$dynamic": false + } + ] + } + ] + } + }, + "flowId": { + "$dynamic": true, + "type": "string", + "title": "The identifier of the subflow to be executed", + "minLength": 1 + }, + "id": { + "type": "string", + "minLength": 1, + "pattern": "^[a-zA-Z0-9][a-zA-Z0-9_-]*" + }, + "inheritLabels": { + "$dynamic": false, + "type": "boolean", + "title": "Whether the subflow should inherit labels from this execution that triggered it.", + "default": false, + "markdownDescription": "By default, labels are not passed to the subflow execution. If you set this option to `true`, the child flow execution will inherit all labels from the parent execution.\n\nDefault value is : `false`" + }, + "inputs": { + "$dynamic": true, + "type": "object", + "title": "The inputs to pass to the subflow to be executed" + }, + "items": { + "$dynamic": true, + "type": "string", + "title": "The items to be split into batches and processed. Make sure to set it to Kestra's internal storage URI. This can be either the output from a previous task, formatted as `{{ outputs.task_id.uri }}`, or a FILE type input parameter, like `{{ inputs.myfile }}`. This task is optimized for files where each line represents a single item. Suitable file types include Amazon ION-type files (commonly produced by Query tasks), newline-separated JSON files, or CSV files formatted with one row per line and without a header. For files in other formats such as Excel, CSV, Avro, Parquet, XML, or JSON, it's recommended to first convert them to the ION format. This can be done using the conversion tasks available in the `io.kestra.plugin.serdes` module, which will transform files from their original format to ION.", + "minLength": 1 + }, + "labels": { + "$dynamic": true, + "type": "object", + "title": "The labels to pass to the subflow to be executed" + }, + "logLevel": { + "type": "string", + "enum": ["ERROR", "WARN", "INFO", "DEBUG", "TRACE"] + }, + "namespace": { + "$dynamic": true, + "type": "string", + "title": "The namespace of the subflow to be executed", + "minLength": 1 + }, + "retry": { + "oneOf": [ + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Constant-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Exponential-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Random-2" + } + ] + }, + "revision": { + "$dynamic": false, + "type": "integer", + "title": "The revision of the subflow to be executed", + "markdownDescription": "By default, the last, i.e. the most recent, revision of the subflow is executed." + }, + "timeout": { + "type": "string", + "format": "duration" + }, + "transmitFailed": { + "$dynamic": false, + "type": "boolean", + "title": "Whether to fail the current execution if the subflow execution fails or is killed.", + "default": true, + "markdownDescription": "Note that this option works only if `wait` is set to `true`.\n\nDefault value is : `true`" + }, + "type": { + "const": "io.kestra.plugin.core.flow.ForEachItem" + }, + "wait": { + "$dynamic": false, + "type": "boolean", + "title": "Whether to wait for the subflows execution to finish before continuing the current execution.", + "default": true, + "markdownDescription": "Default value is : `true`" + }, + "workerGroup": { + "$ref": "#/definitions/io.kestra.core.models.tasks.WorkerGroup" + } + }, + "required": ["flowId", "id", "items", "namespace", "type"], + "title": "Execute a subflow for each batch of items", + "markdownDescription": "The `items` value must be Kestra's internal storage URI e.g. an output file from a previous task, or a file from inputs of FILE type.\nTwo special variables are available to pass as inputs to the subflow:\n- `taskrun.items` which is the URI of internal storage file containing the batch of items to process\n- `taskrun.iteration` which is the iteration or batch number##### Examples\n\u003E Execute a subflow for each batch of items. The subflow `orders` is called from the parent flow `orders_parallel` using the `ForEachItem` task in order to start one subflow execution for each batch of items.\n```yaml\nid: orders\nnamespace: company.team\n\ninputs:\n - id: order\n type: STRING\n\ntasks:\n - id: read_file\n type: io.kestra.plugin.scripts.shell.Commands\n runner: PROCESS\n commands:\n - cat \"{{ inputs.order }}\"\n\n - id: read_file_content\n type: io.kestra.plugin.core.log.Log\n message: \"{{ read(inputs.order) }}\"\n```\n\n```yaml\nid: orders_parallel\nnamespace: company.team\n\ntasks:\n - id: extract\n type: io.kestra.plugin.jdbc.duckdb.Query\n sql: |\n INSTALL httpfs;\n LOAD httpfs;\n SELECT *\n FROM read_csv_auto('https://huggingface.co/datasets/kestra/datasets/raw/main/csv/orders.csv', header=True);\n store: true\n\n - id: each\n type: io.kestra.plugin.core.flow.ForEachItem\n items: \"{{ outputs.extract.uri }}\"\n batch:\n rows: 1\n namespace: company.team\n flowId: orders\n wait: true # wait for the subflow execution\n transmitFailed: true # fail the task run if the subflow execution fails\n inputs:\n order: \"{{ taskrun.items }}\" # special variable that contains the items of the batch\n\n```\n\n\u003E Execute a subflow for each JSON item fetched from a REST API. The subflow `mysubflow` is called from the parent flow `iterate_over_json` using the `ForEachItem` task; this creates one subflow execution for each JSON object.\n\nNote how we first need to convert the JSON array to JSON-L format using the `JsonWriter` task. This is because the `items` attribute of the `ForEachItem` task expects a file where each line represents a single item. Suitable file types include Amazon ION (commonly produced by Query tasks), newline-separated JSON files, or CSV files formatted with one row per line and without a header. For other formats, you can use the conversion tasks available in the `io.kestra.plugin.serdes` module.\n\nIn this example, the subflow `mysubflow` expects a JSON object as input. The `JsonReader` task first reads the JSON array from the REST API and converts it to ION. Then, the `JsonWriter` task converts that ION file to JSON-L format, suitable for the `ForEachItem` task.\n\n```yaml\nid: mysubflow\nnamespace: company.team\n\ninputs:\n - id: json\n type: JSON\n\ntasks:\n - id: debug\n type: io.kestra.plugin.core.log.Log\n message: \"{{ inputs.json }}\"\n```\n\n```yaml\nid: iterate_over_json\nnamespace: company.team\n\ntasks:\n - id: download\n type: io.kestra.plugin.fs.http.Download\n uri: \"https://api.restful-api.dev/objects\"\n contentType: application/json\n method: GET\n failOnEmptyResponse: true\n timeout: PT15S\n\n - id: json_to_ion\n type: io.kestra.plugin.serdes.json.JsonReader\n from: \"{{ outputs.download.uri }}\"\n newLine: false # regular json\n\n - id: ion_to_jsonl\n type: io.kestra.plugin.serdes.json.JsonWriter\n from: \"{{ outputs.json_to_ion.uri }}\"\n newLine: true # JSON-L\n\n - id: for_each_item\n type: io.kestra.plugin.core.flow.ForEachItem\n items: \"{{ outputs.ion_to_jsonl.uri }}\"\n batch:\n rows: 1\n namespace: company.team\n flowId: mysubflow\n wait: true\n transmitFailed: true\n inputs:\n json: '{{ json(read(taskrun.items)) }}'\n```\n\n\u003E This example shows how to use the combination of `EachSequential` and `ForEachItem` tasks to process files from an S3 bucket. The `EachSequential` iterates over files from the S3 trigger, and the `ForEachItem` task is used to split each file into batches. The `process_batch` subflow is then called with the `data` input parameter set to the URI of the batch to process.\n\n```yaml\nid: process_batch\nnamespace: company.team\n\ninputs:\n - id: data\n type: FILE\n\ntasks:\n - id: debug\n type: io.kestra.plugin.core.log.Log\n message: \"{{ read(inputs.data) }}\"\n```\n\n```yaml\nid: process_files\nnamespace: company.team\n\ntasks:\n - id: loop_over_files\n type: io.kestra.plugin.core.flow.EachSequential\n value: \"{{ trigger.objects | jq('.[].uri') }}\"\n tasks:\n - id: subflow_per_batch\n type: io.kestra.plugin.core.flow.ForEachItem\n items: \"{{ trigger.uris[parent.taskrun.value] }}\"\n batch:\n rows: 1\n flowId: process_batch\n namespace: company.team\n wait: true\n transmitFailed: true\n inputs:\n data: \"{{ taskrun.items }}\"\n\ntriggers:\n - id: s3\n type: io.kestra.plugin.aws.s3.Trigger\n interval: \"PT1S\"\n accessKeyId: \"\u003Caccess-key\u003E\"\n secretKeyId: \"\u003Csecret-key\u003E\"\n region: \"us-east-1\"\n bucket: \"my_bucket\"\n prefix: \"sub-dir\"\n action: NONE\n```" + }, + "io.kestra.plugin.core.flow.ForEachItem-Batch": { + "type": "object", + "properties": { + "bytes": { + "$dynamic": true, + "type": "string", + "title": "Split a large file into multiple chunks with a maximum file size of `bytes`.", + "markdownDescription": "Can be provided as a string in the format \"10MB\" or \"200KB\", or the number of bytes. This allows you to process large files, slit them into smaller chunks by lines and process them in parallel. For example, MySQL by default limits the size of a query size to 16MB per query. Trying to use a bulk insert query with input data larger than 16MB will fail. Splitting the input data into smaller chunks is a common strategy to circumvent this limitation. By dividing a large data set into chunks smaller than the `max_allowed_packet` size (e.g., 10MB), you can insert the data in multiple smaller queries. This approach not only helps to avoid hitting the query size limit but can also be more efficient and manageable in terms of memory utilization, especially for very large datasets. In short, by splitting the file by bytes, you can bulk-insert smaller chunks of e.g. 10MB in parallel to avoid this limitation." + }, + "partitions": { + "$dynamic": true, + "type": "integer", + "title": "Split a file into a fixed number of partitioned files. For example, if you have a file with 1000 lines and you set `partitions` to 10, the file will be split into 10 files with 100 lines each." + }, + "rows": { + "$dynamic": true, + "type": "integer", + "title": "A number of rows per batch. The file will then be split into chunks with that maximum number of rows.", + "default": 1, + "markdownDescription": "Default value is : `1`" + }, + "separator": { + "$dynamic": false, + "type": "string", + "title": "The separator used to split a file into chunks. By default, it's a newline `\\n` character. If you are on Windows, you might want to use `\\r\\n` instead.", + "default": "\\n", + "markdownDescription": "Default value is : `\\n`" + } + } + }, + "io.kestra.plugin.core.flow.If": { + "type": "object", + "properties": { + "allowFailure": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "condition": { + "$dynamic": true, + "type": "string", + "title": "The `If` condition which can be any expression that evaluates to a boolean value.", + "markdownDescription": "Boolean coercion allows 0, -0, null and '' to evaluate to false, all other values will evaluate to true." + }, + "description": { + "type": "string" + }, + "disabled": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "else": { + "$dynamic": false, + "title": "List of tasks to execute if the condition is false.", + "type": "array", + "items": { + "oneOf": [ + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.debug.Echo" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.debug.Return" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.execution.Count" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.execution.Fail" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.execution.Labels" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.execution.PurgeExecutions" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.execution.Resume" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.flow.AllowFailure" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.flow.Dag" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.flow.EachParallel" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.flow.EachSequential" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.flow.ForEach" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.flow.ForEachItem" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.flow.If" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.flow.Parallel" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.flow.Pause" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.flow.Sequential" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.flow.Subflow" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.flow.Switch" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.flow.Template" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.flow.WaitFor" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.flow.WorkingDirectory" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.http.Download" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.http.Request" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.kv.Delete" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.kv.Get" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.kv.GetKeys" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.kv.Set" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.log.Fetch" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.log.Log" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.log.PurgeLogs" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.namespace.DeleteFiles" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.namespace.DownloadFiles" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.namespace.UploadFiles" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.output.OutputValues" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.state.Delete" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.state.Get" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.state.Set" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.storage.Concat" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.storage.DeduplicateItems" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.storage.Delete" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.storage.FilterItems" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.storage.LocalFiles" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.storage.PurgeCurrentExecutionFiles" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.storage.Reverse" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.storage.Size" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.storage.Split" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.templating.TemplatedTask" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.trigger.Toggle" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.hightouch.Sync" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.github.code.Search" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.github.commits.Search" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.github.issues.Comment" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.github.issues.Create" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.github.issues.Search" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.github.pulls.Create" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.github.pulls.Search" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.github.repositories.Search" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.github.topics.Search" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.github.users.Search" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.druid.Query" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.weaviate.BatchCreate" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.weaviate.Delete" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.weaviate.Query" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.weaviate.SchemaCreate" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.spark.JarSubmit" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.spark.PythonSubmit" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.spark.RSubmit" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.spark.SparkCLI" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.auth.OauthAccessToken" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.bigquery.Copy" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.bigquery.CopyPartitions" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.bigquery.CreateDataset" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.bigquery.CreateTable" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.bigquery.DeleteDataset" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.bigquery.DeletePartitions" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.bigquery.DeleteTable" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.bigquery.ExtractToGcs" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.bigquery.Load" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.bigquery.LoadFromGcs" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.bigquery.Query" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.bigquery.StorageWrite" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.bigquery.TableMetadata" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.bigquery.UpdateDataset" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.bigquery.UpdateTable" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.cli.GCloudCLI" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.dataproc.batches.PySparkSubmit" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.dataproc.batches.RSparkSubmit" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.dataproc.batches.SparkSqlSubmit" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.dataproc.batches.SparkSubmit" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.firestore.Delete" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.firestore.Get" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.firestore.Query" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.firestore.Set" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.gcs.Compose" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.gcs.Copy" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.gcs.CreateBucket" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.gcs.CreateBucketIamPolicy" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.gcs.Delete" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.gcs.DeleteBucket" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.gcs.DeleteList" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.gcs.Download" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.gcs.Downloads" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.gcs.List" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.gcs.UpdateBucket" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.gcs.Upload" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.gke.ClusterMetadata" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.pubsub.Consume" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.pubsub.Publish" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.vertexai.ChatCompletion" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.vertexai.CustomJob" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.vertexai.MultimodalCompletion" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.vertexai.TextCompletion" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.db2.Query" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.minio.Copy" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.minio.CreateBucket" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.minio.Delete" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.minio.DeleteList" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.minio.Download" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.minio.Downloads" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.minio.List" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.minio.Upload" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.soda.Scan" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.modal.cli.ModalCLI" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.rockset.Query" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.scripts.nashorn.Eval" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.scripts.nashorn.FileTransform" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.scripts.ruby.Commands" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.scripts.ruby.Script" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.mongodb.Bulk" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.mongodb.Delete" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.mongodb.Find" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.mongodb.InsertOne" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.mongodb.Load" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.mongodb.Update" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.debezium.postgres.Capture" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.BigQuery" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.BingAds" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.ChargeBee" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.ExchangeRateHost" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.FacebookAds" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.Fastly" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.GenericTap" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.GitHub" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.Gitlab" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.GoogleAdwords" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.GoogleAnalytics" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.GoogleSearchConsole" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.HubSpot" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.Marketo" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.Netsuite" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.PipelinewiseMongoDb" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.PipelinewiseMysql" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.PipelinewiseOracle" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.PipelinewisePostgres" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.PipelinewiseSqlServer" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.Quickbooks" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.Recharge" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.SageIntacct" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.Salesforce" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.Shopify" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.Slack" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.Stripe" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.Zendesk" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.Zoom" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.targets.AdswerveBigQuery" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.targets.Csv" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.targets.DatamillCoPostgres" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.targets.GenericTarget" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.targets.Json" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.targets.MeltanoSnowflake" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.targets.Oracle" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.targets.PipelinewisePostgres" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.targets.PipelinewiseRedshift" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.targets.PipelinewiseSnowflake" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.targets.SqlServer" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.scripts.julia.Commands" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.scripts.julia.Script" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.trino.Query" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.compress.ArchiveCompress" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.compress.ArchiveDecompress" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.compress.FileCompress" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.compress.FileDecompress" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.duckdb.Query" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.dataform.cli.DataformCLI" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.couchbase.Query" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.serdes.avro.AvroToIon" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.serdes.avro.IonToAvro" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.serdes.csv.CsvToIon" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.serdes.csv.IonToCsv" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.serdes.excel.ExcelToIon" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.serdes.excel.IonToExcel" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.serdes.json.IonToJson" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.serdes.json.JsonToIon" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.serdes.parquet.IonToParquet" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.serdes.parquet.ParquetToIon" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.serdes.xml.IonToXml" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.serdes.xml.XmlToIon" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.sqlserver.Batch" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.sqlserver.Query" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.powerbi.RefreshGroupDataset" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.core.tasks.scripts.Node" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.scripts.node.Commands" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.scripts.node.Script" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.docker.Build" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.docker.Run" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.oracle.Batch" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.oracle.Query" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.zendesk.tickets.Create" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.debezium.mysql.Capture" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.debezium.sqlserver.Capture" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.cassandra.astradb.Query" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.cassandra.standard.Query" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.openai.ChatCompletion" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.openai.CreateImage" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.postgresql.Batch" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.postgresql.CopyIn" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.postgresql.CopyOut" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.postgresql.Query" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.core.tasks.scripts.Bash" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.scripts.shell.Commands" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.scripts.shell.Script" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.scripts.r.Commands" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.scripts.r.Script" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.debezium.db2.Capture" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.tika.Parse" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jira.issues.Create" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jira.issues.CreateComment" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.debezium.oracle.Capture" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.git.Clone" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.git.Push" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.git.PushFlows" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.git.PushNamespaceFiles" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.git.Sync" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.git.SyncFlows" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.git.SyncNamespaceFiles" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.servicenow.Post" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.sybase.Query" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.as400.Query" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.clickhouse.BulkInsert" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.clickhouse.Query" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.scripts.groovy.Eval" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.scripts.groovy.FileTransform" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.redis.list.ListPop" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.redis.list.ListPush" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.redis.pubsub.Publish" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.redis.string.Delete" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.redis.string.Get" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.redis.string.Set" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.linear.issues.Create" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.malloy.CLI" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.neo4j.Batch" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.neo4j.Query" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.hubspot.tickets.Create" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.scripts.powershell.Commands" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.scripts.powershell.Script" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.cloudquery.CloudQueryCLI" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.cloudquery.Sync" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.nats.Consume" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.nats.Produce" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.amqp.Consume" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.amqp.CreateQueue" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.amqp.DeclareExchange" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.amqp.Publish" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.amqp.QueueBind" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.notifications.discord.DiscordExecution" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.notifications.discord.DiscordIncomingWebhook" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.notifications.google.GoogleChatExecution" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.notifications.google.GoogleChatIncomingWebhook" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.notifications.mail.MailExecution" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.notifications.mail.MailSend" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.notifications.opsgenie.OpsgenieAlert" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.notifications.opsgenie.OpsgenieExecution" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.notifications.pagerduty.PagerDutyAlert" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.notifications.pagerduty.PagerDutyExecution" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.notifications.sendgrid.SendGridMailExecution" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.notifications.sendgrid.SendGridMailSend" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.notifications.sentry.SentryAlert" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.notifications.sentry.SentryExecution" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.notifications.slack.SlackExecution" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.notifications.slack.SlackIncomingWebhook" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.notifications.teams.TeamsExecution" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.notifications.teams.TeamsIncomingWebhook" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.notifications.telegram.TelegramExecution" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.notifications.telegram.TelegramSend" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.notifications.twilio.TwilioAlert" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.notifications.twilio.TwilioExecution" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.notifications.whatsapp.WhatsAppExecution" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.notifications.whatsapp.WhatsAppIncomingWebhook" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.notifications.zenduty.ZendutyAlert" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.notifications.zenduty.ZendutyExecution" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.azure.batch.job.Create" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.azure.batch.pool.Resize" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.azure.cli.AzCLI" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.azure.eventhubs.Consume" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.azure.eventhubs.Produce" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.azure.storage.blob.Copy" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.azure.storage.blob.Delete" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.azure.storage.blob.DeleteList" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.azure.storage.blob.Download" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.azure.storage.blob.Downloads" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.azure.storage.blob.List" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.azure.storage.blob.SharedAccess" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.azure.storage.blob.Upload" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.azure.storage.table.Bulk" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.azure.storage.table.Delete" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.azure.storage.table.Get" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.azure.storage.table.List" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.transform.grok.TransformItems" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.transform.grok.TransformValue" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.kubernetes.PodCreate" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.kubernetes.kubectl.Apply" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.transform.jsonata.TransformItems" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.transform.jsonata.TransformValue" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.vertica.Batch" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.vertica.Query" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.solace.Consume" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.solace.Produce" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.ansible.cli.AnsibleCLI" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.elasticsearch.Bulk" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.elasticsearch.Get" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.elasticsearch.Load" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.elasticsearch.Put" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.elasticsearch.Request" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.elasticsearch.Scroll" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.elasticsearch.Search" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.pinot.Query" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.aws.athena.Query" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.aws.cli.AwsCLI" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.aws.dynamodb.DeleteItem" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.aws.dynamodb.GetItem" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.aws.dynamodb.PutItem" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.aws.dynamodb.Query" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.aws.dynamodb.Scan" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.aws.ecr.GetAuthToken" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.aws.eventbridge.PutEvents" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.aws.kinesis.PutRecords" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.aws.lambda.Invoke" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.aws.s3.Copy" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.aws.s3.CreateBucket" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.aws.s3.Delete" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.aws.s3.DeleteList" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.aws.s3.Download" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.aws.s3.Downloads" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.aws.s3.List" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.aws.s3.Upload" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.aws.sns.Publish" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.aws.sqs.Consume" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.aws.sqs.Publish" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.sqlmesh.cli.SQLMeshCLI" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.surrealdb.Query" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.vectorwise.Batch" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.vectorwise.Query" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.arrowflight.Query" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.terraform.cli.TerraformCLI" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.debezium.mongodb.Capture" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.fs.ftp.Delete" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.fs.ftp.Download" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.fs.ftp.Downloads" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.fs.ftp.List" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.fs.ftp.Move" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.fs.ftp.Upload" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.fs.ftp.Uploads" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.fs.ftps.Delete" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.fs.ftps.Download" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.fs.ftps.Downloads" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.fs.ftps.List" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.fs.ftps.Move" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.fs.ftps.Upload" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.fs.ftps.Uploads" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.fs.sftp.Delete" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.fs.sftp.Download" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.fs.sftp.Downloads" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.fs.sftp.List" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.fs.sftp.Move" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.fs.sftp.Upload" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.fs.sftp.Uploads" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.fs.smb.Delete" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.fs.smb.Download" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.fs.smb.Downloads" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.fs.smb.List" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.fs.smb.Move" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.fs.smb.Upload" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.fs.smb.Uploads" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.fs.ssh.Command" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.kafka.Consume" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.kafka.Produce" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.airflow.dags.TriggerDagRun" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.core.tasks.scripts.Python" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.scripts.python.Commands" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.scripts.python.Script" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.crypto.openpgp.Decrypt" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.crypto.openpgp.Encrypt" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.scripts.jython.Eval" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.scripts.jython.FileTransform" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.mysql.Batch" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.mysql.Query" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.snowflake.Download" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.snowflake.Query" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.snowflake.Upload" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.redshift.Query" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.ldap.Add" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.ldap.Delete" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.ldap.IonToLdif" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.ldap.LdifToIon" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.ldap.Modify" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.ldap.Search" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.databricks.cluster.CreateCluster" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.databricks.cluster.DeleteCluster" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.databricks.dbfs.Download" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.databricks.dbfs.Upload" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.databricks.job.CreateJob" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.databricks.job.SubmitRun" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.databricks.sql.Query" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.sqlite.Query" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.mqtt.Publish" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.mqtt.Subscribe" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.pulsar.Consume" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.pulsar.Produce" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.pulsar.Reader" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.dbt.cli.Build" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.dbt.cli.Compile" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.dbt.cli.DbtCLI" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.dbt.cli.Deps" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.dbt.cli.Freshness" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.dbt.cli.List" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.dbt.cli.Run" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.dbt.cli.Seed" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.dbt.cli.Setup" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.dbt.cli.Snapshot" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.dbt.cli.Test" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.dbt.cloud.CheckStatus" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.dbt.cloud.TriggerRun" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.dremio.Query" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.googleworkspace.drive.Create" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.googleworkspace.drive.Delete" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.googleworkspace.drive.Download" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.googleworkspace.drive.Export" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.googleworkspace.drive.List" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.googleworkspace.drive.Upload" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.googleworkspace.sheets.Read" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.googleworkspace.sheets.ReadRange" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.airbyte.cloud.jobs.Reset" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.airbyte.cloud.jobs.Sync" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.airbyte.connections.CheckStatus" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.airbyte.connections.Sync" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.fivetran.connectors.Sync" + }, + { + "$dynamic": false + } + ] + } + ] + } + }, + "errors": { + "$dynamic": false, + "title": "List of tasks to execute in case of errors of a child task.", + "type": "array", + "items": { + "oneOf": [ + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.debug.Echo" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.debug.Return" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.execution.Count" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.execution.Fail" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.execution.Labels" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.execution.PurgeExecutions" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.execution.Resume" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.flow.AllowFailure" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.flow.Dag" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.flow.EachParallel" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.flow.EachSequential" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.flow.ForEach" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.flow.ForEachItem" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.flow.If" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.flow.Parallel" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.flow.Pause" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.flow.Sequential" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.flow.Subflow" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.flow.Switch" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.flow.Template" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.flow.WaitFor" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.flow.WorkingDirectory" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.http.Download" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.http.Request" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.kv.Delete" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.kv.Get" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.kv.GetKeys" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.kv.Set" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.log.Fetch" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.log.Log" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.log.PurgeLogs" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.namespace.DeleteFiles" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.namespace.DownloadFiles" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.namespace.UploadFiles" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.output.OutputValues" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.state.Delete" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.state.Get" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.state.Set" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.storage.Concat" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.storage.DeduplicateItems" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.storage.Delete" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.storage.FilterItems" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.storage.LocalFiles" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.storage.PurgeCurrentExecutionFiles" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.storage.Reverse" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.storage.Size" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.storage.Split" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.templating.TemplatedTask" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.trigger.Toggle" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.hightouch.Sync" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.github.code.Search" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.github.commits.Search" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.github.issues.Comment" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.github.issues.Create" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.github.issues.Search" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.github.pulls.Create" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.github.pulls.Search" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.github.repositories.Search" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.github.topics.Search" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.github.users.Search" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.druid.Query" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.weaviate.BatchCreate" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.weaviate.Delete" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.weaviate.Query" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.weaviate.SchemaCreate" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.spark.JarSubmit" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.spark.PythonSubmit" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.spark.RSubmit" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.spark.SparkCLI" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.auth.OauthAccessToken" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.bigquery.Copy" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.bigquery.CopyPartitions" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.bigquery.CreateDataset" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.bigquery.CreateTable" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.bigquery.DeleteDataset" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.bigquery.DeletePartitions" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.bigquery.DeleteTable" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.bigquery.ExtractToGcs" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.bigquery.Load" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.bigquery.LoadFromGcs" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.bigquery.Query" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.bigquery.StorageWrite" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.bigquery.TableMetadata" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.bigquery.UpdateDataset" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.bigquery.UpdateTable" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.cli.GCloudCLI" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.dataproc.batches.PySparkSubmit" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.dataproc.batches.RSparkSubmit" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.dataproc.batches.SparkSqlSubmit" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.dataproc.batches.SparkSubmit" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.firestore.Delete" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.firestore.Get" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.firestore.Query" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.firestore.Set" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.gcs.Compose" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.gcs.Copy" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.gcs.CreateBucket" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.gcs.CreateBucketIamPolicy" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.gcs.Delete" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.gcs.DeleteBucket" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.gcs.DeleteList" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.gcs.Download" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.gcs.Downloads" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.gcs.List" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.gcs.UpdateBucket" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.gcs.Upload" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.gke.ClusterMetadata" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.pubsub.Consume" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.pubsub.Publish" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.vertexai.ChatCompletion" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.vertexai.CustomJob" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.vertexai.MultimodalCompletion" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.vertexai.TextCompletion" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.db2.Query" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.minio.Copy" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.minio.CreateBucket" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.minio.Delete" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.minio.DeleteList" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.minio.Download" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.minio.Downloads" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.minio.List" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.minio.Upload" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.soda.Scan" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.modal.cli.ModalCLI" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.rockset.Query" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.scripts.nashorn.Eval" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.scripts.nashorn.FileTransform" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.scripts.ruby.Commands" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.scripts.ruby.Script" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.mongodb.Bulk" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.mongodb.Delete" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.mongodb.Find" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.mongodb.InsertOne" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.mongodb.Load" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.mongodb.Update" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.debezium.postgres.Capture" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.BigQuery" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.BingAds" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.ChargeBee" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.ExchangeRateHost" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.FacebookAds" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.Fastly" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.GenericTap" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.GitHub" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.Gitlab" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.GoogleAdwords" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.GoogleAnalytics" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.GoogleSearchConsole" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.HubSpot" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.Marketo" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.Netsuite" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.PipelinewiseMongoDb" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.PipelinewiseMysql" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.PipelinewiseOracle" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.PipelinewisePostgres" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.PipelinewiseSqlServer" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.Quickbooks" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.Recharge" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.SageIntacct" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.Salesforce" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.Shopify" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.Slack" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.Stripe" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.Zendesk" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.Zoom" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.targets.AdswerveBigQuery" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.targets.Csv" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.targets.DatamillCoPostgres" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.targets.GenericTarget" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.targets.Json" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.targets.MeltanoSnowflake" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.targets.Oracle" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.targets.PipelinewisePostgres" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.targets.PipelinewiseRedshift" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.targets.PipelinewiseSnowflake" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.targets.SqlServer" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.scripts.julia.Commands" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.scripts.julia.Script" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.trino.Query" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.compress.ArchiveCompress" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.compress.ArchiveDecompress" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.compress.FileCompress" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.compress.FileDecompress" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.duckdb.Query" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.dataform.cli.DataformCLI" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.couchbase.Query" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.serdes.avro.AvroToIon" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.serdes.avro.IonToAvro" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.serdes.csv.CsvToIon" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.serdes.csv.IonToCsv" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.serdes.excel.ExcelToIon" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.serdes.excel.IonToExcel" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.serdes.json.IonToJson" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.serdes.json.JsonToIon" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.serdes.parquet.IonToParquet" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.serdes.parquet.ParquetToIon" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.serdes.xml.IonToXml" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.serdes.xml.XmlToIon" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.sqlserver.Batch" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.sqlserver.Query" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.powerbi.RefreshGroupDataset" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.core.tasks.scripts.Node" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.scripts.node.Commands" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.scripts.node.Script" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.docker.Build" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.docker.Run" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.oracle.Batch" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.oracle.Query" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.zendesk.tickets.Create" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.debezium.mysql.Capture" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.debezium.sqlserver.Capture" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.cassandra.astradb.Query" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.cassandra.standard.Query" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.openai.ChatCompletion" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.openai.CreateImage" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.postgresql.Batch" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.postgresql.CopyIn" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.postgresql.CopyOut" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.postgresql.Query" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.core.tasks.scripts.Bash" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.scripts.shell.Commands" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.scripts.shell.Script" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.scripts.r.Commands" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.scripts.r.Script" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.debezium.db2.Capture" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.tika.Parse" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jira.issues.Create" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jira.issues.CreateComment" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.debezium.oracle.Capture" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.git.Clone" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.git.Push" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.git.PushFlows" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.git.PushNamespaceFiles" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.git.Sync" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.git.SyncFlows" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.git.SyncNamespaceFiles" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.servicenow.Post" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.sybase.Query" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.as400.Query" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.clickhouse.BulkInsert" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.clickhouse.Query" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.scripts.groovy.Eval" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.scripts.groovy.FileTransform" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.redis.list.ListPop" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.redis.list.ListPush" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.redis.pubsub.Publish" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.redis.string.Delete" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.redis.string.Get" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.redis.string.Set" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.linear.issues.Create" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.malloy.CLI" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.neo4j.Batch" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.neo4j.Query" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.hubspot.tickets.Create" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.scripts.powershell.Commands" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.scripts.powershell.Script" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.cloudquery.CloudQueryCLI" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.cloudquery.Sync" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.nats.Consume" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.nats.Produce" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.amqp.Consume" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.amqp.CreateQueue" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.amqp.DeclareExchange" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.amqp.Publish" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.amqp.QueueBind" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.notifications.discord.DiscordExecution" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.notifications.discord.DiscordIncomingWebhook" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.notifications.google.GoogleChatExecution" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.notifications.google.GoogleChatIncomingWebhook" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.notifications.mail.MailExecution" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.notifications.mail.MailSend" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.notifications.opsgenie.OpsgenieAlert" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.notifications.opsgenie.OpsgenieExecution" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.notifications.pagerduty.PagerDutyAlert" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.notifications.pagerduty.PagerDutyExecution" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.notifications.sendgrid.SendGridMailExecution" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.notifications.sendgrid.SendGridMailSend" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.notifications.sentry.SentryAlert" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.notifications.sentry.SentryExecution" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.notifications.slack.SlackExecution" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.notifications.slack.SlackIncomingWebhook" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.notifications.teams.TeamsExecution" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.notifications.teams.TeamsIncomingWebhook" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.notifications.telegram.TelegramExecution" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.notifications.telegram.TelegramSend" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.notifications.twilio.TwilioAlert" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.notifications.twilio.TwilioExecution" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.notifications.whatsapp.WhatsAppExecution" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.notifications.whatsapp.WhatsAppIncomingWebhook" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.notifications.zenduty.ZendutyAlert" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.notifications.zenduty.ZendutyExecution" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.azure.batch.job.Create" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.azure.batch.pool.Resize" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.azure.cli.AzCLI" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.azure.eventhubs.Consume" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.azure.eventhubs.Produce" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.azure.storage.blob.Copy" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.azure.storage.blob.Delete" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.azure.storage.blob.DeleteList" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.azure.storage.blob.Download" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.azure.storage.blob.Downloads" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.azure.storage.blob.List" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.azure.storage.blob.SharedAccess" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.azure.storage.blob.Upload" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.azure.storage.table.Bulk" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.azure.storage.table.Delete" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.azure.storage.table.Get" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.azure.storage.table.List" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.transform.grok.TransformItems" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.transform.grok.TransformValue" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.kubernetes.PodCreate" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.kubernetes.kubectl.Apply" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.transform.jsonata.TransformItems" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.transform.jsonata.TransformValue" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.vertica.Batch" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.vertica.Query" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.solace.Consume" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.solace.Produce" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.ansible.cli.AnsibleCLI" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.elasticsearch.Bulk" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.elasticsearch.Get" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.elasticsearch.Load" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.elasticsearch.Put" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.elasticsearch.Request" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.elasticsearch.Scroll" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.elasticsearch.Search" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.pinot.Query" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.aws.athena.Query" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.aws.cli.AwsCLI" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.aws.dynamodb.DeleteItem" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.aws.dynamodb.GetItem" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.aws.dynamodb.PutItem" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.aws.dynamodb.Query" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.aws.dynamodb.Scan" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.aws.ecr.GetAuthToken" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.aws.eventbridge.PutEvents" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.aws.kinesis.PutRecords" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.aws.lambda.Invoke" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.aws.s3.Copy" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.aws.s3.CreateBucket" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.aws.s3.Delete" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.aws.s3.DeleteList" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.aws.s3.Download" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.aws.s3.Downloads" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.aws.s3.List" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.aws.s3.Upload" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.aws.sns.Publish" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.aws.sqs.Consume" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.aws.sqs.Publish" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.sqlmesh.cli.SQLMeshCLI" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.surrealdb.Query" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.vectorwise.Batch" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.vectorwise.Query" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.arrowflight.Query" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.terraform.cli.TerraformCLI" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.debezium.mongodb.Capture" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.fs.ftp.Delete" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.fs.ftp.Download" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.fs.ftp.Downloads" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.fs.ftp.List" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.fs.ftp.Move" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.fs.ftp.Upload" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.fs.ftp.Uploads" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.fs.ftps.Delete" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.fs.ftps.Download" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.fs.ftps.Downloads" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.fs.ftps.List" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.fs.ftps.Move" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.fs.ftps.Upload" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.fs.ftps.Uploads" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.fs.sftp.Delete" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.fs.sftp.Download" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.fs.sftp.Downloads" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.fs.sftp.List" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.fs.sftp.Move" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.fs.sftp.Upload" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.fs.sftp.Uploads" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.fs.smb.Delete" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.fs.smb.Download" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.fs.smb.Downloads" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.fs.smb.List" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.fs.smb.Move" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.fs.smb.Upload" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.fs.smb.Uploads" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.fs.ssh.Command" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.kafka.Consume" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.kafka.Produce" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.airflow.dags.TriggerDagRun" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.core.tasks.scripts.Python" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.scripts.python.Commands" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.scripts.python.Script" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.crypto.openpgp.Decrypt" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.crypto.openpgp.Encrypt" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.scripts.jython.Eval" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.scripts.jython.FileTransform" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.mysql.Batch" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.mysql.Query" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.snowflake.Download" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.snowflake.Query" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.snowflake.Upload" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.redshift.Query" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.ldap.Add" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.ldap.Delete" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.ldap.IonToLdif" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.ldap.LdifToIon" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.ldap.Modify" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.ldap.Search" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.databricks.cluster.CreateCluster" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.databricks.cluster.DeleteCluster" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.databricks.dbfs.Download" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.databricks.dbfs.Upload" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.databricks.job.CreateJob" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.databricks.job.SubmitRun" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.databricks.sql.Query" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.sqlite.Query" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.mqtt.Publish" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.mqtt.Subscribe" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.pulsar.Consume" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.pulsar.Produce" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.pulsar.Reader" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.dbt.cli.Build" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.dbt.cli.Compile" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.dbt.cli.DbtCLI" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.dbt.cli.Deps" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.dbt.cli.Freshness" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.dbt.cli.List" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.dbt.cli.Run" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.dbt.cli.Seed" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.dbt.cli.Setup" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.dbt.cli.Snapshot" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.dbt.cli.Test" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.dbt.cloud.CheckStatus" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.dbt.cloud.TriggerRun" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.dremio.Query" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.googleworkspace.drive.Create" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.googleworkspace.drive.Delete" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.googleworkspace.drive.Download" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.googleworkspace.drive.Export" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.googleworkspace.drive.List" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.googleworkspace.drive.Upload" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.googleworkspace.sheets.Read" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.googleworkspace.sheets.ReadRange" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.airbyte.cloud.jobs.Reset" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.airbyte.cloud.jobs.Sync" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.airbyte.connections.CheckStatus" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.airbyte.connections.Sync" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.fivetran.connectors.Sync" + }, + { + "$dynamic": false + } + ] + } + ] + } + }, + "id": { + "type": "string", + "minLength": 1, + "pattern": "^[a-zA-Z0-9][a-zA-Z0-9_-]*" + }, + "logLevel": { + "type": "string", + "enum": ["ERROR", "WARN", "INFO", "DEBUG", "TRACE"] + }, + "retry": { + "oneOf": [ + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Constant-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Exponential-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Random-2" + } + ] + }, + "then": { + "$dynamic": false, + "title": "List of tasks to execute if the condition is true.", + "minItems": 1, + "type": "array", + "items": { + "oneOf": [ + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.debug.Echo" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.debug.Return" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.execution.Count" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.execution.Fail" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.execution.Labels" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.execution.PurgeExecutions" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.execution.Resume" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.flow.AllowFailure" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.flow.Dag" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.flow.EachParallel" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.flow.EachSequential" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.flow.ForEach" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.flow.ForEachItem" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.flow.If" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.flow.Parallel" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.flow.Pause" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.flow.Sequential" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.flow.Subflow" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.flow.Switch" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.flow.Template" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.flow.WaitFor" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.flow.WorkingDirectory" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.http.Download" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.http.Request" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.kv.Delete" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.kv.Get" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.kv.GetKeys" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.kv.Set" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.log.Fetch" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.log.Log" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.log.PurgeLogs" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.namespace.DeleteFiles" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.namespace.DownloadFiles" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.namespace.UploadFiles" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.output.OutputValues" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.state.Delete" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.state.Get" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.state.Set" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.storage.Concat" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.storage.DeduplicateItems" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.storage.Delete" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.storage.FilterItems" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.storage.LocalFiles" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.storage.PurgeCurrentExecutionFiles" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.storage.Reverse" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.storage.Size" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.storage.Split" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.templating.TemplatedTask" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.trigger.Toggle" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.hightouch.Sync" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.github.code.Search" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.github.commits.Search" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.github.issues.Comment" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.github.issues.Create" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.github.issues.Search" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.github.pulls.Create" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.github.pulls.Search" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.github.repositories.Search" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.github.topics.Search" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.github.users.Search" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.druid.Query" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.weaviate.BatchCreate" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.weaviate.Delete" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.weaviate.Query" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.weaviate.SchemaCreate" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.spark.JarSubmit" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.spark.PythonSubmit" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.spark.RSubmit" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.spark.SparkCLI" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.auth.OauthAccessToken" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.bigquery.Copy" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.bigquery.CopyPartitions" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.bigquery.CreateDataset" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.bigquery.CreateTable" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.bigquery.DeleteDataset" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.bigquery.DeletePartitions" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.bigquery.DeleteTable" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.bigquery.ExtractToGcs" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.bigquery.Load" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.bigquery.LoadFromGcs" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.bigquery.Query" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.bigquery.StorageWrite" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.bigquery.TableMetadata" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.bigquery.UpdateDataset" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.bigquery.UpdateTable" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.cli.GCloudCLI" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.dataproc.batches.PySparkSubmit" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.dataproc.batches.RSparkSubmit" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.dataproc.batches.SparkSqlSubmit" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.dataproc.batches.SparkSubmit" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.firestore.Delete" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.firestore.Get" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.firestore.Query" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.firestore.Set" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.gcs.Compose" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.gcs.Copy" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.gcs.CreateBucket" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.gcs.CreateBucketIamPolicy" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.gcs.Delete" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.gcs.DeleteBucket" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.gcs.DeleteList" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.gcs.Download" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.gcs.Downloads" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.gcs.List" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.gcs.UpdateBucket" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.gcs.Upload" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.gke.ClusterMetadata" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.pubsub.Consume" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.pubsub.Publish" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.vertexai.ChatCompletion" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.vertexai.CustomJob" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.vertexai.MultimodalCompletion" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.vertexai.TextCompletion" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.db2.Query" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.minio.Copy" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.minio.CreateBucket" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.minio.Delete" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.minio.DeleteList" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.minio.Download" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.minio.Downloads" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.minio.List" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.minio.Upload" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.soda.Scan" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.modal.cli.ModalCLI" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.rockset.Query" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.scripts.nashorn.Eval" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.scripts.nashorn.FileTransform" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.scripts.ruby.Commands" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.scripts.ruby.Script" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.mongodb.Bulk" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.mongodb.Delete" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.mongodb.Find" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.mongodb.InsertOne" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.mongodb.Load" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.mongodb.Update" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.debezium.postgres.Capture" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.BigQuery" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.BingAds" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.ChargeBee" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.ExchangeRateHost" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.FacebookAds" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.Fastly" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.GenericTap" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.GitHub" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.Gitlab" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.GoogleAdwords" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.GoogleAnalytics" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.GoogleSearchConsole" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.HubSpot" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.Marketo" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.Netsuite" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.PipelinewiseMongoDb" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.PipelinewiseMysql" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.PipelinewiseOracle" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.PipelinewisePostgres" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.PipelinewiseSqlServer" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.Quickbooks" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.Recharge" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.SageIntacct" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.Salesforce" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.Shopify" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.Slack" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.Stripe" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.Zendesk" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.Zoom" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.targets.AdswerveBigQuery" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.targets.Csv" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.targets.DatamillCoPostgres" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.targets.GenericTarget" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.targets.Json" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.targets.MeltanoSnowflake" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.targets.Oracle" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.targets.PipelinewisePostgres" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.targets.PipelinewiseRedshift" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.targets.PipelinewiseSnowflake" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.targets.SqlServer" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.scripts.julia.Commands" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.scripts.julia.Script" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.trino.Query" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.compress.ArchiveCompress" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.compress.ArchiveDecompress" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.compress.FileCompress" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.compress.FileDecompress" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.duckdb.Query" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.dataform.cli.DataformCLI" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.couchbase.Query" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.serdes.avro.AvroToIon" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.serdes.avro.IonToAvro" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.serdes.csv.CsvToIon" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.serdes.csv.IonToCsv" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.serdes.excel.ExcelToIon" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.serdes.excel.IonToExcel" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.serdes.json.IonToJson" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.serdes.json.JsonToIon" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.serdes.parquet.IonToParquet" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.serdes.parquet.ParquetToIon" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.serdes.xml.IonToXml" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.serdes.xml.XmlToIon" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.sqlserver.Batch" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.sqlserver.Query" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.powerbi.RefreshGroupDataset" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.core.tasks.scripts.Node" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.scripts.node.Commands" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.scripts.node.Script" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.docker.Build" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.docker.Run" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.oracle.Batch" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.oracle.Query" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.zendesk.tickets.Create" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.debezium.mysql.Capture" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.debezium.sqlserver.Capture" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.cassandra.astradb.Query" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.cassandra.standard.Query" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.openai.ChatCompletion" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.openai.CreateImage" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.postgresql.Batch" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.postgresql.CopyIn" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.postgresql.CopyOut" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.postgresql.Query" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.core.tasks.scripts.Bash" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.scripts.shell.Commands" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.scripts.shell.Script" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.scripts.r.Commands" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.scripts.r.Script" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.debezium.db2.Capture" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.tika.Parse" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jira.issues.Create" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jira.issues.CreateComment" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.debezium.oracle.Capture" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.git.Clone" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.git.Push" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.git.PushFlows" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.git.PushNamespaceFiles" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.git.Sync" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.git.SyncFlows" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.git.SyncNamespaceFiles" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.servicenow.Post" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.sybase.Query" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.as400.Query" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.clickhouse.BulkInsert" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.clickhouse.Query" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.scripts.groovy.Eval" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.scripts.groovy.FileTransform" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.redis.list.ListPop" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.redis.list.ListPush" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.redis.pubsub.Publish" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.redis.string.Delete" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.redis.string.Get" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.redis.string.Set" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.linear.issues.Create" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.malloy.CLI" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.neo4j.Batch" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.neo4j.Query" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.hubspot.tickets.Create" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.scripts.powershell.Commands" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.scripts.powershell.Script" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.cloudquery.CloudQueryCLI" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.cloudquery.Sync" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.nats.Consume" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.nats.Produce" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.amqp.Consume" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.amqp.CreateQueue" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.amqp.DeclareExchange" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.amqp.Publish" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.amqp.QueueBind" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.notifications.discord.DiscordExecution" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.notifications.discord.DiscordIncomingWebhook" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.notifications.google.GoogleChatExecution" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.notifications.google.GoogleChatIncomingWebhook" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.notifications.mail.MailExecution" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.notifications.mail.MailSend" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.notifications.opsgenie.OpsgenieAlert" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.notifications.opsgenie.OpsgenieExecution" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.notifications.pagerduty.PagerDutyAlert" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.notifications.pagerduty.PagerDutyExecution" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.notifications.sendgrid.SendGridMailExecution" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.notifications.sendgrid.SendGridMailSend" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.notifications.sentry.SentryAlert" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.notifications.sentry.SentryExecution" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.notifications.slack.SlackExecution" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.notifications.slack.SlackIncomingWebhook" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.notifications.teams.TeamsExecution" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.notifications.teams.TeamsIncomingWebhook" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.notifications.telegram.TelegramExecution" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.notifications.telegram.TelegramSend" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.notifications.twilio.TwilioAlert" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.notifications.twilio.TwilioExecution" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.notifications.whatsapp.WhatsAppExecution" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.notifications.whatsapp.WhatsAppIncomingWebhook" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.notifications.zenduty.ZendutyAlert" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.notifications.zenduty.ZendutyExecution" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.azure.batch.job.Create" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.azure.batch.pool.Resize" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.azure.cli.AzCLI" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.azure.eventhubs.Consume" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.azure.eventhubs.Produce" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.azure.storage.blob.Copy" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.azure.storage.blob.Delete" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.azure.storage.blob.DeleteList" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.azure.storage.blob.Download" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.azure.storage.blob.Downloads" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.azure.storage.blob.List" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.azure.storage.blob.SharedAccess" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.azure.storage.blob.Upload" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.azure.storage.table.Bulk" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.azure.storage.table.Delete" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.azure.storage.table.Get" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.azure.storage.table.List" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.transform.grok.TransformItems" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.transform.grok.TransformValue" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.kubernetes.PodCreate" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.kubernetes.kubectl.Apply" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.transform.jsonata.TransformItems" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.transform.jsonata.TransformValue" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.vertica.Batch" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.vertica.Query" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.solace.Consume" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.solace.Produce" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.ansible.cli.AnsibleCLI" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.elasticsearch.Bulk" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.elasticsearch.Get" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.elasticsearch.Load" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.elasticsearch.Put" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.elasticsearch.Request" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.elasticsearch.Scroll" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.elasticsearch.Search" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.pinot.Query" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.aws.athena.Query" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.aws.cli.AwsCLI" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.aws.dynamodb.DeleteItem" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.aws.dynamodb.GetItem" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.aws.dynamodb.PutItem" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.aws.dynamodb.Query" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.aws.dynamodb.Scan" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.aws.ecr.GetAuthToken" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.aws.eventbridge.PutEvents" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.aws.kinesis.PutRecords" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.aws.lambda.Invoke" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.aws.s3.Copy" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.aws.s3.CreateBucket" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.aws.s3.Delete" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.aws.s3.DeleteList" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.aws.s3.Download" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.aws.s3.Downloads" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.aws.s3.List" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.aws.s3.Upload" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.aws.sns.Publish" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.aws.sqs.Consume" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.aws.sqs.Publish" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.sqlmesh.cli.SQLMeshCLI" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.surrealdb.Query" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.vectorwise.Batch" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.vectorwise.Query" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.arrowflight.Query" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.terraform.cli.TerraformCLI" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.debezium.mongodb.Capture" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.fs.ftp.Delete" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.fs.ftp.Download" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.fs.ftp.Downloads" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.fs.ftp.List" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.fs.ftp.Move" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.fs.ftp.Upload" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.fs.ftp.Uploads" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.fs.ftps.Delete" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.fs.ftps.Download" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.fs.ftps.Downloads" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.fs.ftps.List" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.fs.ftps.Move" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.fs.ftps.Upload" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.fs.ftps.Uploads" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.fs.sftp.Delete" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.fs.sftp.Download" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.fs.sftp.Downloads" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.fs.sftp.List" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.fs.sftp.Move" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.fs.sftp.Upload" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.fs.sftp.Uploads" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.fs.smb.Delete" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.fs.smb.Download" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.fs.smb.Downloads" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.fs.smb.List" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.fs.smb.Move" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.fs.smb.Upload" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.fs.smb.Uploads" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.fs.ssh.Command" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.kafka.Consume" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.kafka.Produce" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.airflow.dags.TriggerDagRun" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.core.tasks.scripts.Python" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.scripts.python.Commands" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.scripts.python.Script" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.crypto.openpgp.Decrypt" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.crypto.openpgp.Encrypt" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.scripts.jython.Eval" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.scripts.jython.FileTransform" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.mysql.Batch" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.mysql.Query" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.snowflake.Download" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.snowflake.Query" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.snowflake.Upload" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.redshift.Query" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.ldap.Add" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.ldap.Delete" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.ldap.IonToLdif" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.ldap.LdifToIon" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.ldap.Modify" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.ldap.Search" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.databricks.cluster.CreateCluster" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.databricks.cluster.DeleteCluster" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.databricks.dbfs.Download" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.databricks.dbfs.Upload" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.databricks.job.CreateJob" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.databricks.job.SubmitRun" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.databricks.sql.Query" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.sqlite.Query" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.mqtt.Publish" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.mqtt.Subscribe" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.pulsar.Consume" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.pulsar.Produce" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.pulsar.Reader" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.dbt.cli.Build" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.dbt.cli.Compile" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.dbt.cli.DbtCLI" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.dbt.cli.Deps" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.dbt.cli.Freshness" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.dbt.cli.List" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.dbt.cli.Run" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.dbt.cli.Seed" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.dbt.cli.Setup" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.dbt.cli.Snapshot" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.dbt.cli.Test" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.dbt.cloud.CheckStatus" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.dbt.cloud.TriggerRun" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.dremio.Query" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.googleworkspace.drive.Create" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.googleworkspace.drive.Delete" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.googleworkspace.drive.Download" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.googleworkspace.drive.Export" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.googleworkspace.drive.List" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.googleworkspace.drive.Upload" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.googleworkspace.sheets.Read" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.googleworkspace.sheets.ReadRange" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.airbyte.cloud.jobs.Reset" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.airbyte.cloud.jobs.Sync" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.airbyte.connections.CheckStatus" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.airbyte.connections.Sync" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.fivetran.connectors.Sync" + }, + { + "$dynamic": false + } + ] + } + ] + } + }, + "timeout": { + "type": "string", + "format": "duration" + }, + "type": { + "const": "io.kestra.plugin.core.flow.If" + }, + "workerGroup": { + "$ref": "#/definitions/io.kestra.core.models.tasks.WorkerGroup" + } + }, + "required": ["id", "then", "type"], + "title": "Process tasks conditionally depending on a contextual value.", + "markdownDescription": "Allow some workflow based on context variables, for example, branch a flow based on a previous task.##### Examples\n\u003E \n```yaml\nid: if\nnamespace: company.team\n\ninputs:\n - id: string\n type: STRING\n required: true\n\ntasks:\n - id: if\n type: io.kestra.plugin.core.flow.If\n condition: \"{{ inputs.string == 'Condition' }}\"\n then:\n - id: when_true\n type: io.kestra.plugin.core.log.Log\n message: 'Condition was true'\n else:\n - id: when_false\n type: io.kestra.plugin.core.log.Log\n message: 'Condition was false'\n```" + }, + "io.kestra.plugin.core.flow.Parallel": { + "type": "object", + "properties": { + "allowFailure": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "concurrent": { + "$dynamic": false, + "type": "integer", + "title": "Number of concurrent parallel tasks that can be running at any point in time.", + "default": 0, + "markdownDescription": "If the value is `0`, no limit exist and all tasks will start at the same time.\n\nDefault value is : `0`" + }, + "description": { + "type": "string" + }, + "disabled": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "errors": { + "$dynamic": false, + "title": "List of tasks to run if any tasks failed on this FlowableTask.", + "type": "array", + "items": { + "oneOf": [ + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.debug.Echo" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.debug.Return" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.execution.Count" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.execution.Fail" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.execution.Labels" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.execution.PurgeExecutions" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.execution.Resume" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.flow.AllowFailure" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.flow.Dag" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.flow.EachParallel" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.flow.EachSequential" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.flow.ForEach" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.flow.ForEachItem" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.flow.If" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.flow.Parallel" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.flow.Pause" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.flow.Sequential" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.flow.Subflow" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.flow.Switch" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.flow.Template" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.flow.WaitFor" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.flow.WorkingDirectory" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.http.Download" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.http.Request" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.kv.Delete" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.kv.Get" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.kv.GetKeys" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.kv.Set" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.log.Fetch" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.log.Log" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.log.PurgeLogs" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.namespace.DeleteFiles" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.namespace.DownloadFiles" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.namespace.UploadFiles" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.output.OutputValues" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.state.Delete" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.state.Get" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.state.Set" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.storage.Concat" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.storage.DeduplicateItems" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.storage.Delete" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.storage.FilterItems" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.storage.LocalFiles" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.storage.PurgeCurrentExecutionFiles" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.storage.Reverse" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.storage.Size" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.storage.Split" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.templating.TemplatedTask" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.trigger.Toggle" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.hightouch.Sync" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.github.code.Search" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.github.commits.Search" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.github.issues.Comment" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.github.issues.Create" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.github.issues.Search" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.github.pulls.Create" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.github.pulls.Search" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.github.repositories.Search" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.github.topics.Search" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.github.users.Search" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.druid.Query" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.weaviate.BatchCreate" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.weaviate.Delete" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.weaviate.Query" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.weaviate.SchemaCreate" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.spark.JarSubmit" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.spark.PythonSubmit" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.spark.RSubmit" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.spark.SparkCLI" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.auth.OauthAccessToken" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.bigquery.Copy" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.bigquery.CopyPartitions" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.bigquery.CreateDataset" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.bigquery.CreateTable" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.bigquery.DeleteDataset" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.bigquery.DeletePartitions" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.bigquery.DeleteTable" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.bigquery.ExtractToGcs" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.bigquery.Load" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.bigquery.LoadFromGcs" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.bigquery.Query" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.bigquery.StorageWrite" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.bigquery.TableMetadata" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.bigquery.UpdateDataset" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.bigquery.UpdateTable" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.cli.GCloudCLI" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.dataproc.batches.PySparkSubmit" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.dataproc.batches.RSparkSubmit" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.dataproc.batches.SparkSqlSubmit" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.dataproc.batches.SparkSubmit" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.firestore.Delete" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.firestore.Get" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.firestore.Query" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.firestore.Set" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.gcs.Compose" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.gcs.Copy" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.gcs.CreateBucket" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.gcs.CreateBucketIamPolicy" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.gcs.Delete" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.gcs.DeleteBucket" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.gcs.DeleteList" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.gcs.Download" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.gcs.Downloads" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.gcs.List" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.gcs.UpdateBucket" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.gcs.Upload" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.gke.ClusterMetadata" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.pubsub.Consume" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.pubsub.Publish" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.vertexai.ChatCompletion" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.vertexai.CustomJob" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.vertexai.MultimodalCompletion" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.vertexai.TextCompletion" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.db2.Query" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.minio.Copy" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.minio.CreateBucket" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.minio.Delete" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.minio.DeleteList" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.minio.Download" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.minio.Downloads" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.minio.List" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.minio.Upload" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.soda.Scan" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.modal.cli.ModalCLI" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.rockset.Query" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.scripts.nashorn.Eval" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.scripts.nashorn.FileTransform" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.scripts.ruby.Commands" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.scripts.ruby.Script" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.mongodb.Bulk" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.mongodb.Delete" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.mongodb.Find" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.mongodb.InsertOne" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.mongodb.Load" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.mongodb.Update" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.debezium.postgres.Capture" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.BigQuery" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.BingAds" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.ChargeBee" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.ExchangeRateHost" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.FacebookAds" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.Fastly" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.GenericTap" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.GitHub" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.Gitlab" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.GoogleAdwords" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.GoogleAnalytics" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.GoogleSearchConsole" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.HubSpot" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.Marketo" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.Netsuite" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.PipelinewiseMongoDb" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.PipelinewiseMysql" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.PipelinewiseOracle" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.PipelinewisePostgres" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.PipelinewiseSqlServer" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.Quickbooks" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.Recharge" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.SageIntacct" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.Salesforce" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.Shopify" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.Slack" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.Stripe" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.Zendesk" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.Zoom" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.targets.AdswerveBigQuery" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.targets.Csv" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.targets.DatamillCoPostgres" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.targets.GenericTarget" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.targets.Json" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.targets.MeltanoSnowflake" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.targets.Oracle" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.targets.PipelinewisePostgres" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.targets.PipelinewiseRedshift" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.targets.PipelinewiseSnowflake" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.targets.SqlServer" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.scripts.julia.Commands" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.scripts.julia.Script" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.trino.Query" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.compress.ArchiveCompress" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.compress.ArchiveDecompress" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.compress.FileCompress" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.compress.FileDecompress" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.duckdb.Query" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.dataform.cli.DataformCLI" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.couchbase.Query" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.serdes.avro.AvroToIon" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.serdes.avro.IonToAvro" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.serdes.csv.CsvToIon" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.serdes.csv.IonToCsv" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.serdes.excel.ExcelToIon" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.serdes.excel.IonToExcel" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.serdes.json.IonToJson" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.serdes.json.JsonToIon" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.serdes.parquet.IonToParquet" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.serdes.parquet.ParquetToIon" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.serdes.xml.IonToXml" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.serdes.xml.XmlToIon" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.sqlserver.Batch" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.sqlserver.Query" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.powerbi.RefreshGroupDataset" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.core.tasks.scripts.Node" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.scripts.node.Commands" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.scripts.node.Script" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.docker.Build" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.docker.Run" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.oracle.Batch" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.oracle.Query" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.zendesk.tickets.Create" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.debezium.mysql.Capture" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.debezium.sqlserver.Capture" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.cassandra.astradb.Query" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.cassandra.standard.Query" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.openai.ChatCompletion" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.openai.CreateImage" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.postgresql.Batch" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.postgresql.CopyIn" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.postgresql.CopyOut" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.postgresql.Query" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.core.tasks.scripts.Bash" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.scripts.shell.Commands" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.scripts.shell.Script" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.scripts.r.Commands" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.scripts.r.Script" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.debezium.db2.Capture" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.tika.Parse" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jira.issues.Create" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jira.issues.CreateComment" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.debezium.oracle.Capture" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.git.Clone" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.git.Push" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.git.PushFlows" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.git.PushNamespaceFiles" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.git.Sync" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.git.SyncFlows" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.git.SyncNamespaceFiles" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.servicenow.Post" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.sybase.Query" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.as400.Query" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.clickhouse.BulkInsert" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.clickhouse.Query" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.scripts.groovy.Eval" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.scripts.groovy.FileTransform" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.redis.list.ListPop" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.redis.list.ListPush" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.redis.pubsub.Publish" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.redis.string.Delete" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.redis.string.Get" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.redis.string.Set" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.linear.issues.Create" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.malloy.CLI" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.neo4j.Batch" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.neo4j.Query" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.hubspot.tickets.Create" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.scripts.powershell.Commands" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.scripts.powershell.Script" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.cloudquery.CloudQueryCLI" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.cloudquery.Sync" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.nats.Consume" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.nats.Produce" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.amqp.Consume" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.amqp.CreateQueue" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.amqp.DeclareExchange" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.amqp.Publish" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.amqp.QueueBind" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.notifications.discord.DiscordExecution" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.notifications.discord.DiscordIncomingWebhook" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.notifications.google.GoogleChatExecution" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.notifications.google.GoogleChatIncomingWebhook" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.notifications.mail.MailExecution" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.notifications.mail.MailSend" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.notifications.opsgenie.OpsgenieAlert" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.notifications.opsgenie.OpsgenieExecution" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.notifications.pagerduty.PagerDutyAlert" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.notifications.pagerduty.PagerDutyExecution" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.notifications.sendgrid.SendGridMailExecution" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.notifications.sendgrid.SendGridMailSend" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.notifications.sentry.SentryAlert" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.notifications.sentry.SentryExecution" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.notifications.slack.SlackExecution" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.notifications.slack.SlackIncomingWebhook" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.notifications.teams.TeamsExecution" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.notifications.teams.TeamsIncomingWebhook" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.notifications.telegram.TelegramExecution" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.notifications.telegram.TelegramSend" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.notifications.twilio.TwilioAlert" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.notifications.twilio.TwilioExecution" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.notifications.whatsapp.WhatsAppExecution" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.notifications.whatsapp.WhatsAppIncomingWebhook" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.notifications.zenduty.ZendutyAlert" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.notifications.zenduty.ZendutyExecution" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.azure.batch.job.Create" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.azure.batch.pool.Resize" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.azure.cli.AzCLI" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.azure.eventhubs.Consume" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.azure.eventhubs.Produce" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.azure.storage.blob.Copy" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.azure.storage.blob.Delete" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.azure.storage.blob.DeleteList" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.azure.storage.blob.Download" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.azure.storage.blob.Downloads" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.azure.storage.blob.List" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.azure.storage.blob.SharedAccess" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.azure.storage.blob.Upload" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.azure.storage.table.Bulk" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.azure.storage.table.Delete" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.azure.storage.table.Get" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.azure.storage.table.List" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.transform.grok.TransformItems" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.transform.grok.TransformValue" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.kubernetes.PodCreate" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.kubernetes.kubectl.Apply" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.transform.jsonata.TransformItems" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.transform.jsonata.TransformValue" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.vertica.Batch" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.vertica.Query" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.solace.Consume" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.solace.Produce" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.ansible.cli.AnsibleCLI" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.elasticsearch.Bulk" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.elasticsearch.Get" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.elasticsearch.Load" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.elasticsearch.Put" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.elasticsearch.Request" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.elasticsearch.Scroll" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.elasticsearch.Search" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.pinot.Query" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.aws.athena.Query" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.aws.cli.AwsCLI" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.aws.dynamodb.DeleteItem" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.aws.dynamodb.GetItem" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.aws.dynamodb.PutItem" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.aws.dynamodb.Query" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.aws.dynamodb.Scan" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.aws.ecr.GetAuthToken" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.aws.eventbridge.PutEvents" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.aws.kinesis.PutRecords" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.aws.lambda.Invoke" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.aws.s3.Copy" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.aws.s3.CreateBucket" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.aws.s3.Delete" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.aws.s3.DeleteList" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.aws.s3.Download" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.aws.s3.Downloads" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.aws.s3.List" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.aws.s3.Upload" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.aws.sns.Publish" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.aws.sqs.Consume" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.aws.sqs.Publish" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.sqlmesh.cli.SQLMeshCLI" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.surrealdb.Query" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.vectorwise.Batch" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.vectorwise.Query" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.arrowflight.Query" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.terraform.cli.TerraformCLI" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.debezium.mongodb.Capture" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.fs.ftp.Delete" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.fs.ftp.Download" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.fs.ftp.Downloads" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.fs.ftp.List" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.fs.ftp.Move" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.fs.ftp.Upload" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.fs.ftp.Uploads" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.fs.ftps.Delete" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.fs.ftps.Download" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.fs.ftps.Downloads" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.fs.ftps.List" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.fs.ftps.Move" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.fs.ftps.Upload" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.fs.ftps.Uploads" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.fs.sftp.Delete" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.fs.sftp.Download" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.fs.sftp.Downloads" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.fs.sftp.List" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.fs.sftp.Move" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.fs.sftp.Upload" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.fs.sftp.Uploads" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.fs.smb.Delete" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.fs.smb.Download" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.fs.smb.Downloads" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.fs.smb.List" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.fs.smb.Move" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.fs.smb.Upload" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.fs.smb.Uploads" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.fs.ssh.Command" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.kafka.Consume" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.kafka.Produce" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.airflow.dags.TriggerDagRun" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.core.tasks.scripts.Python" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.scripts.python.Commands" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.scripts.python.Script" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.crypto.openpgp.Decrypt" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.crypto.openpgp.Encrypt" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.scripts.jython.Eval" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.scripts.jython.FileTransform" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.mysql.Batch" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.mysql.Query" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.snowflake.Download" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.snowflake.Query" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.snowflake.Upload" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.redshift.Query" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.ldap.Add" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.ldap.Delete" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.ldap.IonToLdif" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.ldap.LdifToIon" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.ldap.Modify" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.ldap.Search" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.databricks.cluster.CreateCluster" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.databricks.cluster.DeleteCluster" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.databricks.dbfs.Download" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.databricks.dbfs.Upload" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.databricks.job.CreateJob" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.databricks.job.SubmitRun" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.databricks.sql.Query" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.sqlite.Query" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.mqtt.Publish" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.mqtt.Subscribe" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.pulsar.Consume" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.pulsar.Produce" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.pulsar.Reader" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.dbt.cli.Build" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.dbt.cli.Compile" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.dbt.cli.DbtCLI" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.dbt.cli.Deps" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.dbt.cli.Freshness" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.dbt.cli.List" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.dbt.cli.Run" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.dbt.cli.Seed" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.dbt.cli.Setup" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.dbt.cli.Snapshot" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.dbt.cli.Test" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.dbt.cloud.CheckStatus" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.dbt.cloud.TriggerRun" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.dremio.Query" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.googleworkspace.drive.Create" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.googleworkspace.drive.Delete" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.googleworkspace.drive.Download" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.googleworkspace.drive.Export" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.googleworkspace.drive.List" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.googleworkspace.drive.Upload" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.googleworkspace.sheets.Read" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.googleworkspace.sheets.ReadRange" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.airbyte.cloud.jobs.Reset" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.airbyte.cloud.jobs.Sync" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.airbyte.connections.CheckStatus" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.airbyte.connections.Sync" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.fivetran.connectors.Sync" + }, + { + "$dynamic": false + } + ] + } + ] + } + }, + "id": { + "type": "string", + "minLength": 1, + "pattern": "^[a-zA-Z0-9][a-zA-Z0-9_-]*" + }, + "logLevel": { + "type": "string", + "enum": ["ERROR", "WARN", "INFO", "DEBUG", "TRACE"] + }, + "retry": { + "oneOf": [ + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Constant-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Exponential-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Random-2" + } + ] + }, + "tasks": { + "$dynamic": false, + "minItems": 1, + "type": "array", + "items": { + "oneOf": [ + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.debug.Echo" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.debug.Return" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.execution.Count" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.execution.Fail" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.execution.Labels" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.execution.PurgeExecutions" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.execution.Resume" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.flow.AllowFailure" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.flow.Dag" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.flow.EachParallel" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.flow.EachSequential" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.flow.ForEach" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.flow.ForEachItem" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.flow.If" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.flow.Parallel" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.flow.Pause" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.flow.Sequential" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.flow.Subflow" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.flow.Switch" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.flow.Template" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.flow.WaitFor" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.flow.WorkingDirectory" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.http.Download" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.http.Request" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.kv.Delete" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.kv.Get" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.kv.GetKeys" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.kv.Set" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.log.Fetch" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.log.Log" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.log.PurgeLogs" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.namespace.DeleteFiles" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.namespace.DownloadFiles" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.namespace.UploadFiles" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.output.OutputValues" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.state.Delete" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.state.Get" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.state.Set" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.storage.Concat" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.storage.DeduplicateItems" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.storage.Delete" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.storage.FilterItems" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.storage.LocalFiles" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.storage.PurgeCurrentExecutionFiles" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.storage.Reverse" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.storage.Size" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.storage.Split" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.templating.TemplatedTask" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.trigger.Toggle" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.hightouch.Sync" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.github.code.Search" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.github.commits.Search" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.github.issues.Comment" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.github.issues.Create" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.github.issues.Search" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.github.pulls.Create" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.github.pulls.Search" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.github.repositories.Search" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.github.topics.Search" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.github.users.Search" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.druid.Query" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.weaviate.BatchCreate" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.weaviate.Delete" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.weaviate.Query" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.weaviate.SchemaCreate" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.spark.JarSubmit" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.spark.PythonSubmit" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.spark.RSubmit" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.spark.SparkCLI" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.auth.OauthAccessToken" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.bigquery.Copy" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.bigquery.CopyPartitions" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.bigquery.CreateDataset" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.bigquery.CreateTable" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.bigquery.DeleteDataset" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.bigquery.DeletePartitions" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.bigquery.DeleteTable" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.bigquery.ExtractToGcs" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.bigquery.Load" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.bigquery.LoadFromGcs" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.bigquery.Query" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.bigquery.StorageWrite" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.bigquery.TableMetadata" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.bigquery.UpdateDataset" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.bigquery.UpdateTable" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.cli.GCloudCLI" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.dataproc.batches.PySparkSubmit" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.dataproc.batches.RSparkSubmit" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.dataproc.batches.SparkSqlSubmit" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.dataproc.batches.SparkSubmit" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.firestore.Delete" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.firestore.Get" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.firestore.Query" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.firestore.Set" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.gcs.Compose" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.gcs.Copy" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.gcs.CreateBucket" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.gcs.CreateBucketIamPolicy" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.gcs.Delete" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.gcs.DeleteBucket" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.gcs.DeleteList" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.gcs.Download" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.gcs.Downloads" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.gcs.List" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.gcs.UpdateBucket" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.gcs.Upload" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.gke.ClusterMetadata" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.pubsub.Consume" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.pubsub.Publish" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.vertexai.ChatCompletion" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.vertexai.CustomJob" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.vertexai.MultimodalCompletion" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.vertexai.TextCompletion" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.db2.Query" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.minio.Copy" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.minio.CreateBucket" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.minio.Delete" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.minio.DeleteList" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.minio.Download" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.minio.Downloads" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.minio.List" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.minio.Upload" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.soda.Scan" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.modal.cli.ModalCLI" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.rockset.Query" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.scripts.nashorn.Eval" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.scripts.nashorn.FileTransform" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.scripts.ruby.Commands" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.scripts.ruby.Script" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.mongodb.Bulk" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.mongodb.Delete" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.mongodb.Find" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.mongodb.InsertOne" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.mongodb.Load" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.mongodb.Update" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.debezium.postgres.Capture" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.BigQuery" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.BingAds" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.ChargeBee" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.ExchangeRateHost" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.FacebookAds" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.Fastly" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.GenericTap" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.GitHub" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.Gitlab" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.GoogleAdwords" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.GoogleAnalytics" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.GoogleSearchConsole" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.HubSpot" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.Marketo" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.Netsuite" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.PipelinewiseMongoDb" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.PipelinewiseMysql" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.PipelinewiseOracle" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.PipelinewisePostgres" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.PipelinewiseSqlServer" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.Quickbooks" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.Recharge" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.SageIntacct" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.Salesforce" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.Shopify" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.Slack" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.Stripe" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.Zendesk" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.Zoom" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.targets.AdswerveBigQuery" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.targets.Csv" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.targets.DatamillCoPostgres" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.targets.GenericTarget" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.targets.Json" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.targets.MeltanoSnowflake" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.targets.Oracle" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.targets.PipelinewisePostgres" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.targets.PipelinewiseRedshift" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.targets.PipelinewiseSnowflake" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.targets.SqlServer" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.scripts.julia.Commands" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.scripts.julia.Script" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.trino.Query" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.compress.ArchiveCompress" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.compress.ArchiveDecompress" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.compress.FileCompress" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.compress.FileDecompress" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.duckdb.Query" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.dataform.cli.DataformCLI" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.couchbase.Query" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.serdes.avro.AvroToIon" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.serdes.avro.IonToAvro" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.serdes.csv.CsvToIon" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.serdes.csv.IonToCsv" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.serdes.excel.ExcelToIon" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.serdes.excel.IonToExcel" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.serdes.json.IonToJson" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.serdes.json.JsonToIon" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.serdes.parquet.IonToParquet" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.serdes.parquet.ParquetToIon" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.serdes.xml.IonToXml" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.serdes.xml.XmlToIon" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.sqlserver.Batch" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.sqlserver.Query" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.powerbi.RefreshGroupDataset" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.core.tasks.scripts.Node" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.scripts.node.Commands" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.scripts.node.Script" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.docker.Build" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.docker.Run" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.oracle.Batch" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.oracle.Query" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.zendesk.tickets.Create" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.debezium.mysql.Capture" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.debezium.sqlserver.Capture" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.cassandra.astradb.Query" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.cassandra.standard.Query" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.openai.ChatCompletion" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.openai.CreateImage" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.postgresql.Batch" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.postgresql.CopyIn" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.postgresql.CopyOut" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.postgresql.Query" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.core.tasks.scripts.Bash" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.scripts.shell.Commands" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.scripts.shell.Script" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.scripts.r.Commands" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.scripts.r.Script" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.debezium.db2.Capture" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.tika.Parse" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jira.issues.Create" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jira.issues.CreateComment" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.debezium.oracle.Capture" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.git.Clone" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.git.Push" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.git.PushFlows" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.git.PushNamespaceFiles" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.git.Sync" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.git.SyncFlows" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.git.SyncNamespaceFiles" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.servicenow.Post" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.sybase.Query" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.as400.Query" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.clickhouse.BulkInsert" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.clickhouse.Query" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.scripts.groovy.Eval" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.scripts.groovy.FileTransform" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.redis.list.ListPop" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.redis.list.ListPush" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.redis.pubsub.Publish" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.redis.string.Delete" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.redis.string.Get" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.redis.string.Set" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.linear.issues.Create" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.malloy.CLI" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.neo4j.Batch" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.neo4j.Query" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.hubspot.tickets.Create" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.scripts.powershell.Commands" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.scripts.powershell.Script" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.cloudquery.CloudQueryCLI" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.cloudquery.Sync" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.nats.Consume" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.nats.Produce" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.amqp.Consume" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.amqp.CreateQueue" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.amqp.DeclareExchange" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.amqp.Publish" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.amqp.QueueBind" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.notifications.discord.DiscordExecution" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.notifications.discord.DiscordIncomingWebhook" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.notifications.google.GoogleChatExecution" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.notifications.google.GoogleChatIncomingWebhook" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.notifications.mail.MailExecution" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.notifications.mail.MailSend" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.notifications.opsgenie.OpsgenieAlert" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.notifications.opsgenie.OpsgenieExecution" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.notifications.pagerduty.PagerDutyAlert" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.notifications.pagerduty.PagerDutyExecution" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.notifications.sendgrid.SendGridMailExecution" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.notifications.sendgrid.SendGridMailSend" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.notifications.sentry.SentryAlert" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.notifications.sentry.SentryExecution" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.notifications.slack.SlackExecution" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.notifications.slack.SlackIncomingWebhook" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.notifications.teams.TeamsExecution" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.notifications.teams.TeamsIncomingWebhook" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.notifications.telegram.TelegramExecution" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.notifications.telegram.TelegramSend" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.notifications.twilio.TwilioAlert" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.notifications.twilio.TwilioExecution" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.notifications.whatsapp.WhatsAppExecution" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.notifications.whatsapp.WhatsAppIncomingWebhook" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.notifications.zenduty.ZendutyAlert" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.notifications.zenduty.ZendutyExecution" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.azure.batch.job.Create" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.azure.batch.pool.Resize" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.azure.cli.AzCLI" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.azure.eventhubs.Consume" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.azure.eventhubs.Produce" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.azure.storage.blob.Copy" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.azure.storage.blob.Delete" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.azure.storage.blob.DeleteList" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.azure.storage.blob.Download" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.azure.storage.blob.Downloads" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.azure.storage.blob.List" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.azure.storage.blob.SharedAccess" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.azure.storage.blob.Upload" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.azure.storage.table.Bulk" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.azure.storage.table.Delete" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.azure.storage.table.Get" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.azure.storage.table.List" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.transform.grok.TransformItems" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.transform.grok.TransformValue" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.kubernetes.PodCreate" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.kubernetes.kubectl.Apply" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.transform.jsonata.TransformItems" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.transform.jsonata.TransformValue" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.vertica.Batch" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.vertica.Query" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.solace.Consume" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.solace.Produce" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.ansible.cli.AnsibleCLI" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.elasticsearch.Bulk" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.elasticsearch.Get" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.elasticsearch.Load" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.elasticsearch.Put" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.elasticsearch.Request" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.elasticsearch.Scroll" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.elasticsearch.Search" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.pinot.Query" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.aws.athena.Query" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.aws.cli.AwsCLI" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.aws.dynamodb.DeleteItem" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.aws.dynamodb.GetItem" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.aws.dynamodb.PutItem" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.aws.dynamodb.Query" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.aws.dynamodb.Scan" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.aws.ecr.GetAuthToken" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.aws.eventbridge.PutEvents" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.aws.kinesis.PutRecords" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.aws.lambda.Invoke" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.aws.s3.Copy" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.aws.s3.CreateBucket" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.aws.s3.Delete" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.aws.s3.DeleteList" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.aws.s3.Download" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.aws.s3.Downloads" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.aws.s3.List" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.aws.s3.Upload" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.aws.sns.Publish" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.aws.sqs.Consume" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.aws.sqs.Publish" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.sqlmesh.cli.SQLMeshCLI" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.surrealdb.Query" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.vectorwise.Batch" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.vectorwise.Query" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.arrowflight.Query" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.terraform.cli.TerraformCLI" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.debezium.mongodb.Capture" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.fs.ftp.Delete" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.fs.ftp.Download" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.fs.ftp.Downloads" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.fs.ftp.List" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.fs.ftp.Move" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.fs.ftp.Upload" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.fs.ftp.Uploads" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.fs.ftps.Delete" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.fs.ftps.Download" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.fs.ftps.Downloads" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.fs.ftps.List" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.fs.ftps.Move" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.fs.ftps.Upload" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.fs.ftps.Uploads" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.fs.sftp.Delete" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.fs.sftp.Download" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.fs.sftp.Downloads" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.fs.sftp.List" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.fs.sftp.Move" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.fs.sftp.Upload" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.fs.sftp.Uploads" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.fs.smb.Delete" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.fs.smb.Download" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.fs.smb.Downloads" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.fs.smb.List" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.fs.smb.Move" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.fs.smb.Upload" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.fs.smb.Uploads" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.fs.ssh.Command" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.kafka.Consume" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.kafka.Produce" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.airflow.dags.TriggerDagRun" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.core.tasks.scripts.Python" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.scripts.python.Commands" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.scripts.python.Script" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.crypto.openpgp.Decrypt" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.crypto.openpgp.Encrypt" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.scripts.jython.Eval" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.scripts.jython.FileTransform" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.mysql.Batch" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.mysql.Query" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.snowflake.Download" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.snowflake.Query" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.snowflake.Upload" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.redshift.Query" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.ldap.Add" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.ldap.Delete" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.ldap.IonToLdif" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.ldap.LdifToIon" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.ldap.Modify" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.ldap.Search" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.databricks.cluster.CreateCluster" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.databricks.cluster.DeleteCluster" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.databricks.dbfs.Download" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.databricks.dbfs.Upload" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.databricks.job.CreateJob" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.databricks.job.SubmitRun" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.databricks.sql.Query" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.sqlite.Query" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.mqtt.Publish" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.mqtt.Subscribe" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.pulsar.Consume" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.pulsar.Produce" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.pulsar.Reader" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.dbt.cli.Build" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.dbt.cli.Compile" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.dbt.cli.DbtCLI" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.dbt.cli.Deps" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.dbt.cli.Freshness" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.dbt.cli.List" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.dbt.cli.Run" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.dbt.cli.Seed" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.dbt.cli.Setup" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.dbt.cli.Snapshot" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.dbt.cli.Test" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.dbt.cloud.CheckStatus" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.dbt.cloud.TriggerRun" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.dremio.Query" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.googleworkspace.drive.Create" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.googleworkspace.drive.Delete" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.googleworkspace.drive.Download" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.googleworkspace.drive.Export" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.googleworkspace.drive.List" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.googleworkspace.drive.Upload" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.googleworkspace.sheets.Read" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.googleworkspace.sheets.ReadRange" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.airbyte.cloud.jobs.Reset" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.airbyte.cloud.jobs.Sync" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.airbyte.connections.CheckStatus" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.airbyte.connections.Sync" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.fivetran.connectors.Sync" + }, + { + "$dynamic": false + } + ] + } + ] + } + }, + "timeout": { + "type": "string", + "format": "duration" + }, + "type": { + "const": "io.kestra.plugin.core.flow.Parallel" + }, + "workerGroup": { + "$ref": "#/definitions/io.kestra.core.models.tasks.WorkerGroup" + } + }, + "required": ["id", "tasks", "type"], + "title": "Run tasks in parallel.", + "markdownDescription": "This task runs all child tasks in parallel.##### Examples\n\u003E \n```yaml\nid: parallel\nnamespace: company.team\n\ntasks:\n - id: parallel\n type: io.kestra.plugin.core.flow.Parallel\n tasks:\n - id: 1st\n type: io.kestra.plugin.core.debug.Return\n format: \"{{ task.id }} \u003E {{ taskrun.startDate }}\"\n - id: 2nd\n type: io.kestra.plugin.core.debug.Return\n format: \"{{ task.id }} \u003E {{ taskrun.id }}\"\n - id: last\n type: io.kestra.plugin.core.debug.Return\n format: \"{{ task.id }} \u003E {{ taskrun.startDate }}\"\n```" + }, + "io.kestra.plugin.core.flow.Pause": { + "type": "object", + "properties": { + "allowFailure": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "delay": { + "$dynamic": false, + "type": "string", + "format": "duration", + "title": "Duration of the pause — useful if you want to pause the execution for a fixed amount of time.", + "markdownDescription": "If no delay and no timeout are configured, the execution will never end until it's manually resumed from the UI or API." + }, + "description": { + "type": "string" + }, + "disabled": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "errors": { + "$dynamic": false, + "title": "List of tasks to run if any tasks failed on this FlowableTask.", + "type": "array", + "items": { + "oneOf": [ + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.debug.Echo" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.debug.Return" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.execution.Count" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.execution.Fail" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.execution.Labels" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.execution.PurgeExecutions" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.execution.Resume" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.flow.AllowFailure" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.flow.Dag" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.flow.EachParallel" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.flow.EachSequential" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.flow.ForEach" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.flow.ForEachItem" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.flow.If" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.flow.Parallel" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.flow.Pause" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.flow.Sequential" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.flow.Subflow" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.flow.Switch" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.flow.Template" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.flow.WaitFor" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.flow.WorkingDirectory" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.http.Download" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.http.Request" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.kv.Delete" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.kv.Get" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.kv.GetKeys" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.kv.Set" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.log.Fetch" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.log.Log" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.log.PurgeLogs" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.namespace.DeleteFiles" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.namespace.DownloadFiles" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.namespace.UploadFiles" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.output.OutputValues" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.state.Delete" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.state.Get" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.state.Set" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.storage.Concat" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.storage.DeduplicateItems" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.storage.Delete" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.storage.FilterItems" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.storage.LocalFiles" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.storage.PurgeCurrentExecutionFiles" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.storage.Reverse" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.storage.Size" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.storage.Split" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.templating.TemplatedTask" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.trigger.Toggle" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.hightouch.Sync" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.github.code.Search" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.github.commits.Search" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.github.issues.Comment" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.github.issues.Create" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.github.issues.Search" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.github.pulls.Create" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.github.pulls.Search" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.github.repositories.Search" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.github.topics.Search" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.github.users.Search" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.druid.Query" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.weaviate.BatchCreate" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.weaviate.Delete" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.weaviate.Query" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.weaviate.SchemaCreate" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.spark.JarSubmit" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.spark.PythonSubmit" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.spark.RSubmit" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.spark.SparkCLI" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.auth.OauthAccessToken" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.bigquery.Copy" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.bigquery.CopyPartitions" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.bigquery.CreateDataset" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.bigquery.CreateTable" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.bigquery.DeleteDataset" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.bigquery.DeletePartitions" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.bigquery.DeleteTable" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.bigquery.ExtractToGcs" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.bigquery.Load" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.bigquery.LoadFromGcs" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.bigquery.Query" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.bigquery.StorageWrite" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.bigquery.TableMetadata" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.bigquery.UpdateDataset" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.bigquery.UpdateTable" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.cli.GCloudCLI" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.dataproc.batches.PySparkSubmit" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.dataproc.batches.RSparkSubmit" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.dataproc.batches.SparkSqlSubmit" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.dataproc.batches.SparkSubmit" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.firestore.Delete" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.firestore.Get" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.firestore.Query" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.firestore.Set" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.gcs.Compose" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.gcs.Copy" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.gcs.CreateBucket" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.gcs.CreateBucketIamPolicy" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.gcs.Delete" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.gcs.DeleteBucket" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.gcs.DeleteList" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.gcs.Download" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.gcs.Downloads" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.gcs.List" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.gcs.UpdateBucket" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.gcs.Upload" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.gke.ClusterMetadata" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.pubsub.Consume" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.pubsub.Publish" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.vertexai.ChatCompletion" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.vertexai.CustomJob" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.vertexai.MultimodalCompletion" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.vertexai.TextCompletion" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.db2.Query" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.minio.Copy" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.minio.CreateBucket" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.minio.Delete" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.minio.DeleteList" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.minio.Download" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.minio.Downloads" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.minio.List" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.minio.Upload" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.soda.Scan" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.modal.cli.ModalCLI" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.rockset.Query" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.scripts.nashorn.Eval" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.scripts.nashorn.FileTransform" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.scripts.ruby.Commands" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.scripts.ruby.Script" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.mongodb.Bulk" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.mongodb.Delete" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.mongodb.Find" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.mongodb.InsertOne" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.mongodb.Load" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.mongodb.Update" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.debezium.postgres.Capture" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.BigQuery" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.BingAds" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.ChargeBee" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.ExchangeRateHost" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.FacebookAds" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.Fastly" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.GenericTap" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.GitHub" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.Gitlab" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.GoogleAdwords" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.GoogleAnalytics" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.GoogleSearchConsole" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.HubSpot" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.Marketo" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.Netsuite" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.PipelinewiseMongoDb" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.PipelinewiseMysql" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.PipelinewiseOracle" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.PipelinewisePostgres" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.PipelinewiseSqlServer" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.Quickbooks" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.Recharge" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.SageIntacct" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.Salesforce" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.Shopify" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.Slack" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.Stripe" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.Zendesk" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.Zoom" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.targets.AdswerveBigQuery" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.targets.Csv" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.targets.DatamillCoPostgres" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.targets.GenericTarget" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.targets.Json" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.targets.MeltanoSnowflake" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.targets.Oracle" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.targets.PipelinewisePostgres" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.targets.PipelinewiseRedshift" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.targets.PipelinewiseSnowflake" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.targets.SqlServer" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.scripts.julia.Commands" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.scripts.julia.Script" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.trino.Query" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.compress.ArchiveCompress" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.compress.ArchiveDecompress" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.compress.FileCompress" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.compress.FileDecompress" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.duckdb.Query" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.dataform.cli.DataformCLI" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.couchbase.Query" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.serdes.avro.AvroToIon" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.serdes.avro.IonToAvro" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.serdes.csv.CsvToIon" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.serdes.csv.IonToCsv" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.serdes.excel.ExcelToIon" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.serdes.excel.IonToExcel" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.serdes.json.IonToJson" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.serdes.json.JsonToIon" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.serdes.parquet.IonToParquet" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.serdes.parquet.ParquetToIon" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.serdes.xml.IonToXml" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.serdes.xml.XmlToIon" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.sqlserver.Batch" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.sqlserver.Query" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.powerbi.RefreshGroupDataset" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.core.tasks.scripts.Node" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.scripts.node.Commands" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.scripts.node.Script" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.docker.Build" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.docker.Run" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.oracle.Batch" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.oracle.Query" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.zendesk.tickets.Create" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.debezium.mysql.Capture" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.debezium.sqlserver.Capture" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.cassandra.astradb.Query" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.cassandra.standard.Query" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.openai.ChatCompletion" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.openai.CreateImage" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.postgresql.Batch" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.postgresql.CopyIn" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.postgresql.CopyOut" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.postgresql.Query" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.core.tasks.scripts.Bash" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.scripts.shell.Commands" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.scripts.shell.Script" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.scripts.r.Commands" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.scripts.r.Script" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.debezium.db2.Capture" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.tika.Parse" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jira.issues.Create" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jira.issues.CreateComment" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.debezium.oracle.Capture" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.git.Clone" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.git.Push" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.git.PushFlows" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.git.PushNamespaceFiles" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.git.Sync" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.git.SyncFlows" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.git.SyncNamespaceFiles" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.servicenow.Post" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.sybase.Query" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.as400.Query" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.clickhouse.BulkInsert" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.clickhouse.Query" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.scripts.groovy.Eval" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.scripts.groovy.FileTransform" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.redis.list.ListPop" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.redis.list.ListPush" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.redis.pubsub.Publish" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.redis.string.Delete" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.redis.string.Get" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.redis.string.Set" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.linear.issues.Create" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.malloy.CLI" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.neo4j.Batch" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.neo4j.Query" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.hubspot.tickets.Create" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.scripts.powershell.Commands" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.scripts.powershell.Script" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.cloudquery.CloudQueryCLI" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.cloudquery.Sync" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.nats.Consume" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.nats.Produce" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.amqp.Consume" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.amqp.CreateQueue" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.amqp.DeclareExchange" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.amqp.Publish" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.amqp.QueueBind" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.notifications.discord.DiscordExecution" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.notifications.discord.DiscordIncomingWebhook" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.notifications.google.GoogleChatExecution" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.notifications.google.GoogleChatIncomingWebhook" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.notifications.mail.MailExecution" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.notifications.mail.MailSend" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.notifications.opsgenie.OpsgenieAlert" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.notifications.opsgenie.OpsgenieExecution" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.notifications.pagerduty.PagerDutyAlert" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.notifications.pagerduty.PagerDutyExecution" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.notifications.sendgrid.SendGridMailExecution" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.notifications.sendgrid.SendGridMailSend" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.notifications.sentry.SentryAlert" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.notifications.sentry.SentryExecution" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.notifications.slack.SlackExecution" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.notifications.slack.SlackIncomingWebhook" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.notifications.teams.TeamsExecution" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.notifications.teams.TeamsIncomingWebhook" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.notifications.telegram.TelegramExecution" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.notifications.telegram.TelegramSend" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.notifications.twilio.TwilioAlert" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.notifications.twilio.TwilioExecution" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.notifications.whatsapp.WhatsAppExecution" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.notifications.whatsapp.WhatsAppIncomingWebhook" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.notifications.zenduty.ZendutyAlert" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.notifications.zenduty.ZendutyExecution" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.azure.batch.job.Create" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.azure.batch.pool.Resize" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.azure.cli.AzCLI" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.azure.eventhubs.Consume" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.azure.eventhubs.Produce" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.azure.storage.blob.Copy" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.azure.storage.blob.Delete" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.azure.storage.blob.DeleteList" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.azure.storage.blob.Download" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.azure.storage.blob.Downloads" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.azure.storage.blob.List" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.azure.storage.blob.SharedAccess" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.azure.storage.blob.Upload" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.azure.storage.table.Bulk" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.azure.storage.table.Delete" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.azure.storage.table.Get" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.azure.storage.table.List" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.transform.grok.TransformItems" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.transform.grok.TransformValue" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.kubernetes.PodCreate" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.kubernetes.kubectl.Apply" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.transform.jsonata.TransformItems" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.transform.jsonata.TransformValue" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.vertica.Batch" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.vertica.Query" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.solace.Consume" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.solace.Produce" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.ansible.cli.AnsibleCLI" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.elasticsearch.Bulk" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.elasticsearch.Get" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.elasticsearch.Load" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.elasticsearch.Put" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.elasticsearch.Request" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.elasticsearch.Scroll" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.elasticsearch.Search" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.pinot.Query" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.aws.athena.Query" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.aws.cli.AwsCLI" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.aws.dynamodb.DeleteItem" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.aws.dynamodb.GetItem" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.aws.dynamodb.PutItem" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.aws.dynamodb.Query" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.aws.dynamodb.Scan" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.aws.ecr.GetAuthToken" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.aws.eventbridge.PutEvents" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.aws.kinesis.PutRecords" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.aws.lambda.Invoke" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.aws.s3.Copy" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.aws.s3.CreateBucket" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.aws.s3.Delete" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.aws.s3.DeleteList" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.aws.s3.Download" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.aws.s3.Downloads" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.aws.s3.List" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.aws.s3.Upload" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.aws.sns.Publish" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.aws.sqs.Consume" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.aws.sqs.Publish" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.sqlmesh.cli.SQLMeshCLI" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.surrealdb.Query" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.vectorwise.Batch" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.vectorwise.Query" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.arrowflight.Query" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.terraform.cli.TerraformCLI" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.debezium.mongodb.Capture" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.fs.ftp.Delete" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.fs.ftp.Download" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.fs.ftp.Downloads" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.fs.ftp.List" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.fs.ftp.Move" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.fs.ftp.Upload" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.fs.ftp.Uploads" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.fs.ftps.Delete" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.fs.ftps.Download" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.fs.ftps.Downloads" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.fs.ftps.List" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.fs.ftps.Move" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.fs.ftps.Upload" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.fs.ftps.Uploads" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.fs.sftp.Delete" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.fs.sftp.Download" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.fs.sftp.Downloads" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.fs.sftp.List" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.fs.sftp.Move" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.fs.sftp.Upload" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.fs.sftp.Uploads" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.fs.smb.Delete" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.fs.smb.Download" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.fs.smb.Downloads" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.fs.smb.List" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.fs.smb.Move" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.fs.smb.Upload" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.fs.smb.Uploads" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.fs.ssh.Command" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.kafka.Consume" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.kafka.Produce" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.airflow.dags.TriggerDagRun" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.core.tasks.scripts.Python" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.scripts.python.Commands" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.scripts.python.Script" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.crypto.openpgp.Decrypt" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.crypto.openpgp.Encrypt" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.scripts.jython.Eval" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.scripts.jython.FileTransform" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.mysql.Batch" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.mysql.Query" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.snowflake.Download" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.snowflake.Query" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.snowflake.Upload" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.redshift.Query" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.ldap.Add" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.ldap.Delete" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.ldap.IonToLdif" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.ldap.LdifToIon" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.ldap.Modify" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.ldap.Search" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.databricks.cluster.CreateCluster" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.databricks.cluster.DeleteCluster" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.databricks.dbfs.Download" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.databricks.dbfs.Upload" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.databricks.job.CreateJob" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.databricks.job.SubmitRun" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.databricks.sql.Query" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.sqlite.Query" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.mqtt.Publish" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.mqtt.Subscribe" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.pulsar.Consume" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.pulsar.Produce" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.pulsar.Reader" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.dbt.cli.Build" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.dbt.cli.Compile" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.dbt.cli.DbtCLI" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.dbt.cli.Deps" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.dbt.cli.Freshness" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.dbt.cli.List" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.dbt.cli.Run" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.dbt.cli.Seed" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.dbt.cli.Setup" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.dbt.cli.Snapshot" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.dbt.cli.Test" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.dbt.cloud.CheckStatus" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.dbt.cloud.TriggerRun" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.dremio.Query" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.googleworkspace.drive.Create" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.googleworkspace.drive.Delete" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.googleworkspace.drive.Download" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.googleworkspace.drive.Export" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.googleworkspace.drive.List" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.googleworkspace.drive.Upload" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.googleworkspace.sheets.Read" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.googleworkspace.sheets.ReadRange" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.airbyte.cloud.jobs.Reset" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.airbyte.cloud.jobs.Sync" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.airbyte.connections.CheckStatus" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.airbyte.connections.Sync" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.fivetran.connectors.Sync" + }, + { + "$dynamic": false + } + ] + } + ] + } + }, + "id": { + "type": "string", + "minLength": 1, + "pattern": "^[a-zA-Z0-9][a-zA-Z0-9_-]*" + }, + "logLevel": { + "type": "string", + "enum": ["ERROR", "WARN", "INFO", "DEBUG", "TRACE"] + }, + "onResume": { + "$dynamic": false, + "title": "Inputs to be passed to the execution when it's resumed.", + "markdownDescription": "Before resuming the execution, the user will be prompted to fill in these inputs. The inputs can be used to pass additional data to the execution which is useful for human-in-the-loop scenarios. The `onResume` inputs work the same way as regular [flow inputs](https://kestra.io/docs/workflow-components/inputs) — they can be of any type and can have default values. You can access those values in downstream tasks using the `onResume` output of the Pause task.", + "type": "array", + "items": { + "oneOf": [ + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.core.models.flows.input.ArrayInput-2" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.core.models.flows.input.BooleanInput-2" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.core.models.flows.input.DateInput-2" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.core.models.flows.input.DateTimeInput-2" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.core.models.flows.input.DurationInput-2" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.core.models.flows.input.FileInput-2" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.core.models.flows.input.FloatInput-2" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.core.models.flows.input.IntInput-2" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.core.models.flows.input.JsonInput-2" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.core.models.flows.input.SecretInput-2" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.core.models.flows.input.StringInput-2" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.core.models.flows.input.EnumInput-2" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.core.models.flows.input.SelectInput-2" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.core.models.flows.input.TimeInput-2" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.core.models.flows.input.URIInput-2" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.core.models.flows.input.MultiselectInput-2" + }, + { + "$dynamic": false + } + ] + } + ] + } + }, + "retry": { + "oneOf": [ + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Constant-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Exponential-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Random-2" + } + ] + }, + "tasks": { + "$deprecated": true, + "$dynamic": false, + "type": "array", + "items": { + "oneOf": [ + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.debug.Echo" + }, + { + "$deprecated": true, + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.debug.Return" + }, + { + "$deprecated": true, + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.execution.Count" + }, + { + "$deprecated": true, + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.execution.Fail" + }, + { + "$deprecated": true, + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.execution.Labels" + }, + { + "$deprecated": true, + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.execution.PurgeExecutions" + }, + { + "$deprecated": true, + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.execution.Resume" + }, + { + "$deprecated": true, + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.flow.AllowFailure" + }, + { + "$deprecated": true, + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.flow.Dag" + }, + { + "$deprecated": true, + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.flow.EachParallel" + }, + { + "$deprecated": true, + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.flow.EachSequential" + }, + { + "$deprecated": true, + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.flow.ForEach" + }, + { + "$deprecated": true, + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.flow.ForEachItem" + }, + { + "$deprecated": true, + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.flow.If" + }, + { + "$deprecated": true, + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.flow.Parallel" + }, + { + "$deprecated": true, + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.flow.Pause" + }, + { + "$deprecated": true, + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.flow.Sequential" + }, + { + "$deprecated": true, + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.flow.Subflow" + }, + { + "$deprecated": true, + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.flow.Switch" + }, + { + "$deprecated": true, + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.flow.Template" + }, + { + "$deprecated": true, + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.flow.WaitFor" + }, + { + "$deprecated": true, + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.flow.WorkingDirectory" + }, + { + "$deprecated": true, + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.http.Download" + }, + { + "$deprecated": true, + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.http.Request" + }, + { + "$deprecated": true, + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.kv.Delete" + }, + { + "$deprecated": true, + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.kv.Get" + }, + { + "$deprecated": true, + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.kv.GetKeys" + }, + { + "$deprecated": true, + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.kv.Set" + }, + { + "$deprecated": true, + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.log.Fetch" + }, + { + "$deprecated": true, + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.log.Log" + }, + { + "$deprecated": true, + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.log.PurgeLogs" + }, + { + "$deprecated": true, + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.namespace.DeleteFiles" + }, + { + "$deprecated": true, + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.namespace.DownloadFiles" + }, + { + "$deprecated": true, + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.namespace.UploadFiles" + }, + { + "$deprecated": true, + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.output.OutputValues" + }, + { + "$deprecated": true, + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.state.Delete" + }, + { + "$deprecated": true, + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.state.Get" + }, + { + "$deprecated": true, + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.state.Set" + }, + { + "$deprecated": true, + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.storage.Concat" + }, + { + "$deprecated": true, + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.storage.DeduplicateItems" + }, + { + "$deprecated": true, + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.storage.Delete" + }, + { + "$deprecated": true, + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.storage.FilterItems" + }, + { + "$deprecated": true, + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.storage.LocalFiles" + }, + { + "$deprecated": true, + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.storage.PurgeCurrentExecutionFiles" + }, + { + "$deprecated": true, + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.storage.Reverse" + }, + { + "$deprecated": true, + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.storage.Size" + }, + { + "$deprecated": true, + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.storage.Split" + }, + { + "$deprecated": true, + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.templating.TemplatedTask" + }, + { + "$deprecated": true, + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.trigger.Toggle" + }, + { + "$deprecated": true, + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.hightouch.Sync" + }, + { + "$deprecated": true, + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.github.code.Search" + }, + { + "$deprecated": true, + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.github.commits.Search" + }, + { + "$deprecated": true, + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.github.issues.Comment" + }, + { + "$deprecated": true, + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.github.issues.Create" + }, + { + "$deprecated": true, + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.github.issues.Search" + }, + { + "$deprecated": true, + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.github.pulls.Create" + }, + { + "$deprecated": true, + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.github.pulls.Search" + }, + { + "$deprecated": true, + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.github.repositories.Search" + }, + { + "$deprecated": true, + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.github.topics.Search" + }, + { + "$deprecated": true, + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.github.users.Search" + }, + { + "$deprecated": true, + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.druid.Query" + }, + { + "$deprecated": true, + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.weaviate.BatchCreate" + }, + { + "$deprecated": true, + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.weaviate.Delete" + }, + { + "$deprecated": true, + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.weaviate.Query" + }, + { + "$deprecated": true, + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.weaviate.SchemaCreate" + }, + { + "$deprecated": true, + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.spark.JarSubmit" + }, + { + "$deprecated": true, + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.spark.PythonSubmit" + }, + { + "$deprecated": true, + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.spark.RSubmit" + }, + { + "$deprecated": true, + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.spark.SparkCLI" + }, + { + "$deprecated": true, + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.auth.OauthAccessToken" + }, + { + "$deprecated": true, + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.bigquery.Copy" + }, + { + "$deprecated": true, + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.bigquery.CopyPartitions" + }, + { + "$deprecated": true, + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.bigquery.CreateDataset" + }, + { + "$deprecated": true, + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.bigquery.CreateTable" + }, + { + "$deprecated": true, + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.bigquery.DeleteDataset" + }, + { + "$deprecated": true, + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.bigquery.DeletePartitions" + }, + { + "$deprecated": true, + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.bigquery.DeleteTable" + }, + { + "$deprecated": true, + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.bigquery.ExtractToGcs" + }, + { + "$deprecated": true, + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.bigquery.Load" + }, + { + "$deprecated": true, + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.bigquery.LoadFromGcs" + }, + { + "$deprecated": true, + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.bigquery.Query" + }, + { + "$deprecated": true, + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.bigquery.StorageWrite" + }, + { + "$deprecated": true, + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.bigquery.TableMetadata" + }, + { + "$deprecated": true, + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.bigquery.UpdateDataset" + }, + { + "$deprecated": true, + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.bigquery.UpdateTable" + }, + { + "$deprecated": true, + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.cli.GCloudCLI" + }, + { + "$deprecated": true, + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.dataproc.batches.PySparkSubmit" + }, + { + "$deprecated": true, + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.dataproc.batches.RSparkSubmit" + }, + { + "$deprecated": true, + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.dataproc.batches.SparkSqlSubmit" + }, + { + "$deprecated": true, + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.dataproc.batches.SparkSubmit" + }, + { + "$deprecated": true, + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.firestore.Delete" + }, + { + "$deprecated": true, + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.firestore.Get" + }, + { + "$deprecated": true, + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.firestore.Query" + }, + { + "$deprecated": true, + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.firestore.Set" + }, + { + "$deprecated": true, + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.gcs.Compose" + }, + { + "$deprecated": true, + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.gcs.Copy" + }, + { + "$deprecated": true, + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.gcs.CreateBucket" + }, + { + "$deprecated": true, + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.gcs.CreateBucketIamPolicy" + }, + { + "$deprecated": true, + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.gcs.Delete" + }, + { + "$deprecated": true, + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.gcs.DeleteBucket" + }, + { + "$deprecated": true, + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.gcs.DeleteList" + }, + { + "$deprecated": true, + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.gcs.Download" + }, + { + "$deprecated": true, + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.gcs.Downloads" + }, + { + "$deprecated": true, + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.gcs.List" + }, + { + "$deprecated": true, + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.gcs.UpdateBucket" + }, + { + "$deprecated": true, + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.gcs.Upload" + }, + { + "$deprecated": true, + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.gke.ClusterMetadata" + }, + { + "$deprecated": true, + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.pubsub.Consume" + }, + { + "$deprecated": true, + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.pubsub.Publish" + }, + { + "$deprecated": true, + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.vertexai.ChatCompletion" + }, + { + "$deprecated": true, + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.vertexai.CustomJob" + }, + { + "$deprecated": true, + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.vertexai.MultimodalCompletion" + }, + { + "$deprecated": true, + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.vertexai.TextCompletion" + }, + { + "$deprecated": true, + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.db2.Query" + }, + { + "$deprecated": true, + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.minio.Copy" + }, + { + "$deprecated": true, + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.minio.CreateBucket" + }, + { + "$deprecated": true, + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.minio.Delete" + }, + { + "$deprecated": true, + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.minio.DeleteList" + }, + { + "$deprecated": true, + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.minio.Download" + }, + { + "$deprecated": true, + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.minio.Downloads" + }, + { + "$deprecated": true, + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.minio.List" + }, + { + "$deprecated": true, + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.minio.Upload" + }, + { + "$deprecated": true, + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.soda.Scan" + }, + { + "$deprecated": true, + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.modal.cli.ModalCLI" + }, + { + "$deprecated": true, + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.rockset.Query" + }, + { + "$deprecated": true, + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.scripts.nashorn.Eval" + }, + { + "$deprecated": true, + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.scripts.nashorn.FileTransform" + }, + { + "$deprecated": true, + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.scripts.ruby.Commands" + }, + { + "$deprecated": true, + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.scripts.ruby.Script" + }, + { + "$deprecated": true, + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.mongodb.Bulk" + }, + { + "$deprecated": true, + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.mongodb.Delete" + }, + { + "$deprecated": true, + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.mongodb.Find" + }, + { + "$deprecated": true, + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.mongodb.InsertOne" + }, + { + "$deprecated": true, + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.mongodb.Load" + }, + { + "$deprecated": true, + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.mongodb.Update" + }, + { + "$deprecated": true, + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.debezium.postgres.Capture" + }, + { + "$deprecated": true, + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.BigQuery" + }, + { + "$deprecated": true, + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.BingAds" + }, + { + "$deprecated": true, + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.ChargeBee" + }, + { + "$deprecated": true, + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.ExchangeRateHost" + }, + { + "$deprecated": true, + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.FacebookAds" + }, + { + "$deprecated": true, + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.Fastly" + }, + { + "$deprecated": true, + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.GenericTap" + }, + { + "$deprecated": true, + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.GitHub" + }, + { + "$deprecated": true, + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.Gitlab" + }, + { + "$deprecated": true, + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.GoogleAdwords" + }, + { + "$deprecated": true, + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.GoogleAnalytics" + }, + { + "$deprecated": true, + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.GoogleSearchConsole" + }, + { + "$deprecated": true, + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.HubSpot" + }, + { + "$deprecated": true, + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.Marketo" + }, + { + "$deprecated": true, + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.Netsuite" + }, + { + "$deprecated": true, + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.PipelinewiseMongoDb" + }, + { + "$deprecated": true, + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.PipelinewiseMysql" + }, + { + "$deprecated": true, + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.PipelinewiseOracle" + }, + { + "$deprecated": true, + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.PipelinewisePostgres" + }, + { + "$deprecated": true, + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.PipelinewiseSqlServer" + }, + { + "$deprecated": true, + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.Quickbooks" + }, + { + "$deprecated": true, + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.Recharge" + }, + { + "$deprecated": true, + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.SageIntacct" + }, + { + "$deprecated": true, + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.Salesforce" + }, + { + "$deprecated": true, + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.Shopify" + }, + { + "$deprecated": true, + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.Slack" + }, + { + "$deprecated": true, + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.Stripe" + }, + { + "$deprecated": true, + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.Zendesk" + }, + { + "$deprecated": true, + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.Zoom" + }, + { + "$deprecated": true, + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.targets.AdswerveBigQuery" + }, + { + "$deprecated": true, + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.targets.Csv" + }, + { + "$deprecated": true, + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.targets.DatamillCoPostgres" + }, + { + "$deprecated": true, + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.targets.GenericTarget" + }, + { + "$deprecated": true, + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.targets.Json" + }, + { + "$deprecated": true, + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.targets.MeltanoSnowflake" + }, + { + "$deprecated": true, + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.targets.Oracle" + }, + { + "$deprecated": true, + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.targets.PipelinewisePostgres" + }, + { + "$deprecated": true, + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.targets.PipelinewiseRedshift" + }, + { + "$deprecated": true, + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.targets.PipelinewiseSnowflake" + }, + { + "$deprecated": true, + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.targets.SqlServer" + }, + { + "$deprecated": true, + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.scripts.julia.Commands" + }, + { + "$deprecated": true, + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.scripts.julia.Script" + }, + { + "$deprecated": true, + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.trino.Query" + }, + { + "$deprecated": true, + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.compress.ArchiveCompress" + }, + { + "$deprecated": true, + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.compress.ArchiveDecompress" + }, + { + "$deprecated": true, + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.compress.FileCompress" + }, + { + "$deprecated": true, + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.compress.FileDecompress" + }, + { + "$deprecated": true, + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.duckdb.Query" + }, + { + "$deprecated": true, + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.dataform.cli.DataformCLI" + }, + { + "$deprecated": true, + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.couchbase.Query" + }, + { + "$deprecated": true, + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.serdes.avro.AvroToIon" + }, + { + "$deprecated": true, + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.serdes.avro.IonToAvro" + }, + { + "$deprecated": true, + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.serdes.csv.CsvToIon" + }, + { + "$deprecated": true, + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.serdes.csv.IonToCsv" + }, + { + "$deprecated": true, + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.serdes.excel.ExcelToIon" + }, + { + "$deprecated": true, + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.serdes.excel.IonToExcel" + }, + { + "$deprecated": true, + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.serdes.json.IonToJson" + }, + { + "$deprecated": true, + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.serdes.json.JsonToIon" + }, + { + "$deprecated": true, + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.serdes.parquet.IonToParquet" + }, + { + "$deprecated": true, + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.serdes.parquet.ParquetToIon" + }, + { + "$deprecated": true, + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.serdes.xml.IonToXml" + }, + { + "$deprecated": true, + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.serdes.xml.XmlToIon" + }, + { + "$deprecated": true, + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.sqlserver.Batch" + }, + { + "$deprecated": true, + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.sqlserver.Query" + }, + { + "$deprecated": true, + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.powerbi.RefreshGroupDataset" + }, + { + "$deprecated": true, + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.core.tasks.scripts.Node" + }, + { + "$deprecated": true, + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.scripts.node.Commands" + }, + { + "$deprecated": true, + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.scripts.node.Script" + }, + { + "$deprecated": true, + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.docker.Build" + }, + { + "$deprecated": true, + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.docker.Run" + }, + { + "$deprecated": true, + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.oracle.Batch" + }, + { + "$deprecated": true, + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.oracle.Query" + }, + { + "$deprecated": true, + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.zendesk.tickets.Create" + }, + { + "$deprecated": true, + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.debezium.mysql.Capture" + }, + { + "$deprecated": true, + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.debezium.sqlserver.Capture" + }, + { + "$deprecated": true, + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.cassandra.astradb.Query" + }, + { + "$deprecated": true, + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.cassandra.standard.Query" + }, + { + "$deprecated": true, + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.openai.ChatCompletion" + }, + { + "$deprecated": true, + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.openai.CreateImage" + }, + { + "$deprecated": true, + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.postgresql.Batch" + }, + { + "$deprecated": true, + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.postgresql.CopyIn" + }, + { + "$deprecated": true, + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.postgresql.CopyOut" + }, + { + "$deprecated": true, + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.postgresql.Query" + }, + { + "$deprecated": true, + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.core.tasks.scripts.Bash" + }, + { + "$deprecated": true, + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.scripts.shell.Commands" + }, + { + "$deprecated": true, + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.scripts.shell.Script" + }, + { + "$deprecated": true, + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.scripts.r.Commands" + }, + { + "$deprecated": true, + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.scripts.r.Script" + }, + { + "$deprecated": true, + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.debezium.db2.Capture" + }, + { + "$deprecated": true, + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.tika.Parse" + }, + { + "$deprecated": true, + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jira.issues.Create" + }, + { + "$deprecated": true, + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jira.issues.CreateComment" + }, + { + "$deprecated": true, + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.debezium.oracle.Capture" + }, + { + "$deprecated": true, + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.git.Clone" + }, + { + "$deprecated": true, + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.git.Push" + }, + { + "$deprecated": true, + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.git.PushFlows" + }, + { + "$deprecated": true, + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.git.PushNamespaceFiles" + }, + { + "$deprecated": true, + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.git.Sync" + }, + { + "$deprecated": true, + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.git.SyncFlows" + }, + { + "$deprecated": true, + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.git.SyncNamespaceFiles" + }, + { + "$deprecated": true, + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.servicenow.Post" + }, + { + "$deprecated": true, + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.sybase.Query" + }, + { + "$deprecated": true, + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.as400.Query" + }, + { + "$deprecated": true, + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.clickhouse.BulkInsert" + }, + { + "$deprecated": true, + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.clickhouse.Query" + }, + { + "$deprecated": true, + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.scripts.groovy.Eval" + }, + { + "$deprecated": true, + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.scripts.groovy.FileTransform" + }, + { + "$deprecated": true, + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.redis.list.ListPop" + }, + { + "$deprecated": true, + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.redis.list.ListPush" + }, + { + "$deprecated": true, + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.redis.pubsub.Publish" + }, + { + "$deprecated": true, + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.redis.string.Delete" + }, + { + "$deprecated": true, + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.redis.string.Get" + }, + { + "$deprecated": true, + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.redis.string.Set" + }, + { + "$deprecated": true, + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.linear.issues.Create" + }, + { + "$deprecated": true, + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.malloy.CLI" + }, + { + "$deprecated": true, + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.neo4j.Batch" + }, + { + "$deprecated": true, + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.neo4j.Query" + }, + { + "$deprecated": true, + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.hubspot.tickets.Create" + }, + { + "$deprecated": true, + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.scripts.powershell.Commands" + }, + { + "$deprecated": true, + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.scripts.powershell.Script" + }, + { + "$deprecated": true, + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.cloudquery.CloudQueryCLI" + }, + { + "$deprecated": true, + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.cloudquery.Sync" + }, + { + "$deprecated": true, + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.nats.Consume" + }, + { + "$deprecated": true, + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.nats.Produce" + }, + { + "$deprecated": true, + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.amqp.Consume" + }, + { + "$deprecated": true, + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.amqp.CreateQueue" + }, + { + "$deprecated": true, + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.amqp.DeclareExchange" + }, + { + "$deprecated": true, + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.amqp.Publish" + }, + { + "$deprecated": true, + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.amqp.QueueBind" + }, + { + "$deprecated": true, + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.notifications.discord.DiscordExecution" + }, + { + "$deprecated": true, + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.notifications.discord.DiscordIncomingWebhook" + }, + { + "$deprecated": true, + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.notifications.google.GoogleChatExecution" + }, + { + "$deprecated": true, + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.notifications.google.GoogleChatIncomingWebhook" + }, + { + "$deprecated": true, + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.notifications.mail.MailExecution" + }, + { + "$deprecated": true, + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.notifications.mail.MailSend" + }, + { + "$deprecated": true, + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.notifications.opsgenie.OpsgenieAlert" + }, + { + "$deprecated": true, + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.notifications.opsgenie.OpsgenieExecution" + }, + { + "$deprecated": true, + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.notifications.pagerduty.PagerDutyAlert" + }, + { + "$deprecated": true, + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.notifications.pagerduty.PagerDutyExecution" + }, + { + "$deprecated": true, + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.notifications.sendgrid.SendGridMailExecution" + }, + { + "$deprecated": true, + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.notifications.sendgrid.SendGridMailSend" + }, + { + "$deprecated": true, + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.notifications.sentry.SentryAlert" + }, + { + "$deprecated": true, + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.notifications.sentry.SentryExecution" + }, + { + "$deprecated": true, + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.notifications.slack.SlackExecution" + }, + { + "$deprecated": true, + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.notifications.slack.SlackIncomingWebhook" + }, + { + "$deprecated": true, + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.notifications.teams.TeamsExecution" + }, + { + "$deprecated": true, + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.notifications.teams.TeamsIncomingWebhook" + }, + { + "$deprecated": true, + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.notifications.telegram.TelegramExecution" + }, + { + "$deprecated": true, + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.notifications.telegram.TelegramSend" + }, + { + "$deprecated": true, + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.notifications.twilio.TwilioAlert" + }, + { + "$deprecated": true, + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.notifications.twilio.TwilioExecution" + }, + { + "$deprecated": true, + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.notifications.whatsapp.WhatsAppExecution" + }, + { + "$deprecated": true, + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.notifications.whatsapp.WhatsAppIncomingWebhook" + }, + { + "$deprecated": true, + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.notifications.zenduty.ZendutyAlert" + }, + { + "$deprecated": true, + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.notifications.zenduty.ZendutyExecution" + }, + { + "$deprecated": true, + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.azure.batch.job.Create" + }, + { + "$deprecated": true, + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.azure.batch.pool.Resize" + }, + { + "$deprecated": true, + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.azure.cli.AzCLI" + }, + { + "$deprecated": true, + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.azure.eventhubs.Consume" + }, + { + "$deprecated": true, + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.azure.eventhubs.Produce" + }, + { + "$deprecated": true, + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.azure.storage.blob.Copy" + }, + { + "$deprecated": true, + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.azure.storage.blob.Delete" + }, + { + "$deprecated": true, + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.azure.storage.blob.DeleteList" + }, + { + "$deprecated": true, + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.azure.storage.blob.Download" + }, + { + "$deprecated": true, + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.azure.storage.blob.Downloads" + }, + { + "$deprecated": true, + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.azure.storage.blob.List" + }, + { + "$deprecated": true, + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.azure.storage.blob.SharedAccess" + }, + { + "$deprecated": true, + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.azure.storage.blob.Upload" + }, + { + "$deprecated": true, + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.azure.storage.table.Bulk" + }, + { + "$deprecated": true, + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.azure.storage.table.Delete" + }, + { + "$deprecated": true, + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.azure.storage.table.Get" + }, + { + "$deprecated": true, + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.azure.storage.table.List" + }, + { + "$deprecated": true, + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.transform.grok.TransformItems" + }, + { + "$deprecated": true, + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.transform.grok.TransformValue" + }, + { + "$deprecated": true, + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.kubernetes.PodCreate" + }, + { + "$deprecated": true, + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.kubernetes.kubectl.Apply" + }, + { + "$deprecated": true, + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.transform.jsonata.TransformItems" + }, + { + "$deprecated": true, + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.transform.jsonata.TransformValue" + }, + { + "$deprecated": true, + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.vertica.Batch" + }, + { + "$deprecated": true, + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.vertica.Query" + }, + { + "$deprecated": true, + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.solace.Consume" + }, + { + "$deprecated": true, + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.solace.Produce" + }, + { + "$deprecated": true, + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.ansible.cli.AnsibleCLI" + }, + { + "$deprecated": true, + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.elasticsearch.Bulk" + }, + { + "$deprecated": true, + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.elasticsearch.Get" + }, + { + "$deprecated": true, + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.elasticsearch.Load" + }, + { + "$deprecated": true, + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.elasticsearch.Put" + }, + { + "$deprecated": true, + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.elasticsearch.Request" + }, + { + "$deprecated": true, + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.elasticsearch.Scroll" + }, + { + "$deprecated": true, + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.elasticsearch.Search" + }, + { + "$deprecated": true, + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.pinot.Query" + }, + { + "$deprecated": true, + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.aws.athena.Query" + }, + { + "$deprecated": true, + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.aws.cli.AwsCLI" + }, + { + "$deprecated": true, + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.aws.dynamodb.DeleteItem" + }, + { + "$deprecated": true, + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.aws.dynamodb.GetItem" + }, + { + "$deprecated": true, + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.aws.dynamodb.PutItem" + }, + { + "$deprecated": true, + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.aws.dynamodb.Query" + }, + { + "$deprecated": true, + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.aws.dynamodb.Scan" + }, + { + "$deprecated": true, + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.aws.ecr.GetAuthToken" + }, + { + "$deprecated": true, + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.aws.eventbridge.PutEvents" + }, + { + "$deprecated": true, + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.aws.kinesis.PutRecords" + }, + { + "$deprecated": true, + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.aws.lambda.Invoke" + }, + { + "$deprecated": true, + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.aws.s3.Copy" + }, + { + "$deprecated": true, + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.aws.s3.CreateBucket" + }, + { + "$deprecated": true, + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.aws.s3.Delete" + }, + { + "$deprecated": true, + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.aws.s3.DeleteList" + }, + { + "$deprecated": true, + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.aws.s3.Download" + }, + { + "$deprecated": true, + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.aws.s3.Downloads" + }, + { + "$deprecated": true, + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.aws.s3.List" + }, + { + "$deprecated": true, + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.aws.s3.Upload" + }, + { + "$deprecated": true, + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.aws.sns.Publish" + }, + { + "$deprecated": true, + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.aws.sqs.Consume" + }, + { + "$deprecated": true, + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.aws.sqs.Publish" + }, + { + "$deprecated": true, + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.sqlmesh.cli.SQLMeshCLI" + }, + { + "$deprecated": true, + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.surrealdb.Query" + }, + { + "$deprecated": true, + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.vectorwise.Batch" + }, + { + "$deprecated": true, + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.vectorwise.Query" + }, + { + "$deprecated": true, + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.arrowflight.Query" + }, + { + "$deprecated": true, + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.terraform.cli.TerraformCLI" + }, + { + "$deprecated": true, + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.debezium.mongodb.Capture" + }, + { + "$deprecated": true, + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.fs.ftp.Delete" + }, + { + "$deprecated": true, + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.fs.ftp.Download" + }, + { + "$deprecated": true, + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.fs.ftp.Downloads" + }, + { + "$deprecated": true, + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.fs.ftp.List" + }, + { + "$deprecated": true, + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.fs.ftp.Move" + }, + { + "$deprecated": true, + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.fs.ftp.Upload" + }, + { + "$deprecated": true, + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.fs.ftp.Uploads" + }, + { + "$deprecated": true, + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.fs.ftps.Delete" + }, + { + "$deprecated": true, + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.fs.ftps.Download" + }, + { + "$deprecated": true, + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.fs.ftps.Downloads" + }, + { + "$deprecated": true, + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.fs.ftps.List" + }, + { + "$deprecated": true, + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.fs.ftps.Move" + }, + { + "$deprecated": true, + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.fs.ftps.Upload" + }, + { + "$deprecated": true, + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.fs.ftps.Uploads" + }, + { + "$deprecated": true, + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.fs.sftp.Delete" + }, + { + "$deprecated": true, + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.fs.sftp.Download" + }, + { + "$deprecated": true, + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.fs.sftp.Downloads" + }, + { + "$deprecated": true, + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.fs.sftp.List" + }, + { + "$deprecated": true, + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.fs.sftp.Move" + }, + { + "$deprecated": true, + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.fs.sftp.Upload" + }, + { + "$deprecated": true, + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.fs.sftp.Uploads" + }, + { + "$deprecated": true, + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.fs.smb.Delete" + }, + { + "$deprecated": true, + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.fs.smb.Download" + }, + { + "$deprecated": true, + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.fs.smb.Downloads" + }, + { + "$deprecated": true, + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.fs.smb.List" + }, + { + "$deprecated": true, + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.fs.smb.Move" + }, + { + "$deprecated": true, + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.fs.smb.Upload" + }, + { + "$deprecated": true, + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.fs.smb.Uploads" + }, + { + "$deprecated": true, + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.fs.ssh.Command" + }, + { + "$deprecated": true, + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.kafka.Consume" + }, + { + "$deprecated": true, + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.kafka.Produce" + }, + { + "$deprecated": true, + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.airflow.dags.TriggerDagRun" + }, + { + "$deprecated": true, + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.core.tasks.scripts.Python" + }, + { + "$deprecated": true, + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.scripts.python.Commands" + }, + { + "$deprecated": true, + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.scripts.python.Script" + }, + { + "$deprecated": true, + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.crypto.openpgp.Decrypt" + }, + { + "$deprecated": true, + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.crypto.openpgp.Encrypt" + }, + { + "$deprecated": true, + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.scripts.jython.Eval" + }, + { + "$deprecated": true, + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.scripts.jython.FileTransform" + }, + { + "$deprecated": true, + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.mysql.Batch" + }, + { + "$deprecated": true, + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.mysql.Query" + }, + { + "$deprecated": true, + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.snowflake.Download" + }, + { + "$deprecated": true, + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.snowflake.Query" + }, + { + "$deprecated": true, + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.snowflake.Upload" + }, + { + "$deprecated": true, + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.redshift.Query" + }, + { + "$deprecated": true, + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.ldap.Add" + }, + { + "$deprecated": true, + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.ldap.Delete" + }, + { + "$deprecated": true, + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.ldap.IonToLdif" + }, + { + "$deprecated": true, + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.ldap.LdifToIon" + }, + { + "$deprecated": true, + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.ldap.Modify" + }, + { + "$deprecated": true, + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.ldap.Search" + }, + { + "$deprecated": true, + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.databricks.cluster.CreateCluster" + }, + { + "$deprecated": true, + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.databricks.cluster.DeleteCluster" + }, + { + "$deprecated": true, + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.databricks.dbfs.Download" + }, + { + "$deprecated": true, + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.databricks.dbfs.Upload" + }, + { + "$deprecated": true, + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.databricks.job.CreateJob" + }, + { + "$deprecated": true, + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.databricks.job.SubmitRun" + }, + { + "$deprecated": true, + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.databricks.sql.Query" + }, + { + "$deprecated": true, + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.sqlite.Query" + }, + { + "$deprecated": true, + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.mqtt.Publish" + }, + { + "$deprecated": true, + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.mqtt.Subscribe" + }, + { + "$deprecated": true, + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.pulsar.Consume" + }, + { + "$deprecated": true, + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.pulsar.Produce" + }, + { + "$deprecated": true, + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.pulsar.Reader" + }, + { + "$deprecated": true, + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.dbt.cli.Build" + }, + { + "$deprecated": true, + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.dbt.cli.Compile" + }, + { + "$deprecated": true, + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.dbt.cli.DbtCLI" + }, + { + "$deprecated": true, + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.dbt.cli.Deps" + }, + { + "$deprecated": true, + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.dbt.cli.Freshness" + }, + { + "$deprecated": true, + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.dbt.cli.List" + }, + { + "$deprecated": true, + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.dbt.cli.Run" + }, + { + "$deprecated": true, + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.dbt.cli.Seed" + }, + { + "$deprecated": true, + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.dbt.cli.Setup" + }, + { + "$deprecated": true, + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.dbt.cli.Snapshot" + }, + { + "$deprecated": true, + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.dbt.cli.Test" + }, + { + "$deprecated": true, + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.dbt.cloud.CheckStatus" + }, + { + "$deprecated": true, + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.dbt.cloud.TriggerRun" + }, + { + "$deprecated": true, + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.dremio.Query" + }, + { + "$deprecated": true, + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.googleworkspace.drive.Create" + }, + { + "$deprecated": true, + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.googleworkspace.drive.Delete" + }, + { + "$deprecated": true, + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.googleworkspace.drive.Download" + }, + { + "$deprecated": true, + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.googleworkspace.drive.Export" + }, + { + "$deprecated": true, + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.googleworkspace.drive.List" + }, + { + "$deprecated": true, + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.googleworkspace.drive.Upload" + }, + { + "$deprecated": true, + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.googleworkspace.sheets.Read" + }, + { + "$deprecated": true, + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.googleworkspace.sheets.ReadRange" + }, + { + "$deprecated": true, + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.airbyte.cloud.jobs.Reset" + }, + { + "$deprecated": true, + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.airbyte.cloud.jobs.Sync" + }, + { + "$deprecated": true, + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.airbyte.connections.CheckStatus" + }, + { + "$deprecated": true, + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.airbyte.connections.Sync" + }, + { + "$deprecated": true, + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.fivetran.connectors.Sync" + }, + { + "$deprecated": true, + "$dynamic": false + } + ] + } + ] + } + }, + "timeout": { + "$dynamic": false, + "type": "string", + "format": "duration", + "title": "Timeout of the pause — useful to avoid never-ending workflows in a human-in-the-loop scenario. For example, if you want to pause the execution until a human validates some data generated in a previous task, you can set a timeout of e.g. 24 hours. If no manual approval happens within 24 hours, the execution will automatically resume without a prior data validation.", + "markdownDescription": "If no delay and no timeout are configured, the execution will never end until it's manually resumed from the UI or API." + }, + "type": { + "const": "io.kestra.plugin.core.flow.Pause" + }, + "workerGroup": { + "$ref": "#/definitions/io.kestra.core.models.tasks.WorkerGroup" + } + }, + "required": ["id", "type"], + "title": "Pause the current execution and wait for a manual approval (either by humans or other automated processes). All tasks downstream from the Pause task will be put on hold until the execution is manually resumed from the UI. The Execution will be in a Paused state (_marked in purple_) and you can manually resume it by clicking on the \"Resume\" button in the UI, or by calling the POST API endpoint \"/api/v1/executions/{executionId}/resume\". The execution can also be resumed automatically after a timeout.", + "markdownDescription": "##### Examples\n\u003E Pause the execution and wait for a manual approval\n```yaml\nid: human_in_the_loop\nnamespace: company.team\n\ntasks:\n - id: before_approval\n type: io.kestra.plugin.core.debug.Return\n format: Output data that needs to be validated by a human\n\n - id: pause\n type: io.kestra.plugin.core.flow.Pause\n\n - id: run_post_approval\n type: io.kestra.plugin.scripts.shell.Commands\n runner: PROCESS\n commands:\n - echo \"Manual approval received! Continuing the execution...\"\n\n - id: post_resume\n type: io.kestra.plugin.core.debug.Return\n format: \"{{ task.id }} started on {{ taskrun.startDate }} after the Pause\"\n\n```\n\n\u003E Vacation approval process pausing the execution for approval and waiting for input from a human to approve or reject the request.\n```yaml\nid: vacation_approval_process\nnamespace: company.team\n\ninputs:\n - id: request.name\n type: STRING\n defaults: Rick Astley\n\n - id: request.start_date\n type: DATE\n defaults: 2042-07-01\n\n - id: request.end_date\n type: DATE\n defaults: 2042-07-07\n\n - id: slack_webhook_uri\n type: URI\n defaults: https://reqres.in/api/slack\n\ntasks:\n - id: send_approval_request\n type: io.kestra.plugin.notifications.slack.SlackIncomingWebhook\n url: \"{{ inputs.slack_webhook_uri }}\"\n payload: |\n {\n \"channel\": \"#vacation\",\n \"text\": \"Validate holiday request for {{ inputs.request.name }}. To approve the request, click on the `Resume` button here http://localhost:28080/ui/executions/{{flow.namespace}}/{{flow.id}}/{{execution.id}}\"\n }\n\n - id: wait_for_approval\n type: io.kestra.plugin.core.flow.Pause\n onResume:\n - id: approved\n description: Whether to approve the request\n type: BOOLEAN\n defaults: true\n - id: reason\n description: Reason for approval or rejection\n type: STRING\n defaults: Well-deserved vacation\n\n - id: approve\n type: io.kestra.plugin.core.http.Request\n uri: https://reqres.in/api/products\n method: POST\n contentType: application/json\n body: \"{{ inputs.request }}\"\n\n - id: log\n type: io.kestra.plugin.core.log.Log\n message: Status is {{ outputs.wait_for_approval.onResume.reason }}. Process finished with {{ outputs.approve.body }}\n\n```" + }, + "io.kestra.plugin.core.flow.Sequential": { + "type": "object", + "properties": { + "allowFailure": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "description": { + "type": "string" + }, + "disabled": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "errors": { + "$dynamic": false, + "title": "List of tasks to run if any tasks failed on this FlowableTask.", + "type": "array", + "items": { + "oneOf": [ + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.debug.Echo" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.debug.Return" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.execution.Count" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.execution.Fail" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.execution.Labels" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.execution.PurgeExecutions" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.execution.Resume" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.flow.AllowFailure" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.flow.Dag" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.flow.EachParallel" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.flow.EachSequential" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.flow.ForEach" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.flow.ForEachItem" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.flow.If" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.flow.Parallel" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.flow.Pause" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.flow.Sequential" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.flow.Subflow" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.flow.Switch" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.flow.Template" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.flow.WaitFor" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.flow.WorkingDirectory" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.http.Download" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.http.Request" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.kv.Delete" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.kv.Get" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.kv.GetKeys" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.kv.Set" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.log.Fetch" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.log.Log" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.log.PurgeLogs" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.namespace.DeleteFiles" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.namespace.DownloadFiles" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.namespace.UploadFiles" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.output.OutputValues" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.state.Delete" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.state.Get" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.state.Set" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.storage.Concat" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.storage.DeduplicateItems" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.storage.Delete" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.storage.FilterItems" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.storage.LocalFiles" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.storage.PurgeCurrentExecutionFiles" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.storage.Reverse" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.storage.Size" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.storage.Split" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.templating.TemplatedTask" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.trigger.Toggle" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.hightouch.Sync" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.github.code.Search" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.github.commits.Search" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.github.issues.Comment" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.github.issues.Create" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.github.issues.Search" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.github.pulls.Create" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.github.pulls.Search" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.github.repositories.Search" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.github.topics.Search" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.github.users.Search" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.druid.Query" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.weaviate.BatchCreate" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.weaviate.Delete" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.weaviate.Query" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.weaviate.SchemaCreate" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.spark.JarSubmit" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.spark.PythonSubmit" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.spark.RSubmit" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.spark.SparkCLI" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.auth.OauthAccessToken" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.bigquery.Copy" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.bigquery.CopyPartitions" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.bigquery.CreateDataset" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.bigquery.CreateTable" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.bigquery.DeleteDataset" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.bigquery.DeletePartitions" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.bigquery.DeleteTable" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.bigquery.ExtractToGcs" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.bigquery.Load" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.bigquery.LoadFromGcs" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.bigquery.Query" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.bigquery.StorageWrite" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.bigquery.TableMetadata" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.bigquery.UpdateDataset" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.bigquery.UpdateTable" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.cli.GCloudCLI" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.dataproc.batches.PySparkSubmit" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.dataproc.batches.RSparkSubmit" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.dataproc.batches.SparkSqlSubmit" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.dataproc.batches.SparkSubmit" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.firestore.Delete" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.firestore.Get" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.firestore.Query" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.firestore.Set" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.gcs.Compose" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.gcs.Copy" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.gcs.CreateBucket" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.gcs.CreateBucketIamPolicy" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.gcs.Delete" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.gcs.DeleteBucket" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.gcs.DeleteList" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.gcs.Download" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.gcs.Downloads" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.gcs.List" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.gcs.UpdateBucket" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.gcs.Upload" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.gke.ClusterMetadata" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.pubsub.Consume" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.pubsub.Publish" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.vertexai.ChatCompletion" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.vertexai.CustomJob" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.vertexai.MultimodalCompletion" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.vertexai.TextCompletion" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.db2.Query" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.minio.Copy" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.minio.CreateBucket" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.minio.Delete" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.minio.DeleteList" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.minio.Download" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.minio.Downloads" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.minio.List" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.minio.Upload" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.soda.Scan" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.modal.cli.ModalCLI" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.rockset.Query" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.scripts.nashorn.Eval" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.scripts.nashorn.FileTransform" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.scripts.ruby.Commands" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.scripts.ruby.Script" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.mongodb.Bulk" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.mongodb.Delete" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.mongodb.Find" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.mongodb.InsertOne" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.mongodb.Load" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.mongodb.Update" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.debezium.postgres.Capture" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.BigQuery" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.BingAds" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.ChargeBee" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.ExchangeRateHost" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.FacebookAds" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.Fastly" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.GenericTap" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.GitHub" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.Gitlab" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.GoogleAdwords" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.GoogleAnalytics" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.GoogleSearchConsole" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.HubSpot" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.Marketo" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.Netsuite" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.PipelinewiseMongoDb" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.PipelinewiseMysql" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.PipelinewiseOracle" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.PipelinewisePostgres" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.PipelinewiseSqlServer" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.Quickbooks" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.Recharge" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.SageIntacct" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.Salesforce" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.Shopify" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.Slack" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.Stripe" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.Zendesk" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.Zoom" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.targets.AdswerveBigQuery" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.targets.Csv" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.targets.DatamillCoPostgres" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.targets.GenericTarget" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.targets.Json" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.targets.MeltanoSnowflake" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.targets.Oracle" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.targets.PipelinewisePostgres" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.targets.PipelinewiseRedshift" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.targets.PipelinewiseSnowflake" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.targets.SqlServer" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.scripts.julia.Commands" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.scripts.julia.Script" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.trino.Query" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.compress.ArchiveCompress" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.compress.ArchiveDecompress" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.compress.FileCompress" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.compress.FileDecompress" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.duckdb.Query" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.dataform.cli.DataformCLI" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.couchbase.Query" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.serdes.avro.AvroToIon" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.serdes.avro.IonToAvro" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.serdes.csv.CsvToIon" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.serdes.csv.IonToCsv" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.serdes.excel.ExcelToIon" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.serdes.excel.IonToExcel" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.serdes.json.IonToJson" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.serdes.json.JsonToIon" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.serdes.parquet.IonToParquet" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.serdes.parquet.ParquetToIon" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.serdes.xml.IonToXml" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.serdes.xml.XmlToIon" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.sqlserver.Batch" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.sqlserver.Query" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.powerbi.RefreshGroupDataset" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.core.tasks.scripts.Node" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.scripts.node.Commands" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.scripts.node.Script" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.docker.Build" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.docker.Run" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.oracle.Batch" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.oracle.Query" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.zendesk.tickets.Create" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.debezium.mysql.Capture" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.debezium.sqlserver.Capture" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.cassandra.astradb.Query" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.cassandra.standard.Query" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.openai.ChatCompletion" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.openai.CreateImage" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.postgresql.Batch" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.postgresql.CopyIn" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.postgresql.CopyOut" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.postgresql.Query" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.core.tasks.scripts.Bash" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.scripts.shell.Commands" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.scripts.shell.Script" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.scripts.r.Commands" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.scripts.r.Script" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.debezium.db2.Capture" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.tika.Parse" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jira.issues.Create" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jira.issues.CreateComment" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.debezium.oracle.Capture" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.git.Clone" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.git.Push" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.git.PushFlows" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.git.PushNamespaceFiles" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.git.Sync" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.git.SyncFlows" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.git.SyncNamespaceFiles" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.servicenow.Post" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.sybase.Query" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.as400.Query" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.clickhouse.BulkInsert" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.clickhouse.Query" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.scripts.groovy.Eval" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.scripts.groovy.FileTransform" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.redis.list.ListPop" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.redis.list.ListPush" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.redis.pubsub.Publish" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.redis.string.Delete" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.redis.string.Get" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.redis.string.Set" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.linear.issues.Create" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.malloy.CLI" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.neo4j.Batch" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.neo4j.Query" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.hubspot.tickets.Create" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.scripts.powershell.Commands" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.scripts.powershell.Script" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.cloudquery.CloudQueryCLI" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.cloudquery.Sync" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.nats.Consume" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.nats.Produce" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.amqp.Consume" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.amqp.CreateQueue" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.amqp.DeclareExchange" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.amqp.Publish" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.amqp.QueueBind" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.notifications.discord.DiscordExecution" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.notifications.discord.DiscordIncomingWebhook" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.notifications.google.GoogleChatExecution" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.notifications.google.GoogleChatIncomingWebhook" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.notifications.mail.MailExecution" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.notifications.mail.MailSend" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.notifications.opsgenie.OpsgenieAlert" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.notifications.opsgenie.OpsgenieExecution" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.notifications.pagerduty.PagerDutyAlert" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.notifications.pagerduty.PagerDutyExecution" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.notifications.sendgrid.SendGridMailExecution" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.notifications.sendgrid.SendGridMailSend" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.notifications.sentry.SentryAlert" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.notifications.sentry.SentryExecution" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.notifications.slack.SlackExecution" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.notifications.slack.SlackIncomingWebhook" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.notifications.teams.TeamsExecution" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.notifications.teams.TeamsIncomingWebhook" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.notifications.telegram.TelegramExecution" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.notifications.telegram.TelegramSend" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.notifications.twilio.TwilioAlert" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.notifications.twilio.TwilioExecution" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.notifications.whatsapp.WhatsAppExecution" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.notifications.whatsapp.WhatsAppIncomingWebhook" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.notifications.zenduty.ZendutyAlert" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.notifications.zenduty.ZendutyExecution" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.azure.batch.job.Create" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.azure.batch.pool.Resize" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.azure.cli.AzCLI" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.azure.eventhubs.Consume" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.azure.eventhubs.Produce" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.azure.storage.blob.Copy" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.azure.storage.blob.Delete" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.azure.storage.blob.DeleteList" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.azure.storage.blob.Download" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.azure.storage.blob.Downloads" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.azure.storage.blob.List" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.azure.storage.blob.SharedAccess" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.azure.storage.blob.Upload" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.azure.storage.table.Bulk" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.azure.storage.table.Delete" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.azure.storage.table.Get" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.azure.storage.table.List" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.transform.grok.TransformItems" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.transform.grok.TransformValue" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.kubernetes.PodCreate" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.kubernetes.kubectl.Apply" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.transform.jsonata.TransformItems" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.transform.jsonata.TransformValue" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.vertica.Batch" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.vertica.Query" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.solace.Consume" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.solace.Produce" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.ansible.cli.AnsibleCLI" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.elasticsearch.Bulk" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.elasticsearch.Get" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.elasticsearch.Load" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.elasticsearch.Put" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.elasticsearch.Request" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.elasticsearch.Scroll" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.elasticsearch.Search" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.pinot.Query" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.aws.athena.Query" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.aws.cli.AwsCLI" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.aws.dynamodb.DeleteItem" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.aws.dynamodb.GetItem" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.aws.dynamodb.PutItem" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.aws.dynamodb.Query" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.aws.dynamodb.Scan" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.aws.ecr.GetAuthToken" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.aws.eventbridge.PutEvents" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.aws.kinesis.PutRecords" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.aws.lambda.Invoke" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.aws.s3.Copy" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.aws.s3.CreateBucket" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.aws.s3.Delete" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.aws.s3.DeleteList" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.aws.s3.Download" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.aws.s3.Downloads" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.aws.s3.List" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.aws.s3.Upload" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.aws.sns.Publish" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.aws.sqs.Consume" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.aws.sqs.Publish" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.sqlmesh.cli.SQLMeshCLI" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.surrealdb.Query" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.vectorwise.Batch" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.vectorwise.Query" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.arrowflight.Query" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.terraform.cli.TerraformCLI" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.debezium.mongodb.Capture" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.fs.ftp.Delete" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.fs.ftp.Download" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.fs.ftp.Downloads" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.fs.ftp.List" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.fs.ftp.Move" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.fs.ftp.Upload" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.fs.ftp.Uploads" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.fs.ftps.Delete" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.fs.ftps.Download" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.fs.ftps.Downloads" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.fs.ftps.List" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.fs.ftps.Move" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.fs.ftps.Upload" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.fs.ftps.Uploads" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.fs.sftp.Delete" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.fs.sftp.Download" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.fs.sftp.Downloads" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.fs.sftp.List" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.fs.sftp.Move" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.fs.sftp.Upload" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.fs.sftp.Uploads" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.fs.smb.Delete" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.fs.smb.Download" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.fs.smb.Downloads" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.fs.smb.List" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.fs.smb.Move" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.fs.smb.Upload" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.fs.smb.Uploads" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.fs.ssh.Command" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.kafka.Consume" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.kafka.Produce" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.airflow.dags.TriggerDagRun" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.core.tasks.scripts.Python" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.scripts.python.Commands" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.scripts.python.Script" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.crypto.openpgp.Decrypt" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.crypto.openpgp.Encrypt" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.scripts.jython.Eval" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.scripts.jython.FileTransform" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.mysql.Batch" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.mysql.Query" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.snowflake.Download" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.snowflake.Query" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.snowflake.Upload" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.redshift.Query" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.ldap.Add" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.ldap.Delete" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.ldap.IonToLdif" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.ldap.LdifToIon" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.ldap.Modify" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.ldap.Search" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.databricks.cluster.CreateCluster" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.databricks.cluster.DeleteCluster" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.databricks.dbfs.Download" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.databricks.dbfs.Upload" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.databricks.job.CreateJob" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.databricks.job.SubmitRun" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.databricks.sql.Query" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.sqlite.Query" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.mqtt.Publish" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.mqtt.Subscribe" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.pulsar.Consume" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.pulsar.Produce" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.pulsar.Reader" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.dbt.cli.Build" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.dbt.cli.Compile" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.dbt.cli.DbtCLI" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.dbt.cli.Deps" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.dbt.cli.Freshness" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.dbt.cli.List" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.dbt.cli.Run" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.dbt.cli.Seed" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.dbt.cli.Setup" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.dbt.cli.Snapshot" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.dbt.cli.Test" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.dbt.cloud.CheckStatus" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.dbt.cloud.TriggerRun" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.dremio.Query" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.googleworkspace.drive.Create" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.googleworkspace.drive.Delete" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.googleworkspace.drive.Download" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.googleworkspace.drive.Export" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.googleworkspace.drive.List" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.googleworkspace.drive.Upload" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.googleworkspace.sheets.Read" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.googleworkspace.sheets.ReadRange" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.airbyte.cloud.jobs.Reset" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.airbyte.cloud.jobs.Sync" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.airbyte.connections.CheckStatus" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.airbyte.connections.Sync" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.fivetran.connectors.Sync" + }, + { + "$dynamic": false + } + ] + } + ] + } + }, + "id": { + "type": "string", + "minLength": 1, + "pattern": "^[a-zA-Z0-9][a-zA-Z0-9_-]*" + }, + "logLevel": { + "type": "string", + "enum": ["ERROR", "WARN", "INFO", "DEBUG", "TRACE"] + }, + "retry": { + "oneOf": [ + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Constant-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Exponential-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Random-2" + } + ] + }, + "tasks": { + "$dynamic": false, + "type": "array", + "items": { + "oneOf": [ + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.debug.Echo" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.debug.Return" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.execution.Count" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.execution.Fail" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.execution.Labels" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.execution.PurgeExecutions" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.execution.Resume" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.flow.AllowFailure" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.flow.Dag" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.flow.EachParallel" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.flow.EachSequential" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.flow.ForEach" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.flow.ForEachItem" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.flow.If" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.flow.Parallel" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.flow.Pause" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.flow.Sequential" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.flow.Subflow" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.flow.Switch" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.flow.Template" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.flow.WaitFor" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.flow.WorkingDirectory" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.http.Download" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.http.Request" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.kv.Delete" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.kv.Get" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.kv.GetKeys" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.kv.Set" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.log.Fetch" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.log.Log" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.log.PurgeLogs" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.namespace.DeleteFiles" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.namespace.DownloadFiles" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.namespace.UploadFiles" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.output.OutputValues" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.state.Delete" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.state.Get" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.state.Set" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.storage.Concat" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.storage.DeduplicateItems" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.storage.Delete" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.storage.FilterItems" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.storage.LocalFiles" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.storage.PurgeCurrentExecutionFiles" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.storage.Reverse" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.storage.Size" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.storage.Split" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.templating.TemplatedTask" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.trigger.Toggle" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.hightouch.Sync" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.github.code.Search" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.github.commits.Search" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.github.issues.Comment" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.github.issues.Create" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.github.issues.Search" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.github.pulls.Create" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.github.pulls.Search" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.github.repositories.Search" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.github.topics.Search" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.github.users.Search" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.druid.Query" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.weaviate.BatchCreate" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.weaviate.Delete" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.weaviate.Query" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.weaviate.SchemaCreate" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.spark.JarSubmit" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.spark.PythonSubmit" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.spark.RSubmit" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.spark.SparkCLI" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.auth.OauthAccessToken" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.bigquery.Copy" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.bigquery.CopyPartitions" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.bigquery.CreateDataset" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.bigquery.CreateTable" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.bigquery.DeleteDataset" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.bigquery.DeletePartitions" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.bigquery.DeleteTable" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.bigquery.ExtractToGcs" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.bigquery.Load" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.bigquery.LoadFromGcs" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.bigquery.Query" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.bigquery.StorageWrite" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.bigquery.TableMetadata" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.bigquery.UpdateDataset" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.bigquery.UpdateTable" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.cli.GCloudCLI" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.dataproc.batches.PySparkSubmit" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.dataproc.batches.RSparkSubmit" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.dataproc.batches.SparkSqlSubmit" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.dataproc.batches.SparkSubmit" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.firestore.Delete" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.firestore.Get" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.firestore.Query" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.firestore.Set" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.gcs.Compose" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.gcs.Copy" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.gcs.CreateBucket" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.gcs.CreateBucketIamPolicy" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.gcs.Delete" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.gcs.DeleteBucket" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.gcs.DeleteList" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.gcs.Download" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.gcs.Downloads" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.gcs.List" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.gcs.UpdateBucket" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.gcs.Upload" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.gke.ClusterMetadata" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.pubsub.Consume" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.pubsub.Publish" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.vertexai.ChatCompletion" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.vertexai.CustomJob" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.vertexai.MultimodalCompletion" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.vertexai.TextCompletion" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.db2.Query" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.minio.Copy" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.minio.CreateBucket" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.minio.Delete" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.minio.DeleteList" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.minio.Download" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.minio.Downloads" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.minio.List" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.minio.Upload" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.soda.Scan" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.modal.cli.ModalCLI" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.rockset.Query" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.scripts.nashorn.Eval" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.scripts.nashorn.FileTransform" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.scripts.ruby.Commands" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.scripts.ruby.Script" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.mongodb.Bulk" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.mongodb.Delete" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.mongodb.Find" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.mongodb.InsertOne" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.mongodb.Load" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.mongodb.Update" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.debezium.postgres.Capture" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.BigQuery" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.BingAds" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.ChargeBee" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.ExchangeRateHost" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.FacebookAds" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.Fastly" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.GenericTap" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.GitHub" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.Gitlab" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.GoogleAdwords" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.GoogleAnalytics" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.GoogleSearchConsole" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.HubSpot" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.Marketo" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.Netsuite" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.PipelinewiseMongoDb" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.PipelinewiseMysql" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.PipelinewiseOracle" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.PipelinewisePostgres" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.PipelinewiseSqlServer" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.Quickbooks" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.Recharge" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.SageIntacct" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.Salesforce" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.Shopify" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.Slack" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.Stripe" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.Zendesk" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.Zoom" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.targets.AdswerveBigQuery" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.targets.Csv" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.targets.DatamillCoPostgres" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.targets.GenericTarget" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.targets.Json" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.targets.MeltanoSnowflake" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.targets.Oracle" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.targets.PipelinewisePostgres" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.targets.PipelinewiseRedshift" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.targets.PipelinewiseSnowflake" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.targets.SqlServer" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.scripts.julia.Commands" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.scripts.julia.Script" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.trino.Query" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.compress.ArchiveCompress" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.compress.ArchiveDecompress" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.compress.FileCompress" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.compress.FileDecompress" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.duckdb.Query" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.dataform.cli.DataformCLI" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.couchbase.Query" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.serdes.avro.AvroToIon" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.serdes.avro.IonToAvro" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.serdes.csv.CsvToIon" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.serdes.csv.IonToCsv" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.serdes.excel.ExcelToIon" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.serdes.excel.IonToExcel" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.serdes.json.IonToJson" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.serdes.json.JsonToIon" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.serdes.parquet.IonToParquet" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.serdes.parquet.ParquetToIon" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.serdes.xml.IonToXml" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.serdes.xml.XmlToIon" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.sqlserver.Batch" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.sqlserver.Query" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.powerbi.RefreshGroupDataset" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.core.tasks.scripts.Node" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.scripts.node.Commands" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.scripts.node.Script" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.docker.Build" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.docker.Run" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.oracle.Batch" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.oracle.Query" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.zendesk.tickets.Create" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.debezium.mysql.Capture" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.debezium.sqlserver.Capture" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.cassandra.astradb.Query" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.cassandra.standard.Query" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.openai.ChatCompletion" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.openai.CreateImage" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.postgresql.Batch" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.postgresql.CopyIn" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.postgresql.CopyOut" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.postgresql.Query" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.core.tasks.scripts.Bash" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.scripts.shell.Commands" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.scripts.shell.Script" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.scripts.r.Commands" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.scripts.r.Script" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.debezium.db2.Capture" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.tika.Parse" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jira.issues.Create" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jira.issues.CreateComment" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.debezium.oracle.Capture" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.git.Clone" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.git.Push" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.git.PushFlows" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.git.PushNamespaceFiles" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.git.Sync" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.git.SyncFlows" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.git.SyncNamespaceFiles" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.servicenow.Post" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.sybase.Query" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.as400.Query" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.clickhouse.BulkInsert" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.clickhouse.Query" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.scripts.groovy.Eval" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.scripts.groovy.FileTransform" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.redis.list.ListPop" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.redis.list.ListPush" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.redis.pubsub.Publish" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.redis.string.Delete" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.redis.string.Get" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.redis.string.Set" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.linear.issues.Create" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.malloy.CLI" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.neo4j.Batch" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.neo4j.Query" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.hubspot.tickets.Create" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.scripts.powershell.Commands" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.scripts.powershell.Script" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.cloudquery.CloudQueryCLI" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.cloudquery.Sync" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.nats.Consume" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.nats.Produce" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.amqp.Consume" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.amqp.CreateQueue" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.amqp.DeclareExchange" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.amqp.Publish" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.amqp.QueueBind" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.notifications.discord.DiscordExecution" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.notifications.discord.DiscordIncomingWebhook" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.notifications.google.GoogleChatExecution" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.notifications.google.GoogleChatIncomingWebhook" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.notifications.mail.MailExecution" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.notifications.mail.MailSend" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.notifications.opsgenie.OpsgenieAlert" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.notifications.opsgenie.OpsgenieExecution" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.notifications.pagerduty.PagerDutyAlert" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.notifications.pagerduty.PagerDutyExecution" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.notifications.sendgrid.SendGridMailExecution" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.notifications.sendgrid.SendGridMailSend" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.notifications.sentry.SentryAlert" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.notifications.sentry.SentryExecution" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.notifications.slack.SlackExecution" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.notifications.slack.SlackIncomingWebhook" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.notifications.teams.TeamsExecution" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.notifications.teams.TeamsIncomingWebhook" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.notifications.telegram.TelegramExecution" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.notifications.telegram.TelegramSend" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.notifications.twilio.TwilioAlert" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.notifications.twilio.TwilioExecution" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.notifications.whatsapp.WhatsAppExecution" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.notifications.whatsapp.WhatsAppIncomingWebhook" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.notifications.zenduty.ZendutyAlert" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.notifications.zenduty.ZendutyExecution" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.azure.batch.job.Create" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.azure.batch.pool.Resize" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.azure.cli.AzCLI" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.azure.eventhubs.Consume" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.azure.eventhubs.Produce" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.azure.storage.blob.Copy" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.azure.storage.blob.Delete" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.azure.storage.blob.DeleteList" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.azure.storage.blob.Download" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.azure.storage.blob.Downloads" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.azure.storage.blob.List" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.azure.storage.blob.SharedAccess" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.azure.storage.blob.Upload" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.azure.storage.table.Bulk" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.azure.storage.table.Delete" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.azure.storage.table.Get" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.azure.storage.table.List" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.transform.grok.TransformItems" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.transform.grok.TransformValue" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.kubernetes.PodCreate" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.kubernetes.kubectl.Apply" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.transform.jsonata.TransformItems" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.transform.jsonata.TransformValue" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.vertica.Batch" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.vertica.Query" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.solace.Consume" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.solace.Produce" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.ansible.cli.AnsibleCLI" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.elasticsearch.Bulk" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.elasticsearch.Get" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.elasticsearch.Load" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.elasticsearch.Put" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.elasticsearch.Request" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.elasticsearch.Scroll" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.elasticsearch.Search" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.pinot.Query" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.aws.athena.Query" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.aws.cli.AwsCLI" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.aws.dynamodb.DeleteItem" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.aws.dynamodb.GetItem" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.aws.dynamodb.PutItem" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.aws.dynamodb.Query" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.aws.dynamodb.Scan" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.aws.ecr.GetAuthToken" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.aws.eventbridge.PutEvents" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.aws.kinesis.PutRecords" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.aws.lambda.Invoke" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.aws.s3.Copy" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.aws.s3.CreateBucket" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.aws.s3.Delete" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.aws.s3.DeleteList" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.aws.s3.Download" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.aws.s3.Downloads" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.aws.s3.List" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.aws.s3.Upload" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.aws.sns.Publish" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.aws.sqs.Consume" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.aws.sqs.Publish" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.sqlmesh.cli.SQLMeshCLI" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.surrealdb.Query" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.vectorwise.Batch" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.vectorwise.Query" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.arrowflight.Query" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.terraform.cli.TerraformCLI" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.debezium.mongodb.Capture" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.fs.ftp.Delete" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.fs.ftp.Download" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.fs.ftp.Downloads" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.fs.ftp.List" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.fs.ftp.Move" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.fs.ftp.Upload" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.fs.ftp.Uploads" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.fs.ftps.Delete" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.fs.ftps.Download" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.fs.ftps.Downloads" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.fs.ftps.List" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.fs.ftps.Move" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.fs.ftps.Upload" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.fs.ftps.Uploads" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.fs.sftp.Delete" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.fs.sftp.Download" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.fs.sftp.Downloads" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.fs.sftp.List" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.fs.sftp.Move" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.fs.sftp.Upload" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.fs.sftp.Uploads" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.fs.smb.Delete" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.fs.smb.Download" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.fs.smb.Downloads" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.fs.smb.List" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.fs.smb.Move" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.fs.smb.Upload" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.fs.smb.Uploads" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.fs.ssh.Command" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.kafka.Consume" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.kafka.Produce" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.airflow.dags.TriggerDagRun" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.core.tasks.scripts.Python" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.scripts.python.Commands" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.scripts.python.Script" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.crypto.openpgp.Decrypt" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.crypto.openpgp.Encrypt" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.scripts.jython.Eval" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.scripts.jython.FileTransform" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.mysql.Batch" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.mysql.Query" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.snowflake.Download" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.snowflake.Query" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.snowflake.Upload" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.redshift.Query" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.ldap.Add" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.ldap.Delete" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.ldap.IonToLdif" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.ldap.LdifToIon" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.ldap.Modify" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.ldap.Search" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.databricks.cluster.CreateCluster" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.databricks.cluster.DeleteCluster" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.databricks.dbfs.Download" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.databricks.dbfs.Upload" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.databricks.job.CreateJob" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.databricks.job.SubmitRun" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.databricks.sql.Query" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.sqlite.Query" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.mqtt.Publish" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.mqtt.Subscribe" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.pulsar.Consume" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.pulsar.Produce" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.pulsar.Reader" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.dbt.cli.Build" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.dbt.cli.Compile" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.dbt.cli.DbtCLI" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.dbt.cli.Deps" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.dbt.cli.Freshness" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.dbt.cli.List" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.dbt.cli.Run" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.dbt.cli.Seed" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.dbt.cli.Setup" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.dbt.cli.Snapshot" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.dbt.cli.Test" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.dbt.cloud.CheckStatus" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.dbt.cloud.TriggerRun" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.dremio.Query" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.googleworkspace.drive.Create" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.googleworkspace.drive.Delete" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.googleworkspace.drive.Download" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.googleworkspace.drive.Export" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.googleworkspace.drive.List" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.googleworkspace.drive.Upload" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.googleworkspace.sheets.Read" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.googleworkspace.sheets.ReadRange" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.airbyte.cloud.jobs.Reset" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.airbyte.cloud.jobs.Sync" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.airbyte.connections.CheckStatus" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.airbyte.connections.Sync" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.fivetran.connectors.Sync" + }, + { + "$dynamic": false + } + ] + } + ] + } + }, + "timeout": { + "type": "string", + "format": "duration" + }, + "type": { + "const": "io.kestra.plugin.core.flow.Sequential" + }, + "workerGroup": { + "$ref": "#/definitions/io.kestra.core.models.tasks.WorkerGroup" + } + }, + "required": ["id", "type"], + "title": "Run tasks sequentially, one after the other, in the order they are defined.", + "markdownDescription": "Used to visually group tasks.##### Examples\n\u003E \n```yaml\nid: sequential\nnamespace: company.team\n\ntasks:\n - id: sequential\n type: io.kestra.plugin.core.flow.Sequential\n tasks:\n - id: 1st\n type: io.kestra.plugin.core.debug.Return\n format: \"{{ task.id }} \u003E {{ taskrun.startDate }}\"\n - id: 2nd\n type: io.kestra.plugin.core.debug.Return\n format: \"{{ task.id }} \u003E {{ taskrun.id }}\"\n - id: last\n type: io.kestra.plugin.core.debug.Return\n format: \"{{ task.id }} \u003E {{ taskrun.startDate }}\"\n```" + }, + "io.kestra.plugin.core.flow.Subflow": { + "type": "object", + "properties": { + "allowFailure": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "description": { + "type": "string" + }, + "disabled": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "flowId": { + "$dynamic": true, + "type": "string", + "title": "The identifier of the subflow to be executed." + }, + "id": { + "type": "string", + "minLength": 1, + "pattern": "^[a-zA-Z0-9][a-zA-Z0-9_-]*" + }, + "inheritLabels": { + "$dynamic": false, + "type": "boolean", + "title": "Whether the subflow should inherit labels from this execution that triggered it.", + "default": false, + "markdownDescription": "By default, labels are not passed to the subflow execution. If you set this option to `true`, the child flow execution will inherit all labels from the parent execution.\n\nDefault value is : `false`" + }, + "inputs": { + "$dynamic": true, + "type": "object", + "title": "The inputs to pass to the subflow to be executed." + }, + "labels": { + "$dynamic": true, + "type": "object", + "title": "The labels to pass to the subflow to be executed." + }, + "logLevel": { + "type": "string", + "enum": ["ERROR", "WARN", "INFO", "DEBUG", "TRACE"] + }, + "namespace": { + "$dynamic": true, + "type": "string", + "title": "The namespace of the subflow to be executed.", + "minLength": 1 + }, + "outputs": { + "$deprecated": true, + "$dynamic": true, + "type": "object", + "title": "Outputs from the subflow executions.", + "markdownDescription": "Allows to specify outputs as key-value pairs to extract any outputs from the subflow execution into output of this task execution.This property is deprecated since v0.15.0, please use the `outputs` property on the Subflow definition for defining the output values available and exposed to this task execution." + }, + "retry": { + "oneOf": [ + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Constant-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Exponential-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Random-2" + } + ] + }, + "revision": { + "$dynamic": true, + "type": "integer", + "title": "The revision of the subflow to be executed.", + "minimum": 1, + "markdownDescription": "By default, the last, i.e. the most recent, revision of the subflow is executed." + }, + "timeout": { + "type": "string", + "format": "duration" + }, + "transmitFailed": { + "$dynamic": false, + "type": "boolean", + "title": "Whether to fail the current execution if the subflow execution fails or is killed.", + "default": true, + "markdownDescription": "Note that this option works only if `wait` is set to `true`.\n\nDefault value is : `true`" + }, + "type": { + "const": "io.kestra.plugin.core.flow.Subflow" + }, + "wait": { + "$dynamic": false, + "type": "boolean", + "title": "Whether to wait for the subflow execution to finish before continuing the current execution.", + "default": true, + "markdownDescription": "Default value is : `true`" + }, + "workerGroup": { + "$ref": "#/definitions/io.kestra.core.models.tasks.WorkerGroup" + } + }, + "required": ["flowId", "id", "namespace", "type"], + "title": "Create a subflow execution. Subflows offer a modular way to reuse workflow logic by calling other flows just like calling a function in a programming language.", + "markdownDescription": "##### Examples\n\u003E Run a subflow with custom inputs.\n```yaml\nnamespace: company.team\nflowId: subflow\ninputs:\n user: \"Rick Astley\"\n favorite_song: \"Never Gonna Give You Up\"\nwait: true\ntransmitFailed: true\n```" + }, + "io.kestra.plugin.core.flow.Switch": { + "type": "object", + "properties": { + "allowFailure": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "cases": { + "$dynamic": false, + "type": "object", + "title": "The map of keys and a list of tasks to be executed if the conditional `value` matches the key." + }, + "defaults": { + "$dynamic": false, + "type": "array", + "items": { + "oneOf": [ + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.debug.Echo" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.debug.Return" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.execution.Count" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.execution.Fail" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.execution.Labels" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.execution.PurgeExecutions" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.execution.Resume" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.flow.AllowFailure" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.flow.Dag" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.flow.EachParallel" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.flow.EachSequential" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.flow.ForEach" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.flow.ForEachItem" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.flow.If" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.flow.Parallel" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.flow.Pause" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.flow.Sequential" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.flow.Subflow" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.flow.Switch" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.flow.Template" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.flow.WaitFor" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.flow.WorkingDirectory" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.http.Download" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.http.Request" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.kv.Delete" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.kv.Get" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.kv.GetKeys" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.kv.Set" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.log.Fetch" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.log.Log" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.log.PurgeLogs" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.namespace.DeleteFiles" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.namespace.DownloadFiles" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.namespace.UploadFiles" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.output.OutputValues" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.state.Delete" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.state.Get" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.state.Set" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.storage.Concat" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.storage.DeduplicateItems" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.storage.Delete" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.storage.FilterItems" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.storage.LocalFiles" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.storage.PurgeCurrentExecutionFiles" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.storage.Reverse" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.storage.Size" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.storage.Split" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.templating.TemplatedTask" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.trigger.Toggle" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.hightouch.Sync" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.github.code.Search" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.github.commits.Search" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.github.issues.Comment" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.github.issues.Create" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.github.issues.Search" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.github.pulls.Create" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.github.pulls.Search" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.github.repositories.Search" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.github.topics.Search" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.github.users.Search" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.druid.Query" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.weaviate.BatchCreate" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.weaviate.Delete" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.weaviate.Query" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.weaviate.SchemaCreate" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.spark.JarSubmit" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.spark.PythonSubmit" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.spark.RSubmit" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.spark.SparkCLI" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.auth.OauthAccessToken" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.bigquery.Copy" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.bigquery.CopyPartitions" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.bigquery.CreateDataset" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.bigquery.CreateTable" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.bigquery.DeleteDataset" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.bigquery.DeletePartitions" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.bigquery.DeleteTable" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.bigquery.ExtractToGcs" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.bigquery.Load" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.bigquery.LoadFromGcs" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.bigquery.Query" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.bigquery.StorageWrite" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.bigquery.TableMetadata" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.bigquery.UpdateDataset" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.bigquery.UpdateTable" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.cli.GCloudCLI" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.dataproc.batches.PySparkSubmit" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.dataproc.batches.RSparkSubmit" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.dataproc.batches.SparkSqlSubmit" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.dataproc.batches.SparkSubmit" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.firestore.Delete" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.firestore.Get" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.firestore.Query" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.firestore.Set" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.gcs.Compose" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.gcs.Copy" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.gcs.CreateBucket" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.gcs.CreateBucketIamPolicy" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.gcs.Delete" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.gcs.DeleteBucket" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.gcs.DeleteList" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.gcs.Download" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.gcs.Downloads" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.gcs.List" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.gcs.UpdateBucket" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.gcs.Upload" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.gke.ClusterMetadata" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.pubsub.Consume" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.pubsub.Publish" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.vertexai.ChatCompletion" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.vertexai.CustomJob" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.vertexai.MultimodalCompletion" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.vertexai.TextCompletion" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.db2.Query" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.minio.Copy" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.minio.CreateBucket" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.minio.Delete" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.minio.DeleteList" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.minio.Download" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.minio.Downloads" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.minio.List" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.minio.Upload" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.soda.Scan" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.modal.cli.ModalCLI" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.rockset.Query" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.scripts.nashorn.Eval" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.scripts.nashorn.FileTransform" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.scripts.ruby.Commands" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.scripts.ruby.Script" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.mongodb.Bulk" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.mongodb.Delete" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.mongodb.Find" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.mongodb.InsertOne" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.mongodb.Load" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.mongodb.Update" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.debezium.postgres.Capture" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.BigQuery" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.BingAds" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.ChargeBee" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.ExchangeRateHost" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.FacebookAds" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.Fastly" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.GenericTap" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.GitHub" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.Gitlab" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.GoogleAdwords" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.GoogleAnalytics" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.GoogleSearchConsole" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.HubSpot" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.Marketo" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.Netsuite" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.PipelinewiseMongoDb" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.PipelinewiseMysql" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.PipelinewiseOracle" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.PipelinewisePostgres" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.PipelinewiseSqlServer" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.Quickbooks" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.Recharge" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.SageIntacct" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.Salesforce" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.Shopify" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.Slack" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.Stripe" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.Zendesk" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.Zoom" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.targets.AdswerveBigQuery" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.targets.Csv" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.targets.DatamillCoPostgres" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.targets.GenericTarget" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.targets.Json" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.targets.MeltanoSnowflake" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.targets.Oracle" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.targets.PipelinewisePostgres" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.targets.PipelinewiseRedshift" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.targets.PipelinewiseSnowflake" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.targets.SqlServer" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.scripts.julia.Commands" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.scripts.julia.Script" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.trino.Query" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.compress.ArchiveCompress" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.compress.ArchiveDecompress" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.compress.FileCompress" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.compress.FileDecompress" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.duckdb.Query" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.dataform.cli.DataformCLI" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.couchbase.Query" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.serdes.avro.AvroToIon" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.serdes.avro.IonToAvro" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.serdes.csv.CsvToIon" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.serdes.csv.IonToCsv" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.serdes.excel.ExcelToIon" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.serdes.excel.IonToExcel" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.serdes.json.IonToJson" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.serdes.json.JsonToIon" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.serdes.parquet.IonToParquet" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.serdes.parquet.ParquetToIon" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.serdes.xml.IonToXml" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.serdes.xml.XmlToIon" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.sqlserver.Batch" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.sqlserver.Query" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.powerbi.RefreshGroupDataset" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.core.tasks.scripts.Node" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.scripts.node.Commands" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.scripts.node.Script" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.docker.Build" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.docker.Run" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.oracle.Batch" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.oracle.Query" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.zendesk.tickets.Create" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.debezium.mysql.Capture" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.debezium.sqlserver.Capture" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.cassandra.astradb.Query" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.cassandra.standard.Query" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.openai.ChatCompletion" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.openai.CreateImage" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.postgresql.Batch" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.postgresql.CopyIn" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.postgresql.CopyOut" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.postgresql.Query" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.core.tasks.scripts.Bash" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.scripts.shell.Commands" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.scripts.shell.Script" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.scripts.r.Commands" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.scripts.r.Script" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.debezium.db2.Capture" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.tika.Parse" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jira.issues.Create" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jira.issues.CreateComment" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.debezium.oracle.Capture" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.git.Clone" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.git.Push" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.git.PushFlows" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.git.PushNamespaceFiles" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.git.Sync" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.git.SyncFlows" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.git.SyncNamespaceFiles" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.servicenow.Post" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.sybase.Query" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.as400.Query" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.clickhouse.BulkInsert" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.clickhouse.Query" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.scripts.groovy.Eval" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.scripts.groovy.FileTransform" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.redis.list.ListPop" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.redis.list.ListPush" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.redis.pubsub.Publish" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.redis.string.Delete" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.redis.string.Get" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.redis.string.Set" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.linear.issues.Create" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.malloy.CLI" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.neo4j.Batch" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.neo4j.Query" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.hubspot.tickets.Create" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.scripts.powershell.Commands" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.scripts.powershell.Script" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.cloudquery.CloudQueryCLI" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.cloudquery.Sync" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.nats.Consume" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.nats.Produce" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.amqp.Consume" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.amqp.CreateQueue" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.amqp.DeclareExchange" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.amqp.Publish" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.amqp.QueueBind" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.notifications.discord.DiscordExecution" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.notifications.discord.DiscordIncomingWebhook" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.notifications.google.GoogleChatExecution" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.notifications.google.GoogleChatIncomingWebhook" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.notifications.mail.MailExecution" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.notifications.mail.MailSend" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.notifications.opsgenie.OpsgenieAlert" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.notifications.opsgenie.OpsgenieExecution" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.notifications.pagerduty.PagerDutyAlert" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.notifications.pagerduty.PagerDutyExecution" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.notifications.sendgrid.SendGridMailExecution" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.notifications.sendgrid.SendGridMailSend" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.notifications.sentry.SentryAlert" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.notifications.sentry.SentryExecution" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.notifications.slack.SlackExecution" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.notifications.slack.SlackIncomingWebhook" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.notifications.teams.TeamsExecution" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.notifications.teams.TeamsIncomingWebhook" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.notifications.telegram.TelegramExecution" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.notifications.telegram.TelegramSend" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.notifications.twilio.TwilioAlert" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.notifications.twilio.TwilioExecution" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.notifications.whatsapp.WhatsAppExecution" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.notifications.whatsapp.WhatsAppIncomingWebhook" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.notifications.zenduty.ZendutyAlert" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.notifications.zenduty.ZendutyExecution" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.azure.batch.job.Create" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.azure.batch.pool.Resize" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.azure.cli.AzCLI" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.azure.eventhubs.Consume" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.azure.eventhubs.Produce" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.azure.storage.blob.Copy" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.azure.storage.blob.Delete" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.azure.storage.blob.DeleteList" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.azure.storage.blob.Download" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.azure.storage.blob.Downloads" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.azure.storage.blob.List" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.azure.storage.blob.SharedAccess" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.azure.storage.blob.Upload" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.azure.storage.table.Bulk" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.azure.storage.table.Delete" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.azure.storage.table.Get" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.azure.storage.table.List" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.transform.grok.TransformItems" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.transform.grok.TransformValue" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.kubernetes.PodCreate" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.kubernetes.kubectl.Apply" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.transform.jsonata.TransformItems" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.transform.jsonata.TransformValue" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.vertica.Batch" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.vertica.Query" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.solace.Consume" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.solace.Produce" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.ansible.cli.AnsibleCLI" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.elasticsearch.Bulk" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.elasticsearch.Get" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.elasticsearch.Load" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.elasticsearch.Put" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.elasticsearch.Request" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.elasticsearch.Scroll" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.elasticsearch.Search" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.pinot.Query" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.aws.athena.Query" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.aws.cli.AwsCLI" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.aws.dynamodb.DeleteItem" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.aws.dynamodb.GetItem" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.aws.dynamodb.PutItem" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.aws.dynamodb.Query" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.aws.dynamodb.Scan" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.aws.ecr.GetAuthToken" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.aws.eventbridge.PutEvents" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.aws.kinesis.PutRecords" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.aws.lambda.Invoke" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.aws.s3.Copy" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.aws.s3.CreateBucket" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.aws.s3.Delete" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.aws.s3.DeleteList" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.aws.s3.Download" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.aws.s3.Downloads" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.aws.s3.List" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.aws.s3.Upload" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.aws.sns.Publish" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.aws.sqs.Consume" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.aws.sqs.Publish" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.sqlmesh.cli.SQLMeshCLI" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.surrealdb.Query" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.vectorwise.Batch" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.vectorwise.Query" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.arrowflight.Query" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.terraform.cli.TerraformCLI" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.debezium.mongodb.Capture" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.fs.ftp.Delete" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.fs.ftp.Download" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.fs.ftp.Downloads" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.fs.ftp.List" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.fs.ftp.Move" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.fs.ftp.Upload" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.fs.ftp.Uploads" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.fs.ftps.Delete" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.fs.ftps.Download" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.fs.ftps.Downloads" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.fs.ftps.List" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.fs.ftps.Move" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.fs.ftps.Upload" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.fs.ftps.Uploads" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.fs.sftp.Delete" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.fs.sftp.Download" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.fs.sftp.Downloads" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.fs.sftp.List" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.fs.sftp.Move" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.fs.sftp.Upload" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.fs.sftp.Uploads" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.fs.smb.Delete" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.fs.smb.Download" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.fs.smb.Downloads" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.fs.smb.List" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.fs.smb.Move" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.fs.smb.Upload" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.fs.smb.Uploads" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.fs.ssh.Command" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.kafka.Consume" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.kafka.Produce" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.airflow.dags.TriggerDagRun" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.core.tasks.scripts.Python" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.scripts.python.Commands" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.scripts.python.Script" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.crypto.openpgp.Decrypt" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.crypto.openpgp.Encrypt" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.scripts.jython.Eval" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.scripts.jython.FileTransform" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.mysql.Batch" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.mysql.Query" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.snowflake.Download" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.snowflake.Query" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.snowflake.Upload" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.redshift.Query" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.ldap.Add" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.ldap.Delete" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.ldap.IonToLdif" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.ldap.LdifToIon" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.ldap.Modify" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.ldap.Search" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.databricks.cluster.CreateCluster" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.databricks.cluster.DeleteCluster" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.databricks.dbfs.Download" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.databricks.dbfs.Upload" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.databricks.job.CreateJob" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.databricks.job.SubmitRun" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.databricks.sql.Query" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.sqlite.Query" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.mqtt.Publish" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.mqtt.Subscribe" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.pulsar.Consume" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.pulsar.Produce" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.pulsar.Reader" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.dbt.cli.Build" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.dbt.cli.Compile" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.dbt.cli.DbtCLI" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.dbt.cli.Deps" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.dbt.cli.Freshness" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.dbt.cli.List" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.dbt.cli.Run" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.dbt.cli.Seed" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.dbt.cli.Setup" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.dbt.cli.Snapshot" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.dbt.cli.Test" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.dbt.cloud.CheckStatus" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.dbt.cloud.TriggerRun" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.dremio.Query" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.googleworkspace.drive.Create" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.googleworkspace.drive.Delete" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.googleworkspace.drive.Download" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.googleworkspace.drive.Export" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.googleworkspace.drive.List" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.googleworkspace.drive.Upload" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.googleworkspace.sheets.Read" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.googleworkspace.sheets.ReadRange" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.airbyte.cloud.jobs.Reset" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.airbyte.cloud.jobs.Sync" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.airbyte.connections.CheckStatus" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.airbyte.connections.Sync" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.fivetran.connectors.Sync" + }, + { + "$dynamic": false + } + ] + } + ] + } + }, + "description": { + "type": "string" + }, + "disabled": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "errors": { + "$dynamic": false, + "title": "List of tasks to run if any tasks failed on this FlowableTask.", + "type": "array", + "items": { + "oneOf": [ + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.debug.Echo" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.debug.Return" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.execution.Count" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.execution.Fail" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.execution.Labels" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.execution.PurgeExecutions" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.execution.Resume" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.flow.AllowFailure" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.flow.Dag" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.flow.EachParallel" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.flow.EachSequential" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.flow.ForEach" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.flow.ForEachItem" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.flow.If" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.flow.Parallel" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.flow.Pause" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.flow.Sequential" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.flow.Subflow" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.flow.Switch" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.flow.Template" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.flow.WaitFor" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.flow.WorkingDirectory" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.http.Download" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.http.Request" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.kv.Delete" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.kv.Get" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.kv.GetKeys" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.kv.Set" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.log.Fetch" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.log.Log" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.log.PurgeLogs" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.namespace.DeleteFiles" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.namespace.DownloadFiles" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.namespace.UploadFiles" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.output.OutputValues" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.state.Delete" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.state.Get" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.state.Set" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.storage.Concat" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.storage.DeduplicateItems" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.storage.Delete" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.storage.FilterItems" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.storage.LocalFiles" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.storage.PurgeCurrentExecutionFiles" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.storage.Reverse" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.storage.Size" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.storage.Split" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.templating.TemplatedTask" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.trigger.Toggle" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.hightouch.Sync" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.github.code.Search" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.github.commits.Search" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.github.issues.Comment" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.github.issues.Create" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.github.issues.Search" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.github.pulls.Create" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.github.pulls.Search" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.github.repositories.Search" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.github.topics.Search" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.github.users.Search" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.druid.Query" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.weaviate.BatchCreate" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.weaviate.Delete" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.weaviate.Query" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.weaviate.SchemaCreate" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.spark.JarSubmit" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.spark.PythonSubmit" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.spark.RSubmit" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.spark.SparkCLI" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.auth.OauthAccessToken" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.bigquery.Copy" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.bigquery.CopyPartitions" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.bigquery.CreateDataset" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.bigquery.CreateTable" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.bigquery.DeleteDataset" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.bigquery.DeletePartitions" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.bigquery.DeleteTable" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.bigquery.ExtractToGcs" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.bigquery.Load" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.bigquery.LoadFromGcs" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.bigquery.Query" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.bigquery.StorageWrite" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.bigquery.TableMetadata" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.bigquery.UpdateDataset" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.bigquery.UpdateTable" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.cli.GCloudCLI" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.dataproc.batches.PySparkSubmit" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.dataproc.batches.RSparkSubmit" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.dataproc.batches.SparkSqlSubmit" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.dataproc.batches.SparkSubmit" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.firestore.Delete" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.firestore.Get" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.firestore.Query" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.firestore.Set" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.gcs.Compose" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.gcs.Copy" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.gcs.CreateBucket" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.gcs.CreateBucketIamPolicy" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.gcs.Delete" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.gcs.DeleteBucket" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.gcs.DeleteList" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.gcs.Download" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.gcs.Downloads" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.gcs.List" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.gcs.UpdateBucket" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.gcs.Upload" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.gke.ClusterMetadata" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.pubsub.Consume" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.pubsub.Publish" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.vertexai.ChatCompletion" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.vertexai.CustomJob" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.vertexai.MultimodalCompletion" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.vertexai.TextCompletion" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.db2.Query" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.minio.Copy" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.minio.CreateBucket" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.minio.Delete" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.minio.DeleteList" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.minio.Download" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.minio.Downloads" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.minio.List" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.minio.Upload" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.soda.Scan" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.modal.cli.ModalCLI" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.rockset.Query" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.scripts.nashorn.Eval" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.scripts.nashorn.FileTransform" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.scripts.ruby.Commands" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.scripts.ruby.Script" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.mongodb.Bulk" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.mongodb.Delete" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.mongodb.Find" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.mongodb.InsertOne" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.mongodb.Load" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.mongodb.Update" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.debezium.postgres.Capture" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.BigQuery" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.BingAds" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.ChargeBee" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.ExchangeRateHost" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.FacebookAds" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.Fastly" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.GenericTap" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.GitHub" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.Gitlab" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.GoogleAdwords" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.GoogleAnalytics" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.GoogleSearchConsole" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.HubSpot" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.Marketo" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.Netsuite" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.PipelinewiseMongoDb" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.PipelinewiseMysql" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.PipelinewiseOracle" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.PipelinewisePostgres" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.PipelinewiseSqlServer" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.Quickbooks" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.Recharge" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.SageIntacct" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.Salesforce" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.Shopify" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.Slack" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.Stripe" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.Zendesk" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.Zoom" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.targets.AdswerveBigQuery" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.targets.Csv" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.targets.DatamillCoPostgres" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.targets.GenericTarget" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.targets.Json" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.targets.MeltanoSnowflake" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.targets.Oracle" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.targets.PipelinewisePostgres" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.targets.PipelinewiseRedshift" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.targets.PipelinewiseSnowflake" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.targets.SqlServer" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.scripts.julia.Commands" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.scripts.julia.Script" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.trino.Query" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.compress.ArchiveCompress" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.compress.ArchiveDecompress" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.compress.FileCompress" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.compress.FileDecompress" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.duckdb.Query" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.dataform.cli.DataformCLI" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.couchbase.Query" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.serdes.avro.AvroToIon" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.serdes.avro.IonToAvro" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.serdes.csv.CsvToIon" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.serdes.csv.IonToCsv" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.serdes.excel.ExcelToIon" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.serdes.excel.IonToExcel" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.serdes.json.IonToJson" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.serdes.json.JsonToIon" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.serdes.parquet.IonToParquet" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.serdes.parquet.ParquetToIon" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.serdes.xml.IonToXml" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.serdes.xml.XmlToIon" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.sqlserver.Batch" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.sqlserver.Query" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.powerbi.RefreshGroupDataset" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.core.tasks.scripts.Node" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.scripts.node.Commands" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.scripts.node.Script" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.docker.Build" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.docker.Run" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.oracle.Batch" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.oracle.Query" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.zendesk.tickets.Create" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.debezium.mysql.Capture" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.debezium.sqlserver.Capture" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.cassandra.astradb.Query" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.cassandra.standard.Query" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.openai.ChatCompletion" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.openai.CreateImage" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.postgresql.Batch" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.postgresql.CopyIn" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.postgresql.CopyOut" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.postgresql.Query" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.core.tasks.scripts.Bash" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.scripts.shell.Commands" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.scripts.shell.Script" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.scripts.r.Commands" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.scripts.r.Script" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.debezium.db2.Capture" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.tika.Parse" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jira.issues.Create" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jira.issues.CreateComment" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.debezium.oracle.Capture" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.git.Clone" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.git.Push" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.git.PushFlows" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.git.PushNamespaceFiles" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.git.Sync" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.git.SyncFlows" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.git.SyncNamespaceFiles" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.servicenow.Post" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.sybase.Query" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.as400.Query" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.clickhouse.BulkInsert" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.clickhouse.Query" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.scripts.groovy.Eval" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.scripts.groovy.FileTransform" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.redis.list.ListPop" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.redis.list.ListPush" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.redis.pubsub.Publish" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.redis.string.Delete" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.redis.string.Get" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.redis.string.Set" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.linear.issues.Create" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.malloy.CLI" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.neo4j.Batch" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.neo4j.Query" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.hubspot.tickets.Create" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.scripts.powershell.Commands" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.scripts.powershell.Script" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.cloudquery.CloudQueryCLI" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.cloudquery.Sync" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.nats.Consume" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.nats.Produce" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.amqp.Consume" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.amqp.CreateQueue" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.amqp.DeclareExchange" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.amqp.Publish" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.amqp.QueueBind" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.notifications.discord.DiscordExecution" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.notifications.discord.DiscordIncomingWebhook" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.notifications.google.GoogleChatExecution" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.notifications.google.GoogleChatIncomingWebhook" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.notifications.mail.MailExecution" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.notifications.mail.MailSend" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.notifications.opsgenie.OpsgenieAlert" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.notifications.opsgenie.OpsgenieExecution" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.notifications.pagerduty.PagerDutyAlert" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.notifications.pagerduty.PagerDutyExecution" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.notifications.sendgrid.SendGridMailExecution" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.notifications.sendgrid.SendGridMailSend" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.notifications.sentry.SentryAlert" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.notifications.sentry.SentryExecution" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.notifications.slack.SlackExecution" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.notifications.slack.SlackIncomingWebhook" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.notifications.teams.TeamsExecution" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.notifications.teams.TeamsIncomingWebhook" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.notifications.telegram.TelegramExecution" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.notifications.telegram.TelegramSend" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.notifications.twilio.TwilioAlert" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.notifications.twilio.TwilioExecution" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.notifications.whatsapp.WhatsAppExecution" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.notifications.whatsapp.WhatsAppIncomingWebhook" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.notifications.zenduty.ZendutyAlert" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.notifications.zenduty.ZendutyExecution" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.azure.batch.job.Create" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.azure.batch.pool.Resize" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.azure.cli.AzCLI" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.azure.eventhubs.Consume" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.azure.eventhubs.Produce" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.azure.storage.blob.Copy" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.azure.storage.blob.Delete" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.azure.storage.blob.DeleteList" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.azure.storage.blob.Download" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.azure.storage.blob.Downloads" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.azure.storage.blob.List" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.azure.storage.blob.SharedAccess" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.azure.storage.blob.Upload" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.azure.storage.table.Bulk" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.azure.storage.table.Delete" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.azure.storage.table.Get" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.azure.storage.table.List" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.transform.grok.TransformItems" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.transform.grok.TransformValue" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.kubernetes.PodCreate" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.kubernetes.kubectl.Apply" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.transform.jsonata.TransformItems" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.transform.jsonata.TransformValue" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.vertica.Batch" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.vertica.Query" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.solace.Consume" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.solace.Produce" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.ansible.cli.AnsibleCLI" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.elasticsearch.Bulk" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.elasticsearch.Get" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.elasticsearch.Load" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.elasticsearch.Put" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.elasticsearch.Request" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.elasticsearch.Scroll" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.elasticsearch.Search" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.pinot.Query" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.aws.athena.Query" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.aws.cli.AwsCLI" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.aws.dynamodb.DeleteItem" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.aws.dynamodb.GetItem" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.aws.dynamodb.PutItem" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.aws.dynamodb.Query" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.aws.dynamodb.Scan" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.aws.ecr.GetAuthToken" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.aws.eventbridge.PutEvents" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.aws.kinesis.PutRecords" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.aws.lambda.Invoke" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.aws.s3.Copy" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.aws.s3.CreateBucket" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.aws.s3.Delete" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.aws.s3.DeleteList" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.aws.s3.Download" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.aws.s3.Downloads" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.aws.s3.List" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.aws.s3.Upload" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.aws.sns.Publish" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.aws.sqs.Consume" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.aws.sqs.Publish" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.sqlmesh.cli.SQLMeshCLI" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.surrealdb.Query" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.vectorwise.Batch" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.vectorwise.Query" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.arrowflight.Query" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.terraform.cli.TerraformCLI" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.debezium.mongodb.Capture" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.fs.ftp.Delete" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.fs.ftp.Download" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.fs.ftp.Downloads" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.fs.ftp.List" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.fs.ftp.Move" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.fs.ftp.Upload" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.fs.ftp.Uploads" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.fs.ftps.Delete" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.fs.ftps.Download" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.fs.ftps.Downloads" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.fs.ftps.List" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.fs.ftps.Move" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.fs.ftps.Upload" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.fs.ftps.Uploads" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.fs.sftp.Delete" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.fs.sftp.Download" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.fs.sftp.Downloads" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.fs.sftp.List" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.fs.sftp.Move" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.fs.sftp.Upload" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.fs.sftp.Uploads" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.fs.smb.Delete" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.fs.smb.Download" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.fs.smb.Downloads" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.fs.smb.List" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.fs.smb.Move" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.fs.smb.Upload" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.fs.smb.Uploads" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.fs.ssh.Command" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.kafka.Consume" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.kafka.Produce" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.airflow.dags.TriggerDagRun" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.core.tasks.scripts.Python" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.scripts.python.Commands" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.scripts.python.Script" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.crypto.openpgp.Decrypt" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.crypto.openpgp.Encrypt" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.scripts.jython.Eval" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.scripts.jython.FileTransform" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.mysql.Batch" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.mysql.Query" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.snowflake.Download" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.snowflake.Query" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.snowflake.Upload" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.redshift.Query" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.ldap.Add" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.ldap.Delete" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.ldap.IonToLdif" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.ldap.LdifToIon" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.ldap.Modify" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.ldap.Search" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.databricks.cluster.CreateCluster" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.databricks.cluster.DeleteCluster" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.databricks.dbfs.Download" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.databricks.dbfs.Upload" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.databricks.job.CreateJob" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.databricks.job.SubmitRun" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.databricks.sql.Query" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.sqlite.Query" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.mqtt.Publish" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.mqtt.Subscribe" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.pulsar.Consume" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.pulsar.Produce" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.pulsar.Reader" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.dbt.cli.Build" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.dbt.cli.Compile" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.dbt.cli.DbtCLI" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.dbt.cli.Deps" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.dbt.cli.Freshness" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.dbt.cli.List" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.dbt.cli.Run" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.dbt.cli.Seed" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.dbt.cli.Setup" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.dbt.cli.Snapshot" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.dbt.cli.Test" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.dbt.cloud.CheckStatus" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.dbt.cloud.TriggerRun" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.dremio.Query" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.googleworkspace.drive.Create" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.googleworkspace.drive.Delete" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.googleworkspace.drive.Download" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.googleworkspace.drive.Export" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.googleworkspace.drive.List" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.googleworkspace.drive.Upload" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.googleworkspace.sheets.Read" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.googleworkspace.sheets.ReadRange" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.airbyte.cloud.jobs.Reset" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.airbyte.cloud.jobs.Sync" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.airbyte.connections.CheckStatus" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.airbyte.connections.Sync" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.fivetran.connectors.Sync" + }, + { + "$dynamic": false + } + ] + } + ] + } + }, + "id": { + "type": "string", + "minLength": 1, + "pattern": "^[a-zA-Z0-9][a-zA-Z0-9_-]*" + }, + "logLevel": { + "type": "string", + "enum": ["ERROR", "WARN", "INFO", "DEBUG", "TRACE"] + }, + "retry": { + "oneOf": [ + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Constant-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Exponential-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Random-2" + } + ] + }, + "timeout": { + "type": "string", + "format": "duration" + }, + "type": { + "const": "io.kestra.plugin.core.flow.Switch" + }, + "value": { + "$dynamic": true, + "type": "string", + "title": "The value to be evaluated.", + "minLength": 1 + }, + "workerGroup": { + "$ref": "#/definitions/io.kestra.core.models.tasks.WorkerGroup" + } + }, + "required": ["id", "type", "value"], + "title": "Run tasks conditionally, i.e. decide which branch of tasks should be executed based on a given value.", + "markdownDescription": "This task runs a set of tasks based on a given value.\nThe value is evaluated at runtime and compared to the list of cases.\nIf the value matches a case, the corresponding tasks are executed.\nIf the value does not match any case, the default tasks are executed.##### Examples\n\u003E \n```yaml\nid: switch\nnamespace: company.team\n\ninputs:\n - id: string\n type: STRING\n required: true\n\ntasks:\n - id: switch\n type: io.kestra.plugin.core.flows.Switch\n value: \"{{ inputs.string }}\"\n cases:\n FIRST:\n - id: 1st\n type: io.kestra.plugin.core.debug.Return\n format: \"{{ task.id }} \u003E {{ taskrun.startDate }}\"\n SECOND:\n - id: 2nd\n type: io.kestra.plugin.core.debug.Return\n format: \"{{ task.id }} \u003E {{ taskrun.startDate }}\"\n THIRD:\n - id: 3th\n type: io.kestra.plugin.core.debug.Return\n format: \"{{ task.id }} \u003E {{ taskrun.startDate }}\"\n defaults:\n - id: default\n type: io.kestra.plugin.core.debug.Return\n format: \"{{ task.id }} \u003E {{ taskrun.startDate }}\"\n```" + }, + "io.kestra.plugin.core.flow.Template": { + "$deprecated": "true", + "type": "object", + "properties": { + "allowFailure": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "args": { + "$dynamic": true, + "type": "object", + "title": "The arguments to pass to the template.", + "additionalProperties": { + "type": "string" + }, + "markdownDescription": "You can provide a list of named arguments (like function argument on dev) allowing to rename outputs of current flow for this template.\nFor example, if you declare this use of template like this: \n```yaml\n - id: 2-template\n type: io.kestra.plugin.core.flow.Template\n namespace: io.kestra.tests\n templateId: template\n args:\n forward: \"{{ output.task-id.uri }}\"\n```\nYou will be able to get this output on the template with `{{ parent.outputs.args.forward }}`." + }, + "description": { + "type": "string" + }, + "disabled": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "errors": { + "$dynamic": false, + "title": "List of tasks to run if any tasks failed on this FlowableTask.", + "type": "array", + "items": { + "oneOf": [ + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.debug.Echo" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.debug.Return" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.execution.Count" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.execution.Fail" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.execution.Labels" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.execution.PurgeExecutions" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.execution.Resume" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.flow.AllowFailure" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.flow.Dag" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.flow.EachParallel" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.flow.EachSequential" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.flow.ForEach" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.flow.ForEachItem" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.flow.If" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.flow.Parallel" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.flow.Pause" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.flow.Sequential" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.flow.Subflow" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.flow.Switch" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.flow.Template" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.flow.WaitFor" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.flow.WorkingDirectory" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.http.Download" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.http.Request" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.kv.Delete" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.kv.Get" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.kv.GetKeys" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.kv.Set" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.log.Fetch" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.log.Log" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.log.PurgeLogs" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.namespace.DeleteFiles" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.namespace.DownloadFiles" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.namespace.UploadFiles" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.output.OutputValues" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.state.Delete" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.state.Get" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.state.Set" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.storage.Concat" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.storage.DeduplicateItems" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.storage.Delete" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.storage.FilterItems" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.storage.LocalFiles" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.storage.PurgeCurrentExecutionFiles" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.storage.Reverse" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.storage.Size" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.storage.Split" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.templating.TemplatedTask" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.trigger.Toggle" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.hightouch.Sync" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.github.code.Search" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.github.commits.Search" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.github.issues.Comment" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.github.issues.Create" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.github.issues.Search" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.github.pulls.Create" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.github.pulls.Search" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.github.repositories.Search" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.github.topics.Search" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.github.users.Search" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.druid.Query" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.weaviate.BatchCreate" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.weaviate.Delete" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.weaviate.Query" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.weaviate.SchemaCreate" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.spark.JarSubmit" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.spark.PythonSubmit" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.spark.RSubmit" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.spark.SparkCLI" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.auth.OauthAccessToken" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.bigquery.Copy" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.bigquery.CopyPartitions" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.bigquery.CreateDataset" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.bigquery.CreateTable" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.bigquery.DeleteDataset" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.bigquery.DeletePartitions" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.bigquery.DeleteTable" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.bigquery.ExtractToGcs" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.bigquery.Load" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.bigquery.LoadFromGcs" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.bigquery.Query" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.bigquery.StorageWrite" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.bigquery.TableMetadata" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.bigquery.UpdateDataset" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.bigquery.UpdateTable" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.cli.GCloudCLI" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.dataproc.batches.PySparkSubmit" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.dataproc.batches.RSparkSubmit" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.dataproc.batches.SparkSqlSubmit" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.dataproc.batches.SparkSubmit" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.firestore.Delete" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.firestore.Get" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.firestore.Query" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.firestore.Set" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.gcs.Compose" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.gcs.Copy" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.gcs.CreateBucket" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.gcs.CreateBucketIamPolicy" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.gcs.Delete" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.gcs.DeleteBucket" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.gcs.DeleteList" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.gcs.Download" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.gcs.Downloads" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.gcs.List" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.gcs.UpdateBucket" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.gcs.Upload" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.gke.ClusterMetadata" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.pubsub.Consume" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.pubsub.Publish" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.vertexai.ChatCompletion" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.vertexai.CustomJob" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.vertexai.MultimodalCompletion" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.vertexai.TextCompletion" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.db2.Query" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.minio.Copy" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.minio.CreateBucket" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.minio.Delete" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.minio.DeleteList" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.minio.Download" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.minio.Downloads" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.minio.List" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.minio.Upload" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.soda.Scan" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.modal.cli.ModalCLI" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.rockset.Query" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.scripts.nashorn.Eval" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.scripts.nashorn.FileTransform" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.scripts.ruby.Commands" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.scripts.ruby.Script" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.mongodb.Bulk" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.mongodb.Delete" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.mongodb.Find" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.mongodb.InsertOne" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.mongodb.Load" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.mongodb.Update" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.debezium.postgres.Capture" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.BigQuery" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.BingAds" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.ChargeBee" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.ExchangeRateHost" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.FacebookAds" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.Fastly" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.GenericTap" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.GitHub" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.Gitlab" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.GoogleAdwords" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.GoogleAnalytics" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.GoogleSearchConsole" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.HubSpot" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.Marketo" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.Netsuite" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.PipelinewiseMongoDb" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.PipelinewiseMysql" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.PipelinewiseOracle" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.PipelinewisePostgres" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.PipelinewiseSqlServer" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.Quickbooks" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.Recharge" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.SageIntacct" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.Salesforce" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.Shopify" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.Slack" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.Stripe" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.Zendesk" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.Zoom" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.targets.AdswerveBigQuery" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.targets.Csv" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.targets.DatamillCoPostgres" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.targets.GenericTarget" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.targets.Json" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.targets.MeltanoSnowflake" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.targets.Oracle" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.targets.PipelinewisePostgres" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.targets.PipelinewiseRedshift" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.targets.PipelinewiseSnowflake" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.targets.SqlServer" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.scripts.julia.Commands" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.scripts.julia.Script" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.trino.Query" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.compress.ArchiveCompress" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.compress.ArchiveDecompress" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.compress.FileCompress" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.compress.FileDecompress" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.duckdb.Query" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.dataform.cli.DataformCLI" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.couchbase.Query" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.serdes.avro.AvroToIon" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.serdes.avro.IonToAvro" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.serdes.csv.CsvToIon" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.serdes.csv.IonToCsv" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.serdes.excel.ExcelToIon" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.serdes.excel.IonToExcel" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.serdes.json.IonToJson" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.serdes.json.JsonToIon" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.serdes.parquet.IonToParquet" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.serdes.parquet.ParquetToIon" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.serdes.xml.IonToXml" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.serdes.xml.XmlToIon" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.sqlserver.Batch" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.sqlserver.Query" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.powerbi.RefreshGroupDataset" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.core.tasks.scripts.Node" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.scripts.node.Commands" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.scripts.node.Script" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.docker.Build" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.docker.Run" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.oracle.Batch" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.oracle.Query" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.zendesk.tickets.Create" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.debezium.mysql.Capture" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.debezium.sqlserver.Capture" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.cassandra.astradb.Query" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.cassandra.standard.Query" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.openai.ChatCompletion" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.openai.CreateImage" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.postgresql.Batch" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.postgresql.CopyIn" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.postgresql.CopyOut" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.postgresql.Query" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.core.tasks.scripts.Bash" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.scripts.shell.Commands" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.scripts.shell.Script" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.scripts.r.Commands" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.scripts.r.Script" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.debezium.db2.Capture" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.tika.Parse" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jira.issues.Create" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jira.issues.CreateComment" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.debezium.oracle.Capture" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.git.Clone" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.git.Push" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.git.PushFlows" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.git.PushNamespaceFiles" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.git.Sync" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.git.SyncFlows" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.git.SyncNamespaceFiles" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.servicenow.Post" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.sybase.Query" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.as400.Query" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.clickhouse.BulkInsert" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.clickhouse.Query" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.scripts.groovy.Eval" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.scripts.groovy.FileTransform" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.redis.list.ListPop" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.redis.list.ListPush" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.redis.pubsub.Publish" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.redis.string.Delete" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.redis.string.Get" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.redis.string.Set" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.linear.issues.Create" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.malloy.CLI" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.neo4j.Batch" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.neo4j.Query" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.hubspot.tickets.Create" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.scripts.powershell.Commands" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.scripts.powershell.Script" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.cloudquery.CloudQueryCLI" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.cloudquery.Sync" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.nats.Consume" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.nats.Produce" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.amqp.Consume" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.amqp.CreateQueue" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.amqp.DeclareExchange" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.amqp.Publish" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.amqp.QueueBind" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.notifications.discord.DiscordExecution" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.notifications.discord.DiscordIncomingWebhook" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.notifications.google.GoogleChatExecution" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.notifications.google.GoogleChatIncomingWebhook" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.notifications.mail.MailExecution" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.notifications.mail.MailSend" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.notifications.opsgenie.OpsgenieAlert" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.notifications.opsgenie.OpsgenieExecution" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.notifications.pagerduty.PagerDutyAlert" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.notifications.pagerduty.PagerDutyExecution" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.notifications.sendgrid.SendGridMailExecution" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.notifications.sendgrid.SendGridMailSend" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.notifications.sentry.SentryAlert" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.notifications.sentry.SentryExecution" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.notifications.slack.SlackExecution" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.notifications.slack.SlackIncomingWebhook" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.notifications.teams.TeamsExecution" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.notifications.teams.TeamsIncomingWebhook" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.notifications.telegram.TelegramExecution" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.notifications.telegram.TelegramSend" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.notifications.twilio.TwilioAlert" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.notifications.twilio.TwilioExecution" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.notifications.whatsapp.WhatsAppExecution" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.notifications.whatsapp.WhatsAppIncomingWebhook" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.notifications.zenduty.ZendutyAlert" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.notifications.zenduty.ZendutyExecution" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.azure.batch.job.Create" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.azure.batch.pool.Resize" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.azure.cli.AzCLI" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.azure.eventhubs.Consume" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.azure.eventhubs.Produce" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.azure.storage.blob.Copy" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.azure.storage.blob.Delete" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.azure.storage.blob.DeleteList" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.azure.storage.blob.Download" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.azure.storage.blob.Downloads" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.azure.storage.blob.List" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.azure.storage.blob.SharedAccess" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.azure.storage.blob.Upload" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.azure.storage.table.Bulk" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.azure.storage.table.Delete" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.azure.storage.table.Get" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.azure.storage.table.List" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.transform.grok.TransformItems" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.transform.grok.TransformValue" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.kubernetes.PodCreate" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.kubernetes.kubectl.Apply" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.transform.jsonata.TransformItems" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.transform.jsonata.TransformValue" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.vertica.Batch" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.vertica.Query" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.solace.Consume" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.solace.Produce" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.ansible.cli.AnsibleCLI" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.elasticsearch.Bulk" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.elasticsearch.Get" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.elasticsearch.Load" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.elasticsearch.Put" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.elasticsearch.Request" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.elasticsearch.Scroll" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.elasticsearch.Search" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.pinot.Query" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.aws.athena.Query" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.aws.cli.AwsCLI" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.aws.dynamodb.DeleteItem" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.aws.dynamodb.GetItem" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.aws.dynamodb.PutItem" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.aws.dynamodb.Query" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.aws.dynamodb.Scan" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.aws.ecr.GetAuthToken" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.aws.eventbridge.PutEvents" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.aws.kinesis.PutRecords" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.aws.lambda.Invoke" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.aws.s3.Copy" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.aws.s3.CreateBucket" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.aws.s3.Delete" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.aws.s3.DeleteList" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.aws.s3.Download" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.aws.s3.Downloads" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.aws.s3.List" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.aws.s3.Upload" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.aws.sns.Publish" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.aws.sqs.Consume" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.aws.sqs.Publish" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.sqlmesh.cli.SQLMeshCLI" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.surrealdb.Query" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.vectorwise.Batch" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.vectorwise.Query" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.arrowflight.Query" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.terraform.cli.TerraformCLI" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.debezium.mongodb.Capture" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.fs.ftp.Delete" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.fs.ftp.Download" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.fs.ftp.Downloads" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.fs.ftp.List" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.fs.ftp.Move" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.fs.ftp.Upload" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.fs.ftp.Uploads" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.fs.ftps.Delete" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.fs.ftps.Download" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.fs.ftps.Downloads" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.fs.ftps.List" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.fs.ftps.Move" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.fs.ftps.Upload" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.fs.ftps.Uploads" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.fs.sftp.Delete" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.fs.sftp.Download" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.fs.sftp.Downloads" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.fs.sftp.List" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.fs.sftp.Move" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.fs.sftp.Upload" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.fs.sftp.Uploads" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.fs.smb.Delete" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.fs.smb.Download" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.fs.smb.Downloads" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.fs.smb.List" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.fs.smb.Move" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.fs.smb.Upload" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.fs.smb.Uploads" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.fs.ssh.Command" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.kafka.Consume" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.kafka.Produce" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.airflow.dags.TriggerDagRun" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.core.tasks.scripts.Python" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.scripts.python.Commands" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.scripts.python.Script" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.crypto.openpgp.Decrypt" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.crypto.openpgp.Encrypt" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.scripts.jython.Eval" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.scripts.jython.FileTransform" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.mysql.Batch" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.mysql.Query" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.snowflake.Download" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.snowflake.Query" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.snowflake.Upload" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.redshift.Query" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.ldap.Add" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.ldap.Delete" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.ldap.IonToLdif" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.ldap.LdifToIon" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.ldap.Modify" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.ldap.Search" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.databricks.cluster.CreateCluster" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.databricks.cluster.DeleteCluster" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.databricks.dbfs.Download" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.databricks.dbfs.Upload" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.databricks.job.CreateJob" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.databricks.job.SubmitRun" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.databricks.sql.Query" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.sqlite.Query" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.mqtt.Publish" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.mqtt.Subscribe" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.pulsar.Consume" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.pulsar.Produce" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.pulsar.Reader" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.dbt.cli.Build" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.dbt.cli.Compile" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.dbt.cli.DbtCLI" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.dbt.cli.Deps" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.dbt.cli.Freshness" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.dbt.cli.List" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.dbt.cli.Run" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.dbt.cli.Seed" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.dbt.cli.Setup" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.dbt.cli.Snapshot" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.dbt.cli.Test" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.dbt.cloud.CheckStatus" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.dbt.cloud.TriggerRun" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.dremio.Query" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.googleworkspace.drive.Create" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.googleworkspace.drive.Delete" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.googleworkspace.drive.Download" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.googleworkspace.drive.Export" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.googleworkspace.drive.List" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.googleworkspace.drive.Upload" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.googleworkspace.sheets.Read" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.googleworkspace.sheets.ReadRange" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.airbyte.cloud.jobs.Reset" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.airbyte.cloud.jobs.Sync" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.airbyte.connections.CheckStatus" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.airbyte.connections.Sync" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.fivetran.connectors.Sync" + }, + { + "$dynamic": false + } + ] + } + ] + } + }, + "id": { + "type": "string", + "minLength": 1, + "pattern": "^[a-zA-Z0-9][a-zA-Z0-9_-]*" + }, + "logLevel": { + "type": "string", + "enum": ["ERROR", "WARN", "INFO", "DEBUG", "TRACE"] + }, + "namespace": { + "$dynamic": false, + "type": "string", + "title": "The namespace of the template." + }, + "retry": { + "oneOf": [ + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Constant-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Exponential-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Random-2" + } + ] + }, + "templateId": { + "$dynamic": false, + "type": "string", + "title": "The ID of the template." + }, + "tenantId": { + "type": "string" + }, + "timeout": { + "type": "string", + "format": "duration" + }, + "type": { + "const": "io.kestra.plugin.core.flow.Template" + }, + "workerGroup": { + "$ref": "#/definitions/io.kestra.core.models.tasks.WorkerGroup" + } + }, + "required": ["id", "namespace", "templateId", "type"], + "title": "Include a reusable template inside a flow.", + "markdownDescription": "##### Examples\n\u003E \n```yaml\nid: template\nnamespace: company.team\n\ninputs:\n - id: with-string\n type: STRING\n\ntasks:\n - id: 1-return\n type: io.kestra.plugin.core.debug.Return\n format: \"{{ task.id }} \u003E {{ taskrun.startDate }}\"\n - id: 2-template\n type: io.kestra.plugin.core.flow.Template\n namespace: company.team\n templateId: template\n args:\n my-forward: \"{{ inputs.with-string }}\"\n - id: 3-end\n type: io.kestra.plugin.core.debug.Return\n format: \"{{ task.id }} \u003E {{ taskrun.startDate }}\"\n\n```" + }, + "io.kestra.plugin.core.flow.WaitFor": { + "type": "object", + "properties": { + "allowFailure": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "checkFrequency": { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.flow.WaitFor-CheckFrequency" + }, + { + "$dynamic": false, + "title": "Check the frequency configuration.", + "default": { + "maxIterations": 100, + "maxDuration": 3600, + "interval": 1 + }, + "markdownDescription": "Default value is : `maxIterations: 100\nmaxDuration: 3600.000000000\ninterval: 1.000000000`" + } + ] + }, + "condition": { + "$dynamic": true, + "type": "string", + "title": "The condition expression that should evaluate to `true` or `false`.", + "markdownDescription": "Boolean coercion allows 0, -0, null and '' to evaluate to false; all other values will evaluate to true." + }, + "description": { + "type": "string" + }, + "disabled": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "errors": { + "$dynamic": false, + "title": "List of tasks to run if any tasks failed on this FlowableTask.", + "type": "array", + "items": { + "oneOf": [ + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.debug.Echo" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.debug.Return" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.execution.Count" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.execution.Fail" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.execution.Labels" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.execution.PurgeExecutions" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.execution.Resume" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.flow.AllowFailure" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.flow.Dag" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.flow.EachParallel" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.flow.EachSequential" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.flow.ForEach" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.flow.ForEachItem" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.flow.If" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.flow.Parallel" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.flow.Pause" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.flow.Sequential" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.flow.Subflow" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.flow.Switch" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.flow.Template" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.flow.WaitFor" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.flow.WorkingDirectory" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.http.Download" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.http.Request" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.kv.Delete" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.kv.Get" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.kv.GetKeys" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.kv.Set" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.log.Fetch" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.log.Log" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.log.PurgeLogs" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.namespace.DeleteFiles" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.namespace.DownloadFiles" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.namespace.UploadFiles" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.output.OutputValues" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.state.Delete" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.state.Get" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.state.Set" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.storage.Concat" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.storage.DeduplicateItems" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.storage.Delete" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.storage.FilterItems" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.storage.LocalFiles" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.storage.PurgeCurrentExecutionFiles" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.storage.Reverse" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.storage.Size" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.storage.Split" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.templating.TemplatedTask" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.trigger.Toggle" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.hightouch.Sync" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.github.code.Search" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.github.commits.Search" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.github.issues.Comment" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.github.issues.Create" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.github.issues.Search" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.github.pulls.Create" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.github.pulls.Search" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.github.repositories.Search" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.github.topics.Search" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.github.users.Search" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.druid.Query" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.weaviate.BatchCreate" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.weaviate.Delete" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.weaviate.Query" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.weaviate.SchemaCreate" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.spark.JarSubmit" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.spark.PythonSubmit" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.spark.RSubmit" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.spark.SparkCLI" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.auth.OauthAccessToken" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.bigquery.Copy" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.bigquery.CopyPartitions" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.bigquery.CreateDataset" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.bigquery.CreateTable" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.bigquery.DeleteDataset" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.bigquery.DeletePartitions" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.bigquery.DeleteTable" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.bigquery.ExtractToGcs" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.bigquery.Load" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.bigquery.LoadFromGcs" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.bigquery.Query" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.bigquery.StorageWrite" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.bigquery.TableMetadata" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.bigquery.UpdateDataset" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.bigquery.UpdateTable" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.cli.GCloudCLI" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.dataproc.batches.PySparkSubmit" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.dataproc.batches.RSparkSubmit" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.dataproc.batches.SparkSqlSubmit" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.dataproc.batches.SparkSubmit" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.firestore.Delete" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.firestore.Get" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.firestore.Query" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.firestore.Set" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.gcs.Compose" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.gcs.Copy" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.gcs.CreateBucket" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.gcs.CreateBucketIamPolicy" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.gcs.Delete" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.gcs.DeleteBucket" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.gcs.DeleteList" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.gcs.Download" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.gcs.Downloads" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.gcs.List" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.gcs.UpdateBucket" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.gcs.Upload" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.gke.ClusterMetadata" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.pubsub.Consume" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.pubsub.Publish" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.vertexai.ChatCompletion" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.vertexai.CustomJob" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.vertexai.MultimodalCompletion" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.vertexai.TextCompletion" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.db2.Query" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.minio.Copy" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.minio.CreateBucket" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.minio.Delete" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.minio.DeleteList" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.minio.Download" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.minio.Downloads" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.minio.List" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.minio.Upload" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.soda.Scan" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.modal.cli.ModalCLI" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.rockset.Query" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.scripts.nashorn.Eval" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.scripts.nashorn.FileTransform" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.scripts.ruby.Commands" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.scripts.ruby.Script" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.mongodb.Bulk" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.mongodb.Delete" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.mongodb.Find" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.mongodb.InsertOne" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.mongodb.Load" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.mongodb.Update" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.debezium.postgres.Capture" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.BigQuery" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.BingAds" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.ChargeBee" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.ExchangeRateHost" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.FacebookAds" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.Fastly" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.GenericTap" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.GitHub" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.Gitlab" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.GoogleAdwords" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.GoogleAnalytics" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.GoogleSearchConsole" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.HubSpot" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.Marketo" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.Netsuite" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.PipelinewiseMongoDb" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.PipelinewiseMysql" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.PipelinewiseOracle" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.PipelinewisePostgres" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.PipelinewiseSqlServer" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.Quickbooks" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.Recharge" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.SageIntacct" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.Salesforce" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.Shopify" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.Slack" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.Stripe" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.Zendesk" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.Zoom" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.targets.AdswerveBigQuery" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.targets.Csv" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.targets.DatamillCoPostgres" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.targets.GenericTarget" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.targets.Json" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.targets.MeltanoSnowflake" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.targets.Oracle" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.targets.PipelinewisePostgres" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.targets.PipelinewiseRedshift" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.targets.PipelinewiseSnowflake" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.targets.SqlServer" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.scripts.julia.Commands" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.scripts.julia.Script" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.trino.Query" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.compress.ArchiveCompress" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.compress.ArchiveDecompress" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.compress.FileCompress" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.compress.FileDecompress" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.duckdb.Query" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.dataform.cli.DataformCLI" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.couchbase.Query" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.serdes.avro.AvroToIon" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.serdes.avro.IonToAvro" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.serdes.csv.CsvToIon" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.serdes.csv.IonToCsv" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.serdes.excel.ExcelToIon" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.serdes.excel.IonToExcel" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.serdes.json.IonToJson" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.serdes.json.JsonToIon" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.serdes.parquet.IonToParquet" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.serdes.parquet.ParquetToIon" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.serdes.xml.IonToXml" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.serdes.xml.XmlToIon" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.sqlserver.Batch" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.sqlserver.Query" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.powerbi.RefreshGroupDataset" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.core.tasks.scripts.Node" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.scripts.node.Commands" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.scripts.node.Script" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.docker.Build" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.docker.Run" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.oracle.Batch" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.oracle.Query" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.zendesk.tickets.Create" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.debezium.mysql.Capture" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.debezium.sqlserver.Capture" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.cassandra.astradb.Query" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.cassandra.standard.Query" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.openai.ChatCompletion" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.openai.CreateImage" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.postgresql.Batch" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.postgresql.CopyIn" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.postgresql.CopyOut" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.postgresql.Query" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.core.tasks.scripts.Bash" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.scripts.shell.Commands" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.scripts.shell.Script" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.scripts.r.Commands" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.scripts.r.Script" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.debezium.db2.Capture" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.tika.Parse" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jira.issues.Create" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jira.issues.CreateComment" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.debezium.oracle.Capture" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.git.Clone" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.git.Push" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.git.PushFlows" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.git.PushNamespaceFiles" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.git.Sync" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.git.SyncFlows" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.git.SyncNamespaceFiles" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.servicenow.Post" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.sybase.Query" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.as400.Query" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.clickhouse.BulkInsert" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.clickhouse.Query" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.scripts.groovy.Eval" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.scripts.groovy.FileTransform" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.redis.list.ListPop" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.redis.list.ListPush" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.redis.pubsub.Publish" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.redis.string.Delete" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.redis.string.Get" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.redis.string.Set" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.linear.issues.Create" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.malloy.CLI" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.neo4j.Batch" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.neo4j.Query" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.hubspot.tickets.Create" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.scripts.powershell.Commands" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.scripts.powershell.Script" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.cloudquery.CloudQueryCLI" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.cloudquery.Sync" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.nats.Consume" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.nats.Produce" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.amqp.Consume" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.amqp.CreateQueue" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.amqp.DeclareExchange" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.amqp.Publish" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.amqp.QueueBind" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.notifications.discord.DiscordExecution" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.notifications.discord.DiscordIncomingWebhook" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.notifications.google.GoogleChatExecution" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.notifications.google.GoogleChatIncomingWebhook" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.notifications.mail.MailExecution" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.notifications.mail.MailSend" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.notifications.opsgenie.OpsgenieAlert" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.notifications.opsgenie.OpsgenieExecution" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.notifications.pagerduty.PagerDutyAlert" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.notifications.pagerduty.PagerDutyExecution" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.notifications.sendgrid.SendGridMailExecution" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.notifications.sendgrid.SendGridMailSend" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.notifications.sentry.SentryAlert" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.notifications.sentry.SentryExecution" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.notifications.slack.SlackExecution" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.notifications.slack.SlackIncomingWebhook" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.notifications.teams.TeamsExecution" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.notifications.teams.TeamsIncomingWebhook" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.notifications.telegram.TelegramExecution" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.notifications.telegram.TelegramSend" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.notifications.twilio.TwilioAlert" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.notifications.twilio.TwilioExecution" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.notifications.whatsapp.WhatsAppExecution" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.notifications.whatsapp.WhatsAppIncomingWebhook" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.notifications.zenduty.ZendutyAlert" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.notifications.zenduty.ZendutyExecution" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.azure.batch.job.Create" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.azure.batch.pool.Resize" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.azure.cli.AzCLI" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.azure.eventhubs.Consume" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.azure.eventhubs.Produce" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.azure.storage.blob.Copy" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.azure.storage.blob.Delete" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.azure.storage.blob.DeleteList" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.azure.storage.blob.Download" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.azure.storage.blob.Downloads" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.azure.storage.blob.List" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.azure.storage.blob.SharedAccess" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.azure.storage.blob.Upload" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.azure.storage.table.Bulk" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.azure.storage.table.Delete" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.azure.storage.table.Get" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.azure.storage.table.List" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.transform.grok.TransformItems" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.transform.grok.TransformValue" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.kubernetes.PodCreate" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.kubernetes.kubectl.Apply" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.transform.jsonata.TransformItems" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.transform.jsonata.TransformValue" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.vertica.Batch" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.vertica.Query" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.solace.Consume" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.solace.Produce" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.ansible.cli.AnsibleCLI" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.elasticsearch.Bulk" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.elasticsearch.Get" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.elasticsearch.Load" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.elasticsearch.Put" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.elasticsearch.Request" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.elasticsearch.Scroll" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.elasticsearch.Search" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.pinot.Query" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.aws.athena.Query" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.aws.cli.AwsCLI" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.aws.dynamodb.DeleteItem" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.aws.dynamodb.GetItem" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.aws.dynamodb.PutItem" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.aws.dynamodb.Query" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.aws.dynamodb.Scan" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.aws.ecr.GetAuthToken" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.aws.eventbridge.PutEvents" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.aws.kinesis.PutRecords" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.aws.lambda.Invoke" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.aws.s3.Copy" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.aws.s3.CreateBucket" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.aws.s3.Delete" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.aws.s3.DeleteList" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.aws.s3.Download" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.aws.s3.Downloads" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.aws.s3.List" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.aws.s3.Upload" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.aws.sns.Publish" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.aws.sqs.Consume" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.aws.sqs.Publish" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.sqlmesh.cli.SQLMeshCLI" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.surrealdb.Query" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.vectorwise.Batch" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.vectorwise.Query" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.arrowflight.Query" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.terraform.cli.TerraformCLI" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.debezium.mongodb.Capture" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.fs.ftp.Delete" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.fs.ftp.Download" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.fs.ftp.Downloads" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.fs.ftp.List" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.fs.ftp.Move" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.fs.ftp.Upload" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.fs.ftp.Uploads" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.fs.ftps.Delete" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.fs.ftps.Download" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.fs.ftps.Downloads" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.fs.ftps.List" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.fs.ftps.Move" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.fs.ftps.Upload" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.fs.ftps.Uploads" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.fs.sftp.Delete" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.fs.sftp.Download" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.fs.sftp.Downloads" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.fs.sftp.List" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.fs.sftp.Move" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.fs.sftp.Upload" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.fs.sftp.Uploads" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.fs.smb.Delete" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.fs.smb.Download" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.fs.smb.Downloads" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.fs.smb.List" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.fs.smb.Move" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.fs.smb.Upload" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.fs.smb.Uploads" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.fs.ssh.Command" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.kafka.Consume" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.kafka.Produce" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.airflow.dags.TriggerDagRun" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.core.tasks.scripts.Python" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.scripts.python.Commands" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.scripts.python.Script" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.crypto.openpgp.Decrypt" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.crypto.openpgp.Encrypt" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.scripts.jython.Eval" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.scripts.jython.FileTransform" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.mysql.Batch" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.mysql.Query" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.snowflake.Download" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.snowflake.Query" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.snowflake.Upload" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.redshift.Query" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.ldap.Add" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.ldap.Delete" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.ldap.IonToLdif" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.ldap.LdifToIon" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.ldap.Modify" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.ldap.Search" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.databricks.cluster.CreateCluster" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.databricks.cluster.DeleteCluster" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.databricks.dbfs.Download" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.databricks.dbfs.Upload" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.databricks.job.CreateJob" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.databricks.job.SubmitRun" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.databricks.sql.Query" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.sqlite.Query" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.mqtt.Publish" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.mqtt.Subscribe" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.pulsar.Consume" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.pulsar.Produce" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.pulsar.Reader" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.dbt.cli.Build" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.dbt.cli.Compile" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.dbt.cli.DbtCLI" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.dbt.cli.Deps" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.dbt.cli.Freshness" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.dbt.cli.List" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.dbt.cli.Run" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.dbt.cli.Seed" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.dbt.cli.Setup" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.dbt.cli.Snapshot" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.dbt.cli.Test" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.dbt.cloud.CheckStatus" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.dbt.cloud.TriggerRun" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.dremio.Query" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.googleworkspace.drive.Create" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.googleworkspace.drive.Delete" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.googleworkspace.drive.Download" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.googleworkspace.drive.Export" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.googleworkspace.drive.List" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.googleworkspace.drive.Upload" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.googleworkspace.sheets.Read" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.googleworkspace.sheets.ReadRange" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.airbyte.cloud.jobs.Reset" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.airbyte.cloud.jobs.Sync" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.airbyte.connections.CheckStatus" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.airbyte.connections.Sync" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.fivetran.connectors.Sync" + }, + { + "$dynamic": false + } + ] + } + ] + } + }, + "failOnMaxReached": { + "$dynamic": false, + "type": "boolean", + "title": "If set to `true`, the task run will end in a failed state once the `maxIterations` or `maxDuration` are reached.", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "id": { + "type": "string", + "minLength": 1, + "pattern": "^[a-zA-Z0-9][a-zA-Z0-9_-]*" + }, + "logLevel": { + "type": "string", + "enum": ["ERROR", "WARN", "INFO", "DEBUG", "TRACE"] + }, + "retry": { + "oneOf": [ + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Constant-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Exponential-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Random-2" + } + ] + }, + "tasks": { + "$dynamic": false, + "type": "array", + "items": { + "oneOf": [ + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.debug.Echo" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.debug.Return" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.execution.Count" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.execution.Fail" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.execution.Labels" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.execution.PurgeExecutions" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.execution.Resume" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.flow.AllowFailure" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.flow.Dag" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.flow.EachParallel" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.flow.EachSequential" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.flow.ForEach" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.flow.ForEachItem" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.flow.If" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.flow.Parallel" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.flow.Pause" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.flow.Sequential" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.flow.Subflow" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.flow.Switch" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.flow.Template" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.flow.WaitFor" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.flow.WorkingDirectory" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.http.Download" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.http.Request" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.kv.Delete" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.kv.Get" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.kv.GetKeys" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.kv.Set" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.log.Fetch" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.log.Log" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.log.PurgeLogs" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.namespace.DeleteFiles" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.namespace.DownloadFiles" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.namespace.UploadFiles" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.output.OutputValues" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.state.Delete" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.state.Get" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.state.Set" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.storage.Concat" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.storage.DeduplicateItems" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.storage.Delete" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.storage.FilterItems" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.storage.LocalFiles" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.storage.PurgeCurrentExecutionFiles" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.storage.Reverse" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.storage.Size" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.storage.Split" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.templating.TemplatedTask" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.trigger.Toggle" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.hightouch.Sync" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.github.code.Search" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.github.commits.Search" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.github.issues.Comment" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.github.issues.Create" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.github.issues.Search" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.github.pulls.Create" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.github.pulls.Search" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.github.repositories.Search" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.github.topics.Search" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.github.users.Search" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.druid.Query" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.weaviate.BatchCreate" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.weaviate.Delete" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.weaviate.Query" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.weaviate.SchemaCreate" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.spark.JarSubmit" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.spark.PythonSubmit" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.spark.RSubmit" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.spark.SparkCLI" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.auth.OauthAccessToken" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.bigquery.Copy" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.bigquery.CopyPartitions" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.bigquery.CreateDataset" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.bigquery.CreateTable" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.bigquery.DeleteDataset" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.bigquery.DeletePartitions" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.bigquery.DeleteTable" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.bigquery.ExtractToGcs" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.bigquery.Load" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.bigquery.LoadFromGcs" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.bigquery.Query" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.bigquery.StorageWrite" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.bigquery.TableMetadata" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.bigquery.UpdateDataset" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.bigquery.UpdateTable" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.cli.GCloudCLI" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.dataproc.batches.PySparkSubmit" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.dataproc.batches.RSparkSubmit" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.dataproc.batches.SparkSqlSubmit" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.dataproc.batches.SparkSubmit" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.firestore.Delete" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.firestore.Get" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.firestore.Query" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.firestore.Set" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.gcs.Compose" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.gcs.Copy" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.gcs.CreateBucket" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.gcs.CreateBucketIamPolicy" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.gcs.Delete" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.gcs.DeleteBucket" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.gcs.DeleteList" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.gcs.Download" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.gcs.Downloads" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.gcs.List" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.gcs.UpdateBucket" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.gcs.Upload" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.gke.ClusterMetadata" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.pubsub.Consume" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.pubsub.Publish" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.vertexai.ChatCompletion" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.vertexai.CustomJob" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.vertexai.MultimodalCompletion" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.vertexai.TextCompletion" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.db2.Query" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.minio.Copy" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.minio.CreateBucket" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.minio.Delete" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.minio.DeleteList" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.minio.Download" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.minio.Downloads" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.minio.List" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.minio.Upload" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.soda.Scan" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.modal.cli.ModalCLI" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.rockset.Query" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.scripts.nashorn.Eval" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.scripts.nashorn.FileTransform" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.scripts.ruby.Commands" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.scripts.ruby.Script" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.mongodb.Bulk" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.mongodb.Delete" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.mongodb.Find" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.mongodb.InsertOne" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.mongodb.Load" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.mongodb.Update" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.debezium.postgres.Capture" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.BigQuery" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.BingAds" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.ChargeBee" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.ExchangeRateHost" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.FacebookAds" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.Fastly" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.GenericTap" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.GitHub" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.Gitlab" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.GoogleAdwords" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.GoogleAnalytics" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.GoogleSearchConsole" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.HubSpot" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.Marketo" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.Netsuite" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.PipelinewiseMongoDb" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.PipelinewiseMysql" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.PipelinewiseOracle" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.PipelinewisePostgres" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.PipelinewiseSqlServer" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.Quickbooks" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.Recharge" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.SageIntacct" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.Salesforce" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.Shopify" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.Slack" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.Stripe" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.Zendesk" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.Zoom" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.targets.AdswerveBigQuery" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.targets.Csv" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.targets.DatamillCoPostgres" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.targets.GenericTarget" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.targets.Json" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.targets.MeltanoSnowflake" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.targets.Oracle" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.targets.PipelinewisePostgres" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.targets.PipelinewiseRedshift" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.targets.PipelinewiseSnowflake" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.targets.SqlServer" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.scripts.julia.Commands" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.scripts.julia.Script" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.trino.Query" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.compress.ArchiveCompress" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.compress.ArchiveDecompress" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.compress.FileCompress" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.compress.FileDecompress" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.duckdb.Query" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.dataform.cli.DataformCLI" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.couchbase.Query" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.serdes.avro.AvroToIon" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.serdes.avro.IonToAvro" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.serdes.csv.CsvToIon" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.serdes.csv.IonToCsv" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.serdes.excel.ExcelToIon" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.serdes.excel.IonToExcel" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.serdes.json.IonToJson" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.serdes.json.JsonToIon" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.serdes.parquet.IonToParquet" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.serdes.parquet.ParquetToIon" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.serdes.xml.IonToXml" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.serdes.xml.XmlToIon" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.sqlserver.Batch" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.sqlserver.Query" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.powerbi.RefreshGroupDataset" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.core.tasks.scripts.Node" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.scripts.node.Commands" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.scripts.node.Script" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.docker.Build" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.docker.Run" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.oracle.Batch" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.oracle.Query" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.zendesk.tickets.Create" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.debezium.mysql.Capture" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.debezium.sqlserver.Capture" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.cassandra.astradb.Query" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.cassandra.standard.Query" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.openai.ChatCompletion" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.openai.CreateImage" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.postgresql.Batch" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.postgresql.CopyIn" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.postgresql.CopyOut" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.postgresql.Query" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.core.tasks.scripts.Bash" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.scripts.shell.Commands" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.scripts.shell.Script" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.scripts.r.Commands" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.scripts.r.Script" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.debezium.db2.Capture" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.tika.Parse" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jira.issues.Create" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jira.issues.CreateComment" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.debezium.oracle.Capture" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.git.Clone" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.git.Push" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.git.PushFlows" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.git.PushNamespaceFiles" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.git.Sync" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.git.SyncFlows" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.git.SyncNamespaceFiles" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.servicenow.Post" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.sybase.Query" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.as400.Query" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.clickhouse.BulkInsert" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.clickhouse.Query" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.scripts.groovy.Eval" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.scripts.groovy.FileTransform" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.redis.list.ListPop" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.redis.list.ListPush" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.redis.pubsub.Publish" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.redis.string.Delete" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.redis.string.Get" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.redis.string.Set" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.linear.issues.Create" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.malloy.CLI" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.neo4j.Batch" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.neo4j.Query" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.hubspot.tickets.Create" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.scripts.powershell.Commands" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.scripts.powershell.Script" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.cloudquery.CloudQueryCLI" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.cloudquery.Sync" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.nats.Consume" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.nats.Produce" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.amqp.Consume" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.amqp.CreateQueue" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.amqp.DeclareExchange" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.amqp.Publish" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.amqp.QueueBind" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.notifications.discord.DiscordExecution" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.notifications.discord.DiscordIncomingWebhook" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.notifications.google.GoogleChatExecution" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.notifications.google.GoogleChatIncomingWebhook" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.notifications.mail.MailExecution" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.notifications.mail.MailSend" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.notifications.opsgenie.OpsgenieAlert" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.notifications.opsgenie.OpsgenieExecution" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.notifications.pagerduty.PagerDutyAlert" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.notifications.pagerduty.PagerDutyExecution" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.notifications.sendgrid.SendGridMailExecution" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.notifications.sendgrid.SendGridMailSend" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.notifications.sentry.SentryAlert" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.notifications.sentry.SentryExecution" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.notifications.slack.SlackExecution" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.notifications.slack.SlackIncomingWebhook" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.notifications.teams.TeamsExecution" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.notifications.teams.TeamsIncomingWebhook" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.notifications.telegram.TelegramExecution" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.notifications.telegram.TelegramSend" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.notifications.twilio.TwilioAlert" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.notifications.twilio.TwilioExecution" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.notifications.whatsapp.WhatsAppExecution" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.notifications.whatsapp.WhatsAppIncomingWebhook" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.notifications.zenduty.ZendutyAlert" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.notifications.zenduty.ZendutyExecution" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.azure.batch.job.Create" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.azure.batch.pool.Resize" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.azure.cli.AzCLI" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.azure.eventhubs.Consume" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.azure.eventhubs.Produce" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.azure.storage.blob.Copy" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.azure.storage.blob.Delete" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.azure.storage.blob.DeleteList" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.azure.storage.blob.Download" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.azure.storage.blob.Downloads" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.azure.storage.blob.List" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.azure.storage.blob.SharedAccess" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.azure.storage.blob.Upload" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.azure.storage.table.Bulk" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.azure.storage.table.Delete" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.azure.storage.table.Get" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.azure.storage.table.List" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.transform.grok.TransformItems" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.transform.grok.TransformValue" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.kubernetes.PodCreate" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.kubernetes.kubectl.Apply" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.transform.jsonata.TransformItems" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.transform.jsonata.TransformValue" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.vertica.Batch" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.vertica.Query" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.solace.Consume" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.solace.Produce" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.ansible.cli.AnsibleCLI" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.elasticsearch.Bulk" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.elasticsearch.Get" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.elasticsearch.Load" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.elasticsearch.Put" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.elasticsearch.Request" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.elasticsearch.Scroll" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.elasticsearch.Search" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.pinot.Query" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.aws.athena.Query" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.aws.cli.AwsCLI" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.aws.dynamodb.DeleteItem" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.aws.dynamodb.GetItem" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.aws.dynamodb.PutItem" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.aws.dynamodb.Query" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.aws.dynamodb.Scan" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.aws.ecr.GetAuthToken" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.aws.eventbridge.PutEvents" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.aws.kinesis.PutRecords" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.aws.lambda.Invoke" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.aws.s3.Copy" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.aws.s3.CreateBucket" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.aws.s3.Delete" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.aws.s3.DeleteList" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.aws.s3.Download" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.aws.s3.Downloads" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.aws.s3.List" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.aws.s3.Upload" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.aws.sns.Publish" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.aws.sqs.Consume" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.aws.sqs.Publish" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.sqlmesh.cli.SQLMeshCLI" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.surrealdb.Query" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.vectorwise.Batch" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.vectorwise.Query" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.arrowflight.Query" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.terraform.cli.TerraformCLI" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.debezium.mongodb.Capture" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.fs.ftp.Delete" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.fs.ftp.Download" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.fs.ftp.Downloads" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.fs.ftp.List" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.fs.ftp.Move" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.fs.ftp.Upload" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.fs.ftp.Uploads" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.fs.ftps.Delete" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.fs.ftps.Download" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.fs.ftps.Downloads" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.fs.ftps.List" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.fs.ftps.Move" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.fs.ftps.Upload" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.fs.ftps.Uploads" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.fs.sftp.Delete" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.fs.sftp.Download" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.fs.sftp.Downloads" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.fs.sftp.List" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.fs.sftp.Move" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.fs.sftp.Upload" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.fs.sftp.Uploads" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.fs.smb.Delete" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.fs.smb.Download" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.fs.smb.Downloads" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.fs.smb.List" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.fs.smb.Move" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.fs.smb.Upload" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.fs.smb.Uploads" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.fs.ssh.Command" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.kafka.Consume" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.kafka.Produce" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.airflow.dags.TriggerDagRun" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.core.tasks.scripts.Python" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.scripts.python.Commands" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.scripts.python.Script" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.crypto.openpgp.Decrypt" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.crypto.openpgp.Encrypt" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.scripts.jython.Eval" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.scripts.jython.FileTransform" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.mysql.Batch" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.mysql.Query" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.snowflake.Download" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.snowflake.Query" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.snowflake.Upload" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.redshift.Query" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.ldap.Add" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.ldap.Delete" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.ldap.IonToLdif" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.ldap.LdifToIon" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.ldap.Modify" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.ldap.Search" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.databricks.cluster.CreateCluster" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.databricks.cluster.DeleteCluster" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.databricks.dbfs.Download" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.databricks.dbfs.Upload" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.databricks.job.CreateJob" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.databricks.job.SubmitRun" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.databricks.sql.Query" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.sqlite.Query" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.mqtt.Publish" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.mqtt.Subscribe" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.pulsar.Consume" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.pulsar.Produce" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.pulsar.Reader" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.dbt.cli.Build" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.dbt.cli.Compile" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.dbt.cli.DbtCLI" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.dbt.cli.Deps" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.dbt.cli.Freshness" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.dbt.cli.List" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.dbt.cli.Run" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.dbt.cli.Seed" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.dbt.cli.Setup" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.dbt.cli.Snapshot" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.dbt.cli.Test" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.dbt.cloud.CheckStatus" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.dbt.cloud.TriggerRun" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.dremio.Query" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.googleworkspace.drive.Create" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.googleworkspace.drive.Delete" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.googleworkspace.drive.Download" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.googleworkspace.drive.Export" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.googleworkspace.drive.List" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.googleworkspace.drive.Upload" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.googleworkspace.sheets.Read" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.googleworkspace.sheets.ReadRange" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.airbyte.cloud.jobs.Reset" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.airbyte.cloud.jobs.Sync" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.airbyte.connections.CheckStatus" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.airbyte.connections.Sync" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.fivetran.connectors.Sync" + }, + { + "$dynamic": false + } + ] + } + ] + } + }, + "timeout": { + "type": "string", + "format": "duration" + }, + "type": { + "const": "io.kestra.plugin.core.flow.WaitFor" + }, + "workerGroup": { + "$ref": "#/definitions/io.kestra.core.models.tasks.WorkerGroup" + } + }, + "required": ["condition", "id", "tasks", "type"], + "title": "Run a list of tasks repeatedly until the expected condition is met.", + "markdownDescription": "Use this task if your workflow requires blocking calls polling for a job to finish or for some external API to return a specific HTTP response.\n\nYou can access the outputs of the nested tasks in the `condition` property. The `condition` is evaluated after all nested task runs finish.\n##### Examples\n\u003E Run a task until it returns a specific value. Note how you don't need to take care of incrementing the iteration count. The task will loop and keep track of the iteration outputs behind the scenes — you only need to specify the exit condition for the loop.\n```yaml\nid: example\nnamespace: company.team\n\ntasks:\n - id: loop\n type: io.kestra.plugin.core.flow.WaitFor\n condition: \"{{ outputs.return.value == '4' }}\"\n tasks:\n - id: return\n type: io.kestra.plugin.core.debug.Return\n format: \"{{ outputs.loop.iterationCount }}\"\n\n```" + }, + "io.kestra.plugin.core.flow.WaitFor-CheckFrequency": { + "type": "object", + "properties": { + "interval": { + "$dynamic": false, + "type": "string", + "format": "duration", + "title": "Interval between each iteration.", + "default": 1, + "markdownDescription": "Default value is : `1.000000000`" + }, + "maxDuration": { + "$dynamic": false, + "type": "string", + "format": "duration", + "title": "Maximum duration of the task.", + "default": 3600, + "markdownDescription": "Default value is : `3600.000000000`" + }, + "maxIterations": { + "$dynamic": false, + "type": "integer", + "title": "Maximum count of iterations.", + "default": 100, + "markdownDescription": "Default value is : `100`" + } + } + }, + "io.kestra.plugin.core.flow.WorkingDirectory": { + "type": "object", + "properties": { + "allowFailure": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "cache": { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.flow.WorkingDirectory-Cache" + }, + { + "$dynamic": false, + "title": "Cache configuration.", + "markdownDescription": "When a cache is configured, an archive of the files denoted by the cache configuration is created at the end of the execution of the task and saved in Kestra's internal storage.\nThen at the beginning of the next execution of the task, the archive of the files is retrieved and the working directory initialized with it.\n" + } + ] + }, + "description": { + "type": "string" + }, + "disabled": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "errors": { + "$dynamic": false, + "title": "List of tasks to run if any tasks failed on this FlowableTask.", + "type": "array", + "items": { + "oneOf": [ + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.debug.Echo" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.debug.Return" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.execution.Count" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.execution.Fail" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.execution.Labels" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.execution.PurgeExecutions" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.execution.Resume" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.flow.AllowFailure" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.flow.Dag" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.flow.EachParallel" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.flow.EachSequential" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.flow.ForEach" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.flow.ForEachItem" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.flow.If" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.flow.Parallel" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.flow.Pause" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.flow.Sequential" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.flow.Subflow" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.flow.Switch" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.flow.Template" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.flow.WaitFor" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.flow.WorkingDirectory" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.http.Download" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.http.Request" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.kv.Delete" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.kv.Get" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.kv.GetKeys" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.kv.Set" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.log.Fetch" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.log.Log" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.log.PurgeLogs" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.namespace.DeleteFiles" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.namespace.DownloadFiles" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.namespace.UploadFiles" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.output.OutputValues" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.state.Delete" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.state.Get" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.state.Set" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.storage.Concat" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.storage.DeduplicateItems" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.storage.Delete" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.storage.FilterItems" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.storage.LocalFiles" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.storage.PurgeCurrentExecutionFiles" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.storage.Reverse" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.storage.Size" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.storage.Split" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.templating.TemplatedTask" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.trigger.Toggle" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.hightouch.Sync" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.github.code.Search" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.github.commits.Search" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.github.issues.Comment" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.github.issues.Create" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.github.issues.Search" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.github.pulls.Create" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.github.pulls.Search" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.github.repositories.Search" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.github.topics.Search" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.github.users.Search" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.druid.Query" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.weaviate.BatchCreate" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.weaviate.Delete" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.weaviate.Query" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.weaviate.SchemaCreate" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.spark.JarSubmit" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.spark.PythonSubmit" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.spark.RSubmit" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.spark.SparkCLI" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.auth.OauthAccessToken" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.bigquery.Copy" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.bigquery.CopyPartitions" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.bigquery.CreateDataset" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.bigquery.CreateTable" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.bigquery.DeleteDataset" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.bigquery.DeletePartitions" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.bigquery.DeleteTable" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.bigquery.ExtractToGcs" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.bigquery.Load" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.bigquery.LoadFromGcs" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.bigquery.Query" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.bigquery.StorageWrite" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.bigquery.TableMetadata" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.bigquery.UpdateDataset" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.bigquery.UpdateTable" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.cli.GCloudCLI" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.dataproc.batches.PySparkSubmit" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.dataproc.batches.RSparkSubmit" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.dataproc.batches.SparkSqlSubmit" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.dataproc.batches.SparkSubmit" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.firestore.Delete" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.firestore.Get" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.firestore.Query" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.firestore.Set" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.gcs.Compose" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.gcs.Copy" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.gcs.CreateBucket" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.gcs.CreateBucketIamPolicy" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.gcs.Delete" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.gcs.DeleteBucket" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.gcs.DeleteList" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.gcs.Download" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.gcs.Downloads" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.gcs.List" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.gcs.UpdateBucket" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.gcs.Upload" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.gke.ClusterMetadata" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.pubsub.Consume" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.pubsub.Publish" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.vertexai.ChatCompletion" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.vertexai.CustomJob" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.vertexai.MultimodalCompletion" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.vertexai.TextCompletion" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.db2.Query" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.minio.Copy" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.minio.CreateBucket" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.minio.Delete" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.minio.DeleteList" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.minio.Download" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.minio.Downloads" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.minio.List" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.minio.Upload" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.soda.Scan" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.modal.cli.ModalCLI" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.rockset.Query" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.scripts.nashorn.Eval" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.scripts.nashorn.FileTransform" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.scripts.ruby.Commands" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.scripts.ruby.Script" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.mongodb.Bulk" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.mongodb.Delete" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.mongodb.Find" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.mongodb.InsertOne" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.mongodb.Load" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.mongodb.Update" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.debezium.postgres.Capture" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.BigQuery" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.BingAds" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.ChargeBee" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.ExchangeRateHost" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.FacebookAds" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.Fastly" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.GenericTap" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.GitHub" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.Gitlab" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.GoogleAdwords" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.GoogleAnalytics" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.GoogleSearchConsole" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.HubSpot" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.Marketo" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.Netsuite" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.PipelinewiseMongoDb" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.PipelinewiseMysql" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.PipelinewiseOracle" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.PipelinewisePostgres" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.PipelinewiseSqlServer" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.Quickbooks" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.Recharge" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.SageIntacct" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.Salesforce" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.Shopify" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.Slack" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.Stripe" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.Zendesk" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.Zoom" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.targets.AdswerveBigQuery" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.targets.Csv" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.targets.DatamillCoPostgres" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.targets.GenericTarget" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.targets.Json" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.targets.MeltanoSnowflake" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.targets.Oracle" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.targets.PipelinewisePostgres" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.targets.PipelinewiseRedshift" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.targets.PipelinewiseSnowflake" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.targets.SqlServer" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.scripts.julia.Commands" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.scripts.julia.Script" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.trino.Query" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.compress.ArchiveCompress" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.compress.ArchiveDecompress" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.compress.FileCompress" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.compress.FileDecompress" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.duckdb.Query" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.dataform.cli.DataformCLI" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.couchbase.Query" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.serdes.avro.AvroToIon" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.serdes.avro.IonToAvro" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.serdes.csv.CsvToIon" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.serdes.csv.IonToCsv" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.serdes.excel.ExcelToIon" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.serdes.excel.IonToExcel" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.serdes.json.IonToJson" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.serdes.json.JsonToIon" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.serdes.parquet.IonToParquet" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.serdes.parquet.ParquetToIon" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.serdes.xml.IonToXml" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.serdes.xml.XmlToIon" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.sqlserver.Batch" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.sqlserver.Query" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.powerbi.RefreshGroupDataset" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.core.tasks.scripts.Node" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.scripts.node.Commands" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.scripts.node.Script" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.docker.Build" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.docker.Run" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.oracle.Batch" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.oracle.Query" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.zendesk.tickets.Create" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.debezium.mysql.Capture" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.debezium.sqlserver.Capture" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.cassandra.astradb.Query" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.cassandra.standard.Query" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.openai.ChatCompletion" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.openai.CreateImage" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.postgresql.Batch" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.postgresql.CopyIn" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.postgresql.CopyOut" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.postgresql.Query" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.core.tasks.scripts.Bash" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.scripts.shell.Commands" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.scripts.shell.Script" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.scripts.r.Commands" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.scripts.r.Script" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.debezium.db2.Capture" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.tika.Parse" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jira.issues.Create" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jira.issues.CreateComment" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.debezium.oracle.Capture" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.git.Clone" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.git.Push" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.git.PushFlows" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.git.PushNamespaceFiles" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.git.Sync" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.git.SyncFlows" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.git.SyncNamespaceFiles" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.servicenow.Post" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.sybase.Query" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.as400.Query" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.clickhouse.BulkInsert" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.clickhouse.Query" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.scripts.groovy.Eval" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.scripts.groovy.FileTransform" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.redis.list.ListPop" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.redis.list.ListPush" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.redis.pubsub.Publish" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.redis.string.Delete" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.redis.string.Get" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.redis.string.Set" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.linear.issues.Create" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.malloy.CLI" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.neo4j.Batch" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.neo4j.Query" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.hubspot.tickets.Create" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.scripts.powershell.Commands" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.scripts.powershell.Script" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.cloudquery.CloudQueryCLI" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.cloudquery.Sync" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.nats.Consume" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.nats.Produce" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.amqp.Consume" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.amqp.CreateQueue" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.amqp.DeclareExchange" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.amqp.Publish" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.amqp.QueueBind" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.notifications.discord.DiscordExecution" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.notifications.discord.DiscordIncomingWebhook" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.notifications.google.GoogleChatExecution" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.notifications.google.GoogleChatIncomingWebhook" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.notifications.mail.MailExecution" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.notifications.mail.MailSend" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.notifications.opsgenie.OpsgenieAlert" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.notifications.opsgenie.OpsgenieExecution" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.notifications.pagerduty.PagerDutyAlert" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.notifications.pagerduty.PagerDutyExecution" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.notifications.sendgrid.SendGridMailExecution" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.notifications.sendgrid.SendGridMailSend" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.notifications.sentry.SentryAlert" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.notifications.sentry.SentryExecution" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.notifications.slack.SlackExecution" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.notifications.slack.SlackIncomingWebhook" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.notifications.teams.TeamsExecution" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.notifications.teams.TeamsIncomingWebhook" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.notifications.telegram.TelegramExecution" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.notifications.telegram.TelegramSend" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.notifications.twilio.TwilioAlert" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.notifications.twilio.TwilioExecution" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.notifications.whatsapp.WhatsAppExecution" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.notifications.whatsapp.WhatsAppIncomingWebhook" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.notifications.zenduty.ZendutyAlert" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.notifications.zenduty.ZendutyExecution" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.azure.batch.job.Create" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.azure.batch.pool.Resize" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.azure.cli.AzCLI" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.azure.eventhubs.Consume" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.azure.eventhubs.Produce" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.azure.storage.blob.Copy" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.azure.storage.blob.Delete" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.azure.storage.blob.DeleteList" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.azure.storage.blob.Download" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.azure.storage.blob.Downloads" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.azure.storage.blob.List" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.azure.storage.blob.SharedAccess" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.azure.storage.blob.Upload" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.azure.storage.table.Bulk" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.azure.storage.table.Delete" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.azure.storage.table.Get" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.azure.storage.table.List" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.transform.grok.TransformItems" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.transform.grok.TransformValue" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.kubernetes.PodCreate" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.kubernetes.kubectl.Apply" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.transform.jsonata.TransformItems" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.transform.jsonata.TransformValue" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.vertica.Batch" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.vertica.Query" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.solace.Consume" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.solace.Produce" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.ansible.cli.AnsibleCLI" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.elasticsearch.Bulk" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.elasticsearch.Get" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.elasticsearch.Load" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.elasticsearch.Put" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.elasticsearch.Request" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.elasticsearch.Scroll" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.elasticsearch.Search" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.pinot.Query" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.aws.athena.Query" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.aws.cli.AwsCLI" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.aws.dynamodb.DeleteItem" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.aws.dynamodb.GetItem" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.aws.dynamodb.PutItem" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.aws.dynamodb.Query" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.aws.dynamodb.Scan" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.aws.ecr.GetAuthToken" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.aws.eventbridge.PutEvents" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.aws.kinesis.PutRecords" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.aws.lambda.Invoke" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.aws.s3.Copy" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.aws.s3.CreateBucket" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.aws.s3.Delete" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.aws.s3.DeleteList" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.aws.s3.Download" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.aws.s3.Downloads" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.aws.s3.List" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.aws.s3.Upload" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.aws.sns.Publish" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.aws.sqs.Consume" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.aws.sqs.Publish" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.sqlmesh.cli.SQLMeshCLI" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.surrealdb.Query" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.vectorwise.Batch" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.vectorwise.Query" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.arrowflight.Query" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.terraform.cli.TerraformCLI" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.debezium.mongodb.Capture" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.fs.ftp.Delete" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.fs.ftp.Download" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.fs.ftp.Downloads" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.fs.ftp.List" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.fs.ftp.Move" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.fs.ftp.Upload" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.fs.ftp.Uploads" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.fs.ftps.Delete" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.fs.ftps.Download" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.fs.ftps.Downloads" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.fs.ftps.List" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.fs.ftps.Move" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.fs.ftps.Upload" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.fs.ftps.Uploads" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.fs.sftp.Delete" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.fs.sftp.Download" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.fs.sftp.Downloads" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.fs.sftp.List" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.fs.sftp.Move" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.fs.sftp.Upload" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.fs.sftp.Uploads" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.fs.smb.Delete" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.fs.smb.Download" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.fs.smb.Downloads" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.fs.smb.List" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.fs.smb.Move" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.fs.smb.Upload" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.fs.smb.Uploads" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.fs.ssh.Command" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.kafka.Consume" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.kafka.Produce" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.airflow.dags.TriggerDagRun" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.core.tasks.scripts.Python" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.scripts.python.Commands" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.scripts.python.Script" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.crypto.openpgp.Decrypt" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.crypto.openpgp.Encrypt" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.scripts.jython.Eval" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.scripts.jython.FileTransform" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.mysql.Batch" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.mysql.Query" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.snowflake.Download" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.snowflake.Query" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.snowflake.Upload" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.redshift.Query" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.ldap.Add" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.ldap.Delete" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.ldap.IonToLdif" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.ldap.LdifToIon" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.ldap.Modify" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.ldap.Search" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.databricks.cluster.CreateCluster" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.databricks.cluster.DeleteCluster" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.databricks.dbfs.Download" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.databricks.dbfs.Upload" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.databricks.job.CreateJob" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.databricks.job.SubmitRun" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.databricks.sql.Query" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.sqlite.Query" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.mqtt.Publish" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.mqtt.Subscribe" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.pulsar.Consume" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.pulsar.Produce" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.pulsar.Reader" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.dbt.cli.Build" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.dbt.cli.Compile" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.dbt.cli.DbtCLI" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.dbt.cli.Deps" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.dbt.cli.Freshness" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.dbt.cli.List" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.dbt.cli.Run" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.dbt.cli.Seed" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.dbt.cli.Setup" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.dbt.cli.Snapshot" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.dbt.cli.Test" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.dbt.cloud.CheckStatus" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.dbt.cloud.TriggerRun" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.dremio.Query" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.googleworkspace.drive.Create" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.googleworkspace.drive.Delete" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.googleworkspace.drive.Download" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.googleworkspace.drive.Export" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.googleworkspace.drive.List" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.googleworkspace.drive.Upload" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.googleworkspace.sheets.Read" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.googleworkspace.sheets.ReadRange" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.airbyte.cloud.jobs.Reset" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.airbyte.cloud.jobs.Sync" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.airbyte.connections.CheckStatus" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.airbyte.connections.Sync" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.fivetran.connectors.Sync" + }, + { + "$dynamic": false + } + ] + } + ] + } + }, + "id": { + "type": "string", + "minLength": 1, + "pattern": "^[a-zA-Z0-9][a-zA-Z0-9_-]*" + }, + "inputFiles": { + "$dynamic": true, + "title": "The files to create on the local filesystem. It can be a map or a JSON object.", + "oneOf": [ + { + "type": "object" + }, + { + "type": "string" + } + ] + }, + "logLevel": { + "type": "string", + "enum": ["ERROR", "WARN", "INFO", "DEBUG", "TRACE"] + }, + "namespaceFiles": { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.core.models.tasks.NamespaceFiles" + }, + { + "$dynamic": false, + "title": "Inject namespace files.", + "markdownDescription": "Inject namespace files to this task. When enabled, it will, by default, load all namespace files into the working directory. However, you can use the `include` or `exclude` properties to limit which namespace files will be injected." + } + ] + }, + "outputFiles": { + "$dynamic": true, + "title": "The files from the local filesystem to send to Kestra's internal storage.", + "markdownDescription": "Must be a list of [glob](https://en.wikipedia.org/wiki/Glob_(programming)) expressions relative to the current working directory, some examples: `my-dir/**`, `my-dir/*/**` or `my-dir/my-file.txt`.", + "type": "array", + "items": { + "$dynamic": true, + "type": "string" + } + }, + "retry": { + "oneOf": [ + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Constant-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Exponential-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Random-2" + } + ] + }, + "tasks": { + "$dynamic": false, + "type": "array", + "items": { + "oneOf": [ + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.debug.Echo" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.debug.Return" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.execution.Count" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.execution.Fail" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.execution.Labels" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.execution.PurgeExecutions" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.execution.Resume" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.flow.AllowFailure" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.flow.Dag" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.flow.EachParallel" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.flow.EachSequential" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.flow.ForEach" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.flow.ForEachItem" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.flow.If" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.flow.Parallel" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.flow.Pause" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.flow.Sequential" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.flow.Subflow" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.flow.Switch" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.flow.Template" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.flow.WaitFor" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.flow.WorkingDirectory" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.http.Download" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.http.Request" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.kv.Delete" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.kv.Get" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.kv.GetKeys" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.kv.Set" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.log.Fetch" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.log.Log" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.log.PurgeLogs" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.namespace.DeleteFiles" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.namespace.DownloadFiles" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.namespace.UploadFiles" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.output.OutputValues" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.state.Delete" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.state.Get" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.state.Set" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.storage.Concat" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.storage.DeduplicateItems" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.storage.Delete" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.storage.FilterItems" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.storage.LocalFiles" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.storage.PurgeCurrentExecutionFiles" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.storage.Reverse" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.storage.Size" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.storage.Split" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.templating.TemplatedTask" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.trigger.Toggle" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.hightouch.Sync" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.github.code.Search" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.github.commits.Search" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.github.issues.Comment" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.github.issues.Create" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.github.issues.Search" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.github.pulls.Create" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.github.pulls.Search" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.github.repositories.Search" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.github.topics.Search" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.github.users.Search" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.druid.Query" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.weaviate.BatchCreate" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.weaviate.Delete" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.weaviate.Query" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.weaviate.SchemaCreate" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.spark.JarSubmit" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.spark.PythonSubmit" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.spark.RSubmit" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.spark.SparkCLI" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.auth.OauthAccessToken" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.bigquery.Copy" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.bigquery.CopyPartitions" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.bigquery.CreateDataset" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.bigquery.CreateTable" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.bigquery.DeleteDataset" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.bigquery.DeletePartitions" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.bigquery.DeleteTable" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.bigquery.ExtractToGcs" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.bigquery.Load" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.bigquery.LoadFromGcs" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.bigquery.Query" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.bigquery.StorageWrite" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.bigquery.TableMetadata" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.bigquery.UpdateDataset" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.bigquery.UpdateTable" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.cli.GCloudCLI" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.dataproc.batches.PySparkSubmit" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.dataproc.batches.RSparkSubmit" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.dataproc.batches.SparkSqlSubmit" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.dataproc.batches.SparkSubmit" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.firestore.Delete" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.firestore.Get" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.firestore.Query" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.firestore.Set" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.gcs.Compose" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.gcs.Copy" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.gcs.CreateBucket" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.gcs.CreateBucketIamPolicy" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.gcs.Delete" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.gcs.DeleteBucket" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.gcs.DeleteList" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.gcs.Download" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.gcs.Downloads" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.gcs.List" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.gcs.UpdateBucket" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.gcs.Upload" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.gke.ClusterMetadata" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.pubsub.Consume" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.pubsub.Publish" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.vertexai.ChatCompletion" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.vertexai.CustomJob" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.vertexai.MultimodalCompletion" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.vertexai.TextCompletion" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.db2.Query" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.minio.Copy" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.minio.CreateBucket" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.minio.Delete" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.minio.DeleteList" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.minio.Download" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.minio.Downloads" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.minio.List" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.minio.Upload" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.soda.Scan" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.modal.cli.ModalCLI" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.rockset.Query" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.scripts.nashorn.Eval" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.scripts.nashorn.FileTransform" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.scripts.ruby.Commands" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.scripts.ruby.Script" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.mongodb.Bulk" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.mongodb.Delete" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.mongodb.Find" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.mongodb.InsertOne" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.mongodb.Load" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.mongodb.Update" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.debezium.postgres.Capture" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.BigQuery" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.BingAds" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.ChargeBee" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.ExchangeRateHost" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.FacebookAds" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.Fastly" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.GenericTap" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.GitHub" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.Gitlab" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.GoogleAdwords" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.GoogleAnalytics" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.GoogleSearchConsole" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.HubSpot" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.Marketo" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.Netsuite" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.PipelinewiseMongoDb" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.PipelinewiseMysql" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.PipelinewiseOracle" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.PipelinewisePostgres" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.PipelinewiseSqlServer" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.Quickbooks" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.Recharge" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.SageIntacct" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.Salesforce" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.Shopify" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.Slack" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.Stripe" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.Zendesk" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.Zoom" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.targets.AdswerveBigQuery" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.targets.Csv" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.targets.DatamillCoPostgres" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.targets.GenericTarget" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.targets.Json" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.targets.MeltanoSnowflake" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.targets.Oracle" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.targets.PipelinewisePostgres" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.targets.PipelinewiseRedshift" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.targets.PipelinewiseSnowflake" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.targets.SqlServer" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.scripts.julia.Commands" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.scripts.julia.Script" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.trino.Query" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.compress.ArchiveCompress" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.compress.ArchiveDecompress" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.compress.FileCompress" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.compress.FileDecompress" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.duckdb.Query" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.dataform.cli.DataformCLI" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.couchbase.Query" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.serdes.avro.AvroToIon" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.serdes.avro.IonToAvro" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.serdes.csv.CsvToIon" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.serdes.csv.IonToCsv" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.serdes.excel.ExcelToIon" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.serdes.excel.IonToExcel" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.serdes.json.IonToJson" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.serdes.json.JsonToIon" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.serdes.parquet.IonToParquet" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.serdes.parquet.ParquetToIon" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.serdes.xml.IonToXml" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.serdes.xml.XmlToIon" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.sqlserver.Batch" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.sqlserver.Query" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.powerbi.RefreshGroupDataset" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.core.tasks.scripts.Node" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.scripts.node.Commands" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.scripts.node.Script" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.docker.Build" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.docker.Run" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.oracle.Batch" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.oracle.Query" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.zendesk.tickets.Create" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.debezium.mysql.Capture" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.debezium.sqlserver.Capture" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.cassandra.astradb.Query" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.cassandra.standard.Query" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.openai.ChatCompletion" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.openai.CreateImage" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.postgresql.Batch" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.postgresql.CopyIn" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.postgresql.CopyOut" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.postgresql.Query" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.core.tasks.scripts.Bash" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.scripts.shell.Commands" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.scripts.shell.Script" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.scripts.r.Commands" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.scripts.r.Script" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.debezium.db2.Capture" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.tika.Parse" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jira.issues.Create" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jira.issues.CreateComment" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.debezium.oracle.Capture" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.git.Clone" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.git.Push" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.git.PushFlows" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.git.PushNamespaceFiles" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.git.Sync" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.git.SyncFlows" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.git.SyncNamespaceFiles" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.servicenow.Post" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.sybase.Query" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.as400.Query" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.clickhouse.BulkInsert" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.clickhouse.Query" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.scripts.groovy.Eval" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.scripts.groovy.FileTransform" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.redis.list.ListPop" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.redis.list.ListPush" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.redis.pubsub.Publish" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.redis.string.Delete" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.redis.string.Get" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.redis.string.Set" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.linear.issues.Create" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.malloy.CLI" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.neo4j.Batch" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.neo4j.Query" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.hubspot.tickets.Create" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.scripts.powershell.Commands" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.scripts.powershell.Script" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.cloudquery.CloudQueryCLI" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.cloudquery.Sync" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.nats.Consume" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.nats.Produce" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.amqp.Consume" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.amqp.CreateQueue" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.amqp.DeclareExchange" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.amqp.Publish" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.amqp.QueueBind" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.notifications.discord.DiscordExecution" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.notifications.discord.DiscordIncomingWebhook" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.notifications.google.GoogleChatExecution" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.notifications.google.GoogleChatIncomingWebhook" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.notifications.mail.MailExecution" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.notifications.mail.MailSend" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.notifications.opsgenie.OpsgenieAlert" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.notifications.opsgenie.OpsgenieExecution" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.notifications.pagerduty.PagerDutyAlert" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.notifications.pagerduty.PagerDutyExecution" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.notifications.sendgrid.SendGridMailExecution" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.notifications.sendgrid.SendGridMailSend" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.notifications.sentry.SentryAlert" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.notifications.sentry.SentryExecution" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.notifications.slack.SlackExecution" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.notifications.slack.SlackIncomingWebhook" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.notifications.teams.TeamsExecution" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.notifications.teams.TeamsIncomingWebhook" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.notifications.telegram.TelegramExecution" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.notifications.telegram.TelegramSend" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.notifications.twilio.TwilioAlert" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.notifications.twilio.TwilioExecution" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.notifications.whatsapp.WhatsAppExecution" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.notifications.whatsapp.WhatsAppIncomingWebhook" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.notifications.zenduty.ZendutyAlert" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.notifications.zenduty.ZendutyExecution" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.azure.batch.job.Create" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.azure.batch.pool.Resize" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.azure.cli.AzCLI" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.azure.eventhubs.Consume" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.azure.eventhubs.Produce" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.azure.storage.blob.Copy" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.azure.storage.blob.Delete" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.azure.storage.blob.DeleteList" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.azure.storage.blob.Download" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.azure.storage.blob.Downloads" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.azure.storage.blob.List" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.azure.storage.blob.SharedAccess" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.azure.storage.blob.Upload" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.azure.storage.table.Bulk" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.azure.storage.table.Delete" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.azure.storage.table.Get" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.azure.storage.table.List" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.transform.grok.TransformItems" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.transform.grok.TransformValue" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.kubernetes.PodCreate" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.kubernetes.kubectl.Apply" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.transform.jsonata.TransformItems" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.transform.jsonata.TransformValue" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.vertica.Batch" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.vertica.Query" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.solace.Consume" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.solace.Produce" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.ansible.cli.AnsibleCLI" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.elasticsearch.Bulk" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.elasticsearch.Get" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.elasticsearch.Load" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.elasticsearch.Put" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.elasticsearch.Request" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.elasticsearch.Scroll" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.elasticsearch.Search" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.pinot.Query" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.aws.athena.Query" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.aws.cli.AwsCLI" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.aws.dynamodb.DeleteItem" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.aws.dynamodb.GetItem" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.aws.dynamodb.PutItem" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.aws.dynamodb.Query" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.aws.dynamodb.Scan" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.aws.ecr.GetAuthToken" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.aws.eventbridge.PutEvents" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.aws.kinesis.PutRecords" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.aws.lambda.Invoke" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.aws.s3.Copy" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.aws.s3.CreateBucket" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.aws.s3.Delete" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.aws.s3.DeleteList" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.aws.s3.Download" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.aws.s3.Downloads" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.aws.s3.List" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.aws.s3.Upload" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.aws.sns.Publish" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.aws.sqs.Consume" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.aws.sqs.Publish" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.sqlmesh.cli.SQLMeshCLI" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.surrealdb.Query" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.vectorwise.Batch" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.vectorwise.Query" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.arrowflight.Query" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.terraform.cli.TerraformCLI" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.debezium.mongodb.Capture" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.fs.ftp.Delete" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.fs.ftp.Download" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.fs.ftp.Downloads" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.fs.ftp.List" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.fs.ftp.Move" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.fs.ftp.Upload" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.fs.ftp.Uploads" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.fs.ftps.Delete" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.fs.ftps.Download" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.fs.ftps.Downloads" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.fs.ftps.List" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.fs.ftps.Move" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.fs.ftps.Upload" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.fs.ftps.Uploads" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.fs.sftp.Delete" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.fs.sftp.Download" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.fs.sftp.Downloads" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.fs.sftp.List" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.fs.sftp.Move" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.fs.sftp.Upload" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.fs.sftp.Uploads" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.fs.smb.Delete" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.fs.smb.Download" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.fs.smb.Downloads" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.fs.smb.List" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.fs.smb.Move" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.fs.smb.Upload" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.fs.smb.Uploads" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.fs.ssh.Command" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.kafka.Consume" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.kafka.Produce" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.airflow.dags.TriggerDagRun" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.core.tasks.scripts.Python" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.scripts.python.Commands" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.scripts.python.Script" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.crypto.openpgp.Decrypt" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.crypto.openpgp.Encrypt" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.scripts.jython.Eval" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.scripts.jython.FileTransform" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.mysql.Batch" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.mysql.Query" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.snowflake.Download" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.snowflake.Query" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.snowflake.Upload" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.redshift.Query" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.ldap.Add" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.ldap.Delete" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.ldap.IonToLdif" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.ldap.LdifToIon" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.ldap.Modify" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.ldap.Search" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.databricks.cluster.CreateCluster" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.databricks.cluster.DeleteCluster" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.databricks.dbfs.Download" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.databricks.dbfs.Upload" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.databricks.job.CreateJob" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.databricks.job.SubmitRun" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.databricks.sql.Query" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.sqlite.Query" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.mqtt.Publish" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.mqtt.Subscribe" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.pulsar.Consume" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.pulsar.Produce" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.pulsar.Reader" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.dbt.cli.Build" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.dbt.cli.Compile" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.dbt.cli.DbtCLI" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.dbt.cli.Deps" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.dbt.cli.Freshness" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.dbt.cli.List" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.dbt.cli.Run" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.dbt.cli.Seed" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.dbt.cli.Setup" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.dbt.cli.Snapshot" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.dbt.cli.Test" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.dbt.cloud.CheckStatus" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.dbt.cloud.TriggerRun" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.dremio.Query" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.googleworkspace.drive.Create" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.googleworkspace.drive.Delete" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.googleworkspace.drive.Download" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.googleworkspace.drive.Export" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.googleworkspace.drive.List" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.googleworkspace.drive.Upload" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.googleworkspace.sheets.Read" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.googleworkspace.sheets.ReadRange" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.airbyte.cloud.jobs.Reset" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.airbyte.cloud.jobs.Sync" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.airbyte.connections.CheckStatus" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.airbyte.connections.Sync" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.fivetran.connectors.Sync" + }, + { + "$dynamic": false + } + ] + } + ] + } + }, + "timeout": { + "type": "string", + "format": "duration" + }, + "type": { + "const": "io.kestra.plugin.core.flow.WorkingDirectory" + }, + "workerGroup": { + "$ref": "#/definitions/io.kestra.core.models.tasks.WorkerGroup" + } + }, + "required": ["id", "type"], + "title": "Run tasks sequentially in the same working directory.", + "markdownDescription": "Tasks are stateless by default. Kestra will launch each task within a temporary working directory on a Worker. The `WorkingDirectory` task allows reusing the same file system's working directory across multiple tasks so that multiple sequential tasks can use output files from previous tasks without having to use the `outputs.taskId.outputName` syntax. Note that the `WorkingDirectory` only works with runnable tasks because those tasks are executed directly on the Worker. This means that using flowable tasks such as the `Parallel` task within the `WorkingDirectory` task will not work. ##### Examples\n\u003E Clone a Git repository into the Working Directory and run a Python script in a Docker container.\n```yaml\nid: gitPython\nnamespace: company.team\n\ntasks:\n - id: wdir\n type: io.kestra.plugin.core.flow.WorkingDirectory\n tasks:\n - id: cloneRepository\n type: io.kestra.plugin.git.Clone\n url: https://github.com/kestra-io/examples\n branch: main\n\n - id: python\n type: io.kestra.plugin.scripts.python.Commands\n taskRunner:\n type: io.kestra.plugin.scripts.runner.docker.Docker\n containerImage: ghcr.io/kestra-io/pydata:latest\n commands:\n - python scripts/etl_script.py\n```\n\n\u003E Add input and output files within a Working Directory to use them in a Python script.\n```yaml\n id: apiJSONtoMongoDB\n namespace: company.team\n\n tasks:\n - id: wdir\n type: io.kestra.plugin.core.flow.WorkingDirectory\n outputFiles:\n - output.json\n inputFiles:\n query.sql: |\n SELECT sum(total) as total, avg(quantity) as avg_quantity\n FROM sales;\n tasks:\n - id: inlineScript\n type: io.kestra.plugin.scripts.python.Script\n taskRunner:\n type: io.kestra.plugin.scripts.runner.docker.Docker\n containerImage: python:3.11-slim\n beforeCommands:\n - pip install requests kestra \u003E /dev/null\n warningOnStdErr: false\n script: |\n import requests\n import json\n from kestra import Kestra\n\n with open('query.sql', 'r') as input_file:\n sql = input_file.read()\n\n response = requests.get('https://api.github.com')\n data = response.json()\n\n with open('output.json', 'w') as output_file:\n json.dump(data, output_file)\n\n Kestra.outputs({'receivedSQL': sql, 'status': response.status_code})\n\n - id: loadToMongoDB\n type: io.kestra.plugin.mongodb.Load\n connection:\n uri: mongodb://host.docker.internal:27017/\n database: local\n collection: github\n from: \"{{ outputs.wdir.uris['output.json'] }}\"\n\n```\n\n\u003E \n```yaml\nid: working-directory\nnamespace: company.team\n\ntasks:\n - id: working-directory\n type: io.kestra.plugin.core.flow.WorkingDirectory\n tasks:\n - id: first\n type: io.kestra.plugin.scripts.shell.Commands\n commands:\n - 'echo \"{{ taskrun.id }}\" \u003E {{ workingDir }}/stay.txt'\n - id: second\n type: io.kestra.plugin.scripts.shell.Commands\n commands:\n - |\n echo '::{\"outputs\": {\"stay\":\"'$(cat {{ workingDir }}/stay.txt)'\"}}::'\n```\n\n\u003E A working directory with a cache of the node_modules directory.\n```yaml\nid: node-with-cache\nnamespace: company.team\ntasks:\n - id: working-dir\n type: io.kestra.plugin.core.flow.WorkingDirectory\n cache:\n patterns:\n - node_modules/**\n ttl: PT1H\n tasks:\n - id: script\n type: io.kestra.plugin.scripts.node.Script\n beforeCommands:\n - npm install colors\n script: |\n const colors = require(\"colors\");\n console.log(colors.red(\"Hello\"));\n```" + }, + "io.kestra.plugin.core.flow.WorkingDirectory-Cache": { + "type": "object", + "properties": { + "patterns": { + "$dynamic": false, + "title": "List of file [glob](https://en.wikipedia.org/wiki/Glob_(programming)) patterns to include in the cache.", + "markdownDescription": "For example, 'node_modules/**' will include all files of the node_modules directory including sub-directories.", + "type": "array", + "items": { + "$dynamic": false, + "type": "string" + } + }, + "ttl": { + "$dynamic": false, + "type": "string", + "format": "duration", + "title": "Cache TTL (Time To Live), after this duration the cache will be deleted." + } + }, + "required": ["patterns"] + }, + "io.kestra.plugin.core.http.Download": { + "$metrics": [ + { + "name": "response.length", + "type": "counter", + "unit": "", + "description": "The content length" + } + ], + "type": "object", + "properties": { + "allowFailure": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "body": { + "$dynamic": true, + "type": "string", + "title": "The full body as a string" + }, + "contentType": { + "$dynamic": true, + "type": "string", + "title": "The request content type" + }, + "description": { + "type": "string" + }, + "disabled": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "failOnEmptyResponse": { + "$dynamic": false, + "type": "boolean", + "title": "Should the task fail when downloading an empty file.", + "default": true, + "markdownDescription": "Default value is : `true`" + }, + "formData": { + "$dynamic": true, + "type": "object", + "title": "The form data to be send" + }, + "headers": { + "$dynamic": true, + "type": "object", + "title": "The headers to pass to the request" + }, + "id": { + "type": "string", + "minLength": 1, + "pattern": "^[a-zA-Z0-9][a-zA-Z0-9_-]*" + }, + "logLevel": { + "type": "string", + "enum": ["ERROR", "WARN", "INFO", "DEBUG", "TRACE"] + }, + "method": { + "$dynamic": false, + "type": "string", + "enum": [ + "OPTIONS", + "GET", + "HEAD", + "POST", + "PUT", + "DELETE", + "TRACE", + "CONNECT", + "PATCH", + "CUSTOM" + ], + "title": "The HTTP method to use", + "default": "GET", + "markdownDescription": "Default value is : `GET`" + }, + "options": { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.http.HttpInterface-RequestOptions" + }, + { + "title": "The HTTP request options" + } + ] + }, + "retry": { + "oneOf": [ + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Constant-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Exponential-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Random-2" + } + ] + }, + "sslOptions": { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.http.HttpInterface-SslOptions" + }, + { + "title": "The SSL request options" + } + ] + }, + "timeout": { + "type": "string", + "format": "duration" + }, + "type": { + "const": "io.kestra.plugin.core.http.Download" + }, + "uri": { + "$dynamic": true, + "type": "string", + "title": "The fully-qualified URI that points to the HTTP destination" + }, + "workerGroup": { + "$ref": "#/definitions/io.kestra.core.models.tasks.WorkerGroup" + } + }, + "required": ["id", "type", "uri"], + "title": "Download a file from a HTTP server.", + "markdownDescription": "This task connects to a HTTP server and copy a file to Kestra's internal storage.##### Examples\n\u003E Download a CSV file.\n```yaml\nid: download\nnamespace: company.team\ntasks:\n - id: extract\n type: io.kestra.plugin.core.http.Download\n uri: https://huggingface.co/datasets/kestra/datasets/raw/main/csv/orders.csv\n```" + }, + "io.kestra.plugin.core.http.HttpInterface-RequestOptions": { + "type": "object", + "properties": { + "basicAuthPassword": { + "$dynamic": true, + "type": "string", + "title": "The HTTP basic authentication password." + }, + "basicAuthUser": { + "$dynamic": true, + "type": "string", + "title": "The HTTP basic authentication username." + }, + "connectTimeout": { + "$dynamic": false, + "type": "string", + "format": "duration", + "title": "The connect timeout." + }, + "connectionPoolIdleTimeout": { + "$dynamic": false, + "type": "string", + "format": "duration", + "title": "The idle timeout for connection in the client connection pool.", + "default": 0, + "markdownDescription": "Default value is : `0.0`" + }, + "defaultCharset": { + "allOf": [ + { + "$ref": "#/definitions/java.nio.charset.Charset" + }, + { + "$dynamic": false, + "title": "The default charset.", + "default": "UTF-8", + "markdownDescription": "Default value is : `UTF-8`" + } + ] + }, + "followRedirects": { + "$dynamic": false, + "type": "boolean", + "title": "Whether redirects should be followed.", + "default": true, + "markdownDescription": "Default value is : `true`" + }, + "logLevel": { + "$dynamic": false, + "type": "string", + "enum": [ + "ALL", + "TRACE", + "DEBUG", + "INFO", + "WARN", + "ERROR", + "OFF", + "NOT_SPECIFIED" + ], + "title": "The log level." + }, + "maxContentLength": { + "$dynamic": false, + "type": "integer", + "title": "The maximum content length of the response", + "default": 10485760, + "markdownDescription": "Default value is : `10485760`" + }, + "proxyAddress": { + "$dynamic": true, + "type": "string", + "title": "The proxy address." + }, + "proxyPassword": { + "$dynamic": true, + "type": "string", + "title": "The proxy password." + }, + "proxyPort": { + "$dynamic": false, + "type": "integer", + "title": "The proxy port." + }, + "proxyType": { + "$dynamic": false, + "type": "string", + "enum": ["DIRECT", "HTTP", "SOCKS"], + "title": "The proxy type.", + "default": "DIRECT", + "markdownDescription": "Default value is : `DIRECT`" + }, + "proxyUsername": { + "$dynamic": true, + "type": "string", + "title": "The proxy username." + }, + "readIdleTimeout": { + "$dynamic": false, + "type": "string", + "format": "duration", + "title": "The default amount of time to allow the read connection to remain idle.", + "default": 300, + "markdownDescription": "Default value is : `300.000000000`" + }, + "readTimeout": { + "$dynamic": false, + "type": "string", + "format": "duration", + "title": "The default read timeout.", + "default": 10, + "markdownDescription": "Default value is : `10.000000000`" + } + } + }, + "io.kestra.plugin.core.http.HttpInterface-SslOptions": { + "type": "object", + "properties": { + "insecureTrustAllCertificates": { + "$dynamic": false, + "type": "boolean", + "title": "Whether the client should disable checking of the remote SSL certificate.", + "markdownDescription": "Only applies if no trust store is configured. Note: This makes the SSL connection insecure, and should only be used for testing. If you are using a self-signed certificate, set up a trust store instead." + } + } + }, + "io.kestra.plugin.core.http.Request": { + "type": "object", + "properties": { + "allowFailed": { + "type": "boolean", + "title": "If true, allow a failed response code (response code \u003E= 400)", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "allowFailure": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "body": { + "$dynamic": true, + "type": "string", + "title": "The full body as a string" + }, + "contentType": { + "$dynamic": true, + "type": "string", + "title": "The request content type" + }, + "description": { + "type": "string" + }, + "disabled": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "encryptBody": { + "type": "boolean", + "title": "If true, the HTTP response body will be automatically encrypted and decrypted in the outputs, provided that encryption is configured in your Kestra configuration.", + "default": false, + "markdownDescription": "If this property is set to `true`, this task will output the request body using the `encryptedBody` output property; otherwise, the request body will be stored in the `body` output property.\n\nDefault value is : `false`" + }, + "formData": { + "$dynamic": true, + "type": "object", + "title": "The form data to be send" + }, + "headers": { + "$dynamic": true, + "type": "object", + "title": "The headers to pass to the request" + }, + "id": { + "type": "string", + "minLength": 1, + "pattern": "^[a-zA-Z0-9][a-zA-Z0-9_-]*" + }, + "logLevel": { + "type": "string", + "enum": ["ERROR", "WARN", "INFO", "DEBUG", "TRACE"] + }, + "method": { + "$dynamic": false, + "type": "string", + "enum": [ + "OPTIONS", + "GET", + "HEAD", + "POST", + "PUT", + "DELETE", + "TRACE", + "CONNECT", + "PATCH", + "CUSTOM" + ], + "title": "The HTTP method to use", + "default": "GET", + "markdownDescription": "Default value is : `GET`" + }, + "options": { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.http.HttpInterface-RequestOptions" + }, + { + "title": "The HTTP request options" + } + ] + }, + "retry": { + "oneOf": [ + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Constant-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Exponential-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Random-2" + } + ] + }, + "sslOptions": { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.http.HttpInterface-SslOptions" + }, + { + "title": "The SSL request options" + } + ] + }, + "timeout": { + "type": "string", + "format": "duration" + }, + "type": { + "const": "io.kestra.plugin.core.http.Request" + }, + "uri": { + "$dynamic": true, + "type": "string", + "title": "The fully-qualified URI that points to the HTTP destination" + }, + "workerGroup": { + "$ref": "#/definitions/io.kestra.core.models.tasks.WorkerGroup" + } + }, + "required": ["id", "type", "uri"], + "title": "Make an HTTP API request to a specified URL and store the response as output.", + "markdownDescription": "This task makes an API call to a specified URL of an HTTP server and stores the response as output.\nBy default, the maximum length of the response is limited to 10MB, but it can be increased to at most 2GB by using the `options.maxContentLength` property.\nNote that the response is added as output to the task. If you need to process large API payloads, we recommend using the `Download` task instead.##### Examples\n\u003E Execute a Kestra flow via an HTTP POST request authenticated with basic auth. To pass a `user` input to the API call, we use the `formData` property. When using form data, make sure to set the `contentType` property to `multipart/form-data`.\n```yaml\nid: api_call\nnamespace: company.team\ntasks:\n - id: basic_auth_api\n type: io.kestra.plugin.core.http.Request\n uri: http://host.docker.internal:8080/api/v1/executions/dev/inputs_demo\n options:\n basicAuthUser: admin\n basicAuthPassword: admin\n method: POST\n contentType: multipart/form-data\n formData:\n user: John Doe\n\n```\n\n\u003E Execute a Kestra flow via an HTTP request authenticated with a Bearer auth token.\n```yaml\nid: api_auth_call\nnamespace: company.team\ntasks:\n - id: auth_token_api\n type: io.kestra.plugin.core.http.Request\n uri: https://dummyjson.com/user/me\n method: GET\n headers:\n authorization: 'Bearer \u003CTOKEN\u003E'\n\n```\n\n\u003E Make a HTTP request and process its output. Given that we send a JSON payload in the request body, we need to use `application/json` as content type.\n```yaml\nid: http_post_request_example\nnamespace: company.team\n\ninputs:\n - id: payload\n type: JSON\n defaults: |\n {\"title\": \"Kestra Pen\"}\n\ntasks:\n - id: send_data\n type: io.kestra.plugin.core.http.Request\n uri: https://dummyjson.com/products/add\n method: POST\n contentType: application/json\n body: \"{{ inputs.payload }}\"\n\n - id: print_status\n type: io.kestra.plugin.core.log.Log\n message: '{{ outputs.send_data.body }}'\n```\n\n\u003E Send an HTTP POST request to a webserver.\n```yaml\nuri: \"https://server.com/login\"\nheaders: \n user-agent: \"kestra-io\"\nmethod: \"POST\"\nformData:\n user: \"user\"\n password: \"pass\"\n```\n\n\u003E Send a multipart HTTP POST request to a webserver.\n```yaml\nuri: \"https://server.com/upload\"\nheaders: \n user-agent: \"kestra-io\"\nmethod: \"POST\"\ncontentType: \"multipart/form-data\"\nformData:\n user: \"{{ inputs.file }}\"\n```\n\n\u003E Send a multipart HTTP POST request to a webserver and set a custom file name.\n```yaml\nuri: \"https://server.com/upload\"\nheaders: \n user-agent: \"kestra-io\"\nmethod: \"POST\"\ncontentType: \"multipart/form-data\"\nformData:\n user:\n name: \"my-file.txt\"\n content: \"{{ inputs.file }}\"\n```" + }, + "io.kestra.plugin.core.http.Trigger": { + "type": "object", + "properties": { + "body": { + "$dynamic": true, + "type": "string", + "title": "The full body as a string" + }, + "conditions": { + "$dynamic": false, + "title": "List of conditions in order to limit the flow trigger.", + "type": "array", + "items": { + "oneOf": [ + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.DateTimeBetweenCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.DayWeekCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.DayWeekInMonthCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.ExecutionFlowCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.ExecutionLabelsCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.ExecutionNamespaceCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.ExecutionOutputsCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.ExecutionStatusCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.ExpressionCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.FlowCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.FlowNamespaceCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.HasRetryAttemptCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.MultipleCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.NotCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.OrCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.PublicHolidayCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.TimeBetweenCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.WeekendCondition" + }, + { + "$dynamic": false + } + ] + } + ] + } + }, + "contentType": { + "$dynamic": true, + "type": "string", + "title": "The request content type" + }, + "description": { + "type": "string" + }, + "disabled": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "encryptBody": { + "type": "boolean", + "title": "If true, the HTTP response body will be automatically encrypted and decrypted in the outputs if encryption is configured", + "default": false, + "markdownDescription": "When true, the `encryptedBody` output will be filled, otherwise the `body` output will be filled\n\nDefault value is : `false`" + }, + "formData": { + "$dynamic": true, + "type": "object", + "title": "The form data to be send" + }, + "headers": { + "$dynamic": true, + "type": "object", + "title": "The headers to pass to the request" + }, + "id": { + "type": "string", + "title": "A unique ID for the whole flow.", + "minLength": 1, + "pattern": "^[a-zA-Z0-9][a-zA-Z0-9_-]*" + }, + "interval": { + "$dynamic": false, + "type": "string", + "format": "duration", + "title": "Interval between polling.", + "default": 60, + "markdownDescription": "The interval between 2 different polls of schedule, this can avoid to overload the remote system with too many calls. For most of the triggers that depend on external systems, a minimal interval must be at least PT30S.\nSee [ISO_8601 Durations](https://en.wikipedia.org/wiki/ISO_8601#Durations) for more information of available interval values.\n\nDefault value is : `60.000000000`" + }, + "labels": { + "title": "The labels to pass to the execution created.", + "type": "array", + "items": { + "$ref": "#/definitions/io.kestra.core.models.Label" + } + }, + "logLevel": { + "type": "string", + "enum": ["ERROR", "WARN", "INFO", "DEBUG", "TRACE"] + }, + "method": { + "$dynamic": false, + "type": "string", + "enum": [ + "OPTIONS", + "GET", + "HEAD", + "POST", + "PUT", + "DELETE", + "TRACE", + "CONNECT", + "PATCH", + "CUSTOM" + ], + "title": "The HTTP method to use", + "default": "GET", + "markdownDescription": "Default value is : `GET`" + }, + "options": { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.http.HttpInterface-RequestOptions" + }, + { + "title": "The HTTP request options" + } + ] + }, + "responseCondition": { + "$dynamic": true, + "type": "string", + "title": "The condition on the HTTP response to trigger a flow which can be any expression that evaluates to a boolean value.", + "default": "{{ response.statusCode \u003C 400 }}", + "markdownDescription": "The condition will be evaluated after calling the HTTP endpoint, it can use the response itself to determine whether to start a flow or not.\nThe following variables are available when evaluating the condition:\n- `response.statusCode`: the response HTTP status code\n- `response.body`: the response body as a string\n- `response.headers`: the response headers\n\nBoolean coercion allows 0, -0, null and '' to evaluate to false, all other values will evaluate to true.\n\nThe condition will be evaluated before any 'generic trigger conditions' that can be configured via the `conditions` property.\n\n\nDefault value is : `\"{{ response.statusCode \u003C 400 }}\"`" + }, + "sslOptions": { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.http.HttpInterface-SslOptions" + }, + { + "title": "The SSL request options" + } + ] + }, + "stopAfter": { + "$dynamic": false, + "title": "List of execution states after which a trigger should be stopped (a.k.a. disabled).", + "type": "array", + "items": { + "$dynamic": false, + "type": "string", + "enum": [ + "CREATED", + "RUNNING", + "PAUSED", + "RESTARTED", + "KILLING", + "SUCCESS", + "WARNING", + "FAILED", + "KILLED", + "CANCELLED", + "QUEUED", + "RETRYING", + "RETRIED" + ] + } + }, + "type": { + "const": "io.kestra.plugin.core.http.Trigger" + }, + "uri": { + "$dynamic": true, + "type": "string", + "title": "The fully-qualified URI that points to the HTTP destination" + }, + "workerGroup": { + "$ref": "#/definitions/io.kestra.core.models.tasks.WorkerGroup" + } + }, + "required": ["id", "type", "uri"], + "title": "Trigger a flow based on an HTTP response", + "markdownDescription": "##### Examples\n\u003E Send a Slack alert if the price is below a certain threshold. The flow will be triggered every 30 seconds until the condition is met. Then, the `stopAfter` property will disable the trigger to avoid unnecessary API calls and alerts.\n```yaml\nid: http_price_alert\nnamespace: company.team\n\ntasks:\n - id: send_slack_alert\n type: io.kestra.plugin.notifications.slack.SlackIncomingWebhook\n url: \"{{ secret('SLACK_WEBHOOK') }}\"\n payload: |\n {\n \"channel\": \"#price-alerts\",\n \"text\": \"The price is now: {{ json(trigger.body).price }}\"\n }\n\ntriggers:\n - id: http\n type: io.kestra.plugin.core.http.Trigger\n uri: https://fakestoreapi.com/products/1\n responseCondition: \"{{ json(response.body).price \u003C= 110 }}\"\n interval: PT30S\n stopAfter:\n - SUCCESS\n```\n\n\u003E Trigger a flow if an HTTP endpoint returns a status code equals to 200\n```yaml\nid: http-trigger\nnamespace: company.team\n\ntriggers:\n - id: http\n type: io.kestra.plugin.core.http.Trigger\n uri: https://api.chucknorris.io/jokes/random\n responseCondition: \"{{ response.statusCode == 200 }}\"\n stopAfter:\n - SUCCESS\n\ntasks:\n - id: log_response\n type: io.kestra.plugin.core.log.Log\n message: '{{ trigger.body }}'\n```" + }, + "io.kestra.plugin.core.kv.Delete": { + "type": "object", + "properties": { + "allowFailure": { + "type": "boolean" + }, + "description": { + "type": "string" + }, + "disabled": { + "type": "boolean" + }, + "errorOnMissing": { + "$dynamic": false, + "type": "boolean", + "title": "Whether to fail if there is no value for the given key." + }, + "id": { + "type": "string", + "minLength": 1, + "pattern": "^[a-zA-Z0-9][a-zA-Z0-9_-]*" + }, + "key": { + "$dynamic": true, + "type": "string", + "title": "The key for which to delete the value." + }, + "logLevel": { + "type": "string", + "enum": ["ERROR", "WARN", "INFO", "DEBUG", "TRACE"] + }, + "namespace": { + "$dynamic": true, + "type": "string", + "title": "The namespace on which to set the value." + }, + "retry": { + "oneOf": [ + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Constant-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Exponential-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Random-2" + } + ] + }, + "timeout": { + "type": "string", + "format": "duration" + }, + "type": { + "const": "io.kestra.plugin.core.kv.Delete" + }, + "workerGroup": { + "$ref": "#/definitions/io.kestra.core.models.tasks.WorkerGroup" + } + }, + "required": ["id", "type"], + "title": "Deletes a KV pair.", + "markdownDescription": "##### Examples\n\u003E Delete a KV pair.\n```yaml\nid: delete_kv\ntype: io.kestra.plugin.core.kv.Delete\nkey: myvariable\nnamespace: dev # the current namespace of the flow will be used by default\n```" + }, + "io.kestra.plugin.core.kv.Get": { + "type": "object", + "properties": { + "allowFailure": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "description": { + "type": "string" + }, + "disabled": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "errorOnMissing": { + "$dynamic": false, + "type": "boolean", + "title": "Whether to fail if there is no value for the given key.", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "id": { + "type": "string", + "minLength": 1, + "pattern": "^[a-zA-Z0-9][a-zA-Z0-9_-]*" + }, + "key": { + "$dynamic": true, + "type": "string", + "title": "The key for which to get the value." + }, + "logLevel": { + "type": "string", + "enum": ["ERROR", "WARN", "INFO", "DEBUG", "TRACE"] + }, + "namespace": { + "$dynamic": true, + "type": "string", + "title": "The namespace on which to get the value.", + "default": "{{ flow.namespace }}", + "markdownDescription": "Default value is : `\"{{ flow.namespace }}\"`" + }, + "retry": { + "oneOf": [ + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Constant-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Exponential-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Random-2" + } + ] + }, + "timeout": { + "type": "string", + "format": "duration" + }, + "type": { + "const": "io.kestra.plugin.core.kv.Get" + }, + "workerGroup": { + "$ref": "#/definitions/io.kestra.core.models.tasks.WorkerGroup" + } + }, + "required": ["id", "key", "type"], + "title": "Gets value linked to a key.", + "markdownDescription": "##### Examples\n\u003E Get value for `myvariable` key in `dev` namespace and fail if it's not present.\n```yaml\nid: get_kv\ntype: io.kestra.plugin.core.kv.Get\nkey: myvariable\nnamespace: dev # the current namespace of the flow will be used by default\nerrorOnMissing: true\n```" + }, + "io.kestra.plugin.core.kv.GetKeys": { + "type": "object", + "properties": { + "allowFailure": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "description": { + "type": "string" + }, + "disabled": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "id": { + "type": "string", + "minLength": 1, + "pattern": "^[a-zA-Z0-9][a-zA-Z0-9_-]*" + }, + "logLevel": { + "type": "string", + "enum": ["ERROR", "WARN", "INFO", "DEBUG", "TRACE"] + }, + "namespace": { + "$dynamic": true, + "type": "string", + "title": "The namespace on which to get the value.", + "default": "{{ flow.namespace }}", + "markdownDescription": "Default value is : `\"{{ flow.namespace }}\"`" + }, + "prefix": { + "$dynamic": true, + "type": "string", + "title": "The key for which to get the value." + }, + "retry": { + "oneOf": [ + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Constant-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Exponential-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Random-2" + } + ] + }, + "timeout": { + "type": "string", + "format": "duration" + }, + "type": { + "const": "io.kestra.plugin.core.kv.GetKeys" + }, + "workerGroup": { + "$ref": "#/definitions/io.kestra.core.models.tasks.WorkerGroup" + } + }, + "required": ["id", "type"], + "title": "Gets keys matching a given prefix.", + "markdownDescription": "##### Examples\n\u003E Get keys that are prefixed by `myvar`.\n```yaml\nid: keys_kv\ntype: io.kestra.plugin.core.kv.GetKeys\nprefix: myvar\nnamespace: dev # the current namespace of the flow will be used by default\n```" + }, + "io.kestra.plugin.core.kv.Set": { + "type": "object", + "properties": { + "allowFailure": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "description": { + "type": "string" + }, + "disabled": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "id": { + "type": "string", + "minLength": 1, + "pattern": "^[a-zA-Z0-9][a-zA-Z0-9_-]*" + }, + "key": { + "$dynamic": true, + "type": "string", + "title": "The key for which to set the value." + }, + "logLevel": { + "type": "string", + "enum": ["ERROR", "WARN", "INFO", "DEBUG", "TRACE"] + }, + "namespace": { + "$dynamic": true, + "type": "string", + "title": "The namespace on which to set the value.", + "default": "{{ flow.namespace }}", + "markdownDescription": "Default value is : `\"{{ flow.namespace }}\"`" + }, + "overwrite": { + "$dynamic": false, + "type": "boolean", + "title": "Whether to overwrite or fail if a value for the given key already exists.", + "default": true, + "markdownDescription": "Default value is : `true`" + }, + "retry": { + "oneOf": [ + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Constant-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Exponential-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Random-2" + } + ] + }, + "timeout": { + "type": "string", + "format": "duration" + }, + "ttl": { + "$dynamic": false, + "type": "string", + "format": "duration", + "title": "Optional time-to-live for the key-value pair." + }, + "type": { + "const": "io.kestra.plugin.core.kv.Set" + }, + "value": { + "$dynamic": true, + "type": "string", + "title": "The value to map to the key." + }, + "workerGroup": { + "$ref": "#/definitions/io.kestra.core.models.tasks.WorkerGroup" + } + }, + "required": ["id", "key", "type", "value"], + "title": "Sets (or modifies) a KV pair.", + "markdownDescription": "##### Examples\n\u003E Set `query` task `uri` output as value for `myvariable` key in `dev` namespace.\n```yaml\nid: set_kv\ntype: io.kestra.plugin.core.kv.Set\nkey: myvariable\nvalue: \"{{ outputs.query.uri }}\"\nnamespace: dev # the current namespace of the flow will be used by default\noverwrite: true # whether to overwrite or fail if a value for that key already exists; default true\nttl: P30D # optional TTL\n```" + }, + "io.kestra.plugin.core.log.Fetch": { + "type": "object", + "properties": { + "allowFailure": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "description": { + "type": "string" + }, + "disabled": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "executionId": { + "$dynamic": true, + "type": "string", + "title": "Filter for a specific execution.", + "markdownDescription": "If not set, the task will use the ID of the current execution.\nIf set, it will try to locate the execution on the current flow unless the `namespace` and `flowId` properties are set." + }, + "flowId": { + "$dynamic": true, + "type": "string", + "title": "Filter for a specific flow identifier in case `executionId` is set." + }, + "id": { + "type": "string", + "minLength": 1, + "pattern": "^[a-zA-Z0-9][a-zA-Z0-9_-]*" + }, + "level": { + "$dynamic": false, + "type": "string", + "enum": ["ERROR", "WARN", "INFO", "DEBUG", "TRACE"], + "title": "The lowest log level that you want to fetch.", + "default": "INFO", + "markdownDescription": "Default value is : `INFO`" + }, + "logLevel": { + "type": "string", + "enum": ["ERROR", "WARN", "INFO", "DEBUG", "TRACE"] + }, + "namespace": { + "$dynamic": true, + "type": "string", + "title": "Filter for a specific namespace in case `executionId` is set." + }, + "retry": { + "oneOf": [ + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Constant-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Exponential-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Random-2" + } + ] + }, + "tasksId": { + "$dynamic": false, + "title": "Filter for one or more task(s).", + "type": "array", + "items": { + "$dynamic": false, + "type": "string" + } + }, + "timeout": { + "type": "string", + "format": "duration" + }, + "type": { + "const": "io.kestra.plugin.core.log.Fetch" + }, + "workerGroup": { + "$ref": "#/definitions/io.kestra.core.models.tasks.WorkerGroup" + } + }, + "required": ["id", "type"], + "title": "Fetch execution logs and store them in a file.", + "markdownDescription": "This task is useful to automate moving logs between various systems and environments.##### Examples\n\u003E \n```yaml\nlevel: INFO\nexecutionId: \"{{ trigger.executionId }}\"\n```\n\n\u003E \n```yaml\nlevel: WARN\nexecutionId: \"{{ execution.id }}\"\ntasksId: \n - \"previous_task_id\"\n```" + }, + "io.kestra.plugin.core.log.Log": { + "type": "object", + "properties": { + "allowFailure": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "description": { + "type": "string" + }, + "disabled": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "id": { + "type": "string", + "minLength": 1, + "pattern": "^[a-zA-Z0-9][a-zA-Z0-9_-]*" + }, + "level": { + "$dynamic": false, + "type": "string", + "enum": ["ERROR", "WARN", "INFO", "DEBUG", "TRACE"], + "title": "The log level. If not specified, it defaults to `INFO`.", + "default": "INFO", + "markdownDescription": "Default value is : `INFO`" + }, + "logLevel": { + "type": "string", + "enum": ["ERROR", "WARN", "INFO", "DEBUG", "TRACE"] + }, + "message": { + "$dynamic": true, + "title": "One or more message(s) to be sent to the backend as logs.", + "oneOf": [ + { + "type": "string" + }, + { + "type": "array", + "items": { + "type": "string" + } + } + ], + "markdownDescription": "It can be a string or an array of strings." + }, + "retry": { + "oneOf": [ + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Constant-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Exponential-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Random-2" + } + ] + }, + "timeout": { + "type": "string", + "format": "duration" + }, + "type": { + "const": "io.kestra.plugin.core.log.Log" + }, + "workerGroup": { + "$ref": "#/definitions/io.kestra.core.models.tasks.WorkerGroup" + } + }, + "required": ["id", "message", "type"], + "title": "Log a message to the console.", + "markdownDescription": "##### Examples\n\u003E \n```yaml\nlevel: DEBUG\nmessage: \"{{ task.id }} \u003E {{ taskrun.startDate }}\"\n```\n\n\u003E Log one or more messages to the console.\n```yaml\nid: hello_world\nnamespace: company.team\n\ntasks:\n - id: greeting\n type: io.kestra.plugin.core.log.Log\n message:\n - Kestra team wishes you a great day 👋\n - If you need some help, reach out via Slack\n```" + }, + "io.kestra.plugin.core.log.PurgeLogs": { + "type": "object", + "properties": { + "allowFailure": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "description": { + "type": "string" + }, + "disabled": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "endDate": { + "$dynamic": true, + "type": "string", + "title": "The maximum date to be purged.", + "markdownDescription": "All logs before this date will be purged." + }, + "flowId": { + "$dynamic": true, + "type": "string", + "title": "The flow ID of the logs to be purged.", + "markdownDescription": "You need to provide the `namespace` properties if you want to purge a flow logs." + }, + "id": { + "type": "string", + "minLength": 1, + "pattern": "^[a-zA-Z0-9][a-zA-Z0-9_-]*" + }, + "logLevel": { + "type": "string", + "enum": ["ERROR", "WARN", "INFO", "DEBUG", "TRACE"] + }, + "logLevels": { + "$dynamic": false, + "title": "The levels of the logs to be purged.", + "markdownDescription": "If not set, log for any levels will be purged.", + "type": "array", + "items": { + "$dynamic": false, + "type": "string", + "enum": ["ERROR", "WARN", "INFO", "DEBUG", "TRACE"] + } + }, + "namespace": { + "$dynamic": true, + "type": "string", + "title": "Namespace whose logs need to be purged, or namespace of the logs that needs to be purged.", + "markdownDescription": "If `flowId` isn't provided, this is a namespace prefix, else the namespace of the flow." + }, + "retry": { + "oneOf": [ + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Constant-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Exponential-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Random-2" + } + ] + }, + "startDate": { + "$dynamic": true, + "type": "string", + "title": "The minimum date to be purged.", + "markdownDescription": "All logs after this date will be purged." + }, + "timeout": { + "type": "string", + "format": "duration" + }, + "type": { + "const": "io.kestra.plugin.core.log.PurgeLogs" + }, + "workerGroup": { + "$ref": "#/definitions/io.kestra.core.models.tasks.WorkerGroup" + } + }, + "required": ["endDate", "id", "type"], + "title": "Purge flow execution and trigger logs.", + "markdownDescription": "This task can be used to purge flow execution and trigger logs for all flows, for a specific namespace, or for a specific flow.##### Examples\n\u003E Purge all logs that has been created more than one month ago.\n```yaml\nendDate: \"{{ now() | dateAdd(-1, 'MONTHS') }}\"\n```\n\n\u003E Purge all logs that has been created more than one month ago, but keep error logs.\n```yaml\nendDate: \"{{ now() | dateAdd(-1, 'MONTHS') }}\"\nlogLevels:\n- TRACE\n- DEBUG\n- INFO\n- WARNING\n```" + }, + "io.kestra.plugin.core.namespace.DeleteFiles": { + "type": "object", + "properties": { + "allowFailure": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "description": { + "type": "string" + }, + "disabled": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "files": { + "$dynamic": true, + "title": "A file or a list of files from the given namespace.", + "markdownDescription": "String or a list of strings; each string can either be a regex glob pattern or a file path URI.", + "oneOf": [ + { + "type": "array", + "items": {} + }, + { + "type": "string" + } + ] + }, + "id": { + "type": "string", + "minLength": 1, + "pattern": "^[a-zA-Z0-9][a-zA-Z0-9_-]*" + }, + "logLevel": { + "type": "string", + "enum": ["ERROR", "WARN", "INFO", "DEBUG", "TRACE"] + }, + "namespace": { + "$dynamic": true, + "type": "string", + "title": "The namespace from which the files should be deleted." + }, + "retry": { + "oneOf": [ + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Constant-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Exponential-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Random-2" + } + ] + }, + "timeout": { + "type": "string", + "format": "duration" + }, + "type": { + "const": "io.kestra.plugin.core.namespace.DeleteFiles" + }, + "workerGroup": { + "$ref": "#/definitions/io.kestra.core.models.tasks.WorkerGroup" + } + }, + "required": ["files", "id", "namespace", "type"], + "title": "Delete one or multiple files from your namespace files.", + "markdownDescription": "##### Examples\n\u003E Delete namespace files that match a specific regex glob pattern.\n```yaml\nid: delete_files\nnamespace: company.team\ntasks:\n - id: delete\n type: io.kestra.plugin.core.namespace.DeleteFiles\n namespace: tutorial\n files:\n - \"**.upl\"\n\n```\n\n\u003E Delete all namespace files from a specific namespace.\n```yaml\nid: delete_all_files\nnamespace: company.team\ntasks:\n - id: delete\n type: io.kestra.plugin.core.namespace.DeleteFiles\n namespace: tutorial\n files:\n - \"**\"\n\n```" + }, + "io.kestra.plugin.core.namespace.DownloadFiles": { + "type": "object", + "properties": { + "allowFailure": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "description": { + "type": "string" + }, + "destination": { + "$dynamic": true, + "type": "string", + "title": "The folder where the downloaded files will be stored", + "default": "", + "markdownDescription": "Default value is : `--- \"\"`" + }, + "disabled": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "files": { + "$dynamic": true, + "title": "A file or a list of files from the given namespace.", + "markdownDescription": "String or a list of strings; each string can either be a regex glob pattern or a file path URI.", + "oneOf": [ + { + "type": "array", + "items": {} + }, + { + "type": "string" + } + ] + }, + "id": { + "type": "string", + "minLength": 1, + "pattern": "^[a-zA-Z0-9][a-zA-Z0-9_-]*" + }, + "logLevel": { + "type": "string", + "enum": ["ERROR", "WARN", "INFO", "DEBUG", "TRACE"] + }, + "namespace": { + "$dynamic": true, + "type": "string", + "title": "The namespace from which you want to download files." + }, + "retry": { + "oneOf": [ + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Constant-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Exponential-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Random-2" + } + ] + }, + "timeout": { + "type": "string", + "format": "duration" + }, + "type": { + "const": "io.kestra.plugin.core.namespace.DownloadFiles" + }, + "workerGroup": { + "$ref": "#/definitions/io.kestra.core.models.tasks.WorkerGroup" + } + }, + "required": ["files", "id", "namespace", "type"], + "title": "Download one or multiple files from your namespace files.", + "markdownDescription": "Use a regex glob pattern or a file path to download files from your namespace files. This can be useful to share code between projects and teams, which is located in different namespaces.##### Examples\n\u003E Download a namespace file.\n```yaml\nid: download_file\nnamespace: company.team\ntasks:\n - id: download\n type: io.kestra.plugin.core.namespace.DownloadFiles\n namespace: tutorial\n files:\n - \"**input.txt\"\n\n```\n\n\u003E Download all namespace files from a specific namespace.\n```yaml\nid: download_all_files\nnamespace: company.team\ntasks:\n - id: download\n type: io.kestra.plugin.core.namespace.DownloadFiles\n namespace: tutorial\n files:\n - \"**\"\n\n```" + }, + "io.kestra.plugin.core.namespace.UploadFiles": { + "type": "object", + "properties": { + "allowFailure": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "conflict": { + "type": "string", + "enum": ["OVERWRITE", "ERROR", "SKIP"], + "title": "Which action to take when uploading a file that already exists.", + "default": "OVERWRITE", + "markdownDescription": "Can be one of the following options: OVERWRITE, ERROR or SKIP. Default is OVERWRITE.\n\nDefault value is : `OVERWRITE`" + }, + "description": { + "type": "string" + }, + "destination": { + "$dynamic": true, + "type": "string", + "title": "The destination folder.", + "default": "/", + "markdownDescription": "Required when providing a list of files.\n\nDefault value is : `/`" + }, + "disabled": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "files": { + "$dynamic": true, + "title": "A list of Regex that match files in the current directory.", + "markdownDescription": "This should be a list of Regex matching the [Apache Ant patterns](https://ant.apache.org/manual/dirtasks.html#patterns).It's primarily intended to be used with the `WorkingDirectory` task", + "type": "array", + "items": { + "$dynamic": true, + "type": "string" + } + }, + "filesMap": { + "$dynamic": true, + "title": "A map of key-value pairs where the key is the filename and the value is the URI of the file to upload.", + "markdownDescription": "This should be a map of URI, with the key being the filename that will be upload, and the key the URI.This one is intended to be used with output files of other tasks. Many Kestra tasks, incl. all Downloads tasks, output a map of files so that you can directly pass the output property to this task e.g. [outputFiles in the S3 Downloads task](https://kestra.io/plugins/plugin-aws/tasks/s3/io.kestra.plugin.aws.s3.downloads#outputfiles) or the [files in the Archive Decompress task](https://kestra.io/plugins/plugin-compress/tasks/io.kestra.plugin.compress.archivedecompress#files).", + "oneOf": [ + { + "type": "object" + }, + { + "type": "string" + } + ] + }, + "id": { + "type": "string", + "minLength": 1, + "pattern": "^[a-zA-Z0-9][a-zA-Z0-9_-]*" + }, + "logLevel": { + "type": "string", + "enum": ["ERROR", "WARN", "INFO", "DEBUG", "TRACE"] + }, + "namespace": { + "$dynamic": true, + "type": "string", + "title": "The namespace to which the files will be uploaded." + }, + "retry": { + "oneOf": [ + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Constant-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Exponential-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Random-2" + } + ] + }, + "timeout": { + "type": "string", + "format": "duration" + }, + "type": { + "const": "io.kestra.plugin.core.namespace.UploadFiles" + }, + "workerGroup": { + "$ref": "#/definitions/io.kestra.core.models.tasks.WorkerGroup" + } + }, + "required": ["id", "namespace", "type"], + "title": "Upload one or multiple files to a specific namespace.", + "markdownDescription": "Use a regex glob pattern or a file path to upload files as Namespace Files. When using a map with the desired file name as key and file path as value, you can also rename or relocate files.##### Examples\n\u003E Upload files generated by a previous task using the `filesMap` property.\n```yaml\nid: upload_files_from_git\nnamespace: company.team\n\ntasks:\n - id: download\n type: io.kestra.plugin.core.http.Download\n uri: https://github.com/kestra-io/scripts/archive/refs/heads/main.zip\n \n - id: unzip\n type: io.kestra.plugin.compress.ArchiveDecompress\n from: \"{{ outputs.download.uri }}\"\n algorithm: ZIP\n\n - id: upload\n type: io.kestra.plugin.core.namespace.UploadFiles\n filesMap: \"{{ outputs.unzip.files }}\"\n namespace: company.team\n```\n\n\u003E Upload a folder using a glob pattern. Note that the Regex syntax requires a `glob` pattern inspired by [Apache Ant patterns](https://ant.apache.org/manual/dirtasks.html#patterns). Make sure that your pattern starts with `glob:`, followed by the pattern. For example, use `glob:**/dbt/**` to upload the entire `dbt` folder (with all files and subdirectories) regardless of that folder's location in the directory structure.\n```yaml\nid: upload_dbt_project\nnamespace: dwh\ntasks:\n - id: wdir\n type: io.kestra.plugin.core.flow.WorkingDirectory\n tasks:\n - id: git_clone\n type: io.kestra.plugin.git.Clone\n url: https://github.com/kestra-io/dbt-example\n branch: master\n - id: upload\n type: io.kestra.plugin.core.namespace.UploadFiles\n files:\n - \"glob:**/dbt/**\"\n namespace: dwh\n```\n\n\u003E Upload a specific file and rename it.\n```yaml\nid: upload_a_file\nnamespace: dwh\n\ntasks:\n - id: download\n type: io.kestra.plugin.core.http.Download\n uri: https://github.com/kestra-io/scripts/archive/refs/heads/main.zip\n \n - id: unzip\n type: io.kestra.plugin.compress.ArchiveDecompress\n from: \"{{ outputs.download.uri }}\"\n algorithm: ZIP\n\n - id: upload\n type: io.kestra.plugin.core.namespace.UploadFiles\n filesMap:\n LICENCE: \"{{ outputs.unzip.files['scripts-main/LICENSE'] }}\"\n namespace: dwh\n```" + }, + "io.kestra.plugin.core.output.OutputValues": { + "type": "object", + "properties": { + "allowFailure": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "description": { + "type": "string" + }, + "disabled": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "id": { + "type": "string", + "minLength": 1, + "pattern": "^[a-zA-Z0-9][a-zA-Z0-9_-]*" + }, + "logLevel": { + "type": "string", + "enum": ["ERROR", "WARN", "INFO", "DEBUG", "TRACE"] + }, + "retry": { + "oneOf": [ + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Constant-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Exponential-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Random-2" + } + ] + }, + "timeout": { + "type": "string", + "format": "duration" + }, + "type": { + "const": "io.kestra.plugin.core.output.OutputValues" + }, + "values": { + "type": "object", + "title": "The templated strings to render." + }, + "workerGroup": { + "$ref": "#/definitions/io.kestra.core.models.tasks.WorkerGroup" + } + }, + "required": ["id", "type"], + "title": "Output one or more values.", + "markdownDescription": "You can use this task to return some outputs and pass them to downstream tasks.\nIt's helpful for parsing and returning values from a task. You can then access these outputs in your downstream tasks\nusing the expression `{{ outputs.mytask_id.values.my_output_name }}` and you can see them in the Outputs tab.\n##### Examples\n\u003E \n```yaml\nid: outputs_flow\nnamespace: company.team\n\ntasks:\n - id: output_values\n type: io.kestra.plugin.core.output.OutputValues\n values:\n taskrun_data: \"{{ task.id }} \u003E {{ taskrun.startDate }}\"\n execution_data: \"{{ flow.id }} \u003E {{ execution.startDate }}\"\n\n - id: log_values\n type: io.kestra.plugin.core.log.Log\n message: |\n Got the following outputs from the previous task:\n {{ outputs.output_values.values.taskrun_data }}\n {{ outputs.output_values.values.execution_data }}\n```" + }, + "io.kestra.plugin.core.runner.Process": { + "type": "object", + "properties": { + "type": { + "const": "io.kestra.plugin.core.runner.Process" + } + }, + "required": ["type"], + "title": "Task runner that executes a task as a subprocess on the Kestra host.", + "markdownDescription": "To access the task's working directory, use the `{{workingDir}}` Pebble expression or the `WORKING_DIR` environment variable. Input files and namespace files will be available in this directory.\n\nTo generate output files you can either use the `outputFiles` task's property and create a file with the same name in the task's working directory, or create any file in the output directory which can be accessed by the `{{outputDir}}` Pebble expression or the `OUTPUT_DIR` environment variables.\n\nNote that:\n\n- This task runner is independent of any Operating System. You can use it equally on Linux, Mac or Windows without any additional configuration.\n- When the Kestra Worker running this task is shut down, the process will be interrupted and re-created as soon as the worker is restarted.##### Examples\n\u003E Execute a Shell command.\n```yaml\nid: new-shell\nnamespace: company.team\n\ntasks:\n - id: shell\n type: io.kestra.plugin.scripts.shell.Commands\n taskRunner:\n type: io.kestra.plugin.core.runner.Process\n commands:\n - echo \"Hello World\"\n```\n\n\u003E Install custom Python packages before executing a Python script. Note how we use the `--break-system-packages` flag to avoid conflicts with the system packages. Make sure to use this flag if you see errors similar to `error: externally-managed-environment`.\n```yaml\nid: before_commands_example\nnamespace: company.team\n\ninputs:\n - id: url\n type: URI\n defaults: https://jsonplaceholder.typicode.com/todos/1\n\ntasks:\n - id: transform\n type: io.kestra.plugin.scripts.python.Script\n taskRunner:\n type: io.kestra.plugin.core.runner.Process\n beforeCommands:\n - pip install kestra requests --break-system-packages\n script: |\n import requests\n from kestra import Kestra\n\n url = \"{{ inputs.url }}\"\n\n response = requests.get(url)\n print('Status Code:', response.status_code)\n Kestra.outputs(response.json())\n\n```\n\n\u003E Pass input files to the task, execute a Shell command, then retrieve output files.\n```yaml\nid: new-shell-with-file\nnamespace: company.team\n\ninputs:\n - id: file\n type: FILE\n\ntasks:\n - id: shell\n type: io.kestra.plugin.scripts.shell.Commands\n inputFiles:\n data.txt: \"{{inputs.file}}\"\n outputFiles:\n - out.txt\n taskRunner:\n type: io.kestra.plugin.core.runner.Process\n commands:\n - cp {{workingDir}}/data.txt {{workingDir}}/out.txt\n```" + }, + "io.kestra.plugin.core.state.Delete": { + "type": "object", + "properties": { + "allowFailure": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "description": { + "type": "string" + }, + "disabled": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "errorOnMissing": { + "$dynamic": true, + "type": "boolean", + "title": "Raise an error if the state is not found.", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "id": { + "type": "string", + "minLength": 1, + "pattern": "^[a-zA-Z0-9][a-zA-Z0-9_-]*" + }, + "logLevel": { + "type": "string", + "enum": ["ERROR", "WARN", "INFO", "DEBUG", "TRACE"] + }, + "name": { + "$dynamic": true, + "type": "string", + "title": "The name of the state file.", + "default": "default", + "markdownDescription": "Default value is : `default`" + }, + "namespace": { + "$dynamic": true, + "type": "boolean", + "title": "Share state for the current namespace.", + "default": false, + "markdownDescription": "By default, the state is isolated by namespace **and** flow, setting to `true` will allow to share the state between the **same** namespace\n\nDefault value is : `false`" + }, + "retry": { + "oneOf": [ + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Constant-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Exponential-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Random-2" + } + ] + }, + "taskrunValue": { + "$dynamic": true, + "type": "boolean", + "title": "Isolate the state with `taskrun.value`.", + "default": true, + "markdownDescription": "By default, the state will be isolated with `taskrun.value` (during iteration with each). Setting to `false` will allow using the same state for every run of the iteration.\n\nDefault value is : `true`" + }, + "timeout": { + "type": "string", + "format": "duration" + }, + "type": { + "const": "io.kestra.plugin.core.state.Delete" + }, + "workerGroup": { + "$ref": "#/definitions/io.kestra.core.models.tasks.WorkerGroup" + } + }, + "required": ["id", "type"], + "title": "Delete a state from the state store.", + "markdownDescription": "##### Examples\n\u003E Delete the default state for the current flow.\n```yaml\nid: getState\ntype: io.kestra.plugin.core.state.Delete\n```\n\n\u003E Delete the `myState` state for the current flow.\n```yaml\nid: getState\ntype: io.kestra.plugin.core.state.Delete\nname: myState\n```" + }, + "io.kestra.plugin.core.state.Get": { + "type": "object", + "properties": { + "allowFailure": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "description": { + "type": "string" + }, + "disabled": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "errorOnMissing": { + "$dynamic": true, + "type": "boolean", + "title": "Raise an error if the state file is not found.", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "id": { + "type": "string", + "minLength": 1, + "pattern": "^[a-zA-Z0-9][a-zA-Z0-9_-]*" + }, + "logLevel": { + "type": "string", + "enum": ["ERROR", "WARN", "INFO", "DEBUG", "TRACE"] + }, + "name": { + "$dynamic": true, + "type": "string", + "title": "The name of the state file.", + "default": "default", + "markdownDescription": "Default value is : `default`" + }, + "namespace": { + "$dynamic": true, + "type": "boolean", + "title": "Share state for the current namespace.", + "default": false, + "markdownDescription": "By default, the state is isolated by namespace **and** flow, setting to `true` will allow to share the state between the **same** namespace\n\nDefault value is : `false`" + }, + "retry": { + "oneOf": [ + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Constant-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Exponential-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Random-2" + } + ] + }, + "taskrunValue": { + "$dynamic": true, + "type": "boolean", + "title": "Isolate the state with `taskrun.value`.", + "default": true, + "markdownDescription": "By default, the state will be isolated with `taskrun.value` (during iteration with each). Setting to `false` will allow using the same state for every run of the iteration.\n\nDefault value is : `true`" + }, + "timeout": { + "type": "string", + "format": "duration" + }, + "type": { + "const": "io.kestra.plugin.core.state.Get" + }, + "workerGroup": { + "$ref": "#/definitions/io.kestra.core.models.tasks.WorkerGroup" + } + }, + "required": ["id", "type"], + "title": "Get a state from the state store.", + "markdownDescription": "##### Examples\n\u003E Get the default state file for the current flow.\n```yaml\nid: getState\ntype: io.kestra.plugin.core.state.Get\n```\n\n\u003E Get the `myState` state for the current flow.\n```yaml\nid: getState\ntype: io.kestra.plugin.core.state.Get\nname: myState\n```" + }, + "io.kestra.plugin.core.state.Set": { + "type": "object", + "properties": { + "allowFailure": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "data": { + "$dynamic": true, + "type": "object", + "title": "The data to be stored in the state store." + }, + "description": { + "type": "string" + }, + "disabled": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "id": { + "type": "string", + "minLength": 1, + "pattern": "^[a-zA-Z0-9][a-zA-Z0-9_-]*" + }, + "logLevel": { + "type": "string", + "enum": ["ERROR", "WARN", "INFO", "DEBUG", "TRACE"] + }, + "name": { + "$dynamic": true, + "type": "string", + "title": "The name of the state file.", + "default": "default", + "markdownDescription": "Default value is : `default`" + }, + "namespace": { + "$dynamic": true, + "type": "boolean", + "title": "Share state for the current namespace.", + "default": false, + "markdownDescription": "By default, the state is isolated by namespace **and** flow, setting to `true` will allow to share the state between the **same** namespace\n\nDefault value is : `false`" + }, + "retry": { + "oneOf": [ + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Constant-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Exponential-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Random-2" + } + ] + }, + "taskrunValue": { + "$dynamic": true, + "type": "boolean", + "title": "Isolate the state with `taskrun.value`.", + "default": true, + "markdownDescription": "By default, the state will be isolated with `taskrun.value` (during iteration with each). Setting to `false` will allow using the same state for every run of the iteration.\n\nDefault value is : `true`" + }, + "timeout": { + "type": "string", + "format": "duration" + }, + "type": { + "const": "io.kestra.plugin.core.state.Set" + }, + "workerGroup": { + "$ref": "#/definitions/io.kestra.core.models.tasks.WorkerGroup" + } + }, + "required": ["id", "type"], + "title": "Set a state in the state store.", + "markdownDescription": "Values will be merged: \n* If you provide a new key, the new key will be added.\n* If you provide an existing key, the previous key will be overwrite.\n\n::alert{type=\"warning\"}\nThis method is not concurrency safe. If many executions for the same flow are concurrent, there is no guarantee on isolation on the value.\nThe value can be overwritten by other executions.\n::\n##### Examples\n\u003E Set the default state for the current flow.\n```yaml\nid: setState\ntype: io.kestra.plugin.core.state.Set\ndata:\n '{{ inputs.store }}': '{{ outputs.download.md5 }}'\n```\n\n\u003E Set the `myState` state for the current flow.\n```yaml\nid: setState\ntype: io.kestra.plugin.core.state.Set\nname: myState\ndata:\n '{{ inputs.store }}': '{{ outputs.download.md5 }}'\n```" + }, + "io.kestra.plugin.core.storage.Concat": { + "type": "object", + "properties": { + "allowFailure": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "description": { + "type": "string" + }, + "disabled": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "extension": { + "$dynamic": true, + "type": "string", + "title": "The extension of the created file, default is .tmp.", + "default": ".tmp", + "markdownDescription": "Default value is : `.tmp`" + }, + "files": { + "$dynamic": true, + "title": "List of files to be concatenated.", + "markdownDescription": "Must be a `kestra://` storage URIs, can be a list of string or json string" + }, + "id": { + "type": "string", + "minLength": 1, + "pattern": "^[a-zA-Z0-9][a-zA-Z0-9_-]*" + }, + "logLevel": { + "type": "string", + "enum": ["ERROR", "WARN", "INFO", "DEBUG", "TRACE"] + }, + "retry": { + "oneOf": [ + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Constant-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Exponential-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Random-2" + } + ] + }, + "separator": { + "$dynamic": true, + "type": "string", + "title": "The separator to used between files, default is no separator." + }, + "timeout": { + "type": "string", + "format": "duration" + }, + "type": { + "const": "io.kestra.plugin.core.storage.Concat" + }, + "workerGroup": { + "$ref": "#/definitions/io.kestra.core.models.tasks.WorkerGroup" + } + }, + "required": ["files", "id", "type"], + "title": "Concat files from the internal storage.", + "markdownDescription": "##### Examples\n\u003E Concat 2 files with a custom separator.\n```yaml\nfiles: \n - \"kestra://long/url/file1.txt\"\n - \"kestra://long/url/file2.txt\"\nseparator: \"\\n\"\n```\n\n\u003E Concat files generated by an each task.\n```yaml\ntasks:\n - id: each\n type: io.kestra.plugin.core.flow.EachSequential\n tasks:\n - id: start_api_call\n type: io.kestra.plugin.scripts.shell.Commands\n commands:\n - echo {{ taskrun.value }} \u003E {{ temp.generated }}\n files:\n - generated\n value: '[\"value1\", \"value2\", \"value3\"]'\n - id: concat\n type: io.kestra.plugin.core.storage.Concat\n files:\n - \"{{ outputs.start_api_call.value1.files.generated }}\"\n - \"{{ outputs.start_api_call.value2.files.generated }}\"\n - \"{{ outputs.start_api_call.value3.files.generated }}\"\n```\n\n\u003E Concat a dynamic number of files.\n```yaml\ntasks:\n - id: echo\n type: io.kestra.plugin.scripts.shell.Commands\n commands:\n - echo \"Hello John\" \u003E {{ outputDirs.output }}/1.txt\n - echo \"Hello Jane\" \u003E {{ outputDirs.output }}/2.txt\n - echo \"Hello Doe\" \u003E {{ outputDirs.output }}/3.txt\n outputDirs:\n - output\n - id: concat\n type: io.kestra.plugin.core.storage.Concat\n files: \"{{ outputs.echo.files | jq('.[]') }}\"\n```" + }, + "io.kestra.plugin.core.storage.DeduplicateItems": { + "type": "object", + "properties": { + "allowFailure": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "description": { + "type": "string" + }, + "disabled": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "expr": { + "$dynamic": false, + "type": "string", + "title": "The 'pebble' expression to be used for extracting the deduplication key from each item.", + "markdownDescription": "The 'pebble' expression can be used for constructing a composite key." + }, + "from": { + "$dynamic": true, + "type": "string", + "title": "The file to be deduplicated.", + "markdownDescription": "Must be a `kestra://` internal storage URI." + }, + "id": { + "type": "string", + "minLength": 1, + "pattern": "^[a-zA-Z0-9][a-zA-Z0-9_-]*" + }, + "logLevel": { + "type": "string", + "enum": ["ERROR", "WARN", "INFO", "DEBUG", "TRACE"] + }, + "retry": { + "oneOf": [ + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Constant-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Exponential-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Random-2" + } + ] + }, + "timeout": { + "type": "string", + "format": "duration" + }, + "type": { + "const": "io.kestra.plugin.core.storage.DeduplicateItems" + }, + "workerGroup": { + "$ref": "#/definitions/io.kestra.core.models.tasks.WorkerGroup" + } + }, + "required": ["expr", "from", "id", "type"], + "title": "Deduplicate a file by retaining only the latest item for each extracted key.", + "markdownDescription": "The `Deduplicate` task involves reading the input file twice, rather than loading the entire file into memory.\nThe first iteration is used to build a deduplication map in memory containing the last lines observed for each key.\nThe second iteration is used to rewrite the file without the duplicates. The task must be used with this in mind.\n##### Examples\n\u003E \n```yaml\ntasks:\n - id: deduplicate\n type: io.kestra.plugin.core.storage.DeduplicateItems\n from: \"{{ inputs.uri }}\"\n expr: \"{{ key }}\"\n\n```" + }, + "io.kestra.plugin.core.storage.Delete": { + "type": "object", + "properties": { + "allowFailure": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "description": { + "type": "string" + }, + "disabled": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "errorOnMissing": { + "$dynamic": true, + "type": "boolean", + "title": "Raise an error if the file is not found.", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "id": { + "type": "string", + "minLength": 1, + "pattern": "^[a-zA-Z0-9][a-zA-Z0-9_-]*" + }, + "logLevel": { + "type": "string", + "enum": ["ERROR", "WARN", "INFO", "DEBUG", "TRACE"] + }, + "retry": { + "oneOf": [ + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Constant-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Exponential-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Random-2" + } + ] + }, + "timeout": { + "type": "string", + "format": "duration" + }, + "type": { + "const": "io.kestra.plugin.core.storage.Delete" + }, + "uri": { + "$dynamic": true, + "type": "string", + "title": "The file to be deleted.", + "markdownDescription": "Must be a `kestra://` storage URI." + }, + "workerGroup": { + "$ref": "#/definitions/io.kestra.core.models.tasks.WorkerGroup" + } + }, + "required": ["id", "type", "uri"], + "title": "Delete a file from the Kestra's internal storage.", + "markdownDescription": "##### Examples\n\u003E \n```yaml\nuri: \"kestra://long/url/file.txt\"\n```" + }, + "io.kestra.plugin.core.storage.FilterItems": { + "type": "object", + "properties": { + "allowFailure": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "description": { + "type": "string" + }, + "disabled": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "errorOrNullBehavior": { + "$dynamic": false, + "type": "string", + "enum": ["FAIL", "INCLUDE", "EXCLUDE"], + "title": "Specifies the behavior when the expression fail to be evaluated on an item or return `null`.", + "default": "FAIL", + "markdownDescription": "Use `FAIL` to throw the exception and fail the task, `INCLUDE` to pass the item through, or `EXCLUDE` to drop the item.\n\nDefault value is : `FAIL`" + }, + "filterCondition": { + "$dynamic": false, + "type": "string", + "title": "The 'pebble' expression used to match items to be included or excluded.", + "markdownDescription": "The 'pebble' expression should return a BOOLEAN value (i.e. `true` or `false`). Values `0`, `-0`, and `\"\"` are interpreted as `false`. Otherwise, any non empty value will be interpreted as `true`." + }, + "filterType": { + "$dynamic": false, + "type": "string", + "enum": ["INCLUDE", "EXCLUDE"], + "title": "Specifies the action to perform with items that match the `filterCondition` predicate", + "default": "INCLUDE", + "markdownDescription": "Use `INCLUDE` to pass the item through, or `EXCLUDE` to drop the items.\n\nDefault value is : `INCLUDE`" + }, + "from": { + "$dynamic": true, + "type": "string", + "title": "The file to be filtered.", + "markdownDescription": "Must be a `kestra://` internal storage URI." + }, + "id": { + "type": "string", + "minLength": 1, + "pattern": "^[a-zA-Z0-9][a-zA-Z0-9_-]*" + }, + "logLevel": { + "type": "string", + "enum": ["ERROR", "WARN", "INFO", "DEBUG", "TRACE"] + }, + "retry": { + "oneOf": [ + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Constant-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Exponential-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Random-2" + } + ] + }, + "timeout": { + "type": "string", + "format": "duration" + }, + "type": { + "const": "io.kestra.plugin.core.storage.FilterItems" + }, + "workerGroup": { + "$ref": "#/definitions/io.kestra.core.models.tasks.WorkerGroup" + } + }, + "required": ["filterCondition", "from", "id", "type"], + "title": "Filter a file by retaining only the items that match a given expression.", + "markdownDescription": "##### Examples\n\u003E \n```yaml\ntasks:\n - id: filter\n type: io.kestra.plugin.core.storage.FilterItems\n from: \"{{ inputs.file }}\"\n filterCondition: \" {{ value == null }}\"\n filterType: EXCLUDE\n errorOrNullBehavior: EXCLUDE\n\n```" + }, + "io.kestra.plugin.core.storage.LocalFiles": { + "$deprecated": "true", + "type": "object", + "properties": { + "allowFailure": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "description": { + "type": "string" + }, + "disabled": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "id": { + "type": "string", + "minLength": 1, + "pattern": "^[a-zA-Z0-9][a-zA-Z0-9_-]*" + }, + "inputs": { + "$dynamic": true, + "title": "The files to be created on the local filesystem. It can be a map or a JSON object.", + "oneOf": [ + { + "type": "object" + }, + { + "type": "string" + } + ] + }, + "logLevel": { + "type": "string", + "enum": ["ERROR", "WARN", "INFO", "DEBUG", "TRACE"] + }, + "outputs": { + "$dynamic": true, + "title": "The files from the local filesystem to be sent to the Kestra's internal storage.", + "markdownDescription": "Must be a list of [glob](https://en.wikipedia.org/wiki/Glob_(programming)) expressions relative to the current working directory, some examples: `my-dir/**`, `my-dir/*/**` or `my-dir/my-file.txt`.", + "type": "array", + "items": { + "$dynamic": true, + "type": "string" + } + }, + "retry": { + "oneOf": [ + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Constant-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Exponential-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Random-2" + } + ] + }, + "timeout": { + "type": "string", + "format": "duration" + }, + "type": { + "const": "io.kestra.plugin.core.storage.LocalFiles" + }, + "workerGroup": { + "$ref": "#/definitions/io.kestra.core.models.tasks.WorkerGroup" + } + }, + "required": ["id", "type"], + "title": "Allow to create files in the local filesystem or to send files from the local filesystem to the Kestra's internal storage.", + "markdownDescription": "Replaced by `inputFiles` property on the WorkingDirectory task - migration information [here](https://kestra.io/docs/migration-guide/local-files). Previously, this task should be used with the WorkingDirectory task to be able to access the same local filesystem within multiple tasks. Note that this task cannot be skipped, so setting `disabled: true` will not work on this task.##### Examples\n\u003E Output local files created in a Python task and load them to S3.\n```yaml\n id: outputsFromPythonTask\n namespace: company.team\n\n tasks:\n - id: wdir\n type: io.kestra.plugin.core.flow.WorkingDirectory\n tasks:\n - id: cloneRepository\n type: io.kestra.plugin.git.Clone\n url: https://github.com/kestra-io/examples\n branch: main\n\n - id: gitPythonScripts\n type: io.kestra.plugin.scripts.python.Commands\n warningOnStdErr: false\n runner: DOCKER\n docker:\n image: ghcr.io/kestra-io/pydata:latest\n beforeCommands:\n - pip install faker \u003E /dev/null\n commands:\n - python scripts/etl_script.py\n - python scripts/generate_orders.py\n\n - id: exportFiles\n type: io.kestra.plugin.core.storage.LocalFiles\n outputs:\n - orders.csv\n - \"*.parquet\"\n\n - id: loadCsvToS3\n type: io.kestra.plugin.aws.s3.Upload\n accessKeyId: \"{{ secret('AWS_ACCESS_KEY_ID') }}\"\n secretKeyId: \"{{ secret('AWS_SECRET_ACCESS_KEY') }}\"\n region: eu-central-1\n bucket: kestraio\n key: stage/orders.csv\n from: \"{{ outputs.exportFiles.outputFiles['orders.csv'] }}\"\n disabled: true\n\n```\n\n\u003E Create a local file that will be accessible to a bash task.\n```yaml\nid: \"local-files\"\nnamespace: \"io.kestra.tests\"\n\ntasks:\n - id: workingDir\n type: io.kestra.plugin.core.flow.WorkingDirectory\n tasks:\n - id: inputFiles\n type: io.kestra.plugin.core.storage.LocalFiles\n inputs:\n hello.txt: \"Hello World\\n\"\n address.json: \"{{ outputs.myTaskId.uri }}\"\n - id: bash\n type: io.kestra.plugin.scripts.shell.Commands\n commands:\n - cat hello.txt\n\n```\n\n\u003E Send local files to Kestra's internal storage.\n```yaml\nid: \"local-files\"\nnamespace: \"io.kestra.tests\"\n\ntasks:\n - id: workingDir\n type: io.kestra.plugin.core.flow.WorkingDirectory\n tasks:\n - id: bash\n type: io.kestra.plugin.scripts.shell.Commands\n commands:\n - mkdir -p sub/dir\n - echo \"Hello from Bash\" \u003E\u003E sub/dir/bash1.txt\n - echo \"Hello from Bash\" \u003E\u003E sub/dir/bash2.txt\n - id: outputFiles\n type: io.kestra.plugin.core.storage.LocalFiles\n outputs:\n - sub/**\n\n```" + }, + "io.kestra.plugin.core.storage.PurgeCurrentExecutionFiles": { + "type": "object", + "properties": { + "allowFailure": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "description": { + "type": "string" + }, + "disabled": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "id": { + "type": "string", + "minLength": 1, + "pattern": "^[a-zA-Z0-9][a-zA-Z0-9_-]*" + }, + "logLevel": { + "type": "string", + "enum": ["ERROR", "WARN", "INFO", "DEBUG", "TRACE"] + }, + "retry": { + "oneOf": [ + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Constant-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Exponential-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Random-2" + } + ] + }, + "timeout": { + "type": "string", + "format": "duration" + }, + "type": { + "const": "io.kestra.plugin.core.storage.PurgeCurrentExecutionFiles" + }, + "workerGroup": { + "$ref": "#/definitions/io.kestra.core.models.tasks.WorkerGroup" + } + }, + "required": ["id", "type"], + "title": "Purge all files from Kestra's internal storage created by this execution.", + "markdownDescription": "This will delete all the generated files from a flow for the current execution. This will delete all files from:\n- inputs\n- outputs\n- triggers\n\nIf the current execution doesn't have any generated files, the task will not fail.##### Examples\n\u003E \n```yaml\n\n```" + }, + "io.kestra.plugin.core.storage.Reverse": { + "type": "object", + "properties": { + "allowFailure": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "charset": { + "$dynamic": true, + "type": "string", + "title": "The name of a supported charset", + "default": "UTF-8", + "markdownDescription": "Default value is : `UTF-8`" + }, + "description": { + "type": "string" + }, + "disabled": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "from": { + "$dynamic": true, + "type": "string", + "title": "The file to be split." + }, + "id": { + "type": "string", + "minLength": 1, + "pattern": "^[a-zA-Z0-9][a-zA-Z0-9_-]*" + }, + "logLevel": { + "type": "string", + "enum": ["ERROR", "WARN", "INFO", "DEBUG", "TRACE"] + }, + "retry": { + "oneOf": [ + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Constant-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Exponential-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Random-2" + } + ] + }, + "separator": { + "$dynamic": true, + "type": "string", + "title": "The separator used to join the file into chunks. By default, it's a newline `\\n` character. If you are on Windows, you might want to use `\\r\\n` instead.", + "default": "\n", + "markdownDescription": "Default value is : `|2+`" + }, + "timeout": { + "type": "string", + "format": "duration" + }, + "type": { + "const": "io.kestra.plugin.core.storage.Reverse" + }, + "workerGroup": { + "$ref": "#/definitions/io.kestra.core.models.tasks.WorkerGroup" + } + }, + "required": ["from", "id", "type"], + "title": "Reserve a file from the Kestra's internal storage, last line first.", + "markdownDescription": "##### Examples\n\u003E \n```yaml\nfrom: \"kestra://long/url/file1.txt\"\n```" + }, + "io.kestra.plugin.core.storage.Size": { + "type": "object", + "properties": { + "allowFailure": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "description": { + "type": "string" + }, + "disabled": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "id": { + "type": "string", + "minLength": 1, + "pattern": "^[a-zA-Z0-9][a-zA-Z0-9_-]*" + }, + "logLevel": { + "type": "string", + "enum": ["ERROR", "WARN", "INFO", "DEBUG", "TRACE"] + }, + "retry": { + "oneOf": [ + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Constant-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Exponential-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Random-2" + } + ] + }, + "timeout": { + "type": "string", + "format": "duration" + }, + "type": { + "const": "io.kestra.plugin.core.storage.Size" + }, + "uri": { + "$dynamic": true, + "type": "string", + "title": "The file whose size needs to be fetched.", + "markdownDescription": "Must be a `kestra://` storage URI." + }, + "workerGroup": { + "$ref": "#/definitions/io.kestra.core.models.tasks.WorkerGroup" + } + }, + "required": ["id", "type", "uri"], + "title": "Get the size of a file from the Kestra's internal storage.", + "markdownDescription": "##### Examples\n\u003E \n```yaml\nuri: \"kestra://long/url/file.txt\"\n```" + }, + "io.kestra.plugin.core.storage.Split": { + "type": "object", + "properties": { + "allowFailure": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "bytes": { + "$dynamic": true, + "type": "string", + "title": "Split a large file into multiple chunks with a maximum file size of `bytes`.", + "markdownDescription": "Can be provided as a string in the format \"10MB\" or \"200KB\", or the number of bytes. This allows you to process large files, slit them into smaller chunks by lines and process them in parallel. For example, MySQL by default limits the size of a query size to 16MB per query. Trying to use a bulk insert query with input data larger than 16MB will fail. Splitting the input data into smaller chunks is a common strategy to circumvent this limitation. By dividing a large data set into chunks smaller than the `max_allowed_packet` size (e.g., 10MB), you can insert the data in multiple smaller queries. This approach not only helps to avoid hitting the query size limit but can also be more efficient and manageable in terms of memory utilization, especially for very large datasets. In short, by splitting the file by bytes, you can bulk-insert smaller chunks of e.g. 10MB in parallel to avoid this limitation." + }, + "description": { + "type": "string" + }, + "disabled": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "from": { + "$dynamic": true, + "type": "string", + "title": "The file to be split." + }, + "id": { + "type": "string", + "minLength": 1, + "pattern": "^[a-zA-Z0-9][a-zA-Z0-9_-]*" + }, + "logLevel": { + "type": "string", + "enum": ["ERROR", "WARN", "INFO", "DEBUG", "TRACE"] + }, + "partitions": { + "$dynamic": true, + "type": "integer", + "title": "Split a file into a fixed number of partitioned files. For example, if you have a file with 1000 lines and you set `partitions` to 10, the file will be split into 10 files with 100 lines each." + }, + "retry": { + "oneOf": [ + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Constant-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Exponential-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Random-2" + } + ] + }, + "rows": { + "$dynamic": true, + "type": "integer", + "title": "A number of rows per batch. The file will then be split into chunks with that maximum number of rows." + }, + "separator": { + "$dynamic": false, + "type": "string", + "title": "The separator used to split a file into chunks. By default, it's a newline `\\n` character. If you are on Windows, you might want to use `\\r\\n` instead.", + "default": "\\n", + "markdownDescription": "Default value is : `\\n`" + }, + "timeout": { + "type": "string", + "format": "duration" + }, + "type": { + "const": "io.kestra.plugin.core.storage.Split" + }, + "workerGroup": { + "$ref": "#/definitions/io.kestra.core.models.tasks.WorkerGroup" + } + }, + "required": ["from", "id", "type"], + "title": "Split a file from the Kestra's internal storage into multiple files.", + "markdownDescription": "##### Examples\n\u003E Split a file by size.\n```yaml\nfrom: \"kestra://long/url/file1.txt\"\nbytes: 10MB\n```\n\n\u003E Split a file by rows count.\n```yaml\nfrom: \"kestra://long/url/file1.txt\"\nrows: 1000\n```\n\n\u003E Split a file in a defined number of partitions.\n```yaml\nfrom: \"kestra://long/url/file1.txt\"\npartitions: 8\n```" + }, + "io.kestra.plugin.core.templating.TemplatedTask": { + "type": "object", + "properties": { + "allowFailure": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "description": { + "type": "string" + }, + "disabled": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "id": { + "type": "string", + "minLength": 1, + "pattern": "^[a-zA-Z0-9][a-zA-Z0-9_-]*" + }, + "logLevel": { + "type": "string", + "enum": ["ERROR", "WARN", "INFO", "DEBUG", "TRACE"] + }, + "retry": { + "oneOf": [ + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Constant-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Exponential-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Random-2" + } + ] + }, + "spec": { + "$dynamic": true, + "type": "string", + "title": "The templated task specification" + }, + "timeout": { + "type": "string", + "format": "duration" + }, + "type": { + "const": "io.kestra.plugin.core.templating.TemplatedTask" + }, + "workerGroup": { + "$ref": "#/definitions/io.kestra.core.models.tasks.WorkerGroup" + } + }, + "required": ["id", "spec", "type"], + "title": "This task's `spec` property allows you to fully template all task properties using Kestra's Pebble templating. This way, all task properties and their values can be dynamically rendered based on your custom inputs, variables, and outputs from other tasks!", + "markdownDescription": "##### Examples\n\u003E \n```yaml\nspec: |\n type: io.kestra.plugin.fs.http.Download\n {{ task.property }}: {{ task.value }}\n```" + }, + "io.kestra.plugin.core.trigger.Flow": { + "type": "object", + "properties": { + "conditions": { + "$dynamic": false, + "title": "List of conditions in order to limit the flow trigger.", + "type": "array", + "items": { + "oneOf": [ + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.DateTimeBetweenCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.DayWeekCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.DayWeekInMonthCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.ExecutionFlowCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.ExecutionLabelsCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.ExecutionNamespaceCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.ExecutionOutputsCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.ExecutionStatusCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.ExpressionCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.FlowCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.FlowNamespaceCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.HasRetryAttemptCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.MultipleCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.NotCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.OrCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.PublicHolidayCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.TimeBetweenCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.WeekendCondition" + }, + { + "$dynamic": false + } + ] + } + ] + } + }, + "description": { + "type": "string" + }, + "disabled": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "id": { + "type": "string", + "title": "A unique ID for the whole flow.", + "minLength": 1, + "pattern": "^[a-zA-Z0-9][a-zA-Z0-9_-]*" + }, + "inputs": { + "$dynamic": false, + "type": "object", + "title": "Fill input of this flow based on output of current flow, allowing to pass data or file to the triggered flow.", + "markdownDescription": "::alert{type=\"warning\"}\nIf you provide invalid input, the flow will not be created! Since there is no task started, you can't log any reason that's visible on the Execution UI.\nSo you will need to go to the Logs tabs on the UI to understand the error.\n::" + }, + "labels": { + "title": "The labels to pass to the execution created.", + "type": "array", + "items": { + "$ref": "#/definitions/io.kestra.core.models.Label" + } + }, + "logLevel": { + "type": "string", + "enum": ["ERROR", "WARN", "INFO", "DEBUG", "TRACE"] + }, + "stopAfter": { + "$dynamic": false, + "title": "List of execution states after which a trigger should be stopped (a.k.a. disabled).", + "type": "array", + "items": { + "$dynamic": false, + "type": "string", + "enum": [ + "CREATED", + "RUNNING", + "PAUSED", + "RESTARTED", + "KILLING", + "SUCCESS", + "WARNING", + "FAILED", + "KILLED", + "CANCELLED", + "QUEUED", + "RETRYING", + "RETRIED" + ] + } + }, + "type": { + "const": "io.kestra.plugin.core.trigger.Flow" + }, + "workerGroup": { + "$ref": "#/definitions/io.kestra.core.models.tasks.WorkerGroup" + } + }, + "required": ["id", "type"], + "title": "Kestra is able to trigger flow after another one. This allows chaining flows without need to update the base flows.\nWith that, you can break the responsibility between different flows, and thus to different teams.", + "markdownDescription": "::alert{type=\"warning\"}\nIf you don't provide any conditions, the flow will be triggered for **EVERY execution** of **EVERY flow** on your instance.\n::##### Examples\n\u003E This flow will be triggered after each successful execution of flow `io.kestra.tests.trigger-flow` and forward the `uri` of `myTask` taskId outputs.\n```yaml\nid: trigger-flow-listener\nnamespace: company.team\n\ninputs:\n - id: from-parent\n type: STRING\n\ntasks:\n - id: only-no-input\n type: io.kestra.plugin.core.debug.Return\n format: \"v1: {{ trigger.executionId }}\"\n\ntriggers:\n - id: listen-flow\n type: io.kestra.plugin.core.trigger.Flow\n inputs:\n from-parent: '{{ outputs.myTask.uri }}'\n conditions:\n - type: io.kestra.plugin.core.condition.ExecutionFlowCondition\n namespace: company.team\n flowId: trigger-flow\n - type: io.kestra.plugin.core.condition.ExecutionStatusCondition\n in:\n - SUCCESS\n```" + }, + "io.kestra.plugin.core.trigger.Schedule": { + "type": "object", + "properties": { + "backfill": { + "$deprecated": true, + "$dynamic": false, + "type": "object", + "title": "(Deprecated) Backfill", + "markdownDescription": "This property is deprecated and will be removed in the future. Instead, you can now go to the Triggers tab and start a highly customizable backfill process directly from the UI. This will allow you to backfill missed scheduled executions by providing a specific date range and custom labels. Read more about it in the [Backfill](https://kestra.io/docs/concepts/backfill) documentation." + }, + "conditions": { + "$dynamic": false, + "title": "List of conditions in order to limit the flow trigger.", + "type": "array", + "items": { + "oneOf": [ + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.DateTimeBetweenCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.DayWeekCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.DayWeekInMonthCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.ExecutionFlowCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.ExecutionLabelsCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.ExecutionNamespaceCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.ExecutionOutputsCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.ExecutionStatusCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.ExpressionCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.FlowCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.FlowNamespaceCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.HasRetryAttemptCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.MultipleCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.NotCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.OrCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.PublicHolidayCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.TimeBetweenCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.WeekendCondition" + }, + { + "$dynamic": false + } + ] + } + ] + } + }, + "cron": { + "$dynamic": false, + "type": "string", + "title": "The cron expression.", + "markdownDescription": "A standard [unix cron expression](https://en.wikipedia.org/wiki/Cron) with 5 fields (minutes precision). Using `withSeconds: true` you can switch to 6 fields and a seconds precision.\nCan also be a cron extension / nickname:\n* `@yearly`\n* `@annually`\n* `@monthly`\n* `@weekly`\n* `@daily`\n* `@midnight`\n* `@hourly`" + }, + "description": { + "type": "string" + }, + "disabled": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "id": { + "type": "string", + "title": "A unique ID for the whole flow.", + "minLength": 1, + "pattern": "^[a-zA-Z0-9][a-zA-Z0-9_-]*" + }, + "inputs": { + "$dynamic": true, + "type": "object", + "title": "The inputs to pass to the scheduled flow." + }, + "labels": { + "title": "The labels to pass to the execution created.", + "type": "array", + "items": { + "$ref": "#/definitions/io.kestra.core.models.Label" + } + }, + "lateMaximumDelay": { + "$dynamic": false, + "type": "string", + "format": "duration", + "title": "The maximum delay that is accepted.", + "markdownDescription": "If the scheduled execution didn't start after this delay (e.g. due to infrastructure issues), the execution will be skipped." + }, + "logLevel": { + "type": "string", + "enum": ["ERROR", "WARN", "INFO", "DEBUG", "TRACE"] + }, + "recoverMissedSchedules": { + "$dynamic": false, + "type": "string", + "enum": ["LAST", "NONE", "ALL"], + "title": "What to do in case of missed schedules", + "markdownDescription": "`ALL` will recover all missed schedules, `LAST` will only recovered the last missing one, `NONE` will not recover any missing schedule.\nThe default is `ALL` unless a different value is configured using the global plugin configuration." + }, + "scheduleConditions": { + "$deprecated": true, + "$dynamic": false, + "title": "(Deprecated) Conditions on date. Use `conditions` instead.", + "markdownDescription": "List of schedule conditions in order to limit the schedule trigger date.", + "type": "array", + "items": { + "oneOf": [ + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.DateTimeBetweenCondition" + }, + { + "$deprecated": true, + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.DayWeekCondition" + }, + { + "$deprecated": true, + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.DayWeekInMonthCondition" + }, + { + "$deprecated": true, + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.ExecutionOutputsCondition" + }, + { + "$deprecated": true, + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.ExpressionCondition" + }, + { + "$deprecated": true, + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.NotCondition" + }, + { + "$deprecated": true, + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.OrCondition" + }, + { + "$deprecated": true, + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.PublicHolidayCondition" + }, + { + "$deprecated": true, + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.TimeBetweenCondition" + }, + { + "$deprecated": true, + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.WeekendCondition" + }, + { + "$deprecated": true, + "$dynamic": false + } + ] + } + ] + } + }, + "stopAfter": { + "$dynamic": false, + "title": "List of execution states after which a trigger should be stopped (a.k.a. disabled).", + "type": "array", + "items": { + "$dynamic": false, + "type": "string", + "enum": [ + "CREATED", + "RUNNING", + "PAUSED", + "RESTARTED", + "KILLING", + "SUCCESS", + "WARNING", + "FAILED", + "KILLED", + "CANCELLED", + "QUEUED", + "RETRYING", + "RETRIED" + ] + } + }, + "timezone": { + "$dynamic": false, + "type": "string", + "title": "The [time zone identifier](https://en.wikipedia.org/wiki/List_of_tz_database_time_zones) (i.e. the second column in [the Wikipedia table](https://en.wikipedia.org/wiki/List_of_tz_database_time_zones#List)) to use for evaluating the cron expression. Default value is the server default zone ID.", + "default": "Etc/UTC", + "markdownDescription": "Default value is : `Etc/UTC`" + }, + "type": { + "const": "io.kestra.plugin.core.trigger.Schedule" + }, + "withSeconds": { + "$dynamic": false, + "type": "boolean", + "title": "Whether the cron expression has seconds precision", + "default": false, + "markdownDescription": "By default, the cron expression has 5 fields, setting this property to true will allow a 6th fields for seconds precision.\n\nDefault value is : `false`" + }, + "workerGroup": { + "$ref": "#/definitions/io.kestra.core.models.tasks.WorkerGroup" + } + }, + "required": ["cron", "id", "type"], + "title": "Schedule a flow based on a CRON expression.", + "markdownDescription": "You can add multiple schedule(s) to a flow.\nThe scheduler keeps track of the last scheduled date, allowing you to easily backfill missed executions.\nKeep in mind that if you change the trigger ID, the scheduler will consider this as a new schedule, and will start creating new scheduled executions from the current date.\nBy default, Schedules will use UTC. If you need a different timezone, use the `timezone` property to update it.##### Examples\n\u003E Schedule a flow every 15 minutes.\n```yaml\nid: scheduled_flow\nnamespace: company.team\n\ntasks:\n - id: sleep_randomly\n type: io.kestra.plugin.scripts.shell.Commands\n runner: PROCESS\n commands:\n - echo \"{{ execution.startDate ?? trigger.date }}\"\n - sleep $((RANDOM % 60 + 1))\n\ntriggers:\n - id: every_15_minutes\n type: io.kestra.plugin.core.trigger.Schedule\n cron: '*/15 * * * *'\n```\n\n\u003E Schedule a flow every hour using the cron nickname `@hourly`.\n```yaml\ntriggers:\n - id: hourly\n type: io.kestra.plugin.core.trigger.Schedule\n cron: \"@hourly\"\n```\n\n\u003E Schedule a flow on the first Monday of the month at 11 AM.\n```yaml\ntriggers:\n - id: schedule\n cron: \"0 11 * * 1\"\n conditions:\n - type: io.kestra.plugin.core.condition.DayWeekInMonthCondition\n date: \"{{ trigger.date }}\"\n dayOfWeek: \"MONDAY\"\n dayInMonth: \"FIRST\"\n```\n\n\u003E Schedule a flow every day at 9:00 AM and pause a schedule trigger after a failed execution using the `stopAfter` property.\n```yaml\nid: business_critical_flow\nnamespace: company.team\n\ntasks:\n - id: important_task\n type: io.kestra.plugin.core.log.Log\n message: \"if this run fails, disable the schedule until the issue is fixed\"\n\ntriggers:\n - id: stop_after_failed\n type: io.kestra.plugin.core.trigger.Schedule\n cron: \"0 9 * * *\"\n stopAfter:\n - FAILED\n```" + }, + "io.kestra.plugin.core.trigger.Toggle": { + "type": "object", + "properties": { + "allowFailure": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "description": { + "type": "string" + }, + "disabled": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "enabled": { + "$dynamic": false, + "type": "boolean", + "title": "Whether to enable or disable the trigger.", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "flowId": { + "$dynamic": true, + "type": "string", + "title": "The flow identifier of the trigger to toggle.", + "markdownDescription": "If not set, the current flow identifier will be used." + }, + "id": { + "type": "string", + "minLength": 1, + "pattern": "^[a-zA-Z0-9][a-zA-Z0-9_-]*" + }, + "logLevel": { + "type": "string", + "enum": ["ERROR", "WARN", "INFO", "DEBUG", "TRACE"] + }, + "namespace": { + "$dynamic": true, + "type": "string", + "title": "The namespace of the flow of the trigger to toggle.", + "markdownDescription": "If not set, the current flow namespace will be used." + }, + "retry": { + "oneOf": [ + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Constant-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Exponential-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Random-2" + } + ] + }, + "timeout": { + "type": "string", + "format": "duration" + }, + "trigger": { + "$dynamic": true, + "type": "string", + "title": "The identifier of the trigger to toggle." + }, + "type": { + "const": "io.kestra.plugin.core.trigger.Toggle" + }, + "workerGroup": { + "$ref": "#/definitions/io.kestra.core.models.tasks.WorkerGroup" + } + }, + "required": ["id", "trigger", "type"], + "title": "Toggle a trigger: enable or disable it.", + "markdownDescription": "##### Examples\n\u003E Toggle a trigger on flow input.\n```yaml\nid: trigger-toggle\nnamespace: company.team\n\ninputs:\n - id: toggle\n type: BOOLEAN\n defaults: true\n\ntasks:\n - id: if\n type: io.kestra.plugin.core.flow.If\n condition: \"{{inputs.toggle}}\"\n then:\n - id: enable\n type: io.kestra.plugin.core.trigger.Toggle\n trigger: schedule\n enabled: true\n else:\n - id: disable\n type: io.kestra.plugin.core.trigger.Toggle\n trigger: schedule\n enabled: false\n - id: log\n type: io.kestra.plugin.core.log.Log\n message: Hello World\n\ntriggers:\n - id: schedule\n type: io.kestra.plugin.core.trigger.Schedule\n cron: \"* * * * *\"\n```" + }, + "io.kestra.plugin.core.trigger.Webhook": { + "type": "object", + "properties": { + "conditions": { + "$dynamic": false, + "title": "List of conditions in order to limit the flow trigger.", + "type": "array", + "items": { + "oneOf": [ + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.DateTimeBetweenCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.DayWeekCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.DayWeekInMonthCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.ExecutionFlowCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.ExecutionLabelsCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.ExecutionNamespaceCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.ExecutionOutputsCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.ExecutionStatusCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.ExpressionCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.FlowCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.FlowNamespaceCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.HasRetryAttemptCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.MultipleCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.NotCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.OrCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.PublicHolidayCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.TimeBetweenCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.WeekendCondition" + }, + { + "$dynamic": false + } + ] + } + ] + } + }, + "description": { + "type": "string" + }, + "disabled": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "id": { + "type": "string", + "title": "A unique ID for the whole flow.", + "minLength": 1, + "pattern": "^[a-zA-Z0-9][a-zA-Z0-9_-]*" + }, + "key": { + "$dynamic": true, + "type": "string", + "title": "The unique key that will be part of the URL.", + "maxLength": 256, + "markdownDescription": "The key is used for generating the URL of the webhook.\n\n::alert{type=\"warning\"}\nMake sure to keep the webhook key secure. It's the only security mechanism to protect your endpoint from bad actors, and must be considered as a secret. You can use a random key generator to create the key.\n::\n" + }, + "labels": { + "title": "The labels to pass to the execution created.", + "type": "array", + "items": { + "$ref": "#/definitions/io.kestra.core.models.Label" + } + }, + "logLevel": { + "type": "string", + "enum": ["ERROR", "WARN", "INFO", "DEBUG", "TRACE"] + }, + "stopAfter": { + "$dynamic": false, + "title": "List of execution states after which a trigger should be stopped (a.k.a. disabled).", + "type": "array", + "items": { + "$dynamic": false, + "type": "string", + "enum": [ + "CREATED", + "RUNNING", + "PAUSED", + "RESTARTED", + "KILLING", + "SUCCESS", + "WARNING", + "FAILED", + "KILLED", + "CANCELLED", + "QUEUED", + "RETRYING", + "RETRIED" + ] + } + }, + "type": { + "const": "io.kestra.plugin.core.trigger.Webhook" + }, + "workerGroup": { + "$ref": "#/definitions/io.kestra.core.models.tasks.WorkerGroup" + } + }, + "required": ["id", "key", "type"], + "title": "Trigger a flow from a webhook.", + "markdownDescription": "Webhook trigger allows you to create a unique URL that you can use to trigger a Kestra flow execution based on events in another application such as GitHub or Amazon EventBridge. In order to use that URL, you have to add a secret key that will secure your webhook URL.\n\nThe URL will then follow the following format: `https://{your_hostname}/api/v1/executions/webhook/{namespace}/{flowId}/{key}`. Replace the templated values according to your workflow setup.\n\nThe webhook URL accepts `GET`, `POST` and `PUT` requests.\n\nYou can access the request body and headers sent by another application using the following template variables:\n- `{{ trigger.body }}`\n- `{{ trigger.headers }}`.\n\nThe webhook response will be one of the following HTTP status codes:\n- 404 if the namespace, flow or webhook key is not found.\n- 200 if the webhook triggers an execution.\n- 204 if the webhook cannot trigger an execution due to a lack of matching event conditions sent by other application.\n\nA webhook trigger can have conditions but it doesn't support conditions of type `MultipleCondition`.##### Examples\n\u003E Add a webhook trigger to the current flow with the key `4wjtkzwVGBM9yKnjm3yv8r`, the webhook will be available at the URI `/api/v1/executions/webhook/{namespace}/{flowId}/4wjtkzwVGBM9yKnjm3yv8r`.\n```yaml\ntriggers:\n - id: webhook\n type: io.kestra.plugin.core.trigger.Webhook\n key: 4wjtkzwVGBM9yKnjm3yv8r\n```\n\n\u003E Add a trigger matching specific webhook event condition. The flow will be executed only if the condition is met.`.\n\n```yaml\ntriggers:\n - id: webhook\n type: io.kestra.plugin.core.trigger.Webhook\n key: 4wjtkzwVGBM9yKnjm3yv8r\n conditions:\n - type: io.kestra.plugin.core.condition.ExpressionCondition\n expression: \"{{ trigger.body.hello == 'world' }}\"\n```" + }, + "io.kestra.plugin.couchbase.Query": { + "type": "object", + "properties": { + "allowFailure": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "connectionString": { + "$dynamic": true, + "type": "string", + "title": "Connection string used to locate the Couchbase cluster.", + "minLength": 1 + }, + "description": { + "type": "string" + }, + "disabled": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "fetchType": { + "$dynamic": false, + "type": "string", + "enum": ["STORE", "FETCH", "FETCH_ONE", "NONE"], + "title": "The way you want to fetch and/or store the data.", + "default": "STORE", + "markdownDescription": "FETCH_ONE - output just the first row.\nFETCH - output all the rows.\nSTORE - store all the rows in a file.\nNONE - do nothing.\n\nDefault value is : `STORE`" + }, + "id": { + "type": "string", + "minLength": 1, + "pattern": "^[a-zA-Z0-9][a-zA-Z0-9_-]*" + }, + "logLevel": { + "type": "string", + "enum": ["ERROR", "WARN", "INFO", "DEBUG", "TRACE"] + }, + "parameters": { + "$dynamic": true, + "title": "Query parameters, can be positional or named parameters.", + "additionalProperties": { + "type": "string" + }, + "markdownDescription": "See Couchbase documentation about Prepared Statements for query syntax. This should be supplied with a parameter map if using named parameters, or an array for positional ones.", + "oneOf": [ + { + "type": "object" + }, + { + "type": "array", + "items": { + "type": "string" + } + } + ] + }, + "password": { + "$dynamic": true, + "type": "string", + "title": "Plaintext authentication password.", + "minLength": 1 + }, + "query": { + "$dynamic": true, + "type": "string", + "title": "N1QL query to execute on Couchbase database.", + "minLength": 1 + }, + "retry": { + "oneOf": [ + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Constant-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Exponential-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Random-2" + } + ] + }, + "timeout": { + "type": "string", + "format": "duration" + }, + "type": { + "const": "io.kestra.plugin.couchbase.Query" + }, + "username": { + "$dynamic": true, + "type": "string", + "title": "Plaintext authentication username.", + "minLength": 1 + }, + "workerGroup": { + "$ref": "#/definitions/io.kestra.core.models.tasks.WorkerGroup" + } + }, + "required": [ + "connectionString", + "id", + "password", + "query", + "type", + "username" + ], + "title": "Query a Couchbase database with N1QL.", + "markdownDescription": "##### Examples\n\u003E Send a N1QL query to a Couchbase database.\n```yaml\nconnectionString: couchbase://localhost\nusername: couchbase_user\npassword: couchbase_passwd\nquery: SELECT * FROM `COUCHBASE_BUCKET`(.`COUCHBASE_SCOPE`.`COUCHBASE_COLLECTION`)\nfetchType: FETCH\n```" + }, + "io.kestra.plugin.couchbase.Trigger": { + "type": "object", + "properties": { + "conditions": { + "$dynamic": false, + "title": "List of conditions in order to limit the flow trigger.", + "type": "array", + "items": { + "oneOf": [ + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.DateTimeBetweenCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.DayWeekCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.DayWeekInMonthCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.ExecutionFlowCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.ExecutionLabelsCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.ExecutionNamespaceCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.ExecutionOutputsCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.ExecutionStatusCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.ExpressionCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.FlowCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.FlowNamespaceCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.HasRetryAttemptCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.MultipleCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.NotCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.OrCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.PublicHolidayCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.TimeBetweenCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.WeekendCondition" + }, + { + "$dynamic": false + } + ] + } + ] + } + }, + "connectionString": { + "$dynamic": true, + "type": "string", + "title": "Connection string used to locate the Couchbase cluster.", + "minLength": 1 + }, + "description": { + "type": "string" + }, + "disabled": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "fetchType": { + "$dynamic": false, + "type": "string", + "enum": ["STORE", "FETCH", "FETCH_ONE", "NONE"], + "title": "The way you want to fetch and/or store the data.", + "default": "STORE", + "markdownDescription": "FETCH_ONE - output just the first row.\nFETCH - output all the rows.\nSTORE - store all the rows in a file.\nNONE - do nothing.\n\nDefault value is : `STORE`" + }, + "id": { + "type": "string", + "title": "A unique ID for the whole flow.", + "minLength": 1, + "pattern": "^[a-zA-Z0-9][a-zA-Z0-9_-]*" + }, + "interval": { + "$dynamic": false, + "type": "string", + "format": "duration", + "title": "Interval between polling.", + "default": 60, + "markdownDescription": "The interval between 2 different polls of schedule, this can avoid to overload the remote system with too many calls. For most of the triggers that depend on external systems, a minimal interval must be at least PT30S.\nSee [ISO_8601 Durations](https://en.wikipedia.org/wiki/ISO_8601#Durations) for more information of available interval values.\n\nDefault value is : `60.000000000`" + }, + "labels": { + "title": "The labels to pass to the execution created.", + "type": "array", + "items": { + "$ref": "#/definitions/io.kestra.core.models.Label" + } + }, + "logLevel": { + "type": "string", + "enum": ["ERROR", "WARN", "INFO", "DEBUG", "TRACE"] + }, + "parameters": { + "$dynamic": true, + "title": "Query parameters, can be positional or named parameters.", + "additionalProperties": { + "type": "string" + }, + "markdownDescription": "See Couchbase documentation about Prepared Statements for query syntax. This should be supplied with a parameter map if using named parameters, or an array for positional ones.", + "oneOf": [ + { + "type": "object" + }, + { + "type": "array", + "items": { + "type": "string" + } + } + ] + }, + "password": { + "$dynamic": true, + "type": "string", + "title": "Plaintext authentication password.", + "minLength": 1 + }, + "query": { + "$dynamic": true, + "type": "string", + "title": "N1QL query to execute on Couchbase database.", + "minLength": 1 + }, + "stopAfter": { + "$dynamic": false, + "title": "List of execution states after which a trigger should be stopped (a.k.a. disabled).", + "type": "array", + "items": { + "$dynamic": false, + "type": "string", + "enum": [ + "CREATED", + "RUNNING", + "PAUSED", + "RESTARTED", + "KILLING", + "SUCCESS", + "WARNING", + "FAILED", + "KILLED", + "CANCELLED", + "QUEUED", + "RETRYING", + "RETRIED" + ] + } + }, + "type": { + "const": "io.kestra.plugin.couchbase.Trigger" + }, + "username": { + "$dynamic": true, + "type": "string", + "title": "Plaintext authentication username.", + "minLength": 1 + }, + "workerGroup": { + "$ref": "#/definitions/io.kestra.core.models.tasks.WorkerGroup" + } + }, + "required": [ + "connectionString", + "id", + "password", + "query", + "type", + "username" + ], + "title": "Query a Couchbase database on regular intervals, and trigger flow on results.", + "markdownDescription": "##### Examples\n\u003E Wait for a N1QL query to return results, and then iterate through rows.\n```yaml\nid: couchbase-trigger\nnamespace: company.team\n\ntasks:\n - id: each\n type: io.kestra.plugin.core.flow.EachSequential\n tasks:\n - id: return\n type: io.kestra.plugin.core.debug.Return\n format: \"{{ json(taskrun.value) }}\"\n value: \"{{ trigger.rows }}\"\n\ntriggers:\n - id: watch\n type: io.kestra.plugin.couchbase.Trigger\n interval: \"PT5M\"\n connectionString: couchbase://localhost\n username: couchbase_user\n password: couchbase_passwd\n query: SELECT * FROM `COUCHBASE_BUCKET`(.`COUCHBASE_SCOPE`.`COUCHBASE_COLLECTION`)\n fetchType: FETCH\n```" + }, + "io.kestra.plugin.crypto.openpgp.Decrypt": { + "type": "object", + "properties": { + "allowFailure": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "description": { + "type": "string" + }, + "disabled": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "from": { + "$dynamic": true, + "type": "string", + "title": "The file to crypt" + }, + "id": { + "type": "string", + "minLength": 1, + "pattern": "^[a-zA-Z0-9][a-zA-Z0-9_-]*" + }, + "logLevel": { + "type": "string", + "enum": ["ERROR", "WARN", "INFO", "DEBUG", "TRACE"] + }, + "privateKey": { + "$dynamic": true, + "type": "string", + "title": "The private key to decrypt", + "markdownDescription": "Must be an ascii key export with `gpg --export-secret-key -a`" + }, + "privateKeyPassphrase": { + "$dynamic": true, + "type": "string", + "title": "The passphrase use to unlock the secret ring" + }, + "requiredSignerUsers": { + "$dynamic": true, + "title": "The list of recipients the file will be generated.", + "type": "array", + "items": { + "$dynamic": true, + "type": "string" + } + }, + "retry": { + "oneOf": [ + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Constant-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Exponential-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Random-2" + } + ] + }, + "signUsersKey": { + "$dynamic": true, + "title": "The public key use to sign the files", + "markdownDescription": "Must be an ascii key export with `gpg --export -a`", + "type": "array", + "items": { + "$dynamic": true, + "type": "string" + } + }, + "timeout": { + "type": "string", + "format": "duration" + }, + "type": { + "const": "io.kestra.plugin.crypto.openpgp.Decrypt" + }, + "workerGroup": { + "$ref": "#/definitions/io.kestra.core.models.tasks.WorkerGroup" + } + }, + "required": ["id", "type"], + "title": "Decrypt a file encrypted with PGP", + "markdownDescription": "##### Examples\n\u003E Decrypt a file\n```yaml\nfrom: \"{{ inputs.file }}\"\nprivateKey: |\n -----BEGIN PGP PRIVATE KEY BLOCK-----\nprivateKeyPassphrase: my-passphrase\n```\n\n\u003E Decrypt a file and verify signature\n```yaml\nfrom: \"{{ inputs.file }}\"\nprivateKey: |\n -----BEGIN PGP PRIVATE KEY BLOCK-----\nprivateKeyPassphrase: my-passphrase\nsignUsersKey: \n - |\n -----BEGIN PGP PRIVATE KEY BLOCK-----\nrequiredSignerUsers: \n - signer@kestra.io\n```" + }, + "io.kestra.plugin.crypto.openpgp.Encrypt": { + "type": "object", + "properties": { + "allowFailure": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "description": { + "type": "string" + }, + "disabled": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "from": { + "$dynamic": true, + "type": "string", + "title": "The file to crypt" + }, + "id": { + "type": "string", + "minLength": 1, + "pattern": "^[a-zA-Z0-9][a-zA-Z0-9_-]*" + }, + "key": { + "$dynamic": true, + "type": "string", + "title": "The public key use to sign the files", + "markdownDescription": "Must be an ascii key export with `gpg --export -a`" + }, + "logLevel": { + "type": "string", + "enum": ["ERROR", "WARN", "INFO", "DEBUG", "TRACE"] + }, + "recipients": { + "$dynamic": true, + "title": "The list of recipients the file will be generated.", + "type": "array", + "items": { + "$dynamic": true, + "type": "string" + } + }, + "retry": { + "oneOf": [ + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Constant-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Exponential-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Random-2" + } + ] + }, + "signPassphrase": { + "$dynamic": true, + "type": "string", + "title": "The passphrase use to unlock the secret ring" + }, + "signPrivateKey": { + "$dynamic": true, + "type": "string", + "title": "The public key use to sign the files", + "markdownDescription": "Must be an ascii key export with `gpg --export -a`" + }, + "signPublicKey": { + "$dynamic": true, + "type": "string", + "title": "The public key use to sign the files", + "markdownDescription": "Must be an ascii key export with `gpg --export -a`" + }, + "signUser": { + "$dynamic": true, + "type": "string", + "title": "The user that will signed the files", + "markdownDescription": "If you want to sign the file, you need to provide a `privateKey`" + }, + "timeout": { + "type": "string", + "format": "duration" + }, + "type": { + "const": "io.kestra.plugin.crypto.openpgp.Encrypt" + }, + "workerGroup": { + "$ref": "#/definitions/io.kestra.core.models.tasks.WorkerGroup" + } + }, + "required": ["id", "recipients", "type"], + "title": "Encrypt a file encrypted with PGP", + "markdownDescription": "##### Examples\n\u003E Encrypt a file not signed\n```yaml\nfrom: \"{{ inputs.file }}\"\nkey: |\n -----BEGIN PGP PUBLIC KEY BLOCK----- ... \nrecipients:\n - hello@kestra.io\n```\n\n\u003E Encrypt a file signed\n```yaml\nfrom: \"{{ inputs.file }}\"\nkey: |\n -----BEGIN PGP PUBLIC KEY BLOCK----- ... \nrecipients:\n - hello@kestra.io\nsignPublicKey: |\n -----BEGIN PGP PUBLIC KEY BLOCK----- ... \nsignPrivateKey: |\n -----BEGIN PGP PRIVATE KEY BLOCK-----\nsignPassphrase: my-passphrase\nsignUser: signer@kestra.io\n```" + }, + "io.kestra.plugin.databricks.AbstractTask-AuthenticationConfig": { + "type": "object", + "properties": { + "authType": { + "$dynamic": true, + "type": "string" + }, + "azureClientId": { + "$dynamic": true, + "type": "string" + }, + "azureClientSecret": { + "$dynamic": true, + "type": "string" + }, + "azureTenantId": { + "$dynamic": true, + "type": "string" + }, + "clientId": { + "$dynamic": true, + "type": "string" + }, + "clientSecret": { + "$dynamic": true, + "type": "string" + }, + "googleCredentials": { + "$dynamic": true, + "type": "string" + }, + "googleServiceAccount": { + "$dynamic": true, + "type": "string" + }, + "password": { + "$dynamic": true, + "type": "string" + }, + "token": { + "$dynamic": true, + "type": "string" + }, + "username": { + "$dynamic": true, + "type": "string" + } + } + }, + "io.kestra.plugin.databricks.cluster.CreateCluster": { + "type": "object", + "properties": { + "accountId": { + "$dynamic": true, + "type": "string", + "title": "Databricks account identifier." + }, + "allowFailure": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "authentication": { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.databricks.AbstractTask-AuthenticationConfig" + }, + { + "$dynamic": false, + "title": "Databricks authentication configuration.", + "markdownDescription": "This property allows to configure the authentication to Databricks, different properties should be set depending on the type of authentication and the cloud provider.\nAll configuration options can also be set using the standard Databricks environment variables.\nCheck the [Databricks authentication guide](https://docs.databricks.com/dev-tools/auth.html) for more information.\n" + } + ] + }, + "autoTerminationMinutes": { + "$dynamic": false, + "type": "integer", + "title": "If set, the cluster will be terminated automatically after this time period." + }, + "clusterName": { + "$dynamic": true, + "type": "string", + "title": "The name of the cluster." + }, + "configFile": { + "$dynamic": true, + "type": "string", + "title": "Databricks configuration file, use this if you don't want to configure each Databricks account properties one by one." + }, + "description": { + "type": "string" + }, + "disabled": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "host": { + "$dynamic": true, + "type": "string", + "title": "Databricks host." + }, + "id": { + "type": "string", + "minLength": 1, + "pattern": "^[a-zA-Z0-9][a-zA-Z0-9_-]*" + }, + "logLevel": { + "type": "string", + "enum": ["ERROR", "WARN", "INFO", "DEBUG", "TRACE"] + }, + "maxWorkers": { + "$dynamic": false, + "type": "integer", + "title": "The maximum number of workers.", + "markdownDescription": "Use this property along with `minWorkers` to use autoscaling. Otherwise, set a fixed number of workers using `numWorkers`." + }, + "minWorkers": { + "$dynamic": false, + "type": "integer", + "title": "The minimum number of workers.", + "markdownDescription": "Use this property along with `maxWorkers` for autoscaling. Otherwise, set a fixed number of workers using `numWorkers`." + }, + "nodeTypeId": { + "$dynamic": true, + "type": "string", + "title": "The type of node, the value depends on the cloud provider." + }, + "numWorkers": { + "$dynamic": false, + "type": "integer", + "title": "The fixed number of workers.", + "markdownDescription": "You must set this property unless you use the `minWorkers` and `maxWorkers` properties for autoscaling." + }, + "retry": { + "oneOf": [ + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Constant-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Exponential-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Random-2" + } + ] + }, + "sparkVersion": { + "$dynamic": true, + "type": "string", + "title": "The Spark version." + }, + "timeout": { + "type": "string", + "format": "duration" + }, + "type": { + "const": "io.kestra.plugin.databricks.cluster.CreateCluster" + }, + "workerGroup": { + "$ref": "#/definitions/io.kestra.core.models.tasks.WorkerGroup" + } + }, + "required": ["clusterName", "id", "sparkVersion", "type"], + "title": "Create a Databricks cluster.", + "markdownDescription": "##### Examples\n\u003E Create a Databricks cluster with one worker.\n```yaml\nid: createCluster\ntype: io.kestra.plugin.databricks.cluster.CreateCluster\nauthentication:\n token: \u003Cyour-token\u003E\nhost: \u003Cyour-host\u003E\nclusterName: kestra-demo\nnodeTypeId: n2-highmem-4\nnumWorkers: 1\nsparkVersion: 13.0.x-scala2.12\n```" + }, + "io.kestra.plugin.databricks.cluster.DeleteCluster": { + "type": "object", + "properties": { + "accountId": { + "$dynamic": true, + "type": "string", + "title": "Databricks account identifier." + }, + "allowFailure": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "authentication": { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.databricks.AbstractTask-AuthenticationConfig" + }, + { + "$dynamic": false, + "title": "Databricks authentication configuration.", + "markdownDescription": "This property allows to configure the authentication to Databricks, different properties should be set depending on the type of authentication and the cloud provider.\nAll configuration options can also be set using the standard Databricks environment variables.\nCheck the [Databricks authentication guide](https://docs.databricks.com/dev-tools/auth.html) for more information.\n" + } + ] + }, + "clusterId": { + "$dynamic": true, + "type": "string", + "title": "The cluster identifier." + }, + "configFile": { + "$dynamic": true, + "type": "string", + "title": "Databricks configuration file, use this if you don't want to configure each Databricks account properties one by one." + }, + "description": { + "type": "string" + }, + "disabled": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "host": { + "$dynamic": true, + "type": "string", + "title": "Databricks host." + }, + "id": { + "type": "string", + "minLength": 1, + "pattern": "^[a-zA-Z0-9][a-zA-Z0-9_-]*" + }, + "logLevel": { + "type": "string", + "enum": ["ERROR", "WARN", "INFO", "DEBUG", "TRACE"] + }, + "retry": { + "oneOf": [ + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Constant-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Exponential-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Random-2" + } + ] + }, + "timeout": { + "type": "string", + "format": "duration" + }, + "type": { + "const": "io.kestra.plugin.databricks.cluster.DeleteCluster" + }, + "workerGroup": { + "$ref": "#/definitions/io.kestra.core.models.tasks.WorkerGroup" + } + }, + "required": ["clusterId", "id", "type"], + "title": "Delete a Databricks cluster.", + "markdownDescription": "##### Examples\n\u003E Delete a Databricks cluster.\n```yaml\nid: deleteCluster\ntype: io.kestra.plugin.databricks.cluster.DeleteCluster\nauthentication:\n token: \u003Cyour-token\u003E\nhost: \u003Cyour-host\u003E\nclusterId: \u003Cyour-cluster\u003E\n```" + }, + "io.kestra.plugin.databricks.dbfs.Download": { + "$metrics": [ + { + "name": "file.size", + "type": "counter", + "unit": "", + "description": "The file size" + } + ], + "type": "object", + "properties": { + "accountId": { + "$dynamic": true, + "type": "string", + "title": "Databricks account identifier." + }, + "allowFailure": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "authentication": { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.databricks.AbstractTask-AuthenticationConfig" + }, + { + "$dynamic": false, + "title": "Databricks authentication configuration.", + "markdownDescription": "This property allows to configure the authentication to Databricks, different properties should be set depending on the type of authentication and the cloud provider.\nAll configuration options can also be set using the standard Databricks environment variables.\nCheck the [Databricks authentication guide](https://docs.databricks.com/dev-tools/auth.html) for more information.\n" + } + ] + }, + "configFile": { + "$dynamic": true, + "type": "string", + "title": "Databricks configuration file, use this if you don't want to configure each Databricks account properties one by one." + }, + "description": { + "type": "string" + }, + "disabled": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "from": { + "$dynamic": true, + "type": "string", + "title": "The file to download." + }, + "host": { + "$dynamic": true, + "type": "string", + "title": "Databricks host." + }, + "id": { + "type": "string", + "minLength": 1, + "pattern": "^[a-zA-Z0-9][a-zA-Z0-9_-]*" + }, + "logLevel": { + "type": "string", + "enum": ["ERROR", "WARN", "INFO", "DEBUG", "TRACE"] + }, + "retry": { + "oneOf": [ + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Constant-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Exponential-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Random-2" + } + ] + }, + "timeout": { + "type": "string", + "format": "duration" + }, + "type": { + "const": "io.kestra.plugin.databricks.dbfs.Download" + }, + "workerGroup": { + "$ref": "#/definitions/io.kestra.core.models.tasks.WorkerGroup" + } + }, + "required": ["from", "id", "type"], + "title": "Download a file from Databricks File System.", + "markdownDescription": "The file can be of any size. The task will download the file in chunks of 1MB.##### Examples\n\u003E Download a file from the Databricks File System.\n```yaml\nid: downloadFile\ntype: io.kestra.plugin.databricks.dbfs.Download\nauthentication:\n token: \u003Cyour-token\u003E\nhost: \u003Cyour-host\u003E\nfrom: /Share/myFile.txt\n```" + }, + "io.kestra.plugin.databricks.dbfs.Upload": { + "$metrics": [ + { + "name": "file.size", + "type": "counter", + "unit": "", + "description": "The file size" + } + ], + "type": "object", + "properties": { + "accountId": { + "$dynamic": true, + "type": "string", + "title": "Databricks account identifier." + }, + "allowFailure": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "authentication": { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.databricks.AbstractTask-AuthenticationConfig" + }, + { + "$dynamic": false, + "title": "Databricks authentication configuration.", + "markdownDescription": "This property allows to configure the authentication to Databricks, different properties should be set depending on the type of authentication and the cloud provider.\nAll configuration options can also be set using the standard Databricks environment variables.\nCheck the [Databricks authentication guide](https://docs.databricks.com/dev-tools/auth.html) for more information.\n" + } + ] + }, + "configFile": { + "$dynamic": true, + "type": "string", + "title": "Databricks configuration file, use this if you don't want to configure each Databricks account properties one by one." + }, + "description": { + "type": "string" + }, + "disabled": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "from": { + "$dynamic": true, + "type": "string", + "title": "The file to upload.", + "markdownDescription": "Must be a file from Kestra internal storage." + }, + "host": { + "$dynamic": true, + "type": "string", + "title": "Databricks host." + }, + "id": { + "type": "string", + "minLength": 1, + "pattern": "^[a-zA-Z0-9][a-zA-Z0-9_-]*" + }, + "logLevel": { + "type": "string", + "enum": ["ERROR", "WARN", "INFO", "DEBUG", "TRACE"] + }, + "retry": { + "oneOf": [ + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Constant-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Exponential-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Random-2" + } + ] + }, + "timeout": { + "type": "string", + "format": "duration" + }, + "to": { + "$dynamic": true, + "type": "string", + "title": "The destination path." + }, + "type": { + "const": "io.kestra.plugin.databricks.dbfs.Upload" + }, + "workerGroup": { + "$ref": "#/definitions/io.kestra.core.models.tasks.WorkerGroup" + } + }, + "required": ["from", "id", "to", "type"], + "title": "Upload a file to the Databricks File System.", + "markdownDescription": "The file can be of any size. The task will upload the file in chunks of 1MB.##### Examples\n\u003E Upload a file to the Databricks File System.\n```yaml\nid: uploadFile\ntype: io.kestra.plugin.databricks.dbfs.Upload\nauthentication:\n token: \u003Cyour-token\u003E\nhost: \u003Cyour-host\u003E\nfrom: \"{{inputs.someFile}}\"\nto: /Share/myFile.txt\n```" + }, + "io.kestra.plugin.databricks.job.CreateJob": { + "type": "object", + "properties": { + "accountId": { + "$dynamic": true, + "type": "string", + "title": "Databricks account identifier." + }, + "allowFailure": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "authentication": { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.databricks.AbstractTask-AuthenticationConfig" + }, + { + "$dynamic": false, + "title": "Databricks authentication configuration.", + "markdownDescription": "This property allows to configure the authentication to Databricks, different properties should be set depending on the type of authentication and the cloud provider.\nAll configuration options can also be set using the standard Databricks environment variables.\nCheck the [Databricks authentication guide](https://docs.databricks.com/dev-tools/auth.html) for more information.\n" + } + ] + }, + "configFile": { + "$dynamic": true, + "type": "string", + "title": "Databricks configuration file, use this if you don't want to configure each Databricks account properties one by one." + }, + "description": { + "type": "string" + }, + "disabled": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "host": { + "$dynamic": true, + "type": "string", + "title": "Databricks host." + }, + "id": { + "type": "string", + "minLength": 1, + "pattern": "^[a-zA-Z0-9][a-zA-Z0-9_-]*" + }, + "jobName": { + "$dynamic": true, + "type": "string", + "title": "The name of the job." + }, + "jobTasks": { + "$dynamic": false, + "title": "The job tasks, if multiple tasks are defined you must set `dependsOn` on each task.", + "minItems": 1, + "type": "array", + "items": { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.databricks.job.CreateJob-JobTaskSetting" + }, + { + "$dynamic": false + } + ] + } + }, + "logLevel": { + "type": "string", + "enum": ["ERROR", "WARN", "INFO", "DEBUG", "TRACE"] + }, + "retry": { + "oneOf": [ + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Constant-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Exponential-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Random-2" + } + ] + }, + "timeout": { + "type": "string", + "format": "duration" + }, + "type": { + "const": "io.kestra.plugin.databricks.job.CreateJob" + }, + "waitForCompletion": { + "$dynamic": false, + "type": "string", + "format": "duration", + "title": "If set, the task will wait for the job run completion for up to the `waitForCompletion` duration before timing out." + }, + "workerGroup": { + "$ref": "#/definitions/io.kestra.core.models.tasks.WorkerGroup" + } + }, + "required": ["id", "jobTasks", "type"], + "title": "Create a Databricks job and run it. Set `waitForCompletion` to the desired maximum duration if you want the task to wait for the job completion (e.g., `PT1H` to wait up to one hour).", + "markdownDescription": "##### Examples\n\u003E Create a Databricks job, run it, and wait for completion for five minutes.\n```yaml\nid: createJob\ntype: io.kestra.plugin.databricks.job.CreateJob\nauthentication:\n token: \u003Cyour-token\u003E\nhost: \u003Cyour-host\u003E\njobTasks:\n - existingClusterId: \u003Cyour-cluster\u003E\n taskKey: taskKey\n sparkPythonTask:\n pythonFile: /Shared/hello.py\n sparkPythonTaskSource: WORKSPACE\nwaitForCompletion: PT5M\n```" + }, + "io.kestra.plugin.databricks.job.CreateJob-JobTaskSetting": { + "type": "object", + "properties": { + "dbtTask": { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.databricks.job.task.DbtTaskSetting" + }, + { + "$dynamic": false, + "title": "DBT task settings." + } + ] + }, + "dependsOn": { + "$dynamic": false, + "title": "Task dependencies, set this if multiple tasks are defined on the job.", + "type": "array", + "items": { + "$dynamic": false, + "type": "string" + } + }, + "description": { + "$dynamic": true, + "type": "string", + "title": "Task description." + }, + "existingClusterId": { + "$dynamic": true, + "type": "string", + "title": "The identifier of the cluster." + }, + "libraries": { + "$dynamic": false, + "title": "Task libraries.", + "type": "array", + "items": { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.databricks.job.task.LibrarySetting" + }, + { + "$dynamic": false + } + ] + } + }, + "notebookTask": { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.databricks.job.task.NotebookTaskSetting" + }, + { + "$dynamic": false, + "title": "Notebook task settings." + } + ] + }, + "pipelineTask": { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.databricks.job.task.PipelineTaskSetting" + }, + { + "$dynamic": false, + "title": "Pipeline task settings." + } + ] + }, + "pythonWheelTask": { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.databricks.job.task.PythonWheelTaskSetting" + }, + { + "$dynamic": false, + "title": "Python Wheel task settings." + } + ] + }, + "sparkJarTask": { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.databricks.job.task.SparkJarTaskSetting" + }, + { + "$dynamic": false, + "title": "Spark JAR task settings." + } + ] + }, + "sparkPythonTask": { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.databricks.job.task.SparkPythonTaskSetting" + }, + { + "$dynamic": false, + "title": "Spark Python task settings." + } + ] + }, + "sparkSubmitTask": { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.databricks.job.task.SparkSubmitTaskSetting" + }, + { + "$dynamic": false, + "title": "Spark Submit task settings." + } + ] + }, + "sqlTask": { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.databricks.job.task.SqlTaskSetting" + }, + { + "$dynamic": false, + "title": "SQL task settings." + } + ] + }, + "taskKey": { + "$dynamic": true, + "type": "string", + "title": "Task key." + }, + "timeoutSeconds": { + "$dynamic": false, + "type": "integer", + "title": "Task timeout in seconds." + } + } + }, + "io.kestra.plugin.databricks.job.SubmitRun": { + "type": "object", + "properties": { + "accountId": { + "$dynamic": true, + "type": "string", + "title": "Databricks account identifier." + }, + "allowFailure": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "authentication": { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.databricks.AbstractTask-AuthenticationConfig" + }, + { + "$dynamic": false, + "title": "Databricks authentication configuration.", + "markdownDescription": "This property allows to configure the authentication to Databricks, different properties should be set depending on the type of authentication and the cloud provider.\nAll configuration options can also be set using the standard Databricks environment variables.\nCheck the [Databricks authentication guide](https://docs.databricks.com/dev-tools/auth.html) for more information.\n" + } + ] + }, + "configFile": { + "$dynamic": true, + "type": "string", + "title": "Databricks configuration file, use this if you don't want to configure each Databricks account properties one by one." + }, + "description": { + "type": "string" + }, + "disabled": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "host": { + "$dynamic": true, + "type": "string", + "title": "Databricks host." + }, + "id": { + "type": "string", + "minLength": 1, + "pattern": "^[a-zA-Z0-9][a-zA-Z0-9_-]*" + }, + "logLevel": { + "type": "string", + "enum": ["ERROR", "WARN", "INFO", "DEBUG", "TRACE"] + }, + "retry": { + "oneOf": [ + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Constant-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Exponential-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Random-2" + } + ] + }, + "runName": { + "$dynamic": true, + "type": "string", + "title": "The name of the run." + }, + "runTasks": { + "$dynamic": false, + "title": "The run tasks, if multiple tasks are defined you must set `dependsOn` on each task.", + "minItems": 1, + "type": "array", + "items": { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.databricks.job.SubmitRun-RunSubmitTaskSetting" + }, + { + "$dynamic": false + } + ] + } + }, + "timeout": { + "type": "string", + "format": "duration" + }, + "type": { + "const": "io.kestra.plugin.databricks.job.SubmitRun" + }, + "waitForCompletion": { + "$dynamic": false, + "type": "string", + "format": "duration", + "title": "If set, the task will wait for the run completion." + }, + "workerGroup": { + "$ref": "#/definitions/io.kestra.core.models.tasks.WorkerGroup" + } + }, + "required": ["id", "runTasks", "type"], + "title": "Submit a Databricks run. Optionally, set `waitForCompletion` to a desired maximum duration to wait for the run completion.", + "markdownDescription": "##### Examples\n\u003E Submit a Databricks run and wait up to 5 minutes for its completion.\n```yaml\nid: submitRun\ntype: io.kestra.plugin.databricks.job.SubmitRun\nauthentication:\n token: \u003Cyour-token\u003E\nhost: \u003Cyour-host\u003E\nrunTasks:\n - existingClusterId: \u003Cyour-cluster\u003E\n taskKey: taskKey\n sparkPythonTask:\n pythonFile: /Shared/hello.py\n sparkPythonTaskSource: WORKSPACE\nwaitForCompletion: PT5M\n```" + }, + "io.kestra.plugin.databricks.job.SubmitRun-RunSubmitTaskSetting": { + "type": "object", + "properties": { + "dependsOn": { + "$dynamic": false, + "title": "Task dependencies, set this if multiple tasks are defined on the run.", + "type": "array", + "items": { + "$dynamic": false, + "type": "string" + } + }, + "existingClusterId": { + "$dynamic": true, + "type": "string" + }, + "libraries": { + "$dynamic": false, + "title": "Task libraries.", + "type": "array", + "items": { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.databricks.job.task.LibrarySetting" + }, + { + "$dynamic": false + } + ] + } + }, + "notebookTask": { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.databricks.job.task.NotebookTaskSetting" + }, + { + "$dynamic": false, + "title": "Notebook task settings." + } + ] + }, + "pipelineTask": { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.databricks.job.task.PipelineTaskSetting" + }, + { + "$dynamic": false, + "title": "Pipeline task settings." + } + ] + }, + "pythonWheelTask": { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.databricks.job.task.PythonWheelTaskSetting" + }, + { + "$dynamic": false, + "title": "Python Wheel task settings." + } + ] + }, + "sparkJarTask": { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.databricks.job.task.SparkJarTaskSetting" + }, + { + "$dynamic": false, + "title": "Spark JAR task settings." + } + ] + }, + "sparkPythonTask": { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.databricks.job.task.SparkPythonTaskSetting" + }, + { + "$dynamic": false, + "title": "Spark Python task settings." + } + ] + }, + "sparkSubmitTask": { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.databricks.job.task.SparkSubmitTaskSetting" + }, + { + "$dynamic": false, + "title": "Spark Submit task settings." + } + ] + }, + "taskKey": { + "$dynamic": true, + "type": "string" + }, + "timeoutSeconds": { + "$dynamic": false, + "type": "integer" + } + } + }, + "io.kestra.plugin.databricks.job.task.DbtTaskSetting": { + "type": "object", + "properties": { + "catalog": { + "$dynamic": true, + "type": "string" + }, + "commands": { + "$dynamic": true, + "type": "array", + "items": { + "$dynamic": true, + "type": "string" + } + }, + "schema": { + "$dynamic": true, + "type": "string" + }, + "warehouseId": { + "$dynamic": true, + "type": "string" + } + } + }, + "io.kestra.plugin.databricks.job.task.LibrarySetting": { + "type": "object", + "properties": { + "cran": { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.databricks.job.task.LibrarySetting-CranSetting" + }, + { + "$dynamic": false + } + ] + }, + "egg": { + "$dynamic": true, + "type": "string" + }, + "jar": { + "$dynamic": true, + "type": "string" + }, + "maven": { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.databricks.job.task.LibrarySetting-MavenSetting" + }, + { + "$dynamic": false + } + ] + }, + "pypi": { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.databricks.job.task.LibrarySetting-PypiSetting" + }, + { + "$dynamic": false + } + ] + }, + "whl": { + "$dynamic": true, + "type": "string" + } + } + }, + "io.kestra.plugin.databricks.job.task.LibrarySetting-CranSetting": { + "type": "object", + "properties": { + "_package": { + "$dynamic": true, + "type": "string" + }, + "repo": { + "$dynamic": true, + "type": "string" + } + } + }, + "io.kestra.plugin.databricks.job.task.LibrarySetting-MavenSetting": { + "type": "object", + "properties": { + "coordinates": { + "$dynamic": true, + "type": "string" + }, + "exclusions": { + "$dynamic": true, + "type": "array", + "items": { + "$dynamic": true, + "type": "string" + } + }, + "repo": { + "$dynamic": true, + "type": "string" + } + } + }, + "io.kestra.plugin.databricks.job.task.LibrarySetting-PypiSetting": { + "type": "object", + "properties": { + "_package": { + "$dynamic": true, + "type": "string" + }, + "repo": { + "$dynamic": true, + "type": "string" + } + } + }, + "io.kestra.plugin.databricks.job.task.NotebookTaskSetting": { + "type": "object", + "properties": { + "baseParameters": { + "$dynamic": true, + "title": "Map of task base parameters.", + "additionalProperties": { + "type": "string" + }, + "markdownDescription": "Can be a map of string/string or a variable that binds to a JSON object.", + "oneOf": [ + { + "type": "string" + }, + { + "type": "object" + } + ] + }, + "notebookPath": { + "$dynamic": true, + "type": "string" + }, + "source": { + "$dynamic": false, + "type": "string", + "enum": ["GIT", "WORKSPACE"] + } + } + }, + "io.kestra.plugin.databricks.job.task.PipelineTaskSetting": { + "type": "object", + "properties": { + "fullRefresh": { + "$dynamic": false, + "type": "boolean" + }, + "pipelineId": { + "$dynamic": true, + "type": "string" + } + } + }, + "io.kestra.plugin.databricks.job.task.PythonWheelTaskSetting": { + "type": "object", + "properties": { + "entryPoint": { + "$dynamic": true, + "type": "string" + }, + "namedParameters": { + "$dynamic": true, + "title": "Map of task named parameters.", + "additionalProperties": { + "type": "string" + }, + "markdownDescription": "Can be a map of string/string or a variable that binds to a JSON object.", + "oneOf": [ + { + "type": "string" + }, + { + "type": "object" + } + ] + }, + "packageName": { + "$dynamic": true, + "type": "string" + }, + "parameters": { + "$dynamic": true, + "title": "List of task parameters.", + "markdownDescription": "Can be a list of strings or a variable that binds to a JSON array of strings.", + "oneOf": [ + { + "type": "string" + }, + { + "type": "array", + "items": { + "type": "string" + } + } + ] + } + } + }, + "io.kestra.plugin.databricks.job.task.SparkJarTaskSetting": { + "type": "object", + "properties": { + "jarUri": { + "$dynamic": true, + "type": "string" + }, + "mainClassName": { + "$dynamic": true, + "type": "string" + }, + "parameters": { + "$dynamic": true, + "title": "List of task parameters.", + "markdownDescription": "Can be a list of strings or a variable that binds to a JSON array of strings.", + "oneOf": [ + { + "type": "string" + }, + { + "type": "array", + "items": { + "type": "string" + } + } + ] + } + } + }, + "io.kestra.plugin.databricks.job.task.SparkPythonTaskSetting": { + "type": "object", + "properties": { + "parameters": { + "$dynamic": true, + "title": "List of task parameters.", + "markdownDescription": "Can be a list of strings or a variable that binds to a JSON array of strings.", + "oneOf": [ + { + "type": "string" + }, + { + "type": "array", + "items": { + "type": "string" + } + } + ] + }, + "pythonFile": { + "$dynamic": true, + "type": "string" + }, + "sparkPythonTaskSource": { + "$dynamic": false, + "type": "string", + "enum": ["GIT", "WORKSPACE"] + } + }, + "required": ["pythonFile", "sparkPythonTaskSource"] + }, + "io.kestra.plugin.databricks.job.task.SparkSubmitTaskSetting": { + "type": "object", + "properties": { + "parameters": { + "$dynamic": true, + "title": "List of task parameters.", + "markdownDescription": "Can be a list of strings or a variable that binds to a JSON array of strings.", + "oneOf": [ + { + "type": "string" + }, + { + "type": "array", + "items": { + "type": "string" + } + } + ] + } + } + }, + "io.kestra.plugin.databricks.job.task.SqlTaskSetting": { + "type": "object", + "properties": { + "parameters": { + "$dynamic": true, + "title": "Map of task parameters.", + "additionalProperties": { + "type": "string" + }, + "markdownDescription": "Can be a map of string/string or a variable that binds to a JSON object.", + "oneOf": [ + { + "type": "string" + }, + { + "type": "object" + } + ] + }, + "queryId": { + "$dynamic": true, + "type": "string" + }, + "warehouseId": { + "$dynamic": true, + "type": "string" + } + } + }, + "io.kestra.plugin.databricks.sql.Query": { + "$metrics": [ + { + "name": "fetch.size", + "type": "counter", + "unit": "", + "description": "Query result size" + } + ], + "type": "object", + "properties": { + "accessToken": { + "$dynamic": true, + "type": "string", + "title": "Databricks access token." + }, + "allowFailure": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "catalog": { + "$dynamic": true, + "type": "string" + }, + "description": { + "type": "string" + }, + "disabled": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "host": { + "$dynamic": true, + "type": "string", + "title": "Databricks host." + }, + "httpPath": { + "$dynamic": true, + "type": "string", + "title": "Databricks cluster HTTP Path.", + "markdownDescription": "To retrieve the HTTP Path, go to your Databricks cluster, click on Advanced options then, click on JDBC/ODBC. See [Retrieve the connection details](https://docs.databricks.com/integrations/jdbc-odbc-bi.html#get-server-hostname-port-http-path-and-jdbc-url) for more details." + }, + "id": { + "type": "string", + "minLength": 1, + "pattern": "^[a-zA-Z0-9][a-zA-Z0-9_-]*" + }, + "logLevel": { + "type": "string", + "enum": ["ERROR", "WARN", "INFO", "DEBUG", "TRACE"] + }, + "properties": { + "$dynamic": false, + "type": "object" + }, + "retry": { + "oneOf": [ + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Constant-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Exponential-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Random-2" + } + ] + }, + "schema": { + "$dynamic": true, + "type": "string" + }, + "sql": { + "$dynamic": true, + "type": "string", + "title": "SQL query to be executed." + }, + "timeZoneId": { + "$dynamic": false, + "type": "string", + "title": "The time zone id to use for date/time manipulation. Default value is the worker default zone id." + }, + "timeout": { + "type": "string", + "format": "duration" + }, + "type": { + "const": "io.kestra.plugin.databricks.sql.Query" + }, + "workerGroup": { + "$ref": "#/definitions/io.kestra.core.models.tasks.WorkerGroup" + } + }, + "required": ["host", "httpPath", "id", "sql", "type"], + "title": "Execute a SQL query on a Databricks cluster.", + "markdownDescription": "See [Retrieve the connection details](https://docs.databricks.com/integrations/jdbc-odbc-bi.html#retrieve-the-connection-details) in the Databricks documentation to discover how to retrieve the needed configuration properties.\nWe're using the Databricks JDBC driver to execute a Query, see [https://docs.databricks.com/integrations/jdbc-odbc-bi.html#jdbc-driver-capabilities](https://docs.databricks.com/integrations/jdbc-odbc-bi.html#jdbc-driver-capabilities) for its capabilities.\n\nDue to current limitation of the JDBC driver with Java 21, Arrow is disabled, performance may be impacted, see [here](https://community.databricks.com/t5/data-engineering/what-s-the-eta-for-supporting-java-21-in-the-jdbc-driver/td-p/57370) and [here](https://community.databricks.com/t5/data-engineering/java-21-support-with-databricks-jdbc-driver/m-p/49297) from Databricks status on Java 21 support.\n##### Examples\n\u003E \n```yaml\nid: sqlQuery\ntype: io.kestra.plugin.databricks.sql.Query\naccessToken: \u003Cyour-accessToken\u003E\nhost: \u003Cyour-host\u003E\nhttpPath: \u003Cyour-httpPath\u003E\nsql: SELECT 1\n```" + }, + "io.kestra.plugin.dataform.cli.DataformCLI": { + "type": "object", + "properties": { + "allowFailure": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "beforeCommands": { + "$dynamic": true, + "title": "The commands to run before main list of commands", + "type": "array", + "items": { + "$dynamic": true, + "type": "string" + } + }, + "commands": { + "$dynamic": true, + "title": "The commands to run", + "minItems": 1, + "type": "array", + "items": { + "$dynamic": true, + "type": "string" + } + }, + "containerImage": { + "$dynamic": true, + "type": "string", + "title": "The task runner container image, only used if the task runner is container-based.", + "default": "dataformco/dataform:latest", + "markdownDescription": "Default value is : `dataformco/dataform:latest`" + }, + "description": { + "type": "string" + }, + "disabled": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "docker": { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.scripts.exec.scripts.models.DockerOptions" + }, + { + "$deprecated": true, + "$dynamic": false, + "title": "Deprecated, use 'taskRunner' instead" + } + ] + }, + "env": { + "$dynamic": true, + "type": "object", + "title": "Additional environment variables for the current process.", + "additionalProperties": { + "type": "string" + } + }, + "id": { + "type": "string", + "minLength": 1, + "pattern": "^[a-zA-Z0-9][a-zA-Z0-9_-]*" + }, + "inputFiles": { + "$dynamic": true, + "title": "The files to create on the local filesystem. It can be a map or a JSON object.", + "oneOf": [ + { + "type": "object" + }, + { + "type": "string" + } + ] + }, + "logLevel": { + "type": "string", + "enum": ["ERROR", "WARN", "INFO", "DEBUG", "TRACE"] + }, + "namespaceFiles": { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.core.models.tasks.NamespaceFiles" + }, + { + "$dynamic": false, + "title": "Inject namespace files.", + "markdownDescription": "Inject namespace files to this task. When enabled, it will, by default, load all namespace files into the working directory. However, you can use the `include` or `exclude` properties to limit which namespace files will be injected." + } + ] + }, + "outputFiles": { + "$dynamic": true, + "title": "The files from the local filesystem to send to Kestra's internal storage.", + "markdownDescription": "Must be a list of [glob](https://en.wikipedia.org/wiki/Glob_(programming)) expressions relative to the current working directory, some examples: `my-dir/**`, `my-dir/*/**` or `my-dir/my-file.txt`.", + "type": "array", + "items": { + "$dynamic": true, + "type": "string" + } + }, + "retry": { + "oneOf": [ + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Constant-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Exponential-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Random-2" + } + ] + }, + "taskRunner": { + "oneOf": [ + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.scripts.runner.docker.Docker" + }, + { + "$dynamic": false, + "title": "The task runner to use.", + "markdownDescription": "Task runners are provided by plugins, each have their own properties." + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.runner.Process" + }, + { + "$dynamic": false, + "title": "The task runner to use.", + "markdownDescription": "Task runners are provided by plugins, each have their own properties." + } + ] + } + ] + }, + "timeout": { + "type": "string", + "format": "duration" + }, + "type": { + "const": "io.kestra.plugin.dataform.cli.DataformCLI" + }, + "workerGroup": { + "$ref": "#/definitions/io.kestra.core.models.tasks.WorkerGroup" + } + }, + "required": ["commands", "id", "type"], + "title": "Orchestrate a Dataform project", + "markdownDescription": "##### Examples\n\u003E Compile and run a Dataform project from Git\n```yaml\nid: dataform\nnamespace: company.team\ntasks:\n - id: wdir\n type: io.kestra.plugin.core.flow.WorkingDirectory\n tasks:\n - id: clone_repo\n type: io.kestra.plugin.git.Clone\n url: https://github.com/dataform-co/dataform-example-project-bigquery\n\n - id: transform\n type: io.kestra.plugin.dataform.cli.DataformCLI\n beforeCommands:\n - dataform compile\n commands:\n - dataform run --dry-run\n\n```" + }, + "io.kestra.plugin.dbt.cli.Build": { + "type": "object", + "properties": { + "allowFailure": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "containerImage": { + "$dynamic": true, + "type": "string", + "title": "The task runner container image, only used if the task runner is container-based.", + "default": "ghcr.io/kestra-io/dbt", + "markdownDescription": "Default value is : `ghcr.io/kestra-io/dbt`" + }, + "dbtPath": { + "$dynamic": true, + "type": "string", + "title": "The path to the dbt CLI", + "default": "./bin/dbt", + "markdownDescription": "Default value is : `./bin/dbt`" + }, + "debug": { + "$dynamic": false, + "type": "boolean", + "title": "Display debug logging during dbt execution.", + "default": false, + "markdownDescription": "Useful for debugging and making bug reports.\n\nDefault value is : `false`" + }, + "description": { + "type": "string" + }, + "disabled": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "docker": { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.scripts.exec.scripts.models.DockerOptions" + }, + { + "$deprecated": true, + "$dynamic": false, + "title": "Deprecated, use 'taskRunner' instead" + } + ] + }, + "dockerOptions": { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.scripts.exec.scripts.models.DockerOptions" + }, + { + "$deprecated": true, + "$dynamic": false, + "title": "Deprecated, use the `docker` property instead" + } + ] + }, + "env": { + "$dynamic": true, + "type": "object", + "title": "Additional environment variables for the current process.", + "additionalProperties": { + "type": "string" + } + }, + "exclude": { + "$dynamic": true, + "title": "List of models to exclude", + "type": "array", + "items": { + "$dynamic": true, + "type": "string" + } + }, + "failFast": { + "$dynamic": false, + "type": "boolean", + "title": "Stop execution at the first failure.", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "fullRefresh": { + "$dynamic": false, + "type": "boolean", + "title": "Whether dbt will drop incremental models and fully-recalculate the incremental table from the model definition.", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "id": { + "type": "string", + "minLength": 1, + "pattern": "^[a-zA-Z0-9][a-zA-Z0-9_-]*" + }, + "inputFiles": { + "$dynamic": true, + "title": "The files to create on the local filesystem. It can be a map or a JSON object.", + "oneOf": [ + { + "type": "object" + }, + { + "type": "string" + } + ] + }, + "logLevel": { + "type": "string", + "enum": ["ERROR", "WARN", "INFO", "DEBUG", "TRACE"] + }, + "namespaceFiles": { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.core.models.tasks.NamespaceFiles" + }, + { + "$dynamic": false, + "title": "Inject namespace files.", + "markdownDescription": "Inject namespace files to this task. When enabled, it will, by default, load all namespace files into the working directory. However, you can use the `include` or `exclude` properties to limit which namespace files will be injected." + } + ] + }, + "outputFiles": { + "$dynamic": true, + "title": "The files from the local filesystem to send to Kestra's internal storage.", + "markdownDescription": "Must be a list of [glob](https://en.wikipedia.org/wiki/Glob_(programming)) expressions relative to the current working directory, some examples: `my-dir/**`, `my-dir/*/**` or `my-dir/my-file.txt`.", + "type": "array", + "items": { + "$dynamic": true, + "type": "string" + } + }, + "parseRunResults": { + "$dynamic": false, + "type": "boolean", + "title": "Parse run result", + "default": true, + "markdownDescription": "Parsing run result to display duration of each task inside dbt\n\nDefault value is : `true`" + }, + "profiles": { + "$dynamic": true, + "type": "string", + "title": "The `profiles.yml` file content", + "markdownDescription": "If a `profile.yml` file already exist in the current working directory, it will be overridden." + }, + "projectDir": { + "$dynamic": false, + "type": "string", + "title": "Which directory to look in for the dbt_project.yml file.", + "markdownDescription": "Default is the current working directory and its parents." + }, + "retry": { + "oneOf": [ + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Constant-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Exponential-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Random-2" + } + ] + }, + "runner": { + "$deprecated": true, + "$dynamic": false, + "type": "string", + "enum": ["PROCESS", "DOCKER"], + "title": "The runner type.", + "markdownDescription": "Deprecated, use 'taskRunner' instead." + }, + "select": { + "$dynamic": true, + "title": "List of nodes to include", + "type": "array", + "items": { + "$dynamic": true, + "type": "string" + } + }, + "selector": { + "$dynamic": true, + "type": "string", + "title": "The selector name to use, as defined in selectors.yml" + }, + "target": { + "$dynamic": true, + "type": "string", + "title": "Which target to load for the given profile" + }, + "taskRunner": { + "oneOf": [ + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.scripts.runner.docker.Docker" + }, + { + "$dynamic": false, + "title": "The task runner to use.", + "markdownDescription": "Task runners are provided by plugins, each have their own properties.\nIf you change from the default one, be careful to also configure the entrypoint to an empty list if needed." + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.runner.Process" + }, + { + "$dynamic": false, + "title": "The task runner to use.", + "markdownDescription": "Task runners are provided by plugins, each have their own properties.\nIf you change from the default one, be careful to also configure the entrypoint to an empty list if needed." + } + ] + } + ] + }, + "thread": { + "$dynamic": false, + "type": "integer", + "title": "Specify the number of threads to use while executing models." + }, + "timeout": { + "type": "string", + "format": "duration" + }, + "type": { + "const": "io.kestra.plugin.dbt.cli.Build" + }, + "warnError": { + "$dynamic": false, + "type": "boolean", + "title": "When dbt would normally warn, raise an exception.", + "default": false, + "markdownDescription": "Examples include --models that selects nothing, deprecations, configurations with no associated models, invalid test configurations, and missing sources/refs in tests.\n\nDefault value is : `false`" + }, + "workerGroup": { + "$ref": "#/definitions/io.kestra.core.models.tasks.WorkerGroup" + } + }, + "required": ["id", "type"], + "title": "Invoke dbt `build` command.", + "markdownDescription": "##### Examples\n\u003E Invoke dbt `build` command.\n```yaml\n id: dbt-build\n namespace: company.team\n tasks:\n - id: working-directory\n type: io.kestra.plugin.core.flow.WorkingDirectory\n tasks:\n - id: cloneRepository\n type: io.kestra.plugin.git.Clone\n url: https://github.com/kestra-io/dbt-demo\n branch: main\n\n - id: dbt-build\n type: io.kestra.plugin.dbt.cli.Build\n taskRunner:\n type: io.kestra.plugin.scripts.runner.docker.Docker\n dbtPath: /usr/local/bin/dbt\n containerImage: ghcr.io/kestra-io/dbt-duckdb\n profiles: |\n jaffle_shop:\n outputs:\n dev:\n type: duckdb\n path: ':memory:'\n extensions:\n - parquet\n target: dev\n\n```" + }, + "io.kestra.plugin.dbt.cli.Compile": { + "type": "object", + "properties": { + "allowFailure": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "containerImage": { + "$dynamic": true, + "type": "string", + "title": "The task runner container image, only used if the task runner is container-based.", + "default": "ghcr.io/kestra-io/dbt", + "markdownDescription": "Default value is : `ghcr.io/kestra-io/dbt`" + }, + "dbtPath": { + "$dynamic": true, + "type": "string", + "title": "The path to the dbt CLI", + "default": "./bin/dbt", + "markdownDescription": "Default value is : `./bin/dbt`" + }, + "debug": { + "$dynamic": false, + "type": "boolean", + "title": "Display debug logging during dbt execution.", + "default": false, + "markdownDescription": "Useful for debugging and making bug reports.\n\nDefault value is : `false`" + }, + "description": { + "type": "string" + }, + "disabled": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "docker": { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.scripts.exec.scripts.models.DockerOptions" + }, + { + "$deprecated": true, + "$dynamic": false, + "title": "Deprecated, use 'taskRunner' instead" + } + ] + }, + "dockerOptions": { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.scripts.exec.scripts.models.DockerOptions" + }, + { + "$deprecated": true, + "$dynamic": false, + "title": "Deprecated, use the `docker` property instead" + } + ] + }, + "env": { + "$dynamic": true, + "type": "object", + "title": "Additional environment variables for the current process.", + "additionalProperties": { + "type": "string" + } + }, + "exclude": { + "$dynamic": true, + "title": "List of models to exclude", + "type": "array", + "items": { + "$dynamic": true, + "type": "string" + } + }, + "failFast": { + "$dynamic": false, + "type": "boolean", + "title": "Stop execution at the first failure.", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "fullRefresh": { + "$dynamic": false, + "type": "boolean", + "title": "Whether dbt will drop incremental models and fully-recalculate the incremental table from the model definition.", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "id": { + "type": "string", + "minLength": 1, + "pattern": "^[a-zA-Z0-9][a-zA-Z0-9_-]*" + }, + "inputFiles": { + "$dynamic": true, + "title": "The files to create on the local filesystem. It can be a map or a JSON object.", + "oneOf": [ + { + "type": "object" + }, + { + "type": "string" + } + ] + }, + "logLevel": { + "type": "string", + "enum": ["ERROR", "WARN", "INFO", "DEBUG", "TRACE"] + }, + "namespaceFiles": { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.core.models.tasks.NamespaceFiles" + }, + { + "$dynamic": false, + "title": "Inject namespace files.", + "markdownDescription": "Inject namespace files to this task. When enabled, it will, by default, load all namespace files into the working directory. However, you can use the `include` or `exclude` properties to limit which namespace files will be injected." + } + ] + }, + "outputFiles": { + "$dynamic": true, + "title": "The files from the local filesystem to send to Kestra's internal storage.", + "markdownDescription": "Must be a list of [glob](https://en.wikipedia.org/wiki/Glob_(programming)) expressions relative to the current working directory, some examples: `my-dir/**`, `my-dir/*/**` or `my-dir/my-file.txt`.", + "type": "array", + "items": { + "$dynamic": true, + "type": "string" + } + }, + "parseRunResults": { + "$dynamic": false, + "type": "boolean", + "title": "Parse run result", + "default": true, + "markdownDescription": "Parsing run result to display duration of each task inside dbt\n\nDefault value is : `true`" + }, + "profiles": { + "$dynamic": true, + "type": "string", + "title": "The `profiles.yml` file content", + "markdownDescription": "If a `profile.yml` file already exist in the current working directory, it will be overridden." + }, + "projectDir": { + "$dynamic": false, + "type": "string", + "title": "Which directory to look in for the dbt_project.yml file.", + "markdownDescription": "Default is the current working directory and its parents." + }, + "retry": { + "oneOf": [ + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Constant-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Exponential-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Random-2" + } + ] + }, + "runner": { + "$deprecated": true, + "$dynamic": false, + "type": "string", + "enum": ["PROCESS", "DOCKER"], + "title": "The runner type.", + "markdownDescription": "Deprecated, use 'taskRunner' instead." + }, + "select": { + "$dynamic": true, + "title": "List of nodes to include", + "type": "array", + "items": { + "$dynamic": true, + "type": "string" + } + }, + "selector": { + "$dynamic": true, + "type": "string", + "title": "The selector name to use, as defined in selectors.yml" + }, + "target": { + "$dynamic": true, + "type": "string", + "title": "Which target to load for the given profile" + }, + "taskRunner": { + "oneOf": [ + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.scripts.runner.docker.Docker" + }, + { + "$dynamic": false, + "title": "The task runner to use.", + "markdownDescription": "Task runners are provided by plugins, each have their own properties.\nIf you change from the default one, be careful to also configure the entrypoint to an empty list if needed." + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.runner.Process" + }, + { + "$dynamic": false, + "title": "The task runner to use.", + "markdownDescription": "Task runners are provided by plugins, each have their own properties.\nIf you change from the default one, be careful to also configure the entrypoint to an empty list if needed." + } + ] + } + ] + }, + "thread": { + "$dynamic": false, + "type": "integer", + "title": "Specify the number of threads to use while executing models." + }, + "timeout": { + "type": "string", + "format": "duration" + }, + "type": { + "const": "io.kestra.plugin.dbt.cli.Compile" + }, + "warnError": { + "$dynamic": false, + "type": "boolean", + "title": "When dbt would normally warn, raise an exception.", + "default": false, + "markdownDescription": "Examples include --models that selects nothing, deprecations, configurations with no associated models, invalid test configurations, and missing sources/refs in tests.\n\nDefault value is : `false`" + }, + "workerGroup": { + "$ref": "#/definitions/io.kestra.core.models.tasks.WorkerGroup" + } + }, + "required": ["id", "type"], + "title": "Invoke dbt `compile` command.", + "markdownDescription": "##### Examples\n\u003E Invoke dbt `compile` command.\n```yaml\nid: dbt-compile\nnamespace: company.team\ntasks:\n - id: working-directory\n type: io.kestra.plugin.core.flow.WorkingDirectory\n tasks:\n - id: cloneRepository\n type: io.kestra.plugin.git.Clone\n url: https://github.com/kestra-io/dbt-demo\n branch: main\n\n - id: dbt-compile\n type: io.kestra.plugin.dbt.cli.Compile\n taskRunner:\n type: io.kestra.plugin.scripts.runner.docker.Docker\n dbtPath: /usr/local/bin/dbt\n containerImage: ghcr.io/kestra-io/dbt-duckdb\n profiles: |\n jaffle_shop:\n outputs:\n dev:\n type: duckdb\n path: ':memory:'\n extensions:\n - parquet\n target: dev\n\n```" + }, + "io.kestra.plugin.dbt.cli.DbtCLI": { + "type": "object", + "properties": { + "allowFailure": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "beforeCommands": { + "$dynamic": true, + "title": "A list of commands that will run before the `commands`, allowing to set up the environment e.g. `pip install -r requirements.txt`.", + "type": "array", + "items": { + "$dynamic": true, + "type": "string" + } + }, + "commands": { + "$dynamic": true, + "title": "The list of dbt CLI commands to run.", + "minItems": 1, + "type": "array", + "items": { + "$dynamic": true, + "type": "string" + } + }, + "containerImage": { + "$dynamic": true, + "type": "string", + "title": "The task runner container image, only used if the task runner is container-based.", + "default": "ghcr.io/kestra-io/dbt", + "markdownDescription": "Default value is : `ghcr.io/kestra-io/dbt`" + }, + "description": { + "type": "string" + }, + "disabled": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "docker": { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.scripts.exec.scripts.models.DockerOptions" + }, + { + "$deprecated": true, + "title": "Deprecated - use the 'taskRunner' property instead.", + "markdownDescription": "Only used if the `taskRunner` property is not set" + } + ] + }, + "env": { + "$dynamic": true, + "type": "object", + "title": "Additional environment variables for the current process.", + "additionalProperties": { + "type": "string" + } + }, + "failFast": { + "$dynamic": false, + "type": "boolean", + "title": "Fail the task on the first command with a non-zero status.", + "default": true, + "markdownDescription": "If set to `false` all commands will be executed one after the other. The final state of task execution is determined by the last command. Note that this property maybe be ignored if a non compatible interpreter is specified.\nYou can also disable it if your interpreter does not support the `set -e`option.\n\nDefault value is : `true`" + }, + "id": { + "type": "string", + "minLength": 1, + "pattern": "^[a-zA-Z0-9][a-zA-Z0-9_-]*" + }, + "inputFiles": { + "$dynamic": true, + "title": "The files to create on the local filesystem. It can be a map or a JSON object.", + "oneOf": [ + { + "type": "object" + }, + { + "type": "string" + } + ] + }, + "interpreter": { + "$dynamic": false, + "title": "Which interpreter to use.", + "default": ["/bin/sh", "-c"], + "minItems": 1, + "markdownDescription": "Default value is : `- /bin/sh\n- -c`\n\nDefault value is : `- /bin/sh\n- -c`", + "type": "array", + "items": { + "$dynamic": false, + "type": "string" + } + }, + "logLevel": { + "type": "string", + "enum": ["ERROR", "WARN", "INFO", "DEBUG", "TRACE"] + }, + "namespaceFiles": { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.core.models.tasks.NamespaceFiles" + }, + { + "$dynamic": false, + "title": "Inject namespace files.", + "markdownDescription": "Inject namespace files to this task. When enabled, it will, by default, load all namespace files into the working directory. However, you can use the `include` or `exclude` properties to limit which namespace files will be injected." + } + ] + }, + "outputDirectory": { + "$deprecated": true, + "type": "boolean", + "title": "Whether to setup the output directory mechanism.", + "default": "false", + "markdownDescription": "Required to use the {{ outputDir }} expression. Note that it could increase the starting time. Deprecated, use the `outputFiles` property instead.\n\nDefault value is : `\"false\"`" + }, + "outputFiles": { + "$dynamic": true, + "title": "The files from the local filesystem to send to Kestra's internal storage.", + "markdownDescription": "Must be a list of [glob](https://en.wikipedia.org/wiki/Glob_(programming)) expressions relative to the current working directory, some examples: `my-dir/**`, `my-dir/*/**` or `my-dir/my-file.txt`.", + "type": "array", + "items": { + "$dynamic": true, + "type": "string" + } + }, + "parseRunResults": { + "$dynamic": false, + "type": "boolean", + "title": "Parse run result.", + "default": true, + "markdownDescription": "Parsing run result to display duration of each task inside dbt.\n\nDefault value is : `true`" + }, + "profiles": { + "$dynamic": true, + "type": "string", + "title": "The `profiles.yml` file content.", + "markdownDescription": "If a `profile.yml` file already exists in the current working directory, it will be overridden." + }, + "projectDir": { + "$dynamic": true, + "type": "string", + "title": "The dbt project directory, if it's not the working directory.", + "markdownDescription": "To use it, also use this directory in the `--project-dir` flag on the dbt CLI commands." + }, + "retry": { + "oneOf": [ + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Constant-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Exponential-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Random-2" + } + ] + }, + "runner": { + "$deprecated": true, + "$dynamic": false, + "type": "string", + "enum": ["PROCESS", "DOCKER"], + "title": "Deprecated - use the 'taskRunner' property instead.", + "markdownDescription": "Only used if the `taskRunner` property is not set" + }, + "targetOS": { + "type": "string", + "enum": ["LINUX", "WINDOWS", "AUTO"], + "title": "The target operating system where the script will run.", + "default": "AUTO", + "markdownDescription": "Default value is : `AUTO`" + }, + "taskRunner": { + "oneOf": [ + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.scripts.runner.docker.Docker" + }, + { + "$dynamic": false, + "title": "The task runner to use.", + "markdownDescription": "Task runners are provided by plugins, each have their own properties.\nIf you change from the default one, be careful to also configure the entrypoint to an empty list if needed." + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.runner.Process" + }, + { + "$dynamic": false, + "title": "The task runner to use.", + "markdownDescription": "Task runners are provided by plugins, each have their own properties.\nIf you change from the default one, be careful to also configure the entrypoint to an empty list if needed." + } + ] + } + ] + }, + "timeout": { + "type": "string", + "format": "duration" + }, + "type": { + "const": "io.kestra.plugin.dbt.cli.DbtCLI" + }, + "warningOnStdErr": { + "$dynamic": false, + "type": "boolean", + "title": "Whether to set the task state to `WARNING` if any `stdErr` is emitted.", + "default": true, + "markdownDescription": "Default value is : `true`" + }, + "workerGroup": { + "$ref": "#/definitions/io.kestra.core.models.tasks.WorkerGroup" + } + }, + "required": ["commands", "id", "type"], + "title": "Execute dbt CLI commands.", + "markdownDescription": "##### Examples\n\u003E Launch a `dbt build` command on a sample dbt project hosted on GitHub.\n```yaml\nid: dbt_build\nnamespace: company.team\n\ntasks:\n - id: dbt\n type: io.kestra.plugin.core.flow.WorkingDirectory\n tasks:\n - id: cloneRepository\n type: io.kestra.plugin.git.Clone\n url: https://github.com/kestra-io/dbt-example\n branch: main\n\n - id: dbt-build\n type: io.kestra.plugin.dbt.cli.DbtCLI\n containerImage: ghcr.io/kestra-io/dbt-duckdb:latest\n taskRunner:\n type: io.kestra.plugin.scripts.runner.docker.Docker\n commands:\n - dbt build\n profiles: |\n my_dbt_project:\n outputs:\n dev:\n type: duckdb\n path: \":memory:\"\n target: dev\n```\n\n\u003E Install a custom dbt version and run `dbt deps` and `dbt build` commands. Note how you can also configure the memory limit for the Docker runner. This is useful when you see Zombie processes.\n```yaml\nid: dbt_custom_dependencies\nnamespace: company.team\n\ninputs:\n - id: dbt_version\n type: STRING\n defaults: \"dbt-duckdb==1.6.0\"\n\ntasks:\n - id: git\n type: io.kestra.plugin.core.flow.WorkingDirectory\n tasks:\n - id: clone_repository\n type: io.kestra.plugin.git.Clone\n url: https://github.com/kestra-io/dbt-example\n branch: main\n\n - id: dbt\n type: io.kestra.plugin.dbt.cli.DbtCLI\n taskRunner:\n type: io.kestra.plugin.scripts.runner.docker.Docker\n memory:\n memory: 1GB\n containerImage: python:3.11-slim\n beforeCommands:\n - pip install uv\n - uv venv --quiet\n - . .venv/bin/activate --quiet\n - uv pip install --quiet {{ inputs.dbt_version }}\n commands:\n - dbt deps\n - dbt build\n profiles: |\n my_dbt_project:\n outputs:\n dev:\n type: duckdb\n path: \":memory:\"\n fixed_retries: 1\n threads: 16\n timeout_seconds: 300\n target: dev\n```" + }, + "io.kestra.plugin.dbt.cli.Deps": { + "type": "object", + "properties": { + "allowFailure": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "containerImage": { + "$dynamic": true, + "type": "string", + "title": "The task runner container image, only used if the task runner is container-based.", + "default": "ghcr.io/kestra-io/dbt", + "markdownDescription": "Default value is : `ghcr.io/kestra-io/dbt`" + }, + "dbtPath": { + "$dynamic": true, + "type": "string", + "title": "The path to the dbt CLI", + "default": "./bin/dbt", + "markdownDescription": "Default value is : `./bin/dbt`" + }, + "debug": { + "$dynamic": false, + "type": "boolean", + "title": "Display debug logging during dbt execution.", + "default": false, + "markdownDescription": "Useful for debugging and making bug reports.\n\nDefault value is : `false`" + }, + "description": { + "type": "string" + }, + "disabled": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "docker": { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.scripts.exec.scripts.models.DockerOptions" + }, + { + "$deprecated": true, + "$dynamic": false, + "title": "Deprecated, use 'taskRunner' instead" + } + ] + }, + "dockerOptions": { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.scripts.exec.scripts.models.DockerOptions" + }, + { + "$deprecated": true, + "$dynamic": false, + "title": "Deprecated, use the `docker` property instead" + } + ] + }, + "env": { + "$dynamic": true, + "type": "object", + "title": "Additional environment variables for the current process.", + "additionalProperties": { + "type": "string" + } + }, + "exclude": { + "$dynamic": true, + "title": "List of models to exclude", + "type": "array", + "items": { + "$dynamic": true, + "type": "string" + } + }, + "failFast": { + "$dynamic": false, + "type": "boolean", + "title": "Stop execution at the first failure.", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "fullRefresh": { + "$dynamic": false, + "type": "boolean", + "title": "Whether dbt will drop incremental models and fully-recalculate the incremental table from the model definition.", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "id": { + "type": "string", + "minLength": 1, + "pattern": "^[a-zA-Z0-9][a-zA-Z0-9_-]*" + }, + "inputFiles": { + "$dynamic": true, + "title": "The files to create on the local filesystem. It can be a map or a JSON object.", + "oneOf": [ + { + "type": "object" + }, + { + "type": "string" + } + ] + }, + "logLevel": { + "type": "string", + "enum": ["ERROR", "WARN", "INFO", "DEBUG", "TRACE"] + }, + "namespaceFiles": { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.core.models.tasks.NamespaceFiles" + }, + { + "$dynamic": false, + "title": "Inject namespace files.", + "markdownDescription": "Inject namespace files to this task. When enabled, it will, by default, load all namespace files into the working directory. However, you can use the `include` or `exclude` properties to limit which namespace files will be injected." + } + ] + }, + "outputFiles": { + "$dynamic": true, + "title": "The files from the local filesystem to send to Kestra's internal storage.", + "markdownDescription": "Must be a list of [glob](https://en.wikipedia.org/wiki/Glob_(programming)) expressions relative to the current working directory, some examples: `my-dir/**`, `my-dir/*/**` or `my-dir/my-file.txt`.", + "type": "array", + "items": { + "$dynamic": true, + "type": "string" + } + }, + "parseRunResults": { + "$dynamic": false, + "type": "boolean", + "title": "Parse run result", + "default": true, + "markdownDescription": "Parsing run result to display duration of each task inside dbt\n\nDefault value is : `true`" + }, + "profiles": { + "$dynamic": true, + "type": "string", + "title": "The `profiles.yml` file content", + "markdownDescription": "If a `profile.yml` file already exist in the current working directory, it will be overridden." + }, + "projectDir": { + "$dynamic": false, + "type": "string", + "title": "Which directory to look in for the dbt_project.yml file.", + "markdownDescription": "Default is the current working directory and its parents." + }, + "retry": { + "oneOf": [ + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Constant-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Exponential-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Random-2" + } + ] + }, + "runner": { + "$deprecated": true, + "$dynamic": false, + "type": "string", + "enum": ["PROCESS", "DOCKER"], + "title": "The runner type.", + "markdownDescription": "Deprecated, use 'taskRunner' instead." + }, + "select": { + "$dynamic": true, + "title": "List of nodes to include", + "type": "array", + "items": { + "$dynamic": true, + "type": "string" + } + }, + "selector": { + "$dynamic": true, + "type": "string", + "title": "The selector name to use, as defined in selectors.yml" + }, + "target": { + "$dynamic": true, + "type": "string", + "title": "Which target to load for the given profile" + }, + "taskRunner": { + "oneOf": [ + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.scripts.runner.docker.Docker" + }, + { + "$dynamic": false, + "title": "The task runner to use.", + "markdownDescription": "Task runners are provided by plugins, each have their own properties.\nIf you change from the default one, be careful to also configure the entrypoint to an empty list if needed." + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.runner.Process" + }, + { + "$dynamic": false, + "title": "The task runner to use.", + "markdownDescription": "Task runners are provided by plugins, each have their own properties.\nIf you change from the default one, be careful to also configure the entrypoint to an empty list if needed." + } + ] + } + ] + }, + "thread": { + "$dynamic": false, + "type": "integer", + "title": "Specify the number of threads to use while executing models." + }, + "timeout": { + "type": "string", + "format": "duration" + }, + "type": { + "const": "io.kestra.plugin.dbt.cli.Deps" + }, + "warnError": { + "$dynamic": false, + "type": "boolean", + "title": "When dbt would normally warn, raise an exception.", + "default": false, + "markdownDescription": "Examples include --models that selects nothing, deprecations, configurations with no associated models, invalid test configurations, and missing sources/refs in tests.\n\nDefault value is : `false`" + }, + "workerGroup": { + "$ref": "#/definitions/io.kestra.core.models.tasks.WorkerGroup" + } + }, + "required": ["id", "type"], + "title": "Invoke dbt `deps` command.", + "markdownDescription": "##### Examples\n\u003E Invoke dbt `deps` command\n```yaml\nid: dbt-deps\nnamespace: company.team\ntasks:\n - id: working-directory\n type: io.kestra.plugin.core.flow.WorkingDirectory\n tasks:\n - id: cloneRepository\n type: io.kestra.plugin.git.Clone\n url: https://github.com/kestra-io/dbt-demo\n branch: main\n\n - id: dbt-deps\n type: io.kestra.plugin.dbt.cli.Deps\n taskRunner:\n type: io.kestra.plugin.scripts.runner.docker.Docker\n dbtPath: /usr/local/bin/dbt\n containerImage: ghcr.io/kestra-io/dbt-duckdb\n profiles: |\n jaffle_shop:\n outputs:\n dev:\n type: duckdb\n path: ':memory:'\n extensions:\n - parquet\n target: dev\n\n```" + }, + "io.kestra.plugin.dbt.cli.Freshness": { + "type": "object", + "properties": { + "allowFailure": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "containerImage": { + "$dynamic": true, + "type": "string", + "title": "The task runner container image, only used if the task runner is container-based.", + "default": "ghcr.io/kestra-io/dbt", + "markdownDescription": "Default value is : `ghcr.io/kestra-io/dbt`" + }, + "dbtPath": { + "$dynamic": true, + "type": "string", + "title": "The path to the dbt CLI", + "default": "./bin/dbt", + "markdownDescription": "Default value is : `./bin/dbt`" + }, + "debug": { + "$dynamic": false, + "type": "boolean", + "title": "Display debug logging during dbt execution.", + "default": false, + "markdownDescription": "Useful for debugging and making bug reports.\n\nDefault value is : `false`" + }, + "description": { + "type": "string" + }, + "disabled": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "docker": { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.scripts.exec.scripts.models.DockerOptions" + }, + { + "$deprecated": true, + "$dynamic": false, + "title": "Deprecated, use 'taskRunner' instead" + } + ] + }, + "dockerOptions": { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.scripts.exec.scripts.models.DockerOptions" + }, + { + "$deprecated": true, + "$dynamic": false, + "title": "Deprecated, use the `docker` property instead" + } + ] + }, + "env": { + "$dynamic": true, + "type": "object", + "title": "Additional environment variables for the current process.", + "additionalProperties": { + "type": "string" + } + }, + "exclude": { + "$dynamic": true, + "title": "List of models to exclude", + "type": "array", + "items": { + "$dynamic": true, + "type": "string" + } + }, + "failFast": { + "$dynamic": false, + "type": "boolean", + "title": "Stop execution at the first failure.", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "fullRefresh": { + "$dynamic": false, + "type": "boolean", + "title": "Whether dbt will drop incremental models and fully-recalculate the incremental table from the model definition.", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "id": { + "type": "string", + "minLength": 1, + "pattern": "^[a-zA-Z0-9][a-zA-Z0-9_-]*" + }, + "inputFiles": { + "$dynamic": true, + "title": "The files to create on the local filesystem. It can be a map or a JSON object.", + "oneOf": [ + { + "type": "object" + }, + { + "type": "string" + } + ] + }, + "logLevel": { + "type": "string", + "enum": ["ERROR", "WARN", "INFO", "DEBUG", "TRACE"] + }, + "namespaceFiles": { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.core.models.tasks.NamespaceFiles" + }, + { + "$dynamic": false, + "title": "Inject namespace files.", + "markdownDescription": "Inject namespace files to this task. When enabled, it will, by default, load all namespace files into the working directory. However, you can use the `include` or `exclude` properties to limit which namespace files will be injected." + } + ] + }, + "outputFiles": { + "$dynamic": true, + "title": "The files from the local filesystem to send to Kestra's internal storage.", + "markdownDescription": "Must be a list of [glob](https://en.wikipedia.org/wiki/Glob_(programming)) expressions relative to the current working directory, some examples: `my-dir/**`, `my-dir/*/**` or `my-dir/my-file.txt`.", + "type": "array", + "items": { + "$dynamic": true, + "type": "string" + } + }, + "parseRunResults": { + "$dynamic": false, + "type": "boolean", + "title": "Parse run result", + "default": true, + "markdownDescription": "Parsing run result to display duration of each task inside dbt\n\nDefault value is : `true`" + }, + "profiles": { + "$dynamic": true, + "type": "string", + "title": "The `profiles.yml` file content", + "markdownDescription": "If a `profile.yml` file already exist in the current working directory, it will be overridden." + }, + "projectDir": { + "$dynamic": false, + "type": "string", + "title": "Which directory to look in for the dbt_project.yml file.", + "markdownDescription": "Default is the current working directory and its parents." + }, + "retry": { + "oneOf": [ + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Constant-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Exponential-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Random-2" + } + ] + }, + "runner": { + "$deprecated": true, + "$dynamic": false, + "type": "string", + "enum": ["PROCESS", "DOCKER"], + "title": "The runner type.", + "markdownDescription": "Deprecated, use 'taskRunner' instead." + }, + "select": { + "$dynamic": true, + "title": "List of nodes to include", + "type": "array", + "items": { + "$dynamic": true, + "type": "string" + } + }, + "selector": { + "$dynamic": true, + "type": "string", + "title": "The selector name to use, as defined in selectors.yml" + }, + "target": { + "$dynamic": true, + "type": "string", + "title": "Which target to load for the given profile" + }, + "taskRunner": { + "oneOf": [ + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.scripts.runner.docker.Docker" + }, + { + "$dynamic": false, + "title": "The task runner to use.", + "markdownDescription": "Task runners are provided by plugins, each have their own properties.\nIf you change from the default one, be careful to also configure the entrypoint to an empty list if needed." + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.runner.Process" + }, + { + "$dynamic": false, + "title": "The task runner to use.", + "markdownDescription": "Task runners are provided by plugins, each have their own properties.\nIf you change from the default one, be careful to also configure the entrypoint to an empty list if needed." + } + ] + } + ] + }, + "thread": { + "$dynamic": false, + "type": "integer", + "title": "Specify the number of threads to use while executing models." + }, + "timeout": { + "type": "string", + "format": "duration" + }, + "type": { + "const": "io.kestra.plugin.dbt.cli.Freshness" + }, + "warnError": { + "$dynamic": false, + "type": "boolean", + "title": "When dbt would normally warn, raise an exception.", + "default": false, + "markdownDescription": "Examples include --models that selects nothing, deprecations, configurations with no associated models, invalid test configurations, and missing sources/refs in tests.\n\nDefault value is : `false`" + }, + "workerGroup": { + "$ref": "#/definitions/io.kestra.core.models.tasks.WorkerGroup" + } + }, + "required": ["id", "type"], + "title": "Invoke dbt `source freshness` command.", + "markdownDescription": "##### Examples\n\u003E Invoke dbt `source freshness` command.\n```yaml\nid: dbt-freshness\nnamespace: company.team\ntasks:\n - id: working-directory\n type: io.kestra.plugin.core.flow.WorkingDirectory\n tasks:\n - id: cloneRepository\n type: io.kestra.plugin.git.Clone\n url: https://github.com/kestra-io/dbt-demo\n branch: main\n\n - id: dbt-freshness\n type: io.kestra.plugin.dbt.cli.Freshness\n taskRunner:\n type: io.kestra.plugin.scripts.runner.docker.Docker\n dbtPath: /usr/local/bin/dbt\n containerImage: ghcr.io/kestra-io/dbt-duckdb\n profiles: |\n jaffle_shop:\n outputs:\n dev:\n type: duckdb\n path: ':memory:'\n extensions:\n - parquet\n target: dev\n\n```" + }, + "io.kestra.plugin.dbt.cli.List": { + "type": "object", + "properties": { + "allowFailure": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "containerImage": { + "$dynamic": true, + "type": "string", + "title": "The task runner container image, only used if the task runner is container-based.", + "default": "ghcr.io/kestra-io/dbt", + "markdownDescription": "Default value is : `ghcr.io/kestra-io/dbt`" + }, + "dbtPath": { + "$dynamic": true, + "type": "string", + "title": "The path to the dbt CLI", + "default": "./bin/dbt", + "markdownDescription": "Default value is : `./bin/dbt`" + }, + "debug": { + "$dynamic": false, + "type": "boolean", + "title": "Display debug logging during dbt execution.", + "default": false, + "markdownDescription": "Useful for debugging and making bug reports.\n\nDefault value is : `false`" + }, + "description": { + "type": "string" + }, + "disabled": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "docker": { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.scripts.exec.scripts.models.DockerOptions" + }, + { + "$deprecated": true, + "$dynamic": false, + "title": "Deprecated, use 'taskRunner' instead" + } + ] + }, + "dockerOptions": { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.scripts.exec.scripts.models.DockerOptions" + }, + { + "$deprecated": true, + "$dynamic": false, + "title": "Deprecated, use the `docker` property instead" + } + ] + }, + "env": { + "$dynamic": true, + "type": "object", + "title": "Additional environment variables for the current process.", + "additionalProperties": { + "type": "string" + } + }, + "exclude": { + "$dynamic": true, + "title": "List of models to exclude", + "type": "array", + "items": { + "$dynamic": true, + "type": "string" + } + }, + "failFast": { + "$dynamic": false, + "type": "boolean", + "title": "Stop execution at the first failure.", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "fullRefresh": { + "$dynamic": false, + "type": "boolean", + "title": "Whether dbt will drop incremental models and fully-recalculate the incremental table from the model definition.", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "id": { + "type": "string", + "minLength": 1, + "pattern": "^[a-zA-Z0-9][a-zA-Z0-9_-]*" + }, + "inputFiles": { + "$dynamic": true, + "title": "The files to create on the local filesystem. It can be a map or a JSON object.", + "oneOf": [ + { + "type": "object" + }, + { + "type": "string" + } + ] + }, + "logLevel": { + "type": "string", + "enum": ["ERROR", "WARN", "INFO", "DEBUG", "TRACE"] + }, + "namespaceFiles": { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.core.models.tasks.NamespaceFiles" + }, + { + "$dynamic": false, + "title": "Inject namespace files.", + "markdownDescription": "Inject namespace files to this task. When enabled, it will, by default, load all namespace files into the working directory. However, you can use the `include` or `exclude` properties to limit which namespace files will be injected." + } + ] + }, + "outputFiles": { + "$dynamic": true, + "title": "The files from the local filesystem to send to Kestra's internal storage.", + "markdownDescription": "Must be a list of [glob](https://en.wikipedia.org/wiki/Glob_(programming)) expressions relative to the current working directory, some examples: `my-dir/**`, `my-dir/*/**` or `my-dir/my-file.txt`.", + "type": "array", + "items": { + "$dynamic": true, + "type": "string" + } + }, + "parseRunResults": { + "$dynamic": false, + "type": "boolean", + "title": "Parse run result", + "default": true, + "markdownDescription": "Parsing run result to display duration of each task inside dbt\n\nDefault value is : `true`" + }, + "profiles": { + "$dynamic": true, + "type": "string", + "title": "The `profiles.yml` file content", + "markdownDescription": "If a `profile.yml` file already exist in the current working directory, it will be overridden." + }, + "projectDir": { + "$dynamic": false, + "type": "string", + "title": "Which directory to look in for the dbt_project.yml file.", + "markdownDescription": "Default is the current working directory and its parents." + }, + "retry": { + "oneOf": [ + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Constant-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Exponential-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Random-2" + } + ] + }, + "runner": { + "$deprecated": true, + "$dynamic": false, + "type": "string", + "enum": ["PROCESS", "DOCKER"], + "title": "The runner type.", + "markdownDescription": "Deprecated, use 'taskRunner' instead." + }, + "select": { + "$dynamic": true, + "title": "List of nodes to include", + "type": "array", + "items": { + "$dynamic": true, + "type": "string" + } + }, + "selector": { + "$dynamic": true, + "type": "string", + "title": "The selector name to use, as defined in selectors.yml" + }, + "target": { + "$dynamic": true, + "type": "string", + "title": "Which target to load for the given profile" + }, + "taskRunner": { + "oneOf": [ + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.scripts.runner.docker.Docker" + }, + { + "$dynamic": false, + "title": "The task runner to use.", + "markdownDescription": "Task runners are provided by plugins, each have their own properties.\nIf you change from the default one, be careful to also configure the entrypoint to an empty list if needed." + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.runner.Process" + }, + { + "$dynamic": false, + "title": "The task runner to use.", + "markdownDescription": "Task runners are provided by plugins, each have their own properties.\nIf you change from the default one, be careful to also configure the entrypoint to an empty list if needed." + } + ] + } + ] + }, + "thread": { + "$dynamic": false, + "type": "integer", + "title": "Specify the number of threads to use while executing models." + }, + "timeout": { + "type": "string", + "format": "duration" + }, + "type": { + "const": "io.kestra.plugin.dbt.cli.List" + }, + "warnError": { + "$dynamic": false, + "type": "boolean", + "title": "When dbt would normally warn, raise an exception.", + "default": false, + "markdownDescription": "Examples include --models that selects nothing, deprecations, configurations with no associated models, invalid test configurations, and missing sources/refs in tests.\n\nDefault value is : `false`" + }, + "workerGroup": { + "$ref": "#/definitions/io.kestra.core.models.tasks.WorkerGroup" + } + }, + "required": ["id", "type"], + "title": "Invoke dbt `list` command.", + "markdownDescription": "##### Examples\n\u003E Invoke dbt `list` command.\n```yaml\nid: dbt-list\nnamespace: company.team\ntasks:\n - id: working-directory\n type: io.kestra.plugin.core.flow.WorkingDirectory\n tasks:\n - id: cloneRepository\n type: io.kestra.plugin.git.Clone\n url: https://github.com/kestra-io/dbt-demo\n branch: main\n - id: dbt-list\n type: io.kestra.plugin.dbt.cli.List\n taskRunner:\n type: io.kestra.plugin.scripts.runner.docker.Docker\n dbtPath: /usr/local/bin/dbt\n containerImage: ghcr.io/kestra-io/dbt-duckdb\n profiles: |\n jaffle_shop:\n outputs:\n dev:\n type: duckdb\n path: ':memory:'\n extensions:\n - parquet\n target: dev\n\n```" + }, + "io.kestra.plugin.dbt.cli.Run": { + "type": "object", + "properties": { + "allowFailure": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "containerImage": { + "$dynamic": true, + "type": "string", + "title": "The task runner container image, only used if the task runner is container-based.", + "default": "ghcr.io/kestra-io/dbt", + "markdownDescription": "Default value is : `ghcr.io/kestra-io/dbt`" + }, + "dbtPath": { + "$dynamic": true, + "type": "string", + "title": "The path to the dbt CLI", + "default": "./bin/dbt", + "markdownDescription": "Default value is : `./bin/dbt`" + }, + "debug": { + "$dynamic": false, + "type": "boolean", + "title": "Display debug logging during dbt execution.", + "default": false, + "markdownDescription": "Useful for debugging and making bug reports.\n\nDefault value is : `false`" + }, + "description": { + "type": "string" + }, + "disabled": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "docker": { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.scripts.exec.scripts.models.DockerOptions" + }, + { + "$deprecated": true, + "$dynamic": false, + "title": "Deprecated, use 'taskRunner' instead" + } + ] + }, + "dockerOptions": { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.scripts.exec.scripts.models.DockerOptions" + }, + { + "$deprecated": true, + "$dynamic": false, + "title": "Deprecated, use the `docker` property instead" + } + ] + }, + "env": { + "$dynamic": true, + "type": "object", + "title": "Additional environment variables for the current process.", + "additionalProperties": { + "type": "string" + } + }, + "exclude": { + "$dynamic": true, + "title": "List of models to exclude", + "type": "array", + "items": { + "$dynamic": true, + "type": "string" + } + }, + "failFast": { + "$dynamic": false, + "type": "boolean", + "title": "Stop execution at the first failure.", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "fullRefresh": { + "$dynamic": false, + "type": "boolean", + "title": "Whether dbt will drop incremental models and fully-recalculate the incremental table from the model definition.", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "id": { + "type": "string", + "minLength": 1, + "pattern": "^[a-zA-Z0-9][a-zA-Z0-9_-]*" + }, + "inputFiles": { + "$dynamic": true, + "title": "The files to create on the local filesystem. It can be a map or a JSON object.", + "oneOf": [ + { + "type": "object" + }, + { + "type": "string" + } + ] + }, + "logLevel": { + "type": "string", + "enum": ["ERROR", "WARN", "INFO", "DEBUG", "TRACE"] + }, + "namespaceFiles": { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.core.models.tasks.NamespaceFiles" + }, + { + "$dynamic": false, + "title": "Inject namespace files.", + "markdownDescription": "Inject namespace files to this task. When enabled, it will, by default, load all namespace files into the working directory. However, you can use the `include` or `exclude` properties to limit which namespace files will be injected." + } + ] + }, + "outputFiles": { + "$dynamic": true, + "title": "The files from the local filesystem to send to Kestra's internal storage.", + "markdownDescription": "Must be a list of [glob](https://en.wikipedia.org/wiki/Glob_(programming)) expressions relative to the current working directory, some examples: `my-dir/**`, `my-dir/*/**` or `my-dir/my-file.txt`.", + "type": "array", + "items": { + "$dynamic": true, + "type": "string" + } + }, + "parseRunResults": { + "$dynamic": false, + "type": "boolean", + "title": "Parse run result", + "default": true, + "markdownDescription": "Parsing run result to display duration of each task inside dbt\n\nDefault value is : `true`" + }, + "profiles": { + "$dynamic": true, + "type": "string", + "title": "The `profiles.yml` file content", + "markdownDescription": "If a `profile.yml` file already exist in the current working directory, it will be overridden." + }, + "projectDir": { + "$dynamic": false, + "type": "string", + "title": "Which directory to look in for the dbt_project.yml file.", + "markdownDescription": "Default is the current working directory and its parents." + }, + "retry": { + "oneOf": [ + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Constant-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Exponential-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Random-2" + } + ] + }, + "runner": { + "$deprecated": true, + "$dynamic": false, + "type": "string", + "enum": ["PROCESS", "DOCKER"], + "title": "The runner type.", + "markdownDescription": "Deprecated, use 'taskRunner' instead." + }, + "select": { + "$dynamic": true, + "title": "List of nodes to include", + "type": "array", + "items": { + "$dynamic": true, + "type": "string" + } + }, + "selector": { + "$dynamic": true, + "type": "string", + "title": "The selector name to use, as defined in selectors.yml" + }, + "target": { + "$dynamic": true, + "type": "string", + "title": "Which target to load for the given profile" + }, + "taskRunner": { + "oneOf": [ + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.scripts.runner.docker.Docker" + }, + { + "$dynamic": false, + "title": "The task runner to use.", + "markdownDescription": "Task runners are provided by plugins, each have their own properties.\nIf you change from the default one, be careful to also configure the entrypoint to an empty list if needed." + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.runner.Process" + }, + { + "$dynamic": false, + "title": "The task runner to use.", + "markdownDescription": "Task runners are provided by plugins, each have their own properties.\nIf you change from the default one, be careful to also configure the entrypoint to an empty list if needed." + } + ] + } + ] + }, + "thread": { + "$dynamic": false, + "type": "integer", + "title": "Specify the number of threads to use while executing models." + }, + "timeout": { + "type": "string", + "format": "duration" + }, + "type": { + "const": "io.kestra.plugin.dbt.cli.Run" + }, + "warnError": { + "$dynamic": false, + "type": "boolean", + "title": "When dbt would normally warn, raise an exception.", + "default": false, + "markdownDescription": "Examples include --models that selects nothing, deprecations, configurations with no associated models, invalid test configurations, and missing sources/refs in tests.\n\nDefault value is : `false`" + }, + "workerGroup": { + "$ref": "#/definitions/io.kestra.core.models.tasks.WorkerGroup" + } + }, + "required": ["id", "type"], + "title": "Invoke dbt `run` command.", + "markdownDescription": "##### Examples\n\u003E Invoke dbt `run` command.\n```yaml\nid: dbt-run\nnamespace: company.team\ntasks:\n - id: working-directory\n type: io.kestra.plugin.core.flow.WorkingDirectory\n tasks:\n - id: cloneRepository\n type: io.kestra.plugin.git.Clone\n url: https://github.com/kestra-io/dbt-demo\n branch: main\n\n - id: dbt-run\n type: io.kestra.plugin.dbt.cli.Run\n taskRunner:\n type: io.kestra.plugin.scripts.runner.docker.Docker\n dbtPath: /usr/local/bin/dbt\n containerImage: ghcr.io/kestra-io/dbt-duckdb\n profiles: |\n jaffle_shop:\n outputs:\n dev:\n type: duckdb\n path: ':memory:'\n extensions:\n - parquet\n target: dev\n\n```" + }, + "io.kestra.plugin.dbt.cli.Seed": { + "type": "object", + "properties": { + "allowFailure": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "containerImage": { + "$dynamic": true, + "type": "string", + "title": "The task runner container image, only used if the task runner is container-based.", + "default": "ghcr.io/kestra-io/dbt", + "markdownDescription": "Default value is : `ghcr.io/kestra-io/dbt`" + }, + "dbtPath": { + "$dynamic": true, + "type": "string", + "title": "The path to the dbt CLI", + "default": "./bin/dbt", + "markdownDescription": "Default value is : `./bin/dbt`" + }, + "debug": { + "$dynamic": false, + "type": "boolean", + "title": "Display debug logging during dbt execution.", + "default": false, + "markdownDescription": "Useful for debugging and making bug reports.\n\nDefault value is : `false`" + }, + "description": { + "type": "string" + }, + "disabled": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "docker": { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.scripts.exec.scripts.models.DockerOptions" + }, + { + "$deprecated": true, + "$dynamic": false, + "title": "Deprecated, use 'taskRunner' instead" + } + ] + }, + "dockerOptions": { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.scripts.exec.scripts.models.DockerOptions" + }, + { + "$deprecated": true, + "$dynamic": false, + "title": "Deprecated, use the `docker` property instead" + } + ] + }, + "env": { + "$dynamic": true, + "type": "object", + "title": "Additional environment variables for the current process.", + "additionalProperties": { + "type": "string" + } + }, + "exclude": { + "$dynamic": true, + "title": "List of models to exclude", + "type": "array", + "items": { + "$dynamic": true, + "type": "string" + } + }, + "failFast": { + "$dynamic": false, + "type": "boolean", + "title": "Stop execution at the first failure.", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "fullRefresh": { + "$dynamic": false, + "type": "boolean", + "title": "Whether dbt will drop incremental models and fully-recalculate the incremental table from the model definition.", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "id": { + "type": "string", + "minLength": 1, + "pattern": "^[a-zA-Z0-9][a-zA-Z0-9_-]*" + }, + "inputFiles": { + "$dynamic": true, + "title": "The files to create on the local filesystem. It can be a map or a JSON object.", + "oneOf": [ + { + "type": "object" + }, + { + "type": "string" + } + ] + }, + "logLevel": { + "type": "string", + "enum": ["ERROR", "WARN", "INFO", "DEBUG", "TRACE"] + }, + "namespaceFiles": { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.core.models.tasks.NamespaceFiles" + }, + { + "$dynamic": false, + "title": "Inject namespace files.", + "markdownDescription": "Inject namespace files to this task. When enabled, it will, by default, load all namespace files into the working directory. However, you can use the `include` or `exclude` properties to limit which namespace files will be injected." + } + ] + }, + "outputFiles": { + "$dynamic": true, + "title": "The files from the local filesystem to send to Kestra's internal storage.", + "markdownDescription": "Must be a list of [glob](https://en.wikipedia.org/wiki/Glob_(programming)) expressions relative to the current working directory, some examples: `my-dir/**`, `my-dir/*/**` or `my-dir/my-file.txt`.", + "type": "array", + "items": { + "$dynamic": true, + "type": "string" + } + }, + "parseRunResults": { + "$dynamic": false, + "type": "boolean", + "title": "Parse run result", + "default": true, + "markdownDescription": "Parsing run result to display duration of each task inside dbt\n\nDefault value is : `true`" + }, + "profiles": { + "$dynamic": true, + "type": "string", + "title": "The `profiles.yml` file content", + "markdownDescription": "If a `profile.yml` file already exist in the current working directory, it will be overridden." + }, + "projectDir": { + "$dynamic": false, + "type": "string", + "title": "Which directory to look in for the dbt_project.yml file.", + "markdownDescription": "Default is the current working directory and its parents." + }, + "retry": { + "oneOf": [ + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Constant-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Exponential-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Random-2" + } + ] + }, + "runner": { + "$deprecated": true, + "$dynamic": false, + "type": "string", + "enum": ["PROCESS", "DOCKER"], + "title": "The runner type.", + "markdownDescription": "Deprecated, use 'taskRunner' instead." + }, + "select": { + "$dynamic": true, + "title": "List of nodes to include", + "type": "array", + "items": { + "$dynamic": true, + "type": "string" + } + }, + "selector": { + "$dynamic": true, + "type": "string", + "title": "The selector name to use, as defined in selectors.yml" + }, + "target": { + "$dynamic": true, + "type": "string", + "title": "Which target to load for the given profile" + }, + "taskRunner": { + "oneOf": [ + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.scripts.runner.docker.Docker" + }, + { + "$dynamic": false, + "title": "The task runner to use.", + "markdownDescription": "Task runners are provided by plugins, each have their own properties.\nIf you change from the default one, be careful to also configure the entrypoint to an empty list if needed." + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.runner.Process" + }, + { + "$dynamic": false, + "title": "The task runner to use.", + "markdownDescription": "Task runners are provided by plugins, each have their own properties.\nIf you change from the default one, be careful to also configure the entrypoint to an empty list if needed." + } + ] + } + ] + }, + "thread": { + "$dynamic": false, + "type": "integer", + "title": "Specify the number of threads to use while executing models." + }, + "timeout": { + "type": "string", + "format": "duration" + }, + "type": { + "const": "io.kestra.plugin.dbt.cli.Seed" + }, + "warnError": { + "$dynamic": false, + "type": "boolean", + "title": "When dbt would normally warn, raise an exception.", + "default": false, + "markdownDescription": "Examples include --models that selects nothing, deprecations, configurations with no associated models, invalid test configurations, and missing sources/refs in tests.\n\nDefault value is : `false`" + }, + "workerGroup": { + "$ref": "#/definitions/io.kestra.core.models.tasks.WorkerGroup" + } + }, + "required": ["id", "type"], + "title": "Invoke dbt `seed` command.", + "markdownDescription": "##### Examples\n\u003E Invoke dbt `seed` command.\n```yaml\nid: dbt-seed\nnamespace: company.team\ntasks:\n - id: working-directory\n type: io.kestra.plugin.core.flow.WorkingDirectory\n tasks:\n - id: cloneRepository\n type: io.kestra.plugin.git.Clone\n url: https://github.com/kestra-io/dbt-demo\n branch: main\n\n - id: dbt-seed\n type: io.kestra.plugin.dbt.cli.Seed\n taskRunner:\n type: io.kestra.plugin.scripts.runner.docker.Docker\n dbtPath: /usr/local/bin/dbt\n containerImage: ghcr.io/kestra-io/dbt-duckdb\n profiles: |\n jaffle_shop:\n outputs:\n dev:\n type: duckdb\n path: ':memory:'\n extensions:\n - parquet\n target: dev\n\n```" + }, + "io.kestra.plugin.dbt.cli.Setup": { + "type": "object", + "properties": { + "allowFailure": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "beforeCommands": { + "$dynamic": true, + "title": "A list of commands that will run before the `commands`, allowing to set up the environment e.g. `pip install -r requirements.txt`.", + "type": "array", + "items": { + "$dynamic": true, + "type": "string" + } + }, + "containerImage": { + "$dynamic": true, + "type": "string", + "title": "The task runner container image, only used if the task runner is container-based.", + "default": "python", + "markdownDescription": "Default value is : `python`" + }, + "description": { + "type": "string" + }, + "disabled": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "docker": { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.scripts.exec.scripts.models.DockerOptions" + }, + { + "$deprecated": true, + "title": "Deprecated - use the 'taskRunner' property instead.", + "markdownDescription": "Only used if the `taskRunner` property is not set" + } + ] + }, + "dockerOptions": { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.scripts.exec.scripts.models.DockerOptions" + }, + { + "$deprecated": true, + "$dynamic": false, + "title": "Deprecated, use the `docker` property instead" + } + ] + }, + "env": { + "$dynamic": true, + "type": "object", + "title": "Additional environment variables for the current process.", + "additionalProperties": { + "type": "string" + } + }, + "exitOnFailed": { + "$deprecated": true, + "$dynamic": false, + "type": "boolean", + "title": "Exit if any non true return value.", + "default": true, + "markdownDescription": "This tells bash that it should exit the script if any statement returns a non-true return value. \nThe benefit of using -e is that it prevents errors snowballing into serious issues when they could have been caught earlier. This option is deprecated. Use `failFast` instead.\n\nDefault value is : `true`" + }, + "failFast": { + "$dynamic": false, + "type": "boolean", + "title": "Fail the task on the first command with a non-zero status.", + "default": true, + "markdownDescription": "If set to `false` all commands will be executed one after the other. The final state of task execution is determined by the last command. Note that this property maybe be ignored if a non compatible interpreter is specified.\nYou can also disable it if your interpreter does not support the `set -e`option.\n\nDefault value is : `true`" + }, + "id": { + "type": "string", + "minLength": 1, + "pattern": "^[a-zA-Z0-9][a-zA-Z0-9_-]*" + }, + "inputFiles": { + "$dynamic": true, + "title": "Input files are extra files that will be available in the dbt working directory.", + "additionalProperties": { + "type": "string" + }, + "markdownDescription": "You can define the files as map or a JSON string. Each file can be defined inlined or can reference a file from Kestra's internal storage." + }, + "interpreter": { + "$dynamic": false, + "title": "Which interpreter to use.", + "default": ["/bin/sh", "-c"], + "minItems": 1, + "markdownDescription": "Default value is : `- /bin/sh\n- -c`\n\nDefault value is : `- /bin/sh\n- -c`", + "type": "array", + "items": { + "$dynamic": false, + "type": "string" + } + }, + "logLevel": { + "type": "string", + "enum": ["ERROR", "WARN", "INFO", "DEBUG", "TRACE"] + }, + "namespaceFiles": { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.core.models.tasks.NamespaceFiles" + }, + { + "$dynamic": false, + "title": "Inject namespace files.", + "markdownDescription": "Inject namespace files to this task. When enabled, it will, by default, load all namespace files into the working directory. However, you can use the `include` or `exclude` properties to limit which namespace files will be injected." + } + ] + }, + "outputDirectory": { + "$deprecated": true, + "type": "boolean", + "title": "Whether to setup the output directory mechanism.", + "default": "false", + "markdownDescription": "Required to use the {{ outputDir }} expression. Note that it could increase the starting time. Deprecated, use the `outputFiles` property instead.\n\nDefault value is : `\"false\"`" + }, + "outputFiles": { + "$dynamic": true, + "title": "The files from the local filesystem to send to Kestra's internal storage.", + "markdownDescription": "Must be a list of [glob](https://en.wikipedia.org/wiki/Glob_(programming)) expressions relative to the current working directory, some examples: `my-dir/**`, `my-dir/*/**` or `my-dir/my-file.txt`.", + "type": "array", + "items": { + "$dynamic": true, + "type": "string" + } + }, + "profiles": { + "$dynamic": true, + "title": "The `profiles.yml` file content. Can be an object (a map) or a string.", + "oneOf": [ + { + "type": "object" + }, + { + "type": "string" + } + ] + }, + "pythonPath": { + "$dynamic": true, + "type": "string", + "title": "The python interpreter to use.", + "default": "python", + "minLength": 1, + "markdownDescription": "Set the python interpreter path to use.\n\nDefault value is : `python`" + }, + "requirements": { + "$dynamic": true, + "title": "List of python dependencies to add to the python execution process.", + "markdownDescription": "Python dependencies list to setup in the virtualenv, in the same format than requirements.txt. It must at least provides dbt.", + "type": "array", + "items": { + "$dynamic": true, + "type": "string" + } + }, + "retry": { + "oneOf": [ + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Constant-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Exponential-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Random-2" + } + ] + }, + "runner": { + "$deprecated": true, + "$dynamic": false, + "type": "string", + "enum": ["PROCESS", "DOCKER"], + "title": "Deprecated - use the 'taskRunner' property instead.", + "markdownDescription": "Only used if the `taskRunner` property is not set" + }, + "targetOS": { + "type": "string", + "enum": ["LINUX", "WINDOWS", "AUTO"], + "title": "The target operating system where the script will run.", + "default": "AUTO", + "markdownDescription": "Default value is : `AUTO`" + }, + "taskRunner": { + "oneOf": [ + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.scripts.runner.docker.Docker" + }, + { + "$dynamic": false, + "title": "The task runner to use.", + "markdownDescription": "Task runners are provided by plugins, each have their own properties." + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.runner.Process" + }, + { + "$dynamic": false, + "title": "The task runner to use.", + "markdownDescription": "Task runners are provided by plugins, each have their own properties." + } + ] + } + ] + }, + "timeout": { + "type": "string", + "format": "duration" + }, + "type": { + "const": "io.kestra.plugin.dbt.cli.Setup" + }, + "warningOnStdErr": { + "$dynamic": false, + "type": "boolean", + "title": "Whether to set the task state to `WARNING` if any `stdErr` is emitted.", + "default": true, + "markdownDescription": "Default value is : `true`" + }, + "workerGroup": { + "$ref": "#/definitions/io.kestra.core.models.tasks.WorkerGroup" + } + }, + "required": ["id", "profiles", "requirements", "type"], + "title": "Setup dbt in a Python virtualenv.", + "markdownDescription": "Use it to install dbt requirements locally in a Python virtualenv if you don't want to use dbt via Docker.\nIn this case, you need to use a `WorkingDirectory` task and this `Setup` task to setup dbt prior to using any of the dbt tasks.##### Examples\n\u003E Setup dbt by installing pip dependencies in a Python virtualenv and initializing the profile directory.\n```yaml\nid: dbt-setup\nnamespace: company.team\ntasks:\n - id: working-directory\n type: io.kestra.plugin.core.flow.WorkingDirectory\n tasks:\n - id: cloneRepository\n type: io.kestra.plugin.git.Clone\n url: https://github.com/kestra-io/dbt-demo\n branch: main\n - id: dbt-setup\n type: io.kestra.plugin.dbt.cli.Setup\n requirements:\n - dbt-duckdb\n profiles:\n jaffle_shop:\n outputs:\n dev:\n type: duckdb\n path: ':memory:'\n extensions:\n - parquet\n target: dev\n - id: dbt-build\n type: io.kestra.plugin.dbt.cli.Build\n\n```" + }, + "io.kestra.plugin.dbt.cli.Snapshot": { + "type": "object", + "properties": { + "allowFailure": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "containerImage": { + "$dynamic": true, + "type": "string", + "title": "The task runner container image, only used if the task runner is container-based.", + "default": "ghcr.io/kestra-io/dbt", + "markdownDescription": "Default value is : `ghcr.io/kestra-io/dbt`" + }, + "dbtPath": { + "$dynamic": true, + "type": "string", + "title": "The path to the dbt CLI", + "default": "./bin/dbt", + "markdownDescription": "Default value is : `./bin/dbt`" + }, + "debug": { + "$dynamic": false, + "type": "boolean", + "title": "Display debug logging during dbt execution.", + "default": false, + "markdownDescription": "Useful for debugging and making bug reports.\n\nDefault value is : `false`" + }, + "description": { + "type": "string" + }, + "disabled": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "docker": { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.scripts.exec.scripts.models.DockerOptions" + }, + { + "$deprecated": true, + "$dynamic": false, + "title": "Deprecated, use 'taskRunner' instead" + } + ] + }, + "dockerOptions": { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.scripts.exec.scripts.models.DockerOptions" + }, + { + "$deprecated": true, + "$dynamic": false, + "title": "Deprecated, use the `docker` property instead" + } + ] + }, + "env": { + "$dynamic": true, + "type": "object", + "title": "Additional environment variables for the current process.", + "additionalProperties": { + "type": "string" + } + }, + "exclude": { + "$dynamic": true, + "title": "List of models to exclude", + "type": "array", + "items": { + "$dynamic": true, + "type": "string" + } + }, + "failFast": { + "$dynamic": false, + "type": "boolean", + "title": "Stop execution at the first failure.", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "fullRefresh": { + "$dynamic": false, + "type": "boolean", + "title": "Whether dbt will drop incremental models and fully-recalculate the incremental table from the model definition.", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "id": { + "type": "string", + "minLength": 1, + "pattern": "^[a-zA-Z0-9][a-zA-Z0-9_-]*" + }, + "inputFiles": { + "$dynamic": true, + "title": "The files to create on the local filesystem. It can be a map or a JSON object.", + "oneOf": [ + { + "type": "object" + }, + { + "type": "string" + } + ] + }, + "logLevel": { + "type": "string", + "enum": ["ERROR", "WARN", "INFO", "DEBUG", "TRACE"] + }, + "namespaceFiles": { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.core.models.tasks.NamespaceFiles" + }, + { + "$dynamic": false, + "title": "Inject namespace files.", + "markdownDescription": "Inject namespace files to this task. When enabled, it will, by default, load all namespace files into the working directory. However, you can use the `include` or `exclude` properties to limit which namespace files will be injected." + } + ] + }, + "outputFiles": { + "$dynamic": true, + "title": "The files from the local filesystem to send to Kestra's internal storage.", + "markdownDescription": "Must be a list of [glob](https://en.wikipedia.org/wiki/Glob_(programming)) expressions relative to the current working directory, some examples: `my-dir/**`, `my-dir/*/**` or `my-dir/my-file.txt`.", + "type": "array", + "items": { + "$dynamic": true, + "type": "string" + } + }, + "parseRunResults": { + "$dynamic": false, + "type": "boolean", + "title": "Parse run result", + "default": true, + "markdownDescription": "Parsing run result to display duration of each task inside dbt\n\nDefault value is : `true`" + }, + "profiles": { + "$dynamic": true, + "type": "string", + "title": "The `profiles.yml` file content", + "markdownDescription": "If a `profile.yml` file already exist in the current working directory, it will be overridden." + }, + "projectDir": { + "$dynamic": false, + "type": "string", + "title": "Which directory to look in for the dbt_project.yml file.", + "markdownDescription": "Default is the current working directory and its parents." + }, + "retry": { + "oneOf": [ + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Constant-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Exponential-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Random-2" + } + ] + }, + "runner": { + "$deprecated": true, + "$dynamic": false, + "type": "string", + "enum": ["PROCESS", "DOCKER"], + "title": "The runner type.", + "markdownDescription": "Deprecated, use 'taskRunner' instead." + }, + "select": { + "$dynamic": true, + "title": "List of nodes to include", + "type": "array", + "items": { + "$dynamic": true, + "type": "string" + } + }, + "selector": { + "$dynamic": true, + "type": "string", + "title": "The selector name to use, as defined in selectors.yml" + }, + "target": { + "$dynamic": true, + "type": "string", + "title": "Which target to load for the given profile" + }, + "taskRunner": { + "oneOf": [ + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.scripts.runner.docker.Docker" + }, + { + "$dynamic": false, + "title": "The task runner to use.", + "markdownDescription": "Task runners are provided by plugins, each have their own properties.\nIf you change from the default one, be careful to also configure the entrypoint to an empty list if needed." + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.runner.Process" + }, + { + "$dynamic": false, + "title": "The task runner to use.", + "markdownDescription": "Task runners are provided by plugins, each have their own properties.\nIf you change from the default one, be careful to also configure the entrypoint to an empty list if needed." + } + ] + } + ] + }, + "thread": { + "$dynamic": false, + "type": "integer", + "title": "Specify the number of threads to use while executing models." + }, + "timeout": { + "type": "string", + "format": "duration" + }, + "type": { + "const": "io.kestra.plugin.dbt.cli.Snapshot" + }, + "warnError": { + "$dynamic": false, + "type": "boolean", + "title": "When dbt would normally warn, raise an exception.", + "default": false, + "markdownDescription": "Examples include --models that selects nothing, deprecations, configurations with no associated models, invalid test configurations, and missing sources/refs in tests.\n\nDefault value is : `false`" + }, + "workerGroup": { + "$ref": "#/definitions/io.kestra.core.models.tasks.WorkerGroup" + } + }, + "required": ["id", "type"], + "title": "Invoke dbt `snapshot` command.", + "markdownDescription": "##### Examples\n\u003E Invoke dbt `snapshot` command.\n```yaml\nid: dbt-snapshot\nnamespace: company.team\ntasks:\n - id: working-directory\n type: io.kestra.plugin.core.flow.WorkingDirectory\n tasks:\n - id: cloneRepository\n type: io.kestra.plugin.git.Clone\n url: https://github.com/kestra-io/dbt-demo\n branch: main\n - id: dbt-snapshot\n type: io.kestra.plugin.dbt.cli.Snapshot\n taskRunner:\n type: io.kestra.plugin.scripts.runner.docker.Docker\n dbtPath: /usr/local/bin/dbt\n containerImage: ghcr.io/kestra-io/dbt-duckdb\n profiles: |\n jaffle_shop:\n outputs:\n dev:\n type: duckdb\n path: ':memory:'\n extensions:\n - parquet\n target: dev\n\n```" + }, + "io.kestra.plugin.dbt.cli.Test": { + "type": "object", + "properties": { + "allowFailure": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "containerImage": { + "$dynamic": true, + "type": "string", + "title": "The task runner container image, only used if the task runner is container-based.", + "default": "ghcr.io/kestra-io/dbt", + "markdownDescription": "Default value is : `ghcr.io/kestra-io/dbt`" + }, + "dbtPath": { + "$dynamic": true, + "type": "string", + "title": "The path to the dbt CLI", + "default": "./bin/dbt", + "markdownDescription": "Default value is : `./bin/dbt`" + }, + "debug": { + "$dynamic": false, + "type": "boolean", + "title": "Display debug logging during dbt execution.", + "default": false, + "markdownDescription": "Useful for debugging and making bug reports.\n\nDefault value is : `false`" + }, + "description": { + "type": "string" + }, + "disabled": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "docker": { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.scripts.exec.scripts.models.DockerOptions" + }, + { + "$deprecated": true, + "$dynamic": false, + "title": "Deprecated, use 'taskRunner' instead" + } + ] + }, + "dockerOptions": { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.scripts.exec.scripts.models.DockerOptions" + }, + { + "$deprecated": true, + "$dynamic": false, + "title": "Deprecated, use the `docker` property instead" + } + ] + }, + "env": { + "$dynamic": true, + "type": "object", + "title": "Additional environment variables for the current process.", + "additionalProperties": { + "type": "string" + } + }, + "exclude": { + "$dynamic": true, + "title": "List of models to exclude", + "type": "array", + "items": { + "$dynamic": true, + "type": "string" + } + }, + "failFast": { + "$dynamic": false, + "type": "boolean", + "title": "Stop execution at the first failure.", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "fullRefresh": { + "$dynamic": false, + "type": "boolean", + "title": "Whether dbt will drop incremental models and fully-recalculate the incremental table from the model definition.", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "id": { + "type": "string", + "minLength": 1, + "pattern": "^[a-zA-Z0-9][a-zA-Z0-9_-]*" + }, + "inputFiles": { + "$dynamic": true, + "title": "The files to create on the local filesystem. It can be a map or a JSON object.", + "oneOf": [ + { + "type": "object" + }, + { + "type": "string" + } + ] + }, + "logLevel": { + "type": "string", + "enum": ["ERROR", "WARN", "INFO", "DEBUG", "TRACE"] + }, + "namespaceFiles": { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.core.models.tasks.NamespaceFiles" + }, + { + "$dynamic": false, + "title": "Inject namespace files.", + "markdownDescription": "Inject namespace files to this task. When enabled, it will, by default, load all namespace files into the working directory. However, you can use the `include` or `exclude` properties to limit which namespace files will be injected." + } + ] + }, + "outputFiles": { + "$dynamic": true, + "title": "The files from the local filesystem to send to Kestra's internal storage.", + "markdownDescription": "Must be a list of [glob](https://en.wikipedia.org/wiki/Glob_(programming)) expressions relative to the current working directory, some examples: `my-dir/**`, `my-dir/*/**` or `my-dir/my-file.txt`.", + "type": "array", + "items": { + "$dynamic": true, + "type": "string" + } + }, + "parseRunResults": { + "$dynamic": false, + "type": "boolean", + "title": "Parse run result", + "default": true, + "markdownDescription": "Parsing run result to display duration of each task inside dbt\n\nDefault value is : `true`" + }, + "profiles": { + "$dynamic": true, + "type": "string", + "title": "The `profiles.yml` file content", + "markdownDescription": "If a `profile.yml` file already exist in the current working directory, it will be overridden." + }, + "projectDir": { + "$dynamic": false, + "type": "string", + "title": "Which directory to look in for the dbt_project.yml file.", + "markdownDescription": "Default is the current working directory and its parents." + }, + "retry": { + "oneOf": [ + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Constant-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Exponential-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Random-2" + } + ] + }, + "runner": { + "$deprecated": true, + "$dynamic": false, + "type": "string", + "enum": ["PROCESS", "DOCKER"], + "title": "The runner type.", + "markdownDescription": "Deprecated, use 'taskRunner' instead." + }, + "select": { + "$dynamic": true, + "title": "List of nodes to include", + "type": "array", + "items": { + "$dynamic": true, + "type": "string" + } + }, + "selector": { + "$dynamic": true, + "type": "string", + "title": "The selector name to use, as defined in selectors.yml" + }, + "target": { + "$dynamic": true, + "type": "string", + "title": "Which target to load for the given profile" + }, + "taskRunner": { + "oneOf": [ + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.scripts.runner.docker.Docker" + }, + { + "$dynamic": false, + "title": "The task runner to use.", + "markdownDescription": "Task runners are provided by plugins, each have their own properties.\nIf you change from the default one, be careful to also configure the entrypoint to an empty list if needed." + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.runner.Process" + }, + { + "$dynamic": false, + "title": "The task runner to use.", + "markdownDescription": "Task runners are provided by plugins, each have their own properties.\nIf you change from the default one, be careful to also configure the entrypoint to an empty list if needed." + } + ] + } + ] + }, + "thread": { + "$dynamic": false, + "type": "integer", + "title": "Specify the number of threads to use while executing models." + }, + "timeout": { + "type": "string", + "format": "duration" + }, + "type": { + "const": "io.kestra.plugin.dbt.cli.Test" + }, + "warnError": { + "$dynamic": false, + "type": "boolean", + "title": "When dbt would normally warn, raise an exception.", + "default": false, + "markdownDescription": "Examples include --models that selects nothing, deprecations, configurations with no associated models, invalid test configurations, and missing sources/refs in tests.\n\nDefault value is : `false`" + }, + "workerGroup": { + "$ref": "#/definitions/io.kestra.core.models.tasks.WorkerGroup" + } + }, + "required": ["id", "type"], + "title": "Invoke dbt `test` command.", + "markdownDescription": "##### Examples\n\u003E Invoke dbt `test` command.\n```yaml\nid: dbt_test\nnamespace: company.team\ntasks:\n - id: wdir\n type: io.kestra.plugin.core.flow.WorkingDirectory\n tasks:\n - id: clone_repository\n type: io.kestra.plugin.git.Clone\n url: https://github.com/kestra-io/dbt-example\n branch: main\n - id: dbt_test\n type: io.kestra.plugin.dbt.cli.Test\n taskRunner:\n type: io.kestra.plugin.scripts.runner.docker.Docker\n dbtPath: /usr/local/bin/dbt\n containerImage: ghcr.io/kestra-io/dbt-duckdb\n profiles: |\n my_dbt_project:\n outputs:\n dev:\n type: duckdb\n path: ':memory:'\n target: dev\n\n```" + }, + "io.kestra.plugin.dbt.cloud.CheckStatus": { + "type": "object", + "properties": { + "accountId": { + "$dynamic": true, + "type": "string", + "title": "Numeric ID of the account." + }, + "allowFailure": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "baseUrl": { + "$dynamic": true, + "type": "string", + "title": "Base url to select the tenant.", + "default": "https://cloud.getdbt.com", + "markdownDescription": "Default value is : `https://cloud.getdbt.com`" + }, + "description": { + "type": "string" + }, + "disabled": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "id": { + "type": "string", + "minLength": 1, + "pattern": "^[a-zA-Z0-9][a-zA-Z0-9_-]*" + }, + "logLevel": { + "type": "string", + "enum": ["ERROR", "WARN", "INFO", "DEBUG", "TRACE"] + }, + "maxDuration": { + "$dynamic": false, + "type": "string", + "format": "duration", + "title": "The maximum duration the task should poll for the job completion.", + "default": 3600, + "markdownDescription": "Default value is : `3600.000000000`" + }, + "parseRunResults": { + "$dynamic": false, + "type": "boolean", + "title": "Parse run result.", + "default": true, + "markdownDescription": "Whether to parse the run result to display the duration of each dbt node in the Gantt view.\n\nDefault value is : `true`" + }, + "pollFrequency": { + "$dynamic": false, + "type": "string", + "format": "duration", + "title": "Specify how often the task should poll for the job status.", + "default": 5, + "markdownDescription": "Default value is : `5.000000000`" + }, + "retry": { + "oneOf": [ + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Constant-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Exponential-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Random-2" + } + ] + }, + "runId": { + "$dynamic": true, + "type": "string", + "title": "The job run ID to check the status for." + }, + "timeout": { + "type": "string", + "format": "duration" + }, + "token": { + "$dynamic": true, + "type": "string", + "title": "API key." + }, + "type": { + "const": "io.kestra.plugin.dbt.cloud.CheckStatus" + }, + "workerGroup": { + "$ref": "#/definitions/io.kestra.core.models.tasks.WorkerGroup" + } + }, + "required": ["accountId", "id", "token", "type"], + "title": "Check the status of a dbt Cloud job.", + "markdownDescription": "##### Examples\n\u003E \n```yaml\naccountId: \"\u003Cyour-account\u003E\"\ntoken: \"\u003Cyour token\u003E\"\nrunId: \"\u003Cyour run id\u003E\"\n```" + }, + "io.kestra.plugin.dbt.cloud.TriggerRun": { + "type": "object", + "properties": { + "accountId": { + "$dynamic": true, + "type": "string", + "title": "Numeric ID of the account." + }, + "allowFailure": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "baseUrl": { + "$dynamic": true, + "type": "string", + "title": "Base url to select the tenant.", + "default": "https://cloud.getdbt.com", + "markdownDescription": "Default value is : `https://cloud.getdbt.com`" + }, + "cause": { + "$dynamic": true, + "type": "string", + "title": "A text description of the reason for running this job.", + "default": "Triggered by Kestra.", + "markdownDescription": "Default value is : `Triggered by Kestra.`" + }, + "dbtVersionOverride": { + "$dynamic": true, + "type": "string", + "title": "Override the version of dbt used to run this job." + }, + "description": { + "type": "string" + }, + "disabled": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "generateDocsOverride": { + "$dynamic": false, + "type": "boolean", + "title": "Override whether or not this job generates docs." + }, + "gitBranch": { + "$dynamic": true, + "type": "string", + "title": "The git branch to check out before running this job." + }, + "gitSha": { + "$dynamic": true, + "type": "string", + "title": "The git SHA to check out before running this job." + }, + "id": { + "type": "string", + "minLength": 1, + "pattern": "^[a-zA-Z0-9][a-zA-Z0-9_-]*" + }, + "jobId": { + "$dynamic": true, + "type": "string", + "title": "Numeric ID of the job." + }, + "logLevel": { + "type": "string", + "enum": ["ERROR", "WARN", "INFO", "DEBUG", "TRACE"] + }, + "maxDuration": { + "$dynamic": false, + "type": "string", + "format": "duration", + "title": "The maximum total wait duration.", + "default": 3600, + "markdownDescription": "Default value is : `3600.000000000`" + }, + "parseRunResults": { + "$dynamic": false, + "type": "boolean", + "title": "Parse run result.", + "default": true, + "markdownDescription": "Parsing run result to display duration of each task inside dbt.\n\nDefault value is : `true`" + }, + "pollFrequency": { + "$dynamic": false, + "type": "string", + "format": "duration", + "title": "Specify frequency for job state check API calls.", + "default": 5, + "markdownDescription": "Default value is : `5.000000000`" + }, + "retry": { + "oneOf": [ + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Constant-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Exponential-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Random-2" + } + ] + }, + "schemaOverride": { + "$dynamic": true, + "type": "string", + "title": "Override the destination schema in the configured target for this job." + }, + "stepsOverride": { + "$dynamic": true, + "title": "Override the list of steps for this job.", + "type": "array", + "items": { + "$dynamic": true, + "type": "string" + } + }, + "targetNameOverride": { + "$dynamic": true, + "type": "string", + "title": "Override the target.name context variable used when running this job." + }, + "threadsOverride": { + "$dynamic": true, + "type": "string", + "title": "Override the number of threads used to run this job." + }, + "timeout": { + "type": "string", + "format": "duration" + }, + "timeoutSecondsOverride": { + "$dynamic": false, + "type": "integer", + "title": "Override the timeout in seconds for this job." + }, + "token": { + "$dynamic": true, + "type": "string", + "title": "API key." + }, + "type": { + "const": "io.kestra.plugin.dbt.cloud.TriggerRun" + }, + "wait": { + "$dynamic": false, + "type": "boolean", + "title": "Wait for the end of the run.", + "default": true, + "markdownDescription": "Allowing to capture job status & logs.\n\nDefault value is : `true`" + }, + "workerGroup": { + "$ref": "#/definitions/io.kestra.core.models.tasks.WorkerGroup" + } + }, + "required": ["accountId", "id", "jobId", "token", "type"], + "title": "Trigger job to run.", + "markdownDescription": "Use this task to kick off a run for a job. When this endpoint returns a successful response, a new run will be enqueued for the account. If you activate the `wait` option, it will wait for the job to be ended and will display all the log and dynamic tasks.##### Examples\n\u003E \n```yaml\naccountId: \"\u003Cyour-account\u003E\"\ntoken: \"\u003Cyour token\u003E\"\njobId: \"\u003Cyour job id\u003E\"\n```" + }, + "io.kestra.plugin.debezium.db2.Capture": { + "type": "object", + "properties": { + "allowFailure": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "database": { + "$dynamic": true, + "type": "string", + "title": "The name of the DB2 database from which to stream the changes." + }, + "deleted": { + "$dynamic": false, + "type": "string", + "enum": ["ADD_FIELD", "NULL", "DROP"], + "title": "Specify how to handle deleted rows.", + "default": "ADD_FIELD", + "markdownDescription": " Possible settings are:\n- `ADD_FIELD`: Add a deleted field as boolean.\n- `NULL`: Send a row with all values as null.\n- `DROP`: Don't send deleted row.\n\nDefault value is : `ADD_FIELD`" + }, + "deletedFieldName": { + "$dynamic": false, + "type": "string", + "title": "The name of deleted field if deleted is `ADD_FIELD`.", + "default": "deleted", + "markdownDescription": "Default value is : `deleted`" + }, + "description": { + "type": "string" + }, + "disabled": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "excludedColumns": { + "$dynamic": true, + "title": "An optional, comma-separated list of regular expressions that match the fully-qualified names of columns to include in change event record values.", + "markdownDescription": "Fully-qualified names for columns are of the form databaseName.tableName.columnName. Do not also specify the `includedColumns` connector configuration property.\"" + }, + "excludedDatabases": { + "$dynamic": true, + "title": "An optional, comma-separated list of regular expressions that match the names of databases for which you do not want to capture changes.", + "markdownDescription": "The connector captures changes in any database whose name is not in the `excludedDatabases`. Do not also set the `includedDatabases` connector configuration property." + }, + "excludedTables": { + "$dynamic": true, + "title": "An optional, comma-separated list of regular expressions that match fully-qualified table identifiers for tables whose changes you do not want to capture.", + "markdownDescription": "The connector captures changes in any table not included in `excludedTables`. Each identifier is of the form databaseName.tableName. Do not also specify the `includedTables` connector configuration property." + }, + "format": { + "$dynamic": false, + "type": "string", + "enum": ["RAW", "INLINE", "WRAP"], + "title": "The format of the output.", + "default": "INLINE", + "markdownDescription": " Possible settings are:\n- `RAW`: Send raw data from debezium.\n- `INLINE`: Send a row like in the source with only data (remove after & before), all the columns will be present for each row.\n- `WRAP`: Send a row like INLINE but wrapped in a `record` field.\n\n\nDefault value is : `INLINE`" + }, + "hostname": { + "$dynamic": true, + "type": "string", + "title": "Hostname of the remote server." + }, + "id": { + "type": "string", + "minLength": 1, + "pattern": "^[a-zA-Z0-9][a-zA-Z0-9_-]*" + }, + "ignoreDdl": { + "$dynamic": false, + "type": "boolean", + "title": "Ignore DDL statement.", + "default": true, + "markdownDescription": "Ignore CREATE, ALTER, DROP and TRUNCATE operations.\n\nDefault value is : `true`" + }, + "includedColumns": { + "$dynamic": true, + "title": "An optional, comma-separated list of regular expressions that match the fully-qualified names of columns to exclude from change event record values.", + "markdownDescription": "Fully-qualified names for columns are of the form databaseName.tableName.columnName. Do not also specify the `excludedColumns` connector configuration property." + }, + "includedDatabases": { + "$dynamic": true, + "title": "An optional, comma-separated list of regular expressions that match the names of the databases for which to capture changes.", + "markdownDescription": "The connector does not capture changes in any database whose name is not in `includedDatabases`. By default, the connector captures changes in all databases. Do not also set the `excludedDatabases` connector configuration property." + }, + "includedTables": { + "$dynamic": true, + "title": "An optional, comma-separated list of regular expressions that match fully-qualified table identifiers of tables whose changes you want to capture.", + "markdownDescription": "The connector does not capture changes in any table not included in `includedTables`. Each identifier is of the form databaseName.tableName. By default, the connector captures changes in every non-system table in each database whose changes are being captured. Do not also specify the `excludedTables` connector configuration property." + }, + "key": { + "$dynamic": false, + "type": "string", + "enum": ["ADD_FIELD", "DROP"], + "title": "Specify how to handle key.", + "default": "ADD_FIELD", + "markdownDescription": " Possible settings are:\n- `ADD_FIELD`: Add key(s) merged with columns.\n- `DROP`: Drop keys.\n\nDefault value is : `ADD_FIELD`" + }, + "logLevel": { + "type": "string", + "enum": ["ERROR", "WARN", "INFO", "DEBUG", "TRACE"] + }, + "maxDuration": { + "$dynamic": false, + "type": "string", + "format": "duration", + "title": "The maximum duration waiting for new rows.", + "markdownDescription": "It's not an hard limit and is evaluated every second.\n It is taken into account after the snapshot if any." + }, + "maxRecords": { + "$dynamic": false, + "type": "integer", + "title": "The maximum number of rows to fetch before stopping.", + "markdownDescription": "It's not an hard limit and is evaluated every second." + }, + "maxSnapshotDuration": { + "$dynamic": false, + "type": "string", + "format": "duration", + "title": "The maximum duration waiting for the snapshot to ends.", + "default": 3600, + "markdownDescription": "It's not an hard limit and is evaluated every second.\n The properties 'maxRecord', 'maxDuration' and 'maxWait' are evaluated only after the snapshot is done.\n\nDefault value is : `3600.000000000`" + }, + "maxWait": { + "$dynamic": false, + "type": "string", + "format": "duration", + "title": "The maximum total processing duration.", + "default": 10, + "markdownDescription": "It's not an hard limit and is evaluated every second.\n It is taken into account after the snapshot if any.\n\nDefault value is : `10.000000000`" + }, + "metadata": { + "$dynamic": false, + "type": "string", + "enum": ["ADD_FIELD", "DROP"], + "title": "Specify how to handle metadata.", + "default": "ADD_FIELD", + "markdownDescription": " Possible settings are:\n- `ADD_FIELD`: Add metadata in a column named `metadata`.\n- `DROP`: Drop metadata.\n\nDefault value is : `ADD_FIELD`" + }, + "metadataFieldName": { + "$dynamic": false, + "type": "string", + "title": "The name of metadata field if metadata is `ADD_FIELD`.", + "default": "metadata", + "markdownDescription": "Default value is : `metadata`" + }, + "password": { + "$dynamic": true, + "type": "string", + "title": "Password on the remote server." + }, + "port": { + "$dynamic": true, + "type": "string", + "title": "Port of the remote server." + }, + "properties": { + "$dynamic": true, + "type": "object", + "title": "Additional configuration properties.", + "markdownDescription": "Any additional configuration properties that is valid for the current driver." + }, + "retry": { + "oneOf": [ + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Constant-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Exponential-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Random-2" + } + ] + }, + "snapshotMode": { + "$dynamic": false, + "type": "string", + "enum": [ + "ALWAYS", + "INITIAL", + "INITIAL_ONLY", + "WHEN_NEEDED", + "NO_DATA", + "RECOVERY" + ], + "title": "Specifies the criteria for running a snapshot when the connector starts.", + "default": "INITIAL", + "markdownDescription": " Possible settings are:\n- `ALWAYS`: The connector performs a snapshot every time that it starts.\n- `INITIAL`: The connector runs a snapshot only when no offsets have been recorded for the logical server name.\n- `INITIAL_ONLY`: The connector runs a snapshot only when no offsets have been recorded for the logical server name and then stops; i.e. it will not read change events from the binlog.\n- `WHEN_NEEDED`: After the connector starts, it performs a snapshot only if it detects one of the following circumstances: 1. It cannot detect any topic offsets. 2. A previously recorded offset specifies a log position that is not available on the server.\n- `NO_DATA`: The connector captures the structure of all relevant tables, performing all the steps described in the INITIAL, except that it does not create READ events to represent the data set at the point of the connector’s start-up.\n- `RECOVERY`: Set this option to restore a database schema history topic that is lost or corrupted. After a restart, the connector runs a snapshot that rebuilds the topic from the source tables.\n\nDefault value is : `INITIAL`" + }, + "splitTable": { + "$dynamic": false, + "type": "string", + "enum": ["OFF", "DATABASE", "TABLE"], + "title": "Split table on separate output `uris`.", + "default": "TABLE", + "markdownDescription": " Possible settings are:\n- `TABLE`: This will split all rows by tables on output with name `database.table`\n- `DATABASE`: This will split all rows by databases on output with name `database`.\n- `OFF`: This will **NOT** split all rows resulting in a single `data` output.\n\nDefault value is : `TABLE`" + }, + "stateName": { + "$dynamic": false, + "type": "string", + "title": "The name of Debezium state file.", + "default": "debezium-state", + "markdownDescription": "Default value is : `debezium-state`" + }, + "timeout": { + "type": "string", + "format": "duration" + }, + "type": { + "const": "io.kestra.plugin.debezium.db2.Capture" + }, + "username": { + "$dynamic": true, + "type": "string", + "title": "Username on the remote server." + }, + "workerGroup": { + "$ref": "#/definitions/io.kestra.core.models.tasks.WorkerGroup" + } + }, + "required": ["database", "hostname", "id", "port", "type"], + "title": "Wait for change data capture event on Db2 server.", + "markdownDescription": "##### Examples\n\u003E \n```yaml\nsnapshotMode: INITIAL\nhostname: 127.0.0.1\nport: \"50000\"\nusername: db2inst1\npassword: my_password\ndatabase: my_database\nmaxRecords: 100\n```" + }, + "io.kestra.plugin.debezium.db2.RealtimeTrigger": { + "type": "object", + "properties": { + "conditions": { + "$dynamic": false, + "title": "List of conditions in order to limit the flow trigger.", + "type": "array", + "items": { + "oneOf": [ + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.DateTimeBetweenCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.DayWeekCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.DayWeekInMonthCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.ExecutionFlowCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.ExecutionLabelsCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.ExecutionNamespaceCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.ExecutionOutputsCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.ExecutionStatusCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.ExpressionCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.FlowCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.FlowNamespaceCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.HasRetryAttemptCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.MultipleCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.NotCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.OrCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.PublicHolidayCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.TimeBetweenCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.WeekendCondition" + }, + { + "$dynamic": false + } + ] + } + ] + } + }, + "database": { + "$dynamic": true, + "type": "string", + "title": "The name of the DB2 database from which to stream the changes." + }, + "deleted": { + "$dynamic": false, + "type": "string", + "enum": ["ADD_FIELD", "NULL", "DROP"], + "title": "Specify how to handle deleted rows.", + "default": "ADD_FIELD", + "markdownDescription": " Possible settings are:\n- `ADD_FIELD`: Add a deleted field as boolean.\n- `NULL`: Send a row with all values as null.\n- `DROP`: Don't send deleted row.\n\nDefault value is : `ADD_FIELD`" + }, + "deletedFieldName": { + "$dynamic": false, + "type": "string", + "title": "The name of deleted field if deleted is `ADD_FIELD`.", + "default": "deleted", + "markdownDescription": "Default value is : `deleted`" + }, + "description": { + "type": "string" + }, + "disabled": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "excludedColumns": { + "$dynamic": true, + "title": "An optional, comma-separated list of regular expressions that match the fully-qualified names of columns to include in change event record values.", + "markdownDescription": "Fully-qualified names for columns are of the form databaseName.tableName.columnName. Do not also specify the `includedColumns` connector configuration property.\"" + }, + "excludedDatabases": { + "$dynamic": true, + "title": "An optional, comma-separated list of regular expressions that match the names of databases for which you do not want to capture changes.", + "markdownDescription": "The connector captures changes in any database whose name is not in the `excludedDatabases`. Do not also set the `includedDatabases` connector configuration property." + }, + "excludedTables": { + "$dynamic": true, + "title": "An optional, comma-separated list of regular expressions that match fully-qualified table identifiers for tables whose changes you do not want to capture.", + "markdownDescription": "The connector captures changes in any table not included in `excludedTables`. Each identifier is of the form databaseName.tableName. Do not also specify the `includedTables` connector configuration property." + }, + "format": { + "$dynamic": false, + "type": "string", + "enum": ["RAW", "INLINE", "WRAP"], + "title": "The format of the output.", + "default": "INLINE", + "markdownDescription": " Possible settings are:\n- `RAW`: Send raw data from debezium.\n- `INLINE`: Send a row like in the source with only data (remove after & before), all the columns will be present for each row.\n- `WRAP`: Send a row like INLINE but wrapped in a `record` field.\n\n\nDefault value is : `INLINE`" + }, + "hostname": { + "$dynamic": true, + "type": "string", + "title": "Hostname of the remote server." + }, + "id": { + "type": "string", + "title": "A unique ID for the whole flow.", + "minLength": 1, + "pattern": "^[a-zA-Z0-9][a-zA-Z0-9_-]*" + }, + "ignoreDdl": { + "$dynamic": false, + "type": "boolean", + "title": "Ignore DDL statement.", + "default": true, + "markdownDescription": "Ignore CREATE, ALTER, DROP and TRUNCATE operations.\n\nDefault value is : `true`" + }, + "includedColumns": { + "$dynamic": true, + "title": "An optional, comma-separated list of regular expressions that match the fully-qualified names of columns to exclude from change event record values.", + "markdownDescription": "Fully-qualified names for columns are of the form databaseName.tableName.columnName. Do not also specify the `excludedColumns` connector configuration property." + }, + "includedDatabases": { + "$dynamic": true, + "title": "An optional, comma-separated list of regular expressions that match the names of the databases for which to capture changes.", + "markdownDescription": "The connector does not capture changes in any database whose name is not in `includedDatabases`. By default, the connector captures changes in all databases. Do not also set the `excludedDatabases` connector configuration property." + }, + "includedTables": { + "$dynamic": true, + "title": "An optional, comma-separated list of regular expressions that match fully-qualified table identifiers of tables whose changes you want to capture.", + "markdownDescription": "The connector does not capture changes in any table not included in `includedTables`. Each identifier is of the form databaseName.tableName. By default, the connector captures changes in every non-system table in each database whose changes are being captured. Do not also specify the `excludedTables` connector configuration property." + }, + "key": { + "$dynamic": false, + "type": "string", + "enum": ["ADD_FIELD", "DROP"], + "title": "Specify how to handle key.", + "default": "ADD_FIELD", + "markdownDescription": " Possible settings are:\n- `ADD_FIELD`: Add key(s) merged with columns.\n- `DROP`: Drop keys.\n\nDefault value is : `ADD_FIELD`" + }, + "labels": { + "title": "The labels to pass to the execution created.", + "type": "array", + "items": { + "$ref": "#/definitions/io.kestra.core.models.Label" + } + }, + "logLevel": { + "type": "string", + "enum": ["ERROR", "WARN", "INFO", "DEBUG", "TRACE"] + }, + "metadata": { + "$dynamic": false, + "type": "string", + "enum": ["ADD_FIELD", "DROP"], + "title": "Specify how to handle metadata.", + "default": "ADD_FIELD", + "markdownDescription": " Possible settings are:\n- `ADD_FIELD`: Add metadata in a column named `metadata`.\n- `DROP`: Drop metadata.\n\nDefault value is : `ADD_FIELD`" + }, + "metadataFieldName": { + "$dynamic": false, + "type": "string", + "title": "The name of metadata field if metadata is `ADD_FIELD`.", + "default": "metadata", + "markdownDescription": "Default value is : `metadata`" + }, + "offsetsCommitMode": { + "$dynamic": false, + "type": "string", + "enum": ["ON_EACH_BATCH", "ON_STOP"], + "title": "How to commit the offsets to the state store.", + "default": "ON_EACH_BATCH", + "markdownDescription": "Possible values are:\n- ON_EACH_BATCH: after each batch of records consumed by this trigger, the offsets will be stored in the state store. This avoids any duplicated records being consumed but can be costly if a lot of events are produced.\n- ON_STOP: when this trigger is stopped or killed, the offsets will be stored in the state store. This avoid any un-necessary write to the state store, but if the trigger is not stopped gracefully the state store may not be updated leading to duplicated records consumption.\n\nDefault value is : `ON_EACH_BATCH`" + }, + "password": { + "$dynamic": true, + "type": "string", + "title": "Password on the remote server." + }, + "port": { + "$dynamic": true, + "type": "string", + "title": "Port of the remote server." + }, + "properties": { + "$dynamic": true, + "type": "object", + "title": "Additional configuration properties.", + "markdownDescription": "Any additional configuration properties that is valid for the current driver." + }, + "snapshotMode": { + "$dynamic": false, + "type": "string", + "enum": [ + "ALWAYS", + "INITIAL", + "INITIAL_ONLY", + "WHEN_NEEDED", + "NO_DATA", + "RECOVERY" + ], + "title": "Specifies the criteria for running a snapshot when the connector starts.", + "default": "INITIAL", + "markdownDescription": " Possible settings are:\n- `ALWAYS`: The connector performs a snapshot every time that it starts.\n- `INITIAL`: The connector runs a snapshot only when no offsets have been recorded for the logical server name.\n- `INITIAL_ONLY`: The connector runs a snapshot only when no offsets have been recorded for the logical server name and then stops; i.e. it will not read change events from the binlog.\n- `WHEN_NEEDED`: After the connector starts, it performs a snapshot only if it detects one of the following circumstances: 1. It cannot detect any topic offsets. 2. A previously recorded offset specifies a log position that is not available on the server.\n- `NO_DATA`: The connector captures the structure of all relevant tables, performing all the steps described in the INITIAL, except that it does not create READ events to represent the data set at the point of the connector’s start-up.\n- `RECOVERY`: Set this option to restore a database schema history topic that is lost or corrupted. After a restart, the connector runs a snapshot that rebuilds the topic from the source tables.\n\nDefault value is : `INITIAL`" + }, + "splitTable": { + "$dynamic": false, + "type": "string", + "enum": ["OFF", "DATABASE", "TABLE"], + "title": "Split table on separate output `uris`.", + "default": "TABLE", + "markdownDescription": " Possible settings are:\n- `TABLE`: This will split all rows by tables on output with name `database.table`\n- `DATABASE`: This will split all rows by databases on output with name `database`.\n- `OFF`: This will **NOT** split all rows resulting in a single `data` output.\n\nDefault value is : `TABLE`" + }, + "stateName": { + "$dynamic": false, + "type": "string", + "title": "The name of Debezium state file.", + "default": "debezium-state", + "markdownDescription": "Default value is : `debezium-state`" + }, + "stopAfter": { + "$dynamic": false, + "title": "List of execution states after which a trigger should be stopped (a.k.a. disabled).", + "type": "array", + "items": { + "$dynamic": false, + "type": "string", + "enum": [ + "CREATED", + "RUNNING", + "PAUSED", + "RESTARTED", + "KILLING", + "SUCCESS", + "WARNING", + "FAILED", + "KILLED", + "CANCELLED", + "QUEUED", + "RETRYING", + "RETRIED" + ] + } + }, + "type": { + "const": "io.kestra.plugin.debezium.db2.RealtimeTrigger" + }, + "username": { + "$dynamic": true, + "type": "string", + "title": "Username on the remote server." + }, + "workerGroup": { + "$ref": "#/definitions/io.kestra.core.models.tasks.WorkerGroup" + } + }, + "required": ["database", "hostname", "id", "port", "type"], + "title": "Consume a message in real-time from a DB2 database via change data capture and create one execution per row.", + "markdownDescription": "If you would like to consume multiple messages processed within a given time frame and process them in batch, you can use the [io.kestra.plugin.debezium.db2.Trigger](https://kestra.io/plugins/plugin-debezium/triggers/io.kestra.plugin.debezium.db2.trigger) instead.##### Examples\n\u003E Consume a message from a DB2 database via change data capture in real-time.\n```yaml\nid: debezium-db2\nnamespace: company.team\n\ntasks:\n - id: send_data\n type: io.kestra.plugin.core.log.Log\n message: \"{{ trigger.data }}\"\n\ntriggers:\n - id: realtime\n type: io.kestra.plugin.debezium.db2.RealtimeTrigger\n hostname: 127.0.0.1\n port: 50000\n username: db2inst1\n password: my_password\n database: my_database\n\n```" + }, + "io.kestra.plugin.debezium.db2.Trigger": { + "type": "object", + "properties": { + "conditions": { + "$dynamic": false, + "title": "List of conditions in order to limit the flow trigger.", + "type": "array", + "items": { + "oneOf": [ + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.DateTimeBetweenCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.DayWeekCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.DayWeekInMonthCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.ExecutionFlowCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.ExecutionLabelsCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.ExecutionNamespaceCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.ExecutionOutputsCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.ExecutionStatusCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.ExpressionCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.FlowCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.FlowNamespaceCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.HasRetryAttemptCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.MultipleCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.NotCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.OrCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.PublicHolidayCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.TimeBetweenCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.WeekendCondition" + }, + { + "$dynamic": false + } + ] + } + ] + } + }, + "database": { + "$dynamic": true, + "type": "string", + "title": "The name of the DB2 database from which to stream the changes." + }, + "deleted": { + "$dynamic": false, + "type": "string", + "enum": ["ADD_FIELD", "NULL", "DROP"], + "title": "Specify how to handle deleted rows.", + "default": "ADD_FIELD", + "markdownDescription": " Possible settings are:\n- `ADD_FIELD`: Add a deleted field as boolean.\n- `NULL`: Send a row with all values as null.\n- `DROP`: Don't send deleted row.\n\nDefault value is : `ADD_FIELD`" + }, + "deletedFieldName": { + "$dynamic": false, + "type": "string", + "title": "The name of deleted field if deleted is `ADD_FIELD`.", + "default": "deleted", + "markdownDescription": "Default value is : `deleted`" + }, + "description": { + "type": "string" + }, + "disabled": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "excludedColumns": { + "$dynamic": true, + "title": "An optional, comma-separated list of regular expressions that match the fully-qualified names of columns to include in change event record values.", + "markdownDescription": "Fully-qualified names for columns are of the form databaseName.tableName.columnName. Do not also specify the `includedColumns` connector configuration property.\"" + }, + "excludedDatabases": { + "$dynamic": true, + "title": "An optional, comma-separated list of regular expressions that match the names of databases for which you do not want to capture changes.", + "markdownDescription": "The connector captures changes in any database whose name is not in the `excludedDatabases`. Do not also set the `includedDatabases` connector configuration property." + }, + "excludedTables": { + "$dynamic": true, + "title": "An optional, comma-separated list of regular expressions that match fully-qualified table identifiers for tables whose changes you do not want to capture.", + "markdownDescription": "The connector captures changes in any table not included in `excludedTables`. Each identifier is of the form databaseName.tableName. Do not also specify the `includedTables` connector configuration property." + }, + "format": { + "$dynamic": false, + "type": "string", + "enum": ["RAW", "INLINE", "WRAP"], + "title": "The format of the output.", + "default": "INLINE", + "markdownDescription": " Possible settings are:\n- `RAW`: Send raw data from debezium.\n- `INLINE`: Send a row like in the source with only data (remove after & before), all the columns will be present for each row.\n- `WRAP`: Send a row like INLINE but wrapped in a `record` field.\n\n\nDefault value is : `INLINE`" + }, + "hostname": { + "$dynamic": true, + "type": "string", + "title": "Hostname of the remote server." + }, + "id": { + "type": "string", + "title": "A unique ID for the whole flow.", + "minLength": 1, + "pattern": "^[a-zA-Z0-9][a-zA-Z0-9_-]*" + }, + "ignoreDdl": { + "$dynamic": false, + "type": "boolean", + "title": "Ignore DDL statement.", + "default": true, + "markdownDescription": "Ignore CREATE, ALTER, DROP and TRUNCATE operations.\n\nDefault value is : `true`" + }, + "includedColumns": { + "$dynamic": true, + "title": "An optional, comma-separated list of regular expressions that match the fully-qualified names of columns to exclude from change event record values.", + "markdownDescription": "Fully-qualified names for columns are of the form databaseName.tableName.columnName. Do not also specify the `excludedColumns` connector configuration property." + }, + "includedDatabases": { + "$dynamic": true, + "title": "An optional, comma-separated list of regular expressions that match the names of the databases for which to capture changes.", + "markdownDescription": "The connector does not capture changes in any database whose name is not in `includedDatabases`. By default, the connector captures changes in all databases. Do not also set the `excludedDatabases` connector configuration property." + }, + "includedTables": { + "$dynamic": true, + "title": "An optional, comma-separated list of regular expressions that match fully-qualified table identifiers of tables whose changes you want to capture.", + "markdownDescription": "The connector does not capture changes in any table not included in `includedTables`. Each identifier is of the form databaseName.tableName. By default, the connector captures changes in every non-system table in each database whose changes are being captured. Do not also specify the `excludedTables` connector configuration property." + }, + "interval": { + "$dynamic": false, + "type": "string", + "format": "duration", + "title": "Interval between polling.", + "default": 60, + "markdownDescription": "The interval between 2 different polls of schedule, this can avoid to overload the remote system with too many calls. For most of the triggers that depend on external systems, a minimal interval must be at least PT30S.\nSee [ISO_8601 Durations](https://en.wikipedia.org/wiki/ISO_8601#Durations) for more information of available interval values.\n\nDefault value is : `60.000000000`" + }, + "key": { + "$dynamic": false, + "type": "string", + "enum": ["ADD_FIELD", "DROP"], + "title": "Specify how to handle key.", + "default": "ADD_FIELD", + "markdownDescription": " Possible settings are:\n- `ADD_FIELD`: Add key(s) merged with columns.\n- `DROP`: Drop keys.\n\nDefault value is : `ADD_FIELD`" + }, + "labels": { + "title": "The labels to pass to the execution created.", + "type": "array", + "items": { + "$ref": "#/definitions/io.kestra.core.models.Label" + } + }, + "logLevel": { + "type": "string", + "enum": ["ERROR", "WARN", "INFO", "DEBUG", "TRACE"] + }, + "maxDuration": { + "$dynamic": false, + "type": "string", + "format": "duration", + "title": "The maximum duration waiting for new rows.", + "markdownDescription": "It's not an hard limit and is evaluated every second.\n It is taken into account after the snapshot if any." + }, + "maxRecords": { + "$dynamic": false, + "type": "integer", + "title": "The maximum number of rows to fetch before stopping.", + "markdownDescription": "It's not an hard limit and is evaluated every second." + }, + "maxSnapshotDuration": { + "$dynamic": false, + "type": "string", + "format": "duration", + "title": "The maximum duration waiting for the snapshot to ends.", + "default": 3600, + "markdownDescription": "It's not an hard limit and is evaluated every second.\n The properties 'maxRecord', 'maxDuration' and 'maxWait' are evaluated only after the snapshot is done.\n\nDefault value is : `3600.000000000`" + }, + "maxWait": { + "$dynamic": false, + "type": "string", + "format": "duration", + "title": "The maximum total processing duration.", + "default": 10, + "markdownDescription": "It's not an hard limit and is evaluated every second.\n It is taken into account after the snapshot if any.\n\nDefault value is : `10.000000000`" + }, + "metadata": { + "$dynamic": false, + "type": "string", + "enum": ["ADD_FIELD", "DROP"], + "title": "Specify how to handle metadata.", + "default": "ADD_FIELD", + "markdownDescription": " Possible settings are:\n- `ADD_FIELD`: Add metadata in a column named `metadata`.\n- `DROP`: Drop metadata.\n\nDefault value is : `ADD_FIELD`" + }, + "metadataFieldName": { + "$dynamic": false, + "type": "string", + "title": "The name of metadata field if metadata is `ADD_FIELD`.", + "default": "metadata", + "markdownDescription": "Default value is : `metadata`" + }, + "password": { + "$dynamic": true, + "type": "string", + "title": "Password on the remote server." + }, + "port": { + "$dynamic": true, + "type": "string", + "title": "Port of the remote server." + }, + "properties": { + "$dynamic": true, + "type": "object", + "title": "Additional configuration properties.", + "markdownDescription": "Any additional configuration properties that is valid for the current driver." + }, + "snapshotMode": { + "$dynamic": false, + "type": "string", + "enum": [ + "ALWAYS", + "INITIAL", + "INITIAL_ONLY", + "WHEN_NEEDED", + "NO_DATA", + "RECOVERY" + ], + "title": "Specifies the criteria for running a snapshot when the connector starts.", + "default": "INITIAL", + "markdownDescription": " Possible settings are:\n- `ALWAYS`: The connector performs a snapshot every time that it starts.\n- `INITIAL`: The connector runs a snapshot only when no offsets have been recorded for the logical server name.\n- `INITIAL_ONLY`: The connector runs a snapshot only when no offsets have been recorded for the logical server name and then stops; i.e. it will not read change events from the binlog.\n- `WHEN_NEEDED`: After the connector starts, it performs a snapshot only if it detects one of the following circumstances: 1. It cannot detect any topic offsets. 2. A previously recorded offset specifies a log position that is not available on the server.\n- `NO_DATA`: The connector captures the structure of all relevant tables, performing all the steps described in the INITIAL, except that it does not create READ events to represent the data set at the point of the connector’s start-up.\n- `RECOVERY`: Set this option to restore a database schema history topic that is lost or corrupted. After a restart, the connector runs a snapshot that rebuilds the topic from the source tables.\n\nDefault value is : `INITIAL`" + }, + "splitTable": { + "$dynamic": false, + "type": "string", + "enum": ["OFF", "DATABASE", "TABLE"], + "title": "Split table on separate output `uris`.", + "default": "TABLE", + "markdownDescription": " Possible settings are:\n- `TABLE`: This will split all rows by tables on output with name `database.table`\n- `DATABASE`: This will split all rows by databases on output with name `database`.\n- `OFF`: This will **NOT** split all rows resulting in a single `data` output.\n\nDefault value is : `TABLE`" + }, + "stateName": { + "$dynamic": false, + "type": "string", + "title": "The name of Debezium state file.", + "default": "debezium-state", + "markdownDescription": "Default value is : `debezium-state`" + }, + "stopAfter": { + "$dynamic": false, + "title": "List of execution states after which a trigger should be stopped (a.k.a. disabled).", + "type": "array", + "items": { + "$dynamic": false, + "type": "string", + "enum": [ + "CREATED", + "RUNNING", + "PAUSED", + "RESTARTED", + "KILLING", + "SUCCESS", + "WARNING", + "FAILED", + "KILLED", + "CANCELLED", + "QUEUED", + "RETRYING", + "RETRIED" + ] + } + }, + "type": { + "const": "io.kestra.plugin.debezium.db2.Trigger" + }, + "username": { + "$dynamic": true, + "type": "string", + "title": "Username on the remote server." + }, + "workerGroup": { + "$ref": "#/definitions/io.kestra.core.models.tasks.WorkerGroup" + } + }, + "required": ["database", "hostname", "id", "port", "type"], + "title": "Consume messages periodically from a DB2 database via change data capture and create one execution per batch.", + "markdownDescription": "If you would like to consume each message from change data capture in real-time and create one execution per message, you can use the [io.kestra.plugin.debezium.db2.RealtimeTrigger](https://kestra.io/plugins/plugin-debezium/triggers/io.kestra.plugin.debezium.db2.realtimetrigger) instead.##### Examples\n\u003E \n```yaml\nsnapshotMode: INITIAL\nhostname: 127.0.0.1\nport: \"50000\"\nusername: db2inst1\npassword: my_password\ndatabase: my_database\nmaxRecords: 100\n```" + }, + "io.kestra.plugin.debezium.mongodb.Capture": { + "type": "object", + "properties": { + "allowFailure": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "connectionString": { + "$dynamic": true, + "type": "string", + "title": "Defines connection string to mongodb replica set or sharded" + }, + "deleted": { + "$dynamic": false, + "type": "string", + "enum": ["ADD_FIELD", "NULL", "DROP"], + "title": "Specify how to handle deleted rows.", + "default": "ADD_FIELD", + "markdownDescription": " Possible settings are:\n- `ADD_FIELD`: Add a deleted field as boolean.\n- `NULL`: Send a row with all values as null.\n- `DROP`: Don't send deleted row.\n\nDefault value is : `ADD_FIELD`" + }, + "deletedFieldName": { + "$dynamic": false, + "type": "string", + "title": "The name of deleted field if deleted is `ADD_FIELD`.", + "default": "deleted", + "markdownDescription": "Default value is : `deleted`" + }, + "description": { + "type": "string" + }, + "disabled": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "excludedCollections": { + "$dynamic": true, + "title": "The name of the MongoDB database collection excluded from which to stream the changes.", + "markdownDescription": "A list of regular expressions that match the collection namespaces (for example, \u003CdbName\u003E.\u003CcollectionName\u003E) of all collections to be excluded" + }, + "excludedColumns": { + "$dynamic": true, + "title": "An optional, comma-separated list of regular expressions that match the fully-qualified names of columns to include in change event record values.", + "markdownDescription": "Fully-qualified names for columns are of the form databaseName.tableName.columnName. Do not also specify the `includedColumns` connector configuration property.\"" + }, + "excludedDatabases": { + "$dynamic": true, + "title": "An optional, comma-separated list of regular expressions that match the names of databases for which you do not want to capture changes.", + "markdownDescription": "The connector captures changes in any database whose name is not in the `excludedDatabases`. Do not also set the `includedDatabases` connector configuration property." + }, + "excludedTables": { + "$dynamic": true, + "title": "An optional, comma-separated list of regular expressions that match fully-qualified table identifiers for tables whose changes you do not want to capture.", + "markdownDescription": "The connector captures changes in any table not included in `excludedTables`. Each identifier is of the form databaseName.tableName. Do not also specify the `includedTables` connector configuration property." + }, + "format": { + "$dynamic": false, + "type": "string", + "enum": ["RAW", "INLINE", "WRAP"], + "title": "The format of the output.", + "default": "INLINE", + "markdownDescription": " Possible settings are:\n- `RAW`: Send raw data from debezium.\n- `INLINE`: Send a row like in the source with only data (remove after & before), all the columns will be present for each row.\n- `WRAP`: Send a row like INLINE but wrapped in a `record` field.\n\n\nDefault value is : `INLINE`" + }, + "hostname": { + "$dynamic": true, + "type": "string", + "title": "Hostname of the remote server." + }, + "id": { + "type": "string", + "minLength": 1, + "pattern": "^[a-zA-Z0-9][a-zA-Z0-9_-]*" + }, + "ignoreDdl": { + "$dynamic": false, + "type": "boolean", + "title": "Ignore DDL statement.", + "default": true, + "markdownDescription": "Ignore CREATE, ALTER, DROP and TRUNCATE operations.\n\nDefault value is : `true`" + }, + "includedCollections": { + "$dynamic": true, + "title": "The name of the MongoDB database collection included from which to stream the changes.", + "markdownDescription": "A list of regular expressions that match the collection namespaces (for example, \u003CdbName\u003E.\u003CcollectionName\u003E) of all collections to be monitored" + }, + "includedColumns": { + "$dynamic": true, + "title": "An optional, comma-separated list of regular expressions that match the fully-qualified names of columns to exclude from change event record values.", + "markdownDescription": "Fully-qualified names for columns are of the form databaseName.tableName.columnName. Do not also specify the `excludedColumns` connector configuration property." + }, + "includedDatabases": { + "$dynamic": true, + "title": "An optional, comma-separated list of regular expressions that match the names of the databases for which to capture changes.", + "markdownDescription": "The connector does not capture changes in any database whose name is not in `includedDatabases`. By default, the connector captures changes in all databases. Do not also set the `excludedDatabases` connector configuration property." + }, + "includedTables": { + "$dynamic": true, + "title": "An optional, comma-separated list of regular expressions that match fully-qualified table identifiers of tables whose changes you want to capture.", + "markdownDescription": "The connector does not capture changes in any table not included in `includedTables`. Each identifier is of the form databaseName.tableName. By default, the connector captures changes in every non-system table in each database whose changes are being captured. Do not also specify the `excludedTables` connector configuration property." + }, + "key": { + "$dynamic": false, + "type": "string", + "enum": ["ADD_FIELD", "DROP"], + "title": "Specify how to handle key.", + "default": "ADD_FIELD", + "markdownDescription": " Possible settings are:\n- `ADD_FIELD`: Add key(s) merged with columns.\n- `DROP`: Drop keys.\n\nDefault value is : `ADD_FIELD`" + }, + "logLevel": { + "type": "string", + "enum": ["ERROR", "WARN", "INFO", "DEBUG", "TRACE"] + }, + "maxDuration": { + "$dynamic": false, + "type": "string", + "format": "duration", + "title": "The maximum duration waiting for new rows.", + "markdownDescription": "It's not an hard limit and is evaluated every second.\n It is taken into account after the snapshot if any." + }, + "maxRecords": { + "$dynamic": false, + "type": "integer", + "title": "The maximum number of rows to fetch before stopping.", + "markdownDescription": "It's not an hard limit and is evaluated every second." + }, + "maxSnapshotDuration": { + "$dynamic": false, + "type": "string", + "format": "duration", + "title": "The maximum duration waiting for the snapshot to ends.", + "default": 3600, + "markdownDescription": "It's not an hard limit and is evaluated every second.\n The properties 'maxRecord', 'maxDuration' and 'maxWait' are evaluated only after the snapshot is done.\n\nDefault value is : `3600.000000000`" + }, + "maxWait": { + "$dynamic": false, + "type": "string", + "format": "duration", + "title": "The maximum total processing duration.", + "default": 10, + "markdownDescription": "It's not an hard limit and is evaluated every second.\n It is taken into account after the snapshot if any.\n\nDefault value is : `10.000000000`" + }, + "metadata": { + "$dynamic": false, + "type": "string", + "enum": ["ADD_FIELD", "DROP"], + "title": "Specify how to handle metadata.", + "default": "ADD_FIELD", + "markdownDescription": " Possible settings are:\n- `ADD_FIELD`: Add metadata in a column named `metadata`.\n- `DROP`: Drop metadata.\n\nDefault value is : `ADD_FIELD`" + }, + "metadataFieldName": { + "$dynamic": false, + "type": "string", + "title": "The name of metadata field if metadata is `ADD_FIELD`.", + "default": "metadata", + "markdownDescription": "Default value is : `metadata`" + }, + "password": { + "$dynamic": true, + "type": "string", + "title": "Password on the remote server." + }, + "port": { + "$dynamic": true, + "type": "string", + "title": "Port of the remote server." + }, + "properties": { + "$dynamic": true, + "type": "object", + "title": "Additional configuration properties.", + "markdownDescription": "Any additional configuration properties that is valid for the current driver." + }, + "retry": { + "oneOf": [ + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Constant-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Exponential-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Random-2" + } + ] + }, + "snapshotMode": { + "$dynamic": false, + "type": "string", + "enum": ["INITIAL", "INITIAL_ONLY", "NO_DATA", "WHEN_NEEDED"], + "title": "Specifies the criteria for running a snapshot when the connector starts.", + "default": "INITIAL", + "markdownDescription": " Possible settings are:\n- `INITIAL`: The connector runs a snapshot only when no offsets have been recorded for the logical server name.\n- `INITIAL_ONLY`: The connector runs a snapshot only when no offsets have been recorded for the logical server name and then stops; i.e. it will not read change events from the binlog.\n- `NO_DATA`: The connector captures the structure of all relevant tables, performing all the steps described in the default snapshot workflow, except that it does not create READ events to represent the data set at the point of the connector’s start-up.\n- `WHEN_NEEDED`: The connector runs a snapshot upon startup whenever it deems it necessary. That is, when no offsets are available, or when a previously recorded offset specifies a binlog location or GTID that is not available in the server.\n\nDefault value is : `INITIAL`" + }, + "splitTable": { + "$dynamic": false, + "type": "string", + "enum": ["OFF", "DATABASE", "TABLE"], + "title": "Split table on separate output `uris`.", + "default": "TABLE", + "markdownDescription": " Possible settings are:\n- `TABLE`: This will split all rows by tables on output with name `database.table`\n- `DATABASE`: This will split all rows by databases on output with name `database`.\n- `OFF`: This will **NOT** split all rows resulting in a single `data` output.\n\nDefault value is : `TABLE`" + }, + "stateName": { + "$dynamic": false, + "type": "string", + "title": "The name of Debezium state file.", + "default": "debezium-state", + "markdownDescription": "Default value is : `debezium-state`" + }, + "timeout": { + "type": "string", + "format": "duration" + }, + "type": { + "const": "io.kestra.plugin.debezium.mongodb.Capture" + }, + "username": { + "$dynamic": true, + "type": "string", + "title": "Username on the remote server." + }, + "workerGroup": { + "$ref": "#/definitions/io.kestra.core.models.tasks.WorkerGroup" + } + }, + "required": ["connectionString", "hostname", "id", "port", "type"], + "title": "Wait for change data capture event on MongoDB server.", + "markdownDescription": "##### Examples\n\u003E Replica set connection\n```yaml\nsnapshotMode: INITIAL\nconnectionString: mongodb://mongo_user:mongo_passwd@mongodb0.example.com:27017/?replicaSet=rs0\nmaxRecords: 100\n```\n\n\u003E Sharded connection\n```yaml\nsnapshotMode: INITIAL\nconnectionString: mongodb://mongo_user:mongo_passwd@mongos0.example.com:27017,mongos1.example.com:27017/\nmaxRecords: 100\n```\n\n\u003E Replica set SRV connection\n```yaml\nsnapshotMode: INITIAL\nconnectionString: mongodb+srv://mongo_user:mongo_passwd@mongos0.example.com/?replicaSet=rs0\nmaxRecords: 100\n```\n\n\u003E Sharded SRV connection\n```yaml\nsnapshotMode: INITIAL\nconnectionString: mongodb+srv://mongo_user:mongo_passwd@mongos0.example.com/\nmaxRecords: 100\n```" + }, + "io.kestra.plugin.debezium.mongodb.RealtimeTrigger": { + "type": "object", + "properties": { + "conditions": { + "$dynamic": false, + "title": "List of conditions in order to limit the flow trigger.", + "type": "array", + "items": { + "oneOf": [ + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.DateTimeBetweenCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.DayWeekCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.DayWeekInMonthCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.ExecutionFlowCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.ExecutionLabelsCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.ExecutionNamespaceCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.ExecutionOutputsCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.ExecutionStatusCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.ExpressionCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.FlowCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.FlowNamespaceCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.HasRetryAttemptCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.MultipleCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.NotCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.OrCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.PublicHolidayCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.TimeBetweenCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.WeekendCondition" + }, + { + "$dynamic": false + } + ] + } + ] + } + }, + "connectionString": { + "$dynamic": true, + "type": "string", + "title": "Defines connection string to mongodb replica set or sharded" + }, + "deleted": { + "$dynamic": false, + "type": "string", + "enum": ["ADD_FIELD", "NULL", "DROP"], + "title": "Specify how to handle deleted rows.", + "default": "ADD_FIELD", + "markdownDescription": " Possible settings are:\n- `ADD_FIELD`: Add a deleted field as boolean.\n- `NULL`: Send a row with all values as null.\n- `DROP`: Don't send deleted row.\n\nDefault value is : `ADD_FIELD`" + }, + "deletedFieldName": { + "$dynamic": false, + "type": "string", + "title": "The name of deleted field if deleted is `ADD_FIELD`.", + "default": "deleted", + "markdownDescription": "Default value is : `deleted`" + }, + "description": { + "type": "string" + }, + "disabled": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "excludedCollections": { + "$dynamic": true, + "title": "The name of the MongoDB database collection excluded from which to stream the changes.", + "markdownDescription": "A list of regular expressions that match the collection namespaces (for example, \u003CdbName\u003E.\u003CcollectionName\u003E) of all collections to be excluded" + }, + "excludedColumns": { + "$dynamic": true, + "title": "An optional, comma-separated list of regular expressions that match the fully-qualified names of columns to include in change event record values.", + "markdownDescription": "Fully-qualified names for columns are of the form databaseName.tableName.columnName. Do not also specify the `includedColumns` connector configuration property.\"" + }, + "excludedDatabases": { + "$dynamic": true, + "title": "An optional, comma-separated list of regular expressions that match the names of databases for which you do not want to capture changes.", + "markdownDescription": "The connector captures changes in any database whose name is not in the `excludedDatabases`. Do not also set the `includedDatabases` connector configuration property." + }, + "excludedTables": { + "$dynamic": true, + "title": "An optional, comma-separated list of regular expressions that match fully-qualified table identifiers for tables whose changes you do not want to capture.", + "markdownDescription": "The connector captures changes in any table not included in `excludedTables`. Each identifier is of the form databaseName.tableName. Do not also specify the `includedTables` connector configuration property." + }, + "format": { + "$dynamic": false, + "type": "string", + "enum": ["RAW", "INLINE", "WRAP"], + "title": "The format of the output.", + "default": "INLINE", + "markdownDescription": " Possible settings are:\n- `RAW`: Send raw data from debezium.\n- `INLINE`: Send a row like in the source with only data (remove after & before), all the columns will be present for each row.\n- `WRAP`: Send a row like INLINE but wrapped in a `record` field.\n\n\nDefault value is : `INLINE`" + }, + "hostname": { + "$dynamic": true, + "type": "string", + "title": "Hostname of the remote server." + }, + "id": { + "type": "string", + "title": "A unique ID for the whole flow.", + "minLength": 1, + "pattern": "^[a-zA-Z0-9][a-zA-Z0-9_-]*" + }, + "ignoreDdl": { + "$dynamic": false, + "type": "boolean", + "title": "Ignore DDL statement.", + "default": true, + "markdownDescription": "Ignore CREATE, ALTER, DROP and TRUNCATE operations.\n\nDefault value is : `true`" + }, + "includedCollections": { + "$dynamic": true, + "title": "The name of the MongoDB database collection included from which to stream the changes.", + "markdownDescription": "A list of regular expressions that match the collection namespaces (for example, \u003CdbName\u003E.\u003CcollectionName\u003E) of all collections to be monitored" + }, + "includedColumns": { + "$dynamic": true, + "title": "An optional, comma-separated list of regular expressions that match the fully-qualified names of columns to exclude from change event record values.", + "markdownDescription": "Fully-qualified names for columns are of the form databaseName.tableName.columnName. Do not also specify the `excludedColumns` connector configuration property." + }, + "includedDatabases": { + "$dynamic": true, + "title": "An optional, comma-separated list of regular expressions that match the names of the databases for which to capture changes.", + "markdownDescription": "The connector does not capture changes in any database whose name is not in `includedDatabases`. By default, the connector captures changes in all databases. Do not also set the `excludedDatabases` connector configuration property." + }, + "includedTables": { + "$dynamic": true, + "title": "An optional, comma-separated list of regular expressions that match fully-qualified table identifiers of tables whose changes you want to capture.", + "markdownDescription": "The connector does not capture changes in any table not included in `includedTables`. Each identifier is of the form databaseName.tableName. By default, the connector captures changes in every non-system table in each database whose changes are being captured. Do not also specify the `excludedTables` connector configuration property." + }, + "key": { + "$dynamic": false, + "type": "string", + "enum": ["ADD_FIELD", "DROP"], + "title": "Specify how to handle key.", + "default": "ADD_FIELD", + "markdownDescription": " Possible settings are:\n- `ADD_FIELD`: Add key(s) merged with columns.\n- `DROP`: Drop keys.\n\nDefault value is : `ADD_FIELD`" + }, + "labels": { + "title": "The labels to pass to the execution created.", + "type": "array", + "items": { + "$ref": "#/definitions/io.kestra.core.models.Label" + } + }, + "logLevel": { + "type": "string", + "enum": ["ERROR", "WARN", "INFO", "DEBUG", "TRACE"] + }, + "metadata": { + "$dynamic": false, + "type": "string", + "enum": ["ADD_FIELD", "DROP"], + "title": "Specify how to handle metadata.", + "default": "ADD_FIELD", + "markdownDescription": " Possible settings are:\n- `ADD_FIELD`: Add metadata in a column named `metadata`.\n- `DROP`: Drop metadata.\n\nDefault value is : `ADD_FIELD`" + }, + "metadataFieldName": { + "$dynamic": false, + "type": "string", + "title": "The name of metadata field if metadata is `ADD_FIELD`.", + "default": "metadata", + "markdownDescription": "Default value is : `metadata`" + }, + "offsetsCommitMode": { + "$dynamic": false, + "type": "string", + "enum": ["ON_EACH_BATCH", "ON_STOP"], + "title": "How to commit the offsets to the state store.", + "default": "ON_EACH_BATCH", + "markdownDescription": "Possible values are:\n- ON_EACH_BATCH: after each batch of records consumed by this trigger, the offsets will be stored in the state store. This avoids any duplicated records being consumed but can be costly if a lot of events are produced.\n- ON_STOP: when this trigger is stopped or killed, the offsets will be stored in the state store. This avoid any un-necessary write to the state store, but if the trigger is not stopped gracefully the state store may not be updated leading to duplicated records consumption.\n\nDefault value is : `ON_EACH_BATCH`" + }, + "password": { + "$dynamic": true, + "type": "string", + "title": "Password on the remote server." + }, + "port": { + "$dynamic": true, + "type": "string", + "title": "Port of the remote server." + }, + "properties": { + "$dynamic": true, + "type": "object", + "title": "Additional configuration properties.", + "markdownDescription": "Any additional configuration properties that is valid for the current driver." + }, + "snapshotMode": { + "$dynamic": false, + "type": "string", + "enum": ["INITIAL", "INITIAL_ONLY", "NO_DATA", "WHEN_NEEDED"], + "title": "Specifies the criteria for running a snapshot when the connector starts.", + "default": "INITIAL", + "markdownDescription": " Possible settings are:\n- `INITIAL`: The connector runs a snapshot only when no offsets have been recorded for the logical server name.\n- `INITIAL_ONLY`: The connector runs a snapshot only when no offsets have been recorded for the logical server name and then stops; i.e. it will not read change events from the binlog.\n- `NO_DATA`: The connector captures the structure of all relevant tables, performing all the steps described in the default snapshot workflow, except that it does not create READ events to represent the data set at the point of the connector’s start-up.\n- `WHEN_NEEDED`: The connector runs a snapshot upon startup whenever it deems it necessary. That is, when no offsets are available, or when a previously recorded offset specifies a binlog location or GTID that is not available in the server.\n\nDefault value is : `INITIAL`" + }, + "splitTable": { + "$dynamic": false, + "type": "string", + "enum": ["OFF", "DATABASE", "TABLE"], + "title": "Split table on separate output `uris`.", + "default": "TABLE", + "markdownDescription": " Possible settings are:\n- `TABLE`: This will split all rows by tables on output with name `database.table`\n- `DATABASE`: This will split all rows by databases on output with name `database`.\n- `OFF`: This will **NOT** split all rows resulting in a single `data` output.\n\nDefault value is : `TABLE`" + }, + "stateName": { + "$dynamic": false, + "type": "string", + "title": "The name of Debezium state file.", + "default": "debezium-state", + "markdownDescription": "Default value is : `debezium-state`" + }, + "stopAfter": { + "$dynamic": false, + "title": "List of execution states after which a trigger should be stopped (a.k.a. disabled).", + "type": "array", + "items": { + "$dynamic": false, + "type": "string", + "enum": [ + "CREATED", + "RUNNING", + "PAUSED", + "RESTARTED", + "KILLING", + "SUCCESS", + "WARNING", + "FAILED", + "KILLED", + "CANCELLED", + "QUEUED", + "RETRYING", + "RETRIED" + ] + } + }, + "type": { + "const": "io.kestra.plugin.debezium.mongodb.RealtimeTrigger" + }, + "username": { + "$dynamic": true, + "type": "string", + "title": "Username on the remote server." + }, + "workerGroup": { + "$ref": "#/definitions/io.kestra.core.models.tasks.WorkerGroup" + } + }, + "required": ["connectionString", "hostname", "id", "port", "type"], + "title": "Consume a message in real-time from a MongoDB database via change data capture and create one execution per row.", + "markdownDescription": "If you would like to consume multiple messages processed within a given time frame and process them in batch, you can use the [io.kestra.plugin.debezium.mongodb.Trigger](https://kestra.io/plugins/plugin-debezium/triggers/io.kestra.plugin.debezium.mongodb.trigger) instead.##### Examples\n\u003E Sharded connection\n```yaml\nid: debezium-mongodb\nnamespace: company.team\n\ntasks:\n - id: send_data\n type: io.kestra.plugin.core.log.Log\n message: \"{{ trigger.data }}\"\n\ntriggers:\n - id: realtime\n type: io.kestra.plugin.debezium.mongodb.RealtimeTrigger\n snapshotMode: INITIAL\n connectionString: mongodb://mongo_user:mongo_passwd@mongos0.example.com:27017,mongos1.example.com:27017/\n\n```\n\n\u003E Replica set connection\n```yaml\nid: debezium-mongodb\nnamespace: company.team\n\ntasks:\n - id: send_data\n type: io.kestra.plugin.core.log.Log\n message: \"{{ trigger.data }}\"\n\ntriggers:\n - id: realtime\n type: io.kestra.plugin.debezium.mongodb.RealtimeTrigger\n snapshotMode: INITIAL\n connectionString: mongodb://mongo_user:mongo_passwd@mongodb0.example.com:27017/?replicaSet=rs0\n\n```" + }, + "io.kestra.plugin.debezium.mongodb.Trigger": { + "type": "object", + "properties": { + "conditions": { + "$dynamic": false, + "title": "List of conditions in order to limit the flow trigger.", + "type": "array", + "items": { + "oneOf": [ + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.DateTimeBetweenCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.DayWeekCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.DayWeekInMonthCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.ExecutionFlowCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.ExecutionLabelsCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.ExecutionNamespaceCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.ExecutionOutputsCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.ExecutionStatusCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.ExpressionCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.FlowCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.FlowNamespaceCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.HasRetryAttemptCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.MultipleCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.NotCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.OrCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.PublicHolidayCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.TimeBetweenCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.WeekendCondition" + }, + { + "$dynamic": false + } + ] + } + ] + } + }, + "connectionString": { + "$dynamic": true, + "type": "string", + "title": "Defines connection string to mongodb replica set or sharded" + }, + "deleted": { + "$dynamic": false, + "type": "string", + "enum": ["ADD_FIELD", "NULL", "DROP"], + "title": "Specify how to handle deleted rows.", + "default": "ADD_FIELD", + "markdownDescription": " Possible settings are:\n- `ADD_FIELD`: Add a deleted field as boolean.\n- `NULL`: Send a row with all values as null.\n- `DROP`: Don't send deleted row.\n\nDefault value is : `ADD_FIELD`" + }, + "deletedFieldName": { + "$dynamic": false, + "type": "string", + "title": "The name of deleted field if deleted is `ADD_FIELD`.", + "default": "deleted", + "markdownDescription": "Default value is : `deleted`" + }, + "description": { + "type": "string" + }, + "disabled": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "excludedCollections": { + "$dynamic": true, + "title": "The name of the MongoDB database collection excluded from which to stream the changes.", + "markdownDescription": "A list of regular expressions that match the collection namespaces (for example, \u003CdbName\u003E.\u003CcollectionName\u003E) of all collections to be excluded" + }, + "excludedColumns": { + "$dynamic": true, + "title": "An optional, comma-separated list of regular expressions that match the fully-qualified names of columns to include in change event record values.", + "markdownDescription": "Fully-qualified names for columns are of the form databaseName.tableName.columnName. Do not also specify the `includedColumns` connector configuration property.\"" + }, + "excludedDatabases": { + "$dynamic": true, + "title": "An optional, comma-separated list of regular expressions that match the names of databases for which you do not want to capture changes.", + "markdownDescription": "The connector captures changes in any database whose name is not in the `excludedDatabases`. Do not also set the `includedDatabases` connector configuration property." + }, + "excludedTables": { + "$dynamic": true, + "title": "An optional, comma-separated list of regular expressions that match fully-qualified table identifiers for tables whose changes you do not want to capture.", + "markdownDescription": "The connector captures changes in any table not included in `excludedTables`. Each identifier is of the form databaseName.tableName. Do not also specify the `includedTables` connector configuration property." + }, + "format": { + "$dynamic": false, + "type": "string", + "enum": ["RAW", "INLINE", "WRAP"], + "title": "The format of the output.", + "default": "INLINE", + "markdownDescription": " Possible settings are:\n- `RAW`: Send raw data from debezium.\n- `INLINE`: Send a row like in the source with only data (remove after & before), all the columns will be present for each row.\n- `WRAP`: Send a row like INLINE but wrapped in a `record` field.\n\n\nDefault value is : `INLINE`" + }, + "hostname": { + "$dynamic": true, + "type": "string", + "title": "Hostname of the remote server." + }, + "id": { + "type": "string", + "title": "A unique ID for the whole flow.", + "minLength": 1, + "pattern": "^[a-zA-Z0-9][a-zA-Z0-9_-]*" + }, + "ignoreDdl": { + "$dynamic": false, + "type": "boolean", + "title": "Ignore DDL statement.", + "default": true, + "markdownDescription": "Ignore CREATE, ALTER, DROP and TRUNCATE operations.\n\nDefault value is : `true`" + }, + "includedCollections": { + "$dynamic": true, + "title": "The name of the MongoDB database collection included from which to stream the changes.", + "markdownDescription": "A list of regular expressions that match the collection namespaces (for example, \u003CdbName\u003E.\u003CcollectionName\u003E) of all collections to be monitored" + }, + "includedColumns": { + "$dynamic": true, + "title": "An optional, comma-separated list of regular expressions that match the fully-qualified names of columns to exclude from change event record values.", + "markdownDescription": "Fully-qualified names for columns are of the form databaseName.tableName.columnName. Do not also specify the `excludedColumns` connector configuration property." + }, + "includedDatabases": { + "$dynamic": true, + "title": "An optional, comma-separated list of regular expressions that match the names of the databases for which to capture changes.", + "markdownDescription": "The connector does not capture changes in any database whose name is not in `includedDatabases`. By default, the connector captures changes in all databases. Do not also set the `excludedDatabases` connector configuration property." + }, + "includedTables": { + "$dynamic": true, + "title": "An optional, comma-separated list of regular expressions that match fully-qualified table identifiers of tables whose changes you want to capture.", + "markdownDescription": "The connector does not capture changes in any table not included in `includedTables`. Each identifier is of the form databaseName.tableName. By default, the connector captures changes in every non-system table in each database whose changes are being captured. Do not also specify the `excludedTables` connector configuration property." + }, + "interval": { + "$dynamic": false, + "type": "string", + "format": "duration", + "title": "Interval between polling.", + "default": 60, + "markdownDescription": "The interval between 2 different polls of schedule, this can avoid to overload the remote system with too many calls. For most of the triggers that depend on external systems, a minimal interval must be at least PT30S.\nSee [ISO_8601 Durations](https://en.wikipedia.org/wiki/ISO_8601#Durations) for more information of available interval values.\n\nDefault value is : `60.000000000`" + }, + "key": { + "$dynamic": false, + "type": "string", + "enum": ["ADD_FIELD", "DROP"], + "title": "Specify how to handle key.", + "default": "ADD_FIELD", + "markdownDescription": " Possible settings are:\n- `ADD_FIELD`: Add key(s) merged with columns.\n- `DROP`: Drop keys.\n\nDefault value is : `ADD_FIELD`" + }, + "labels": { + "title": "The labels to pass to the execution created.", + "type": "array", + "items": { + "$ref": "#/definitions/io.kestra.core.models.Label" + } + }, + "logLevel": { + "type": "string", + "enum": ["ERROR", "WARN", "INFO", "DEBUG", "TRACE"] + }, + "maxDuration": { + "type": "string", + "format": "duration" + }, + "maxRecords": { + "type": "integer" + }, + "maxWait": { + "type": "string", + "format": "duration", + "default": 10, + "markdownDescription": "Default value is : `10.000000000`" + }, + "metadata": { + "$dynamic": false, + "type": "string", + "enum": ["ADD_FIELD", "DROP"], + "title": "Specify how to handle metadata.", + "default": "ADD_FIELD", + "markdownDescription": " Possible settings are:\n- `ADD_FIELD`: Add metadata in a column named `metadata`.\n- `DROP`: Drop metadata.\n\nDefault value is : `ADD_FIELD`" + }, + "metadataFieldName": { + "$dynamic": false, + "type": "string", + "title": "The name of metadata field if metadata is `ADD_FIELD`.", + "default": "metadata", + "markdownDescription": "Default value is : `metadata`" + }, + "password": { + "$dynamic": true, + "type": "string", + "title": "Password on the remote server." + }, + "port": { + "$dynamic": true, + "type": "string", + "title": "Port of the remote server." + }, + "properties": { + "$dynamic": true, + "type": "object", + "title": "Additional configuration properties.", + "markdownDescription": "Any additional configuration properties that is valid for the current driver." + }, + "snapshotMode": { + "$dynamic": false, + "type": "string", + "enum": ["INITIAL", "INITIAL_ONLY", "NO_DATA", "WHEN_NEEDED"], + "title": "Specifies the criteria for running a snapshot when the connector starts.", + "default": "INITIAL", + "markdownDescription": " Possible settings are:\n- `INITIAL`: The connector runs a snapshot only when no offsets have been recorded for the logical server name.\n- `INITIAL_ONLY`: The connector runs a snapshot only when no offsets have been recorded for the logical server name and then stops; i.e. it will not read change events from the binlog.\n- `NO_DATA`: The connector captures the structure of all relevant tables, performing all the steps described in the default snapshot workflow, except that it does not create READ events to represent the data set at the point of the connector’s start-up.\n- `WHEN_NEEDED`: The connector runs a snapshot upon startup whenever it deems it necessary. That is, when no offsets are available, or when a previously recorded offset specifies a binlog location or GTID that is not available in the server.\n\nDefault value is : `INITIAL`" + }, + "splitTable": { + "$dynamic": false, + "type": "string", + "enum": ["OFF", "DATABASE", "TABLE"], + "title": "Split table on separate output `uris`.", + "default": "TABLE", + "markdownDescription": " Possible settings are:\n- `TABLE`: This will split all rows by tables on output with name `database.table`\n- `DATABASE`: This will split all rows by databases on output with name `database`.\n- `OFF`: This will **NOT** split all rows resulting in a single `data` output.\n\nDefault value is : `TABLE`" + }, + "stateName": { + "$dynamic": false, + "type": "string", + "title": "The name of Debezium state file.", + "default": "debezium-state", + "markdownDescription": "Default value is : `debezium-state`" + }, + "stopAfter": { + "$dynamic": false, + "title": "List of execution states after which a trigger should be stopped (a.k.a. disabled).", + "type": "array", + "items": { + "$dynamic": false, + "type": "string", + "enum": [ + "CREATED", + "RUNNING", + "PAUSED", + "RESTARTED", + "KILLING", + "SUCCESS", + "WARNING", + "FAILED", + "KILLED", + "CANCELLED", + "QUEUED", + "RETRYING", + "RETRIED" + ] + } + }, + "type": { + "const": "io.kestra.plugin.debezium.mongodb.Trigger" + }, + "username": { + "$dynamic": true, + "type": "string", + "title": "Username on the remote server." + }, + "workerGroup": { + "$ref": "#/definitions/io.kestra.core.models.tasks.WorkerGroup" + } + }, + "required": ["connectionString", "hostname", "id", "port", "type"], + "title": "Wait for change data capture event on MongoDB server and create new execution.", + "markdownDescription": "If you would like to consume each message from change data capture in real-time and create one execution per message, you can use the [io.kestra.plugin.debezium.mongodb.RealtimeTrigger](https://kestra.io/plugins/plugin-debezium/triggers/io.kestra.plugin.debezium.mongodb.realtimetrigger) instead.##### Examples\n\u003E Sharded connection\n```yaml\nid: debezium-mongodb\nnamespace: company.team\n\ntasks:\n - id: send_data\n type: io.kestra.plugin.core.log.Log\n message: \"{{ trigger.data }}\"\n\ntriggers:\n - id: trigger\n type: io.kestra.plugin.debezium.mongodb.Trigger\n snapshotMode: INITIAL\n connectionString: mongodb://mongo_user:mongo_passwd@mongos0.example.com:27017,mongos1.example.com:27017/\n\n```\n\n\u003E Replica set connection\n```yaml\nid: debezium-mongodb\nnamespace: company.team\n\ntasks:\n - id: send_data\n type: io.kestra.plugin.core.log.Log\n message: \"{{ trigger.data }}\"\n\ntriggers:\n - id: trigger\n type: io.kestra.plugin.debezium.mongodb.Trigger\n snapshotMode: INITIAL\n connectionString: mongodb://mongo_user:mongo_passwd@mongodb0.example.com:27017/?replicaSet=rs0\n\n```" + }, + "io.kestra.plugin.debezium.mysql.Capture": { + "type": "object", + "properties": { + "allowFailure": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "deleted": { + "$dynamic": false, + "type": "string", + "enum": ["ADD_FIELD", "NULL", "DROP"], + "title": "Specify how to handle deleted rows.", + "default": "ADD_FIELD", + "markdownDescription": " Possible settings are:\n- `ADD_FIELD`: Add a deleted field as boolean.\n- `NULL`: Send a row with all values as null.\n- `DROP`: Don't send deleted row.\n\nDefault value is : `ADD_FIELD`" + }, + "deletedFieldName": { + "$dynamic": false, + "type": "string", + "title": "The name of deleted field if deleted is `ADD_FIELD`.", + "default": "deleted", + "markdownDescription": "Default value is : `deleted`" + }, + "description": { + "type": "string" + }, + "disabled": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "excludedColumns": { + "$dynamic": true, + "title": "An optional, comma-separated list of regular expressions that match the fully-qualified names of columns to include in change event record values.", + "markdownDescription": "Fully-qualified names for columns are of the form databaseName.tableName.columnName. Do not also specify the `includedColumns` connector configuration property.\"" + }, + "excludedDatabases": { + "$dynamic": true, + "title": "An optional, comma-separated list of regular expressions that match the names of databases for which you do not want to capture changes.", + "markdownDescription": "The connector captures changes in any database whose name is not in the `excludedDatabases`. Do not also set the `includedDatabases` connector configuration property." + }, + "excludedTables": { + "$dynamic": true, + "title": "An optional, comma-separated list of regular expressions that match fully-qualified table identifiers for tables whose changes you do not want to capture.", + "markdownDescription": "The connector captures changes in any table not included in `excludedTables`. Each identifier is of the form databaseName.tableName. Do not also specify the `includedTables` connector configuration property." + }, + "format": { + "$dynamic": false, + "type": "string", + "enum": ["RAW", "INLINE", "WRAP"], + "title": "The format of the output.", + "default": "INLINE", + "markdownDescription": " Possible settings are:\n- `RAW`: Send raw data from debezium.\n- `INLINE`: Send a row like in the source with only data (remove after & before), all the columns will be present for each row.\n- `WRAP`: Send a row like INLINE but wrapped in a `record` field.\n\n\nDefault value is : `INLINE`" + }, + "hostname": { + "$dynamic": true, + "type": "string", + "title": "Hostname of the remote server." + }, + "id": { + "type": "string", + "minLength": 1, + "pattern": "^[a-zA-Z0-9][a-zA-Z0-9_-]*" + }, + "ignoreDdl": { + "$dynamic": false, + "type": "boolean", + "title": "Ignore DDL statement.", + "default": true, + "markdownDescription": "Ignore CREATE, ALTER, DROP and TRUNCATE operations.\n\nDefault value is : `true`" + }, + "includedColumns": { + "$dynamic": true, + "title": "An optional, comma-separated list of regular expressions that match the fully-qualified names of columns to exclude from change event record values.", + "markdownDescription": "Fully-qualified names for columns are of the form databaseName.tableName.columnName. Do not also specify the `excludedColumns` connector configuration property." + }, + "includedDatabases": { + "$dynamic": true, + "title": "An optional, comma-separated list of regular expressions that match the names of the databases for which to capture changes.", + "markdownDescription": "The connector does not capture changes in any database whose name is not in `includedDatabases`. By default, the connector captures changes in all databases. Do not also set the `excludedDatabases` connector configuration property." + }, + "includedTables": { + "$dynamic": true, + "title": "An optional, comma-separated list of regular expressions that match fully-qualified table identifiers of tables whose changes you want to capture.", + "markdownDescription": "The connector does not capture changes in any table not included in `includedTables`. Each identifier is of the form databaseName.tableName. By default, the connector captures changes in every non-system table in each database whose changes are being captured. Do not also specify the `excludedTables` connector configuration property." + }, + "key": { + "$dynamic": false, + "type": "string", + "enum": ["ADD_FIELD", "DROP"], + "title": "Specify how to handle key.", + "default": "ADD_FIELD", + "markdownDescription": " Possible settings are:\n- `ADD_FIELD`: Add key(s) merged with columns.\n- `DROP`: Drop keys.\n\nDefault value is : `ADD_FIELD`" + }, + "logLevel": { + "type": "string", + "enum": ["ERROR", "WARN", "INFO", "DEBUG", "TRACE"] + }, + "maxDuration": { + "$dynamic": false, + "type": "string", + "format": "duration", + "title": "The maximum duration waiting for new rows.", + "markdownDescription": "It's not an hard limit and is evaluated every second.\n It is taken into account after the snapshot if any." + }, + "maxRecords": { + "$dynamic": false, + "type": "integer", + "title": "The maximum number of rows to fetch before stopping.", + "markdownDescription": "It's not an hard limit and is evaluated every second." + }, + "maxSnapshotDuration": { + "$dynamic": false, + "type": "string", + "format": "duration", + "title": "The maximum duration waiting for the snapshot to ends.", + "default": 3600, + "markdownDescription": "It's not an hard limit and is evaluated every second.\n The properties 'maxRecord', 'maxDuration' and 'maxWait' are evaluated only after the snapshot is done.\n\nDefault value is : `3600.000000000`" + }, + "maxWait": { + "$dynamic": false, + "type": "string", + "format": "duration", + "title": "The maximum total processing duration.", + "default": 10, + "markdownDescription": "It's not an hard limit and is evaluated every second.\n It is taken into account after the snapshot if any.\n\nDefault value is : `10.000000000`" + }, + "metadata": { + "$dynamic": false, + "type": "string", + "enum": ["ADD_FIELD", "DROP"], + "title": "Specify how to handle metadata.", + "default": "ADD_FIELD", + "markdownDescription": " Possible settings are:\n- `ADD_FIELD`: Add metadata in a column named `metadata`.\n- `DROP`: Drop metadata.\n\nDefault value is : `ADD_FIELD`" + }, + "metadataFieldName": { + "$dynamic": false, + "type": "string", + "title": "The name of metadata field if metadata is `ADD_FIELD`.", + "default": "metadata", + "markdownDescription": "Default value is : `metadata`" + }, + "password": { + "$dynamic": true, + "type": "string", + "title": "Password on the remote server." + }, + "port": { + "$dynamic": true, + "type": "string", + "title": "Port of the remote server." + }, + "properties": { + "$dynamic": true, + "type": "object", + "title": "Additional configuration properties.", + "markdownDescription": "Any additional configuration properties that is valid for the current driver." + }, + "retry": { + "oneOf": [ + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Constant-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Exponential-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Random-2" + } + ] + }, + "serverId": { + "$dynamic": true, + "type": "string", + "title": "A numeric ID of this database client.", + "markdownDescription": "This must be unique across all currently-running database processes in the MySQL cluster. This connector joins the MySQL database cluster as another server (with this unique ID) so it can read the binlog. By default, a random number between 5400 and 6400 is generated, though the recommendation is to explicitly set a value." + }, + "snapshotMode": { + "$dynamic": false, + "type": "string", + "enum": [ + "INITIAL", + "INITIAL_ONLY", + "WHEN_NEEDED", + "NEVER", + "SCHEMA_ONLY", + "SCHEMA_ONLY_RECOVERY" + ], + "title": "Specifies the criteria for running a snapshot when the connector starts.", + "default": "INITIAL", + "markdownDescription": " Possible settings are:\n- `INITIAL`: The connector runs a snapshot only when no offsets have been recorded for the logical server name.\n- `INITIAL_ONLY`: The connector runs a snapshot only when no offsets have been recorded for the logical server name and then stops; i.e. it will not read change events from the binlog.\n- `WHEN_NEEDED`: The connector runs a snapshot upon startup whenever it deems it necessary. That is, when no offsets are available, or when a previously recorded offset specifies a binlog location or GTID that is not available in the server.\n- `NEVER`: The connector never uses snapshots. Upon first startup with a logical server name, the connector reads from the beginning of the binlog. Configure this behavior with care. It is valid only when the binlog is guaranteed to contain the entire history of the database.\n- `SCHEMA_ONLY`: The connector runs a snapshot of the schemas and not the data. This setting is useful when you do not need the topics to contain a consistent snapshot of the data but need them to have only the changes since the connector was started.\n- `SCHEMA_ONLY_RECOVERY`: This is a recovery setting for a connector that has already been capturing changes. When you restart the connector, this setting enables recovery of a corrupted or lost database history topic. You might set it periodically to \"clean up\" a database history topic that has been growing unexpectedly. Database history topics require infinite retention.\n\nDefault value is : `INITIAL`" + }, + "splitTable": { + "$dynamic": false, + "type": "string", + "enum": ["OFF", "DATABASE", "TABLE"], + "title": "Split table on separate output `uris`.", + "default": "TABLE", + "markdownDescription": " Possible settings are:\n- `TABLE`: This will split all rows by tables on output with name `database.table`\n- `DATABASE`: This will split all rows by databases on output with name `database`.\n- `OFF`: This will **NOT** split all rows resulting in a single `data` output.\n\nDefault value is : `TABLE`" + }, + "stateName": { + "$dynamic": false, + "type": "string", + "title": "The name of Debezium state file.", + "default": "debezium-state", + "markdownDescription": "Default value is : `debezium-state`" + }, + "timeout": { + "type": "string", + "format": "duration" + }, + "type": { + "const": "io.kestra.plugin.debezium.mysql.Capture" + }, + "username": { + "$dynamic": true, + "type": "string", + "title": "Username on the remote server." + }, + "workerGroup": { + "$ref": "#/definitions/io.kestra.core.models.tasks.WorkerGroup" + } + }, + "required": ["hostname", "id", "port", "serverId", "type"], + "title": "Wait for change data capture event on MySQL server.", + "markdownDescription": "##### Examples\n\u003E \n```yaml\nsnapshotMode: NEVER\nhostname: 127.0.0.1\nport: \"3306\"\nusername: mysql_user\npassword: mysql_passwd\nmaxRecords: 100\n```" + }, + "io.kestra.plugin.debezium.mysql.RealtimeTrigger": { + "type": "object", + "properties": { + "conditions": { + "$dynamic": false, + "title": "List of conditions in order to limit the flow trigger.", + "type": "array", + "items": { + "oneOf": [ + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.DateTimeBetweenCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.DayWeekCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.DayWeekInMonthCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.ExecutionFlowCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.ExecutionLabelsCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.ExecutionNamespaceCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.ExecutionOutputsCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.ExecutionStatusCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.ExpressionCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.FlowCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.FlowNamespaceCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.HasRetryAttemptCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.MultipleCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.NotCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.OrCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.PublicHolidayCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.TimeBetweenCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.WeekendCondition" + }, + { + "$dynamic": false + } + ] + } + ] + } + }, + "deleted": { + "$dynamic": false, + "type": "string", + "enum": ["ADD_FIELD", "NULL", "DROP"], + "title": "Specify how to handle deleted rows.", + "default": "ADD_FIELD", + "markdownDescription": " Possible settings are:\n- `ADD_FIELD`: Add a deleted field as boolean.\n- `NULL`: Send a row with all values as null.\n- `DROP`: Don't send deleted row.\n\nDefault value is : `ADD_FIELD`" + }, + "deletedFieldName": { + "$dynamic": false, + "type": "string", + "title": "The name of deleted field if deleted is `ADD_FIELD`.", + "default": "deleted", + "markdownDescription": "Default value is : `deleted`" + }, + "description": { + "type": "string" + }, + "disabled": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "excludedColumns": { + "$dynamic": true, + "title": "An optional, comma-separated list of regular expressions that match the fully-qualified names of columns to include in change event record values.", + "markdownDescription": "Fully-qualified names for columns are of the form databaseName.tableName.columnName. Do not also specify the `includedColumns` connector configuration property.\"" + }, + "excludedDatabases": { + "$dynamic": true, + "title": "An optional, comma-separated list of regular expressions that match the names of databases for which you do not want to capture changes.", + "markdownDescription": "The connector captures changes in any database whose name is not in the `excludedDatabases`. Do not also set the `includedDatabases` connector configuration property." + }, + "excludedTables": { + "$dynamic": true, + "title": "An optional, comma-separated list of regular expressions that match fully-qualified table identifiers for tables whose changes you do not want to capture.", + "markdownDescription": "The connector captures changes in any table not included in `excludedTables`. Each identifier is of the form databaseName.tableName. Do not also specify the `includedTables` connector configuration property." + }, + "format": { + "$dynamic": false, + "type": "string", + "enum": ["RAW", "INLINE", "WRAP"], + "title": "The format of the output.", + "default": "INLINE", + "markdownDescription": " Possible settings are:\n- `RAW`: Send raw data from debezium.\n- `INLINE`: Send a row like in the source with only data (remove after & before), all the columns will be present for each row.\n- `WRAP`: Send a row like INLINE but wrapped in a `record` field.\n\n\nDefault value is : `INLINE`" + }, + "hostname": { + "$dynamic": true, + "type": "string", + "title": "Hostname of the remote server." + }, + "id": { + "type": "string", + "title": "A unique ID for the whole flow.", + "minLength": 1, + "pattern": "^[a-zA-Z0-9][a-zA-Z0-9_-]*" + }, + "ignoreDdl": { + "$dynamic": false, + "type": "boolean", + "title": "Ignore DDL statement.", + "default": true, + "markdownDescription": "Ignore CREATE, ALTER, DROP and TRUNCATE operations.\n\nDefault value is : `true`" + }, + "includedColumns": { + "$dynamic": true, + "title": "An optional, comma-separated list of regular expressions that match the fully-qualified names of columns to exclude from change event record values.", + "markdownDescription": "Fully-qualified names for columns are of the form databaseName.tableName.columnName. Do not also specify the `excludedColumns` connector configuration property." + }, + "includedDatabases": { + "$dynamic": true, + "title": "An optional, comma-separated list of regular expressions that match the names of the databases for which to capture changes.", + "markdownDescription": "The connector does not capture changes in any database whose name is not in `includedDatabases`. By default, the connector captures changes in all databases. Do not also set the `excludedDatabases` connector configuration property." + }, + "includedTables": { + "$dynamic": true, + "title": "An optional, comma-separated list of regular expressions that match fully-qualified table identifiers of tables whose changes you want to capture.", + "markdownDescription": "The connector does not capture changes in any table not included in `includedTables`. Each identifier is of the form databaseName.tableName. By default, the connector captures changes in every non-system table in each database whose changes are being captured. Do not also specify the `excludedTables` connector configuration property." + }, + "key": { + "$dynamic": false, + "type": "string", + "enum": ["ADD_FIELD", "DROP"], + "title": "Specify how to handle key.", + "default": "ADD_FIELD", + "markdownDescription": " Possible settings are:\n- `ADD_FIELD`: Add key(s) merged with columns.\n- `DROP`: Drop keys.\n\nDefault value is : `ADD_FIELD`" + }, + "labels": { + "title": "The labels to pass to the execution created.", + "type": "array", + "items": { + "$ref": "#/definitions/io.kestra.core.models.Label" + } + }, + "logLevel": { + "type": "string", + "enum": ["ERROR", "WARN", "INFO", "DEBUG", "TRACE"] + }, + "metadata": { + "$dynamic": false, + "type": "string", + "enum": ["ADD_FIELD", "DROP"], + "title": "Specify how to handle metadata.", + "default": "ADD_FIELD", + "markdownDescription": " Possible settings are:\n- `ADD_FIELD`: Add metadata in a column named `metadata`.\n- `DROP`: Drop metadata.\n\nDefault value is : `ADD_FIELD`" + }, + "metadataFieldName": { + "$dynamic": false, + "type": "string", + "title": "The name of metadata field if metadata is `ADD_FIELD`.", + "default": "metadata", + "markdownDescription": "Default value is : `metadata`" + }, + "offsetsCommitMode": { + "$dynamic": false, + "type": "string", + "enum": ["ON_EACH_BATCH", "ON_STOP"], + "title": "How to commit the offsets to the state store.", + "default": "ON_EACH_BATCH", + "markdownDescription": "Possible values are:\n- ON_EACH_BATCH: after each batch of records consumed by this trigger, the offsets will be stored in the state store. This avoids any duplicated records being consumed but can be costly if a lot of events are produced.\n- ON_STOP: when this trigger is stopped or killed, the offsets will be stored in the state store. This avoid any un-necessary write to the state store, but if the trigger is not stopped gracefully the state store may not be updated leading to duplicated records consumption.\n\nDefault value is : `ON_EACH_BATCH`" + }, + "password": { + "$dynamic": true, + "type": "string", + "title": "Password on the remote server." + }, + "port": { + "$dynamic": true, + "type": "string", + "title": "Port of the remote server." + }, + "properties": { + "$dynamic": true, + "type": "object", + "title": "Additional configuration properties.", + "markdownDescription": "Any additional configuration properties that is valid for the current driver." + }, + "serverId": { + "$dynamic": true, + "type": "string", + "title": "A numeric ID of this database client.", + "markdownDescription": "This must be unique across all currently-running database processes in the MySQL cluster. This connector joins the MySQL database cluster as another server (with this unique ID) so it can read the binlog. By default, a random number between 5400 and 6400 is generated, though the recommendation is to explicitly set a value." + }, + "snapshotMode": { + "$dynamic": false, + "type": "string", + "enum": [ + "INITIAL", + "INITIAL_ONLY", + "WHEN_NEEDED", + "NEVER", + "SCHEMA_ONLY", + "SCHEMA_ONLY_RECOVERY" + ], + "title": "Specifies the criteria for running a snapshot when the connector starts.", + "default": "INITIAL", + "markdownDescription": " Possible settings are:\n- `INITIAL`: The connector runs a snapshot only when no offsets have been recorded for the logical server name.\n- `INITIAL_ONLY`: The connector runs a snapshot only when no offsets have been recorded for the logical server name and then stops; i.e. it will not read change events from the binlog.\n- `WHEN_NEEDED`: The connector runs a snapshot upon startup whenever it deems it necessary. That is, when no offsets are available, or when a previously recorded offset specifies a binlog location or GTID that is not available in the server.\n- `NEVER`: The connector never uses snapshots. Upon first startup with a logical server name, the connector reads from the beginning of the binlog. Configure this behavior with care. It is valid only when the binlog is guaranteed to contain the entire history of the database.\n- `SCHEMA_ONLY`: The connector runs a snapshot of the schemas and not the data. This setting is useful when you do not need the topics to contain a consistent snapshot of the data but need them to have only the changes since the connector was started.\n- `SCHEMA_ONLY_RECOVERY`: This is a recovery setting for a connector that has already been capturing changes. When you restart the connector, this setting enables recovery of a corrupted or lost database history topic. You might set it periodically to \"clean up\" a database history topic that has been growing unexpectedly. Database history topics require infinite retention.\n\nDefault value is : `INITIAL`" + }, + "splitTable": { + "$dynamic": false, + "type": "string", + "enum": ["OFF", "DATABASE", "TABLE"], + "title": "Split table on separate output `uris`.", + "default": "TABLE", + "markdownDescription": " Possible settings are:\n- `TABLE`: This will split all rows by tables on output with name `database.table`\n- `DATABASE`: This will split all rows by databases on output with name `database`.\n- `OFF`: This will **NOT** split all rows resulting in a single `data` output.\n\nDefault value is : `TABLE`" + }, + "stateName": { + "$dynamic": false, + "type": "string", + "title": "The name of Debezium state file.", + "default": "debezium-state", + "markdownDescription": "Default value is : `debezium-state`" + }, + "stopAfter": { + "$dynamic": false, + "title": "List of execution states after which a trigger should be stopped (a.k.a. disabled).", + "type": "array", + "items": { + "$dynamic": false, + "type": "string", + "enum": [ + "CREATED", + "RUNNING", + "PAUSED", + "RESTARTED", + "KILLING", + "SUCCESS", + "WARNING", + "FAILED", + "KILLED", + "CANCELLED", + "QUEUED", + "RETRYING", + "RETRIED" + ] + } + }, + "type": { + "const": "io.kestra.plugin.debezium.mysql.RealtimeTrigger" + }, + "username": { + "$dynamic": true, + "type": "string", + "title": "Username on the remote server." + }, + "workerGroup": { + "$ref": "#/definitions/io.kestra.core.models.tasks.WorkerGroup" + } + }, + "required": ["hostname", "id", "port", "type"], + "title": "Consume a message in real-time from a MySQL database via change data capture and create one execution per row.", + "markdownDescription": "If you would like to consume multiple messages processed within a given time frame and process them in batch, you can use the [io.kestra.plugin.debezium.mysql.Trigger](https://kestra.io/plugins/plugin-debezium/triggers/io.kestra.plugin.debezium.mysql.trigger) instead.##### Examples\n\u003E Consume a message from a MySQL database via change data capture in real-time.\n```yaml\nid: debezium-mysql\nnamespace: company.team\n\ntasks:\n - id: send_data\n type: io.kestra.plugin.core.log.Log\n message: \"{{ trigger.data }}\"\n\ntriggers:\n - id: realtime\n type: io.kestra.plugin.debezium.mysql.RealtimeTrigger\n serverId: 123456789\n hostname: 127.0.0.1\n port: 63306\n username: mysql_user\n password: mysql_passwd\n```" + }, + "io.kestra.plugin.debezium.mysql.Trigger": { + "type": "object", + "properties": { + "conditions": { + "$dynamic": false, + "title": "List of conditions in order to limit the flow trigger.", + "type": "array", + "items": { + "oneOf": [ + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.DateTimeBetweenCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.DayWeekCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.DayWeekInMonthCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.ExecutionFlowCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.ExecutionLabelsCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.ExecutionNamespaceCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.ExecutionOutputsCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.ExecutionStatusCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.ExpressionCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.FlowCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.FlowNamespaceCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.HasRetryAttemptCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.MultipleCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.NotCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.OrCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.PublicHolidayCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.TimeBetweenCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.WeekendCondition" + }, + { + "$dynamic": false + } + ] + } + ] + } + }, + "deleted": { + "$dynamic": false, + "type": "string", + "enum": ["ADD_FIELD", "NULL", "DROP"], + "title": "Specify how to handle deleted rows.", + "default": "ADD_FIELD", + "markdownDescription": " Possible settings are:\n- `ADD_FIELD`: Add a deleted field as boolean.\n- `NULL`: Send a row with all values as null.\n- `DROP`: Don't send deleted row.\n\nDefault value is : `ADD_FIELD`" + }, + "deletedFieldName": { + "$dynamic": false, + "type": "string", + "title": "The name of deleted field if deleted is `ADD_FIELD`.", + "default": "deleted", + "markdownDescription": "Default value is : `deleted`" + }, + "description": { + "type": "string" + }, + "disabled": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "excludedColumns": { + "$dynamic": true, + "title": "An optional, comma-separated list of regular expressions that match the fully-qualified names of columns to include in change event record values.", + "markdownDescription": "Fully-qualified names for columns are of the form databaseName.tableName.columnName. Do not also specify the `includedColumns` connector configuration property.\"" + }, + "excludedDatabases": { + "$dynamic": true, + "title": "An optional, comma-separated list of regular expressions that match the names of databases for which you do not want to capture changes.", + "markdownDescription": "The connector captures changes in any database whose name is not in the `excludedDatabases`. Do not also set the `includedDatabases` connector configuration property." + }, + "excludedTables": { + "$dynamic": true, + "title": "An optional, comma-separated list of regular expressions that match fully-qualified table identifiers for tables whose changes you do not want to capture.", + "markdownDescription": "The connector captures changes in any table not included in `excludedTables`. Each identifier is of the form databaseName.tableName. Do not also specify the `includedTables` connector configuration property." + }, + "format": { + "$dynamic": false, + "type": "string", + "enum": ["RAW", "INLINE", "WRAP"], + "title": "The format of the output.", + "default": "INLINE", + "markdownDescription": " Possible settings are:\n- `RAW`: Send raw data from debezium.\n- `INLINE`: Send a row like in the source with only data (remove after & before), all the columns will be present for each row.\n- `WRAP`: Send a row like INLINE but wrapped in a `record` field.\n\n\nDefault value is : `INLINE`" + }, + "hostname": { + "$dynamic": true, + "type": "string", + "title": "Hostname of the remote server." + }, + "id": { + "type": "string", + "title": "A unique ID for the whole flow.", + "minLength": 1, + "pattern": "^[a-zA-Z0-9][a-zA-Z0-9_-]*" + }, + "ignoreDdl": { + "$dynamic": false, + "type": "boolean", + "title": "Ignore DDL statement.", + "default": true, + "markdownDescription": "Ignore CREATE, ALTER, DROP and TRUNCATE operations.\n\nDefault value is : `true`" + }, + "includedColumns": { + "$dynamic": true, + "title": "An optional, comma-separated list of regular expressions that match the fully-qualified names of columns to exclude from change event record values.", + "markdownDescription": "Fully-qualified names for columns are of the form databaseName.tableName.columnName. Do not also specify the `excludedColumns` connector configuration property." + }, + "includedDatabases": { + "$dynamic": true, + "title": "An optional, comma-separated list of regular expressions that match the names of the databases for which to capture changes.", + "markdownDescription": "The connector does not capture changes in any database whose name is not in `includedDatabases`. By default, the connector captures changes in all databases. Do not also set the `excludedDatabases` connector configuration property." + }, + "includedTables": { + "$dynamic": true, + "title": "An optional, comma-separated list of regular expressions that match fully-qualified table identifiers of tables whose changes you want to capture.", + "markdownDescription": "The connector does not capture changes in any table not included in `includedTables`. Each identifier is of the form databaseName.tableName. By default, the connector captures changes in every non-system table in each database whose changes are being captured. Do not also specify the `excludedTables` connector configuration property." + }, + "interval": { + "$dynamic": false, + "type": "string", + "format": "duration", + "title": "Interval between polling.", + "default": 60, + "markdownDescription": "The interval between 2 different polls of schedule, this can avoid to overload the remote system with too many calls. For most of the triggers that depend on external systems, a minimal interval must be at least PT30S.\nSee [ISO_8601 Durations](https://en.wikipedia.org/wiki/ISO_8601#Durations) for more information of available interval values.\n\nDefault value is : `60.000000000`" + }, + "key": { + "$dynamic": false, + "type": "string", + "enum": ["ADD_FIELD", "DROP"], + "title": "Specify how to handle key.", + "default": "ADD_FIELD", + "markdownDescription": " Possible settings are:\n- `ADD_FIELD`: Add key(s) merged with columns.\n- `DROP`: Drop keys.\n\nDefault value is : `ADD_FIELD`" + }, + "labels": { + "title": "The labels to pass to the execution created.", + "type": "array", + "items": { + "$ref": "#/definitions/io.kestra.core.models.Label" + } + }, + "logLevel": { + "type": "string", + "enum": ["ERROR", "WARN", "INFO", "DEBUG", "TRACE"] + }, + "maxDuration": { + "$dynamic": false, + "type": "string", + "format": "duration", + "title": "The maximum duration waiting for new rows.", + "markdownDescription": "It's not an hard limit and is evaluated every second.\n It is taken into account after the snapshot if any." + }, + "maxRecords": { + "$dynamic": false, + "type": "integer", + "title": "The maximum number of rows to fetch before stopping.", + "markdownDescription": "It's not an hard limit and is evaluated every second." + }, + "maxSnapshotDuration": { + "$dynamic": false, + "type": "string", + "format": "duration", + "title": "The maximum duration waiting for the snapshot to ends.", + "default": 3600, + "markdownDescription": "It's not an hard limit and is evaluated every second.\n The properties 'maxRecord', 'maxDuration' and 'maxWait' are evaluated only after the snapshot is done.\n\nDefault value is : `3600.000000000`" + }, + "maxWait": { + "$dynamic": false, + "type": "string", + "format": "duration", + "title": "The maximum total processing duration.", + "default": 10, + "markdownDescription": "It's not an hard limit and is evaluated every second.\n It is taken into account after the snapshot if any.\n\nDefault value is : `10.000000000`" + }, + "metadata": { + "$dynamic": false, + "type": "string", + "enum": ["ADD_FIELD", "DROP"], + "title": "Specify how to handle metadata.", + "default": "ADD_FIELD", + "markdownDescription": " Possible settings are:\n- `ADD_FIELD`: Add metadata in a column named `metadata`.\n- `DROP`: Drop metadata.\n\nDefault value is : `ADD_FIELD`" + }, + "metadataFieldName": { + "$dynamic": false, + "type": "string", + "title": "The name of metadata field if metadata is `ADD_FIELD`.", + "default": "metadata", + "markdownDescription": "Default value is : `metadata`" + }, + "password": { + "$dynamic": true, + "type": "string", + "title": "Password on the remote server." + }, + "port": { + "$dynamic": true, + "type": "string", + "title": "Port of the remote server." + }, + "properties": { + "$dynamic": true, + "type": "object", + "title": "Additional configuration properties.", + "markdownDescription": "Any additional configuration properties that is valid for the current driver." + }, + "serverId": { + "$dynamic": true, + "type": "string", + "title": "A numeric ID of this database client.", + "markdownDescription": "This must be unique across all currently-running database processes in the MySQL cluster. This connector joins the MySQL database cluster as another server (with this unique ID) so it can read the binlog. By default, a random number between 5400 and 6400 is generated, though the recommendation is to explicitly set a value." + }, + "snapshotMode": { + "$dynamic": false, + "type": "string", + "enum": [ + "INITIAL", + "INITIAL_ONLY", + "WHEN_NEEDED", + "NEVER", + "SCHEMA_ONLY", + "SCHEMA_ONLY_RECOVERY" + ], + "title": "Specifies the criteria for running a snapshot when the connector starts.", + "default": "INITIAL", + "markdownDescription": " Possible settings are:\n- `INITIAL`: The connector runs a snapshot only when no offsets have been recorded for the logical server name.\n- `INITIAL_ONLY`: The connector runs a snapshot only when no offsets have been recorded for the logical server name and then stops; i.e. it will not read change events from the binlog.\n- `WHEN_NEEDED`: The connector runs a snapshot upon startup whenever it deems it necessary. That is, when no offsets are available, or when a previously recorded offset specifies a binlog location or GTID that is not available in the server.\n- `NEVER`: The connector never uses snapshots. Upon first startup with a logical server name, the connector reads from the beginning of the binlog. Configure this behavior with care. It is valid only when the binlog is guaranteed to contain the entire history of the database.\n- `SCHEMA_ONLY`: The connector runs a snapshot of the schemas and not the data. This setting is useful when you do not need the topics to contain a consistent snapshot of the data but need them to have only the changes since the connector was started.\n- `SCHEMA_ONLY_RECOVERY`: This is a recovery setting for a connector that has already been capturing changes. When you restart the connector, this setting enables recovery of a corrupted or lost database history topic. You might set it periodically to \"clean up\" a database history topic that has been growing unexpectedly. Database history topics require infinite retention.\n\nDefault value is : `INITIAL`" + }, + "splitTable": { + "$dynamic": false, + "type": "string", + "enum": ["OFF", "DATABASE", "TABLE"], + "title": "Split table on separate output `uris`.", + "default": "TABLE", + "markdownDescription": " Possible settings are:\n- `TABLE`: This will split all rows by tables on output with name `database.table`\n- `DATABASE`: This will split all rows by databases on output with name `database`.\n- `OFF`: This will **NOT** split all rows resulting in a single `data` output.\n\nDefault value is : `TABLE`" + }, + "stateName": { + "$dynamic": false, + "type": "string", + "title": "The name of Debezium state file.", + "default": "debezium-state", + "markdownDescription": "Default value is : `debezium-state`" + }, + "stopAfter": { + "$dynamic": false, + "title": "List of execution states after which a trigger should be stopped (a.k.a. disabled).", + "type": "array", + "items": { + "$dynamic": false, + "type": "string", + "enum": [ + "CREATED", + "RUNNING", + "PAUSED", + "RESTARTED", + "KILLING", + "SUCCESS", + "WARNING", + "FAILED", + "KILLED", + "CANCELLED", + "QUEUED", + "RETRYING", + "RETRIED" + ] + } + }, + "type": { + "const": "io.kestra.plugin.debezium.mysql.Trigger" + }, + "username": { + "$dynamic": true, + "type": "string", + "title": "Username on the remote server." + }, + "workerGroup": { + "$ref": "#/definitions/io.kestra.core.models.tasks.WorkerGroup" + } + }, + "required": ["hostname", "id", "port", "type"], + "title": "Consume messages periodically from a MySQL database via change data capture and create one execution per batch.", + "markdownDescription": "If you would like to consume each message from change data capture in real-time and create one execution per message, you can use the [io.kestra.plugin.debezium.mysql.RealtimeTrigger](https://kestra.io/plugins/plugin-debezium/triggers/io.kestra.plugin.debezium.mysql.realtimetrigger) instead.##### Examples\n\u003E \n```yaml\nsnapshotMode: NEVER\nhostname: 127.0.0.1\nport: \"3306\"\nusername: mysql_user\npassword: mysql_passwd\nmaxRecords: 100\n```" + }, + "io.kestra.plugin.debezium.oracle.Capture": { + "type": "object", + "properties": { + "allowFailure": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "deleted": { + "$dynamic": false, + "type": "string", + "enum": ["ADD_FIELD", "NULL", "DROP"], + "title": "Specify how to handle deleted rows.", + "default": "ADD_FIELD", + "markdownDescription": " Possible settings are:\n- `ADD_FIELD`: Add a deleted field as boolean.\n- `NULL`: Send a row with all values as null.\n- `DROP`: Don't send deleted row.\n\nDefault value is : `ADD_FIELD`" + }, + "deletedFieldName": { + "$dynamic": false, + "type": "string", + "title": "The name of deleted field if deleted is `ADD_FIELD`.", + "default": "deleted", + "markdownDescription": "Default value is : `deleted`" + }, + "description": { + "type": "string" + }, + "disabled": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "excludedColumns": { + "$dynamic": true, + "title": "An optional, comma-separated list of regular expressions that match the fully-qualified names of columns to include in change event record values.", + "markdownDescription": "Fully-qualified names for columns are of the form databaseName.tableName.columnName. Do not also specify the `includedColumns` connector configuration property.\"" + }, + "excludedDatabases": { + "$dynamic": true, + "title": "An optional, comma-separated list of regular expressions that match the names of databases for which you do not want to capture changes.", + "markdownDescription": "The connector captures changes in any database whose name is not in the `excludedDatabases`. Do not also set the `includedDatabases` connector configuration property." + }, + "excludedTables": { + "$dynamic": true, + "title": "An optional, comma-separated list of regular expressions that match fully-qualified table identifiers for tables whose changes you do not want to capture.", + "markdownDescription": "The connector captures changes in any table not included in `excludedTables`. Each identifier is of the form databaseName.tableName. Do not also specify the `includedTables` connector configuration property." + }, + "format": { + "$dynamic": false, + "type": "string", + "enum": ["RAW", "INLINE", "WRAP"], + "title": "The format of the output.", + "default": "INLINE", + "markdownDescription": " Possible settings are:\n- `RAW`: Send raw data from debezium.\n- `INLINE`: Send a row like in the source with only data (remove after & before), all the columns will be present for each row.\n- `WRAP`: Send a row like INLINE but wrapped in a `record` field.\n\n\nDefault value is : `INLINE`" + }, + "hostname": { + "$dynamic": true, + "type": "string", + "title": "Hostname of the remote server." + }, + "id": { + "type": "string", + "minLength": 1, + "pattern": "^[a-zA-Z0-9][a-zA-Z0-9_-]*" + }, + "ignoreDdl": { + "$dynamic": false, + "type": "boolean", + "title": "Ignore DDL statement.", + "default": true, + "markdownDescription": "Ignore CREATE, ALTER, DROP and TRUNCATE operations.\n\nDefault value is : `true`" + }, + "includedColumns": { + "$dynamic": true, + "title": "An optional, comma-separated list of regular expressions that match the fully-qualified names of columns to exclude from change event record values.", + "markdownDescription": "Fully-qualified names for columns are of the form databaseName.tableName.columnName. Do not also specify the `excludedColumns` connector configuration property." + }, + "includedDatabases": { + "$dynamic": true, + "title": "An optional, comma-separated list of regular expressions that match the names of the databases for which to capture changes.", + "markdownDescription": "The connector does not capture changes in any database whose name is not in `includedDatabases`. By default, the connector captures changes in all databases. Do not also set the `excludedDatabases` connector configuration property." + }, + "includedTables": { + "$dynamic": true, + "title": "An optional, comma-separated list of regular expressions that match fully-qualified table identifiers of tables whose changes you want to capture.", + "markdownDescription": "The connector does not capture changes in any table not included in `includedTables`. Each identifier is of the form databaseName.tableName. By default, the connector captures changes in every non-system table in each database whose changes are being captured. Do not also specify the `excludedTables` connector configuration property." + }, + "key": { + "$dynamic": false, + "type": "string", + "enum": ["ADD_FIELD", "DROP"], + "title": "Specify how to handle key.", + "default": "ADD_FIELD", + "markdownDescription": " Possible settings are:\n- `ADD_FIELD`: Add key(s) merged with columns.\n- `DROP`: Drop keys.\n\nDefault value is : `ADD_FIELD`" + }, + "logLevel": { + "type": "string", + "enum": ["ERROR", "WARN", "INFO", "DEBUG", "TRACE"] + }, + "maxDuration": { + "$dynamic": false, + "type": "string", + "format": "duration", + "title": "The maximum duration waiting for new rows.", + "markdownDescription": "It's not an hard limit and is evaluated every second.\n It is taken into account after the snapshot if any." + }, + "maxRecords": { + "$dynamic": false, + "type": "integer", + "title": "The maximum number of rows to fetch before stopping.", + "markdownDescription": "It's not an hard limit and is evaluated every second." + }, + "maxSnapshotDuration": { + "$dynamic": false, + "type": "string", + "format": "duration", + "title": "The maximum duration waiting for the snapshot to ends.", + "default": 3600, + "markdownDescription": "It's not an hard limit and is evaluated every second.\n The properties 'maxRecord', 'maxDuration' and 'maxWait' are evaluated only after the snapshot is done.\n\nDefault value is : `3600.000000000`" + }, + "maxWait": { + "$dynamic": false, + "type": "string", + "format": "duration", + "title": "The maximum total processing duration.", + "default": 10, + "markdownDescription": "It's not an hard limit and is evaluated every second.\n It is taken into account after the snapshot if any.\n\nDefault value is : `10.000000000`" + }, + "metadata": { + "$dynamic": false, + "type": "string", + "enum": ["ADD_FIELD", "DROP"], + "title": "Specify how to handle metadata.", + "default": "ADD_FIELD", + "markdownDescription": " Possible settings are:\n- `ADD_FIELD`: Add metadata in a column named `metadata`.\n- `DROP`: Drop metadata.\n\nDefault value is : `ADD_FIELD`" + }, + "metadataFieldName": { + "$dynamic": false, + "type": "string", + "title": "The name of metadata field if metadata is `ADD_FIELD`.", + "default": "metadata", + "markdownDescription": "Default value is : `metadata`" + }, + "password": { + "$dynamic": true, + "type": "string", + "title": "Password on the remote server." + }, + "pluggableDatabase": { + "type": "string", + "title": "The name of the Oracle pluggable database that the connector captures changes from. Used in container database (CDB) installations only.", + "markdownDescription": "For non-container database (non-CDB) installation, do not specify the pluggableDatabase property." + }, + "port": { + "$dynamic": true, + "type": "string", + "title": "Port of the remote server." + }, + "properties": { + "$dynamic": true, + "type": "object", + "title": "Additional configuration properties.", + "markdownDescription": "Any additional configuration properties that is valid for the current driver." + }, + "retry": { + "oneOf": [ + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Constant-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Exponential-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Random-2" + } + ] + }, + "sid": { + "type": "string", + "title": "The name of the database to capture changes from." + }, + "snapshotMode": { + "$dynamic": false, + "type": "string", + "enum": [ + "ALWAYS", + "INITIAL", + "INITIAL_ONLY", + "WHEN_NEEDED", + "NO_DATA", + "RECOVERY" + ], + "title": "Specifies the criteria for running a snapshot when the connector starts.", + "default": "INITIAL", + "markdownDescription": " Possible settings are:\n- `ALWAYS`: The connector runs a snapshot on each connector start.\n- `INITIAL`: The connector runs a snapshot only when no offsets have been recorded for the logical server name.\n- `INITIAL_ONLY`: The connector runs a snapshot only when no offsets have been recorded for the logical server name and then stops; i.e. it will not read change events from the binlog.\n- `WHEN_NEEDED`: The connector runs a snapshot upon startup whenever it deems it necessary. That is, when no offsets are available, or when a previously recorded offset specifies a binlog location or GTID that is not available in the server.\n- `NO_DATA`: The connector runs a snapshot of the schemas and not the data. This setting is useful when you do not need the topics to contain a consistent snapshot of the data but need them to have only the changes since the connector was started.\n- `RECOVERY`: This is a recovery setting for a connector that has already been capturing changes. When you restart the connector, this setting enables recovery of a corrupted or lost database history topic. You might set it periodically to \"clean up\" a database history topic that has been growing unexpectedly. Database history topics require infinite retention.\n\nDefault value is : `INITIAL`" + }, + "splitTable": { + "$dynamic": false, + "type": "string", + "enum": ["OFF", "DATABASE", "TABLE"], + "title": "Split table on separate output `uris`.", + "default": "TABLE", + "markdownDescription": " Possible settings are:\n- `TABLE`: This will split all rows by tables on output with name `database.table`\n- `DATABASE`: This will split all rows by databases on output with name `database`.\n- `OFF`: This will **NOT** split all rows resulting in a single `data` output.\n\nDefault value is : `TABLE`" + }, + "stateName": { + "$dynamic": false, + "type": "string", + "title": "The name of Debezium state file.", + "default": "debezium-state", + "markdownDescription": "Default value is : `debezium-state`" + }, + "timeout": { + "type": "string", + "format": "duration" + }, + "type": { + "const": "io.kestra.plugin.debezium.oracle.Capture" + }, + "username": { + "$dynamic": true, + "type": "string", + "title": "Username on the remote server." + }, + "workerGroup": { + "$ref": "#/definitions/io.kestra.core.models.tasks.WorkerGroup" + } + }, + "required": ["hostname", "id", "port", "sid", "type"], + "title": "Wait for change data capture event on Oracle server.", + "markdownDescription": "##### Examples\n\u003E Non-container database (non-CDB)\n```yaml\nsnapshotMode: INITIAL\nhostname: 127.0.0.1\nport: \"1521\"\nusername: c##dbzuser\npassword: dbz\nsid: ORCLCDB\nmaxRecords: 100\n```\n\n\u003E Container database (CDB)\n```yaml\nsnapshotMode: INITIAL\nhostname: 127.0.0.1\nport: \"1521\"\nusername: c##dbzuser\npassword: dbz\nsid: ORCLCDB\npluggableDatabase: ORCLPDB1\nmaxRecords: 100\n```" + }, + "io.kestra.plugin.debezium.oracle.RealtimeTrigger": { + "type": "object", + "properties": { + "conditions": { + "$dynamic": false, + "title": "List of conditions in order to limit the flow trigger.", + "type": "array", + "items": { + "oneOf": [ + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.DateTimeBetweenCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.DayWeekCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.DayWeekInMonthCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.ExecutionFlowCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.ExecutionLabelsCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.ExecutionNamespaceCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.ExecutionOutputsCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.ExecutionStatusCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.ExpressionCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.FlowCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.FlowNamespaceCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.HasRetryAttemptCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.MultipleCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.NotCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.OrCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.PublicHolidayCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.TimeBetweenCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.WeekendCondition" + }, + { + "$dynamic": false + } + ] + } + ] + } + }, + "deleted": { + "$dynamic": false, + "type": "string", + "enum": ["ADD_FIELD", "NULL", "DROP"], + "title": "Specify how to handle deleted rows.", + "default": "ADD_FIELD", + "markdownDescription": " Possible settings are:\n- `ADD_FIELD`: Add a deleted field as boolean.\n- `NULL`: Send a row with all values as null.\n- `DROP`: Don't send deleted row.\n\nDefault value is : `ADD_FIELD`" + }, + "deletedFieldName": { + "$dynamic": false, + "type": "string", + "title": "The name of deleted field if deleted is `ADD_FIELD`.", + "default": "deleted", + "markdownDescription": "Default value is : `deleted`" + }, + "description": { + "type": "string" + }, + "disabled": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "excludedColumns": { + "$dynamic": true, + "title": "An optional, comma-separated list of regular expressions that match the fully-qualified names of columns to include in change event record values.", + "markdownDescription": "Fully-qualified names for columns are of the form databaseName.tableName.columnName. Do not also specify the `includedColumns` connector configuration property.\"" + }, + "excludedDatabases": { + "$dynamic": true, + "title": "An optional, comma-separated list of regular expressions that match the names of databases for which you do not want to capture changes.", + "markdownDescription": "The connector captures changes in any database whose name is not in the `excludedDatabases`. Do not also set the `includedDatabases` connector configuration property." + }, + "excludedTables": { + "$dynamic": true, + "title": "An optional, comma-separated list of regular expressions that match fully-qualified table identifiers for tables whose changes you do not want to capture.", + "markdownDescription": "The connector captures changes in any table not included in `excludedTables`. Each identifier is of the form databaseName.tableName. Do not also specify the `includedTables` connector configuration property." + }, + "format": { + "$dynamic": false, + "type": "string", + "enum": ["RAW", "INLINE", "WRAP"], + "title": "The format of the output.", + "default": "INLINE", + "markdownDescription": " Possible settings are:\n- `RAW`: Send raw data from debezium.\n- `INLINE`: Send a row like in the source with only data (remove after & before), all the columns will be present for each row.\n- `WRAP`: Send a row like INLINE but wrapped in a `record` field.\n\n\nDefault value is : `INLINE`" + }, + "hostname": { + "$dynamic": true, + "type": "string", + "title": "Hostname of the remote server." + }, + "id": { + "type": "string", + "title": "A unique ID for the whole flow.", + "minLength": 1, + "pattern": "^[a-zA-Z0-9][a-zA-Z0-9_-]*" + }, + "ignoreDdl": { + "$dynamic": false, + "type": "boolean", + "title": "Ignore DDL statement.", + "default": true, + "markdownDescription": "Ignore CREATE, ALTER, DROP and TRUNCATE operations.\n\nDefault value is : `true`" + }, + "includedColumns": { + "$dynamic": true, + "title": "An optional, comma-separated list of regular expressions that match the fully-qualified names of columns to exclude from change event record values.", + "markdownDescription": "Fully-qualified names for columns are of the form databaseName.tableName.columnName. Do not also specify the `excludedColumns` connector configuration property." + }, + "includedDatabases": { + "$dynamic": true, + "title": "An optional, comma-separated list of regular expressions that match the names of the databases for which to capture changes.", + "markdownDescription": "The connector does not capture changes in any database whose name is not in `includedDatabases`. By default, the connector captures changes in all databases. Do not also set the `excludedDatabases` connector configuration property." + }, + "includedTables": { + "$dynamic": true, + "title": "An optional, comma-separated list of regular expressions that match fully-qualified table identifiers of tables whose changes you want to capture.", + "markdownDescription": "The connector does not capture changes in any table not included in `includedTables`. Each identifier is of the form databaseName.tableName. By default, the connector captures changes in every non-system table in each database whose changes are being captured. Do not also specify the `excludedTables` connector configuration property." + }, + "key": { + "$dynamic": false, + "type": "string", + "enum": ["ADD_FIELD", "DROP"], + "title": "Specify how to handle key.", + "default": "ADD_FIELD", + "markdownDescription": " Possible settings are:\n- `ADD_FIELD`: Add key(s) merged with columns.\n- `DROP`: Drop keys.\n\nDefault value is : `ADD_FIELD`" + }, + "labels": { + "title": "The labels to pass to the execution created.", + "type": "array", + "items": { + "$ref": "#/definitions/io.kestra.core.models.Label" + } + }, + "logLevel": { + "type": "string", + "enum": ["ERROR", "WARN", "INFO", "DEBUG", "TRACE"] + }, + "metadata": { + "$dynamic": false, + "type": "string", + "enum": ["ADD_FIELD", "DROP"], + "title": "Specify how to handle metadata.", + "default": "ADD_FIELD", + "markdownDescription": " Possible settings are:\n- `ADD_FIELD`: Add metadata in a column named `metadata`.\n- `DROP`: Drop metadata.\n\nDefault value is : `ADD_FIELD`" + }, + "metadataFieldName": { + "$dynamic": false, + "type": "string", + "title": "The name of metadata field if metadata is `ADD_FIELD`.", + "default": "metadata", + "markdownDescription": "Default value is : `metadata`" + }, + "offsetsCommitMode": { + "$dynamic": false, + "type": "string", + "enum": ["ON_EACH_BATCH", "ON_STOP"], + "title": "How to commit the offsets to the state store.", + "default": "ON_EACH_BATCH", + "markdownDescription": "Possible values are:\n- ON_EACH_BATCH: after each batch of records consumed by this trigger, the offsets will be stored in the state store. This avoids any duplicated records being consumed but can be costly if a lot of events are produced.\n- ON_STOP: when this trigger is stopped or killed, the offsets will be stored in the state store. This avoid any un-necessary write to the state store, but if the trigger is not stopped gracefully the state store may not be updated leading to duplicated records consumption.\n\nDefault value is : `ON_EACH_BATCH`" + }, + "password": { + "$dynamic": true, + "type": "string", + "title": "Password on the remote server." + }, + "pluggableDatabase": { + "type": "string", + "title": "The name of the Oracle pluggable database that the connector captures changes from. Used in container database (CDB) installations only.", + "markdownDescription": "For non-container database (non-CDB) installation, do not specify the pluggableDatabase property." + }, + "port": { + "$dynamic": true, + "type": "string", + "title": "Port of the remote server." + }, + "properties": { + "$dynamic": true, + "type": "object", + "title": "Additional configuration properties.", + "markdownDescription": "Any additional configuration properties that is valid for the current driver." + }, + "sid": { + "type": "string", + "title": "The name of the database to capture changes from." + }, + "snapshotMode": { + "$dynamic": false, + "type": "string", + "enum": [ + "ALWAYS", + "INITIAL", + "INITIAL_ONLY", + "WHEN_NEEDED", + "NO_DATA", + "RECOVERY" + ], + "title": "Specifies the criteria for running a snapshot when the connector starts.", + "default": "INITIAL", + "markdownDescription": " Possible settings are:\n- `ALWAYS`: The connector runs a snapshot on each connector start.\n- `INITIAL`: The connector runs a snapshot only when no offsets have been recorded for the logical server name.\n- `INITIAL_ONLY`: The connector runs a snapshot only when no offsets have been recorded for the logical server name and then stops; i.e. it will not read change events from the binlog.\n- `WHEN_NEEDED`: The connector runs a snapshot upon startup whenever it deems it necessary. That is, when no offsets are available, or when a previously recorded offset specifies a binlog location or GTID that is not available in the server.\n- `NO_DATA`: The connector runs a snapshot of the schemas and not the data. This setting is useful when you do not need the topics to contain a consistent snapshot of the data but need them to have only the changes since the connector was started.\n- `RECOVERY`: This is a recovery setting for a connector that has already been capturing changes. When you restart the connector, this setting enables recovery of a corrupted or lost database history topic. You might set it periodically to \"clean up\" a database history topic that has been growing unexpectedly. Database history topics require infinite retention.\n\nDefault value is : `INITIAL`" + }, + "splitTable": { + "$dynamic": false, + "type": "string", + "enum": ["OFF", "DATABASE", "TABLE"], + "title": "Split table on separate output `uris`.", + "default": "TABLE", + "markdownDescription": " Possible settings are:\n- `TABLE`: This will split all rows by tables on output with name `database.table`\n- `DATABASE`: This will split all rows by databases on output with name `database`.\n- `OFF`: This will **NOT** split all rows resulting in a single `data` output.\n\nDefault value is : `TABLE`" + }, + "stateName": { + "$dynamic": false, + "type": "string", + "title": "The name of Debezium state file.", + "default": "debezium-state", + "markdownDescription": "Default value is : `debezium-state`" + }, + "stopAfter": { + "$dynamic": false, + "title": "List of execution states after which a trigger should be stopped (a.k.a. disabled).", + "type": "array", + "items": { + "$dynamic": false, + "type": "string", + "enum": [ + "CREATED", + "RUNNING", + "PAUSED", + "RESTARTED", + "KILLING", + "SUCCESS", + "WARNING", + "FAILED", + "KILLED", + "CANCELLED", + "QUEUED", + "RETRYING", + "RETRIED" + ] + } + }, + "type": { + "const": "io.kestra.plugin.debezium.oracle.RealtimeTrigger" + }, + "username": { + "$dynamic": true, + "type": "string", + "title": "Username on the remote server." + }, + "workerGroup": { + "$ref": "#/definitions/io.kestra.core.models.tasks.WorkerGroup" + } + }, + "required": ["hostname", "id", "port", "sid", "type"], + "title": "Consume a message in real-time from a Oracle database via change data capture and create one execution per row.", + "markdownDescription": "If you would like to consume multiple messages processed within a given time frame and process them in batch, you can use the [io.kestra.plugin.debezium.oracle.Trigger](https://kestra.io/plugins/plugin-debezium/triggers/io.kestra.plugin.debezium.oracle.trigger) instead.##### Examples\n\u003E Consume a message from a Oracle database via change data capture in real-time.\n```yaml\nid: debezium-oracle\nnamespace: company.team\n\ntasks:\n - id: send_data\n type: io.kestra.plugin.core.log.Log\n message: \"{{ trigger.data }}\"\n\ntriggers:\n - id: realtime\n type: io.kestra.plugin.debezium.oracle.RealtimeTrigger\n hostname: 127.0.0.1\n port: 1521\n username: c##dbzuser\n password: dbz\n sid: ORCLCDB\n\n```" + }, + "io.kestra.plugin.debezium.oracle.Trigger": { + "type": "object", + "properties": { + "conditions": { + "$dynamic": false, + "title": "List of conditions in order to limit the flow trigger.", + "type": "array", + "items": { + "oneOf": [ + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.DateTimeBetweenCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.DayWeekCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.DayWeekInMonthCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.ExecutionFlowCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.ExecutionLabelsCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.ExecutionNamespaceCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.ExecutionOutputsCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.ExecutionStatusCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.ExpressionCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.FlowCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.FlowNamespaceCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.HasRetryAttemptCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.MultipleCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.NotCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.OrCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.PublicHolidayCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.TimeBetweenCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.WeekendCondition" + }, + { + "$dynamic": false + } + ] + } + ] + } + }, + "deleted": { + "$dynamic": false, + "type": "string", + "enum": ["ADD_FIELD", "NULL", "DROP"], + "title": "Specify how to handle deleted rows.", + "default": "ADD_FIELD", + "markdownDescription": " Possible settings are:\n- `ADD_FIELD`: Add a deleted field as boolean.\n- `NULL`: Send a row with all values as null.\n- `DROP`: Don't send deleted row.\n\nDefault value is : `ADD_FIELD`" + }, + "deletedFieldName": { + "$dynamic": false, + "type": "string", + "title": "The name of deleted field if deleted is `ADD_FIELD`.", + "default": "deleted", + "markdownDescription": "Default value is : `deleted`" + }, + "description": { + "type": "string" + }, + "disabled": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "excludedColumns": { + "$dynamic": true, + "title": "An optional, comma-separated list of regular expressions that match the fully-qualified names of columns to include in change event record values.", + "markdownDescription": "Fully-qualified names for columns are of the form databaseName.tableName.columnName. Do not also specify the `includedColumns` connector configuration property.\"" + }, + "excludedDatabases": { + "$dynamic": true, + "title": "An optional, comma-separated list of regular expressions that match the names of databases for which you do not want to capture changes.", + "markdownDescription": "The connector captures changes in any database whose name is not in the `excludedDatabases`. Do not also set the `includedDatabases` connector configuration property." + }, + "excludedTables": { + "$dynamic": true, + "title": "An optional, comma-separated list of regular expressions that match fully-qualified table identifiers for tables whose changes you do not want to capture.", + "markdownDescription": "The connector captures changes in any table not included in `excludedTables`. Each identifier is of the form databaseName.tableName. Do not also specify the `includedTables` connector configuration property." + }, + "format": { + "$dynamic": false, + "type": "string", + "enum": ["RAW", "INLINE", "WRAP"], + "title": "The format of the output.", + "default": "INLINE", + "markdownDescription": " Possible settings are:\n- `RAW`: Send raw data from debezium.\n- `INLINE`: Send a row like in the source with only data (remove after & before), all the columns will be present for each row.\n- `WRAP`: Send a row like INLINE but wrapped in a `record` field.\n\n\nDefault value is : `INLINE`" + }, + "hostname": { + "$dynamic": true, + "type": "string", + "title": "Hostname of the remote server." + }, + "id": { + "type": "string", + "title": "A unique ID for the whole flow.", + "minLength": 1, + "pattern": "^[a-zA-Z0-9][a-zA-Z0-9_-]*" + }, + "ignoreDdl": { + "$dynamic": false, + "type": "boolean", + "title": "Ignore DDL statement.", + "default": true, + "markdownDescription": "Ignore CREATE, ALTER, DROP and TRUNCATE operations.\n\nDefault value is : `true`" + }, + "includedColumns": { + "$dynamic": true, + "title": "An optional, comma-separated list of regular expressions that match the fully-qualified names of columns to exclude from change event record values.", + "markdownDescription": "Fully-qualified names for columns are of the form databaseName.tableName.columnName. Do not also specify the `excludedColumns` connector configuration property." + }, + "includedDatabases": { + "$dynamic": true, + "title": "An optional, comma-separated list of regular expressions that match the names of the databases for which to capture changes.", + "markdownDescription": "The connector does not capture changes in any database whose name is not in `includedDatabases`. By default, the connector captures changes in all databases. Do not also set the `excludedDatabases` connector configuration property." + }, + "includedTables": { + "$dynamic": true, + "title": "An optional, comma-separated list of regular expressions that match fully-qualified table identifiers of tables whose changes you want to capture.", + "markdownDescription": "The connector does not capture changes in any table not included in `includedTables`. Each identifier is of the form databaseName.tableName. By default, the connector captures changes in every non-system table in each database whose changes are being captured. Do not also specify the `excludedTables` connector configuration property." + }, + "interval": { + "$dynamic": false, + "type": "string", + "format": "duration", + "title": "Interval between polling.", + "default": 60, + "markdownDescription": "The interval between 2 different polls of schedule, this can avoid to overload the remote system with too many calls. For most of the triggers that depend on external systems, a minimal interval must be at least PT30S.\nSee [ISO_8601 Durations](https://en.wikipedia.org/wiki/ISO_8601#Durations) for more information of available interval values.\n\nDefault value is : `60.000000000`" + }, + "key": { + "$dynamic": false, + "type": "string", + "enum": ["ADD_FIELD", "DROP"], + "title": "Specify how to handle key.", + "default": "ADD_FIELD", + "markdownDescription": " Possible settings are:\n- `ADD_FIELD`: Add key(s) merged with columns.\n- `DROP`: Drop keys.\n\nDefault value is : `ADD_FIELD`" + }, + "labels": { + "title": "The labels to pass to the execution created.", + "type": "array", + "items": { + "$ref": "#/definitions/io.kestra.core.models.Label" + } + }, + "logLevel": { + "type": "string", + "enum": ["ERROR", "WARN", "INFO", "DEBUG", "TRACE"] + }, + "maxDuration": { + "$dynamic": false, + "type": "string", + "format": "duration", + "title": "The maximum duration waiting for new rows.", + "markdownDescription": "It's not an hard limit and is evaluated every second.\n It is taken into account after the snapshot if any." + }, + "maxRecords": { + "$dynamic": false, + "type": "integer", + "title": "The maximum number of rows to fetch before stopping.", + "markdownDescription": "It's not an hard limit and is evaluated every second." + }, + "maxSnapshotDuration": { + "$dynamic": false, + "type": "string", + "format": "duration", + "title": "The maximum duration waiting for the snapshot to ends.", + "default": 3600, + "markdownDescription": "It's not an hard limit and is evaluated every second.\n The properties 'maxRecord', 'maxDuration' and 'maxWait' are evaluated only after the snapshot is done.\n\nDefault value is : `3600.000000000`" + }, + "maxWait": { + "$dynamic": false, + "type": "string", + "format": "duration", + "title": "The maximum total processing duration.", + "default": 10, + "markdownDescription": "It's not an hard limit and is evaluated every second.\n It is taken into account after the snapshot if any.\n\nDefault value is : `10.000000000`" + }, + "metadata": { + "$dynamic": false, + "type": "string", + "enum": ["ADD_FIELD", "DROP"], + "title": "Specify how to handle metadata.", + "default": "ADD_FIELD", + "markdownDescription": " Possible settings are:\n- `ADD_FIELD`: Add metadata in a column named `metadata`.\n- `DROP`: Drop metadata.\n\nDefault value is : `ADD_FIELD`" + }, + "metadataFieldName": { + "$dynamic": false, + "type": "string", + "title": "The name of metadata field if metadata is `ADD_FIELD`.", + "default": "metadata", + "markdownDescription": "Default value is : `metadata`" + }, + "password": { + "$dynamic": true, + "type": "string", + "title": "Password on the remote server." + }, + "pluggableDatabase": { + "type": "string", + "title": "The name of the Oracle pluggable database that the connector captures changes from. Used in container database (CDB) installations only.", + "markdownDescription": "For non-container database (non-CDB) installation, do not specify the pluggableDatabase property." + }, + "port": { + "$dynamic": true, + "type": "string", + "title": "Port of the remote server." + }, + "properties": { + "$dynamic": true, + "type": "object", + "title": "Additional configuration properties.", + "markdownDescription": "Any additional configuration properties that is valid for the current driver." + }, + "sid": { + "type": "string", + "title": "The name of the database to capture changes from." + }, + "snapshotMode": { + "$dynamic": false, + "type": "string", + "enum": [ + "ALWAYS", + "INITIAL", + "INITIAL_ONLY", + "WHEN_NEEDED", + "NO_DATA", + "RECOVERY" + ], + "title": "Specifies the criteria for running a snapshot when the connector starts.", + "default": "INITIAL", + "markdownDescription": " Possible settings are:\n- `ALWAYS`: The connector runs a snapshot on each connector start.\n- `INITIAL`: The connector runs a snapshot only when no offsets have been recorded for the logical server name.\n- `INITIAL_ONLY`: The connector runs a snapshot only when no offsets have been recorded for the logical server name and then stops; i.e. it will not read change events from the binlog.\n- `WHEN_NEEDED`: The connector runs a snapshot upon startup whenever it deems it necessary. That is, when no offsets are available, or when a previously recorded offset specifies a binlog location or GTID that is not available in the server.\n- `NO_DATA`: The connector runs a snapshot of the schemas and not the data. This setting is useful when you do not need the topics to contain a consistent snapshot of the data but need them to have only the changes since the connector was started.\n- `RECOVERY`: This is a recovery setting for a connector that has already been capturing changes. When you restart the connector, this setting enables recovery of a corrupted or lost database history topic. You might set it periodically to \"clean up\" a database history topic that has been growing unexpectedly. Database history topics require infinite retention.\n\nDefault value is : `INITIAL`" + }, + "splitTable": { + "$dynamic": false, + "type": "string", + "enum": ["OFF", "DATABASE", "TABLE"], + "title": "Split table on separate output `uris`.", + "default": "TABLE", + "markdownDescription": " Possible settings are:\n- `TABLE`: This will split all rows by tables on output with name `database.table`\n- `DATABASE`: This will split all rows by databases on output with name `database`.\n- `OFF`: This will **NOT** split all rows resulting in a single `data` output.\n\nDefault value is : `TABLE`" + }, + "stateName": { + "$dynamic": false, + "type": "string", + "title": "The name of Debezium state file.", + "default": "debezium-state", + "markdownDescription": "Default value is : `debezium-state`" + }, + "stopAfter": { + "$dynamic": false, + "title": "List of execution states after which a trigger should be stopped (a.k.a. disabled).", + "type": "array", + "items": { + "$dynamic": false, + "type": "string", + "enum": [ + "CREATED", + "RUNNING", + "PAUSED", + "RESTARTED", + "KILLING", + "SUCCESS", + "WARNING", + "FAILED", + "KILLED", + "CANCELLED", + "QUEUED", + "RETRYING", + "RETRIED" + ] + } + }, + "type": { + "const": "io.kestra.plugin.debezium.oracle.Trigger" + }, + "username": { + "$dynamic": true, + "type": "string", + "title": "Username on the remote server." + }, + "workerGroup": { + "$ref": "#/definitions/io.kestra.core.models.tasks.WorkerGroup" + } + }, + "required": ["hostname", "id", "port", "sid", "type"], + "title": "Consume messages periodically from a Oracle database via change data capture and create one execution per batch.", + "markdownDescription": "If you would like to consume each message from change data capture in real-time and create one execution per message, you can use the [io.kestra.plugin.debezium.oracle.RealtimeTrigger](https://kestra.io/plugins/plugin-debezium/triggers/io.kestra.plugin.debezium.oracle.realtimetrigger) instead.##### Examples\n\u003E \n```yaml\nsnapshotMode: INITIAL_ONLY\nhostname: 127.0.0.1\nport: \"1521\"\nusername: c##dbzuser\npassword: dbz\nsid: ORCLCDB\nmaxRecords: 100\n```" + }, + "io.kestra.plugin.debezium.postgres.Capture": { + "type": "object", + "properties": { + "allowFailure": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "database": { + "$dynamic": true, + "type": "string", + "title": "The name of the PostgreSQL database from which to stream the changes." + }, + "deleted": { + "$dynamic": false, + "type": "string", + "enum": ["ADD_FIELD", "NULL", "DROP"], + "title": "Specify how to handle deleted rows.", + "default": "ADD_FIELD", + "markdownDescription": " Possible settings are:\n- `ADD_FIELD`: Add a deleted field as boolean.\n- `NULL`: Send a row with all values as null.\n- `DROP`: Don't send deleted row.\n\nDefault value is : `ADD_FIELD`" + }, + "deletedFieldName": { + "$dynamic": false, + "type": "string", + "title": "The name of deleted field if deleted is `ADD_FIELD`.", + "default": "deleted", + "markdownDescription": "Default value is : `deleted`" + }, + "description": { + "type": "string" + }, + "disabled": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "excludedColumns": { + "$dynamic": true, + "title": "An optional, comma-separated list of regular expressions that match the fully-qualified names of columns to include in change event record values.", + "markdownDescription": "Fully-qualified names for columns are of the form databaseName.tableName.columnName. Do not also specify the `includedColumns` connector configuration property.\"" + }, + "excludedDatabases": { + "$dynamic": true, + "title": "An optional, comma-separated list of regular expressions that match the names of databases for which you do not want to capture changes.", + "markdownDescription": "The connector captures changes in any database whose name is not in the `excludedDatabases`. Do not also set the `includedDatabases` connector configuration property." + }, + "excludedTables": { + "$dynamic": true, + "title": "An optional, comma-separated list of regular expressions that match fully-qualified table identifiers for tables whose changes you do not want to capture.", + "markdownDescription": "The connector captures changes in any table not included in `excludedTables`. Each identifier is of the form databaseName.tableName. Do not also specify the `includedTables` connector configuration property." + }, + "format": { + "$dynamic": false, + "type": "string", + "enum": ["RAW", "INLINE", "WRAP"], + "title": "The format of the output.", + "default": "INLINE", + "markdownDescription": " Possible settings are:\n- `RAW`: Send raw data from debezium.\n- `INLINE`: Send a row like in the source with only data (remove after & before), all the columns will be present for each row.\n- `WRAP`: Send a row like INLINE but wrapped in a `record` field.\n\n\nDefault value is : `INLINE`" + }, + "hostname": { + "$dynamic": true, + "type": "string", + "title": "Hostname of the remote server." + }, + "id": { + "type": "string", + "minLength": 1, + "pattern": "^[a-zA-Z0-9][a-zA-Z0-9_-]*" + }, + "ignoreDdl": { + "$dynamic": false, + "type": "boolean", + "title": "Ignore DDL statement.", + "default": true, + "markdownDescription": "Ignore CREATE, ALTER, DROP and TRUNCATE operations.\n\nDefault value is : `true`" + }, + "includedColumns": { + "$dynamic": true, + "title": "An optional, comma-separated list of regular expressions that match the fully-qualified names of columns to exclude from change event record values.", + "markdownDescription": "Fully-qualified names for columns are of the form databaseName.tableName.columnName. Do not also specify the `excludedColumns` connector configuration property." + }, + "includedDatabases": { + "$dynamic": true, + "title": "An optional, comma-separated list of regular expressions that match the names of the databases for which to capture changes.", + "markdownDescription": "The connector does not capture changes in any database whose name is not in `includedDatabases`. By default, the connector captures changes in all databases. Do not also set the `excludedDatabases` connector configuration property." + }, + "includedTables": { + "$dynamic": true, + "title": "An optional, comma-separated list of regular expressions that match fully-qualified table identifiers of tables whose changes you want to capture.", + "markdownDescription": "The connector does not capture changes in any table not included in `includedTables`. Each identifier is of the form databaseName.tableName. By default, the connector captures changes in every non-system table in each database whose changes are being captured. Do not also specify the `excludedTables` connector configuration property." + }, + "key": { + "$dynamic": false, + "type": "string", + "enum": ["ADD_FIELD", "DROP"], + "title": "Specify how to handle key.", + "default": "ADD_FIELD", + "markdownDescription": " Possible settings are:\n- `ADD_FIELD`: Add key(s) merged with columns.\n- `DROP`: Drop keys.\n\nDefault value is : `ADD_FIELD`" + }, + "logLevel": { + "type": "string", + "enum": ["ERROR", "WARN", "INFO", "DEBUG", "TRACE"] + }, + "maxDuration": { + "$dynamic": false, + "type": "string", + "format": "duration", + "title": "The maximum duration waiting for new rows.", + "markdownDescription": "It's not an hard limit and is evaluated every second.\n It is taken into account after the snapshot if any." + }, + "maxRecords": { + "$dynamic": false, + "type": "integer", + "title": "The maximum number of rows to fetch before stopping.", + "markdownDescription": "It's not an hard limit and is evaluated every second." + }, + "maxSnapshotDuration": { + "$dynamic": false, + "type": "string", + "format": "duration", + "title": "The maximum duration waiting for the snapshot to ends.", + "default": 3600, + "markdownDescription": "It's not an hard limit and is evaluated every second.\n The properties 'maxRecord', 'maxDuration' and 'maxWait' are evaluated only after the snapshot is done.\n\nDefault value is : `3600.000000000`" + }, + "maxWait": { + "$dynamic": false, + "type": "string", + "format": "duration", + "title": "The maximum total processing duration.", + "default": 10, + "markdownDescription": "It's not an hard limit and is evaluated every second.\n It is taken into account after the snapshot if any.\n\nDefault value is : `10.000000000`" + }, + "metadata": { + "$dynamic": false, + "type": "string", + "enum": ["ADD_FIELD", "DROP"], + "title": "Specify how to handle metadata.", + "default": "ADD_FIELD", + "markdownDescription": " Possible settings are:\n- `ADD_FIELD`: Add metadata in a column named `metadata`.\n- `DROP`: Drop metadata.\n\nDefault value is : `ADD_FIELD`" + }, + "metadataFieldName": { + "$dynamic": false, + "type": "string", + "title": "The name of metadata field if metadata is `ADD_FIELD`.", + "default": "metadata", + "markdownDescription": "Default value is : `metadata`" + }, + "password": { + "$dynamic": true, + "type": "string", + "title": "Password on the remote server." + }, + "pluginName": { + "$dynamic": false, + "type": "string", + "enum": [ + "DECODERBUFS", + "WAL2JSON", + "WAL2JSON_RDS", + "WAL2JSON_STREAMING", + "WAL2JSON_RDS_STREAMING", + "PGOUTPUT" + ], + "title": "The name of the [PostgreSQL logical decoding](https://debezium.io/documentation/reference/stable/connectors/postgresql.html#postgresql-output-plugin) plug-in installed on the PostgreSQL server.", + "default": "PGOUTPUT", + "markdownDescription": "If you are using a `wal2json` plug-in and transactions are very large, the JSON batch event that contains all transaction changes might not fit into the hard-coded memory buffer, which has a size of 1 GB. In such cases, switch to a streaming plug-in, by setting the plugin-name property to `wal2json_streaming` or `wal2json_rds_streaming`. With a streaming plug-in, PostgreSQL sends the connector a separate message for each change in a transaction.\n\nDefault value is : `PGOUTPUT`" + }, + "port": { + "$dynamic": true, + "type": "string", + "title": "Port of the remote server." + }, + "properties": { + "$dynamic": true, + "type": "object", + "title": "Additional configuration properties.", + "markdownDescription": "Any additional configuration properties that is valid for the current driver." + }, + "publicationName": { + "$dynamic": true, + "type": "string", + "title": "The name of the PostgreSQL publication created for streaming changes when using `PGOUTPUT`.", + "default": "kestra_publication", + "markdownDescription": "This publication is created at start-up if it does not already exist and it includes all tables. Debezium then applies its own include/exclude list filtering, if configured, to limit the publication to change events for the specific tables of interest. The connector user must have superuser permissions to create this publication, so it is usually preferable to create the publication before starting the connector for the first time.\n\nIf the publication already exists, either for all tables or configured with a subset of tables, Debezium uses the publication as it is defined.\n\nDefault value is : `kestra_publication`" + }, + "retry": { + "oneOf": [ + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Constant-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Exponential-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Random-2" + } + ] + }, + "slotName": { + "$dynamic": true, + "type": "string", + "title": "The name of the PostgreSQL logical decoding slot that was created for streaming changes from a particular plug-in for a particular database/schema.", + "default": "kestra", + "markdownDescription": "The server uses this slot to stream events to the Debezium connector that you are configuring.\nSlot names must conform to [PostgreSQL replication slot naming rules](https://www.postgresql.org/docs/current/static/warm-standby.html#STREAMING-REPLICATION-SLOTS-MANIPULATION), which state: \"Each replication slot has a name, which can contain lower-case letters, numbers, and the underscore character.\"\n\nDefault value is : `kestra`" + }, + "snapshotMode": { + "$dynamic": false, + "type": "string", + "enum": ["INITIAL", "ALWAYS", "NEVER", "INITIAL_ONLY"], + "title": "Specifies the criteria for running a snapshot when the connector starts.", + "default": "INITIAL", + "markdownDescription": " Possible settings are:\n- `INITIAL`: The connector performs a snapshot only when no offsets have been recorded for the logical server name.\n- `ALWAYS`: The connector performs a snapshot each time the connector starts.\n- `NEVER`: The connector never performs snapshots. When a connector is configured this way, its behavior when it starts is as follows. If there is a previously stored LSN, the connector continues streaming changes from that position. If no LSN has been stored, the connector starts streaming changes from the point in time when the PostgreSQL logical replication slot was created on the server. The never snapshot mode is useful only when you know all data of interest is still reflected in the WAL.\n- `INITIAL_ONLY`: The connector performs an initial snapshot and then stops, without processing any subsequent changes.\n\n\nDefault value is : `INITIAL`" + }, + "splitTable": { + "$dynamic": false, + "type": "string", + "enum": ["OFF", "DATABASE", "TABLE"], + "title": "Split table on separate output `uris`.", + "default": "TABLE", + "markdownDescription": " Possible settings are:\n- `TABLE`: This will split all rows by tables on output with name `database.table`\n- `DATABASE`: This will split all rows by databases on output with name `database`.\n- `OFF`: This will **NOT** split all rows resulting in a single `data` output.\n\nDefault value is : `TABLE`" + }, + "sslCert": { + "$dynamic": true, + "type": "string", + "title": "The SSL certificate for the client.", + "markdownDescription": "Must be a PEM encoded certificate." + }, + "sslKey": { + "$dynamic": true, + "type": "string", + "title": "The SSL private key of the client.", + "markdownDescription": "Must be a PEM encoded key." + }, + "sslKeyPassword": { + "$dynamic": true, + "type": "string", + "title": "The password to access the client private key `sslKey`." + }, + "sslMode": { + "$dynamic": false, + "type": "string", + "enum": ["DISABLE", "REQUIRE", "VERIFY_CA", "VERIFY_FULL"], + "title": "Whether to use an encrypted connection to the PostgreSQL server. Options include:\n- `DISABLE` uses an unencrypted connection.\n- `REQUIRE` uses a secure (encrypted) connection, and fails if one cannot be established.\n- `VERIFY_CA` behaves like require but also verifies the server TLS certificate against the configured Certificate Authority (CA) certificates, or fails if no valid matching CA certificates are found.\n- `VERIFY_FULL` behaves like verify-ca but also verifies that the server certificate matches the host to which the connector is trying to connect.\n\nSee the [PostgreSQL documentation](https://www.postgresql.org/docs/current/static/libpq-connect.html) for more information.", + "default": "DISABLE", + "markdownDescription": "Default value is : `DISABLE`" + }, + "sslRootCert": { + "$dynamic": true, + "type": "string", + "title": "The root certificate(s) against which the server is validated.", + "markdownDescription": "Must be a PEM encoded certificate." + }, + "stateName": { + "$dynamic": false, + "type": "string", + "title": "The name of Debezium state file.", + "default": "debezium-state", + "markdownDescription": "Default value is : `debezium-state`" + }, + "timeout": { + "type": "string", + "format": "duration" + }, + "type": { + "const": "io.kestra.plugin.debezium.postgres.Capture" + }, + "username": { + "$dynamic": true, + "type": "string", + "title": "Username on the remote server." + }, + "workerGroup": { + "$ref": "#/definitions/io.kestra.core.models.tasks.WorkerGroup" + } + }, + "required": ["database", "hostname", "id", "port", "type"], + "title": "Wait for change data capture event on PostgreSQL server.", + "markdownDescription": "##### Examples\n\u003E \n```yaml\nhostname: 127.0.0.1\nport: \"5432\"\nusername: psql_user\npassword: psql_passwd\nmaxRecords: 100\ndatabase: my_database\npluginName: PGOUTPUT\nsnapshotMode: ALWAYS\n```" + }, + "io.kestra.plugin.debezium.postgres.RealtimeTrigger": { + "type": "object", + "properties": { + "conditions": { + "$dynamic": false, + "title": "List of conditions in order to limit the flow trigger.", + "type": "array", + "items": { + "oneOf": [ + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.DateTimeBetweenCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.DayWeekCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.DayWeekInMonthCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.ExecutionFlowCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.ExecutionLabelsCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.ExecutionNamespaceCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.ExecutionOutputsCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.ExecutionStatusCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.ExpressionCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.FlowCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.FlowNamespaceCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.HasRetryAttemptCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.MultipleCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.NotCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.OrCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.PublicHolidayCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.TimeBetweenCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.WeekendCondition" + }, + { + "$dynamic": false + } + ] + } + ] + } + }, + "database": { + "$dynamic": true, + "type": "string", + "title": "The name of the PostgreSQL database from which to stream the changes." + }, + "deleted": { + "$dynamic": false, + "type": "string", + "enum": ["ADD_FIELD", "NULL", "DROP"], + "title": "Specify how to handle deleted rows.", + "default": "ADD_FIELD", + "markdownDescription": " Possible settings are:\n- `ADD_FIELD`: Add a deleted field as boolean.\n- `NULL`: Send a row with all values as null.\n- `DROP`: Don't send deleted row.\n\nDefault value is : `ADD_FIELD`" + }, + "deletedFieldName": { + "$dynamic": false, + "type": "string", + "title": "The name of deleted field if deleted is `ADD_FIELD`.", + "default": "deleted", + "markdownDescription": "Default value is : `deleted`" + }, + "description": { + "type": "string" + }, + "disabled": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "excludedColumns": { + "$dynamic": true, + "title": "An optional, comma-separated list of regular expressions that match the fully-qualified names of columns to include in change event record values.", + "markdownDescription": "Fully-qualified names for columns are of the form databaseName.tableName.columnName. Do not also specify the `includedColumns` connector configuration property.\"" + }, + "excludedDatabases": { + "$dynamic": true, + "title": "An optional, comma-separated list of regular expressions that match the names of databases for which you do not want to capture changes.", + "markdownDescription": "The connector captures changes in any database whose name is not in the `excludedDatabases`. Do not also set the `includedDatabases` connector configuration property." + }, + "excludedTables": { + "$dynamic": true, + "title": "An optional, comma-separated list of regular expressions that match fully-qualified table identifiers for tables whose changes you do not want to capture.", + "markdownDescription": "The connector captures changes in any table not included in `excludedTables`. Each identifier is of the form databaseName.tableName. Do not also specify the `includedTables` connector configuration property." + }, + "format": { + "$dynamic": false, + "type": "string", + "enum": ["RAW", "INLINE", "WRAP"], + "title": "The format of the output.", + "default": "INLINE", + "markdownDescription": " Possible settings are:\n- `RAW`: Send raw data from debezium.\n- `INLINE`: Send a row like in the source with only data (remove after & before), all the columns will be present for each row.\n- `WRAP`: Send a row like INLINE but wrapped in a `record` field.\n\n\nDefault value is : `INLINE`" + }, + "hostname": { + "$dynamic": true, + "type": "string", + "title": "Hostname of the remote server." + }, + "id": { + "type": "string", + "title": "A unique ID for the whole flow.", + "minLength": 1, + "pattern": "^[a-zA-Z0-9][a-zA-Z0-9_-]*" + }, + "ignoreDdl": { + "$dynamic": false, + "type": "boolean", + "title": "Ignore DDL statement.", + "default": true, + "markdownDescription": "Ignore CREATE, ALTER, DROP and TRUNCATE operations.\n\nDefault value is : `true`" + }, + "includedColumns": { + "$dynamic": true, + "title": "An optional, comma-separated list of regular expressions that match the fully-qualified names of columns to exclude from change event record values.", + "markdownDescription": "Fully-qualified names for columns are of the form databaseName.tableName.columnName. Do not also specify the `excludedColumns` connector configuration property." + }, + "includedDatabases": { + "$dynamic": true, + "title": "An optional, comma-separated list of regular expressions that match the names of the databases for which to capture changes.", + "markdownDescription": "The connector does not capture changes in any database whose name is not in `includedDatabases`. By default, the connector captures changes in all databases. Do not also set the `excludedDatabases` connector configuration property." + }, + "includedTables": { + "$dynamic": true, + "title": "An optional, comma-separated list of regular expressions that match fully-qualified table identifiers of tables whose changes you want to capture.", + "markdownDescription": "The connector does not capture changes in any table not included in `includedTables`. Each identifier is of the form databaseName.tableName. By default, the connector captures changes in every non-system table in each database whose changes are being captured. Do not also specify the `excludedTables` connector configuration property." + }, + "key": { + "$dynamic": false, + "type": "string", + "enum": ["ADD_FIELD", "DROP"], + "title": "Specify how to handle key.", + "default": "ADD_FIELD", + "markdownDescription": " Possible settings are:\n- `ADD_FIELD`: Add key(s) merged with columns.\n- `DROP`: Drop keys.\n\nDefault value is : `ADD_FIELD`" + }, + "labels": { + "title": "The labels to pass to the execution created.", + "type": "array", + "items": { + "$ref": "#/definitions/io.kestra.core.models.Label" + } + }, + "logLevel": { + "type": "string", + "enum": ["ERROR", "WARN", "INFO", "DEBUG", "TRACE"] + }, + "metadata": { + "$dynamic": false, + "type": "string", + "enum": ["ADD_FIELD", "DROP"], + "title": "Specify how to handle metadata.", + "default": "ADD_FIELD", + "markdownDescription": " Possible settings are:\n- `ADD_FIELD`: Add metadata in a column named `metadata`.\n- `DROP`: Drop metadata.\n\nDefault value is : `ADD_FIELD`" + }, + "metadataFieldName": { + "$dynamic": false, + "type": "string", + "title": "The name of metadata field if metadata is `ADD_FIELD`.", + "default": "metadata", + "markdownDescription": "Default value is : `metadata`" + }, + "offsetsCommitMode": { + "$dynamic": false, + "type": "string", + "enum": ["ON_EACH_BATCH", "ON_STOP"], + "title": "How to commit the offsets to the state store.", + "default": "ON_EACH_BATCH", + "markdownDescription": "Possible values are:\n- ON_EACH_BATCH: after each batch of records consumed by this trigger, the offsets will be stored in the state store. This avoids any duplicated records being consumed but can be costly if a lot of events are produced.\n- ON_STOP: when this trigger is stopped or killed, the offsets will be stored in the state store. This avoid any un-necessary write to the state store, but if the trigger is not stopped gracefully the state store may not be updated leading to duplicated records consumption.\n\nDefault value is : `ON_EACH_BATCH`" + }, + "password": { + "$dynamic": true, + "type": "string", + "title": "Password on the remote server." + }, + "pluginName": { + "$dynamic": false, + "type": "string", + "enum": [ + "DECODERBUFS", + "WAL2JSON", + "WAL2JSON_RDS", + "WAL2JSON_STREAMING", + "WAL2JSON_RDS_STREAMING", + "PGOUTPUT" + ], + "title": "The name of the [PostgreSQL logical decoding](https://debezium.io/documentation/reference/stable/connectors/postgresql.html#postgresql-output-plugin) plug-in installed on the PostgreSQL server.", + "default": "PGOUTPUT", + "markdownDescription": "If you are using a `wal2json` plug-in and transactions are very large, the JSON batch event that contains all transaction changes might not fit into the hard-coded memory buffer, which has a size of 1 GB. In such cases, switch to a streaming plug-in, by setting the plugin-name property to `wal2json_streaming` or `wal2json_rds_streaming`. With a streaming plug-in, PostgreSQL sends the connector a separate message for each change in a transaction.\n\nDefault value is : `PGOUTPUT`" + }, + "port": { + "$dynamic": true, + "type": "string", + "title": "Port of the remote server." + }, + "properties": { + "$dynamic": true, + "type": "object", + "title": "Additional configuration properties.", + "markdownDescription": "Any additional configuration properties that is valid for the current driver." + }, + "publicationName": { + "$dynamic": true, + "type": "string", + "title": "The name of the PostgreSQL publication created for streaming changes when using `PGOUTPUT`.", + "default": "kestra_publication", + "markdownDescription": "This publication is created at start-up if it does not already exist and it includes all tables. Debezium then applies its own include/exclude list filtering, if configured, to limit the publication to change events for the specific tables of interest. The connector user must have superuser permissions to create this publication, so it is usually preferable to create the publication before starting the connector for the first time.\n\nIf the publication already exists, either for all tables or configured with a subset of tables, Debezium uses the publication as it is defined.\n\nDefault value is : `kestra_publication`" + }, + "slotName": { + "$dynamic": true, + "type": "string", + "title": "The name of the PostgreSQL logical decoding slot that was created for streaming changes from a particular plug-in for a particular database/schema.", + "default": "kestra", + "markdownDescription": "The server uses this slot to stream events to the Debezium connector that you are configuring.\nSlot names must conform to [PostgreSQL replication slot naming rules](https://www.postgresql.org/docs/current/static/warm-standby.html#STREAMING-REPLICATION-SLOTS-MANIPULATION), which state: \"Each replication slot has a name, which can contain lower-case letters, numbers, and the underscore character.\"\n\nDefault value is : `kestra`" + }, + "snapshotMode": { + "$dynamic": false, + "type": "string", + "enum": ["INITIAL", "ALWAYS", "NEVER", "INITIAL_ONLY"], + "title": "Specifies the criteria for running a snapshot when the connector starts.", + "default": "INITIAL", + "markdownDescription": " Possible settings are:\n- `INITIAL`: The connector performs a snapshot only when no offsets have been recorded for the logical server name.\n- `ALWAYS`: The connector performs a snapshot each time the connector starts.\n- `NEVER`: The connector never performs snapshots. When a connector is configured this way, its behavior when it starts is as follows. If there is a previously stored LSN, the connector continues streaming changes from that position. If no LSN has been stored, the connector starts streaming changes from the point in time when the PostgreSQL logical replication slot was created on the server. The never snapshot mode is useful only when you know all data of interest is still reflected in the WAL.\n- `INITIAL_ONLY`: The connector performs an initial snapshot and then stops, without processing any subsequent changes.\n\n\nDefault value is : `INITIAL`" + }, + "splitTable": { + "$dynamic": false, + "type": "string", + "enum": ["OFF", "DATABASE", "TABLE"], + "title": "Split table on separate output `uris`.", + "default": "TABLE", + "markdownDescription": " Possible settings are:\n- `TABLE`: This will split all rows by tables on output with name `database.table`\n- `DATABASE`: This will split all rows by databases on output with name `database`.\n- `OFF`: This will **NOT** split all rows resulting in a single `data` output.\n\nDefault value is : `TABLE`" + }, + "sslCert": { + "$dynamic": true, + "type": "string", + "title": "The SSL certificate for the client.", + "markdownDescription": "Must be a PEM encoded certificate." + }, + "sslKey": { + "$dynamic": true, + "type": "string", + "title": "The SSL private key of the client.", + "markdownDescription": "Must be a PEM encoded key." + }, + "sslKeyPassword": { + "$dynamic": true, + "type": "string", + "title": "The password to access the client private key `sslKey`." + }, + "sslMode": { + "$dynamic": false, + "type": "string", + "enum": ["DISABLE", "REQUIRE", "VERIFY_CA", "VERIFY_FULL"], + "title": "Whether to use an encrypted connection to the PostgreSQL server. Options include:\n- `DISABLE` uses an unencrypted connection.\n- `REQUIRE` uses a secure (encrypted) connection, and fails if one cannot be established.\n- `VERIFY_CA` behaves like require but also verifies the server TLS certificate against the configured Certificate Authority (CA) certificates, or fails if no valid matching CA certificates are found.\n- `VERIFY_FULL` behaves like verify-ca but also verifies that the server certificate matches the host to which the connector is trying to connect.\n\nSee the [PostgreSQL documentation](https://www.postgresql.org/docs/current/static/libpq-connect.html) for more information.", + "default": "DISABLE", + "markdownDescription": "Default value is : `DISABLE`" + }, + "sslRootCert": { + "$dynamic": true, + "type": "string", + "title": "The root certificate(s) against which the server is validated.", + "markdownDescription": "Must be a PEM encoded certificate." + }, + "stateName": { + "$dynamic": false, + "type": "string", + "title": "The name of Debezium state file.", + "default": "debezium-state", + "markdownDescription": "Default value is : `debezium-state`" + }, + "stopAfter": { + "$dynamic": false, + "title": "List of execution states after which a trigger should be stopped (a.k.a. disabled).", + "type": "array", + "items": { + "$dynamic": false, + "type": "string", + "enum": [ + "CREATED", + "RUNNING", + "PAUSED", + "RESTARTED", + "KILLING", + "SUCCESS", + "WARNING", + "FAILED", + "KILLED", + "CANCELLED", + "QUEUED", + "RETRYING", + "RETRIED" + ] + } + }, + "type": { + "const": "io.kestra.plugin.debezium.postgres.RealtimeTrigger" + }, + "username": { + "$dynamic": true, + "type": "string", + "title": "Username on the remote server." + }, + "workerGroup": { + "$ref": "#/definitions/io.kestra.core.models.tasks.WorkerGroup" + } + }, + "required": ["database", "hostname", "id", "port", "type"], + "title": "Consume a message in real-time from a PostgreSQL database via change data capture and create one execution per row.", + "markdownDescription": "If you would like to consume multiple messages processed within a given time frame and process them in batch, you can use the [io.kestra.plugin.debezium.postgres.Trigger](https://kestra.io/plugins/plugin-debezium/triggers/io.kestra.plugin.debezium.postgres.trigger) instead.##### Examples\n\u003E Consume a message from a PostgreSQL database via change data capture in real-time.\n```yaml\nid: debezium-postgres\nnamespace: company.team\n\ntasks:\n - id: send_data\n type: io.kestra.plugin.core.log.Log\n message: \"{{ trigger.data }}\"\n\ntriggers:\n - id: realtime\n type: io.kestra.plugin.debezium.postgres.RealtimeTrigger\n database: postgres\n hostname: 127.0.0.1\n port: 65432\n username: postgres\n password: pg_passwd\n```" + }, + "io.kestra.plugin.debezium.postgres.Trigger": { + "type": "object", + "properties": { + "conditions": { + "$dynamic": false, + "title": "List of conditions in order to limit the flow trigger.", + "type": "array", + "items": { + "oneOf": [ + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.DateTimeBetweenCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.DayWeekCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.DayWeekInMonthCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.ExecutionFlowCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.ExecutionLabelsCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.ExecutionNamespaceCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.ExecutionOutputsCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.ExecutionStatusCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.ExpressionCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.FlowCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.FlowNamespaceCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.HasRetryAttemptCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.MultipleCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.NotCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.OrCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.PublicHolidayCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.TimeBetweenCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.WeekendCondition" + }, + { + "$dynamic": false + } + ] + } + ] + } + }, + "database": { + "$dynamic": true, + "type": "string", + "title": "The name of the PostgreSQL database from which to stream the changes." + }, + "deleted": { + "$dynamic": false, + "type": "string", + "enum": ["ADD_FIELD", "NULL", "DROP"], + "title": "Specify how to handle deleted rows.", + "default": "ADD_FIELD", + "markdownDescription": " Possible settings are:\n- `ADD_FIELD`: Add a deleted field as boolean.\n- `NULL`: Send a row with all values as null.\n- `DROP`: Don't send deleted row.\n\nDefault value is : `ADD_FIELD`" + }, + "deletedFieldName": { + "$dynamic": false, + "type": "string", + "title": "The name of deleted field if deleted is `ADD_FIELD`.", + "default": "deleted", + "markdownDescription": "Default value is : `deleted`" + }, + "description": { + "type": "string" + }, + "disabled": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "excludedColumns": { + "$dynamic": true, + "title": "An optional, comma-separated list of regular expressions that match the fully-qualified names of columns to include in change event record values.", + "markdownDescription": "Fully-qualified names for columns are of the form databaseName.tableName.columnName. Do not also specify the `includedColumns` connector configuration property.\"" + }, + "excludedDatabases": { + "$dynamic": true, + "title": "An optional, comma-separated list of regular expressions that match the names of databases for which you do not want to capture changes.", + "markdownDescription": "The connector captures changes in any database whose name is not in the `excludedDatabases`. Do not also set the `includedDatabases` connector configuration property." + }, + "excludedTables": { + "$dynamic": true, + "title": "An optional, comma-separated list of regular expressions that match fully-qualified table identifiers for tables whose changes you do not want to capture.", + "markdownDescription": "The connector captures changes in any table not included in `excludedTables`. Each identifier is of the form databaseName.tableName. Do not also specify the `includedTables` connector configuration property." + }, + "format": { + "$dynamic": false, + "type": "string", + "enum": ["RAW", "INLINE", "WRAP"], + "title": "The format of the output.", + "default": "INLINE", + "markdownDescription": " Possible settings are:\n- `RAW`: Send raw data from debezium.\n- `INLINE`: Send a row like in the source with only data (remove after & before), all the columns will be present for each row.\n- `WRAP`: Send a row like INLINE but wrapped in a `record` field.\n\n\nDefault value is : `INLINE`" + }, + "hostname": { + "$dynamic": true, + "type": "string", + "title": "Hostname of the remote server." + }, + "id": { + "type": "string", + "title": "A unique ID for the whole flow.", + "minLength": 1, + "pattern": "^[a-zA-Z0-9][a-zA-Z0-9_-]*" + }, + "ignoreDdl": { + "$dynamic": false, + "type": "boolean", + "title": "Ignore DDL statement.", + "default": true, + "markdownDescription": "Ignore CREATE, ALTER, DROP and TRUNCATE operations.\n\nDefault value is : `true`" + }, + "includedColumns": { + "$dynamic": true, + "title": "An optional, comma-separated list of regular expressions that match the fully-qualified names of columns to exclude from change event record values.", + "markdownDescription": "Fully-qualified names for columns are of the form databaseName.tableName.columnName. Do not also specify the `excludedColumns` connector configuration property." + }, + "includedDatabases": { + "$dynamic": true, + "title": "An optional, comma-separated list of regular expressions that match the names of the databases for which to capture changes.", + "markdownDescription": "The connector does not capture changes in any database whose name is not in `includedDatabases`. By default, the connector captures changes in all databases. Do not also set the `excludedDatabases` connector configuration property." + }, + "includedTables": { + "$dynamic": true, + "title": "An optional, comma-separated list of regular expressions that match fully-qualified table identifiers of tables whose changes you want to capture.", + "markdownDescription": "The connector does not capture changes in any table not included in `includedTables`. Each identifier is of the form databaseName.tableName. By default, the connector captures changes in every non-system table in each database whose changes are being captured. Do not also specify the `excludedTables` connector configuration property." + }, + "interval": { + "$dynamic": false, + "type": "string", + "format": "duration", + "title": "Interval between polling.", + "default": 60, + "markdownDescription": "The interval between 2 different polls of schedule, this can avoid to overload the remote system with too many calls. For most of the triggers that depend on external systems, a minimal interval must be at least PT30S.\nSee [ISO_8601 Durations](https://en.wikipedia.org/wiki/ISO_8601#Durations) for more information of available interval values.\n\nDefault value is : `60.000000000`" + }, + "key": { + "$dynamic": false, + "type": "string", + "enum": ["ADD_FIELD", "DROP"], + "title": "Specify how to handle key.", + "default": "ADD_FIELD", + "markdownDescription": " Possible settings are:\n- `ADD_FIELD`: Add key(s) merged with columns.\n- `DROP`: Drop keys.\n\nDefault value is : `ADD_FIELD`" + }, + "labels": { + "title": "The labels to pass to the execution created.", + "type": "array", + "items": { + "$ref": "#/definitions/io.kestra.core.models.Label" + } + }, + "logLevel": { + "type": "string", + "enum": ["ERROR", "WARN", "INFO", "DEBUG", "TRACE"] + }, + "maxDuration": { + "$dynamic": false, + "type": "string", + "format": "duration", + "title": "The maximum duration waiting for new rows.", + "markdownDescription": "It's not an hard limit and is evaluated every second.\n It is taken into account after the snapshot if any." + }, + "maxRecords": { + "$dynamic": false, + "type": "integer", + "title": "The maximum number of rows to fetch before stopping.", + "markdownDescription": "It's not an hard limit and is evaluated every second." + }, + "maxSnapshotDuration": { + "$dynamic": false, + "type": "string", + "format": "duration", + "title": "The maximum duration waiting for the snapshot to ends.", + "default": 3600, + "markdownDescription": "It's not an hard limit and is evaluated every second.\n The properties 'maxRecord', 'maxDuration' and 'maxWait' are evaluated only after the snapshot is done.\n\nDefault value is : `3600.000000000`" + }, + "maxWait": { + "$dynamic": false, + "type": "string", + "format": "duration", + "title": "The maximum total processing duration.", + "default": 10, + "markdownDescription": "It's not an hard limit and is evaluated every second.\n It is taken into account after the snapshot if any.\n\nDefault value is : `10.000000000`" + }, + "metadata": { + "$dynamic": false, + "type": "string", + "enum": ["ADD_FIELD", "DROP"], + "title": "Specify how to handle metadata.", + "default": "ADD_FIELD", + "markdownDescription": " Possible settings are:\n- `ADD_FIELD`: Add metadata in a column named `metadata`.\n- `DROP`: Drop metadata.\n\nDefault value is : `ADD_FIELD`" + }, + "metadataFieldName": { + "$dynamic": false, + "type": "string", + "title": "The name of metadata field if metadata is `ADD_FIELD`.", + "default": "metadata", + "markdownDescription": "Default value is : `metadata`" + }, + "password": { + "$dynamic": true, + "type": "string", + "title": "Password on the remote server." + }, + "pluginName": { + "$dynamic": false, + "type": "string", + "enum": [ + "DECODERBUFS", + "WAL2JSON", + "WAL2JSON_RDS", + "WAL2JSON_STREAMING", + "WAL2JSON_RDS_STREAMING", + "PGOUTPUT" + ], + "title": "The name of the [PostgreSQL logical decoding](https://debezium.io/documentation/reference/stable/connectors/postgresql.html#postgresql-output-plugin) plug-in installed on the PostgreSQL server.", + "default": "PGOUTPUT", + "markdownDescription": "If you are using a `wal2json` plug-in and transactions are very large, the JSON batch event that contains all transaction changes might not fit into the hard-coded memory buffer, which has a size of 1 GB. In such cases, switch to a streaming plug-in, by setting the plugin-name property to `wal2json_streaming` or `wal2json_rds_streaming`. With a streaming plug-in, PostgreSQL sends the connector a separate message for each change in a transaction.\n\nDefault value is : `PGOUTPUT`" + }, + "port": { + "$dynamic": true, + "type": "string", + "title": "Port of the remote server." + }, + "properties": { + "$dynamic": true, + "type": "object", + "title": "Additional configuration properties.", + "markdownDescription": "Any additional configuration properties that is valid for the current driver." + }, + "publicationName": { + "$dynamic": true, + "type": "string", + "title": "The name of the PostgreSQL publication created for streaming changes when using `PGOUTPUT`.", + "default": "kestra_publication", + "markdownDescription": "This publication is created at start-up if it does not already exist and it includes all tables. Debezium then applies its own include/exclude list filtering, if configured, to limit the publication to change events for the specific tables of interest. The connector user must have superuser permissions to create this publication, so it is usually preferable to create the publication before starting the connector for the first time.\n\nIf the publication already exists, either for all tables or configured with a subset of tables, Debezium uses the publication as it is defined.\n\nDefault value is : `kestra_publication`" + }, + "slotName": { + "$dynamic": true, + "type": "string", + "title": "The name of the PostgreSQL logical decoding slot that was created for streaming changes from a particular plug-in for a particular database/schema.", + "default": "kestra", + "markdownDescription": "The server uses this slot to stream events to the Debezium connector that you are configuring.\nSlot names must conform to [PostgreSQL replication slot naming rules](https://www.postgresql.org/docs/current/static/warm-standby.html#STREAMING-REPLICATION-SLOTS-MANIPULATION), which state: \"Each replication slot has a name, which can contain lower-case letters, numbers, and the underscore character.\"\n\nDefault value is : `kestra`" + }, + "snapshotMode": { + "$dynamic": false, + "type": "string", + "enum": ["INITIAL", "ALWAYS", "NEVER", "INITIAL_ONLY"], + "title": "Specifies the criteria for running a snapshot when the connector starts.", + "default": "INITIAL", + "markdownDescription": " Possible settings are:\n- `INITIAL`: The connector performs a snapshot only when no offsets have been recorded for the logical server name.\n- `ALWAYS`: The connector performs a snapshot each time the connector starts.\n- `NEVER`: The connector never performs snapshots. When a connector is configured this way, its behavior when it starts is as follows. If there is a previously stored LSN, the connector continues streaming changes from that position. If no LSN has been stored, the connector starts streaming changes from the point in time when the PostgreSQL logical replication slot was created on the server. The never snapshot mode is useful only when you know all data of interest is still reflected in the WAL.\n- `INITIAL_ONLY`: The connector performs an initial snapshot and then stops, without processing any subsequent changes.\n\n\nDefault value is : `INITIAL`" + }, + "splitTable": { + "$dynamic": false, + "type": "string", + "enum": ["OFF", "DATABASE", "TABLE"], + "title": "Split table on separate output `uris`.", + "default": "TABLE", + "markdownDescription": " Possible settings are:\n- `TABLE`: This will split all rows by tables on output with name `database.table`\n- `DATABASE`: This will split all rows by databases on output with name `database`.\n- `OFF`: This will **NOT** split all rows resulting in a single `data` output.\n\nDefault value is : `TABLE`" + }, + "sslCert": { + "$dynamic": true, + "type": "string", + "title": "The SSL certificate for the client.", + "markdownDescription": "Must be a PEM encoded certificate." + }, + "sslKey": { + "$dynamic": true, + "type": "string", + "title": "The SSL private key of the client.", + "markdownDescription": "Must be a PEM encoded key." + }, + "sslKeyPassword": { + "$dynamic": true, + "type": "string", + "title": "The password to access the client private key `sslKey`." + }, + "sslMode": { + "$dynamic": false, + "type": "string", + "enum": ["DISABLE", "REQUIRE", "VERIFY_CA", "VERIFY_FULL"], + "title": "Whether to use an encrypted connection to the PostgreSQL server. Options include:\n- `DISABLE` uses an unencrypted connection.\n- `REQUIRE` uses a secure (encrypted) connection, and fails if one cannot be established.\n- `VERIFY_CA` behaves like require but also verifies the server TLS certificate against the configured Certificate Authority (CA) certificates, or fails if no valid matching CA certificates are found.\n- `VERIFY_FULL` behaves like verify-ca but also verifies that the server certificate matches the host to which the connector is trying to connect.\n\nSee the [PostgreSQL documentation](https://www.postgresql.org/docs/current/static/libpq-connect.html) for more information.", + "default": "DISABLE", + "markdownDescription": "Default value is : `DISABLE`" + }, + "sslRootCert": { + "$dynamic": true, + "type": "string", + "title": "The root certificate(s) against which the server is validated.", + "markdownDescription": "Must be a PEM encoded certificate." + }, + "stateName": { + "$dynamic": false, + "type": "string", + "title": "The name of Debezium state file.", + "default": "debezium-state", + "markdownDescription": "Default value is : `debezium-state`" + }, + "stopAfter": { + "$dynamic": false, + "title": "List of execution states after which a trigger should be stopped (a.k.a. disabled).", + "type": "array", + "items": { + "$dynamic": false, + "type": "string", + "enum": [ + "CREATED", + "RUNNING", + "PAUSED", + "RESTARTED", + "KILLING", + "SUCCESS", + "WARNING", + "FAILED", + "KILLED", + "CANCELLED", + "QUEUED", + "RETRYING", + "RETRIED" + ] + } + }, + "type": { + "const": "io.kestra.plugin.debezium.postgres.Trigger" + }, + "username": { + "$dynamic": true, + "type": "string", + "title": "Username on the remote server." + }, + "workerGroup": { + "$ref": "#/definitions/io.kestra.core.models.tasks.WorkerGroup" + } + }, + "required": ["database", "hostname", "id", "port", "type"], + "title": "Consume messages periodically from a PostgreSQL database via change data capture and create one execution per batch.", + "markdownDescription": "If you would like to consume each message from change data capture in real-time and create one execution per message, you can use the [io.kestra.plugin.debezium.postgres.RealtimeTrigger](https://kestra.io/plugins/plugin-debezium/triggers/io.kestra.plugin.debezium.postgres.realtimetrigger) instead.##### Examples\n\u003E \n```yaml\nhostname: 127.0.0.1\nport: \"5432\"\nusername: posgres\npassword: psql_passwd\nmaxRecords: 100\ndatabase: my_database\npluginName: PGOUTPUT\nsnapshotMode: ALWAYS\n```" + }, + "io.kestra.plugin.debezium.sqlserver.Capture": { + "type": "object", + "properties": { + "allowFailure": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "database": { + "$dynamic": true, + "type": "string", + "title": "The name of the Microsoft SQL Server database from which to stream the changes." + }, + "deleted": { + "$dynamic": false, + "type": "string", + "enum": ["ADD_FIELD", "NULL", "DROP"], + "title": "Specify how to handle deleted rows.", + "default": "ADD_FIELD", + "markdownDescription": " Possible settings are:\n- `ADD_FIELD`: Add a deleted field as boolean.\n- `NULL`: Send a row with all values as null.\n- `DROP`: Don't send deleted row.\n\nDefault value is : `ADD_FIELD`" + }, + "deletedFieldName": { + "$dynamic": false, + "type": "string", + "title": "The name of deleted field if deleted is `ADD_FIELD`.", + "default": "deleted", + "markdownDescription": "Default value is : `deleted`" + }, + "description": { + "type": "string" + }, + "disabled": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "excludedColumns": { + "$dynamic": true, + "title": "An optional, comma-separated list of regular expressions that match the fully-qualified names of columns to include in change event record values.", + "markdownDescription": "Fully-qualified names for columns are of the form databaseName.tableName.columnName. Do not also specify the `includedColumns` connector configuration property.\"" + }, + "excludedDatabases": { + "$dynamic": true, + "title": "An optional, comma-separated list of regular expressions that match the names of databases for which you do not want to capture changes.", + "markdownDescription": "The connector captures changes in any database whose name is not in the `excludedDatabases`. Do not also set the `includedDatabases` connector configuration property." + }, + "excludedTables": { + "$dynamic": true, + "title": "An optional, comma-separated list of regular expressions that match fully-qualified table identifiers for tables whose changes you do not want to capture.", + "markdownDescription": "The connector captures changes in any table not included in `excludedTables`. Each identifier is of the form databaseName.tableName. Do not also specify the `includedTables` connector configuration property." + }, + "format": { + "$dynamic": false, + "type": "string", + "enum": ["RAW", "INLINE", "WRAP"], + "title": "The format of the output.", + "default": "INLINE", + "markdownDescription": " Possible settings are:\n- `RAW`: Send raw data from debezium.\n- `INLINE`: Send a row like in the source with only data (remove after & before), all the columns will be present for each row.\n- `WRAP`: Send a row like INLINE but wrapped in a `record` field.\n\n\nDefault value is : `INLINE`" + }, + "hostname": { + "$dynamic": true, + "type": "string", + "title": "Hostname of the remote server." + }, + "id": { + "type": "string", + "minLength": 1, + "pattern": "^[a-zA-Z0-9][a-zA-Z0-9_-]*" + }, + "ignoreDdl": { + "$dynamic": false, + "type": "boolean", + "title": "Ignore DDL statement.", + "default": true, + "markdownDescription": "Ignore CREATE, ALTER, DROP and TRUNCATE operations.\n\nDefault value is : `true`" + }, + "includedColumns": { + "$dynamic": true, + "title": "An optional, comma-separated list of regular expressions that match the fully-qualified names of columns to exclude from change event record values.", + "markdownDescription": "Fully-qualified names for columns are of the form databaseName.tableName.columnName. Do not also specify the `excludedColumns` connector configuration property." + }, + "includedDatabases": { + "$dynamic": true, + "title": "An optional, comma-separated list of regular expressions that match the names of the databases for which to capture changes.", + "markdownDescription": "The connector does not capture changes in any database whose name is not in `includedDatabases`. By default, the connector captures changes in all databases. Do not also set the `excludedDatabases` connector configuration property." + }, + "includedTables": { + "$dynamic": true, + "title": "An optional, comma-separated list of regular expressions that match fully-qualified table identifiers of tables whose changes you want to capture.", + "markdownDescription": "The connector does not capture changes in any table not included in `includedTables`. Each identifier is of the form databaseName.tableName. By default, the connector captures changes in every non-system table in each database whose changes are being captured. Do not also specify the `excludedTables` connector configuration property." + }, + "key": { + "$dynamic": false, + "type": "string", + "enum": ["ADD_FIELD", "DROP"], + "title": "Specify how to handle key.", + "default": "ADD_FIELD", + "markdownDescription": " Possible settings are:\n- `ADD_FIELD`: Add key(s) merged with columns.\n- `DROP`: Drop keys.\n\nDefault value is : `ADD_FIELD`" + }, + "logLevel": { + "type": "string", + "enum": ["ERROR", "WARN", "INFO", "DEBUG", "TRACE"] + }, + "maxDuration": { + "$dynamic": false, + "type": "string", + "format": "duration", + "title": "The maximum duration waiting for new rows.", + "markdownDescription": "It's not an hard limit and is evaluated every second.\n It is taken into account after the snapshot if any." + }, + "maxRecords": { + "$dynamic": false, + "type": "integer", + "title": "The maximum number of rows to fetch before stopping.", + "markdownDescription": "It's not an hard limit and is evaluated every second." + }, + "maxSnapshotDuration": { + "$dynamic": false, + "type": "string", + "format": "duration", + "title": "The maximum duration waiting for the snapshot to ends.", + "default": 3600, + "markdownDescription": "It's not an hard limit and is evaluated every second.\n The properties 'maxRecord', 'maxDuration' and 'maxWait' are evaluated only after the snapshot is done.\n\nDefault value is : `3600.000000000`" + }, + "maxWait": { + "$dynamic": false, + "type": "string", + "format": "duration", + "title": "The maximum total processing duration.", + "default": 10, + "markdownDescription": "It's not an hard limit and is evaluated every second.\n It is taken into account after the snapshot if any.\n\nDefault value is : `10.000000000`" + }, + "metadata": { + "$dynamic": false, + "type": "string", + "enum": ["ADD_FIELD", "DROP"], + "title": "Specify how to handle metadata.", + "default": "ADD_FIELD", + "markdownDescription": " Possible settings are:\n- `ADD_FIELD`: Add metadata in a column named `metadata`.\n- `DROP`: Drop metadata.\n\nDefault value is : `ADD_FIELD`" + }, + "metadataFieldName": { + "$dynamic": false, + "type": "string", + "title": "The name of metadata field if metadata is `ADD_FIELD`.", + "default": "metadata", + "markdownDescription": "Default value is : `metadata`" + }, + "password": { + "$dynamic": true, + "type": "string", + "title": "Password on the remote server." + }, + "port": { + "$dynamic": true, + "type": "string", + "title": "Port of the remote server." + }, + "properties": { + "$dynamic": true, + "type": "object", + "title": "Additional configuration properties.", + "markdownDescription": "Any additional configuration properties that is valid for the current driver." + }, + "retry": { + "oneOf": [ + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Constant-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Exponential-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Random-2" + } + ] + }, + "snapshotMode": { + "$dynamic": false, + "type": "string", + "enum": ["INITIAL", "INITIAL_ONLY", "SCHEMA_ONLY"], + "title": "Specifies the criteria for running a snapshot when the connector starts.", + "default": "INITIAL", + "markdownDescription": " Possible settings are:\n- `INITIAL`: Takes a snapshot of structure and data of captured tables; useful if topics should be populated with a complete representation of the data from the captured tables.\n- `INITIAL_ONLY`: Takes a snapshot of structure and data like initial but instead does not transition into streaming changes once the snapshot has completed.\n- `SCHEMA_ONLY`: Takes a snapshot of the structure of captured tables only; useful if only changes happening from now onwards should be propagated to topics.\n\n\nDefault value is : `INITIAL`" + }, + "splitTable": { + "$dynamic": false, + "type": "string", + "enum": ["OFF", "DATABASE", "TABLE"], + "title": "Split table on separate output `uris`.", + "default": "TABLE", + "markdownDescription": " Possible settings are:\n- `TABLE`: This will split all rows by tables on output with name `database.table`\n- `DATABASE`: This will split all rows by databases on output with name `database`.\n- `OFF`: This will **NOT** split all rows resulting in a single `data` output.\n\nDefault value is : `TABLE`" + }, + "stateName": { + "$dynamic": false, + "type": "string", + "title": "The name of Debezium state file.", + "default": "debezium-state", + "markdownDescription": "Default value is : `debezium-state`" + }, + "timeout": { + "type": "string", + "format": "duration" + }, + "type": { + "const": "io.kestra.plugin.debezium.sqlserver.Capture" + }, + "username": { + "$dynamic": true, + "type": "string", + "title": "Username on the remote server." + }, + "workerGroup": { + "$ref": "#/definitions/io.kestra.core.models.tasks.WorkerGroup" + } + }, + "required": ["database", "hostname", "id", "port", "type"], + "title": "Wait for change data capture event on Microsoft SQL Server.", + "markdownDescription": "##### Examples\n\u003E \n```yaml\nsnapshotMode: INITIAL\nhostname: 127.0.0.1\nport: \"1433\"\nusername: sqlserver_user\npassword: sqlserver_passwd\nmaxRecords: 100\n```" + }, + "io.kestra.plugin.debezium.sqlserver.RealtimeTrigger": { + "type": "object", + "properties": { + "conditions": { + "$dynamic": false, + "title": "List of conditions in order to limit the flow trigger.", + "type": "array", + "items": { + "oneOf": [ + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.DateTimeBetweenCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.DayWeekCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.DayWeekInMonthCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.ExecutionFlowCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.ExecutionLabelsCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.ExecutionNamespaceCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.ExecutionOutputsCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.ExecutionStatusCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.ExpressionCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.FlowCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.FlowNamespaceCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.HasRetryAttemptCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.MultipleCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.NotCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.OrCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.PublicHolidayCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.TimeBetweenCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.WeekendCondition" + }, + { + "$dynamic": false + } + ] + } + ] + } + }, + "database": { + "$dynamic": true, + "type": "string", + "title": "The name of the Microsoft SQL Server database from which to stream the changes." + }, + "deleted": { + "$dynamic": false, + "type": "string", + "enum": ["ADD_FIELD", "NULL", "DROP"], + "title": "Specify how to handle deleted rows.", + "default": "ADD_FIELD", + "markdownDescription": " Possible settings are:\n- `ADD_FIELD`: Add a deleted field as boolean.\n- `NULL`: Send a row with all values as null.\n- `DROP`: Don't send deleted row.\n\nDefault value is : `ADD_FIELD`" + }, + "deletedFieldName": { + "$dynamic": false, + "type": "string", + "title": "The name of deleted field if deleted is `ADD_FIELD`.", + "default": "deleted", + "markdownDescription": "Default value is : `deleted`" + }, + "description": { + "type": "string" + }, + "disabled": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "excludedColumns": { + "$dynamic": true, + "title": "An optional, comma-separated list of regular expressions that match the fully-qualified names of columns to include in change event record values.", + "markdownDescription": "Fully-qualified names for columns are of the form databaseName.tableName.columnName. Do not also specify the `includedColumns` connector configuration property.\"" + }, + "excludedDatabases": { + "$dynamic": true, + "title": "An optional, comma-separated list of regular expressions that match the names of databases for which you do not want to capture changes.", + "markdownDescription": "The connector captures changes in any database whose name is not in the `excludedDatabases`. Do not also set the `includedDatabases` connector configuration property." + }, + "excludedTables": { + "$dynamic": true, + "title": "An optional, comma-separated list of regular expressions that match fully-qualified table identifiers for tables whose changes you do not want to capture.", + "markdownDescription": "The connector captures changes in any table not included in `excludedTables`. Each identifier is of the form databaseName.tableName. Do not also specify the `includedTables` connector configuration property." + }, + "format": { + "$dynamic": false, + "type": "string", + "enum": ["RAW", "INLINE", "WRAP"], + "title": "The format of the output.", + "default": "INLINE", + "markdownDescription": " Possible settings are:\n- `RAW`: Send raw data from debezium.\n- `INLINE`: Send a row like in the source with only data (remove after & before), all the columns will be present for each row.\n- `WRAP`: Send a row like INLINE but wrapped in a `record` field.\n\n\nDefault value is : `INLINE`" + }, + "hostname": { + "$dynamic": true, + "type": "string", + "title": "Hostname of the remote server." + }, + "id": { + "type": "string", + "title": "A unique ID for the whole flow.", + "minLength": 1, + "pattern": "^[a-zA-Z0-9][a-zA-Z0-9_-]*" + }, + "ignoreDdl": { + "$dynamic": false, + "type": "boolean", + "title": "Ignore DDL statement.", + "default": true, + "markdownDescription": "Ignore CREATE, ALTER, DROP and TRUNCATE operations.\n\nDefault value is : `true`" + }, + "includedColumns": { + "$dynamic": true, + "title": "An optional, comma-separated list of regular expressions that match the fully-qualified names of columns to exclude from change event record values.", + "markdownDescription": "Fully-qualified names for columns are of the form databaseName.tableName.columnName. Do not also specify the `excludedColumns` connector configuration property." + }, + "includedDatabases": { + "$dynamic": true, + "title": "An optional, comma-separated list of regular expressions that match the names of the databases for which to capture changes.", + "markdownDescription": "The connector does not capture changes in any database whose name is not in `includedDatabases`. By default, the connector captures changes in all databases. Do not also set the `excludedDatabases` connector configuration property." + }, + "includedTables": { + "$dynamic": true, + "title": "An optional, comma-separated list of regular expressions that match fully-qualified table identifiers of tables whose changes you want to capture.", + "markdownDescription": "The connector does not capture changes in any table not included in `includedTables`. Each identifier is of the form databaseName.tableName. By default, the connector captures changes in every non-system table in each database whose changes are being captured. Do not also specify the `excludedTables` connector configuration property." + }, + "key": { + "$dynamic": false, + "type": "string", + "enum": ["ADD_FIELD", "DROP"], + "title": "Specify how to handle key.", + "default": "ADD_FIELD", + "markdownDescription": " Possible settings are:\n- `ADD_FIELD`: Add key(s) merged with columns.\n- `DROP`: Drop keys.\n\nDefault value is : `ADD_FIELD`" + }, + "labels": { + "title": "The labels to pass to the execution created.", + "type": "array", + "items": { + "$ref": "#/definitions/io.kestra.core.models.Label" + } + }, + "logLevel": { + "type": "string", + "enum": ["ERROR", "WARN", "INFO", "DEBUG", "TRACE"] + }, + "metadata": { + "$dynamic": false, + "type": "string", + "enum": ["ADD_FIELD", "DROP"], + "title": "Specify how to handle metadata.", + "default": "ADD_FIELD", + "markdownDescription": " Possible settings are:\n- `ADD_FIELD`: Add metadata in a column named `metadata`.\n- `DROP`: Drop metadata.\n\nDefault value is : `ADD_FIELD`" + }, + "metadataFieldName": { + "$dynamic": false, + "type": "string", + "title": "The name of metadata field if metadata is `ADD_FIELD`.", + "default": "metadata", + "markdownDescription": "Default value is : `metadata`" + }, + "offsetsCommitMode": { + "$dynamic": false, + "type": "string", + "enum": ["ON_EACH_BATCH", "ON_STOP"], + "title": "How to commit the offsets to the state store.", + "default": "ON_EACH_BATCH", + "markdownDescription": "Possible values are:\n- ON_EACH_BATCH: after each batch of records consumed by this trigger, the offsets will be stored in the state store. This avoids any duplicated records being consumed but can be costly if a lot of events are produced.\n- ON_STOP: when this trigger is stopped or killed, the offsets will be stored in the state store. This avoid any un-necessary write to the state store, but if the trigger is not stopped gracefully the state store may not be updated leading to duplicated records consumption.\n\nDefault value is : `ON_EACH_BATCH`" + }, + "password": { + "$dynamic": true, + "type": "string", + "title": "Password on the remote server." + }, + "port": { + "$dynamic": true, + "type": "string", + "title": "Port of the remote server." + }, + "properties": { + "$dynamic": true, + "type": "object", + "title": "Additional configuration properties.", + "markdownDescription": "Any additional configuration properties that is valid for the current driver." + }, + "serverId": { + "type": "string" + }, + "snapshotMode": { + "$dynamic": false, + "type": "string", + "enum": ["INITIAL", "INITIAL_ONLY", "SCHEMA_ONLY"], + "title": "Specifies the criteria for running a snapshot when the connector starts.", + "default": "INITIAL", + "markdownDescription": " Possible settings are:\n- `INITIAL`: Takes a snapshot of structure and data of captured tables; useful if topics should be populated with a complete representation of the data from the captured tables.\n- `INITIAL_ONLY`: Takes a snapshot of structure and data like initial but instead does not transition into streaming changes once the snapshot has completed.\n- `SCHEMA_ONLY`: Takes a snapshot of the structure of captured tables only; useful if only changes happening from now onwards should be propagated to topics.\n\n\nDefault value is : `INITIAL`" + }, + "splitTable": { + "$dynamic": false, + "type": "string", + "enum": ["OFF", "DATABASE", "TABLE"], + "title": "Split table on separate output `uris`.", + "default": "TABLE", + "markdownDescription": " Possible settings are:\n- `TABLE`: This will split all rows by tables on output with name `database.table`\n- `DATABASE`: This will split all rows by databases on output with name `database`.\n- `OFF`: This will **NOT** split all rows resulting in a single `data` output.\n\nDefault value is : `TABLE`" + }, + "stateName": { + "$dynamic": false, + "type": "string", + "title": "The name of Debezium state file.", + "default": "debezium-state", + "markdownDescription": "Default value is : `debezium-state`" + }, + "stopAfter": { + "$dynamic": false, + "title": "List of execution states after which a trigger should be stopped (a.k.a. disabled).", + "type": "array", + "items": { + "$dynamic": false, + "type": "string", + "enum": [ + "CREATED", + "RUNNING", + "PAUSED", + "RESTARTED", + "KILLING", + "SUCCESS", + "WARNING", + "FAILED", + "KILLED", + "CANCELLED", + "QUEUED", + "RETRYING", + "RETRIED" + ] + } + }, + "type": { + "const": "io.kestra.plugin.debezium.sqlserver.RealtimeTrigger" + }, + "username": { + "$dynamic": true, + "type": "string", + "title": "Username on the remote server." + }, + "workerGroup": { + "$ref": "#/definitions/io.kestra.core.models.tasks.WorkerGroup" + } + }, + "required": ["database", "hostname", "id", "port", "type"], + "title": "Consume a message in real-time from a SQL Server database via change data capture and create one execution per row.", + "markdownDescription": "If you would like to consume multiple messages processed within a given time frame and process them in batch, you can use the [io.kestra.plugin.debezium.sqlserver.Trigger](https://kestra.io/plugins/plugin-debezium/triggers/io.kestra.plugin.debezium.sqlserver.trigger) instead.##### Examples\n\u003E Consume a message from a SQL Server database via change data capture in real-time.\n```yaml\nid: debezium-sqlserver\nnamespace: company.team\n\ntasks:\n - id: send_data\n type: io.kestra.plugin.core.log.Log\n message: \"{{ trigger.data }}\"\n\ntriggers:\n - id: realtime\n type: io.kestra.plugin.debezium.sqlserver.RealtimeTrigger\n hostname: 127.0.0.1\n port: 61433\n username: sa\n password: password\n database: deb\n```" + }, + "io.kestra.plugin.debezium.sqlserver.Trigger": { + "type": "object", + "properties": { + "conditions": { + "$dynamic": false, + "title": "List of conditions in order to limit the flow trigger.", + "type": "array", + "items": { + "oneOf": [ + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.DateTimeBetweenCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.DayWeekCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.DayWeekInMonthCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.ExecutionFlowCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.ExecutionLabelsCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.ExecutionNamespaceCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.ExecutionOutputsCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.ExecutionStatusCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.ExpressionCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.FlowCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.FlowNamespaceCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.HasRetryAttemptCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.MultipleCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.NotCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.OrCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.PublicHolidayCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.TimeBetweenCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.WeekendCondition" + }, + { + "$dynamic": false + } + ] + } + ] + } + }, + "database": { + "$dynamic": true, + "type": "string", + "title": "The name of the Microsoft SQL Server database from which to stream the changes." + }, + "deleted": { + "$dynamic": false, + "type": "string", + "enum": ["ADD_FIELD", "NULL", "DROP"], + "title": "Specify how to handle deleted rows.", + "default": "ADD_FIELD", + "markdownDescription": " Possible settings are:\n- `ADD_FIELD`: Add a deleted field as boolean.\n- `NULL`: Send a row with all values as null.\n- `DROP`: Don't send deleted row.\n\nDefault value is : `ADD_FIELD`" + }, + "deletedFieldName": { + "$dynamic": false, + "type": "string", + "title": "The name of deleted field if deleted is `ADD_FIELD`.", + "default": "deleted", + "markdownDescription": "Default value is : `deleted`" + }, + "description": { + "type": "string" + }, + "disabled": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "excludedColumns": { + "$dynamic": true, + "title": "An optional, comma-separated list of regular expressions that match the fully-qualified names of columns to include in change event record values.", + "markdownDescription": "Fully-qualified names for columns are of the form databaseName.tableName.columnName. Do not also specify the `includedColumns` connector configuration property.\"" + }, + "excludedDatabases": { + "$dynamic": true, + "title": "An optional, comma-separated list of regular expressions that match the names of databases for which you do not want to capture changes.", + "markdownDescription": "The connector captures changes in any database whose name is not in the `excludedDatabases`. Do not also set the `includedDatabases` connector configuration property." + }, + "excludedTables": { + "$dynamic": true, + "title": "An optional, comma-separated list of regular expressions that match fully-qualified table identifiers for tables whose changes you do not want to capture.", + "markdownDescription": "The connector captures changes in any table not included in `excludedTables`. Each identifier is of the form databaseName.tableName. Do not also specify the `includedTables` connector configuration property." + }, + "format": { + "$dynamic": false, + "type": "string", + "enum": ["RAW", "INLINE", "WRAP"], + "title": "The format of the output.", + "default": "INLINE", + "markdownDescription": " Possible settings are:\n- `RAW`: Send raw data from debezium.\n- `INLINE`: Send a row like in the source with only data (remove after & before), all the columns will be present for each row.\n- `WRAP`: Send a row like INLINE but wrapped in a `record` field.\n\n\nDefault value is : `INLINE`" + }, + "hostname": { + "$dynamic": true, + "type": "string", + "title": "Hostname of the remote server." + }, + "id": { + "type": "string", + "title": "A unique ID for the whole flow.", + "minLength": 1, + "pattern": "^[a-zA-Z0-9][a-zA-Z0-9_-]*" + }, + "ignoreDdl": { + "$dynamic": false, + "type": "boolean", + "title": "Ignore DDL statement.", + "default": true, + "markdownDescription": "Ignore CREATE, ALTER, DROP and TRUNCATE operations.\n\nDefault value is : `true`" + }, + "includedColumns": { + "$dynamic": true, + "title": "An optional, comma-separated list of regular expressions that match the fully-qualified names of columns to exclude from change event record values.", + "markdownDescription": "Fully-qualified names for columns are of the form databaseName.tableName.columnName. Do not also specify the `excludedColumns` connector configuration property." + }, + "includedDatabases": { + "$dynamic": true, + "title": "An optional, comma-separated list of regular expressions that match the names of the databases for which to capture changes.", + "markdownDescription": "The connector does not capture changes in any database whose name is not in `includedDatabases`. By default, the connector captures changes in all databases. Do not also set the `excludedDatabases` connector configuration property." + }, + "includedTables": { + "$dynamic": true, + "title": "An optional, comma-separated list of regular expressions that match fully-qualified table identifiers of tables whose changes you want to capture.", + "markdownDescription": "The connector does not capture changes in any table not included in `includedTables`. Each identifier is of the form databaseName.tableName. By default, the connector captures changes in every non-system table in each database whose changes are being captured. Do not also specify the `excludedTables` connector configuration property." + }, + "interval": { + "$dynamic": false, + "type": "string", + "format": "duration", + "title": "Interval between polling.", + "default": 60, + "markdownDescription": "The interval between 2 different polls of schedule, this can avoid to overload the remote system with too many calls. For most of the triggers that depend on external systems, a minimal interval must be at least PT30S.\nSee [ISO_8601 Durations](https://en.wikipedia.org/wiki/ISO_8601#Durations) for more information of available interval values.\n\nDefault value is : `60.000000000`" + }, + "key": { + "$dynamic": false, + "type": "string", + "enum": ["ADD_FIELD", "DROP"], + "title": "Specify how to handle key.", + "default": "ADD_FIELD", + "markdownDescription": " Possible settings are:\n- `ADD_FIELD`: Add key(s) merged with columns.\n- `DROP`: Drop keys.\n\nDefault value is : `ADD_FIELD`" + }, + "labels": { + "title": "The labels to pass to the execution created.", + "type": "array", + "items": { + "$ref": "#/definitions/io.kestra.core.models.Label" + } + }, + "logLevel": { + "type": "string", + "enum": ["ERROR", "WARN", "INFO", "DEBUG", "TRACE"] + }, + "maxDuration": { + "$dynamic": false, + "type": "string", + "format": "duration", + "title": "The maximum duration waiting for new rows.", + "markdownDescription": "It's not an hard limit and is evaluated every second.\n It is taken into account after the snapshot if any." + }, + "maxRecords": { + "$dynamic": false, + "type": "integer", + "title": "The maximum number of rows to fetch before stopping.", + "markdownDescription": "It's not an hard limit and is evaluated every second." + }, + "maxSnapshotDuration": { + "$dynamic": false, + "type": "string", + "format": "duration", + "title": "The maximum duration waiting for the snapshot to ends.", + "default": 3600, + "markdownDescription": "It's not an hard limit and is evaluated every second.\n The properties 'maxRecord', 'maxDuration' and 'maxWait' are evaluated only after the snapshot is done.\n\nDefault value is : `3600.000000000`" + }, + "maxWait": { + "$dynamic": false, + "type": "string", + "format": "duration", + "title": "The maximum total processing duration.", + "default": 10, + "markdownDescription": "It's not an hard limit and is evaluated every second.\n It is taken into account after the snapshot if any.\n\nDefault value is : `10.000000000`" + }, + "metadata": { + "$dynamic": false, + "type": "string", + "enum": ["ADD_FIELD", "DROP"], + "title": "Specify how to handle metadata.", + "default": "ADD_FIELD", + "markdownDescription": " Possible settings are:\n- `ADD_FIELD`: Add metadata in a column named `metadata`.\n- `DROP`: Drop metadata.\n\nDefault value is : `ADD_FIELD`" + }, + "metadataFieldName": { + "$dynamic": false, + "type": "string", + "title": "The name of metadata field if metadata is `ADD_FIELD`.", + "default": "metadata", + "markdownDescription": "Default value is : `metadata`" + }, + "password": { + "$dynamic": true, + "type": "string", + "title": "Password on the remote server." + }, + "port": { + "$dynamic": true, + "type": "string", + "title": "Port of the remote server." + }, + "properties": { + "$dynamic": true, + "type": "object", + "title": "Additional configuration properties.", + "markdownDescription": "Any additional configuration properties that is valid for the current driver." + }, + "serverId": { + "type": "string" + }, + "snapshotMode": { + "$dynamic": false, + "type": "string", + "enum": ["INITIAL", "INITIAL_ONLY", "SCHEMA_ONLY"], + "title": "Specifies the criteria for running a snapshot when the connector starts.", + "default": "INITIAL", + "markdownDescription": " Possible settings are:\n- `INITIAL`: Takes a snapshot of structure and data of captured tables; useful if topics should be populated with a complete representation of the data from the captured tables.\n- `INITIAL_ONLY`: Takes a snapshot of structure and data like initial but instead does not transition into streaming changes once the snapshot has completed.\n- `SCHEMA_ONLY`: Takes a snapshot of the structure of captured tables only; useful if only changes happening from now onwards should be propagated to topics.\n\n\nDefault value is : `INITIAL`" + }, + "splitTable": { + "$dynamic": false, + "type": "string", + "enum": ["OFF", "DATABASE", "TABLE"], + "title": "Split table on separate output `uris`.", + "default": "TABLE", + "markdownDescription": " Possible settings are:\n- `TABLE`: This will split all rows by tables on output with name `database.table`\n- `DATABASE`: This will split all rows by databases on output with name `database`.\n- `OFF`: This will **NOT** split all rows resulting in a single `data` output.\n\nDefault value is : `TABLE`" + }, + "stateName": { + "$dynamic": false, + "type": "string", + "title": "The name of Debezium state file.", + "default": "debezium-state", + "markdownDescription": "Default value is : `debezium-state`" + }, + "stopAfter": { + "$dynamic": false, + "title": "List of execution states after which a trigger should be stopped (a.k.a. disabled).", + "type": "array", + "items": { + "$dynamic": false, + "type": "string", + "enum": [ + "CREATED", + "RUNNING", + "PAUSED", + "RESTARTED", + "KILLING", + "SUCCESS", + "WARNING", + "FAILED", + "KILLED", + "CANCELLED", + "QUEUED", + "RETRYING", + "RETRIED" + ] + } + }, + "type": { + "const": "io.kestra.plugin.debezium.sqlserver.Trigger" + }, + "username": { + "$dynamic": true, + "type": "string", + "title": "Username on the remote server." + }, + "workerGroup": { + "$ref": "#/definitions/io.kestra.core.models.tasks.WorkerGroup" + } + }, + "required": ["database", "hostname", "id", "port", "type"], + "title": "Consume messages periodically from a SQL Server database via change data capture and create one execution per batch.", + "markdownDescription": "If you would like to consume each message from change data capture in real-time and create one execution per message, you can use the [io.kestra.plugin.debezium.sqlserver.RealtimeTrigger](https://kestra.io/plugins/plugin-debezium/triggers/io.kestra.plugin.debezium.sqlserver.realtimetrigger) instead.##### Examples\n\u003E \n```yaml\nsnapshotMode: INITIAL\nhostname: 127.0.0.1\nport: \"1433\"\nusername: sqlserver_user\npassword: sqlserver_passwd\ndatabase: deb\nmaxRecords: 100\n```" + }, + "io.kestra.plugin.docker.Build": { + "type": "object", + "properties": { + "allowFailure": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "buildArgs": { + "$dynamic": true, + "type": "object", + "title": "Optional build arguments in a `key: value` format.", + "additionalProperties": { + "type": "string" + } + }, + "credentials": { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.scripts.runner.docker.Credentials" + }, + { + "$dynamic": false, + "title": "Credentials to push your image to a container registry." + } + ] + }, + "description": { + "type": "string" + }, + "disabled": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "dockerfile": { + "$dynamic": true, + "type": "string", + "title": "The contents of your Dockerfile passed as a string, or a path to the Dockerfile" + }, + "host": { + "$dynamic": true, + "type": "string", + "title": "The URI of your Docker host e.g. localhost" + }, + "id": { + "type": "string", + "minLength": 1, + "pattern": "^[a-zA-Z0-9][a-zA-Z0-9_-]*" + }, + "inputFiles": { + "$dynamic": true, + "title": "The files to create on the local filesystem. It can be a map or a JSON object.", + "oneOf": [ + { + "type": "object" + }, + { + "type": "string" + } + ] + }, + "labels": { + "$dynamic": true, + "type": "object", + "title": "Additional metadata for the image in a `key: value` format.", + "additionalProperties": { + "type": "string" + } + }, + "logLevel": { + "type": "string", + "enum": ["ERROR", "WARN", "INFO", "DEBUG", "TRACE"] + }, + "namespaceFiles": { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.core.models.tasks.NamespaceFiles" + }, + { + "$dynamic": false, + "title": "Inject namespace files.", + "markdownDescription": "Inject namespace files to this task. When enabled, it will, by default, load all namespace files into the working directory. However, you can use the `include` or `exclude` properties to limit which namespace files will be injected." + } + ] + }, + "platforms": { + "$dynamic": true, + "title": "The target platform for the image e.g. linux/amd64.", + "type": "array", + "items": { + "$dynamic": true, + "type": "string" + } + }, + "pull": { + "$dynamic": true, + "type": "boolean", + "title": "Always attempt to pull the latest version of the base image.", + "default": true, + "markdownDescription": "Default value is : `true`" + }, + "push": { + "$dynamic": true, + "type": "boolean", + "title": "Whether to push the image to a remote container registry.", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "retry": { + "oneOf": [ + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Constant-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Exponential-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Random-2" + } + ] + }, + "tags": { + "$dynamic": true, + "title": "The list of tag of this image.", + "type": "array", + "items": { + "$dynamic": true, + "type": "string" + } + }, + "timeout": { + "type": "string", + "format": "duration" + }, + "type": { + "const": "io.kestra.plugin.docker.Build" + }, + "workerGroup": { + "$ref": "#/definitions/io.kestra.core.models.tasks.WorkerGroup" + } + }, + "required": ["id", "tags", "type"], + "title": "Build a Docker image and push it to a remote container registry.", + "markdownDescription": "##### Examples\n\u003E Build and push a Docker image to a registry\n```yaml\ndockerfile: |\n FROM ubuntu\n ARG APT_PACKAGES=\"\"\n\n RUN apt-get update && apt-get install -y --no-install-recommends ${APT_PACKAGES};\nplatforms:\n- linux/amd64\ntags:\n- private-registry.io/unit-test:latest\nbuildArgs:\n APT_PACKAGES: curl\nlabels:\n unit-test: \"true\"\ncredentials:\n registry: \u003Cregistry.url.com\u003E\n username: \u003Cyour-user\u003E\n password: \u003Cyour-password\u003E\n```" + }, + "io.kestra.plugin.docker.Run": { + "type": "object", + "properties": { + "allowFailure": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "commands": { + "$dynamic": true, + "title": "The commands to run", + "default": [], + "markdownDescription": "Default value is : `[]`\n\nDefault value is : `[]`", + "type": "array", + "items": { + "$dynamic": true, + "type": "string" + } + }, + "config": { + "$dynamic": true, + "title": "Docker configuration file.", + "markdownDescription": "Docker configuration file that can set access credentials to private container registries. Usually located in `~/.docker/config.json`.", + "oneOf": [ + { + "type": "string" + }, + { + "type": "object" + } + ] + }, + "containerImage": { + "$dynamic": true, + "type": "string", + "title": "Docker image to use.", + "minLength": 1 + }, + "cpu": { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.scripts.runner.docker.Cpu" + }, + { + "$dynamic": false, + "title": "Limits the CPU usage to a given maximum threshold value.", + "markdownDescription": "By default, each container’s access to the host machine’s CPU cycles is unlimited. You can set various constraints to limit a given container’s access to the host machine’s CPU cycles." + } + ] + }, + "credentials": { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.scripts.runner.docker.Credentials" + }, + { + "$dynamic": true, + "title": "Credentials for a private container registry." + } + ] + }, + "description": { + "type": "string" + }, + "deviceRequests": { + "$dynamic": false, + "title": "A list of device requests to be sent to device drivers.", + "type": "array", + "items": { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.scripts.runner.docker.DeviceRequest" + }, + { + "$dynamic": false + } + ] + } + }, + "disabled": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "entryPoint": { + "$dynamic": true, + "title": "Docker entrypoint to use.", + "type": "array", + "items": { + "$dynamic": true, + "type": "string" + } + }, + "env": { + "$dynamic": true, + "type": "object", + "title": "Additional environment variables for the Docker container.", + "additionalProperties": { + "type": "string" + } + }, + "extraHosts": { + "$dynamic": true, + "title": "Extra hostname mappings to the container network interface configuration.", + "type": "array", + "items": { + "$dynamic": true, + "type": "string" + } + }, + "host": { + "$dynamic": true, + "type": "string", + "title": "Docker API URI." + }, + "id": { + "type": "string", + "minLength": 1, + "pattern": "^[a-zA-Z0-9][a-zA-Z0-9_-]*" + }, + "inputFiles": { + "$dynamic": true, + "title": "The files to create on the local filesystem. It can be a map or a JSON object.", + "oneOf": [ + { + "type": "object" + }, + { + "type": "string" + } + ] + }, + "logLevel": { + "type": "string", + "enum": ["ERROR", "WARN", "INFO", "DEBUG", "TRACE"] + }, + "memory": { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.scripts.runner.docker.Memory" + }, + { + "$dynamic": false, + "title": "Limits memory usage to a given maximum threshold value.", + "markdownDescription": "Docker can enforce hard memory limits, which allow the container to use no more than a given amount of user or system memory, or soft limits, which allow the container to use as much memory as it needs unless certain conditions are met, such as when the kernel detects low memory or contention on the host machine. Some of these options have different effects when used alone or when more than one option is set." + } + ] + }, + "namespaceFiles": { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.core.models.tasks.NamespaceFiles" + }, + { + "$dynamic": false, + "title": "Inject namespace files.", + "markdownDescription": "Inject namespace files to this task. When enabled, it will, by default, load all namespace files into the working directory. However, you can use the `include` or `exclude` properties to limit which namespace files will be injected." + } + ] + }, + "networkMode": { + "$dynamic": true, + "type": "string", + "title": "Docker network mode to use e.g. `host`, `none`, etc." + }, + "outputFiles": { + "$dynamic": true, + "title": "The files from the local filesystem to send to Kestra's internal storage.", + "markdownDescription": "Must be a list of [glob](https://en.wikipedia.org/wiki/Glob_(programming)) expressions relative to the current working directory, some examples: `my-dir/**`, `my-dir/*/**` or `my-dir/my-file.txt`.", + "type": "array", + "items": { + "$dynamic": true, + "type": "string" + } + }, + "pullPolicy": { + "allOf": [ + { + "type": "string", + "enum": ["IF_NOT_PRESENT", "ALWAYS", "NEVER"], + "title": "The image pull policy for a container image and the tag of the image, which affect when Docker attempts to pull (download) the specified image." + }, + { + "$dynamic": false, + "title": "The pull policy for an image.", + "default": "ALWAYS", + "markdownDescription": "Pull policy can be used to prevent pulling of an already existing image `IF_NOT_PRESENT`, or can be set to `ALWAYS` to pull the latest version of the image even if an image with the same tag already exists.\n\nDefault value is : `ALWAYS`" + } + ] + }, + "retry": { + "oneOf": [ + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Constant-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Exponential-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Random-2" + } + ] + }, + "shmSize": { + "$dynamic": true, + "type": "string", + "title": "Size of `/dev/shm` in bytes.", + "markdownDescription": "The size must be greater than 0. If omitted, the system uses 64MB." + }, + "timeout": { + "type": "string", + "format": "duration" + }, + "type": { + "const": "io.kestra.plugin.docker.Run" + }, + "user": { + "$dynamic": true, + "type": "string", + "title": "User in the Docker container." + }, + "volumes": { + "$dynamic": true, + "title": "List of volumes to mount.", + "markdownDescription": "Must be a valid mount expression as string, example : `/home/user:/app`.\n\nVolumes mount are disabled by default for security reasons; you must enable them on server configuration by setting `kestra.tasks.scripts.docker.volume-enabled` to `true`.", + "type": "array", + "items": { + "$dynamic": true, + "type": "string" + } + }, + "warningOnStdErr": { + "$dynamic": false, + "type": "boolean", + "title": "Whether to set the task state to `WARNING` if any `stdErr` is emitted.", + "default": true, + "markdownDescription": "Default value is : `true`" + }, + "workerGroup": { + "$ref": "#/definitions/io.kestra.core.models.tasks.WorkerGroup" + } + }, + "required": ["containerImage", "id", "type"], + "title": "Run a Docker container", + "markdownDescription": "##### Examples\n\u003E Run the docker/whalesay container with the command 'cowsay hello'\n```yaml\ncontainerImage: docker/whalesay\ncommands:\n - cowsay\n - hello\n```\n\n\u003E Run the docker/whalesay container with no command\n```yaml\ncontainerImage: docker/whalesay\n```" + }, + "io.kestra.plugin.elasticsearch.Bulk": { + "type": "object", + "properties": { + "allowFailure": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "chunk": { + "$dynamic": true, + "type": "integer", + "title": "The chunk size for every bulk request.", + "default": 1000, + "markdownDescription": "Default value is : `1000`" + }, + "connection": { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.elasticsearch.ElasticsearchConnection" + }, + { + "title": "The connection properties." + } + ] + }, + "description": { + "type": "string" + }, + "disabled": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "from": { + "$dynamic": true, + "type": "string", + "title": "The source file." + }, + "id": { + "type": "string", + "minLength": 1, + "pattern": "^[a-zA-Z0-9][a-zA-Z0-9_-]*" + }, + "logLevel": { + "type": "string", + "enum": ["ERROR", "WARN", "INFO", "DEBUG", "TRACE"] + }, + "retry": { + "oneOf": [ + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Constant-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Exponential-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Random-2" + } + ] + }, + "routing": { + "$dynamic": true, + "type": "string", + "title": "Controls the shard routing of the request.", + "markdownDescription": "Using this value to hash the shard and not the id." + }, + "timeout": { + "type": "string", + "format": "duration" + }, + "type": { + "const": "io.kestra.plugin.elasticsearch.Bulk" + }, + "workerGroup": { + "$ref": "#/definitions/io.kestra.core.models.tasks.WorkerGroup" + } + }, + "required": ["connection", "from", "id", "type"], + "title": "Bulk load documents in ElasticSearch using [bulk files](https://www.elastic.co/guide/en/elasticsearch/reference/current/docs-bulk.html) elastic files.", + "markdownDescription": "##### Examples\n\u003E \n```yaml\nconnection:\n hosts: \n - \"http://localhost:9200\"\nfrom: \"{{ inputs.file }}\"\n```" + }, + "io.kestra.plugin.elasticsearch.ElasticsearchConnection": { + "type": "object", + "properties": { + "basicAuth": { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.elasticsearch.ElasticsearchConnection-BasicAuth" + }, + { + "$dynamic": false, + "title": "Basic auth configuration." + } + ] + }, + "headers": { + "$dynamic": true, + "title": "List of HTTP headers to be send on every request.", + "markdownDescription": "Must be a string with key value separated with `:`, ex: `Authorization: Token XYZ`.", + "type": "array", + "items": { + "$dynamic": true, + "type": "string" + } + }, + "hosts": { + "$dynamic": true, + "title": "List of HTTP ElasticSearch servers.", + "minItems": 1, + "markdownDescription": "Must be an URI like `https://elasticsearch.com:9200` with scheme and port.", + "type": "array", + "items": { + "$dynamic": true, + "type": "string" + } + }, + "pathPrefix": { + "$dynamic": true, + "type": "string", + "title": "Sets the path's prefix for every request used by the HTTP client.", + "markdownDescription": "For example, if this is set to `/my/path`, then any client request will become `/my/path/` + endpoint.\nIn essence, every request's endpoint is prefixed by this `pathPrefix`.\nThe path prefix is useful for when ElasticSearch is behind a proxy that provides a base path or a proxy that requires all paths to start with '/'; it is not intended for other purposes and it should not be supplied in other scenarios." + }, + "strictDeprecationMode": { + "$dynamic": false, + "type": "boolean", + "title": "Whether the REST client should return any response containing at least one warning header as a failure." + }, + "trustAllSsl": { + "$dynamic": false, + "type": "boolean", + "title": "Trust all SSL CA certificates.", + "markdownDescription": "Use this if the server is using a self signed SSL certificate." + } + }, + "required": ["hosts"] + }, + "io.kestra.plugin.elasticsearch.ElasticsearchConnection-BasicAuth": { + "type": "object", + "properties": { + "password": { + "$dynamic": true, + "type": "string", + "title": "Basic auth password." + }, + "username": { + "$dynamic": true, + "type": "string", + "title": "Basic auth username." + } + } + }, + "io.kestra.plugin.elasticsearch.Get": { + "type": "object", + "properties": { + "allowFailure": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "connection": { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.elasticsearch.ElasticsearchConnection" + }, + { + "title": "The connection properties." + } + ] + }, + "description": { + "type": "string" + }, + "disabled": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "id": { + "type": "string", + "minLength": 1, + "pattern": "^[a-zA-Z0-9][a-zA-Z0-9_-]*" + }, + "index": { + "$dynamic": true, + "type": "string", + "title": "The ElasticSearch index." + }, + "key": { + "$dynamic": true, + "type": "string", + "title": "The ElasticSearch id." + }, + "logLevel": { + "type": "string", + "enum": ["ERROR", "WARN", "INFO", "DEBUG", "TRACE"] + }, + "retry": { + "oneOf": [ + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Constant-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Exponential-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Random-2" + } + ] + }, + "routing": { + "$dynamic": true, + "type": "string", + "title": "Controls the shard routing of the request.", + "markdownDescription": "Using this value to hash the shard and not the id." + }, + "timeout": { + "type": "string", + "format": "duration" + }, + "type": { + "const": "io.kestra.plugin.elasticsearch.Get" + }, + "version": { + "$dynamic": false, + "type": "integer", + "title": "Sets the version", + "markdownDescription": "which will cause the get operation to only be performed if a matching version exists and no changes happened on the doc since then." + }, + "workerGroup": { + "$ref": "#/definitions/io.kestra.core.models.tasks.WorkerGroup" + } + }, + "required": ["connection", "id", "index", "key", "type", "version"], + "title": "Get an ElasticSearch document.", + "markdownDescription": "##### Examples\n\u003E \n```yaml\nconnection:\n hosts: \n - \"http://localhost:9200\"\nindex: \"my_index\"\nkey: \"my_id\"\n```" + }, + "io.kestra.plugin.elasticsearch.Load": { + "type": "object", + "properties": { + "allowFailure": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "chunk": { + "$dynamic": true, + "type": "integer", + "title": "The chunk size for every bulk request.", + "default": 1000, + "markdownDescription": "Default value is : `1000`" + }, + "connection": { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.elasticsearch.ElasticsearchConnection" + }, + { + "title": "The connection properties." + } + ] + }, + "description": { + "type": "string" + }, + "disabled": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "from": { + "$dynamic": true, + "type": "string", + "title": "The source file." + }, + "id": { + "type": "string", + "minLength": 1, + "pattern": "^[a-zA-Z0-9][a-zA-Z0-9_-]*" + }, + "idKey": { + "$dynamic": true, + "type": "string", + "title": "Use this key as id." + }, + "index": { + "$dynamic": true, + "type": "string", + "title": "The elasticsearch index." + }, + "logLevel": { + "type": "string", + "enum": ["ERROR", "WARN", "INFO", "DEBUG", "TRACE"] + }, + "opType": { + "$dynamic": false, + "type": "string", + "enum": ["INDEX", "CREATE", "UPDATE", "DELETE"], + "title": "Sets the type of operation to perform." + }, + "removeIdKey": { + "$dynamic": true, + "type": "boolean", + "title": "Remove idKey from the final document.", + "default": true, + "markdownDescription": "Default value is : `true`" + }, + "retry": { + "oneOf": [ + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Constant-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Exponential-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Random-2" + } + ] + }, + "routing": { + "$dynamic": true, + "type": "string", + "title": "Controls the shard routing of the request.", + "markdownDescription": "Using this value to hash the shard and not the id." + }, + "timeout": { + "type": "string", + "format": "duration" + }, + "type": { + "const": "io.kestra.plugin.elasticsearch.Load" + }, + "workerGroup": { + "$ref": "#/definitions/io.kestra.core.models.tasks.WorkerGroup" + } + }, + "required": ["connection", "from", "id", "index", "type"], + "title": "Bulk load documents in ElasticSearch using Kestra Internal Storage file.", + "markdownDescription": "##### Examples\n\u003E \n```yaml\nconnection:\n hosts: \n - \"http://localhost:9200\"\nfrom: \"{{ inputs.file }}\"\nindex: \"my_index\"\n```" + }, + "io.kestra.plugin.elasticsearch.Put": { + "type": "object", + "properties": { + "allowFailure": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "connection": { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.elasticsearch.ElasticsearchConnection" + }, + { + "title": "The connection properties." + } + ] + }, + "contentType": { + "$dynamic": false, + "type": "string", + "enum": ["JSON", "SMILE", "YAML", "CBOR"], + "title": "The content type of `value`.", + "default": "JSON", + "markdownDescription": "Default value is : `JSON`" + }, + "description": { + "type": "string" + }, + "disabled": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "id": { + "type": "string", + "minLength": 1, + "pattern": "^[a-zA-Z0-9][a-zA-Z0-9_-]*" + }, + "index": { + "$dynamic": true, + "type": "string", + "title": "The elasticsearch index." + }, + "key": { + "$dynamic": true, + "type": "string", + "title": "The elasticsearch id." + }, + "logLevel": { + "type": "string", + "enum": ["ERROR", "WARN", "INFO", "DEBUG", "TRACE"] + }, + "opType": { + "$dynamic": false, + "type": "string", + "enum": ["INDEX", "CREATE", "UPDATE", "DELETE"], + "title": "Sets the type of operation to perform." + }, + "refreshPolicy": { + "$dynamic": false, + "type": "string", + "enum": ["NONE", "IMMEDIATE", "WAIT_UNTIL"], + "title": "Should this request trigger a refresh.", + "default": "NONE", + "markdownDescription": "an immediate refresh `IMMEDIATE`, wait for a refresh `WAIT_UNTIL`, or proceed ignore refreshes entirely `NONE`.\n\nDefault value is : `NONE`" + }, + "retry": { + "oneOf": [ + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Constant-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Exponential-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Random-2" + } + ] + }, + "routing": { + "$dynamic": true, + "type": "string", + "title": "Controls the shard routing of the request.", + "markdownDescription": "Using this value to hash the shard and not the id." + }, + "timeout": { + "type": "string", + "format": "duration" + }, + "type": { + "const": "io.kestra.plugin.elasticsearch.Put" + }, + "value": { + "$dynamic": true, + "title": "The elasticsearch value.", + "markdownDescription": "Can be a string. In this case, the contentType will be used or a raw Map." + }, + "workerGroup": { + "$ref": "#/definitions/io.kestra.core.models.tasks.WorkerGroup" + } + }, + "required": ["connection", "id", "index", "type"], + "title": "Put an ElasticSearch document.", + "markdownDescription": "##### Examples\n\u003E Put a document with a Map.\n```yaml\nconnection:\n hosts: \n - \"http://localhost:9200\"\nindex: \"my_index\"\nkey: \"my_id\"\nvalue:\n name: \"John Doe\"\n city: \"Paris\"\n```\n\n\u003E Put a document from a JSON string.\n```yaml\nconnection:\n hosts: \n - \"http://localhost:9200\"\nindex: \"my_index\"\nkey: \"my_id\"\nvalue: \"{{ outputs.task_id.data | json }}\"\n```" + }, + "io.kestra.plugin.elasticsearch.Request": { + "type": "object", + "properties": { + "allowFailure": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "body": { + "$dynamic": true, + "title": "The full body", + "markdownDescription": "Can be a json string or raw Map that will be converted to json" + }, + "connection": { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.elasticsearch.ElasticsearchConnection" + }, + { + "title": "The connection properties." + } + ] + }, + "description": { + "type": "string" + }, + "disabled": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "endpoint": { + "$dynamic": true, + "type": "string", + "title": "The path of the request (without scheme, host, port, or prefix)" + }, + "id": { + "type": "string", + "minLength": 1, + "pattern": "^[a-zA-Z0-9][a-zA-Z0-9_-]*" + }, + "logLevel": { + "type": "string", + "enum": ["ERROR", "WARN", "INFO", "DEBUG", "TRACE"] + }, + "method": { + "$dynamic": false, + "type": "string", + "enum": [ + "CONNECT", + "CUSTOM", + "DELETE", + "GET", + "HEAD", + "OPTIONS", + "PATCH", + "POST", + "PUT", + "TRACE" + ], + "title": "The http method to use", + "default": "GET", + "markdownDescription": "Default value is : `GET`" + }, + "parameters": { + "$dynamic": true, + "type": "object", + "title": "Query string parameters.", + "additionalProperties": { + "type": "string" + } + }, + "retry": { + "oneOf": [ + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Constant-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Exponential-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Random-2" + } + ] + }, + "routing": { + "$dynamic": true, + "type": "string", + "title": "Controls the shard routing of the request.", + "markdownDescription": "Using this value to hash the shard and not the id." + }, + "timeout": { + "type": "string", + "format": "duration" + }, + "type": { + "const": "io.kestra.plugin.elasticsearch.Request" + }, + "workerGroup": { + "$ref": "#/definitions/io.kestra.core.models.tasks.WorkerGroup" + } + }, + "required": ["connection", "id", "type"], + "title": "Send a generic ElasticSearch request.", + "markdownDescription": "##### Examples\n\u003E Inserting a document in an index using POST request.\n```yaml\nconnection:\n hosts: \n - \"http://localhost:9200\"\nmethod: \"POST\"\nendpoint: \"my_index/_doc/john\"\nbody:\n name: \"john\"\n```\n\n\u003E Searching for documents using GET request.\n```yaml\nconnection:\n hosts: \n - \"http://localhost:9200\"\nmethod: \"GET\"\nendpoint: \"my_index/_search\"\nparameters:\n q: \"name:\\\"John Doe\\\"\n```\n\n\u003E Deleting document using DELETE request.\n```yaml\nconnection:\n hosts: \n - \"http://localhost:9200\"\nmethod: \"DELETE\"\nendpoint: \"my_index/_doc/\u003C_id\u003E\"\n```" + }, + "io.kestra.plugin.elasticsearch.Scroll": { + "type": "object", + "properties": { + "allowFailure": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "connection": { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.elasticsearch.ElasticsearchConnection" + }, + { + "title": "The connection properties." + } + ] + }, + "contentType": { + "$dynamic": false, + "type": "string", + "enum": ["JSON", "SMILE", "YAML", "CBOR"], + "title": "The content type of `value`.", + "default": "JSON", + "markdownDescription": "Default value is : `JSON`" + }, + "description": { + "type": "string" + }, + "disabled": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "id": { + "type": "string", + "minLength": 1, + "pattern": "^[a-zA-Z0-9][a-zA-Z0-9_-]*" + }, + "indexes": { + "$dynamic": true, + "title": "The ElasticSearch indices.", + "markdownDescription": "Default to all indices.", + "type": "array", + "items": { + "$dynamic": true, + "type": "string" + } + }, + "logLevel": { + "type": "string", + "enum": ["ERROR", "WARN", "INFO", "DEBUG", "TRACE"] + }, + "request": { + "$dynamic": true, + "title": "The ElasticSearch value.", + "markdownDescription": "Can be a JSON string. In this case, the contentType will be used or a raw Map." + }, + "retry": { + "oneOf": [ + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Constant-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Exponential-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Random-2" + } + ] + }, + "routing": { + "$dynamic": true, + "type": "string", + "title": "Controls the shard routing of the request.", + "markdownDescription": "Using this value to hash the shard and not the id." + }, + "timeout": { + "type": "string", + "format": "duration" + }, + "type": { + "const": "io.kestra.plugin.elasticsearch.Scroll" + }, + "workerGroup": { + "$ref": "#/definitions/io.kestra.core.models.tasks.WorkerGroup" + } + }, + "required": ["connection", "id", "type"], + "title": "Scroll over search request.", + "markdownDescription": "Get all documents from a search request and store it as Kestra Internal Storage file.##### Examples\n\u003E \n```yaml\nconnection:\n hosts: \n - \"http://localhost:9200\"\nindexes:\n - \"my_index\"\nrequest:\n query: \n term:\n name:\n value: 'john'\n```" + }, + "io.kestra.plugin.elasticsearch.Search": { + "type": "object", + "properties": { + "allowFailure": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "connection": { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.elasticsearch.ElasticsearchConnection" + }, + { + "title": "The connection properties." + } + ] + }, + "contentType": { + "$dynamic": false, + "type": "string", + "enum": ["JSON", "SMILE", "YAML", "CBOR"], + "title": "The content type of `value`.", + "default": "JSON", + "markdownDescription": "Default value is : `JSON`" + }, + "description": { + "type": "string" + }, + "disabled": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "fetchType": { + "$dynamic": false, + "type": "string", + "enum": ["STORE", "FETCH", "FETCH_ONE", "NONE"], + "title": "The way you want to store the data.", + "default": "FETCH", + "markdownDescription": "FETCH_ONE output the first row, FETCH output all the rows, STORE store all rows in a file, NONE do nothing.\n\nDefault value is : `FETCH`" + }, + "id": { + "type": "string", + "minLength": 1, + "pattern": "^[a-zA-Z0-9][a-zA-Z0-9_-]*" + }, + "indexes": { + "$dynamic": true, + "title": "The ElasticSearch indices.", + "markdownDescription": "Default to all indices.", + "type": "array", + "items": { + "$dynamic": true, + "type": "string" + } + }, + "logLevel": { + "type": "string", + "enum": ["ERROR", "WARN", "INFO", "DEBUG", "TRACE"] + }, + "request": { + "$dynamic": true, + "title": "The ElasticSearch value.", + "markdownDescription": "Can be a JSON string. In this case, the contentType will be used or a raw Map." + }, + "retry": { + "oneOf": [ + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Constant-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Exponential-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Random-2" + } + ] + }, + "routing": { + "$dynamic": true, + "type": "string", + "title": "Controls the shard routing of the request.", + "markdownDescription": "Using this value to hash the shard and not the id." + }, + "timeout": { + "type": "string", + "format": "duration" + }, + "type": { + "const": "io.kestra.plugin.elasticsearch.Search" + }, + "workerGroup": { + "$ref": "#/definitions/io.kestra.core.models.tasks.WorkerGroup" + } + }, + "required": ["connection", "id", "type"], + "title": "Send a search request.", + "markdownDescription": "Get all documents from a search request and store it as outputs.##### Examples\n\u003E \n```yaml\nconnection:\n hosts: \n - \"http://localhost:9200\"\nindexes:\n - \"my_index\"\nrequest:\n query: \n term:\n name:\n value: 'john'\n```" + }, + "io.kestra.plugin.fivetran.connectors.Sync": { + "type": "object", + "properties": { + "allowFailure": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "apiKey": { + "$dynamic": true, + "type": "string", + "title": "API key" + }, + "apiSecret": { + "$dynamic": true, + "type": "string", + "title": "API secret" + }, + "connectorId": { + "$dynamic": true, + "type": "string", + "title": "The connector id to sync" + }, + "description": { + "type": "string" + }, + "disabled": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "force": { + "$dynamic": false, + "type": "boolean", + "title": "Force with running sync.", + "default": false, + "markdownDescription": "If `force` is true and the connector is currently syncing, it will stop the sync and re-run it. If force is `false`, the connector will sync only if it isn't currently syncing\n\nDefault value is : `false`" + }, + "id": { + "type": "string", + "minLength": 1, + "pattern": "^[a-zA-Z0-9][a-zA-Z0-9_-]*" + }, + "logLevel": { + "type": "string", + "enum": ["ERROR", "WARN", "INFO", "DEBUG", "TRACE"] + }, + "maxDuration": { + "$dynamic": false, + "type": "string", + "format": "duration", + "title": "The max total wait duration", + "default": 3600, + "markdownDescription": "Default value is : `3600.000000000`" + }, + "retry": { + "oneOf": [ + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Constant-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Exponential-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Random-2" + } + ] + }, + "timeout": { + "type": "string", + "format": "duration" + }, + "type": { + "const": "io.kestra.plugin.fivetran.connectors.Sync" + }, + "wait": { + "$dynamic": false, + "type": "boolean", + "title": "Wait for the end of the job.", + "default": true, + "markdownDescription": "Allowing to capture job status & logs\n\nDefault value is : `true`" + }, + "workerGroup": { + "$ref": "#/definitions/io.kestra.core.models.tasks.WorkerGroup" + } + }, + "required": ["apiKey", "apiSecret", "connectorId", "id", "type"], + "title": "Run a sync on a connection", + "markdownDescription": "##### Examples\n\u003E \n```yaml\napiKey: \"\u003CapiKey\u003E\"\napiSecret: \"\u003CapiKey\u003E\"\nconnectorId: \"\u003CconnectorId\u003E\"\n```" + }, + "io.kestra.plugin.fs.ftp.Delete": { + "type": "object", + "properties": { + "allowFailure": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "description": { + "type": "string" + }, + "disabled": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "errorOnMissing": { + "$dynamic": false, + "type": "boolean", + "title": "raise an error if the file is not found", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "host": { + "$dynamic": true, + "type": "string", + "title": "Hostname of the remote server" + }, + "id": { + "type": "string", + "minLength": 1, + "pattern": "^[a-zA-Z0-9][a-zA-Z0-9_-]*" + }, + "logLevel": { + "type": "string", + "enum": ["ERROR", "WARN", "INFO", "DEBUG", "TRACE"] + }, + "passiveMode": { + "$dynamic": false, + "type": "boolean", + "title": "Whether to use a [passive mode](https://www.jscape.com/blog/active-v-s-passive-ftp-simplified). Passive mode is generally considered more secure as it's less likely to encounter issues with NAT and firewalls. Therefore, this property is by default set to `true`. To use active mode instead, set the property to `false`.", + "default": true, + "markdownDescription": "Default value is : `true`" + }, + "password": { + "$dynamic": true, + "type": "string", + "title": "Password on the remote server" + }, + "port": { + "$dynamic": true, + "type": "string", + "title": "Port of the remote server", + "default": "21", + "markdownDescription": "Default value is : `21`" + }, + "proxyHost": { + "$dynamic": true, + "type": "string", + "title": "FTP proxy host" + }, + "proxyPort": { + "$dynamic": true, + "type": "string", + "title": "FTP proxy port" + }, + "proxyType": { + "$dynamic": true, + "type": "string", + "enum": ["DIRECT", "HTTP", "SOCKS"], + "title": "FTP proxy type" + }, + "remoteIpVerification": { + "$dynamic": false, + "type": "boolean", + "title": "Control that the server ip that emit the request is the same than send response.", + "default": true, + "markdownDescription": "Default value is : `true`" + }, + "retry": { + "oneOf": [ + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Constant-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Exponential-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Random-2" + } + ] + }, + "rootDir": { + "$dynamic": false, + "type": "boolean", + "title": "Is path is relative to root dir", + "default": true, + "markdownDescription": "Default value is : `true`" + }, + "timeout": { + "type": "string", + "format": "duration" + }, + "type": { + "const": "io.kestra.plugin.fs.ftp.Delete" + }, + "uri": { + "$dynamic": true, + "type": "string", + "title": "The file to delete" + }, + "username": { + "$dynamic": true, + "type": "string", + "title": "Username on the remote server" + }, + "workerGroup": { + "$ref": "#/definitions/io.kestra.core.models.tasks.WorkerGroup" + } + }, + "required": ["host", "id", "type", "uri"], + "title": "Delete a file to a FTP server.", + "markdownDescription": "##### Examples\n\u003E \n```yaml\nhost: localhost\nport: 21\nusername: foo\npassword: pass\nuri: \"/upload/dir1/file.txt\"\n```" + }, + "io.kestra.plugin.fs.ftp.Download": { + "type": "object", + "properties": { + "allowFailure": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "description": { + "type": "string" + }, + "disabled": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "from": { + "$dynamic": true, + "type": "string", + "title": "The fully-qualified URIs that point to destination path" + }, + "host": { + "$dynamic": true, + "type": "string", + "title": "Hostname of the remote server" + }, + "id": { + "type": "string", + "minLength": 1, + "pattern": "^[a-zA-Z0-9][a-zA-Z0-9_-]*" + }, + "logLevel": { + "type": "string", + "enum": ["ERROR", "WARN", "INFO", "DEBUG", "TRACE"] + }, + "passiveMode": { + "$dynamic": false, + "type": "boolean", + "title": "Whether to use a [passive mode](https://www.jscape.com/blog/active-v-s-passive-ftp-simplified). Passive mode is generally considered more secure as it's less likely to encounter issues with NAT and firewalls. Therefore, this property is by default set to `true`. To use active mode instead, set the property to `false`.", + "default": true, + "markdownDescription": "Default value is : `true`" + }, + "password": { + "$dynamic": true, + "type": "string", + "title": "Password on the remote server" + }, + "port": { + "$dynamic": true, + "type": "string", + "title": "Port of the remote server", + "default": "21", + "markdownDescription": "Default value is : `21`" + }, + "proxyHost": { + "$dynamic": true, + "type": "string", + "title": "FTP proxy host" + }, + "proxyPort": { + "$dynamic": true, + "type": "string", + "title": "FTP proxy port" + }, + "proxyType": { + "$dynamic": true, + "type": "string", + "enum": ["DIRECT", "HTTP", "SOCKS"], + "title": "FTP proxy type" + }, + "remoteIpVerification": { + "$dynamic": false, + "type": "boolean", + "title": "Control that the server ip that emit the request is the same than send response.", + "default": true, + "markdownDescription": "Default value is : `true`" + }, + "retry": { + "oneOf": [ + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Constant-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Exponential-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Random-2" + } + ] + }, + "rootDir": { + "$dynamic": false, + "type": "boolean", + "title": "Is path is relative to root dir", + "default": true, + "markdownDescription": "Default value is : `true`" + }, + "timeout": { + "type": "string", + "format": "duration" + }, + "type": { + "const": "io.kestra.plugin.fs.ftp.Download" + }, + "username": { + "$dynamic": true, + "type": "string", + "title": "Username on the remote server" + }, + "workerGroup": { + "$ref": "#/definitions/io.kestra.core.models.tasks.WorkerGroup" + } + }, + "required": ["from", "host", "id", "type"], + "title": "Download file from FTP server", + "markdownDescription": "##### Examples\n\u003E \n```yaml\nhost: localhost\nport: 21\nusername: foo\npassword: pass\nfrom: \"/in/file.txt\"\n```" + }, + "io.kestra.plugin.fs.ftp.Downloads": { + "type": "object", + "properties": { + "action": { + "$dynamic": true, + "type": "string", + "enum": ["MOVE", "DELETE", "NONE"], + "title": "The action to do on downloaded files" + }, + "allowFailure": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "description": { + "type": "string" + }, + "disabled": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "from": { + "$dynamic": true, + "type": "string", + "title": "The directory to list" + }, + "host": { + "$dynamic": true, + "type": "string", + "title": "Hostname of the remote server" + }, + "id": { + "type": "string", + "minLength": 1, + "pattern": "^[a-zA-Z0-9][a-zA-Z0-9_-]*" + }, + "logLevel": { + "type": "string", + "enum": ["ERROR", "WARN", "INFO", "DEBUG", "TRACE"] + }, + "moveDirectory": { + "$dynamic": true, + "type": "string", + "title": "The destination directory in case off `MOVE` " + }, + "passiveMode": { + "$dynamic": false, + "type": "boolean", + "title": "Whether to use a [passive mode](https://www.jscape.com/blog/active-v-s-passive-ftp-simplified). Passive mode is generally considered more secure as it's less likely to encounter issues with NAT and firewalls. Therefore, this property is by default set to `true`. To use active mode instead, set the property to `false`.", + "default": true, + "markdownDescription": "Default value is : `true`" + }, + "password": { + "$dynamic": true, + "type": "string", + "title": "Password on the remote server" + }, + "port": { + "$dynamic": true, + "type": "string", + "title": "Port of the remote server", + "default": "21", + "markdownDescription": "Default value is : `21`" + }, + "proxyHost": { + "$dynamic": true, + "type": "string", + "title": "FTP proxy host" + }, + "proxyPort": { + "$dynamic": true, + "type": "string", + "title": "FTP proxy port" + }, + "proxyType": { + "$dynamic": true, + "type": "string", + "enum": ["DIRECT", "HTTP", "SOCKS"], + "title": "FTP proxy type" + }, + "recursive": { + "type": "boolean", + "title": "List file recursively", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "regExp": { + "$dynamic": true, + "type": "string", + "title": "A regexp to filter on full path" + }, + "remoteIpVerification": { + "$dynamic": false, + "type": "boolean", + "title": "Control that the server ip that emit the request is the same than send response.", + "default": true, + "markdownDescription": "Default value is : `true`" + }, + "retry": { + "oneOf": [ + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Constant-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Exponential-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Random-2" + } + ] + }, + "rootDir": { + "$dynamic": false, + "type": "boolean", + "title": "Is path is relative to root dir", + "default": true, + "markdownDescription": "Default value is : `true`" + }, + "timeout": { + "type": "string", + "format": "duration" + }, + "type": { + "const": "io.kestra.plugin.fs.ftp.Downloads" + }, + "username": { + "$dynamic": true, + "type": "string", + "title": "Username on the remote server" + }, + "workerGroup": { + "$ref": "#/definitions/io.kestra.core.models.tasks.WorkerGroup" + } + }, + "required": ["from", "host", "id", "type"], + "title": "Download multiple files from FTP server", + "markdownDescription": "##### Examples\n\u003E Download a list of files and move it to an archive folders\n```yaml\nhost: localhost\nport: 21\nusername: foo\npassword: pass\nfrom: \"/in/\"\ninterval: PT10S\naction: MOVE\nmoveDirectory: \"/archive/\"\n```" + }, + "io.kestra.plugin.fs.ftp.List": { + "type": "object", + "properties": { + "allowFailure": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "description": { + "type": "string" + }, + "disabled": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "from": { + "$dynamic": true, + "type": "string", + "title": "The fully-qualified URIs that point to path" + }, + "host": { + "$dynamic": true, + "type": "string", + "title": "Hostname of the remote server" + }, + "id": { + "type": "string", + "minLength": 1, + "pattern": "^[a-zA-Z0-9][a-zA-Z0-9_-]*" + }, + "logLevel": { + "type": "string", + "enum": ["ERROR", "WARN", "INFO", "DEBUG", "TRACE"] + }, + "passiveMode": { + "$dynamic": false, + "type": "boolean", + "title": "Whether to use a [passive mode](https://www.jscape.com/blog/active-v-s-passive-ftp-simplified). Passive mode is generally considered more secure as it's less likely to encounter issues with NAT and firewalls. Therefore, this property is by default set to `true`. To use active mode instead, set the property to `false`.", + "default": true, + "markdownDescription": "Default value is : `true`" + }, + "password": { + "$dynamic": true, + "type": "string", + "title": "Password on the remote server" + }, + "port": { + "$dynamic": true, + "type": "string", + "title": "Port of the remote server", + "default": "21", + "markdownDescription": "Default value is : `21`" + }, + "proxyHost": { + "$dynamic": true, + "type": "string", + "title": "FTP proxy host" + }, + "proxyPort": { + "$dynamic": true, + "type": "string", + "title": "FTP proxy port" + }, + "proxyType": { + "$dynamic": true, + "type": "string", + "enum": ["DIRECT", "HTTP", "SOCKS"], + "title": "FTP proxy type" + }, + "recursive": { + "type": "boolean", + "title": "List file recursively", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "regExp": { + "$dynamic": true, + "type": "string", + "title": "A regexp to filter on full path" + }, + "remoteIpVerification": { + "$dynamic": false, + "type": "boolean", + "title": "Control that the server ip that emit the request is the same than send response.", + "default": true, + "markdownDescription": "Default value is : `true`" + }, + "retry": { + "oneOf": [ + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Constant-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Exponential-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Random-2" + } + ] + }, + "rootDir": { + "$dynamic": false, + "type": "boolean", + "title": "Is path is relative to root dir", + "default": true, + "markdownDescription": "Default value is : `true`" + }, + "timeout": { + "type": "string", + "format": "duration" + }, + "type": { + "const": "io.kestra.plugin.fs.ftp.List" + }, + "username": { + "$dynamic": true, + "type": "string", + "title": "Username on the remote server" + }, + "workerGroup": { + "$ref": "#/definitions/io.kestra.core.models.tasks.WorkerGroup" + } + }, + "required": ["from", "host", "id", "type"], + "title": "List files from FTP server directory", + "markdownDescription": "##### Examples\n\u003E \n```yaml\nhost: localhost\nport: 21\nusername: foo\npassword: pass\nfrom: \"/upload/dir1/\"\nregExp: \".*\\/dir1\\/.*\\.(yaml|yml)\"\n```" + }, + "io.kestra.plugin.fs.ftp.Move": { + "type": "object", + "properties": { + "allowFailure": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "description": { + "type": "string" + }, + "disabled": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "from": { + "$dynamic": true, + "type": "string", + "title": "The file or directory to move from remote server." + }, + "host": { + "$dynamic": true, + "type": "string", + "title": "Hostname of the remote server" + }, + "id": { + "type": "string", + "minLength": 1, + "pattern": "^[a-zA-Z0-9][a-zA-Z0-9_-]*" + }, + "logLevel": { + "type": "string", + "enum": ["ERROR", "WARN", "INFO", "DEBUG", "TRACE"] + }, + "passiveMode": { + "$dynamic": false, + "type": "boolean", + "title": "Whether to use a [passive mode](https://www.jscape.com/blog/active-v-s-passive-ftp-simplified). Passive mode is generally considered more secure as it's less likely to encounter issues with NAT and firewalls. Therefore, this property is by default set to `true`. To use active mode instead, set the property to `false`.", + "default": true, + "markdownDescription": "Default value is : `true`" + }, + "password": { + "$dynamic": true, + "type": "string", + "title": "Password on the remote server" + }, + "port": { + "$dynamic": true, + "type": "string", + "title": "Port of the remote server", + "default": "21", + "markdownDescription": "Default value is : `21`" + }, + "proxyHost": { + "$dynamic": true, + "type": "string", + "title": "FTP proxy host" + }, + "proxyPort": { + "$dynamic": true, + "type": "string", + "title": "FTP proxy port" + }, + "proxyType": { + "$dynamic": true, + "type": "string", + "enum": ["DIRECT", "HTTP", "SOCKS"], + "title": "FTP proxy type" + }, + "remoteIpVerification": { + "$dynamic": false, + "type": "boolean", + "title": "Control that the server ip that emit the request is the same than send response.", + "default": true, + "markdownDescription": "Default value is : `true`" + }, + "retry": { + "oneOf": [ + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Constant-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Exponential-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Random-2" + } + ] + }, + "rootDir": { + "$dynamic": false, + "type": "boolean", + "title": "Is path is relative to root dir", + "default": true, + "markdownDescription": "Default value is : `true`" + }, + "timeout": { + "type": "string", + "format": "duration" + }, + "to": { + "$dynamic": true, + "type": "string", + "title": "The path to move the file or directory to on the remote server.", + "markdownDescription": "The full destination path (with filename optionally)\nIf end with a `/`, the destination is considered as a directory and filename will be happen\nIf the destFile exists, it is deleted first." + }, + "type": { + "const": "io.kestra.plugin.fs.ftp.Move" + }, + "username": { + "$dynamic": true, + "type": "string", + "title": "Username on the remote server" + }, + "workerGroup": { + "$ref": "#/definitions/io.kestra.core.models.tasks.WorkerGroup" + } + }, + "required": ["from", "host", "id", "to", "type"], + "title": "Move a file to a FTP server.", + "markdownDescription": "If the destination directory doesn't exist, it will be created##### Examples\n\u003E \n```yaml\nhost: localhost\nport: 21\nusername: foo\npassword: pass\nfrom: \"/upload/dir1/file.txt\"\nto: \"/upload/dir2/file.txt\"\n```" + }, + "io.kestra.plugin.fs.ftp.Trigger": { + "type": "object", + "properties": { + "action": { + "$dynamic": true, + "type": "string", + "enum": ["MOVE", "DELETE", "NONE"], + "title": "The action to perform on the retrieved files. If using 'NONE' make sure to handle the files inside your flow to avoid infinite triggering." + }, + "conditions": { + "$dynamic": false, + "title": "List of conditions in order to limit the flow trigger.", + "type": "array", + "items": { + "oneOf": [ + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.DateTimeBetweenCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.DayWeekCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.DayWeekInMonthCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.ExecutionFlowCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.ExecutionLabelsCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.ExecutionNamespaceCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.ExecutionOutputsCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.ExecutionStatusCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.ExpressionCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.FlowCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.FlowNamespaceCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.HasRetryAttemptCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.MultipleCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.NotCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.OrCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.PublicHolidayCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.TimeBetweenCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.WeekendCondition" + }, + { + "$dynamic": false + } + ] + } + ] + } + }, + "description": { + "type": "string" + }, + "disabled": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "from": { + "$dynamic": true, + "type": "string", + "title": "The directory to list" + }, + "host": { + "$dynamic": true, + "type": "string", + "title": "Hostname of the remote server" + }, + "id": { + "type": "string", + "title": "A unique ID for the whole flow.", + "minLength": 1, + "pattern": "^[a-zA-Z0-9][a-zA-Z0-9_-]*" + }, + "interval": { + "$dynamic": false, + "type": "string", + "format": "duration", + "title": "The interval between test of triggers", + "default": 60, + "markdownDescription": "Default value is : `60.000000000`" + }, + "labels": { + "title": "The labels to pass to the execution created.", + "type": "array", + "items": { + "$ref": "#/definitions/io.kestra.core.models.Label" + } + }, + "logLevel": { + "type": "string", + "enum": ["ERROR", "WARN", "INFO", "DEBUG", "TRACE"] + }, + "moveDirectory": { + "$dynamic": true, + "type": "string", + "title": "The destination directory in case off `MOVE` " + }, + "passiveMode": { + "$dynamic": false, + "type": "boolean", + "title": "Whether to use a [passive mode](https://www.jscape.com/blog/active-v-s-passive-ftp-simplified). Passive mode is generally considered more secure as it's less likely to encounter issues with NAT and firewalls. Therefore, this property is by default set to `true`. To use active mode instead, set the property to `false`.", + "default": true, + "markdownDescription": "Default value is : `true`" + }, + "password": { + "$dynamic": true, + "type": "string", + "title": "Password on the remote server" + }, + "port": { + "$dynamic": true, + "type": "string", + "title": "Port of the remote server", + "default": "21", + "markdownDescription": "Default value is : `21`" + }, + "proxyHost": { + "$dynamic": true, + "type": "string", + "title": "FTP proxy host" + }, + "proxyPort": { + "$dynamic": true, + "type": "string", + "title": "FTP proxy port" + }, + "proxyType": { + "$dynamic": true, + "type": "string", + "enum": ["DIRECT", "HTTP", "SOCKS"], + "title": "FTP proxy type" + }, + "recursive": { + "type": "boolean", + "title": "List file recursively", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "regExp": { + "$dynamic": true, + "type": "string", + "title": "A regexp to filter on full path" + }, + "remoteIpVerification": { + "$dynamic": false, + "type": "boolean", + "title": "Control that the server ip that emit the request is the same than send response.", + "default": true, + "markdownDescription": "Default value is : `true`" + }, + "rootDir": { + "$dynamic": false, + "type": "boolean", + "title": "Is path is relative to root dir", + "default": true, + "markdownDescription": "Default value is : `true`" + }, + "stopAfter": { + "$dynamic": false, + "title": "List of execution states after which a trigger should be stopped (a.k.a. disabled).", + "type": "array", + "items": { + "$dynamic": false, + "type": "string", + "enum": [ + "CREATED", + "RUNNING", + "PAUSED", + "RESTARTED", + "KILLING", + "SUCCESS", + "WARNING", + "FAILED", + "KILLED", + "CANCELLED", + "QUEUED", + "RETRYING", + "RETRIED" + ] + } + }, + "type": { + "const": "io.kestra.plugin.fs.ftp.Trigger" + }, + "username": { + "$dynamic": true, + "type": "string", + "title": "Username on the remote server" + }, + "workerGroup": { + "$ref": "#/definitions/io.kestra.core.models.tasks.WorkerGroup" + } + }, + "required": ["action", "from", "host", "id", "type"], + "title": "Trigger a flow as soon as new files are detected in a given FTP server's directory.", + "markdownDescription": "##### Examples\n\u003E Wait for one or more files in a given FTP server's directory and process each of these files sequentially.\n```yaml\nid: ftp_trigger_flow\nnamespace: company.team\n\ntasks:\n - id: for_each_file\n type: io.kestra.plugin.core.flow.EachSequential\n value: \"{{ trigger.files | jq('.path') }}\"\n tasks:\n - id: return\n type: io.kestra.plugin.core.debug.Return\n format: \"{{ taskrun.value }}\"\n\ntriggers:\n - id: watch\n type: io.kestra.plugin.fs.ftp.Trigger\n host: localhost\n port: 21\n username: foo\n password: bar\n from: \"/in/\"\n interval: PT10S\n action: MOVE\n moveDirectory: \"/archive/\"\n```\n\n\u003E Wait for one or more files in a given FTP server's directory and process each of these files sequentially. Delete files manually after processing to prevent infinite triggering.\n```yaml\nid: ftp_trigger_flow\nnamespace: company.team\n\ntasks:\n - id: for_each_file\n type: io.kestra.plugin.core.flow.EachSequential\n value: \"{{ trigger.files | jq('.name') }}\"\n tasks:\n - id: return\n type: io.kestra.plugin.core.debug.Return\n format: \"{{ taskrun.value }}\"\n - id: delete\n type: io.kestra.plugin.fs.ftp.Delete\n host: localhost\n port: 21\n username: foo\n password: bar\n uri: \"/in/{{ taskrun.value }}\"\n\ntriggers:\n - id: watch\n type: io.kestra.plugin.fs.ftp.Trigger\n host: localhost\n port: 21\n username: foo\n password: bar\n from: \"/in/\"\n interval: PT10S\n action: NONE\n```\n\n\u003E Wait for one or more files in a given FTP server's directory and process each of these files sequentially. In this example, we restrict the trigger to only wait for CSV files in the `mydir` directory.\n```yaml\nid: ftp_wait_for_csv_in_mydir\nnamespace: company.team\n\ntasks:\n - id: each\n type: io.kestra.plugin.core.flow.EachSequential\n value: \"{{ trigger.files | jq('.path') }}\"\n tasks:\n - id: return\n type: io.kestra.plugin.core.debug.Return\n format: \"{{ taskrun.value }}\"\n\ntriggers:\n - id: watch\n type: io.kestra.plugin.fs.ftp.Trigger\n host: localhost\n port: \"21\"\n username: foo\n password: bar\n from: \"mydir/\"\n regExp: \".*.csv\"\n action: MOVE\n moveDirectory: \"archive/\"\n interval: PTS\n```" + }, + "io.kestra.plugin.fs.ftp.Upload": { + "type": "object", + "properties": { + "allowFailure": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "description": { + "type": "string" + }, + "disabled": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "from": { + "$dynamic": true, + "type": "string", + "title": "The file to copy, must be an internal storage URI" + }, + "host": { + "$dynamic": true, + "type": "string", + "title": "Hostname of the remote server" + }, + "id": { + "type": "string", + "minLength": 1, + "pattern": "^[a-zA-Z0-9][a-zA-Z0-9_-]*" + }, + "logLevel": { + "type": "string", + "enum": ["ERROR", "WARN", "INFO", "DEBUG", "TRACE"] + }, + "passiveMode": { + "$dynamic": false, + "type": "boolean", + "title": "Whether to use a [passive mode](https://www.jscape.com/blog/active-v-s-passive-ftp-simplified). Passive mode is generally considered more secure as it's less likely to encounter issues with NAT and firewalls. Therefore, this property is by default set to `true`. To use active mode instead, set the property to `false`.", + "default": true, + "markdownDescription": "Default value is : `true`" + }, + "password": { + "$dynamic": true, + "type": "string", + "title": "Password on the remote server" + }, + "port": { + "$dynamic": true, + "type": "string", + "title": "Port of the remote server", + "default": "21", + "markdownDescription": "Default value is : `21`" + }, + "proxyHost": { + "$dynamic": true, + "type": "string", + "title": "FTP proxy host" + }, + "proxyPort": { + "$dynamic": true, + "type": "string", + "title": "FTP proxy port" + }, + "proxyType": { + "$dynamic": true, + "type": "string", + "enum": ["DIRECT", "HTTP", "SOCKS"], + "title": "FTP proxy type" + }, + "remoteIpVerification": { + "$dynamic": false, + "type": "boolean", + "title": "Control that the server ip that emit the request is the same than send response.", + "default": true, + "markdownDescription": "Default value is : `true`" + }, + "retry": { + "oneOf": [ + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Constant-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Exponential-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Random-2" + } + ] + }, + "rootDir": { + "$dynamic": false, + "type": "boolean", + "title": "Is path is relative to root dir", + "default": true, + "markdownDescription": "Default value is : `true`" + }, + "timeout": { + "type": "string", + "format": "duration" + }, + "to": { + "$dynamic": true, + "type": "string", + "title": "The destination path, if not set it will use the name of the file denoted by the `from` property" + }, + "type": { + "const": "io.kestra.plugin.fs.ftp.Upload" + }, + "username": { + "$dynamic": true, + "type": "string", + "title": "Username on the remote server" + }, + "workerGroup": { + "$ref": "#/definitions/io.kestra.core.models.tasks.WorkerGroup" + } + }, + "required": ["from", "host", "id", "type"], + "title": "Upload a file to a FTP server", + "markdownDescription": "##### Examples\n\u003E \n```yaml\nhost: localhost\nport: 21\nusername: foo\npassword: pass\nfrom: \"{{ outputs.taskid.uri }}\"\nto: \"/upload/dir2/file.txt\"\n```" + }, + "io.kestra.plugin.fs.ftp.Uploads": { + "type": "object", + "properties": { + "allowFailure": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "description": { + "type": "string" + }, + "disabled": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "from": { + "$dynamic": true, + "title": "The files to upload, must be internal storage URIs, must be a list of URIs or a pebble template that returns a list of URIs", + "oneOf": [ + { + "type": "string" + }, + { + "type": "array", + "items": { + "type": "string" + } + } + ] + }, + "host": { + "$dynamic": true, + "type": "string", + "title": "Hostname of the remote server" + }, + "id": { + "type": "string", + "minLength": 1, + "pattern": "^[a-zA-Z0-9][a-zA-Z0-9_-]*" + }, + "logLevel": { + "type": "string", + "enum": ["ERROR", "WARN", "INFO", "DEBUG", "TRACE"] + }, + "passiveMode": { + "$dynamic": false, + "type": "boolean", + "title": "Whether to use a [passive mode](https://www.jscape.com/blog/active-v-s-passive-ftp-simplified). Passive mode is generally considered more secure as it's less likely to encounter issues with NAT and firewalls. Therefore, this property is by default set to `true`. To use active mode instead, set the property to `false`.", + "default": true, + "markdownDescription": "Default value is : `true`" + }, + "password": { + "$dynamic": true, + "type": "string", + "title": "Password on the remote server" + }, + "port": { + "$dynamic": true, + "type": "string", + "title": "Port of the remote server", + "default": "21", + "markdownDescription": "Default value is : `21`" + }, + "proxyHost": { + "$dynamic": true, + "type": "string", + "title": "FTP proxy host" + }, + "proxyPort": { + "$dynamic": true, + "type": "string", + "title": "FTP proxy port" + }, + "proxyType": { + "$dynamic": true, + "type": "string", + "enum": ["DIRECT", "HTTP", "SOCKS"], + "title": "FTP proxy type" + }, + "remoteIpVerification": { + "$dynamic": false, + "type": "boolean", + "title": "Control that the server ip that emit the request is the same than send response.", + "default": true, + "markdownDescription": "Default value is : `true`" + }, + "retry": { + "oneOf": [ + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Constant-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Exponential-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Random-2" + } + ] + }, + "rootDir": { + "$dynamic": false, + "type": "boolean", + "title": "Is path is relative to root dir", + "default": true, + "markdownDescription": "Default value is : `true`" + }, + "timeout": { + "type": "string", + "format": "duration" + }, + "to": { + "$dynamic": true, + "type": "string", + "title": "The destination directory" + }, + "type": { + "const": "io.kestra.plugin.fs.ftp.Uploads" + }, + "username": { + "$dynamic": true, + "type": "string", + "title": "Username on the remote server" + }, + "workerGroup": { + "$ref": "#/definitions/io.kestra.core.models.tasks.WorkerGroup" + } + }, + "required": ["from", "host", "id", "to", "type"], + "title": "Upload files to a FTP server's directory", + "markdownDescription": "##### Examples\n\u003E \n```yaml\nhost: localhost\nport: 21\nusername: foo\npassword: pass\nfrom:\n - \"{{ outputs.taskid1.uri }}\"\n - \"{{ outputs.taskid2.uri }}\"\nto: \"/upload/dir2\"\n```" + }, + "io.kestra.plugin.fs.ftps.Delete": { + "type": "object", + "properties": { + "allowFailure": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "dataChannelProtectionLevel": { + "$dynamic": false, + "type": "string", + "enum": ["C", "S", "E", "P"], + "title": "Sets the data channel protection level (PROT).", + "default": "P", + "markdownDescription": "Default value is : `P`" + }, + "description": { + "type": "string" + }, + "disabled": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "errorOnMissing": { + "$dynamic": false, + "type": "boolean", + "title": "raise an error if the file is not found", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "host": { + "$dynamic": true, + "type": "string", + "title": "Hostname of the remote server" + }, + "id": { + "type": "string", + "minLength": 1, + "pattern": "^[a-zA-Z0-9][a-zA-Z0-9_-]*" + }, + "insecureTrustAllCertificates": { + "$dynamic": false, + "type": "boolean", + "title": "Whether the client should disable checking of the remote SSL certificate.", + "markdownDescription": "Note: This makes the SSL connection insecure, and should only be used for testing." + }, + "logLevel": { + "type": "string", + "enum": ["ERROR", "WARN", "INFO", "DEBUG", "TRACE"] + }, + "mode": { + "$dynamic": false, + "type": "string", + "enum": ["IMPLICIT", "EXPLICIT"], + "title": "Sets FTPS mode, either \"implicit\" or \"explicit\".", + "default": "EXPLICIT", + "markdownDescription": "Default value is : `EXPLICIT`" + }, + "passiveMode": { + "$dynamic": false, + "type": "boolean", + "title": "Whether to use a [passive mode](https://www.jscape.com/blog/active-v-s-passive-ftp-simplified). Passive mode is generally considered more secure as it's less likely to encounter issues with NAT and firewalls. Therefore, this property is by default set to `true`. To use active mode instead, set the property to `false`.", + "default": true, + "markdownDescription": "Default value is : `true`" + }, + "password": { + "$dynamic": true, + "type": "string", + "title": "Password on the remote server" + }, + "port": { + "$dynamic": true, + "type": "string", + "title": "Port of the remote server", + "default": "990", + "markdownDescription": "Default value is : `990`" + }, + "proxyHost": { + "$dynamic": true, + "type": "string", + "title": "FTP proxy host" + }, + "proxyPort": { + "$dynamic": true, + "type": "string", + "title": "FTP proxy port" + }, + "proxyType": { + "$dynamic": true, + "type": "string", + "enum": ["DIRECT", "HTTP", "SOCKS"], + "title": "FTP proxy type" + }, + "remoteIpVerification": { + "$dynamic": false, + "type": "boolean", + "title": "Control that the server ip that emit the request is the same than send response.", + "default": true, + "markdownDescription": "Default value is : `true`" + }, + "retry": { + "oneOf": [ + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Constant-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Exponential-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Random-2" + } + ] + }, + "rootDir": { + "$dynamic": false, + "type": "boolean", + "title": "Is path is relative to root dir", + "default": true, + "markdownDescription": "Default value is : `true`" + }, + "timeout": { + "type": "string", + "format": "duration" + }, + "type": { + "const": "io.kestra.plugin.fs.ftps.Delete" + }, + "uri": { + "$dynamic": true, + "type": "string", + "title": "The file to delete" + }, + "username": { + "$dynamic": true, + "type": "string", + "title": "Username on the remote server" + }, + "workerGroup": { + "$ref": "#/definitions/io.kestra.core.models.tasks.WorkerGroup" + } + }, + "required": ["host", "id", "type", "uri"], + "title": "Delete a file to a FTPS server.", + "markdownDescription": "##### Examples\n\u003E \n```yaml\nhost: localhost\nport: 990\nusername: foo\npassword: pass\nuri: \"/upload/dir1/file.txt\"\n```" + }, + "io.kestra.plugin.fs.ftps.Download": { + "type": "object", + "properties": { + "allowFailure": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "dataChannelProtectionLevel": { + "$dynamic": false, + "type": "string", + "enum": ["C", "S", "E", "P"], + "title": "Sets the data channel protection level (PROT).", + "default": "P", + "markdownDescription": "Default value is : `P`" + }, + "description": { + "type": "string" + }, + "disabled": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "from": { + "$dynamic": true, + "type": "string", + "title": "The fully-qualified URIs that point to destination path" + }, + "host": { + "$dynamic": true, + "type": "string", + "title": "Hostname of the remote server" + }, + "id": { + "type": "string", + "minLength": 1, + "pattern": "^[a-zA-Z0-9][a-zA-Z0-9_-]*" + }, + "insecureTrustAllCertificates": { + "$dynamic": false, + "type": "boolean", + "title": "Whether the client should disable checking of the remote SSL certificate.", + "markdownDescription": "Note: This makes the SSL connection insecure, and should only be used for testing." + }, + "logLevel": { + "type": "string", + "enum": ["ERROR", "WARN", "INFO", "DEBUG", "TRACE"] + }, + "mode": { + "$dynamic": false, + "type": "string", + "enum": ["IMPLICIT", "EXPLICIT"], + "title": "Sets FTPS mode, either \"implicit\" or \"explicit\".", + "default": "EXPLICIT", + "markdownDescription": "Default value is : `EXPLICIT`" + }, + "passiveMode": { + "$dynamic": false, + "type": "boolean", + "title": "Whether to use a [passive mode](https://www.jscape.com/blog/active-v-s-passive-ftp-simplified). Passive mode is generally considered more secure as it's less likely to encounter issues with NAT and firewalls. Therefore, this property is by default set to `true`. To use active mode instead, set the property to `false`.", + "default": true, + "markdownDescription": "Default value is : `true`" + }, + "password": { + "$dynamic": true, + "type": "string", + "title": "Password on the remote server" + }, + "port": { + "$dynamic": true, + "type": "string", + "title": "Port of the remote server", + "default": "990", + "markdownDescription": "Default value is : `990`" + }, + "proxyHost": { + "$dynamic": true, + "type": "string", + "title": "FTP proxy host" + }, + "proxyPort": { + "$dynamic": true, + "type": "string", + "title": "FTP proxy port" + }, + "proxyType": { + "$dynamic": true, + "type": "string", + "enum": ["DIRECT", "HTTP", "SOCKS"], + "title": "FTP proxy type" + }, + "remoteIpVerification": { + "$dynamic": false, + "type": "boolean", + "title": "Control that the server ip that emit the request is the same than send response.", + "default": true, + "markdownDescription": "Default value is : `true`" + }, + "retry": { + "oneOf": [ + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Constant-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Exponential-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Random-2" + } + ] + }, + "rootDir": { + "$dynamic": false, + "type": "boolean", + "title": "Is path is relative to root dir", + "default": true, + "markdownDescription": "Default value is : `true`" + }, + "timeout": { + "type": "string", + "format": "duration" + }, + "type": { + "const": "io.kestra.plugin.fs.ftps.Download" + }, + "username": { + "$dynamic": true, + "type": "string", + "title": "Username on the remote server" + }, + "workerGroup": { + "$ref": "#/definitions/io.kestra.core.models.tasks.WorkerGroup" + } + }, + "required": ["from", "host", "id", "type"], + "title": "Download file from FTPS server", + "markdownDescription": "##### Examples\n\u003E \n```yaml\nhost: localhost\nport: 990\nusername: foo\npassword: pass\nfrom: \"/in/file.txt\"\n```" + }, + "io.kestra.plugin.fs.ftps.Downloads": { + "type": "object", + "properties": { + "action": { + "$dynamic": true, + "type": "string", + "enum": ["MOVE", "DELETE", "NONE"], + "title": "The action to do on downloaded files" + }, + "allowFailure": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "dataChannelProtectionLevel": { + "$dynamic": false, + "type": "string", + "enum": ["C", "S", "E", "P"], + "title": "Sets the data channel protection level (PROT).", + "default": "P", + "markdownDescription": "Default value is : `P`" + }, + "description": { + "type": "string" + }, + "disabled": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "from": { + "$dynamic": true, + "type": "string", + "title": "The directory to list" + }, + "host": { + "$dynamic": true, + "type": "string", + "title": "Hostname of the remote server" + }, + "id": { + "type": "string", + "minLength": 1, + "pattern": "^[a-zA-Z0-9][a-zA-Z0-9_-]*" + }, + "insecureTrustAllCertificates": { + "$dynamic": false, + "type": "boolean", + "title": "Whether the client should disable checking of the remote SSL certificate.", + "markdownDescription": "Note: This makes the SSL connection insecure, and should only be used for testing." + }, + "logLevel": { + "type": "string", + "enum": ["ERROR", "WARN", "INFO", "DEBUG", "TRACE"] + }, + "mode": { + "$dynamic": false, + "type": "string", + "enum": ["IMPLICIT", "EXPLICIT"], + "title": "Sets FTPS mode, either \"implicit\" or \"explicit\".", + "default": "EXPLICIT", + "markdownDescription": "Default value is : `EXPLICIT`" + }, + "moveDirectory": { + "$dynamic": true, + "type": "string", + "title": "The destination directory in case off `MOVE` " + }, + "passiveMode": { + "$dynamic": false, + "type": "boolean", + "title": "Whether to use a [passive mode](https://www.jscape.com/blog/active-v-s-passive-ftp-simplified). Passive mode is generally considered more secure as it's less likely to encounter issues with NAT and firewalls. Therefore, this property is by default set to `true`. To use active mode instead, set the property to `false`.", + "default": true, + "markdownDescription": "Default value is : `true`" + }, + "password": { + "$dynamic": true, + "type": "string", + "title": "Password on the remote server" + }, + "port": { + "$dynamic": true, + "type": "string", + "title": "Port of the remote server", + "default": "990", + "markdownDescription": "Default value is : `990`" + }, + "proxyHost": { + "$dynamic": true, + "type": "string", + "title": "FTP proxy host" + }, + "proxyPort": { + "$dynamic": true, + "type": "string", + "title": "FTP proxy port" + }, + "proxyType": { + "$dynamic": true, + "type": "string", + "enum": ["DIRECT", "HTTP", "SOCKS"], + "title": "FTP proxy type" + }, + "recursive": { + "type": "boolean", + "title": "List file recursively", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "regExp": { + "$dynamic": true, + "type": "string", + "title": "A regexp to filter on full path" + }, + "remoteIpVerification": { + "$dynamic": false, + "type": "boolean", + "title": "Control that the server ip that emit the request is the same than send response.", + "default": true, + "markdownDescription": "Default value is : `true`" + }, + "retry": { + "oneOf": [ + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Constant-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Exponential-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Random-2" + } + ] + }, + "rootDir": { + "$dynamic": false, + "type": "boolean", + "title": "Is path is relative to root dir", + "default": true, + "markdownDescription": "Default value is : `true`" + }, + "timeout": { + "type": "string", + "format": "duration" + }, + "type": { + "const": "io.kestra.plugin.fs.ftps.Downloads" + }, + "username": { + "$dynamic": true, + "type": "string", + "title": "Username on the remote server" + }, + "workerGroup": { + "$ref": "#/definitions/io.kestra.core.models.tasks.WorkerGroup" + } + }, + "required": ["from", "host", "id", "type"], + "title": "Download multiple files from FTPS server", + "markdownDescription": "##### Examples\n\u003E Download a list of files and move it to an archive folders\n```yaml\nhost: localhost\nport: 990\nusername: foo\npassword: pass\nfrom: \"/in/\"\ninterval: PT10S\naction: MOVE\nmoveDirectory: \"/archive/\"\n```" + }, + "io.kestra.plugin.fs.ftps.List": { + "type": "object", + "properties": { + "allowFailure": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "dataChannelProtectionLevel": { + "$dynamic": false, + "type": "string", + "enum": ["C", "S", "E", "P"], + "title": "Sets the data channel protection level (PROT).", + "default": "P", + "markdownDescription": "Default value is : `P`" + }, + "description": { + "type": "string" + }, + "disabled": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "from": { + "$dynamic": true, + "type": "string", + "title": "The fully-qualified URIs that point to path" + }, + "host": { + "$dynamic": true, + "type": "string", + "title": "Hostname of the remote server" + }, + "id": { + "type": "string", + "minLength": 1, + "pattern": "^[a-zA-Z0-9][a-zA-Z0-9_-]*" + }, + "insecureTrustAllCertificates": { + "$dynamic": false, + "type": "boolean", + "title": "Whether the client should disable checking of the remote SSL certificate.", + "markdownDescription": "Note: This makes the SSL connection insecure, and should only be used for testing." + }, + "logLevel": { + "type": "string", + "enum": ["ERROR", "WARN", "INFO", "DEBUG", "TRACE"] + }, + "mode": { + "$dynamic": false, + "type": "string", + "enum": ["IMPLICIT", "EXPLICIT"], + "title": "Sets FTPS mode, either \"implicit\" or \"explicit\".", + "default": "EXPLICIT", + "markdownDescription": "Default value is : `EXPLICIT`" + }, + "passiveMode": { + "$dynamic": false, + "type": "boolean", + "title": "Whether to use a [passive mode](https://www.jscape.com/blog/active-v-s-passive-ftp-simplified). Passive mode is generally considered more secure as it's less likely to encounter issues with NAT and firewalls. Therefore, this property is by default set to `true`. To use active mode instead, set the property to `false`.", + "default": true, + "markdownDescription": "Default value is : `true`" + }, + "password": { + "$dynamic": true, + "type": "string", + "title": "Password on the remote server" + }, + "port": { + "$dynamic": true, + "type": "string", + "title": "Port of the remote server", + "default": "990", + "markdownDescription": "Default value is : `990`" + }, + "proxyHost": { + "$dynamic": true, + "type": "string", + "title": "FTP proxy host" + }, + "proxyPort": { + "$dynamic": true, + "type": "string", + "title": "FTP proxy port" + }, + "proxyType": { + "$dynamic": true, + "type": "string", + "enum": ["DIRECT", "HTTP", "SOCKS"], + "title": "FTP proxy type" + }, + "recursive": { + "type": "boolean", + "title": "List file recursively", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "regExp": { + "$dynamic": true, + "type": "string", + "title": "A regexp to filter on full path" + }, + "remoteIpVerification": { + "$dynamic": false, + "type": "boolean", + "title": "Control that the server ip that emit the request is the same than send response.", + "default": true, + "markdownDescription": "Default value is : `true`" + }, + "retry": { + "oneOf": [ + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Constant-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Exponential-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Random-2" + } + ] + }, + "rootDir": { + "$dynamic": false, + "type": "boolean", + "title": "Is path is relative to root dir", + "default": true, + "markdownDescription": "Default value is : `true`" + }, + "timeout": { + "type": "string", + "format": "duration" + }, + "type": { + "const": "io.kestra.plugin.fs.ftps.List" + }, + "username": { + "$dynamic": true, + "type": "string", + "title": "Username on the remote server" + }, + "workerGroup": { + "$ref": "#/definitions/io.kestra.core.models.tasks.WorkerGroup" + } + }, + "required": ["from", "host", "id", "type"], + "title": "List files from FTPS server directory", + "markdownDescription": "##### Examples\n\u003E \n```yaml\nhost: localhost\nport: 990\nusername: foo\npassword: pass\nfrom: \"/upload/dir1/\"\nregExp: \".*\\/dir1\\/.*\\.(yaml|yml)\"\n```" + }, + "io.kestra.plugin.fs.ftps.Move": { + "type": "object", + "properties": { + "allowFailure": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "dataChannelProtectionLevel": { + "$dynamic": false, + "type": "string", + "enum": ["C", "S", "E", "P"], + "title": "Sets the data channel protection level (PROT).", + "default": "P", + "markdownDescription": "Default value is : `P`" + }, + "description": { + "type": "string" + }, + "disabled": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "from": { + "$dynamic": true, + "type": "string", + "title": "The file or directory to move from remote server." + }, + "host": { + "$dynamic": true, + "type": "string", + "title": "Hostname of the remote server" + }, + "id": { + "type": "string", + "minLength": 1, + "pattern": "^[a-zA-Z0-9][a-zA-Z0-9_-]*" + }, + "insecureTrustAllCertificates": { + "$dynamic": false, + "type": "boolean", + "title": "Whether the client should disable checking of the remote SSL certificate.", + "markdownDescription": "Note: This makes the SSL connection insecure, and should only be used for testing." + }, + "logLevel": { + "type": "string", + "enum": ["ERROR", "WARN", "INFO", "DEBUG", "TRACE"] + }, + "mode": { + "$dynamic": false, + "type": "string", + "enum": ["IMPLICIT", "EXPLICIT"], + "title": "Sets FTPS mode, either \"implicit\" or \"explicit\".", + "default": "EXPLICIT", + "markdownDescription": "Default value is : `EXPLICIT`" + }, + "passiveMode": { + "$dynamic": false, + "type": "boolean", + "title": "Whether to use a [passive mode](https://www.jscape.com/blog/active-v-s-passive-ftp-simplified). Passive mode is generally considered more secure as it's less likely to encounter issues with NAT and firewalls. Therefore, this property is by default set to `true`. To use active mode instead, set the property to `false`.", + "default": true, + "markdownDescription": "Default value is : `true`" + }, + "password": { + "$dynamic": true, + "type": "string", + "title": "Password on the remote server" + }, + "port": { + "$dynamic": true, + "type": "string", + "title": "Port of the remote server", + "default": "990", + "markdownDescription": "Default value is : `990`" + }, + "proxyHost": { + "$dynamic": true, + "type": "string", + "title": "FTP proxy host" + }, + "proxyPort": { + "$dynamic": true, + "type": "string", + "title": "FTP proxy port" + }, + "proxyType": { + "$dynamic": true, + "type": "string", + "enum": ["DIRECT", "HTTP", "SOCKS"], + "title": "FTP proxy type" + }, + "remoteIpVerification": { + "$dynamic": false, + "type": "boolean", + "title": "Control that the server ip that emit the request is the same than send response.", + "default": true, + "markdownDescription": "Default value is : `true`" + }, + "retry": { + "oneOf": [ + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Constant-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Exponential-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Random-2" + } + ] + }, + "rootDir": { + "$dynamic": false, + "type": "boolean", + "title": "Is path is relative to root dir", + "default": true, + "markdownDescription": "Default value is : `true`" + }, + "timeout": { + "type": "string", + "format": "duration" + }, + "to": { + "$dynamic": true, + "type": "string", + "title": "The path to move the file or directory to on the remote server.", + "markdownDescription": "The full destination path (with filename optionally)\nIf end with a `/`, the destination is considered as a directory and filename will be happen\nIf the destFile exists, it is deleted first." + }, + "type": { + "const": "io.kestra.plugin.fs.ftps.Move" + }, + "username": { + "$dynamic": true, + "type": "string", + "title": "Username on the remote server" + }, + "workerGroup": { + "$ref": "#/definitions/io.kestra.core.models.tasks.WorkerGroup" + } + }, + "required": ["from", "host", "id", "to", "type"], + "title": "Move a file to a FTPS server.", + "markdownDescription": "If the destination directory doesn't exist, it will be created##### Examples\n\u003E \n```yaml\nhost: localhost\nport: 990\nusername: foo\npassword: pass\nfrom: \"/upload/dir1/file.txt\"\nto: \"/upload/dir2/file.txt\"\n```" + }, + "io.kestra.plugin.fs.ftps.Trigger": { + "type": "object", + "properties": { + "action": { + "$dynamic": true, + "type": "string", + "enum": ["MOVE", "DELETE", "NONE"], + "title": "The action to perform on the retrieved files. If using 'NONE' make sure to handle the files inside your flow to avoid infinite triggering." + }, + "conditions": { + "$dynamic": false, + "title": "List of conditions in order to limit the flow trigger.", + "type": "array", + "items": { + "oneOf": [ + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.DateTimeBetweenCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.DayWeekCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.DayWeekInMonthCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.ExecutionFlowCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.ExecutionLabelsCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.ExecutionNamespaceCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.ExecutionOutputsCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.ExecutionStatusCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.ExpressionCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.FlowCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.FlowNamespaceCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.HasRetryAttemptCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.MultipleCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.NotCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.OrCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.PublicHolidayCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.TimeBetweenCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.WeekendCondition" + }, + { + "$dynamic": false + } + ] + } + ] + } + }, + "dataChannelProtectionLevel": { + "$dynamic": false, + "type": "string", + "enum": ["C", "S", "E", "P"], + "title": "Sets the data channel protection level (PROT).", + "default": "P", + "markdownDescription": "Default value is : `P`" + }, + "description": { + "type": "string" + }, + "disabled": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "from": { + "$dynamic": true, + "type": "string", + "title": "The directory to list" + }, + "host": { + "$dynamic": true, + "type": "string", + "title": "Hostname of the remote server" + }, + "id": { + "type": "string", + "title": "A unique ID for the whole flow.", + "minLength": 1, + "pattern": "^[a-zA-Z0-9][a-zA-Z0-9_-]*" + }, + "insecureTrustAllCertificates": { + "$dynamic": false, + "type": "boolean", + "title": "Whether the client should disable checking of the remote SSL certificate.", + "markdownDescription": "Note: This makes the SSL connection insecure, and should only be used for testing." + }, + "interval": { + "$dynamic": false, + "type": "string", + "format": "duration", + "title": "The interval between test of triggers", + "default": 60, + "markdownDescription": "Default value is : `60.000000000`" + }, + "labels": { + "title": "The labels to pass to the execution created.", + "type": "array", + "items": { + "$ref": "#/definitions/io.kestra.core.models.Label" + } + }, + "logLevel": { + "type": "string", + "enum": ["ERROR", "WARN", "INFO", "DEBUG", "TRACE"] + }, + "mode": { + "$dynamic": false, + "type": "string", + "enum": ["IMPLICIT", "EXPLICIT"], + "title": "Sets FTPS mode, either \"implicit\" or \"explicit\".", + "default": "EXPLICIT", + "markdownDescription": "Default value is : `EXPLICIT`" + }, + "moveDirectory": { + "$dynamic": true, + "type": "string", + "title": "The destination directory in case off `MOVE` " + }, + "passiveMode": { + "$dynamic": false, + "type": "boolean", + "title": "Whether to use a [passive mode](https://www.jscape.com/blog/active-v-s-passive-ftp-simplified). Passive mode is generally considered more secure as it's less likely to encounter issues with NAT and firewalls. Therefore, this property is by default set to `true`. To use active mode instead, set the property to `false`.", + "default": true, + "markdownDescription": "Default value is : `true`" + }, + "password": { + "$dynamic": true, + "type": "string", + "title": "Password on the remote server" + }, + "port": { + "$dynamic": true, + "type": "string", + "title": "Port of the remote server", + "default": "990", + "markdownDescription": "Default value is : `990`" + }, + "proxyHost": { + "$dynamic": true, + "type": "string", + "title": "FTP proxy host" + }, + "proxyPort": { + "$dynamic": true, + "type": "string", + "title": "FTP proxy port" + }, + "proxyType": { + "$dynamic": true, + "type": "string", + "enum": ["DIRECT", "HTTP", "SOCKS"], + "title": "FTP proxy type" + }, + "recursive": { + "type": "boolean", + "title": "List file recursively", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "regExp": { + "$dynamic": true, + "type": "string", + "title": "A regexp to filter on full path" + }, + "remoteIpVerification": { + "$dynamic": false, + "type": "boolean", + "title": "Control that the server ip that emit the request is the same than send response.", + "default": true, + "markdownDescription": "Default value is : `true`" + }, + "rootDir": { + "$dynamic": false, + "type": "boolean", + "title": "Is path is relative to root dir", + "default": true, + "markdownDescription": "Default value is : `true`" + }, + "stopAfter": { + "$dynamic": false, + "title": "List of execution states after which a trigger should be stopped (a.k.a. disabled).", + "type": "array", + "items": { + "$dynamic": false, + "type": "string", + "enum": [ + "CREATED", + "RUNNING", + "PAUSED", + "RESTARTED", + "KILLING", + "SUCCESS", + "WARNING", + "FAILED", + "KILLED", + "CANCELLED", + "QUEUED", + "RETRYING", + "RETRIED" + ] + } + }, + "type": { + "const": "io.kestra.plugin.fs.ftps.Trigger" + }, + "username": { + "$dynamic": true, + "type": "string", + "title": "Username on the remote server" + }, + "workerGroup": { + "$ref": "#/definitions/io.kestra.core.models.tasks.WorkerGroup" + } + }, + "required": ["action", "from", "host", "id", "type"], + "title": "Trigger a flow as soon as new files are detected in a given FTPS server's directory.", + "markdownDescription": "##### Examples\n\u003E Wait for one or more files in a given FTPS server's directory and process each of these files sequentially.\n```yaml\nid: ftps_trigger_flow\nnamespace: company.team\n\ntasks:\n - id: for_each_file\n type: io.kestra.plugin.core.flow.EachSequential\n value: \"{{ trigger.files | jq('.path') }}\"\n tasks:\n - id: return\n type: io.kestra.plugin.core.debug.Return\n format: \"{{ taskrun.value }}\"\n\ntriggers:\n - id: watch\n type: io.kestra.plugin.fs.ftps.Trigger\n host: localhost\n port: 990\n username: foo\n password: bar\n from: \"/in/\"\n interval: PT10S\n action: MOVE\n moveDirectory: \"/archive/\"\n```\n\n\u003E Wait for one or more files in a given FTPS server's directory and process each of these files sequentially. In this example, we restrict the trigger to only wait for CSV files in the `mydir` directory.\n```yaml\nid: ftp_wait_for_csv_in_mydir\nnamespace: company.team\n\ntasks:\n - id: each\n type: io.kestra.plugin.core.flow.EachSequential\n value: \"{{ trigger.files | jq('.path') }}\"\n tasks:\n - id: return\n type: io.kestra.plugin.core.debug.Return\n format: \"{{ taskrun.value }}\"\n\ntriggers:\n - id: watch\n type: io.kestra.plugin.fs.ftps.Trigger\n host: localhost\n port: \"21\"\n username: foo\n password: bar\n from: \"mydir/\"\n regExp: \".*.csv\"\n action: MOVE\n moveDirectory: \"archive/\"\n interval: PTS\n```" + }, + "io.kestra.plugin.fs.ftps.Upload": { + "type": "object", + "properties": { + "allowFailure": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "dataChannelProtectionLevel": { + "$dynamic": false, + "type": "string", + "enum": ["C", "S", "E", "P"], + "title": "Sets the data channel protection level (PROT).", + "default": "P", + "markdownDescription": "Default value is : `P`" + }, + "description": { + "type": "string" + }, + "disabled": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "from": { + "$dynamic": true, + "type": "string", + "title": "The file to copy, must be an internal storage URI" + }, + "host": { + "$dynamic": true, + "type": "string", + "title": "Hostname of the remote server" + }, + "id": { + "type": "string", + "minLength": 1, + "pattern": "^[a-zA-Z0-9][a-zA-Z0-9_-]*" + }, + "insecureTrustAllCertificates": { + "$dynamic": false, + "type": "boolean", + "title": "Whether the client should disable checking of the remote SSL certificate.", + "markdownDescription": "Note: This makes the SSL connection insecure, and should only be used for testing." + }, + "logLevel": { + "type": "string", + "enum": ["ERROR", "WARN", "INFO", "DEBUG", "TRACE"] + }, + "mode": { + "$dynamic": false, + "type": "string", + "enum": ["IMPLICIT", "EXPLICIT"], + "title": "Sets FTPS mode, either \"implicit\" or \"explicit\".", + "default": "EXPLICIT", + "markdownDescription": "Default value is : `EXPLICIT`" + }, + "passiveMode": { + "$dynamic": false, + "type": "boolean", + "title": "Whether to use a [passive mode](https://www.jscape.com/blog/active-v-s-passive-ftp-simplified). Passive mode is generally considered more secure as it's less likely to encounter issues with NAT and firewalls. Therefore, this property is by default set to `true`. To use active mode instead, set the property to `false`.", + "default": true, + "markdownDescription": "Default value is : `true`" + }, + "password": { + "$dynamic": true, + "type": "string", + "title": "Password on the remote server" + }, + "port": { + "$dynamic": true, + "type": "string", + "title": "Port of the remote server", + "default": "990", + "markdownDescription": "Default value is : `990`" + }, + "proxyHost": { + "$dynamic": true, + "type": "string", + "title": "FTP proxy host" + }, + "proxyPort": { + "$dynamic": true, + "type": "string", + "title": "FTP proxy port" + }, + "proxyType": { + "$dynamic": true, + "type": "string", + "enum": ["DIRECT", "HTTP", "SOCKS"], + "title": "FTP proxy type" + }, + "remoteIpVerification": { + "$dynamic": false, + "type": "boolean", + "title": "Control that the server ip that emit the request is the same than send response.", + "default": true, + "markdownDescription": "Default value is : `true`" + }, + "retry": { + "oneOf": [ + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Constant-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Exponential-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Random-2" + } + ] + }, + "rootDir": { + "$dynamic": false, + "type": "boolean", + "title": "Is path is relative to root dir", + "default": true, + "markdownDescription": "Default value is : `true`" + }, + "timeout": { + "type": "string", + "format": "duration" + }, + "to": { + "$dynamic": true, + "type": "string", + "title": "The destination path, if not set it will use the name of the file denoted by the `from` property" + }, + "type": { + "const": "io.kestra.plugin.fs.ftps.Upload" + }, + "username": { + "$dynamic": true, + "type": "string", + "title": "Username on the remote server" + }, + "workerGroup": { + "$ref": "#/definitions/io.kestra.core.models.tasks.WorkerGroup" + } + }, + "required": ["from", "host", "id", "type"], + "title": "Upload a file to a FTPS server", + "markdownDescription": "##### Examples\n\u003E \n```yaml\nhost: localhost\nport: 990\nusername: foo\npassword: pass\nfrom: \"{{ outputs.taskid.uri }}\"\nto: \"/upload/dir2/file.txt\"\n```" + }, + "io.kestra.plugin.fs.ftps.Uploads": { + "type": "object", + "properties": { + "allowFailure": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "dataChannelProtectionLevel": { + "$dynamic": false, + "type": "string", + "enum": ["C", "S", "E", "P"], + "title": "Sets the data channel protection level (PROT).", + "default": "P", + "markdownDescription": "Default value is : `P`" + }, + "description": { + "type": "string" + }, + "disabled": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "from": { + "$dynamic": true, + "title": "The files to upload, must be internal storage URIs, must be a list of URIs or a pebble template that returns a list of URIs", + "oneOf": [ + { + "type": "string" + }, + { + "type": "array", + "items": { + "type": "string" + } + } + ] + }, + "host": { + "$dynamic": true, + "type": "string", + "title": "Hostname of the remote server" + }, + "id": { + "type": "string", + "minLength": 1, + "pattern": "^[a-zA-Z0-9][a-zA-Z0-9_-]*" + }, + "insecureTrustAllCertificates": { + "$dynamic": false, + "type": "boolean", + "title": "Whether the client should disable checking of the remote SSL certificate.", + "markdownDescription": "Note: This makes the SSL connection insecure, and should only be used for testing." + }, + "logLevel": { + "type": "string", + "enum": ["ERROR", "WARN", "INFO", "DEBUG", "TRACE"] + }, + "mode": { + "$dynamic": false, + "type": "string", + "enum": ["IMPLICIT", "EXPLICIT"], + "title": "Sets FTPS mode, either \"implicit\" or \"explicit\".", + "default": "EXPLICIT", + "markdownDescription": "Default value is : `EXPLICIT`" + }, + "passiveMode": { + "$dynamic": false, + "type": "boolean", + "title": "Whether to use a [passive mode](https://www.jscape.com/blog/active-v-s-passive-ftp-simplified). Passive mode is generally considered more secure as it's less likely to encounter issues with NAT and firewalls. Therefore, this property is by default set to `true`. To use active mode instead, set the property to `false`.", + "default": true, + "markdownDescription": "Default value is : `true`" + }, + "password": { + "$dynamic": true, + "type": "string", + "title": "Password on the remote server" + }, + "port": { + "$dynamic": true, + "type": "string", + "title": "Port of the remote server", + "default": "990", + "markdownDescription": "Default value is : `990`" + }, + "proxyHost": { + "$dynamic": true, + "type": "string", + "title": "FTP proxy host" + }, + "proxyPort": { + "$dynamic": true, + "type": "string", + "title": "FTP proxy port" + }, + "proxyType": { + "$dynamic": true, + "type": "string", + "enum": ["DIRECT", "HTTP", "SOCKS"], + "title": "FTP proxy type" + }, + "remoteIpVerification": { + "$dynamic": false, + "type": "boolean", + "title": "Control that the server ip that emit the request is the same than send response.", + "default": true, + "markdownDescription": "Default value is : `true`" + }, + "retry": { + "oneOf": [ + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Constant-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Exponential-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Random-2" + } + ] + }, + "rootDir": { + "$dynamic": false, + "type": "boolean", + "title": "Is path is relative to root dir", + "default": true, + "markdownDescription": "Default value is : `true`" + }, + "timeout": { + "type": "string", + "format": "duration" + }, + "to": { + "$dynamic": true, + "type": "string", + "title": "The destination directory" + }, + "type": { + "const": "io.kestra.plugin.fs.ftps.Uploads" + }, + "username": { + "$dynamic": true, + "type": "string", + "title": "Username on the remote server" + }, + "workerGroup": { + "$ref": "#/definitions/io.kestra.core.models.tasks.WorkerGroup" + } + }, + "required": ["from", "host", "id", "to", "type"], + "title": "Upload files to a FTPS server's directory", + "markdownDescription": "##### Examples\n\u003E \n```yaml\nhost: localhost\nport: 990\nusername: foo\npassword: pass\nfrom:\n - \"{{ outputs.taskid1.uri }}\"\n - \"{{ outputs.taskid2.uri }}\"\nto: \"/upload/dir2\"\n```" + }, + "io.kestra.plugin.fs.sftp.Delete": { + "type": "object", + "properties": { + "allowFailure": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "description": { + "type": "string" + }, + "disabled": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "errorOnMissing": { + "$dynamic": false, + "type": "boolean", + "title": "raise an error if the file is not found", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "host": { + "$dynamic": true, + "type": "string", + "title": "Hostname of the remote server" + }, + "id": { + "type": "string", + "minLength": 1, + "pattern": "^[a-zA-Z0-9][a-zA-Z0-9_-]*" + }, + "keyfile": { + "$dynamic": true, + "type": "string", + "title": "Private keyfile in the PEM file format to connect to a remote server using SSH", + "markdownDescription": "To generate a PEM format key from OpenSSH, use the following command: `ssh-keygen -m PEM`" + }, + "logLevel": { + "type": "string", + "enum": ["ERROR", "WARN", "INFO", "DEBUG", "TRACE"] + }, + "passphrase": { + "$dynamic": true, + "type": "string", + "title": "Passphrase of the ssh key" + }, + "password": { + "$dynamic": true, + "type": "string", + "title": "Password on the remote server" + }, + "port": { + "$dynamic": true, + "type": "string", + "title": "Port of the remote server", + "default": "22", + "markdownDescription": "Default value is : `22`" + }, + "proxyHost": { + "$dynamic": true, + "type": "string", + "title": "SFTP proxy host" + }, + "proxyPassword": { + "$dynamic": true, + "type": "string", + "title": "SFTP proxy password" + }, + "proxyPort": { + "$dynamic": true, + "type": "string", + "title": "SFTP proxy port" + }, + "proxyType": { + "$dynamic": true, + "type": "string", + "title": "SFTP proxy type" + }, + "proxyUser": { + "$dynamic": true, + "type": "string", + "title": "SFTP proxy user" + }, + "retry": { + "oneOf": [ + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Constant-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Exponential-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Random-2" + } + ] + }, + "rootDir": { + "$dynamic": true, + "type": "boolean", + "title": "Is path is relative to root dir", + "default": true, + "markdownDescription": "Default value is : `true`" + }, + "timeout": { + "type": "string", + "format": "duration" + }, + "type": { + "const": "io.kestra.plugin.fs.sftp.Delete" + }, + "uri": { + "$dynamic": true, + "type": "string", + "title": "The file to delete" + }, + "username": { + "$dynamic": true, + "type": "string", + "title": "Username on the remote server" + }, + "workerGroup": { + "$ref": "#/definitions/io.kestra.core.models.tasks.WorkerGroup" + } + }, + "required": ["host", "id", "type", "uri"], + "title": "Delete a file to a SFTP server.", + "markdownDescription": "##### Examples\n\u003E \n```yaml\nhost: localhost\nport: \"22\"\nusername: foo\npassword: pass\nuri: \"/upload/dir1/file.txt\"\n```" + }, + "io.kestra.plugin.fs.sftp.Download": { + "type": "object", + "properties": { + "allowFailure": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "description": { + "type": "string" + }, + "disabled": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "from": { + "$dynamic": true, + "type": "string", + "title": "The fully-qualified URIs that point to destination path" + }, + "host": { + "$dynamic": true, + "type": "string", + "title": "Hostname of the remote server" + }, + "id": { + "type": "string", + "minLength": 1, + "pattern": "^[a-zA-Z0-9][a-zA-Z0-9_-]*" + }, + "keyfile": { + "$dynamic": true, + "type": "string", + "title": "Private keyfile in the PEM file format to connect to a remote server using SSH", + "markdownDescription": "To generate a PEM format key from OpenSSH, use the following command: `ssh-keygen -m PEM`" + }, + "logLevel": { + "type": "string", + "enum": ["ERROR", "WARN", "INFO", "DEBUG", "TRACE"] + }, + "passphrase": { + "$dynamic": true, + "type": "string", + "title": "Passphrase of the ssh key" + }, + "password": { + "$dynamic": true, + "type": "string", + "title": "Password on the remote server" + }, + "port": { + "$dynamic": true, + "type": "string", + "title": "Port of the remote server", + "default": "22", + "markdownDescription": "Default value is : `22`" + }, + "proxyHost": { + "$dynamic": true, + "type": "string", + "title": "SFTP proxy host" + }, + "proxyPassword": { + "$dynamic": true, + "type": "string", + "title": "SFTP proxy password" + }, + "proxyPort": { + "$dynamic": true, + "type": "string", + "title": "SFTP proxy port" + }, + "proxyType": { + "$dynamic": true, + "type": "string", + "title": "SFTP proxy type" + }, + "proxyUser": { + "$dynamic": true, + "type": "string", + "title": "SFTP proxy user" + }, + "retry": { + "oneOf": [ + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Constant-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Exponential-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Random-2" + } + ] + }, + "rootDir": { + "$dynamic": true, + "type": "boolean", + "title": "Is path is relative to root dir", + "default": true, + "markdownDescription": "Default value is : `true`" + }, + "timeout": { + "type": "string", + "format": "duration" + }, + "type": { + "const": "io.kestra.plugin.fs.sftp.Download" + }, + "username": { + "$dynamic": true, + "type": "string", + "title": "Username on the remote server" + }, + "workerGroup": { + "$ref": "#/definitions/io.kestra.core.models.tasks.WorkerGroup" + } + }, + "required": ["from", "host", "id", "type"], + "title": "Download file from SFTP server", + "markdownDescription": "##### Examples\n\u003E \n```yaml\nhost: localhost\nport: \"22\"\nusername: foo\npassword: pass\nfrom: \"/in/file.txt\"\n```" + }, + "io.kestra.plugin.fs.sftp.Downloads": { + "type": "object", + "properties": { + "action": { + "$dynamic": true, + "type": "string", + "enum": ["MOVE", "DELETE", "NONE"], + "title": "The action to do on downloaded files" + }, + "allowFailure": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "description": { + "type": "string" + }, + "disabled": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "from": { + "$dynamic": true, + "type": "string", + "title": "The directory to list" + }, + "host": { + "$dynamic": true, + "type": "string", + "title": "Hostname of the remote server" + }, + "id": { + "type": "string", + "minLength": 1, + "pattern": "^[a-zA-Z0-9][a-zA-Z0-9_-]*" + }, + "keyfile": { + "$dynamic": true, + "type": "string", + "title": "Private keyfile in the PEM file format to connect to a remote server using SSH", + "markdownDescription": "To generate a PEM format key from OpenSSH, use the following command: `ssh-keygen -m PEM`" + }, + "logLevel": { + "type": "string", + "enum": ["ERROR", "WARN", "INFO", "DEBUG", "TRACE"] + }, + "moveDirectory": { + "$dynamic": true, + "type": "string", + "title": "The destination directory in case off `MOVE` " + }, + "passphrase": { + "$dynamic": true, + "type": "string", + "title": "Passphrase of the ssh key" + }, + "password": { + "$dynamic": true, + "type": "string", + "title": "Password on the remote server" + }, + "port": { + "$dynamic": true, + "type": "string", + "title": "Port of the remote server", + "default": "22", + "markdownDescription": "Default value is : `22`" + }, + "proxyHost": { + "$dynamic": true, + "type": "string", + "title": "SFTP proxy host" + }, + "proxyPassword": { + "$dynamic": true, + "type": "string", + "title": "SFTP proxy password" + }, + "proxyPort": { + "$dynamic": true, + "type": "string", + "title": "SFTP proxy port" + }, + "proxyType": { + "$dynamic": true, + "type": "string", + "title": "SFTP proxy type" + }, + "proxyUser": { + "$dynamic": true, + "type": "string", + "title": "SFTP proxy user" + }, + "recursive": { + "type": "boolean", + "title": "List file recursively", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "regExp": { + "$dynamic": true, + "type": "string", + "title": "A regexp to filter on full path" + }, + "retry": { + "oneOf": [ + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Constant-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Exponential-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Random-2" + } + ] + }, + "rootDir": { + "$dynamic": true, + "type": "boolean", + "title": "Is path is relative to root dir", + "default": true, + "markdownDescription": "Default value is : `true`" + }, + "timeout": { + "type": "string", + "format": "duration" + }, + "type": { + "const": "io.kestra.plugin.fs.sftp.Downloads" + }, + "username": { + "$dynamic": true, + "type": "string", + "title": "Username on the remote server" + }, + "workerGroup": { + "$ref": "#/definitions/io.kestra.core.models.tasks.WorkerGroup" + } + }, + "required": ["from", "host", "id", "type"], + "title": "Download multiple files from SFTP server", + "markdownDescription": "##### Examples\n\u003E Download a list of files and move it to an archive folders\n```yaml\nhost: localhost\nport: \"22\"\nusername: foo\npassword: pass\nfrom: \"/in/\"\ninterval: PT10S\naction: MOVE\nmoveDirectory: \"/archive/\"\n```" + }, + "io.kestra.plugin.fs.sftp.List": { + "type": "object", + "properties": { + "allowFailure": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "description": { + "type": "string" + }, + "disabled": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "from": { + "$dynamic": true, + "type": "string", + "title": "The fully-qualified URIs that point to path" + }, + "host": { + "$dynamic": true, + "type": "string", + "title": "Hostname of the remote server" + }, + "id": { + "type": "string", + "minLength": 1, + "pattern": "^[a-zA-Z0-9][a-zA-Z0-9_-]*" + }, + "keyfile": { + "$dynamic": true, + "type": "string", + "title": "Private keyfile in the PEM file format to connect to a remote server using SSH", + "markdownDescription": "To generate a PEM format key from OpenSSH, use the following command: `ssh-keygen -m PEM`" + }, + "logLevel": { + "type": "string", + "enum": ["ERROR", "WARN", "INFO", "DEBUG", "TRACE"] + }, + "passphrase": { + "$dynamic": true, + "type": "string", + "title": "Passphrase of the ssh key" + }, + "password": { + "$dynamic": true, + "type": "string", + "title": "Password on the remote server" + }, + "port": { + "$dynamic": true, + "type": "string", + "title": "Port of the remote server", + "default": "22", + "markdownDescription": "Default value is : `22`" + }, + "proxyHost": { + "$dynamic": true, + "type": "string", + "title": "SFTP proxy host" + }, + "proxyPassword": { + "$dynamic": true, + "type": "string", + "title": "SFTP proxy password" + }, + "proxyPort": { + "$dynamic": true, + "type": "string", + "title": "SFTP proxy port" + }, + "proxyType": { + "$dynamic": true, + "type": "string", + "title": "SFTP proxy type" + }, + "proxyUser": { + "$dynamic": true, + "type": "string", + "title": "SFTP proxy user" + }, + "recursive": { + "type": "boolean", + "title": "List file recursively", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "regExp": { + "$dynamic": true, + "type": "string", + "title": "A regexp to filter on full path" + }, + "retry": { + "oneOf": [ + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Constant-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Exponential-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Random-2" + } + ] + }, + "rootDir": { + "$dynamic": true, + "type": "boolean", + "title": "Is path is relative to root dir", + "default": true, + "markdownDescription": "Default value is : `true`" + }, + "timeout": { + "type": "string", + "format": "duration" + }, + "type": { + "const": "io.kestra.plugin.fs.sftp.List" + }, + "username": { + "$dynamic": true, + "type": "string", + "title": "Username on the remote server" + }, + "workerGroup": { + "$ref": "#/definitions/io.kestra.core.models.tasks.WorkerGroup" + } + }, + "required": ["from", "host", "id", "type"], + "title": "List files from a SFTP server directory", + "markdownDescription": "##### Examples\n\u003E \n```yaml\nhost: localhost\nport: \"22\"\nusername: foo\npassword: pass\nfrom: \"/upload/dir1/\"\nregExp: \".*\\/dir1\\/.*\\.(yaml|yml)\"\n```" + }, + "io.kestra.plugin.fs.sftp.Move": { + "type": "object", + "properties": { + "allowFailure": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "description": { + "type": "string" + }, + "disabled": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "from": { + "$dynamic": true, + "type": "string", + "title": "The file or directory to move from remote server." + }, + "host": { + "$dynamic": true, + "type": "string", + "title": "Hostname of the remote server" + }, + "id": { + "type": "string", + "minLength": 1, + "pattern": "^[a-zA-Z0-9][a-zA-Z0-9_-]*" + }, + "keyfile": { + "$dynamic": true, + "type": "string", + "title": "Private keyfile in the PEM file format to connect to a remote server using SSH", + "markdownDescription": "To generate a PEM format key from OpenSSH, use the following command: `ssh-keygen -m PEM`" + }, + "logLevel": { + "type": "string", + "enum": ["ERROR", "WARN", "INFO", "DEBUG", "TRACE"] + }, + "passphrase": { + "$dynamic": true, + "type": "string", + "title": "Passphrase of the ssh key" + }, + "password": { + "$dynamic": true, + "type": "string", + "title": "Password on the remote server" + }, + "port": { + "$dynamic": true, + "type": "string", + "title": "Port of the remote server", + "default": "22", + "markdownDescription": "Default value is : `22`" + }, + "proxyHost": { + "$dynamic": true, + "type": "string", + "title": "SFTP proxy host" + }, + "proxyPassword": { + "$dynamic": true, + "type": "string", + "title": "SFTP proxy password" + }, + "proxyPort": { + "$dynamic": true, + "type": "string", + "title": "SFTP proxy port" + }, + "proxyType": { + "$dynamic": true, + "type": "string", + "title": "SFTP proxy type" + }, + "proxyUser": { + "$dynamic": true, + "type": "string", + "title": "SFTP proxy user" + }, + "retry": { + "oneOf": [ + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Constant-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Exponential-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Random-2" + } + ] + }, + "rootDir": { + "$dynamic": true, + "type": "boolean", + "title": "Is path is relative to root dir", + "default": true, + "markdownDescription": "Default value is : `true`" + }, + "timeout": { + "type": "string", + "format": "duration" + }, + "to": { + "$dynamic": true, + "type": "string", + "title": "The path to move the file or directory to on the remote server.", + "markdownDescription": "The full destination path (with filename optionally)\nIf end with a `/`, the destination is considered as a directory and filename will be happen\nIf the destFile exists, it is deleted first." + }, + "type": { + "const": "io.kestra.plugin.fs.sftp.Move" + }, + "username": { + "$dynamic": true, + "type": "string", + "title": "Username on the remote server" + }, + "workerGroup": { + "$ref": "#/definitions/io.kestra.core.models.tasks.WorkerGroup" + } + }, + "required": ["from", "host", "id", "to", "type"], + "title": "Move a file to a SFTP server.", + "markdownDescription": "If the destination directory doesn't exist, it will be created##### Examples\n\u003E \n```yaml\nhost: localhost\nport: \"22\"\nusername: foo\npassword: pass\nfrom: \"/upload/dir1/file.txt\"\nto: \"/upload/dir2/file.txt\"\n```" + }, + "io.kestra.plugin.fs.sftp.Trigger": { + "type": "object", + "properties": { + "action": { + "$dynamic": true, + "type": "string", + "enum": ["MOVE", "DELETE", "NONE"], + "title": "The action to perform on the retrieved files. If using 'NONE' make sure to handle the files inside your flow to avoid infinite triggering." + }, + "conditions": { + "$dynamic": false, + "title": "List of conditions in order to limit the flow trigger.", + "type": "array", + "items": { + "oneOf": [ + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.DateTimeBetweenCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.DayWeekCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.DayWeekInMonthCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.ExecutionFlowCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.ExecutionLabelsCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.ExecutionNamespaceCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.ExecutionOutputsCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.ExecutionStatusCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.ExpressionCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.FlowCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.FlowNamespaceCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.HasRetryAttemptCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.MultipleCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.NotCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.OrCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.PublicHolidayCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.TimeBetweenCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.WeekendCondition" + }, + { + "$dynamic": false + } + ] + } + ] + } + }, + "description": { + "type": "string" + }, + "disabled": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "from": { + "$dynamic": true, + "type": "string", + "title": "The directory to list" + }, + "host": { + "$dynamic": true, + "type": "string", + "title": "Hostname of the remote server" + }, + "id": { + "type": "string", + "title": "A unique ID for the whole flow.", + "minLength": 1, + "pattern": "^[a-zA-Z0-9][a-zA-Z0-9_-]*" + }, + "interval": { + "$dynamic": false, + "type": "string", + "format": "duration", + "title": "The interval between test of triggers", + "default": 60, + "markdownDescription": "Default value is : `60.000000000`" + }, + "keyfile": { + "$dynamic": true, + "type": "string", + "title": "Private keyfile in the PEM file format to connect to a remote server using SSH", + "markdownDescription": "To generate a PEM format key from OpenSSH, use the following command: `ssh-keygen -m PEM`" + }, + "labels": { + "title": "The labels to pass to the execution created.", + "type": "array", + "items": { + "$ref": "#/definitions/io.kestra.core.models.Label" + } + }, + "logLevel": { + "type": "string", + "enum": ["ERROR", "WARN", "INFO", "DEBUG", "TRACE"] + }, + "moveDirectory": { + "$dynamic": true, + "type": "string", + "title": "The destination directory in case off `MOVE` " + }, + "passphrase": { + "$dynamic": true, + "type": "string", + "title": "Passphrase of the ssh key" + }, + "password": { + "$dynamic": true, + "type": "string", + "title": "Password on the remote server" + }, + "port": { + "$dynamic": true, + "type": "string", + "title": "Port of the remote server", + "default": "22", + "markdownDescription": "Default value is : `22`" + }, + "proxyHost": { + "$dynamic": true, + "type": "string", + "title": "SFTP proxy host" + }, + "proxyPassword": { + "$dynamic": true, + "type": "string", + "title": "SFTP proxy password" + }, + "proxyPort": { + "$dynamic": true, + "type": "string", + "title": "SFTP proxy port" + }, + "proxyType": { + "$dynamic": true, + "type": "string", + "title": "SFTP proxy type" + }, + "proxyUser": { + "$dynamic": true, + "type": "string", + "title": "SFTP proxy user" + }, + "recursive": { + "type": "boolean", + "title": "List file recursively", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "regExp": { + "$dynamic": true, + "type": "string", + "title": "A regexp to filter on full path" + }, + "rootDir": { + "$dynamic": true, + "type": "boolean", + "title": "Is path is relative to root dir", + "default": true, + "markdownDescription": "Default value is : `true`" + }, + "stopAfter": { + "$dynamic": false, + "title": "List of execution states after which a trigger should be stopped (a.k.a. disabled).", + "type": "array", + "items": { + "$dynamic": false, + "type": "string", + "enum": [ + "CREATED", + "RUNNING", + "PAUSED", + "RESTARTED", + "KILLING", + "SUCCESS", + "WARNING", + "FAILED", + "KILLED", + "CANCELLED", + "QUEUED", + "RETRYING", + "RETRIED" + ] + } + }, + "type": { + "const": "io.kestra.plugin.fs.sftp.Trigger" + }, + "username": { + "$dynamic": true, + "type": "string", + "title": "Username on the remote server" + }, + "workerGroup": { + "$ref": "#/definitions/io.kestra.core.models.tasks.WorkerGroup" + } + }, + "required": ["action", "from", "host", "id", "type"], + "title": "Trigger a flow as soon as new files are detected in a given SFTP server's directory.", + "markdownDescription": "##### Examples\n\u003E Wait for one or more files in a given SFTP server's directory and process each of these files sequentially.\n```yaml\nid: sftp_trigger_flow\nnamespace: company.team\n\ntasks:\n - id: for_each_file\n type: io.kestra.plugin.core.flow.EachSequential\n value: \"{{ trigger.files | jq('.path') }}\"\n tasks:\n - id: return\n type: io.kestra.plugin.core.debug.Return\n format: \"{{ taskrun.value }}\"\n\ntriggers:\n - id: watch\n type: io.kestra.plugin.fs.sftp.Trigger\n host: localhost\n port: 6622\n username: foo\n password: bar\n from: \"/in/\"\n interval: PT10S\n action: MOVE\n moveDirectory: \"/archive/\"\n```\n\n\u003E Wait for one or more files in a given SFTP server's directory and process each of these files sequentially. Delete files manually after processing to prevent infinite triggering.\n```yaml\nid: sftp_trigger_flow\nnamespace: company.team\n\ntasks:\n - id: for_each_file\n type: io.kestra.plugin.core.flow.EachSequential\n value: \"{{ trigger.files | jq('.path') }}\"\n tasks:\n - id: return\n type: io.kestra.plugin.core.debug.Return\n format: \"{{ taskrun.value }}\"\n - id: delete\n type: io.kestra.plugin.fs.sftp.Delete\n host: localhost\n port: 6622\n username: foo\n password: bar\n uri: \"/in/{{ taskrun.value }}\"\n\ntriggers:\n - id: watch\n type: io.kestra.plugin.fs.sftp.Trigger\n host: localhost\n port: 6622\n username: foo\n password: bar\n from: \"/in/\"\n interval: PT10S\n action: NONE\n```\n\n\u003E Wait for one or more files in a given SFTP server's directory and process each of these files sequentially. In this example, we restrict the trigger to only wait for CSV files in the `mydir` directory.\n```yaml\nid: ftp_wait_for_csv_in_mydir\nnamespace: company.team\n\ntasks:\n - id: each\n type: io.kestra.plugin.core.flow.EachSequential\n value: \"{{ trigger.files | jq('.path') }}\"\n tasks:\n - id: return\n type: io.kestra.plugin.core.debug.Return\n format: \"{{ taskrun.value }}\"\n\ntriggers:\n - id: watch\n type: io.kestra.plugin.fs.sftp.Trigger\n host: localhost\n port: \"6622\"\n username: foo\n password: bar\n from: \"mydir/\"\n regExp: \".*.csv\"\n action: MOVE\n moveDirectory: \"archive/\"\n interval: PTS\n```" + }, + "io.kestra.plugin.fs.sftp.Upload": { + "type": "object", + "properties": { + "allowFailure": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "description": { + "type": "string" + }, + "disabled": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "from": { + "$dynamic": true, + "type": "string", + "title": "The file to copy, must be an internal storage URI" + }, + "host": { + "$dynamic": true, + "type": "string", + "title": "Hostname of the remote server" + }, + "id": { + "type": "string", + "minLength": 1, + "pattern": "^[a-zA-Z0-9][a-zA-Z0-9_-]*" + }, + "keyfile": { + "$dynamic": true, + "type": "string", + "title": "Private keyfile in the PEM file format to connect to a remote server using SSH", + "markdownDescription": "To generate a PEM format key from OpenSSH, use the following command: `ssh-keygen -m PEM`" + }, + "logLevel": { + "type": "string", + "enum": ["ERROR", "WARN", "INFO", "DEBUG", "TRACE"] + }, + "passphrase": { + "$dynamic": true, + "type": "string", + "title": "Passphrase of the ssh key" + }, + "password": { + "$dynamic": true, + "type": "string", + "title": "Password on the remote server" + }, + "port": { + "$dynamic": true, + "type": "string", + "title": "Port of the remote server", + "default": "22", + "markdownDescription": "Default value is : `22`" + }, + "proxyHost": { + "$dynamic": true, + "type": "string", + "title": "SFTP proxy host" + }, + "proxyPassword": { + "$dynamic": true, + "type": "string", + "title": "SFTP proxy password" + }, + "proxyPort": { + "$dynamic": true, + "type": "string", + "title": "SFTP proxy port" + }, + "proxyType": { + "$dynamic": true, + "type": "string", + "title": "SFTP proxy type" + }, + "proxyUser": { + "$dynamic": true, + "type": "string", + "title": "SFTP proxy user" + }, + "retry": { + "oneOf": [ + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Constant-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Exponential-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Random-2" + } + ] + }, + "rootDir": { + "$dynamic": true, + "type": "boolean", + "title": "Is path is relative to root dir", + "default": true, + "markdownDescription": "Default value is : `true`" + }, + "timeout": { + "type": "string", + "format": "duration" + }, + "to": { + "$dynamic": true, + "type": "string", + "title": "The destination path, if not set it will use the name of the file denoted by the `from` property" + }, + "type": { + "const": "io.kestra.plugin.fs.sftp.Upload" + }, + "username": { + "$dynamic": true, + "type": "string", + "title": "Username on the remote server" + }, + "workerGroup": { + "$ref": "#/definitions/io.kestra.core.models.tasks.WorkerGroup" + } + }, + "required": ["from", "host", "id", "type"], + "title": "Upload a file to a sftp server", + "markdownDescription": "##### Examples\n\u003E \n```yaml\nhost: localhost\nport: \"22\"\nusername: foo\npassword: pass\nfrom: \"{{ outputs.taskid.uri }}\"\nto: \"/upload/dir2/file.txt\"\n```" + }, + "io.kestra.plugin.fs.sftp.Uploads": { + "type": "object", + "properties": { + "allowFailure": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "description": { + "type": "string" + }, + "disabled": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "from": { + "$dynamic": true, + "title": "The files to upload, must be internal storage URIs, must be a list of URIs or a pebble template that returns a list of URIs", + "oneOf": [ + { + "type": "string" + }, + { + "type": "array", + "items": { + "type": "string" + } + } + ] + }, + "host": { + "$dynamic": true, + "type": "string", + "title": "Hostname of the remote server" + }, + "id": { + "type": "string", + "minLength": 1, + "pattern": "^[a-zA-Z0-9][a-zA-Z0-9_-]*" + }, + "keyfile": { + "$dynamic": true, + "type": "string", + "title": "Private keyfile in the PEM file format to connect to a remote server using SSH", + "markdownDescription": "To generate a PEM format key from OpenSSH, use the following command: `ssh-keygen -m PEM`" + }, + "logLevel": { + "type": "string", + "enum": ["ERROR", "WARN", "INFO", "DEBUG", "TRACE"] + }, + "passphrase": { + "$dynamic": true, + "type": "string", + "title": "Passphrase of the ssh key" + }, + "password": { + "$dynamic": true, + "type": "string", + "title": "Password on the remote server" + }, + "port": { + "$dynamic": true, + "type": "string", + "title": "Port of the remote server", + "default": "22", + "markdownDescription": "Default value is : `22`" + }, + "proxyHost": { + "$dynamic": true, + "type": "string", + "title": "SFTP proxy host" + }, + "proxyPassword": { + "$dynamic": true, + "type": "string", + "title": "SFTP proxy password" + }, + "proxyPort": { + "$dynamic": true, + "type": "string", + "title": "SFTP proxy port" + }, + "proxyType": { + "$dynamic": true, + "type": "string", + "title": "SFTP proxy type" + }, + "proxyUser": { + "$dynamic": true, + "type": "string", + "title": "SFTP proxy user" + }, + "retry": { + "oneOf": [ + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Constant-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Exponential-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Random-2" + } + ] + }, + "rootDir": { + "$dynamic": true, + "type": "boolean", + "title": "Is path is relative to root dir", + "default": true, + "markdownDescription": "Default value is : `true`" + }, + "timeout": { + "type": "string", + "format": "duration" + }, + "to": { + "$dynamic": true, + "type": "string", + "title": "The destination directory" + }, + "type": { + "const": "io.kestra.plugin.fs.sftp.Uploads" + }, + "username": { + "$dynamic": true, + "type": "string", + "title": "Username on the remote server" + }, + "workerGroup": { + "$ref": "#/definitions/io.kestra.core.models.tasks.WorkerGroup" + } + }, + "required": ["from", "host", "id", "to", "type"], + "title": "Upload files to a SFTP server's directory", + "markdownDescription": "##### Examples\n\u003E \n```yaml\nhost: localhost\nport: \"22\"\nusername: foo\npassword: pass\nfrom:\n - \"{{ outputs.taskid1.uri }}\"\n - \"{{ outputs.taskid2.uri }}\"\nto: \"/upload/dir2\"\n```" + }, + "io.kestra.plugin.fs.smb.Delete": { + "type": "object", + "properties": { + "allowFailure": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "description": { + "type": "string" + }, + "disabled": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "errorOnMissing": { + "$dynamic": false, + "type": "boolean", + "title": "raise an error if the file is not found", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "host": { + "$dynamic": true, + "type": "string", + "title": "Hostname of the remote server" + }, + "id": { + "type": "string", + "minLength": 1, + "pattern": "^[a-zA-Z0-9][a-zA-Z0-9_-]*" + }, + "logLevel": { + "type": "string", + "enum": ["ERROR", "WARN", "INFO", "DEBUG", "TRACE"] + }, + "password": { + "$dynamic": true, + "type": "string", + "title": "Password on the remote server" + }, + "port": { + "$dynamic": true, + "type": "string", + "title": "Port of the remote server", + "default": "445", + "markdownDescription": "Default value is : `445`" + }, + "retry": { + "oneOf": [ + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Constant-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Exponential-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Random-2" + } + ] + }, + "timeout": { + "type": "string", + "format": "duration" + }, + "type": { + "const": "io.kestra.plugin.fs.smb.Delete" + }, + "uri": { + "$dynamic": true, + "type": "string", + "title": "The file to delete" + }, + "username": { + "$dynamic": true, + "type": "string", + "title": "Username on the remote server" + }, + "workerGroup": { + "$ref": "#/definitions/io.kestra.core.models.tasks.WorkerGroup" + } + }, + "required": ["host", "id", "type", "uri"], + "title": "Delete a file from a SMB (Samba for eg.) server.", + "markdownDescription": "##### Examples\n\u003E \n```yaml\nhost: localhost\nport: 445\nusername: foo\npassword: pass\nuri: \"/my_share/dir1/file.txt\"\n```" + }, + "io.kestra.plugin.fs.smb.Download": { + "type": "object", + "properties": { + "allowFailure": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "description": { + "type": "string" + }, + "disabled": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "from": { + "$dynamic": true, + "type": "string", + "title": "The fully-qualified URIs that point to destination path" + }, + "host": { + "$dynamic": true, + "type": "string", + "title": "Hostname of the remote server" + }, + "id": { + "type": "string", + "minLength": 1, + "pattern": "^[a-zA-Z0-9][a-zA-Z0-9_-]*" + }, + "logLevel": { + "type": "string", + "enum": ["ERROR", "WARN", "INFO", "DEBUG", "TRACE"] + }, + "password": { + "$dynamic": true, + "type": "string", + "title": "Password on the remote server" + }, + "port": { + "$dynamic": true, + "type": "string", + "title": "Port of the remote server", + "default": "445", + "markdownDescription": "Default value is : `445`" + }, + "retry": { + "oneOf": [ + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Constant-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Exponential-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Random-2" + } + ] + }, + "timeout": { + "type": "string", + "format": "duration" + }, + "type": { + "const": "io.kestra.plugin.fs.smb.Download" + }, + "username": { + "$dynamic": true, + "type": "string", + "title": "Username on the remote server" + }, + "workerGroup": { + "$ref": "#/definitions/io.kestra.core.models.tasks.WorkerGroup" + } + }, + "required": ["from", "host", "id", "type"], + "title": "Download file from SMB (Samba for eg.) server", + "markdownDescription": "##### Examples\n\u003E \n```yaml\nhost: localhost\nport: 445\nusername: foo\npassword: pass\nfrom: \"/my_share/file.txt\"\n```" + }, + "io.kestra.plugin.fs.smb.Downloads": { + "type": "object", + "properties": { + "action": { + "$dynamic": true, + "type": "string", + "enum": ["MOVE", "DELETE", "NONE"], + "title": "The action to do on downloaded files" + }, + "allowFailure": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "description": { + "type": "string" + }, + "disabled": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "from": { + "$dynamic": true, + "type": "string", + "title": "The directory to list" + }, + "host": { + "$dynamic": true, + "type": "string", + "title": "Hostname of the remote server" + }, + "id": { + "type": "string", + "minLength": 1, + "pattern": "^[a-zA-Z0-9][a-zA-Z0-9_-]*" + }, + "logLevel": { + "type": "string", + "enum": ["ERROR", "WARN", "INFO", "DEBUG", "TRACE"] + }, + "moveDirectory": { + "$dynamic": true, + "type": "string", + "title": "The destination directory in case off `MOVE` " + }, + "password": { + "$dynamic": true, + "type": "string", + "title": "Password on the remote server" + }, + "port": { + "$dynamic": true, + "type": "string", + "title": "Port of the remote server", + "default": "445", + "markdownDescription": "Default value is : `445`" + }, + "recursive": { + "type": "boolean", + "title": "List file recursively", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "regExp": { + "$dynamic": true, + "type": "string", + "title": "A regexp to filter on full path" + }, + "retry": { + "oneOf": [ + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Constant-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Exponential-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Random-2" + } + ] + }, + "timeout": { + "type": "string", + "format": "duration" + }, + "type": { + "const": "io.kestra.plugin.fs.smb.Downloads" + }, + "username": { + "$dynamic": true, + "type": "string", + "title": "Username on the remote server" + }, + "workerGroup": { + "$ref": "#/definitions/io.kestra.core.models.tasks.WorkerGroup" + } + }, + "required": ["from", "host", "id", "type"], + "title": "Download multiple files from a SMB (Samba for eg.) server", + "markdownDescription": "##### Examples\n\u003E Download files from `my_share` and move them to an `archive_share`\n```yaml\nhost: localhost\nport: 445\nusername: foo\npassword: pass\nfrom: \"/my_share/\"\ninterval: PT10S\naction: MOVE\nmoveDirectory: \"/archive_share/\"\n```" + }, + "io.kestra.plugin.fs.smb.List": { + "type": "object", + "properties": { + "allowFailure": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "description": { + "type": "string" + }, + "disabled": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "from": { + "$dynamic": true, + "type": "string", + "title": "The fully-qualified URIs that point to path" + }, + "host": { + "$dynamic": true, + "type": "string", + "title": "Hostname of the remote server" + }, + "id": { + "type": "string", + "minLength": 1, + "pattern": "^[a-zA-Z0-9][a-zA-Z0-9_-]*" + }, + "logLevel": { + "type": "string", + "enum": ["ERROR", "WARN", "INFO", "DEBUG", "TRACE"] + }, + "password": { + "$dynamic": true, + "type": "string", + "title": "Password on the remote server" + }, + "port": { + "$dynamic": true, + "type": "string", + "title": "Port of the remote server", + "default": "445", + "markdownDescription": "Default value is : `445`" + }, + "recursive": { + "type": "boolean", + "title": "List file recursively", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "regExp": { + "$dynamic": true, + "type": "string", + "title": "A regexp to filter on full path" + }, + "retry": { + "oneOf": [ + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Constant-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Exponential-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Random-2" + } + ] + }, + "timeout": { + "type": "string", + "format": "duration" + }, + "type": { + "const": "io.kestra.plugin.fs.smb.List" + }, + "username": { + "$dynamic": true, + "type": "string", + "title": "Username on the remote server" + }, + "workerGroup": { + "$ref": "#/definitions/io.kestra.core.models.tasks.WorkerGroup" + } + }, + "required": ["from", "host", "id", "type"], + "title": "List files from a SMB (Samba for eg.) server directory", + "markdownDescription": "##### Examples\n\u003E \n```yaml\nhost: localhost\nport: 445\nusername: foo\npassword: pass\nfrom: \"/my_share/dir1/\"\nregExp: \".*\\/dir1\\/.*\\.(yaml|yml)\"\n```" + }, + "io.kestra.plugin.fs.smb.Move": { + "type": "object", + "properties": { + "allowFailure": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "description": { + "type": "string" + }, + "disabled": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "from": { + "$dynamic": true, + "type": "string", + "title": "The file or directory to move from remote server." + }, + "host": { + "$dynamic": true, + "type": "string", + "title": "Hostname of the remote server" + }, + "id": { + "type": "string", + "minLength": 1, + "pattern": "^[a-zA-Z0-9][a-zA-Z0-9_-]*" + }, + "logLevel": { + "type": "string", + "enum": ["ERROR", "WARN", "INFO", "DEBUG", "TRACE"] + }, + "password": { + "$dynamic": true, + "type": "string", + "title": "Password on the remote server" + }, + "port": { + "$dynamic": true, + "type": "string", + "title": "Port of the remote server", + "default": "445", + "markdownDescription": "Default value is : `445`" + }, + "retry": { + "oneOf": [ + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Constant-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Exponential-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Random-2" + } + ] + }, + "timeout": { + "type": "string", + "format": "duration" + }, + "to": { + "$dynamic": true, + "type": "string", + "title": "The path to move the file or directory to on the remote server.", + "markdownDescription": "The full destination path (with filename optionally)\nIf end with a `/`, the destination is considered as a directory and filename will be happen\nIf the destFile exists, it is deleted first." + }, + "type": { + "const": "io.kestra.plugin.fs.smb.Move" + }, + "username": { + "$dynamic": true, + "type": "string", + "title": "Username on the remote server" + }, + "workerGroup": { + "$ref": "#/definitions/io.kestra.core.models.tasks.WorkerGroup" + } + }, + "required": ["from", "host", "id", "to", "type"], + "title": "Move a file to a different share / folder on a SMB (Samba for eg.) server.", + "markdownDescription": "If the destination directory doesn't exist, it will be created##### Examples\n\u003E \n```yaml\nhost: localhost\nport: 445\nusername: foo\npassword: pass\nfrom: \"/my_share/dir1/file.txt\"\nto: \"/my_share/dir2/file.txt\"\n```" + }, + "io.kestra.plugin.fs.smb.Trigger": { + "type": "object", + "properties": { + "action": { + "$dynamic": true, + "type": "string", + "enum": ["MOVE", "DELETE", "NONE"], + "title": "The action to perform on the retrieved files. If using 'NONE' make sure to handle the files inside your flow to avoid infinite triggering." + }, + "conditions": { + "$dynamic": false, + "title": "List of conditions in order to limit the flow trigger.", + "type": "array", + "items": { + "oneOf": [ + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.DateTimeBetweenCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.DayWeekCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.DayWeekInMonthCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.ExecutionFlowCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.ExecutionLabelsCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.ExecutionNamespaceCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.ExecutionOutputsCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.ExecutionStatusCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.ExpressionCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.FlowCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.FlowNamespaceCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.HasRetryAttemptCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.MultipleCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.NotCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.OrCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.PublicHolidayCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.TimeBetweenCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.WeekendCondition" + }, + { + "$dynamic": false + } + ] + } + ] + } + }, + "description": { + "type": "string" + }, + "disabled": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "from": { + "$dynamic": true, + "type": "string", + "title": "The directory to list" + }, + "host": { + "$dynamic": true, + "type": "string", + "title": "Hostname of the remote server" + }, + "id": { + "type": "string", + "title": "A unique ID for the whole flow.", + "minLength": 1, + "pattern": "^[a-zA-Z0-9][a-zA-Z0-9_-]*" + }, + "interval": { + "$dynamic": false, + "type": "string", + "format": "duration", + "title": "The interval between test of triggers", + "default": 60, + "markdownDescription": "Default value is : `60.000000000`" + }, + "labels": { + "title": "The labels to pass to the execution created.", + "type": "array", + "items": { + "$ref": "#/definitions/io.kestra.core.models.Label" + } + }, + "logLevel": { + "type": "string", + "enum": ["ERROR", "WARN", "INFO", "DEBUG", "TRACE"] + }, + "moveDirectory": { + "$dynamic": true, + "type": "string", + "title": "The destination directory in case off `MOVE` " + }, + "password": { + "$dynamic": true, + "type": "string", + "title": "Password on the remote server" + }, + "port": { + "$dynamic": true, + "type": "string", + "title": "Port of the remote server", + "default": "445", + "markdownDescription": "Default value is : `445`" + }, + "recursive": { + "type": "boolean", + "title": "List file recursively", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "regExp": { + "$dynamic": true, + "type": "string", + "title": "A regexp to filter on full path" + }, + "stopAfter": { + "$dynamic": false, + "title": "List of execution states after which a trigger should be stopped (a.k.a. disabled).", + "type": "array", + "items": { + "$dynamic": false, + "type": "string", + "enum": [ + "CREATED", + "RUNNING", + "PAUSED", + "RESTARTED", + "KILLING", + "SUCCESS", + "WARNING", + "FAILED", + "KILLED", + "CANCELLED", + "QUEUED", + "RETRYING", + "RETRIED" + ] + } + }, + "type": { + "const": "io.kestra.plugin.fs.smb.Trigger" + }, + "username": { + "$dynamic": true, + "type": "string", + "title": "Username on the remote server" + }, + "workerGroup": { + "$ref": "#/definitions/io.kestra.core.models.tasks.WorkerGroup" + } + }, + "required": ["action", "from", "host", "id", "type"], + "title": "Trigger a flow as soon as new files are detected in a given SMB (Samba for eg.) server's directory.", + "markdownDescription": "##### Examples\n\u003E Wait for one or more files in a given SMB server's directory and process each of these files sequentially.\nThen move them to another share which is used as an archive.\n```yaml\nid: smb_trigger_flow\nnamespace: company.team\n\ntasks:\n - id: for_each_file\n type: io.kestra.plugin.core.flow.EachSequential\n value: \"{{ trigger.files | jq('.path') }}\"\n tasks:\n - id: return\n type: io.kestra.plugin.core.debug.Return\n format: \"{{ taskrun.value }}\"\n\ntriggers:\n - id: watch\n type: io.kestra.plugin.fs.smb.Trigger\n host: localhost\n port: 445\n username: foo\n password: bar\n from: \"/my_share/in/\"\n interval: PT10S\n action: MOVE\n moveDirectory: \"/archive_share/\"\n```\n\n\u003E Wait for one or more files in a given SMB server's directory and process each of these files sequentially.\nThen move them to another share which is used as an archive.\n```yaml\nid: smb_trigger_flow\nnamespace: company.team\n\ntasks:\n - id: for_each_file\n type: io.kestra.plugin.core.flow.EachSequential\n value: \"{{ trigger.files | jq('.path') }}\"\n tasks:\n - id: return\n type: io.kestra.plugin.core.debug.Return\n format: \"{{ taskrun.value }}\"\n - id: delete\n type: io.kestra.plugin.fs.smb.Delete\n host: localhost\n port: 445\n username: foo\n password: bar\n uri: \"/my_share/in/{{ taskrun.value }}\"\n\ntriggers:\n - id: watch\n type: io.kestra.plugin.fs.smb.Trigger\n host: localhost\n port: 445\n username: foo\n password: bar\n from: \"/my_share/in/\"\n interval: PT10S\n action: NONE\n```\n\n\u003E Wait for one or more files in a given SMB server's directory (composed of share name followed by dir path) and process each of these files sequentially.\nIn this example, we restrict the trigger to only wait for CSV files in the `mydir` directory.\n```yaml\nid: smb_wait_for_csv_in_my_share_my_dir\nnamespace: company.team\n\ntasks:\n - id: each\n type: io.kestra.plugin.core.flow.EachSequential\n value: \"{{ trigger.files | jq('.path') }}\"\n tasks:\n - id: return\n type: io.kestra.plugin.core.debug.Return\n format: \"{{ taskrun.value }}\"\n\ntriggers:\n - id: watch\n type: io.kestra.plugin.fs.smb.Trigger\n host: localhost\n port: \"445\"\n username: foo\n password: bar\n from: \"my_share/mydir/\"\n regExp: \".*.csv\"\n action: MOVE\n moveDirectory: \"my_share/archivedir\"\n interval: PTS\n```" + }, + "io.kestra.plugin.fs.smb.Upload": { + "type": "object", + "properties": { + "allowFailure": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "description": { + "type": "string" + }, + "disabled": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "from": { + "$dynamic": true, + "type": "string", + "title": "The file to copy, must be an internal storage URI" + }, + "host": { + "$dynamic": true, + "type": "string", + "title": "Hostname of the remote server" + }, + "id": { + "type": "string", + "minLength": 1, + "pattern": "^[a-zA-Z0-9][a-zA-Z0-9_-]*" + }, + "logLevel": { + "type": "string", + "enum": ["ERROR", "WARN", "INFO", "DEBUG", "TRACE"] + }, + "password": { + "$dynamic": true, + "type": "string", + "title": "Password on the remote server" + }, + "port": { + "$dynamic": true, + "type": "string", + "title": "Port of the remote server", + "default": "445", + "markdownDescription": "Default value is : `445`" + }, + "retry": { + "oneOf": [ + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Constant-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Exponential-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Random-2" + } + ] + }, + "timeout": { + "type": "string", + "format": "duration" + }, + "to": { + "$dynamic": true, + "type": "string", + "title": "The destination path, if not set it will use the name of the file denoted by the `from` property" + }, + "type": { + "const": "io.kestra.plugin.fs.smb.Upload" + }, + "username": { + "$dynamic": true, + "type": "string", + "title": "Username on the remote server" + }, + "workerGroup": { + "$ref": "#/definitions/io.kestra.core.models.tasks.WorkerGroup" + } + }, + "required": ["from", "host", "id", "type"], + "title": "Upload a file to a SMB (Samba for eg.) server", + "markdownDescription": "##### Examples\n\u003E \n```yaml\nhost: localhost\nport: 445\nusername: foo\npassword: pass\nfrom: \"{{ outputs.taskid.uri }}\"\nto: \"/my_share/dir2/file.txt\"\n```" + }, + "io.kestra.plugin.fs.smb.Uploads": { + "type": "object", + "properties": { + "allowFailure": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "description": { + "type": "string" + }, + "disabled": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "from": { + "$dynamic": true, + "title": "The files to upload, must be internal storage URIs, must be a list of URIs or a pebble template that returns a list of URIs", + "oneOf": [ + { + "type": "string" + }, + { + "type": "array", + "items": { + "type": "string" + } + } + ] + }, + "host": { + "$dynamic": true, + "type": "string", + "title": "Hostname of the remote server" + }, + "id": { + "type": "string", + "minLength": 1, + "pattern": "^[a-zA-Z0-9][a-zA-Z0-9_-]*" + }, + "logLevel": { + "type": "string", + "enum": ["ERROR", "WARN", "INFO", "DEBUG", "TRACE"] + }, + "password": { + "$dynamic": true, + "type": "string", + "title": "Password on the remote server" + }, + "port": { + "$dynamic": true, + "type": "string", + "title": "Port of the remote server", + "default": "445", + "markdownDescription": "Default value is : `445`" + }, + "retry": { + "oneOf": [ + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Constant-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Exponential-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Random-2" + } + ] + }, + "timeout": { + "type": "string", + "format": "duration" + }, + "to": { + "$dynamic": true, + "type": "string", + "title": "The destination directory" + }, + "type": { + "const": "io.kestra.plugin.fs.smb.Uploads" + }, + "username": { + "$dynamic": true, + "type": "string", + "title": "Username on the remote server" + }, + "workerGroup": { + "$ref": "#/definitions/io.kestra.core.models.tasks.WorkerGroup" + } + }, + "required": ["from", "host", "id", "to", "type"], + "title": "Upload files to a SMB (Samba for eg.) server's directory.", + "markdownDescription": "##### Examples\n\u003E \n```yaml\nhost: localhost\nport: 445\nusername: foo\npassword: pass\nfrom:\n - \"{{ outputs.taskid1.uri }}\"\n - \"{{ outputs.taskid2.uri }}\"\nto: \"/my_share/dir2\"\n```" + }, + "io.kestra.plugin.fs.ssh.Command": { + "type": "object", + "properties": { + "allowFailure": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "authMethod": { + "$dynamic": true, + "type": "string", + "enum": ["PASSWORD", "PUBLIC_KEY"], + "title": "Authentication method", + "default": "PASSWORD", + "markdownDescription": "Default value is : `PASSWORD`" + }, + "commands": { + "$dynamic": true, + "title": "The list of commands to run on the remote server", + "minItems": 1, + "type": "array", + "items": { + "$dynamic": true, + "type": "string" + } + }, + "description": { + "type": "string" + }, + "disabled": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "env": { + "$dynamic": true, + "type": "object", + "title": "Environment variables to pass to the SSH process.", + "additionalProperties": { + "type": "string" + } + }, + "host": { + "$dynamic": true, + "type": "string", + "title": "Hostname of the remote server" + }, + "id": { + "type": "string", + "minLength": 1, + "pattern": "^[a-zA-Z0-9][a-zA-Z0-9_-]*" + }, + "logLevel": { + "type": "string", + "enum": ["ERROR", "WARN", "INFO", "DEBUG", "TRACE"] + }, + "password": { + "$dynamic": true, + "type": "string", + "title": "Password on the remote server, required for password auth method" + }, + "port": { + "$dynamic": true, + "type": "string", + "title": "Port of the remote server", + "default": "22", + "markdownDescription": "Default value is : `22`" + }, + "privateKey": { + "$dynamic": true, + "type": "string", + "title": "Private SSH Key to authenticate, required for pubkey auth method" + }, + "privateKeyPassphrase": { + "$dynamic": true, + "type": "string", + "title": "Passphrase used in order to unseal the private key, optional for pubkey auth method" + }, + "retry": { + "oneOf": [ + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Constant-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Exponential-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Random-2" + } + ] + }, + "strictHostKeyChecking": { + "$dynamic": false, + "type": "string", + "title": "Whether to check if the host public key could be found among known host, one of 'yes', 'no', 'ask'", + "default": "no", + "markdownDescription": "Default value is : `\"no\"`" + }, + "timeout": { + "type": "string", + "format": "duration" + }, + "type": { + "const": "io.kestra.plugin.fs.ssh.Command" + }, + "username": { + "$dynamic": true, + "type": "string", + "title": "Username on the remote server, required for password auth method" + }, + "warningOnStdErr": { + "$dynamic": false, + "type": "boolean", + "title": "Use `WARNING` state if any stdErr is sent", + "default": true, + "markdownDescription": "Default value is : `true`" + }, + "workerGroup": { + "$ref": "#/definitions/io.kestra.core.models.tasks.WorkerGroup" + } + }, + "required": ["commands", "host", "id", "type", "username"], + "title": "Send a command to a remote server using SSH.", + "markdownDescription": "##### Examples\n\u003E Run SSH command using password authentication\n```yaml\nhost: localhost\nport: \"22\"\nauthMethod: PASSWORD\nusername: foo\npassword: pass\ncommands: ['ls']\n```\n\n\u003E Run SSH command using public key authentication (must be an OpenSSH private key)\n```yaml\nhost: localhost\nport: \"22\"\nauthMethod: PUBLIC_KEY\nusername: root\nprivateKey: \"{{ secret('SSH_RSA_PRIVATE_KEY') }}\"\ncommands: ['touch kestra_was_here']\n```" + }, + "io.kestra.plugin.gcp.auth.OauthAccessToken": { + "type": "object", + "properties": { + "allowFailure": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "description": { + "type": "string" + }, + "disabled": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "id": { + "type": "string", + "minLength": 1, + "pattern": "^[a-zA-Z0-9][a-zA-Z0-9_-]*" + }, + "logLevel": { + "type": "string", + "enum": ["ERROR", "WARN", "INFO", "DEBUG", "TRACE"] + }, + "projectId": { + "$dynamic": true, + "type": "string", + "title": "The GCP project ID." + }, + "retry": { + "oneOf": [ + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Constant-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Exponential-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Random-2" + } + ] + }, + "scopes": { + "$dynamic": true, + "title": "The GCP scopes to be used.", + "default": ["https://www.googleapis.com/auth/cloud-platform"], + "markdownDescription": "Default value is : `- https://www.googleapis.com/auth/cloud-platform`\n\nDefault value is : `- https://www.googleapis.com/auth/cloud-platform`", + "type": "array", + "items": { + "$dynamic": true, + "type": "string" + } + }, + "serviceAccount": { + "$dynamic": true, + "type": "string", + "title": "The GCP service account key." + }, + "timeout": { + "type": "string", + "format": "duration" + }, + "type": { + "const": "io.kestra.plugin.gcp.auth.OauthAccessToken" + }, + "workerGroup": { + "$ref": "#/definitions/io.kestra.core.models.tasks.WorkerGroup" + } + }, + "required": ["id", "type"], + "title": "Fetch an OAuth access token." + }, + "io.kestra.plugin.gcp.bigquery.AbstractLoad-AvroOptions": { + "type": "object", + "properties": { + "useAvroLogicalTypes": { + "$dynamic": false, + "type": "boolean", + "title": "If format is set to AVRO, you can interpret logical types into their corresponding types (such as TIMESTAMP) instead of only using their raw types (such as INTEGER)", + "markdownDescription": "The value may be null." + } + } + }, + "io.kestra.plugin.gcp.bigquery.AbstractLoad-CsvOptions": { + "type": "object", + "properties": { + "allowJaggedRows": { + "$dynamic": false, + "type": "boolean", + "title": "Whether BigQuery should accept rows that are missing trailing optional columns.", + "markdownDescription": "If true, BigQuery treats missing trailing columns as null values. If {@code false}, records with missing trailing columns are treated as bad records, and if there are too many bad records, an invalid error is returned in the job result. By default, rows with missing trailing columns are considered bad records." + }, + "allowQuotedNewLines": { + "$dynamic": true, + "type": "boolean", + "title": "Whether BigQuery should allow quoted data sections that contain newline characters in a CSV file.", + "markdownDescription": "By default quoted newline are not allowed." + }, + "encoding": { + "$dynamic": true, + "type": "string", + "title": "The character encoding of the data.", + "markdownDescription": "The supported values are UTF-8 or ISO-8859-1. The default value is UTF-8. BigQuery decodes the data after the raw, binary data has been split using the values set in {@link #setQuote(String)} and {@link #setFieldDelimiter(String)}." + }, + "fieldDelimiter": { + "$dynamic": true, + "type": "string", + "title": "The separator for fields in a CSV file.", + "markdownDescription": "BigQuery converts the string to ISO-8859-1 encoding, and then uses the first byte of the encoded string to split the data in its raw, binary state. BigQuery also supports the escape sequence \"\\t\" to specify a tab separator. The default value is a comma (',')." + }, + "quote": { + "$dynamic": true, + "type": "string", + "title": "The value that is used to quote data sections in a CSV file.", + "markdownDescription": "BigQuery converts the string to ISO-8859-1 encoding, and then uses the first byte of the encoded string to split the data in its raw, binary state. The default value is a double-quote ('\"'). If your data does not contain quoted sections, set the property value to an empty string. If your data contains quoted newline characters, you must also set {@link #setAllowQuotedNewLines(boolean)} property to {@code true}." + }, + "skipLeadingRows": { + "$dynamic": false, + "type": "integer", + "title": "The number of rows at the top of a CSV file that BigQuery will skip when reading the data", + "markdownDescription": "The default value is 0. This property is useful if you have header rows in the file that should be skipped." + } + } + }, + "io.kestra.plugin.gcp.bigquery.Copy": { + "$metrics": [ + { + "name": "num.child.jobs", + "type": "counter", + "unit": "", + "description": "The number of child jobs executed." + }, + { + "name": "duration", + "type": "timer", + "unit": "", + "description": "The time it took for the job to run." + } + ], + "type": "object", + "properties": { + "allowFailure": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "createDisposition": { + "$dynamic": false, + "type": "string", + "enum": ["CREATE_IF_NEEDED", "CREATE_NEVER"], + "title": "Whether the job is allowed to create tables." + }, + "description": { + "type": "string" + }, + "destinationTable": { + "$dynamic": true, + "type": "string", + "title": "The destination table.", + "markdownDescription": "If not provided a new table is created." + }, + "disabled": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "dryRun": { + "$dynamic": false, + "type": "boolean", + "title": "Whether the job has to be dry run or not.", + "default": false, + "markdownDescription": " A valid query will mostly return an empty response with some processing statistics, while an invalid query will return the same error as it would if it were an actual run.\n\nDefault value is : `false`" + }, + "id": { + "type": "string", + "minLength": 1, + "pattern": "^[a-zA-Z0-9][a-zA-Z0-9_-]*" + }, + "jobTimeout": { + "$dynamic": false, + "type": "string", + "format": "duration", + "title": "Job timeout.", + "markdownDescription": "If this time limit is exceeded, BigQuery may attempt to terminate the job." + }, + "labels": { + "$dynamic": true, + "type": "object", + "title": "The labels associated with this job.", + "markdownDescription": "You can use these to organize and group your jobs. Label keys and values can be no longer than 63 characters, can only contain lowercase letters, numeric characters, underscores and dashes. International characters are allowed. Label values are optional. Label keys must start with a letter and each label in the list must have a different key." + }, + "location": { + "$dynamic": true, + "type": "string", + "title": "The geographic location where the dataset should reside.", + "markdownDescription": "This property is experimental and might be subject to change or removed.\n \n See \u003Ca href=\"https://cloud.google.com/bigquery/docs/reference/v2/datasets#location\"\u003EDataset Location\u003C/a\u003E" + }, + "logLevel": { + "type": "string", + "enum": ["ERROR", "WARN", "INFO", "DEBUG", "TRACE"] + }, + "operationType": { + "$dynamic": true, + "type": "string", + "enum": ["COPY", "SNAPSHOT", "RESTORE", "CLONE"], + "title": "Sets the supported operation types in table copy job.", + "markdownDescription": "* `COPY`: The source and destination table have the same table type.\n* `SNAPSHOT`: The source table type is TABLE and the destination table type is SNAPSHOT.\n* `RESTORE`: The source table type is SNAPSHOT and the destination table type is TABLE.\n* `CLONE`: The source and destination table have the same table type, but only bill for unique data." + }, + "projectId": { + "$dynamic": true, + "type": "string", + "title": "The GCP project ID." + }, + "retry": { + "oneOf": [ + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Constant-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Exponential-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Random-2" + } + ] + }, + "retryAuto": { + "oneOf": [ + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Constant-2" + }, + { + "$dynamic": false, + "title": "Automatic retry for retryable BigQuery exceptions.", + "markdownDescription": "Some exceptions (especially rate limit) are not retried by default by BigQuery client, we use by default a transparent retry (not the kestra one) to handle this case.\nThe default values are exponential of 5 seconds for a maximum of 15 minutes and ten attempts" + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Exponential-2" + }, + { + "$dynamic": false, + "title": "Automatic retry for retryable BigQuery exceptions.", + "markdownDescription": "Some exceptions (especially rate limit) are not retried by default by BigQuery client, we use by default a transparent retry (not the kestra one) to handle this case.\nThe default values are exponential of 5 seconds for a maximum of 15 minutes and ten attempts" + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Random-2" + }, + { + "$dynamic": false, + "title": "Automatic retry for retryable BigQuery exceptions.", + "markdownDescription": "Some exceptions (especially rate limit) are not retried by default by BigQuery client, we use by default a transparent retry (not the kestra one) to handle this case.\nThe default values are exponential of 5 seconds for a maximum of 15 minutes and ten attempts" + } + ] + } + ] + }, + "retryMessages": { + "$dynamic": true, + "title": "The messages which would trigger an automatic retry.", + "default": [ + "due to concurrent update", + "Retrying the job may solve the problem" + ], + "markdownDescription": "Message is tested as a substring of the full message, and is case insensitive.\n\nDefault value is : `- due to concurrent update\n- Retrying the job may solve the problem`\n\nDefault value is : `- due to concurrent update\n- Retrying the job may solve the problem`", + "type": "array", + "items": { + "$dynamic": true, + "type": "string" + } + }, + "retryReasons": { + "$dynamic": true, + "title": "The reasons which would trigger an automatic retry.", + "default": [ + "rateLimitExceeded", + "jobBackendError", + "internalError", + "jobInternalError" + ], + "markdownDescription": "Default value is : `- rateLimitExceeded\n- jobBackendError\n- internalError\n- jobInternalError`\n\nDefault value is : `- rateLimitExceeded\n- jobBackendError\n- internalError\n- jobInternalError`", + "type": "array", + "items": { + "$dynamic": true, + "type": "string" + } + }, + "scopes": { + "$dynamic": true, + "title": "The GCP scopes to be used.", + "default": ["https://www.googleapis.com/auth/cloud-platform"], + "markdownDescription": "Default value is : `- https://www.googleapis.com/auth/cloud-platform`\n\nDefault value is : `- https://www.googleapis.com/auth/cloud-platform`", + "type": "array", + "items": { + "$dynamic": true, + "type": "string" + } + }, + "serviceAccount": { + "$dynamic": true, + "type": "string", + "title": "The GCP service account key." + }, + "sourceTables": { + "$dynamic": true, + "title": "The source tables.", + "markdownDescription": "Can be table or partitions.", + "type": "array", + "items": { + "$dynamic": true, + "type": "string" + } + }, + "timeout": { + "type": "string", + "format": "duration" + }, + "type": { + "const": "io.kestra.plugin.gcp.bigquery.Copy" + }, + "workerGroup": { + "$ref": "#/definitions/io.kestra.core.models.tasks.WorkerGroup" + }, + "writeDisposition": { + "$dynamic": false, + "type": "string", + "enum": ["WRITE_TRUNCATE", "WRITE_APPEND", "WRITE_EMPTY"], + "title": "The action that should occur if the destination table already exists." + } + }, + "required": [ + "destinationTable", + "id", + "operationType", + "sourceTables", + "type" + ], + "title": "Copy a BigQuery table or partition to other one.", + "markdownDescription": "##### Examples\n\u003E \n```yaml\noperationType: COPY\nsourceTables:\n- \"my_project.my_dataset.my_table$20130908\"\ndestinationTable: \"my_project.my_dataset.my_table\"\n```" + }, + "io.kestra.plugin.gcp.bigquery.CopyPartitions": { + "$metrics": [ + { + "name": "size", + "type": "counter", + "unit": "", + "description": "The number of partitions copied." + } + ], + "type": "object", + "properties": { + "allowFailure": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "createDisposition": { + "$dynamic": false, + "type": "string", + "enum": ["CREATE_IF_NEEDED", "CREATE_NEVER"], + "title": "Whether the job is allowed to create tables." + }, + "dataset": { + "$dynamic": true, + "type": "string", + "title": "The dataset's user-defined ID." + }, + "description": { + "type": "string" + }, + "destinationTable": { + "$dynamic": true, + "type": "string", + "title": "The table where to put query results.", + "markdownDescription": "If not provided, a new table is created." + }, + "disabled": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "dryRun": { + "$dynamic": false, + "type": "boolean", + "title": "Whether the job has to be dry run or not.", + "default": false, + "markdownDescription": " A valid query will mostly return an empty response with some processing statistics, while an invalid query will return the same error as it would if it were an actual run.\n\nDefault value is : `false`" + }, + "from": { + "$dynamic": true, + "type": "string", + "title": "The inclusive starting date or integer.", + "markdownDescription": "If the partition :\n- is a numeric range, must be a valid integer\n- is a date, must a valid datetime like `{{ now() }}`" + }, + "id": { + "type": "string", + "minLength": 1, + "pattern": "^[a-zA-Z0-9][a-zA-Z0-9_-]*" + }, + "jobTimeout": { + "$dynamic": false, + "type": "string", + "format": "duration", + "title": "Job timeout.", + "markdownDescription": "If this time limit is exceeded, BigQuery may attempt to terminate the job." + }, + "labels": { + "$dynamic": true, + "type": "object", + "title": "The labels associated with this job.", + "markdownDescription": "You can use these to organize and group your jobs. Label keys and values can be no longer than 63 characters, can only contain lowercase letters, numeric characters, underscores and dashes. International characters are allowed. Label values are optional. Label keys must start with a letter and each label in the list must have a different key." + }, + "location": { + "$dynamic": true, + "type": "string", + "title": "The geographic location where the dataset should reside.", + "markdownDescription": "This property is experimental and might be subject to change or removed.\n \n See \u003Ca href=\"https://cloud.google.com/bigquery/docs/reference/v2/datasets#location\"\u003EDataset Location\u003C/a\u003E" + }, + "logLevel": { + "type": "string", + "enum": ["ERROR", "WARN", "INFO", "DEBUG", "TRACE"] + }, + "partitionType": { + "$dynamic": true, + "type": "string", + "enum": ["DAY", "HOUR", "MONTH", "YEAR", "RANGE"], + "title": "The partition type of the table" + }, + "projectId": { + "$dynamic": true, + "type": "string", + "title": "The GCP project ID." + }, + "retry": { + "oneOf": [ + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Constant-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Exponential-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Random-2" + } + ] + }, + "retryAuto": { + "oneOf": [ + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Constant-2" + }, + { + "$dynamic": false, + "title": "Automatic retry for retryable BigQuery exceptions.", + "markdownDescription": "Some exceptions (especially rate limit) are not retried by default by BigQuery client, we use by default a transparent retry (not the kestra one) to handle this case.\nThe default values are exponential of 5 seconds for a maximum of 15 minutes and ten attempts" + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Exponential-2" + }, + { + "$dynamic": false, + "title": "Automatic retry for retryable BigQuery exceptions.", + "markdownDescription": "Some exceptions (especially rate limit) are not retried by default by BigQuery client, we use by default a transparent retry (not the kestra one) to handle this case.\nThe default values are exponential of 5 seconds for a maximum of 15 minutes and ten attempts" + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Random-2" + }, + { + "$dynamic": false, + "title": "Automatic retry for retryable BigQuery exceptions.", + "markdownDescription": "Some exceptions (especially rate limit) are not retried by default by BigQuery client, we use by default a transparent retry (not the kestra one) to handle this case.\nThe default values are exponential of 5 seconds for a maximum of 15 minutes and ten attempts" + } + ] + } + ] + }, + "retryMessages": { + "$dynamic": true, + "title": "The messages which would trigger an automatic retry.", + "default": [ + "due to concurrent update", + "Retrying the job may solve the problem" + ], + "markdownDescription": "Message is tested as a substring of the full message, and is case insensitive.\n\nDefault value is : `- due to concurrent update\n- Retrying the job may solve the problem`\n\nDefault value is : `- due to concurrent update\n- Retrying the job may solve the problem`", + "type": "array", + "items": { + "$dynamic": true, + "type": "string" + } + }, + "retryReasons": { + "$dynamic": true, + "title": "The reasons which would trigger an automatic retry.", + "default": [ + "rateLimitExceeded", + "jobBackendError", + "internalError", + "jobInternalError" + ], + "markdownDescription": "Default value is : `- rateLimitExceeded\n- jobBackendError\n- internalError\n- jobInternalError`\n\nDefault value is : `- rateLimitExceeded\n- jobBackendError\n- internalError\n- jobInternalError`", + "type": "array", + "items": { + "$dynamic": true, + "type": "string" + } + }, + "scopes": { + "$dynamic": true, + "title": "The GCP scopes to be used.", + "default": ["https://www.googleapis.com/auth/cloud-platform"], + "markdownDescription": "Default value is : `- https://www.googleapis.com/auth/cloud-platform`\n\nDefault value is : `- https://www.googleapis.com/auth/cloud-platform`", + "type": "array", + "items": { + "$dynamic": true, + "type": "string" + } + }, + "serviceAccount": { + "$dynamic": true, + "type": "string", + "title": "The GCP service account key." + }, + "table": { + "$dynamic": true, + "type": "string", + "title": "The table's user-defined ID." + }, + "timeout": { + "type": "string", + "format": "duration" + }, + "to": { + "$dynamic": true, + "type": "string", + "title": "The inclusive ending date or integer.", + "markdownDescription": "If the partition :\n- is a numeric range, must be a valid integer\n- is a date, must a valid datetime like `{{ now() }}`" + }, + "type": { + "const": "io.kestra.plugin.gcp.bigquery.CopyPartitions" + }, + "workerGroup": { + "$ref": "#/definitions/io.kestra.core.models.tasks.WorkerGroup" + }, + "writeDisposition": { + "$dynamic": false, + "type": "string", + "enum": ["WRITE_TRUNCATE", "WRITE_APPEND", "WRITE_EMPTY"], + "title": "The action that should occur if the destination table already exists." + } + }, + "required": [ + "dataset", + "from", + "id", + "partitionType", + "table", + "to", + "type" + ], + "title": "Copy partitions between interval to another table ", + "markdownDescription": "##### Examples\n\u003E \n```yaml\nprojectId: my-project\ndataset: my-dataset\ntable: my-table\ndestinationTable: my-dest-table\npartitionType: DAY\nfrom: \"{{ now() | dateAdd(-30, 'DAYS') }}\"\nto: \"{{ now() | dateAdd(-7, 'DAYS') }}\"\n```" + }, + "io.kestra.plugin.gcp.bigquery.CreateDataset": { + "type": "object", + "properties": { + "acl": { + "$dynamic": false, + "title": "The dataset's access control configuration.", + "type": "array", + "items": { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.bigquery.models.AccessControl" + }, + { + "$dynamic": false + } + ] + } + }, + "allowFailure": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "defaultEncryptionConfiguration": { + "allOf": [ + { + "$ref": "#/definitions/com.google.cloud.bigquery.EncryptionConfiguration" + }, + { + "$dynamic": false, + "title": "The default encryption key for all tables in the dataset.", + "markdownDescription": "Once this property is set, all newly-created partitioned tables in the dataset will have encryption key set to this value, unless table creation request (or query) overrides the key." + } + ] + }, + "defaultPartitionExpirationMs": { + "$dynamic": false, + "type": "integer", + "title": "[Optional] The default partition expiration time for all partitioned tables in the dataset, in milliseconds.", + "markdownDescription": " Once this property is set, all newly-created partitioned tables in the dataset will has an expirationMs property in the timePartitioning settings set to this value. Changing the value only affect new tables, not existing ones. The storage in a partition will have an expiration time of its partition time plus this value. Setting this property overrides the use of defaultTableExpirationMs for partitioned tables: only one of defaultTableExpirationMs and defaultPartitionExpirationMs will be used for any new partitioned table. If you provide an explicit timePartitioning.expirationMs when creating or updating a partitioned table, that value takes precedence over the default partition expiration time indicated by this property. The value may be null." + }, + "defaultTableLifetime": { + "$dynamic": false, + "type": "integer", + "title": "The default lifetime of all tables in the dataset, in milliseconds.", + "markdownDescription": "The minimum value is 3600000 milliseconds (one hour). Once this property is set, all newly-created tables in the dataset will have an expirationTime property set to the creation time plus the value in this property, and changing the value will only affect new tables, not existing ones. When the expirationTime for a given table is reached, that table will be deleted automatically. If a table's expirationTime is modified or removed before the table expires, or if you provide an explicit expirationTime when creating a table, that value takes precedence over the default expiration time indicated by this property. This property is experimental and might be subject to change or removed." + }, + "description": { + "$dynamic": true, + "type": "string", + "title": "The dataset description.", + "markdownDescription": "A user-friendly description for the dataset." + }, + "disabled": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "friendlyName": { + "$dynamic": true, + "type": "string", + "title": "A user-friendly name for the dataset." + }, + "id": { + "type": "string", + "minLength": 1, + "pattern": "^[a-zA-Z0-9][a-zA-Z0-9_-]*" + }, + "ifExists": { + "type": "string", + "enum": ["ERROR", "UPDATE", "SKIP"], + "title": "Policy to apply if a dataset already exists.", + "default": "ERROR", + "markdownDescription": "Default value is : `ERROR`" + }, + "labels": { + "$dynamic": true, + "type": "object", + "title": "The dataset's labels." + }, + "location": { + "$dynamic": true, + "type": "string", + "title": "The geographic location where the dataset should reside.", + "markdownDescription": "This property is experimental and might be subject to change or removed. \n See \u003Ca href=\"https://cloud.google.com/bigquery/docs/reference/v2/datasets#location\"\u003EDataset Location\u003C/a\u003E" + }, + "logLevel": { + "type": "string", + "enum": ["ERROR", "WARN", "INFO", "DEBUG", "TRACE"] + }, + "name": { + "$dynamic": true, + "type": "string", + "title": "The dataset's user-defined ID." + }, + "projectId": { + "$dynamic": true, + "type": "string", + "title": "The GCP project ID." + }, + "retry": { + "oneOf": [ + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Constant-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Exponential-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Random-2" + } + ] + }, + "retryAuto": { + "oneOf": [ + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Constant-2" + }, + { + "$dynamic": false, + "title": "Automatic retry for retryable BigQuery exceptions.", + "markdownDescription": "Some exceptions (especially rate limit) are not retried by default by BigQuery client, we use by default a transparent retry (not the kestra one) to handle this case.\nThe default values are exponential of 5 seconds for a maximum of 15 minutes and ten attempts" + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Exponential-2" + }, + { + "$dynamic": false, + "title": "Automatic retry for retryable BigQuery exceptions.", + "markdownDescription": "Some exceptions (especially rate limit) are not retried by default by BigQuery client, we use by default a transparent retry (not the kestra one) to handle this case.\nThe default values are exponential of 5 seconds for a maximum of 15 minutes and ten attempts" + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Random-2" + }, + { + "$dynamic": false, + "title": "Automatic retry for retryable BigQuery exceptions.", + "markdownDescription": "Some exceptions (especially rate limit) are not retried by default by BigQuery client, we use by default a transparent retry (not the kestra one) to handle this case.\nThe default values are exponential of 5 seconds for a maximum of 15 minutes and ten attempts" + } + ] + } + ] + }, + "retryMessages": { + "$dynamic": true, + "title": "The messages which would trigger an automatic retry.", + "default": [ + "due to concurrent update", + "Retrying the job may solve the problem" + ], + "markdownDescription": "Message is tested as a substring of the full message, and is case insensitive.\n\nDefault value is : `- due to concurrent update\n- Retrying the job may solve the problem`\n\nDefault value is : `- due to concurrent update\n- Retrying the job may solve the problem`", + "type": "array", + "items": { + "$dynamic": true, + "type": "string" + } + }, + "retryReasons": { + "$dynamic": true, + "title": "The reasons which would trigger an automatic retry.", + "default": [ + "rateLimitExceeded", + "jobBackendError", + "internalError", + "jobInternalError" + ], + "markdownDescription": "Default value is : `- rateLimitExceeded\n- jobBackendError\n- internalError\n- jobInternalError`\n\nDefault value is : `- rateLimitExceeded\n- jobBackendError\n- internalError\n- jobInternalError`", + "type": "array", + "items": { + "$dynamic": true, + "type": "string" + } + }, + "scopes": { + "$dynamic": true, + "title": "The GCP scopes to be used.", + "default": ["https://www.googleapis.com/auth/cloud-platform"], + "markdownDescription": "Default value is : `- https://www.googleapis.com/auth/cloud-platform`\n\nDefault value is : `- https://www.googleapis.com/auth/cloud-platform`", + "type": "array", + "items": { + "$dynamic": true, + "type": "string" + } + }, + "serviceAccount": { + "$dynamic": true, + "type": "string", + "title": "The GCP service account key." + }, + "timeout": { + "type": "string", + "format": "duration" + }, + "type": { + "const": "io.kestra.plugin.gcp.bigquery.CreateDataset" + }, + "workerGroup": { + "$ref": "#/definitions/io.kestra.core.models.tasks.WorkerGroup" + } + }, + "required": ["id", "name", "type"], + "title": "Create a dataset or update if it already exists.", + "markdownDescription": "##### Examples\n\u003E Create a dataset if not exits\n```yaml\nname: \"my_dataset\"\nlocation: \"EU\"\nifExists: \"SKIP\"\n```" + }, + "io.kestra.plugin.gcp.bigquery.CreateTable": { + "type": "object", + "properties": { + "allowFailure": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "dataset": { + "$dynamic": true, + "type": "string", + "title": "The dataset's user-defined ID." + }, + "description": { + "$dynamic": true, + "type": "string", + "title": "The user-friendly description for the table." + }, + "disabled": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "encryptionConfiguration": { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.bigquery.models.EncryptionConfiguration" + }, + { + "title": "The encryption configuration." + } + ] + }, + "expirationDuration": { + "type": "string", + "format": "duration", + "title": "Sets the duration, since now, when this table expires.", + "markdownDescription": "If not present, the table will persist indefinitely. Expired tables will be deleted and their storage reclaimed." + }, + "friendlyName": { + "$dynamic": true, + "type": "string", + "title": "The user-friendly name for the table." + }, + "id": { + "type": "string", + "minLength": 1, + "pattern": "^[a-zA-Z0-9][a-zA-Z0-9_-]*" + }, + "labels": { + "$dynamic": true, + "type": "object", + "title": "Return a map for labels applied to the table." + }, + "location": { + "$dynamic": true, + "type": "string", + "title": "The geographic location where the dataset should reside.", + "markdownDescription": "This property is experimental and might be subject to change or removed.\n \n See \u003Ca href=\"https://cloud.google.com/bigquery/docs/reference/v2/datasets#location\"\u003EDataset Location\u003C/a\u003E" + }, + "logLevel": { + "type": "string", + "enum": ["ERROR", "WARN", "INFO", "DEBUG", "TRACE"] + }, + "projectId": { + "$dynamic": true, + "type": "string", + "title": "The GCP project ID." + }, + "requirePartitionFilter": { + "type": "boolean", + "title": "Return true if a partition filter (that can be used for partition elimination) is required for queries over this table." + }, + "retry": { + "oneOf": [ + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Constant-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Exponential-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Random-2" + } + ] + }, + "retryAuto": { + "oneOf": [ + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Constant-2" + }, + { + "$dynamic": false, + "title": "Automatic retry for retryable BigQuery exceptions.", + "markdownDescription": "Some exceptions (especially rate limit) are not retried by default by BigQuery client, we use by default a transparent retry (not the kestra one) to handle this case.\nThe default values are exponential of 5 seconds for a maximum of 15 minutes and ten attempts" + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Exponential-2" + }, + { + "$dynamic": false, + "title": "Automatic retry for retryable BigQuery exceptions.", + "markdownDescription": "Some exceptions (especially rate limit) are not retried by default by BigQuery client, we use by default a transparent retry (not the kestra one) to handle this case.\nThe default values are exponential of 5 seconds for a maximum of 15 minutes and ten attempts" + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Random-2" + }, + { + "$dynamic": false, + "title": "Automatic retry for retryable BigQuery exceptions.", + "markdownDescription": "Some exceptions (especially rate limit) are not retried by default by BigQuery client, we use by default a transparent retry (not the kestra one) to handle this case.\nThe default values are exponential of 5 seconds for a maximum of 15 minutes and ten attempts" + } + ] + } + ] + }, + "retryMessages": { + "$dynamic": true, + "title": "The messages which would trigger an automatic retry.", + "default": [ + "due to concurrent update", + "Retrying the job may solve the problem" + ], + "markdownDescription": "Message is tested as a substring of the full message, and is case insensitive.\n\nDefault value is : `- due to concurrent update\n- Retrying the job may solve the problem`\n\nDefault value is : `- due to concurrent update\n- Retrying the job may solve the problem`", + "type": "array", + "items": { + "$dynamic": true, + "type": "string" + } + }, + "retryReasons": { + "$dynamic": true, + "title": "The reasons which would trigger an automatic retry.", + "default": [ + "rateLimitExceeded", + "jobBackendError", + "internalError", + "jobInternalError" + ], + "markdownDescription": "Default value is : `- rateLimitExceeded\n- jobBackendError\n- internalError\n- jobInternalError`\n\nDefault value is : `- rateLimitExceeded\n- jobBackendError\n- internalError\n- jobInternalError`", + "type": "array", + "items": { + "$dynamic": true, + "type": "string" + } + }, + "scopes": { + "$dynamic": true, + "title": "The GCP scopes to be used.", + "default": ["https://www.googleapis.com/auth/cloud-platform"], + "markdownDescription": "Default value is : `- https://www.googleapis.com/auth/cloud-platform`\n\nDefault value is : `- https://www.googleapis.com/auth/cloud-platform`", + "type": "array", + "items": { + "$dynamic": true, + "type": "string" + } + }, + "serviceAccount": { + "$dynamic": true, + "type": "string", + "title": "The GCP service account key." + }, + "table": { + "$dynamic": true, + "type": "string", + "title": "The table's user-defined ID." + }, + "tableDefinition": { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.bigquery.models.TableDefinition" + }, + { + "title": "The table definition." + } + ] + }, + "timeout": { + "type": "string", + "format": "duration" + }, + "type": { + "const": "io.kestra.plugin.gcp.bigquery.CreateTable" + }, + "workerGroup": { + "$ref": "#/definitions/io.kestra.core.models.tasks.WorkerGroup" + } + }, + "required": ["dataset", "id", "table", "type"], + "title": "Create a table", + "markdownDescription": "##### Examples\n\u003E \n```yaml\nprojectId: my-project\ndataset: my-dataset\ntable: my-table\ntableDefinition:\n type: TABLE\n schema:\n fields:\n - name: id\n type: INT64\n - name: name\n type: STRING\n standardTableDefinition:\n clustering:\n - id\n - name\nfriendlyName: new_table\n```" + }, + "io.kestra.plugin.gcp.bigquery.DeleteDataset": { + "type": "object", + "properties": { + "allowFailure": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "deleteContents": { + "$dynamic": false, + "type": "boolean", + "title": "Whether to delete a dataset even if non-empty.", + "markdownDescription": "If not provided, attempting to delete a non-empty dataset will result in a exception being thrown." + }, + "description": { + "type": "string" + }, + "disabled": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "id": { + "type": "string", + "minLength": 1, + "pattern": "^[a-zA-Z0-9][a-zA-Z0-9_-]*" + }, + "location": { + "$dynamic": true, + "type": "string", + "title": "The geographic location where the dataset should reside.", + "markdownDescription": "This property is experimental and might be subject to change or removed.\n \n See \u003Ca href=\"https://cloud.google.com/bigquery/docs/reference/v2/datasets#location\"\u003EDataset Location\u003C/a\u003E" + }, + "logLevel": { + "type": "string", + "enum": ["ERROR", "WARN", "INFO", "DEBUG", "TRACE"] + }, + "name": { + "$dynamic": true, + "type": "string", + "title": "The dataset's user-defined id." + }, + "projectId": { + "$dynamic": true, + "type": "string", + "title": "The GCP project ID." + }, + "retry": { + "oneOf": [ + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Constant-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Exponential-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Random-2" + } + ] + }, + "retryAuto": { + "oneOf": [ + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Constant-2" + }, + { + "$dynamic": false, + "title": "Automatic retry for retryable BigQuery exceptions.", + "markdownDescription": "Some exceptions (especially rate limit) are not retried by default by BigQuery client, we use by default a transparent retry (not the kestra one) to handle this case.\nThe default values are exponential of 5 seconds for a maximum of 15 minutes and ten attempts" + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Exponential-2" + }, + { + "$dynamic": false, + "title": "Automatic retry for retryable BigQuery exceptions.", + "markdownDescription": "Some exceptions (especially rate limit) are not retried by default by BigQuery client, we use by default a transparent retry (not the kestra one) to handle this case.\nThe default values are exponential of 5 seconds for a maximum of 15 minutes and ten attempts" + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Random-2" + }, + { + "$dynamic": false, + "title": "Automatic retry for retryable BigQuery exceptions.", + "markdownDescription": "Some exceptions (especially rate limit) are not retried by default by BigQuery client, we use by default a transparent retry (not the kestra one) to handle this case.\nThe default values are exponential of 5 seconds for a maximum of 15 minutes and ten attempts" + } + ] + } + ] + }, + "retryMessages": { + "$dynamic": true, + "title": "The messages which would trigger an automatic retry.", + "default": [ + "due to concurrent update", + "Retrying the job may solve the problem" + ], + "markdownDescription": "Message is tested as a substring of the full message, and is case insensitive.\n\nDefault value is : `- due to concurrent update\n- Retrying the job may solve the problem`\n\nDefault value is : `- due to concurrent update\n- Retrying the job may solve the problem`", + "type": "array", + "items": { + "$dynamic": true, + "type": "string" + } + }, + "retryReasons": { + "$dynamic": true, + "title": "The reasons which would trigger an automatic retry.", + "default": [ + "rateLimitExceeded", + "jobBackendError", + "internalError", + "jobInternalError" + ], + "markdownDescription": "Default value is : `- rateLimitExceeded\n- jobBackendError\n- internalError\n- jobInternalError`\n\nDefault value is : `- rateLimitExceeded\n- jobBackendError\n- internalError\n- jobInternalError`", + "type": "array", + "items": { + "$dynamic": true, + "type": "string" + } + }, + "scopes": { + "$dynamic": true, + "title": "The GCP scopes to be used.", + "default": ["https://www.googleapis.com/auth/cloud-platform"], + "markdownDescription": "Default value is : `- https://www.googleapis.com/auth/cloud-platform`\n\nDefault value is : `- https://www.googleapis.com/auth/cloud-platform`", + "type": "array", + "items": { + "$dynamic": true, + "type": "string" + } + }, + "serviceAccount": { + "$dynamic": true, + "type": "string", + "title": "The GCP service account key." + }, + "timeout": { + "type": "string", + "format": "duration" + }, + "type": { + "const": "io.kestra.plugin.gcp.bigquery.DeleteDataset" + }, + "workerGroup": { + "$ref": "#/definitions/io.kestra.core.models.tasks.WorkerGroup" + } + }, + "required": ["id", "name", "type"], + "title": "Delete a dataset.", + "markdownDescription": "##### Examples\n\u003E Delete a dataset.\n```yaml\nname: \"my-dataset\"\ndeleteContents: true\n```" + }, + "io.kestra.plugin.gcp.bigquery.DeletePartitions": { + "$metrics": [ + { + "name": "size", + "type": "counter", + "unit": "", + "description": "The number of partitions deleted." + } + ], + "type": "object", + "properties": { + "allowFailure": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "dataset": { + "$dynamic": true, + "type": "string", + "title": "The dataset's user-defined ID." + }, + "description": { + "type": "string" + }, + "disabled": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "from": { + "$dynamic": true, + "type": "string", + "title": "The inclusive starting date or integer.", + "markdownDescription": "If the partition :\n- is a numeric range, must be a valid integer\n- is a date, must a valid datetime like `{{ now() }}`" + }, + "id": { + "type": "string", + "minLength": 1, + "pattern": "^[a-zA-Z0-9][a-zA-Z0-9_-]*" + }, + "location": { + "$dynamic": true, + "type": "string", + "title": "The geographic location where the dataset should reside.", + "markdownDescription": "This property is experimental and might be subject to change or removed.\n \n See \u003Ca href=\"https://cloud.google.com/bigquery/docs/reference/v2/datasets#location\"\u003EDataset Location\u003C/a\u003E" + }, + "logLevel": { + "type": "string", + "enum": ["ERROR", "WARN", "INFO", "DEBUG", "TRACE"] + }, + "partitionType": { + "$dynamic": true, + "type": "string", + "enum": ["DAY", "HOUR", "MONTH", "YEAR", "RANGE"], + "title": "The partition type of the table" + }, + "projectId": { + "$dynamic": true, + "type": "string", + "title": "The GCP project ID." + }, + "retry": { + "oneOf": [ + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Constant-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Exponential-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Random-2" + } + ] + }, + "retryAuto": { + "oneOf": [ + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Constant-2" + }, + { + "$dynamic": false, + "title": "Automatic retry for retryable BigQuery exceptions.", + "markdownDescription": "Some exceptions (especially rate limit) are not retried by default by BigQuery client, we use by default a transparent retry (not the kestra one) to handle this case.\nThe default values are exponential of 5 seconds for a maximum of 15 minutes and ten attempts" + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Exponential-2" + }, + { + "$dynamic": false, + "title": "Automatic retry for retryable BigQuery exceptions.", + "markdownDescription": "Some exceptions (especially rate limit) are not retried by default by BigQuery client, we use by default a transparent retry (not the kestra one) to handle this case.\nThe default values are exponential of 5 seconds for a maximum of 15 minutes and ten attempts" + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Random-2" + }, + { + "$dynamic": false, + "title": "Automatic retry for retryable BigQuery exceptions.", + "markdownDescription": "Some exceptions (especially rate limit) are not retried by default by BigQuery client, we use by default a transparent retry (not the kestra one) to handle this case.\nThe default values are exponential of 5 seconds for a maximum of 15 minutes and ten attempts" + } + ] + } + ] + }, + "retryMessages": { + "$dynamic": true, + "title": "The messages which would trigger an automatic retry.", + "default": [ + "due to concurrent update", + "Retrying the job may solve the problem" + ], + "markdownDescription": "Message is tested as a substring of the full message, and is case insensitive.\n\nDefault value is : `- due to concurrent update\n- Retrying the job may solve the problem`\n\nDefault value is : `- due to concurrent update\n- Retrying the job may solve the problem`", + "type": "array", + "items": { + "$dynamic": true, + "type": "string" + } + }, + "retryReasons": { + "$dynamic": true, + "title": "The reasons which would trigger an automatic retry.", + "default": [ + "rateLimitExceeded", + "jobBackendError", + "internalError", + "jobInternalError" + ], + "markdownDescription": "Default value is : `- rateLimitExceeded\n- jobBackendError\n- internalError\n- jobInternalError`\n\nDefault value is : `- rateLimitExceeded\n- jobBackendError\n- internalError\n- jobInternalError`", + "type": "array", + "items": { + "$dynamic": true, + "type": "string" + } + }, + "scopes": { + "$dynamic": true, + "title": "The GCP scopes to be used.", + "default": ["https://www.googleapis.com/auth/cloud-platform"], + "markdownDescription": "Default value is : `- https://www.googleapis.com/auth/cloud-platform`\n\nDefault value is : `- https://www.googleapis.com/auth/cloud-platform`", + "type": "array", + "items": { + "$dynamic": true, + "type": "string" + } + }, + "serviceAccount": { + "$dynamic": true, + "type": "string", + "title": "The GCP service account key." + }, + "table": { + "$dynamic": true, + "type": "string", + "title": "The table's user-defined ID." + }, + "timeout": { + "type": "string", + "format": "duration" + }, + "to": { + "$dynamic": true, + "type": "string", + "title": "The inclusive ending date or integer.", + "markdownDescription": "If the partition :\n- is a numeric range, must be a valid integer\n- is a date, must a valid datetime like `{{ now() }}`" + }, + "type": { + "const": "io.kestra.plugin.gcp.bigquery.DeletePartitions" + }, + "workerGroup": { + "$ref": "#/definitions/io.kestra.core.models.tasks.WorkerGroup" + } + }, + "required": [ + "dataset", + "from", + "id", + "partitionType", + "table", + "to", + "type" + ], + "title": "Delete partitions between interval", + "markdownDescription": "##### Examples\n\u003E \n```yaml\nprojectId: my-project\ndataset: my-dataset\ntable: my-table\npartitionType: DAY\nfrom: \"{{ now() | dateAdd(-30, 'DAYS') }}\"\nto: \"{{ now() | dateAdd(-7, 'DAYS') }}\"\n```" + }, + "io.kestra.plugin.gcp.bigquery.DeleteTable": { + "type": "object", + "properties": { + "allowFailure": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "dataset": { + "$dynamic": true, + "type": "string", + "title": "The dataset's user-defined ID." + }, + "description": { + "type": "string" + }, + "disabled": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "id": { + "type": "string", + "minLength": 1, + "pattern": "^[a-zA-Z0-9][a-zA-Z0-9_-]*" + }, + "location": { + "$dynamic": true, + "type": "string", + "title": "The geographic location where the dataset should reside.", + "markdownDescription": "This property is experimental and might be subject to change or removed.\n \n See \u003Ca href=\"https://cloud.google.com/bigquery/docs/reference/v2/datasets#location\"\u003EDataset Location\u003C/a\u003E" + }, + "logLevel": { + "type": "string", + "enum": ["ERROR", "WARN", "INFO", "DEBUG", "TRACE"] + }, + "projectId": { + "$dynamic": true, + "type": "string", + "title": "The GCP project ID." + }, + "retry": { + "oneOf": [ + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Constant-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Exponential-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Random-2" + } + ] + }, + "retryAuto": { + "oneOf": [ + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Constant-2" + }, + { + "$dynamic": false, + "title": "Automatic retry for retryable BigQuery exceptions.", + "markdownDescription": "Some exceptions (especially rate limit) are not retried by default by BigQuery client, we use by default a transparent retry (not the kestra one) to handle this case.\nThe default values are exponential of 5 seconds for a maximum of 15 minutes and ten attempts" + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Exponential-2" + }, + { + "$dynamic": false, + "title": "Automatic retry for retryable BigQuery exceptions.", + "markdownDescription": "Some exceptions (especially rate limit) are not retried by default by BigQuery client, we use by default a transparent retry (not the kestra one) to handle this case.\nThe default values are exponential of 5 seconds for a maximum of 15 minutes and ten attempts" + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Random-2" + }, + { + "$dynamic": false, + "title": "Automatic retry for retryable BigQuery exceptions.", + "markdownDescription": "Some exceptions (especially rate limit) are not retried by default by BigQuery client, we use by default a transparent retry (not the kestra one) to handle this case.\nThe default values are exponential of 5 seconds for a maximum of 15 minutes and ten attempts" + } + ] + } + ] + }, + "retryMessages": { + "$dynamic": true, + "title": "The messages which would trigger an automatic retry.", + "default": [ + "due to concurrent update", + "Retrying the job may solve the problem" + ], + "markdownDescription": "Message is tested as a substring of the full message, and is case insensitive.\n\nDefault value is : `- due to concurrent update\n- Retrying the job may solve the problem`\n\nDefault value is : `- due to concurrent update\n- Retrying the job may solve the problem`", + "type": "array", + "items": { + "$dynamic": true, + "type": "string" + } + }, + "retryReasons": { + "$dynamic": true, + "title": "The reasons which would trigger an automatic retry.", + "default": [ + "rateLimitExceeded", + "jobBackendError", + "internalError", + "jobInternalError" + ], + "markdownDescription": "Default value is : `- rateLimitExceeded\n- jobBackendError\n- internalError\n- jobInternalError`\n\nDefault value is : `- rateLimitExceeded\n- jobBackendError\n- internalError\n- jobInternalError`", + "type": "array", + "items": { + "$dynamic": true, + "type": "string" + } + }, + "scopes": { + "$dynamic": true, + "title": "The GCP scopes to be used.", + "default": ["https://www.googleapis.com/auth/cloud-platform"], + "markdownDescription": "Default value is : `- https://www.googleapis.com/auth/cloud-platform`\n\nDefault value is : `- https://www.googleapis.com/auth/cloud-platform`", + "type": "array", + "items": { + "$dynamic": true, + "type": "string" + } + }, + "serviceAccount": { + "$dynamic": true, + "type": "string", + "title": "The GCP service account key." + }, + "table": { + "$dynamic": true, + "type": "string", + "title": "The table's user-defined ID." + }, + "timeout": { + "type": "string", + "format": "duration" + }, + "type": { + "const": "io.kestra.plugin.gcp.bigquery.DeleteTable" + }, + "workerGroup": { + "$ref": "#/definitions/io.kestra.core.models.tasks.WorkerGroup" + } + }, + "required": ["dataset", "id", "table", "type"], + "title": "Delete a table or a partition", + "markdownDescription": "##### Examples\n\u003E Delete a partition\n```yaml\nprojectId: my-project\ndataset: my-dataset\ntable: my-table$20130908\n```" + }, + "io.kestra.plugin.gcp.bigquery.ExtractToGcs": { + "$metrics": [ + { + "name": "output.file_counts", + "type": "counter", + "unit": "", + "description": "The number of files extracted to GCS." + }, + { + "name": "duration", + "type": "timer", + "unit": "", + "description": "The time it took for the job to run." + } + ], + "type": "object", + "properties": { + "allowFailure": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "compression": { + "$dynamic": true, + "type": "string", + "title": "the compression value to use for exported files. If not set exported files are not compressed. " + }, + "description": { + "type": "string" + }, + "destinationUris": { + "$dynamic": true, + "title": "The list of fully-qualified Google Cloud Storage URIs (e.g. gs://bucket/path) where the extracted table should be written.", + "type": "array", + "items": { + "$dynamic": true, + "type": "string" + } + }, + "disabled": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "fieldDelimiter": { + "$dynamic": true, + "type": "string", + "title": "The delimiter to use between fields in the exported data. By default \",\" is used." + }, + "format": { + "$dynamic": true, + "type": "string", + "title": "The exported file format. If not set table is exported in CSV format. " + }, + "id": { + "type": "string", + "minLength": 1, + "pattern": "^[a-zA-Z0-9][a-zA-Z0-9_-]*" + }, + "jobTimeoutMs": { + "$dynamic": false, + "type": "integer", + "title": "[Optional] Job timeout in milliseconds. If this time limit is exceeded, BigQuery may attempt to terminate the job." + }, + "labels": { + "$dynamic": true, + "type": "object", + "title": "The labels associated with this job.", + "markdownDescription": "The labels associated with this job. You can use these to organize and group your jobs. Label keys and values can be no longer than 63 characters, can only contain lowercase letters, numeric characters, underscores and dashes. International characters are allowed. Label values are optional. Label keys must start with a letter and each label in the list must have a different key.\nParameters:\n labels - labels or null for none " + }, + "location": { + "$dynamic": true, + "type": "string", + "title": "The geographic location where the dataset should reside.", + "markdownDescription": "This property is experimental and might be subject to change or removed.\n \n See \u003Ca href=\"https://cloud.google.com/bigquery/docs/reference/v2/datasets#location\"\u003EDataset Location\u003C/a\u003E" + }, + "logLevel": { + "type": "string", + "enum": ["ERROR", "WARN", "INFO", "DEBUG", "TRACE"] + }, + "printHeader": { + "$dynamic": false, + "type": "boolean", + "title": "Whether to print out a header row in the results. By default an header is printed." + }, + "projectId": { + "$dynamic": true, + "type": "string", + "title": "The GCP project ID." + }, + "retry": { + "oneOf": [ + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Constant-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Exponential-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Random-2" + } + ] + }, + "retryAuto": { + "oneOf": [ + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Constant-2" + }, + { + "$dynamic": false, + "title": "Automatic retry for retryable BigQuery exceptions.", + "markdownDescription": "Some exceptions (especially rate limit) are not retried by default by BigQuery client, we use by default a transparent retry (not the kestra one) to handle this case.\nThe default values are exponential of 5 seconds for a maximum of 15 minutes and ten attempts" + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Exponential-2" + }, + { + "$dynamic": false, + "title": "Automatic retry for retryable BigQuery exceptions.", + "markdownDescription": "Some exceptions (especially rate limit) are not retried by default by BigQuery client, we use by default a transparent retry (not the kestra one) to handle this case.\nThe default values are exponential of 5 seconds for a maximum of 15 minutes and ten attempts" + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Random-2" + }, + { + "$dynamic": false, + "title": "Automatic retry for retryable BigQuery exceptions.", + "markdownDescription": "Some exceptions (especially rate limit) are not retried by default by BigQuery client, we use by default a transparent retry (not the kestra one) to handle this case.\nThe default values are exponential of 5 seconds for a maximum of 15 minutes and ten attempts" + } + ] + } + ] + }, + "retryMessages": { + "$dynamic": true, + "title": "The messages which would trigger an automatic retry.", + "default": [ + "due to concurrent update", + "Retrying the job may solve the problem" + ], + "markdownDescription": "Message is tested as a substring of the full message, and is case insensitive.\n\nDefault value is : `- due to concurrent update\n- Retrying the job may solve the problem`\n\nDefault value is : `- due to concurrent update\n- Retrying the job may solve the problem`", + "type": "array", + "items": { + "$dynamic": true, + "type": "string" + } + }, + "retryReasons": { + "$dynamic": true, + "title": "The reasons which would trigger an automatic retry.", + "default": [ + "rateLimitExceeded", + "jobBackendError", + "internalError", + "jobInternalError" + ], + "markdownDescription": "Default value is : `- rateLimitExceeded\n- jobBackendError\n- internalError\n- jobInternalError`\n\nDefault value is : `- rateLimitExceeded\n- jobBackendError\n- internalError\n- jobInternalError`", + "type": "array", + "items": { + "$dynamic": true, + "type": "string" + } + }, + "scopes": { + "$dynamic": true, + "title": "The GCP scopes to be used.", + "default": ["https://www.googleapis.com/auth/cloud-platform"], + "markdownDescription": "Default value is : `- https://www.googleapis.com/auth/cloud-platform`\n\nDefault value is : `- https://www.googleapis.com/auth/cloud-platform`", + "type": "array", + "items": { + "$dynamic": true, + "type": "string" + } + }, + "serviceAccount": { + "$dynamic": true, + "type": "string", + "title": "The GCP service account key." + }, + "sourceTable": { + "$dynamic": true, + "type": "string", + "title": "The table to export." + }, + "timeout": { + "type": "string", + "format": "duration" + }, + "type": { + "const": "io.kestra.plugin.gcp.bigquery.ExtractToGcs" + }, + "useAvroLogicalTypes": { + "$dynamic": false, + "type": "boolean", + "title": "[Optional] Flag if format is set to \"AVRO\".", + "markdownDescription": "[Optional] If destinationFormat is set to \"AVRO\", this flag indicates whether to enable extracting applicable column types (such as TIMESTAMP) to their corresponding AVRO logical types (timestamp-micros), instead of only using their raw types (avro-long)." + }, + "workerGroup": { + "$ref": "#/definitions/io.kestra.core.models.tasks.WorkerGroup" + } + }, + "required": ["id", "type"], + "title": "Extract data from BigQuery table to GCS (Google Cloud Storage).", + "markdownDescription": "##### Examples\n\u003E Extract a BigQuery table to a GCS bucket.\n```yaml\ndestinationUris: \n - \"gs://bucket_name/filename.csv\"\nsourceTable: \"my_project.my_dataset.my_table\"\nformat: CSV\nfieldDelimiter: ';'\nprintHeader: true\n```" + }, + "io.kestra.plugin.gcp.bigquery.Load": { + "$metrics": [ + { + "name": "bad.records", + "type": "counter", + "unit": "records", + "description": "the number of bad records reported in a job." + }, + { + "name": "duration", + "type": "timer", + "unit": "", + "description": "The time it took for the task to run." + }, + { + "name": "input.bytes", + "type": "counter", + "unit": "bytes", + "description": "The number of bytes of source data in a load job." + }, + { + "name": "input.files", + "type": "counter", + "unit": "files", + "description": "The number of source files in a load job." + }, + { + "name": "output.bytes", + "type": "counter", + "unit": "bytes", + "description": "The size of the data loaded by a load job so far, in bytes." + }, + { + "name": "output.rows", + "type": "counter", + "unit": "records", + "description": "The number of rows loaded by a load job so far." + } + ], + "type": "object", + "properties": { + "allowFailure": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "autodetect": { + "$dynamic": false, + "type": "boolean", + "title": "[Experimental] Automatic inference of the options and schema for CSV and JSON sources." + }, + "avroOptions": { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.bigquery.AbstractLoad-AvroOptions" + }, + { + "title": "Avro parsing options." + } + ] + }, + "clusteringFields": { + "$dynamic": true, + "title": "The clustering specification for the destination table.", + "type": "array", + "items": { + "$dynamic": true, + "type": "string" + } + }, + "createDisposition": { + "$dynamic": false, + "type": "string", + "enum": ["CREATE_IF_NEEDED", "CREATE_NEVER"], + "title": "Whether the job is allowed to create tables." + }, + "csvOptions": { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.bigquery.AbstractLoad-CsvOptions" + }, + { + "title": "Csv parsing options." + } + ] + }, + "description": { + "type": "string" + }, + "destinationTable": { + "$dynamic": true, + "type": "string", + "title": "The table where to put query results.", + "markdownDescription": "If not provided, a new table is created." + }, + "disabled": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "failedOnEmpty": { + "$dynamic": false, + "type": "boolean", + "title": "Does the task will failed for an empty file", + "default": true, + "markdownDescription": "Default value is : `true`" + }, + "format": { + "$dynamic": false, + "type": "string", + "enum": ["CSV", "JSON", "AVRO", "PARQUET", "ORC"], + "title": "The source format, and possibly some parsing options, of the external data." + }, + "from": { + "$dynamic": true, + "type": "string", + "title": "The fully-qualified URIs that point to source data" + }, + "id": { + "type": "string", + "minLength": 1, + "pattern": "^[a-zA-Z0-9][a-zA-Z0-9_-]*" + }, + "ignoreUnknownValues": { + "$dynamic": false, + "type": "boolean", + "title": "Whether BigQuery should allow extra values that are not represented in the table schema.", + "markdownDescription": " If true, the extra values are ignored. If false, records with extra columns are treated as bad records, and if there are too many bad records, an invalid error is returned in the job result. By default unknown values are not allowed." + }, + "location": { + "$dynamic": true, + "type": "string", + "title": "The geographic location where the dataset should reside.", + "markdownDescription": "This property is experimental and might be subject to change or removed.\n \n See \u003Ca href=\"https://cloud.google.com/bigquery/docs/reference/v2/datasets#location\"\u003EDataset Location\u003C/a\u003E" + }, + "logLevel": { + "type": "string", + "enum": ["ERROR", "WARN", "INFO", "DEBUG", "TRACE"] + }, + "maxBadRecords": { + "$dynamic": false, + "type": "integer", + "title": "The maximum number of bad records that BigQuery can ignore when running the job.", + "markdownDescription": " If the number of bad records exceeds this value, an invalid error is returned in the job result. By default, no bad record is ignored." + }, + "projectId": { + "$dynamic": true, + "type": "string", + "title": "The GCP project ID." + }, + "retry": { + "oneOf": [ + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Constant-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Exponential-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Random-2" + } + ] + }, + "retryAuto": { + "oneOf": [ + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Constant-2" + }, + { + "$dynamic": false, + "title": "Automatic retry for retryable BigQuery exceptions.", + "markdownDescription": "Some exceptions (especially rate limit) are not retried by default by BigQuery client, we use by default a transparent retry (not the kestra one) to handle this case.\nThe default values are exponential of 5 seconds for a maximum of 15 minutes and ten attempts" + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Exponential-2" + }, + { + "$dynamic": false, + "title": "Automatic retry for retryable BigQuery exceptions.", + "markdownDescription": "Some exceptions (especially rate limit) are not retried by default by BigQuery client, we use by default a transparent retry (not the kestra one) to handle this case.\nThe default values are exponential of 5 seconds for a maximum of 15 minutes and ten attempts" + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Random-2" + }, + { + "$dynamic": false, + "title": "Automatic retry for retryable BigQuery exceptions.", + "markdownDescription": "Some exceptions (especially rate limit) are not retried by default by BigQuery client, we use by default a transparent retry (not the kestra one) to handle this case.\nThe default values are exponential of 5 seconds for a maximum of 15 minutes and ten attempts" + } + ] + } + ] + }, + "retryMessages": { + "$dynamic": true, + "title": "The messages which would trigger an automatic retry.", + "default": [ + "due to concurrent update", + "Retrying the job may solve the problem" + ], + "markdownDescription": "Message is tested as a substring of the full message, and is case insensitive.\n\nDefault value is : `- due to concurrent update\n- Retrying the job may solve the problem`\n\nDefault value is : `- due to concurrent update\n- Retrying the job may solve the problem`", + "type": "array", + "items": { + "$dynamic": true, + "type": "string" + } + }, + "retryReasons": { + "$dynamic": true, + "title": "The reasons which would trigger an automatic retry.", + "default": [ + "rateLimitExceeded", + "jobBackendError", + "internalError", + "jobInternalError" + ], + "markdownDescription": "Default value is : `- rateLimitExceeded\n- jobBackendError\n- internalError\n- jobInternalError`\n\nDefault value is : `- rateLimitExceeded\n- jobBackendError\n- internalError\n- jobInternalError`", + "type": "array", + "items": { + "$dynamic": true, + "type": "string" + } + }, + "schema": { + "$dynamic": false, + "type": "object", + "title": "The schema for the destination table.", + "markdownDescription": "The schema can be omitted if the destination table already exists, or if you're loading data from a Google Cloud Datastore backup (i.e. DATASTORE_BACKUP format option).\n```yaml\nschema:\n fields:\n - name: colA\n type: STRING\n - name: colB\n type: NUMERIC\n```\nSee type from [StandardSQLTypeName](https://javadoc.io/static/com.google.cloud/google-cloud-bigquery/1.88.0/com/google/cloud/bigquery/StandardSQLTypeName.html)" + }, + "schemaUpdateOptions": { + "$dynamic": false, + "title": "[Experimental] Options allowing the schema of the destination table to be updated as a side effect of the query job.", + "markdownDescription": "Schema update options are supported in two cases: when writeDisposition is WRITE_APPEND; when writeDisposition is WRITE_TRUNCATE and the destination table is a partition of a table, specified by partition decorators. For normal tables, WRITE_TRUNCATE will always overwrite the schema.", + "type": "array", + "items": { + "$dynamic": false, + "type": "string", + "enum": ["ALLOW_FIELD_ADDITION", "ALLOW_FIELD_RELAXATION"] + } + }, + "scopes": { + "$dynamic": true, + "title": "The GCP scopes to be used.", + "default": ["https://www.googleapis.com/auth/cloud-platform"], + "markdownDescription": "Default value is : `- https://www.googleapis.com/auth/cloud-platform`\n\nDefault value is : `- https://www.googleapis.com/auth/cloud-platform`", + "type": "array", + "items": { + "$dynamic": true, + "type": "string" + } + }, + "serviceAccount": { + "$dynamic": true, + "type": "string", + "title": "The GCP service account key." + }, + "timePartitioningField": { + "$dynamic": true, + "type": "string", + "title": "The time partitioning field for the destination table." + }, + "timePartitioningType": { + "$dynamic": true, + "type": "string", + "enum": ["DAY", "HOUR", "MONTH", "YEAR"], + "title": "The time partitioning type specification for the destination table.", + "default": "DAY", + "markdownDescription": "Default value is : `DAY`" + }, + "timeout": { + "type": "string", + "format": "duration" + }, + "type": { + "const": "io.kestra.plugin.gcp.bigquery.Load" + }, + "workerGroup": { + "$ref": "#/definitions/io.kestra.core.models.tasks.WorkerGroup" + }, + "writeDisposition": { + "$dynamic": false, + "type": "string", + "enum": ["WRITE_TRUNCATE", "WRITE_APPEND", "WRITE_EMPTY"], + "title": "The action that should occur if the destination table already exists." + } + }, + "required": ["id", "type"], + "title": "Load data from local file to BigQuery", + "markdownDescription": "##### Examples\n\u003E Load an csv file from an input file\n```yaml\nfrom: \"{{ inputs.file }}\"\ndestinationTable: \"my_project.my_dataset.my_table\"\nformat: CSV\ncsvOptions:\n fieldDelimiter: \";\"\n```" + }, + "io.kestra.plugin.gcp.bigquery.LoadFromGcs": { + "$metrics": [ + { + "name": "bad.records", + "type": "counter", + "unit": "records", + "description": "the number of bad records reported in a job." + }, + { + "name": "duration", + "type": "timer", + "unit": "", + "description": "The time it took for the task to run." + }, + { + "name": "input.bytes", + "type": "counter", + "unit": "bytes", + "description": "The number of bytes of source data in a load job." + }, + { + "name": "input.files", + "type": "counter", + "unit": "files", + "description": "The number of source files in a load job." + }, + { + "name": "output.bytes", + "type": "counter", + "unit": "bytes", + "description": "The size of the data loaded by a load job so far, in bytes." + }, + { + "name": "output.rows", + "type": "counter", + "unit": "records", + "description": "The number of rows loaded by a load job so far." + } + ], + "type": "object", + "properties": { + "allowFailure": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "autodetect": { + "$dynamic": false, + "type": "boolean", + "title": "[Experimental] Automatic inference of the options and schema for CSV and JSON sources." + }, + "avroOptions": { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.bigquery.AbstractLoad-AvroOptions" + }, + { + "title": "Avro parsing options." + } + ] + }, + "clusteringFields": { + "$dynamic": true, + "title": "The clustering specification for the destination table.", + "type": "array", + "items": { + "$dynamic": true, + "type": "string" + } + }, + "createDisposition": { + "$dynamic": false, + "type": "string", + "enum": ["CREATE_IF_NEEDED", "CREATE_NEVER"], + "title": "Whether the job is allowed to create tables." + }, + "csvOptions": { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.bigquery.AbstractLoad-CsvOptions" + }, + { + "title": "Csv parsing options." + } + ] + }, + "description": { + "type": "string" + }, + "destinationTable": { + "$dynamic": true, + "type": "string", + "title": "The table where to put query results.", + "markdownDescription": "If not provided, a new table is created." + }, + "disabled": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "format": { + "$dynamic": false, + "type": "string", + "enum": ["CSV", "JSON", "AVRO", "PARQUET", "ORC"], + "title": "The source format, and possibly some parsing options, of the external data." + }, + "from": { + "$dynamic": true, + "title": "Google Cloud Storage source data", + "markdownDescription": "The fully-qualified URIs that point to source data in Google Cloud Storage (e.g. gs://bucket/path). Each URI can contain one '*' wildcard character and it must come after the 'bucket' name.", + "type": "array", + "items": { + "$dynamic": true, + "type": "string" + } + }, + "id": { + "type": "string", + "minLength": 1, + "pattern": "^[a-zA-Z0-9][a-zA-Z0-9_-]*" + }, + "ignoreUnknownValues": { + "$dynamic": false, + "type": "boolean", + "title": "Whether BigQuery should allow extra values that are not represented in the table schema.", + "markdownDescription": " If true, the extra values are ignored. If false, records with extra columns are treated as bad records, and if there are too many bad records, an invalid error is returned in the job result. By default unknown values are not allowed." + }, + "location": { + "$dynamic": true, + "type": "string", + "title": "The geographic location where the dataset should reside.", + "markdownDescription": "This property is experimental and might be subject to change or removed.\n \n See \u003Ca href=\"https://cloud.google.com/bigquery/docs/reference/v2/datasets#location\"\u003EDataset Location\u003C/a\u003E" + }, + "logLevel": { + "type": "string", + "enum": ["ERROR", "WARN", "INFO", "DEBUG", "TRACE"] + }, + "maxBadRecords": { + "$dynamic": false, + "type": "integer", + "title": "The maximum number of bad records that BigQuery can ignore when running the job.", + "markdownDescription": " If the number of bad records exceeds this value, an invalid error is returned in the job result. By default, no bad record is ignored." + }, + "projectId": { + "$dynamic": true, + "type": "string", + "title": "The GCP project ID." + }, + "retry": { + "oneOf": [ + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Constant-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Exponential-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Random-2" + } + ] + }, + "retryAuto": { + "oneOf": [ + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Constant-2" + }, + { + "$dynamic": false, + "title": "Automatic retry for retryable BigQuery exceptions.", + "markdownDescription": "Some exceptions (especially rate limit) are not retried by default by BigQuery client, we use by default a transparent retry (not the kestra one) to handle this case.\nThe default values are exponential of 5 seconds for a maximum of 15 minutes and ten attempts" + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Exponential-2" + }, + { + "$dynamic": false, + "title": "Automatic retry for retryable BigQuery exceptions.", + "markdownDescription": "Some exceptions (especially rate limit) are not retried by default by BigQuery client, we use by default a transparent retry (not the kestra one) to handle this case.\nThe default values are exponential of 5 seconds for a maximum of 15 minutes and ten attempts" + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Random-2" + }, + { + "$dynamic": false, + "title": "Automatic retry for retryable BigQuery exceptions.", + "markdownDescription": "Some exceptions (especially rate limit) are not retried by default by BigQuery client, we use by default a transparent retry (not the kestra one) to handle this case.\nThe default values are exponential of 5 seconds for a maximum of 15 minutes and ten attempts" + } + ] + } + ] + }, + "retryMessages": { + "$dynamic": true, + "title": "The messages which would trigger an automatic retry.", + "default": [ + "due to concurrent update", + "Retrying the job may solve the problem" + ], + "markdownDescription": "Message is tested as a substring of the full message, and is case insensitive.\n\nDefault value is : `- due to concurrent update\n- Retrying the job may solve the problem`\n\nDefault value is : `- due to concurrent update\n- Retrying the job may solve the problem`", + "type": "array", + "items": { + "$dynamic": true, + "type": "string" + } + }, + "retryReasons": { + "$dynamic": true, + "title": "The reasons which would trigger an automatic retry.", + "default": [ + "rateLimitExceeded", + "jobBackendError", + "internalError", + "jobInternalError" + ], + "markdownDescription": "Default value is : `- rateLimitExceeded\n- jobBackendError\n- internalError\n- jobInternalError`\n\nDefault value is : `- rateLimitExceeded\n- jobBackendError\n- internalError\n- jobInternalError`", + "type": "array", + "items": { + "$dynamic": true, + "type": "string" + } + }, + "schema": { + "$dynamic": false, + "type": "object", + "title": "The schema for the destination table.", + "markdownDescription": "The schema can be omitted if the destination table already exists, or if you're loading data from a Google Cloud Datastore backup (i.e. DATASTORE_BACKUP format option).\n```yaml\nschema:\n fields:\n - name: colA\n type: STRING\n - name: colB\n type: NUMERIC\n```\nSee type from [StandardSQLTypeName](https://javadoc.io/static/com.google.cloud/google-cloud-bigquery/1.88.0/com/google/cloud/bigquery/StandardSQLTypeName.html)" + }, + "schemaUpdateOptions": { + "$dynamic": false, + "title": "[Experimental] Options allowing the schema of the destination table to be updated as a side effect of the query job.", + "markdownDescription": "Schema update options are supported in two cases: when writeDisposition is WRITE_APPEND; when writeDisposition is WRITE_TRUNCATE and the destination table is a partition of a table, specified by partition decorators. For normal tables, WRITE_TRUNCATE will always overwrite the schema.", + "type": "array", + "items": { + "$dynamic": false, + "type": "string", + "enum": ["ALLOW_FIELD_ADDITION", "ALLOW_FIELD_RELAXATION"] + } + }, + "scopes": { + "$dynamic": true, + "title": "The GCP scopes to be used.", + "default": ["https://www.googleapis.com/auth/cloud-platform"], + "markdownDescription": "Default value is : `- https://www.googleapis.com/auth/cloud-platform`\n\nDefault value is : `- https://www.googleapis.com/auth/cloud-platform`", + "type": "array", + "items": { + "$dynamic": true, + "type": "string" + } + }, + "serviceAccount": { + "$dynamic": true, + "type": "string", + "title": "The GCP service account key." + }, + "timePartitioningField": { + "$dynamic": true, + "type": "string", + "title": "The time partitioning field for the destination table." + }, + "timePartitioningType": { + "$dynamic": true, + "type": "string", + "enum": ["DAY", "HOUR", "MONTH", "YEAR"], + "title": "The time partitioning type specification for the destination table.", + "default": "DAY", + "markdownDescription": "Default value is : `DAY`" + }, + "timeout": { + "type": "string", + "format": "duration" + }, + "type": { + "const": "io.kestra.plugin.gcp.bigquery.LoadFromGcs" + }, + "workerGroup": { + "$ref": "#/definitions/io.kestra.core.models.tasks.WorkerGroup" + }, + "writeDisposition": { + "$dynamic": false, + "type": "string", + "enum": ["WRITE_TRUNCATE", "WRITE_APPEND", "WRITE_EMPTY"], + "title": "The action that should occur if the destination table already exists." + } + }, + "required": ["id", "type"], + "title": "Load data from GCS (Google Cloud Storage) to BigQuery", + "markdownDescription": "##### Examples\n\u003E Load an avro file from a gcs bucket\n```yaml\nfrom:\n - \"{{ outputs['avro-to-gcs'] }}\"\ndestinationTable: \"my_project.my_dataset.my_table\"\nformat: AVRO\navroOptions:\n useAvroLogicalTypes: true\n```\n\n\u003E Load a csv file with a defined schema\n```yaml\n- id: load_files_test\n type: io.kestra.plugin.gcp.bigquery.LoadFromGcs\n destinationTable: \"myDataset.myTable\"\n ignoreUnknownValues: true\n schema:\n fields:\n - name: colA\n type: STRING\n - name: colB\n type: NUMERIC\n - name: colC\n type: STRING\n format: CSV\n csvOptions:\n allowJaggedRows: true\n encoding: UTF-8\n fieldDelimiter: \",\"\n from:\n - gs://myBucket/myFile.csv\n```" + }, + "io.kestra.plugin.gcp.bigquery.Query": { + "$metrics": [ + { + "name": "cache.hit", + "type": "counter", + "unit": "", + "description": "Whether the query result was fetched from the query cache." + }, + { + "name": "duration", + "type": "timer", + "unit": "", + "description": "The time it took for the query to run." + }, + { + "name": "estimated.bytes.processed", + "type": "counter", + "unit": "bytes", + "description": "The original estimate of bytes processed for the query." + }, + { + "name": "total.bytes.billed", + "type": "counter", + "unit": "bytes", + "description": "The total number of bytes billed for the query." + }, + { + "name": "total.bytes.processed", + "type": "counter", + "unit": "bytes", + "description": "The total number of bytes processed by the query." + }, + { + "name": "total.partitions.processed", + "type": "counter", + "unit": "partitions", + "description": "The totla number of partitions processed from all partitioned tables referenced in the job." + }, + { + "name": "total.slot.ms", + "type": "counter", + "unit": "", + "description": "The slot-milliseconds consumed by the query." + }, + { + "name": "num.dml.affected.rows", + "type": "counter", + "unit": "records", + "description": "The number of rows affected by a DML statement. Present only for DML statements INSERT, UPDATE or DELETE." + }, + { + "name": "referenced.tables", + "type": "counter", + "unit": "", + "description": "The number of tables referenced by the query." + }, + { + "name": "num.child.jobs", + "type": "counter", + "unit": "", + "description": "The number of child jobs executed by the query." + } + ], + "type": "object", + "properties": { + "allowFailure": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "allowLargeResults": { + "$dynamic": false, + "type": "boolean", + "title": "Sets whether the job is enabled to create arbitrarily large results.", + "markdownDescription": "If `true` the query is allowed to create large results at a slight cost in performance. `destinationTable` must be provided." + }, + "clusteringFields": { + "$dynamic": true, + "title": "The clustering specification for the destination table.", + "type": "array", + "items": { + "$dynamic": true, + "type": "string" + } + }, + "createDisposition": { + "$dynamic": false, + "type": "string", + "enum": ["CREATE_IF_NEEDED", "CREATE_NEVER"], + "title": "Whether the job is allowed to create tables." + }, + "defaultDataset": { + "$dynamic": true, + "type": "string", + "title": "Sets the default dataset.", + "markdownDescription": "This dataset is used for all unqualified table names used in the query." + }, + "description": { + "type": "string" + }, + "destinationTable": { + "$dynamic": true, + "type": "string", + "title": "The table where to put query results.", + "markdownDescription": "If not provided, a new table is created." + }, + "disabled": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "dryRun": { + "$dynamic": false, + "type": "boolean", + "title": "Whether the job has to be dry run or not.", + "default": false, + "markdownDescription": " A valid query will mostly return an empty response with some processing statistics, while an invalid query will return the same error as it would if it were an actual run.\n\nDefault value is : `false`" + }, + "fetch": { + "$dynamic": false, + "type": "boolean", + "title": "Whether to Fetch the data from the query result to the task output", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "fetchOne": { + "$dynamic": false, + "type": "boolean", + "title": "Whether to Fetch only one data row from the query result to the task output", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "flattenResults": { + "$dynamic": false, + "type": "boolean", + "title": "Sets whether nested and repeated fields should be flattened.", + "default": true, + "markdownDescription": "If set to `false`, allowLargeResults must be `true`.\n\nDefault value is : `true`" + }, + "id": { + "type": "string", + "minLength": 1, + "pattern": "^[a-zA-Z0-9][a-zA-Z0-9_-]*" + }, + "jobTimeout": { + "$dynamic": false, + "type": "string", + "format": "duration", + "title": "Job timeout.", + "markdownDescription": "If this time limit is exceeded, BigQuery may attempt to terminate the job." + }, + "labels": { + "$dynamic": true, + "type": "object", + "title": "The labels associated with this job.", + "markdownDescription": "You can use these to organize and group your jobs. Label keys and values can be no longer than 63 characters, can only contain lowercase letters, numeric characters, underscores and dashes. International characters are allowed. Label values are optional. Label keys must start with a letter and each label in the list must have a different key." + }, + "legacySql": { + "$dynamic": false, + "type": "boolean", + "title": "Whether to use BigQuery's legacy SQL dialect for this query", + "default": false, + "markdownDescription": "By default this property is set to false.\n\nDefault value is : `false`" + }, + "location": { + "$dynamic": true, + "type": "string", + "title": "The geographic location where the dataset should reside.", + "markdownDescription": "This property is experimental and might be subject to change or removed.\n \n See \u003Ca href=\"https://cloud.google.com/bigquery/docs/reference/v2/datasets#location\"\u003EDataset Location\u003C/a\u003E" + }, + "logLevel": { + "type": "string", + "enum": ["ERROR", "WARN", "INFO", "DEBUG", "TRACE"] + }, + "maxResults": { + "$dynamic": false, + "type": "integer", + "title": "This is only supported in the fast query path.", + "markdownDescription": "The maximum number of rows of data to return per page of results. Setting this flag to a small value such as 1000 and then paging through results might improve reliability when the query result set is large. In addition to this limit, responses are also limited to 10 MB. By default, there is no maximum row count, and only the byte limit applies." + }, + "maximumBillingTier": { + "$dynamic": false, + "type": "integer", + "title": "Limits the billing tier for this job.", + "markdownDescription": "Queries that have resource usage beyond this tier will fail (without incurring a charge). If unspecified, this will be set to your project default." + }, + "maximumBytesBilled": { + "$dynamic": false, + "type": "integer", + "title": "Limits the bytes billed for this job.", + "markdownDescription": "Queries that will have bytes billed beyond this limit will fail (without incurring a charge). If unspecified, this will be set to your project default." + }, + "priority": { + "$dynamic": false, + "type": "string", + "enum": ["INTERACTIVE", "BATCH"], + "title": "Sets a priority for the query.", + "default": "INTERACTIVE", + "markdownDescription": "Default value is : `INTERACTIVE`" + }, + "projectId": { + "$dynamic": true, + "type": "string", + "title": "The GCP project ID." + }, + "rangePartitioningEnd": { + "$dynamic": true, + "type": "integer", + "title": "The end range partitioning, inclusive." + }, + "rangePartitioningField": { + "$dynamic": true, + "type": "string", + "title": "Range partitioning field for the destination table." + }, + "rangePartitioningInterval": { + "$dynamic": true, + "type": "integer", + "title": "The width of each interval." + }, + "rangePartitioningStart": { + "$dynamic": true, + "type": "integer", + "title": "The start of range partitioning, inclusive." + }, + "retry": { + "oneOf": [ + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Constant-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Exponential-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Random-2" + } + ] + }, + "retryAuto": { + "oneOf": [ + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Constant-2" + }, + { + "$dynamic": false, + "title": "Automatic retry for retryable BigQuery exceptions.", + "markdownDescription": "Some exceptions (especially rate limit) are not retried by default by BigQuery client, we use by default a transparent retry (not the kestra one) to handle this case.\nThe default values are exponential of 5 seconds for a maximum of 15 minutes and ten attempts" + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Exponential-2" + }, + { + "$dynamic": false, + "title": "Automatic retry for retryable BigQuery exceptions.", + "markdownDescription": "Some exceptions (especially rate limit) are not retried by default by BigQuery client, we use by default a transparent retry (not the kestra one) to handle this case.\nThe default values are exponential of 5 seconds for a maximum of 15 minutes and ten attempts" + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Random-2" + }, + { + "$dynamic": false, + "title": "Automatic retry for retryable BigQuery exceptions.", + "markdownDescription": "Some exceptions (especially rate limit) are not retried by default by BigQuery client, we use by default a transparent retry (not the kestra one) to handle this case.\nThe default values are exponential of 5 seconds for a maximum of 15 minutes and ten attempts" + } + ] + } + ] + }, + "retryMessages": { + "$dynamic": true, + "title": "The messages which would trigger an automatic retry.", + "default": [ + "due to concurrent update", + "Retrying the job may solve the problem" + ], + "markdownDescription": "Message is tested as a substring of the full message, and is case insensitive.\n\nDefault value is : `- due to concurrent update\n- Retrying the job may solve the problem`\n\nDefault value is : `- due to concurrent update\n- Retrying the job may solve the problem`", + "type": "array", + "items": { + "$dynamic": true, + "type": "string" + } + }, + "retryReasons": { + "$dynamic": true, + "title": "The reasons which would trigger an automatic retry.", + "default": [ + "rateLimitExceeded", + "jobBackendError", + "internalError", + "jobInternalError" + ], + "markdownDescription": "Default value is : `- rateLimitExceeded\n- jobBackendError\n- internalError\n- jobInternalError`\n\nDefault value is : `- rateLimitExceeded\n- jobBackendError\n- internalError\n- jobInternalError`", + "type": "array", + "items": { + "$dynamic": true, + "type": "string" + } + }, + "schemaUpdateOptions": { + "$dynamic": false, + "title": "[Experimental] Options allowing the schema of the destination table to be updated as a side effect of the query job.", + "markdownDescription": " Schema update options are supported in two cases: * when writeDisposition is WRITE_APPEND; \n* when writeDisposition is WRITE_TRUNCATE and the destination table is a partition of a table, specified by partition decorators. \n For normal tables, WRITE_TRUNCATE will always overwrite the schema.", + "type": "array", + "items": { + "$dynamic": false, + "type": "string", + "enum": ["ALLOW_FIELD_ADDITION", "ALLOW_FIELD_RELAXATION"] + } + }, + "scopes": { + "$dynamic": true, + "title": "The GCP scopes to be used.", + "default": ["https://www.googleapis.com/auth/cloud-platform"], + "markdownDescription": "Default value is : `- https://www.googleapis.com/auth/cloud-platform`\n\nDefault value is : `- https://www.googleapis.com/auth/cloud-platform`", + "type": "array", + "items": { + "$dynamic": true, + "type": "string" + } + }, + "serviceAccount": { + "$dynamic": true, + "type": "string", + "title": "The GCP service account key." + }, + "sql": { + "$dynamic": true, + "type": "string", + "title": "The sql query to run" + }, + "store": { + "$dynamic": false, + "type": "boolean", + "title": "Whether to store the data from the query result into an ion serialized data file", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "timePartitioningField": { + "$dynamic": true, + "type": "string", + "title": "The time partitioning field for the destination table." + }, + "timePartitioningType": { + "$dynamic": true, + "type": "string", + "enum": ["DAY", "HOUR", "MONTH", "YEAR"], + "title": "The time partitioning type specification.", + "default": "DAY", + "markdownDescription": "Default value is : `DAY`" + }, + "timeout": { + "type": "string", + "format": "duration" + }, + "type": { + "const": "io.kestra.plugin.gcp.bigquery.Query" + }, + "useLegacySql": { + "$dynamic": false, + "type": "boolean", + "title": "Sets whether to use BigQuery's legacy SQL dialect for this query.", + "default": false, + "markdownDescription": " A valid query will return a mostly empty response with some processing statistics, while an invalid query will return the same error it would if it wasn't a dry run.\n\nDefault value is : `false`" + }, + "useQueryCache": { + "$dynamic": false, + "type": "boolean", + "title": "Sets whether to look for the result in the query cache.", + "markdownDescription": "The query cache is a best-effort cache that will be flushed whenever tables in the query are modified. Moreover, the query cache is only available when `destinationTable` is not set " + }, + "workerGroup": { + "$ref": "#/definitions/io.kestra.core.models.tasks.WorkerGroup" + }, + "writeDisposition": { + "$dynamic": false, + "type": "string", + "enum": ["WRITE_TRUNCATE", "WRITE_APPEND", "WRITE_EMPTY"], + "title": "The action that should occur if the destination table already exists." + } + }, + "required": ["id", "type"], + "title": "Execute BigQuery SQL query in a specific BigQuery database.", + "markdownDescription": "##### Examples\n\u003E Create a table with a custom query.\n```yaml\ndestinationTable: \"my_project.my_dataset.my_table\"\nwriteDisposition: WRITE_APPEND\nsql: |\n SELECT \n \"hello\" as string,\n NULL AS `nullable`,\n 1 as int,\n 1.25 AS float,\n DATE(\"2008-12-25\") AS date,\n DATETIME \"2008-12-25 15:30:00.123456\" AS datetime,\n TIME(DATETIME \"2008-12-25 15:30:00.123456\") AS time,\n TIMESTAMP(\"2008-12-25 15:30:00.123456\") AS timestamp,\n ST_GEOGPOINT(50.6833, 2.9) AS geopoint,\n ARRAY(SELECT 1 UNION ALL SELECT 2 UNION ALL SELECT 3) AS `array`,\n STRUCT(4 AS x, 0 AS y, ARRAY(SELECT 1 UNION ALL SELECT 2 UNION ALL SELECT 3) AS z) AS `struct`\n```\n\n\u003E Execute a query and fetch results sets on another task.\n```yaml\ntasks:\n - id: fetch\n type: io.kestra.plugin.gcp.bigquery.Query\n fetch: true\n sql: |\n SELECT 1 as id, \"John\" as name\n UNION ALL\n SELECT 2 as id, \"Doe\" as name\n - id: use-fetched-data\n type: io.kestra.plugin.core.debug.Return\n format: |\n {% for row in outputs.fetch.rows %}\n id : {{ row.id }}, name: {{ row.name }}\n {% endfor %}\n```" + }, + "io.kestra.plugin.gcp.bigquery.StorageWrite": { + "$metrics": [ + { + "name": "rows", + "type": "counter", + "unit": "", + "description": "Rows count." + }, + { + "name": "rows_count", + "type": "counter", + "unit": "", + "description": "Rows count reported by BigQuery, only on `PENDING` writeStreamType." + } + ], + "type": "object", + "properties": { + "allowFailure": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "bufferSize": { + "$dynamic": false, + "type": "integer", + "title": "The number of records to send on each query", + "default": 1000, + "markdownDescription": "Default value is : `1000`" + }, + "description": { + "type": "string" + }, + "destinationTable": { + "$dynamic": true, + "type": "string", + "title": "The table where to load data", + "minLength": 1, + "markdownDescription": "The table must be created before." + }, + "disabled": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "from": { + "$dynamic": true, + "type": "string", + "title": "The fully-qualified URIs that point to source data" + }, + "id": { + "type": "string", + "minLength": 1, + "pattern": "^[a-zA-Z0-9][a-zA-Z0-9_-]*" + }, + "location": { + "$dynamic": true, + "type": "string", + "title": "The geographic location where the dataset should reside", + "markdownDescription": "This property is experimental and might be subject to change or removed.\n \n See \u003Ca href=\"https://cloud.google.com/bigquery/docs/reference/v2/datasets#location\"\u003EDataset Location\u003C/a\u003E" + }, + "logLevel": { + "type": "string", + "enum": ["ERROR", "WARN", "INFO", "DEBUG", "TRACE"] + }, + "projectId": { + "$dynamic": true, + "type": "string", + "title": "The GCP project ID." + }, + "retry": { + "oneOf": [ + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Constant-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Exponential-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Random-2" + } + ] + }, + "scopes": { + "$dynamic": true, + "title": "The GCP scopes to be used.", + "default": ["https://www.googleapis.com/auth/cloud-platform"], + "markdownDescription": "Default value is : `- https://www.googleapis.com/auth/cloud-platform`\n\nDefault value is : `- https://www.googleapis.com/auth/cloud-platform`", + "type": "array", + "items": { + "$dynamic": true, + "type": "string" + } + }, + "serviceAccount": { + "$dynamic": true, + "type": "string", + "title": "The GCP service account key." + }, + "timeout": { + "type": "string", + "format": "duration" + }, + "type": { + "const": "io.kestra.plugin.gcp.bigquery.StorageWrite" + }, + "workerGroup": { + "$ref": "#/definitions/io.kestra.core.models.tasks.WorkerGroup" + }, + "writeStreamType": { + "$dynamic": false, + "type": "string", + "enum": ["DEFAULT", "COMMITTED", "PENDING"], + "title": "The type of write stream to use", + "default": "DEFAULT", + "markdownDescription": "Default value is : `DEFAULT`" + } + }, + "required": ["destinationTable", "id", "type"], + "title": "Load an kestra internal storage file on bigquery using [BigQuery Storage API](https://cloud.google.com/bigquery/docs/write-api#write_to_a_stream_in_committed_mode)", + "markdownDescription": "##### Examples\n\u003E \n```yaml\nfrom: \"{{ outputs.read.uri }}\"\ndestinationTable: \"my_project.my_dataset.my_table\"\nwriteStreamType: DEFAULT\n```" + }, + "io.kestra.plugin.gcp.bigquery.TableMetadata": { + "type": "object", + "properties": { + "allowFailure": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "dataset": { + "$dynamic": true, + "type": "string", + "title": "The dataset's user-defined ID." + }, + "description": { + "type": "string" + }, + "disabled": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "id": { + "type": "string", + "minLength": 1, + "pattern": "^[a-zA-Z0-9][a-zA-Z0-9_-]*" + }, + "ifNotExists": { + "$dynamic": false, + "type": "string", + "enum": ["ERROR", "SKIP"], + "title": "Policy to apply if a table don't exists.", + "default": "ERROR", + "markdownDescription": "If the policy is `SKIP`, the output will contain only null value, otherwise an error is raised.\n\nDefault value is : `ERROR`" + }, + "location": { + "$dynamic": true, + "type": "string", + "title": "The geographic location where the dataset should reside.", + "markdownDescription": "This property is experimental and might be subject to change or removed.\n \n See \u003Ca href=\"https://cloud.google.com/bigquery/docs/reference/v2/datasets#location\"\u003EDataset Location\u003C/a\u003E" + }, + "logLevel": { + "type": "string", + "enum": ["ERROR", "WARN", "INFO", "DEBUG", "TRACE"] + }, + "projectId": { + "$dynamic": true, + "type": "string", + "title": "The GCP project ID." + }, + "retry": { + "oneOf": [ + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Constant-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Exponential-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Random-2" + } + ] + }, + "retryAuto": { + "oneOf": [ + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Constant-2" + }, + { + "$dynamic": false, + "title": "Automatic retry for retryable BigQuery exceptions.", + "markdownDescription": "Some exceptions (especially rate limit) are not retried by default by BigQuery client, we use by default a transparent retry (not the kestra one) to handle this case.\nThe default values are exponential of 5 seconds for a maximum of 15 minutes and ten attempts" + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Exponential-2" + }, + { + "$dynamic": false, + "title": "Automatic retry for retryable BigQuery exceptions.", + "markdownDescription": "Some exceptions (especially rate limit) are not retried by default by BigQuery client, we use by default a transparent retry (not the kestra one) to handle this case.\nThe default values are exponential of 5 seconds for a maximum of 15 minutes and ten attempts" + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Random-2" + }, + { + "$dynamic": false, + "title": "Automatic retry for retryable BigQuery exceptions.", + "markdownDescription": "Some exceptions (especially rate limit) are not retried by default by BigQuery client, we use by default a transparent retry (not the kestra one) to handle this case.\nThe default values are exponential of 5 seconds for a maximum of 15 minutes and ten attempts" + } + ] + } + ] + }, + "retryMessages": { + "$dynamic": true, + "title": "The messages which would trigger an automatic retry.", + "default": [ + "due to concurrent update", + "Retrying the job may solve the problem" + ], + "markdownDescription": "Message is tested as a substring of the full message, and is case insensitive.\n\nDefault value is : `- due to concurrent update\n- Retrying the job may solve the problem`\n\nDefault value is : `- due to concurrent update\n- Retrying the job may solve the problem`", + "type": "array", + "items": { + "$dynamic": true, + "type": "string" + } + }, + "retryReasons": { + "$dynamic": true, + "title": "The reasons which would trigger an automatic retry.", + "default": [ + "rateLimitExceeded", + "jobBackendError", + "internalError", + "jobInternalError" + ], + "markdownDescription": "Default value is : `- rateLimitExceeded\n- jobBackendError\n- internalError\n- jobInternalError`\n\nDefault value is : `- rateLimitExceeded\n- jobBackendError\n- internalError\n- jobInternalError`", + "type": "array", + "items": { + "$dynamic": true, + "type": "string" + } + }, + "scopes": { + "$dynamic": true, + "title": "The GCP scopes to be used.", + "default": ["https://www.googleapis.com/auth/cloud-platform"], + "markdownDescription": "Default value is : `- https://www.googleapis.com/auth/cloud-platform`\n\nDefault value is : `- https://www.googleapis.com/auth/cloud-platform`", + "type": "array", + "items": { + "$dynamic": true, + "type": "string" + } + }, + "serviceAccount": { + "$dynamic": true, + "type": "string", + "title": "The GCP service account key." + }, + "table": { + "$dynamic": true, + "type": "string", + "title": "The table's user-defined ID." + }, + "timeout": { + "type": "string", + "format": "duration" + }, + "type": { + "const": "io.kestra.plugin.gcp.bigquery.TableMetadata" + }, + "workerGroup": { + "$ref": "#/definitions/io.kestra.core.models.tasks.WorkerGroup" + } + }, + "required": ["dataset", "id", "table", "type"], + "title": "Get table metadata.", + "markdownDescription": "##### Examples\n\u003E \n```yaml\nprojectId: my-project\ndataset: my-dataset\ntable: my-table\n```" + }, + "io.kestra.plugin.gcp.bigquery.Trigger": { + "type": "object", + "properties": { + "conditions": { + "$dynamic": false, + "title": "List of conditions in order to limit the flow trigger.", + "type": "array", + "items": { + "oneOf": [ + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.DateTimeBetweenCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.DayWeekCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.DayWeekInMonthCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.ExecutionFlowCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.ExecutionLabelsCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.ExecutionNamespaceCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.ExecutionOutputsCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.ExecutionStatusCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.ExpressionCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.FlowCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.FlowNamespaceCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.HasRetryAttemptCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.MultipleCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.NotCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.OrCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.PublicHolidayCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.TimeBetweenCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.WeekendCondition" + }, + { + "$dynamic": false + } + ] + } + ] + } + }, + "description": { + "type": "string" + }, + "disabled": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "fetch": { + "$dynamic": false, + "type": "boolean", + "title": "Whether to Fetch the data from the query result to the task output", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "fetchOne": { + "$dynamic": false, + "type": "boolean", + "title": "Whether to Fetch only one data row from the query result to the task output", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "id": { + "type": "string", + "title": "A unique ID for the whole flow.", + "minLength": 1, + "pattern": "^[a-zA-Z0-9][a-zA-Z0-9_-]*" + }, + "interval": { + "$dynamic": false, + "type": "string", + "format": "duration", + "title": "Interval between polling.", + "default": 60, + "markdownDescription": "The interval between 2 different polls of schedule, this can avoid to overload the remote system with too many calls. For most of the triggers that depend on external systems, a minimal interval must be at least PT30S.\nSee [ISO_8601 Durations](https://en.wikipedia.org/wiki/ISO_8601#Durations) for more information of available interval values.\n\nDefault value is : `60.000000000`" + }, + "labels": { + "title": "The labels to pass to the execution created.", + "type": "array", + "items": { + "$ref": "#/definitions/io.kestra.core.models.Label" + } + }, + "legacySql": { + "$dynamic": false, + "type": "boolean", + "title": "Whether to use BigQuery's legacy SQL dialect for this query", + "default": false, + "markdownDescription": "By default this property is set to false.\n\nDefault value is : `false`" + }, + "logLevel": { + "type": "string", + "enum": ["ERROR", "WARN", "INFO", "DEBUG", "TRACE"] + }, + "projectId": { + "type": "string" + }, + "scopes": { + "default": ["https://www.googleapis.com/auth/cloud-platform"], + "markdownDescription": "Default value is : `- https://www.googleapis.com/auth/cloud-platform`\n\nDefault value is : `- https://www.googleapis.com/auth/cloud-platform`", + "type": "array", + "items": { + "type": "string" + } + }, + "serviceAccount": { + "type": "string" + }, + "sql": { + "$dynamic": true, + "type": "string", + "title": "The sql query to run" + }, + "stopAfter": { + "$dynamic": false, + "title": "List of execution states after which a trigger should be stopped (a.k.a. disabled).", + "type": "array", + "items": { + "$dynamic": false, + "type": "string", + "enum": [ + "CREATED", + "RUNNING", + "PAUSED", + "RESTARTED", + "KILLING", + "SUCCESS", + "WARNING", + "FAILED", + "KILLED", + "CANCELLED", + "QUEUED", + "RETRYING", + "RETRIED" + ] + } + }, + "store": { + "$dynamic": false, + "type": "boolean", + "title": "Whether to store the data from the query result into an ion serialized data file", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "type": { + "const": "io.kestra.plugin.gcp.bigquery.Trigger" + }, + "workerGroup": { + "$ref": "#/definitions/io.kestra.core.models.tasks.WorkerGroup" + } + }, + "required": ["id", "type"], + "title": "Wait for query on BigQuery.", + "markdownDescription": "##### Examples\n\u003E Wait for a sql query to return results and iterate through rows.\n```yaml\nid: bigquery-listen\nnamespace: company.team\n\ntasks:\n - id: each\n type: io.kestra.plugin.core.flow.EachSequential\n tasks:\n - id: return\n type: io.kestra.plugin.core.debug.Return\n format: \"{{ taskrun.value }}\"\n value: \"{{ trigger.rows }}\"\n\ntriggers:\n - id: watch\n type: io.kestra.plugin.gcp.bigquery.Trigger\n interval: \"PT5M\"\n sql: \"SELECT * FROM `myproject.mydataset.mytable`\"\n fetch: true\n```" + }, + "io.kestra.plugin.gcp.bigquery.UpdateDataset": { + "type": "object", + "properties": { + "acl": { + "$dynamic": false, + "title": "The dataset's access control configuration.", + "type": "array", + "items": { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.bigquery.models.AccessControl" + }, + { + "$dynamic": false + } + ] + } + }, + "allowFailure": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "defaultEncryptionConfiguration": { + "allOf": [ + { + "$ref": "#/definitions/com.google.cloud.bigquery.EncryptionConfiguration" + }, + { + "$dynamic": false, + "title": "The default encryption key for all tables in the dataset.", + "markdownDescription": "Once this property is set, all newly-created partitioned tables in the dataset will have encryption key set to this value, unless table creation request (or query) overrides the key." + } + ] + }, + "defaultPartitionExpirationMs": { + "$dynamic": false, + "type": "integer", + "title": "[Optional] The default partition expiration time for all partitioned tables in the dataset, in milliseconds.", + "markdownDescription": " Once this property is set, all newly-created partitioned tables in the dataset will has an expirationMs property in the timePartitioning settings set to this value. Changing the value only affect new tables, not existing ones. The storage in a partition will have an expiration time of its partition time plus this value. Setting this property overrides the use of defaultTableExpirationMs for partitioned tables: only one of defaultTableExpirationMs and defaultPartitionExpirationMs will be used for any new partitioned table. If you provide an explicit timePartitioning.expirationMs when creating or updating a partitioned table, that value takes precedence over the default partition expiration time indicated by this property. The value may be null." + }, + "defaultTableLifetime": { + "$dynamic": false, + "type": "integer", + "title": "The default lifetime of all tables in the dataset, in milliseconds.", + "markdownDescription": "The minimum value is 3600000 milliseconds (one hour). Once this property is set, all newly-created tables in the dataset will have an expirationTime property set to the creation time plus the value in this property, and changing the value will only affect new tables, not existing ones. When the expirationTime for a given table is reached, that table will be deleted automatically. If a table's expirationTime is modified or removed before the table expires, or if you provide an explicit expirationTime when creating a table, that value takes precedence over the default expiration time indicated by this property. This property is experimental and might be subject to change or removed." + }, + "description": { + "$dynamic": true, + "type": "string", + "title": "The dataset description.", + "markdownDescription": "A user-friendly description for the dataset." + }, + "disabled": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "friendlyName": { + "$dynamic": true, + "type": "string", + "title": "A user-friendly name for the dataset." + }, + "id": { + "type": "string", + "minLength": 1, + "pattern": "^[a-zA-Z0-9][a-zA-Z0-9_-]*" + }, + "labels": { + "$dynamic": true, + "type": "object", + "title": "The dataset's labels." + }, + "location": { + "$dynamic": true, + "type": "string", + "title": "The geographic location where the dataset should reside.", + "markdownDescription": "This property is experimental and might be subject to change or removed. \n See \u003Ca href=\"https://cloud.google.com/bigquery/docs/reference/v2/datasets#location\"\u003EDataset Location\u003C/a\u003E" + }, + "logLevel": { + "type": "string", + "enum": ["ERROR", "WARN", "INFO", "DEBUG", "TRACE"] + }, + "name": { + "$dynamic": true, + "type": "string", + "title": "The dataset's user-defined ID." + }, + "projectId": { + "$dynamic": true, + "type": "string", + "title": "The GCP project ID." + }, + "retry": { + "oneOf": [ + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Constant-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Exponential-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Random-2" + } + ] + }, + "retryAuto": { + "oneOf": [ + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Constant-2" + }, + { + "$dynamic": false, + "title": "Automatic retry for retryable BigQuery exceptions.", + "markdownDescription": "Some exceptions (especially rate limit) are not retried by default by BigQuery client, we use by default a transparent retry (not the kestra one) to handle this case.\nThe default values are exponential of 5 seconds for a maximum of 15 minutes and ten attempts" + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Exponential-2" + }, + { + "$dynamic": false, + "title": "Automatic retry for retryable BigQuery exceptions.", + "markdownDescription": "Some exceptions (especially rate limit) are not retried by default by BigQuery client, we use by default a transparent retry (not the kestra one) to handle this case.\nThe default values are exponential of 5 seconds for a maximum of 15 minutes and ten attempts" + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Random-2" + }, + { + "$dynamic": false, + "title": "Automatic retry for retryable BigQuery exceptions.", + "markdownDescription": "Some exceptions (especially rate limit) are not retried by default by BigQuery client, we use by default a transparent retry (not the kestra one) to handle this case.\nThe default values are exponential of 5 seconds for a maximum of 15 minutes and ten attempts" + } + ] + } + ] + }, + "retryMessages": { + "$dynamic": true, + "title": "The messages which would trigger an automatic retry.", + "default": [ + "due to concurrent update", + "Retrying the job may solve the problem" + ], + "markdownDescription": "Message is tested as a substring of the full message, and is case insensitive.\n\nDefault value is : `- due to concurrent update\n- Retrying the job may solve the problem`\n\nDefault value is : `- due to concurrent update\n- Retrying the job may solve the problem`", + "type": "array", + "items": { + "$dynamic": true, + "type": "string" + } + }, + "retryReasons": { + "$dynamic": true, + "title": "The reasons which would trigger an automatic retry.", + "default": [ + "rateLimitExceeded", + "jobBackendError", + "internalError", + "jobInternalError" + ], + "markdownDescription": "Default value is : `- rateLimitExceeded\n- jobBackendError\n- internalError\n- jobInternalError`\n\nDefault value is : `- rateLimitExceeded\n- jobBackendError\n- internalError\n- jobInternalError`", + "type": "array", + "items": { + "$dynamic": true, + "type": "string" + } + }, + "scopes": { + "$dynamic": true, + "title": "The GCP scopes to be used.", + "default": ["https://www.googleapis.com/auth/cloud-platform"], + "markdownDescription": "Default value is : `- https://www.googleapis.com/auth/cloud-platform`\n\nDefault value is : `- https://www.googleapis.com/auth/cloud-platform`", + "type": "array", + "items": { + "$dynamic": true, + "type": "string" + } + }, + "serviceAccount": { + "$dynamic": true, + "type": "string", + "title": "The GCP service account key." + }, + "timeout": { + "type": "string", + "format": "duration" + }, + "type": { + "const": "io.kestra.plugin.gcp.bigquery.UpdateDataset" + }, + "workerGroup": { + "$ref": "#/definitions/io.kestra.core.models.tasks.WorkerGroup" + } + }, + "required": ["id", "name", "type"], + "title": "Update a dataset.", + "markdownDescription": "##### Examples\n\u003E \n```yaml\nname: \"my_dataset\"\nlocation: \"EU\"\nfriendlyName: \"new Friendly Name\"\n```" + }, + "io.kestra.plugin.gcp.bigquery.UpdateTable": { + "type": "object", + "properties": { + "allowFailure": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "dataset": { + "$dynamic": true, + "type": "string", + "title": "The dataset's user-defined ID." + }, + "description": { + "$dynamic": true, + "type": "string", + "title": "The user-friendly description for the table." + }, + "disabled": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "encryptionConfiguration": { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.bigquery.models.EncryptionConfiguration" + }, + { + "title": "The encryption configuration." + } + ] + }, + "expirationDuration": { + "type": "string", + "format": "duration", + "title": "Sets the duration, since now, when this table expires.", + "markdownDescription": "If not present, the table will persist indefinitely. Expired tables will be deleted and their storage reclaimed." + }, + "friendlyName": { + "$dynamic": true, + "type": "string", + "title": "The user-friendly name for the table." + }, + "id": { + "type": "string", + "minLength": 1, + "pattern": "^[a-zA-Z0-9][a-zA-Z0-9_-]*" + }, + "labels": { + "$dynamic": true, + "type": "object", + "title": "Return a map for labels applied to the table." + }, + "location": { + "$dynamic": true, + "type": "string", + "title": "The geographic location where the dataset should reside.", + "markdownDescription": "This property is experimental and might be subject to change or removed.\n \n See \u003Ca href=\"https://cloud.google.com/bigquery/docs/reference/v2/datasets#location\"\u003EDataset Location\u003C/a\u003E" + }, + "logLevel": { + "type": "string", + "enum": ["ERROR", "WARN", "INFO", "DEBUG", "TRACE"] + }, + "projectId": { + "$dynamic": true, + "type": "string", + "title": "The GCP project ID." + }, + "requirePartitionFilter": { + "type": "boolean", + "title": "Return true if a partition filter (that can be used for partition elimination) is required for queries over this table." + }, + "retry": { + "oneOf": [ + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Constant-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Exponential-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Random-2" + } + ] + }, + "retryAuto": { + "oneOf": [ + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Constant-2" + }, + { + "$dynamic": false, + "title": "Automatic retry for retryable BigQuery exceptions.", + "markdownDescription": "Some exceptions (especially rate limit) are not retried by default by BigQuery client, we use by default a transparent retry (not the kestra one) to handle this case.\nThe default values are exponential of 5 seconds for a maximum of 15 minutes and ten attempts" + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Exponential-2" + }, + { + "$dynamic": false, + "title": "Automatic retry for retryable BigQuery exceptions.", + "markdownDescription": "Some exceptions (especially rate limit) are not retried by default by BigQuery client, we use by default a transparent retry (not the kestra one) to handle this case.\nThe default values are exponential of 5 seconds for a maximum of 15 minutes and ten attempts" + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Random-2" + }, + { + "$dynamic": false, + "title": "Automatic retry for retryable BigQuery exceptions.", + "markdownDescription": "Some exceptions (especially rate limit) are not retried by default by BigQuery client, we use by default a transparent retry (not the kestra one) to handle this case.\nThe default values are exponential of 5 seconds for a maximum of 15 minutes and ten attempts" + } + ] + } + ] + }, + "retryMessages": { + "$dynamic": true, + "title": "The messages which would trigger an automatic retry.", + "default": [ + "due to concurrent update", + "Retrying the job may solve the problem" + ], + "markdownDescription": "Message is tested as a substring of the full message, and is case insensitive.\n\nDefault value is : `- due to concurrent update\n- Retrying the job may solve the problem`\n\nDefault value is : `- due to concurrent update\n- Retrying the job may solve the problem`", + "type": "array", + "items": { + "$dynamic": true, + "type": "string" + } + }, + "retryReasons": { + "$dynamic": true, + "title": "The reasons which would trigger an automatic retry.", + "default": [ + "rateLimitExceeded", + "jobBackendError", + "internalError", + "jobInternalError" + ], + "markdownDescription": "Default value is : `- rateLimitExceeded\n- jobBackendError\n- internalError\n- jobInternalError`\n\nDefault value is : `- rateLimitExceeded\n- jobBackendError\n- internalError\n- jobInternalError`", + "type": "array", + "items": { + "$dynamic": true, + "type": "string" + } + }, + "scopes": { + "$dynamic": true, + "title": "The GCP scopes to be used.", + "default": ["https://www.googleapis.com/auth/cloud-platform"], + "markdownDescription": "Default value is : `- https://www.googleapis.com/auth/cloud-platform`\n\nDefault value is : `- https://www.googleapis.com/auth/cloud-platform`", + "type": "array", + "items": { + "$dynamic": true, + "type": "string" + } + }, + "serviceAccount": { + "$dynamic": true, + "type": "string", + "title": "The GCP service account key." + }, + "table": { + "$dynamic": true, + "type": "string", + "title": "The table's user-defined ID." + }, + "tableDefinition": { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.bigquery.models.TableDefinition" + }, + { + "title": "The table definition." + } + ] + }, + "timeout": { + "type": "string", + "format": "duration" + }, + "type": { + "const": "io.kestra.plugin.gcp.bigquery.UpdateTable" + }, + "workerGroup": { + "$ref": "#/definitions/io.kestra.core.models.tasks.WorkerGroup" + } + }, + "required": ["dataset", "id", "table", "type"], + "title": "Update table metadata", + "markdownDescription": "##### Examples\n\u003E \n```yaml\nprojectId: my-project\ndataset: my-dataset\ntable: my-table\nexpirationDuration: PT48H\n```" + }, + "io.kestra.plugin.gcp.bigquery.models.AccessControl": { + "type": "object", + "properties": { + "entity": { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.bigquery.models.Entity" + }, + { + "$dynamic": true, + "title": "The GCP entity." + } + ] + }, + "role": { + "$dynamic": true, + "type": "string", + "enum": ["READER", "WRITER", "OWNER"], + "title": "The role to assign to the entity." + } + }, + "required": ["entity", "role"] + }, + "io.kestra.plugin.gcp.bigquery.models.EncryptionConfiguration": { + "type": "object", + "properties": { + "The KMS key name.": { + "$dynamic": true, + "type": "string" + } + } + }, + "io.kestra.plugin.gcp.bigquery.models.Entity": { + "type": "object", + "properties": { + "type": { + "$dynamic": true, + "type": "string", + "enum": ["DOMAIN", "GROUP", "USER", "IAM_MEMBER"], + "title": "The type of the entity (USER, GROUP, DOMAIN or IAM_MEMBER)." + }, + "value": { + "$dynamic": true, + "type": "string", + "title": "The value for the entity.", + "markdownDescription": "For example, user email if the type is USER." + } + }, + "required": ["type", "value"] + }, + "io.kestra.plugin.gcp.bigquery.models.ExternalTableDefinition": { + "type": "object", + "properties": { + "autodetect": { + "type": "boolean", + "title": "Whether automatic detection of schema and format options should be performed." + }, + "compression": { + "$dynamic": true, + "type": "string", + "title": "The compression type of the data source." + }, + "formatType": { + "type": "string", + "enum": [ + "CSV", + "JSON", + "BIGTABLE", + "DATASTORE_BACKUP", + "AVRO", + "GOOGLE_SHEETS", + "PARQUET", + "ORC" + ], + "title": "The source format, and possibly some parsing options, of the external data." + }, + "ignoreUnknownValues": { + "type": "boolean", + "title": "Whether BigQuery should allow extra values that are not represented in the table schema.", + "markdownDescription": "If true, the extra values are ignored. If false, records with extra columns are treated as bad records, and if there are too many bad records, an invalid error is returned in the job result." + }, + "maxBadRecords": { + "type": "integer", + "title": "The maximum number of bad records that BigQuery can ignore when reading data.", + "markdownDescription": "If the number of bad records exceeds this value, an invalid error is returned in the job result." + }, + "sourceUris": { + "$dynamic": true, + "title": "The fully-qualified URIs that point to your data in Google Cloud Storage.", + "markdownDescription": "Each URI can\n* contain one '*' wildcard character that must come after the bucket's name. Size limits related\n* to load jobs apply to external data sources, plus an additional limit of 10 GB maximum size\n* across all URIs.", + "type": "array", + "items": { + "$dynamic": true, + "type": "string" + } + } + } + }, + "io.kestra.plugin.gcp.bigquery.models.Field": { + "type": "object", + "properties": { + "description": { + "$dynamic": true, + "type": "string", + "title": "The field description." + }, + "mode": { + "$dynamic": true, + "type": "string", + "enum": ["NULLABLE", "REQUIRED", "REPEATED"], + "title": "The field mode.", + "markdownDescription": "By default, `Field.Mode.NULLABLE` is used." + }, + "name": { + "$dynamic": true, + "type": "string", + "title": "The field name." + }, + "policyTags": { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.bigquery.models.PolicyTags" + }, + { + "$dynamic": true, + "title": "The policy tags for the field." + } + ] + }, + "subFields": { + "$dynamic": true, + "title": "The list of sub-fields if `type` is a `LegacySQLType.RECORD`. Returns null otherwise.", + "type": "array", + "items": { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.bigquery.models.Field" + }, + { + "$dynamic": true + } + ] + } + }, + "type": { + "$dynamic": false, + "type": "string", + "enum": [ + "BOOL", + "INT64", + "FLOAT64", + "NUMERIC", + "BIGNUMERIC", + "STRING", + "BYTES", + "STRUCT", + "ARRAY", + "TIMESTAMP", + "DATE", + "TIME", + "DATETIME", + "GEOGRAPHY", + "JSON", + "INTERVAL", + "RANGE" + ], + "title": "The field type." + } + } + }, + "io.kestra.plugin.gcp.bigquery.models.MaterializedViewDefinition": { + "type": "object", + "properties": { + "enableRefresh": { + "$dynamic": false, + "type": "boolean", + "title": "Whether automatic refresh is enabled for the materialized view when the base table is updated." + }, + "lastRefreshDate": { + "type": "string", + "format": "date-time", + "title": "Date when this materialized view was last modified." + }, + "query": { + "$dynamic": true, + "type": "string", + "title": "The query whose result is persisted." + }, + "refreshInterval": { + "$dynamic": false, + "type": "string", + "format": "duration", + "title": "The maximum frequency at which this materialized view will be refreshed." + } + } + }, + "io.kestra.plugin.gcp.bigquery.models.PolicyTags": { + "type": "object", + "properties": { + "The policy tags' names.": { + "$dynamic": true, + "type": "array", + "items": { + "$dynamic": true, + "type": "string" + } + } + } + }, + "io.kestra.plugin.gcp.bigquery.models.RangePartitioning": { + "type": "object", + "properties": { + "The range of range partitioning.": { + "$ref": "#/definitions/io.kestra.plugin.gcp.bigquery.models.RangePartitioning-Range" + }, + "The range partitioning field.": { + "$dynamic": true, + "type": "string" + } + } + }, + "io.kestra.plugin.gcp.bigquery.models.RangePartitioning-Range": { + "type": "object", + "properties": { + "The end of range partitioning.": { + "$dynamic": false, + "type": "integer" + }, + "The start of range partitioning.": { + "$dynamic": false, + "type": "integer" + }, + "The width of each interval.": { + "$dynamic": false, + "type": "integer" + } + } + }, + "io.kestra.plugin.gcp.bigquery.models.Schema": { + "type": "object", + "properties": { + "The fields associated with this schema.": { + "type": "array", + "items": { + "$ref": "#/definitions/io.kestra.plugin.gcp.bigquery.models.Field" + } + } + } + }, + "io.kestra.plugin.gcp.bigquery.models.StandardTableDefinition": { + "type": "object", + "properties": { + "clustering": { + "title": "Returns the clustering configuration for this table. If {@code null}, the table is not clustered.", + "type": "array", + "items": { + "type": "string" + } + }, + "rangePartitioning": { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.bigquery.models.RangePartitioning" + }, + { + "title": "Returns the range partitioning configuration for this table. If {@code null}, the table is not range-partitioned." + } + ] + }, + "streamingBuffer": { + "allOf": [ + { + "$ref": "#/definitions/com.google.cloud.bigquery.StandardTableDefinition-StreamingBuffer" + }, + { + "title": "Returns information on the table's streaming buffer, if exists. Returns {@code null} if no streaming buffer exists." + } + ] + }, + "timePartitioning": { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.bigquery.models.TimePartitioning" + }, + { + "title": "Returns the time partitioning configuration for this table. If {@code null}, the table is not time-partitioned." + } + ] + } + } + }, + "io.kestra.plugin.gcp.bigquery.models.TableDefinition": { + "type": "object", + "properties": { + "externalTableDefinition": { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.bigquery.models.ExternalTableDefinition" + }, + { + "title": "The external table definition if the type is `EXTERNAL`." + } + ] + }, + "materializedViewDefinition": { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.bigquery.models.MaterializedViewDefinition" + }, + { + "title": "The materialized view definition if the type is `MATERIALIZED_VIEW`." + } + ] + }, + "schema": { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.bigquery.models.Schema" + }, + { + "title": "The table's schema." + } + ] + }, + "standardTableDefinition": { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.bigquery.models.StandardTableDefinition" + }, + { + "title": "The table definition if the type is `TABLE`." + } + ] + }, + "type": { + "type": "string", + "enum": ["TABLE", "VIEW", "MATERIALIZED_VIEW", "EXTERNAL", "MODEL"], + "title": "The table's type." + }, + "viewDefinition": { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.bigquery.models.ViewDefinition" + }, + { + "title": "The view definition if the type is `VIEW`." + } + ] + } + } + }, + "io.kestra.plugin.gcp.bigquery.models.TimePartitioning": { + "type": "object", + "properties": { + "expiration": { + "$dynamic": false, + "type": "string", + "format": "duration", + "title": "The number of milliseconds for which to keep the storage for a partition. When expired, the storage for the partition is reclaimed. If null, the partition does not expire." + }, + "field": { + "$dynamic": true, + "type": "string", + "title": "If not set, the table is partitioned by pseudo column '_PARTITIONTIME'; if set, the table is partitioned by this field." + }, + "requirePartitionFilter": { + "$dynamic": false, + "type": "boolean", + "title": "If set to true, queries over this table require a partition filter (that can be used for partition elimination) to be specified." + }, + "type": { + "$dynamic": false, + "type": "string", + "enum": ["DAY", "HOUR", "MONTH", "YEAR"], + "title": "The time partitioning type." + } + } + }, + "io.kestra.plugin.gcp.bigquery.models.UserDefinedFunction": { + "type": "object", + "properties": { + "The type of user defined function.": { + "$dynamic": false, + "type": "string", + "enum": ["INLINE", "FROM_URI"] + }, + "Type of UserDefinedFunction": { + "$dynamic": true, + "type": "string", + "markdownDescription": "If `type` is UserDefinedFunction.Type.INLINE, this method returns a code blob.\nIf `type` is UserDefinedFunction.Type.FROM_URI, the method returns a Google Cloud Storage URI (e.g. gs://bucket/path)." + } + } + }, + "io.kestra.plugin.gcp.bigquery.models.ViewDefinition": { + "type": "object", + "properties": { + "query": { + "$dynamic": true, + "type": "string", + "title": "The query whose result is persisted." + }, + "viewUserDefinedFunctions": { + "title": "User defined functions that can be used by query. Returns {@code null} if not set.", + "type": "array", + "items": { + "$ref": "#/definitions/io.kestra.plugin.gcp.bigquery.models.UserDefinedFunction" + } + } + } + }, + "io.kestra.plugin.gcp.cli.GCloudCLI": { + "type": "object", + "properties": { + "allowFailure": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "commands": { + "$dynamic": true, + "title": "The commands to run.", + "minItems": 1, + "type": "array", + "items": { + "$dynamic": true, + "type": "string" + } + }, + "containerImage": { + "$dynamic": true, + "type": "string", + "title": "The task runner container image, only used if the task runner is container-based.", + "default": "google/cloud-sdk", + "markdownDescription": "Default value is : `google/cloud-sdk`" + }, + "description": { + "type": "string" + }, + "disabled": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "docker": { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.scripts.exec.scripts.models.DockerOptions" + }, + { + "$deprecated": true, + "$dynamic": false, + "title": "Deprecated, use 'taskRunner' instead" + } + ] + }, + "env": { + "$dynamic": true, + "type": "object", + "title": "Additional environment variables for the current process.", + "additionalProperties": { + "type": "string" + } + }, + "id": { + "type": "string", + "minLength": 1, + "pattern": "^[a-zA-Z0-9][a-zA-Z0-9_-]*" + }, + "inputFiles": { + "$dynamic": true, + "title": "The files to create on the local filesystem. It can be a map or a JSON object.", + "oneOf": [ + { + "type": "object" + }, + { + "type": "string" + } + ] + }, + "logLevel": { + "type": "string", + "enum": ["ERROR", "WARN", "INFO", "DEBUG", "TRACE"] + }, + "namespaceFiles": { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.core.models.tasks.NamespaceFiles" + }, + { + "$dynamic": false, + "title": "Inject namespace files.", + "markdownDescription": "Inject namespace files to this task. When enabled, it will, by default, load all namespace files into the working directory. However, you can use the `include` or `exclude` properties to limit which namespace files will be injected." + } + ] + }, + "outputFiles": { + "$dynamic": true, + "title": "The files from the local filesystem to send to Kestra's internal storage.", + "markdownDescription": "Must be a list of [glob](https://en.wikipedia.org/wiki/Glob_(programming)) expressions relative to the current working directory, some examples: `my-dir/**`, `my-dir/*/**` or `my-dir/my-file.txt`.", + "type": "array", + "items": { + "$dynamic": true, + "type": "string" + } + }, + "projectId": { + "$dynamic": true, + "type": "string", + "title": "The GCP project ID to scope the commands to." + }, + "retry": { + "oneOf": [ + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Constant-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Exponential-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Random-2" + } + ] + }, + "serviceAccount": { + "$dynamic": true, + "type": "string", + "title": "The full service account JSON key to use to authenticate to gcloud." + }, + "taskRunner": { + "oneOf": [ + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.scripts.runner.docker.Docker" + }, + { + "$dynamic": false, + "title": "The task runner to use.", + "markdownDescription": "Task runners are provided by plugins, each have their own properties." + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.runner.Process" + }, + { + "$dynamic": false, + "title": "The task runner to use.", + "markdownDescription": "Task runners are provided by plugins, each have their own properties." + } + ] + } + ] + }, + "timeout": { + "type": "string", + "format": "duration" + }, + "type": { + "const": "io.kestra.plugin.gcp.cli.GCloudCLI" + }, + "workerGroup": { + "$ref": "#/definitions/io.kestra.core.models.tasks.WorkerGroup" + } + }, + "required": ["commands", "id", "type"], + "title": "Execute gcloud commands.", + "markdownDescription": "##### Examples\n\u003E Create a cluster then list them using a service account.\n```yaml\nprojectId: my-gcp-project\nserviceAccount: \"{{ secret('gcp-sa') }}\"\ncommands:\n - gcloud container clusters create simple-cluster --region=europe-west3\n - gcloud container clusters list\n```\n\n\u003E Create a GCS bucket.\n```yaml\nprojectId: my-gcp-project\nserviceAccount: \"{{ secret('gcp-sa') }}\"\ncommands:\n - gcloud storage buckets create gs://my-bucket\n```\n\n\u003E Output the result of a command.\n```yaml\nprojectId: my-gcp-project\nserviceAccount: \"{{ secret('gcp-sa') }}\"\ncommands:\n # Outputs as a flow output for UI display\n - gcloud pubsub topics list --format=json | tr -d '\\n ' | xargs -0 -I {} echo '::{\"outputs\":{\"gcloud\":{}}}::'\n\n # Outputs as a file, preferred way for large payloads\n - gcloud storage ls --json \u003E storage.json\n```" + }, + "io.kestra.plugin.gcp.dataproc.batches.AbstractBatch-ExecutionConfiguration": { + "type": "object", + "properties": { + "kmsKey": { + "$dynamic": true, + "type": "string", + "title": "The Cloud KMS key to use for encryption." + }, + "networkTags": { + "$dynamic": true, + "title": "Tags used for network traffic control.", + "type": "array", + "items": { + "$dynamic": true, + "type": "string" + } + }, + "networkUri": { + "$dynamic": true, + "type": "string", + "title": "Network URI to connect workload to." + }, + "serviceAccountEmail": { + "$dynamic": true, + "type": "string", + "title": "Service account used to execute workload." + }, + "subnetworkUri": { + "$dynamic": true, + "type": "string", + "title": "Subnetwork URI to connect workload to." + } + } + }, + "io.kestra.plugin.gcp.dataproc.batches.AbstractBatch-PeripheralsConfiguration": { + "type": "object", + "properties": { + "metastoreService": { + "$dynamic": true, + "type": "string", + "title": "Resource name of an existing Dataproc Metastore service.", + "markdownDescription": "Example: `projects/[project_id]/locations/[region]/services/[service_id]`" + }, + "sparkHistoryServer": { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.dataproc.batches.AbstractBatch-SparkHistoryServerConfiguration" + }, + { + "$dynamic": true, + "title": "Resource name of an existing Dataproc Metastore service.", + "markdownDescription": "Example: `projects/[project_id]/locations/[region]/services/[service_id]`" + } + ] + } + } + }, + "io.kestra.plugin.gcp.dataproc.batches.AbstractBatch-RuntimeConfiguration": { + "type": "object", + "properties": { + "containerImage": { + "$dynamic": true, + "type": "string", + "title": "Optional custom container image for the job runtime environment.", + "markdownDescription": "If not specified, a default container image will be used." + }, + "properties": { + "$dynamic": true, + "type": "object", + "title": "properties used to configure the workload execution (map of key/value pairs)." + }, + "version": { + "$dynamic": true, + "type": "string", + "title": "Version of the batch runtime." + } + } + }, + "io.kestra.plugin.gcp.dataproc.batches.AbstractBatch-SparkHistoryServerConfiguration": { + "type": "object", + "properties": { + "dataprocCluster": { + "$dynamic": true, + "type": "string", + "title": "Resource name of an existing Dataproc Cluster to act as a Spark History Server for the workload.", + "markdownDescription": "Example: `projects/[project_id]/regions/[region]/clusters/[cluster_name]`" + } + } + }, + "io.kestra.plugin.gcp.dataproc.batches.PySparkSubmit": { + "type": "object", + "properties": { + "allowFailure": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "archiveUris": { + "$dynamic": true, + "title": "HCFS URIs of archives to be extracted into the working director of each executor. Supported file types: `.jar`, `.tar`, `.tar.gz`, `.tgz`, and `.zip`.", + "markdownDescription": "Hadoop Compatible File System (HCFS) URIs should be accessible from the cluster. Can be a GCS file with the gs:// prefix, an HDFS file on the cluster with the hdfs:// prefix, or a local file on the cluster with the file:// prefix", + "type": "array", + "items": { + "$dynamic": true, + "type": "string" + } + }, + "args": { + "$dynamic": true, + "title": "The arguments to pass to the driver.", + "markdownDescription": "Do not include arguments that can be set as batch properties, such as `--conf`, since a collision can occur that causes an incorrect batch submission.", + "type": "array", + "items": { + "$dynamic": true, + "type": "string" + } + }, + "description": { + "type": "string" + }, + "disabled": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "execution": { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.dataproc.batches.AbstractBatch-ExecutionConfiguration" + }, + { + "$dynamic": true, + "title": "Execution configuration for a workload." + } + ] + }, + "fileUris": { + "$dynamic": true, + "title": "HCFS URIs of files to be placed in the working directory of each executor.", + "markdownDescription": "Hadoop Compatible File System (HCFS) URIs should be accessible from the cluster. Can be a GCS file with the gs:// prefix, an HDFS file on the cluster with the hdfs:// prefix, or a local file on the cluster with the file:// prefix", + "type": "array", + "items": { + "$dynamic": true, + "type": "string" + } + }, + "id": { + "type": "string", + "minLength": 1, + "pattern": "^[a-zA-Z0-9][a-zA-Z0-9_-]*" + }, + "jarFileUris": { + "$dynamic": true, + "title": "HCFS URIs of jar files to add to the classpath of the Spark driver and tasks.", + "markdownDescription": "Hadoop Compatible File System (HCFS) URIs should be accessible from the cluster. Can be a GCS file with the gs:// prefix, an HDFS file on the cluster with the hdfs:// prefix, or a local file on the cluster with the file:// prefix", + "type": "array", + "items": { + "$dynamic": true, + "type": "string" + } + }, + "logLevel": { + "type": "string", + "enum": ["ERROR", "WARN", "INFO", "DEBUG", "TRACE"] + }, + "mainPythonFileUri": { + "$dynamic": true, + "type": "string", + "title": "The HCFS URI of the main Python file to use as the Spark driver. Must be a .py file.", + "markdownDescription": "Hadoop Compatible File System (HCFS) URIs should be accessible from the cluster. Can be a GCS file with the gs:// prefix, an HDFS file on the cluster with the hdfs:// prefix, or a local file on the cluster with the file:// prefix" + }, + "name": { + "$dynamic": true, + "type": "string", + "title": "The batch name" + }, + "peripherals": { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.dataproc.batches.AbstractBatch-PeripheralsConfiguration" + }, + { + "$dynamic": true, + "title": "Peripherals configuration for a workload." + } + ] + }, + "projectId": { + "$dynamic": true, + "type": "string", + "title": "The GCP project ID." + }, + "region": { + "$dynamic": true, + "type": "string", + "title": "The region" + }, + "retry": { + "oneOf": [ + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Constant-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Exponential-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Random-2" + } + ] + }, + "runtime": { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.dataproc.batches.AbstractBatch-RuntimeConfiguration" + }, + { + "$dynamic": true, + "title": "Runtime configuration for a workload." + } + ] + }, + "scopes": { + "$dynamic": true, + "title": "The GCP scopes to be used.", + "default": ["https://www.googleapis.com/auth/cloud-platform"], + "markdownDescription": "Default value is : `- https://www.googleapis.com/auth/cloud-platform`\n\nDefault value is : `- https://www.googleapis.com/auth/cloud-platform`", + "type": "array", + "items": { + "$dynamic": true, + "type": "string" + } + }, + "serviceAccount": { + "$dynamic": true, + "type": "string", + "title": "The GCP service account key." + }, + "timeout": { + "type": "string", + "format": "duration" + }, + "type": { + "const": "io.kestra.plugin.gcp.dataproc.batches.PySparkSubmit" + }, + "workerGroup": { + "$ref": "#/definitions/io.kestra.core.models.tasks.WorkerGroup" + } + }, + "required": ["id", "mainPythonFileUri", "name", "region", "type"], + "title": "Submit an [Apache PySpark](https://spark.apache.org/docs/latest/api/python/getting_started/) batch workload.", + "markdownDescription": "##### Examples\n\u003E \n```yaml\nmainPythonFileUri: 'gs://spark-jobs-kestra/pi.py'\nname: test-pyspark\nregion: europe-west3\n```" + }, + "io.kestra.plugin.gcp.dataproc.batches.RSparkSubmit": { + "type": "object", + "properties": { + "allowFailure": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "archiveUris": { + "$dynamic": true, + "title": "HCFS URIs of archives to be extracted into the working director of each executor. Supported file types: `.jar`, `.tar`, `.tar.gz`, `.tgz`, and `.zip`.", + "markdownDescription": "Hadoop Compatible File System (HCFS) URIs should be accessible from the cluster. Can be a GCS file with the gs:// prefix, an HDFS file on the cluster with the hdfs:// prefix, or a local file on the cluster with the file:// prefix", + "type": "array", + "items": { + "$dynamic": true, + "type": "string" + } + }, + "args": { + "$dynamic": true, + "title": "The arguments to pass to the driver.", + "markdownDescription": "Do not include arguments that can be set as batch properties, such as `--conf`, since a collision can occur that causes an incorrect batch submission.", + "type": "array", + "items": { + "$dynamic": true, + "type": "string" + } + }, + "description": { + "type": "string" + }, + "disabled": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "execution": { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.dataproc.batches.AbstractBatch-ExecutionConfiguration" + }, + { + "$dynamic": true, + "title": "Execution configuration for a workload." + } + ] + }, + "fileUris": { + "$dynamic": true, + "title": "HCFS URIs of files to be placed in the working directory of each executor.", + "markdownDescription": "Hadoop Compatible File System (HCFS) URIs should be accessible from the cluster. Can be a GCS file with the gs:// prefix, an HDFS file on the cluster with the hdfs:// prefix, or a local file on the cluster with the file:// prefix", + "type": "array", + "items": { + "$dynamic": true, + "type": "string" + } + }, + "id": { + "type": "string", + "minLength": 1, + "pattern": "^[a-zA-Z0-9][a-zA-Z0-9_-]*" + }, + "jarFileUris": { + "$dynamic": true, + "title": "HCFS URIs of jar files to add to the classpath of the Spark driver and tasks.", + "markdownDescription": "Hadoop Compatible File System (HCFS) URIs should be accessible from the cluster. Can be a GCS file with the gs:// prefix, an HDFS file on the cluster with the hdfs:// prefix, or a local file on the cluster with the file:// prefix", + "type": "array", + "items": { + "$dynamic": true, + "type": "string" + } + }, + "logLevel": { + "type": "string", + "enum": ["ERROR", "WARN", "INFO", "DEBUG", "TRACE"] + }, + "mainRFileUri": { + "$dynamic": true, + "type": "string", + "title": "The HCFS URI of the main R file to use as the driver. Must be a `.R` or `.r` file.", + "markdownDescription": "Hadoop Compatible File System (HCFS) URIs should be accessible from the cluster. Can be a GCS file with the gs:// prefix, an HDFS file on the cluster with the hdfs:// prefix, or a local file on the cluster with the file:// prefix" + }, + "name": { + "$dynamic": true, + "type": "string", + "title": "The batch name" + }, + "peripherals": { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.dataproc.batches.AbstractBatch-PeripheralsConfiguration" + }, + { + "$dynamic": true, + "title": "Peripherals configuration for a workload." + } + ] + }, + "projectId": { + "$dynamic": true, + "type": "string", + "title": "The GCP project ID." + }, + "region": { + "$dynamic": true, + "type": "string", + "title": "The region" + }, + "retry": { + "oneOf": [ + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Constant-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Exponential-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Random-2" + } + ] + }, + "runtime": { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.dataproc.batches.AbstractBatch-RuntimeConfiguration" + }, + { + "$dynamic": true, + "title": "Runtime configuration for a workload." + } + ] + }, + "scopes": { + "$dynamic": true, + "title": "The GCP scopes to be used.", + "default": ["https://www.googleapis.com/auth/cloud-platform"], + "markdownDescription": "Default value is : `- https://www.googleapis.com/auth/cloud-platform`\n\nDefault value is : `- https://www.googleapis.com/auth/cloud-platform`", + "type": "array", + "items": { + "$dynamic": true, + "type": "string" + } + }, + "serviceAccount": { + "$dynamic": true, + "type": "string", + "title": "The GCP service account key." + }, + "timeout": { + "type": "string", + "format": "duration" + }, + "type": { + "const": "io.kestra.plugin.gcp.dataproc.batches.RSparkSubmit" + }, + "workerGroup": { + "$ref": "#/definitions/io.kestra.core.models.tasks.WorkerGroup" + } + }, + "required": ["id", "mainRFileUri", "name", "region", "type"], + "title": "Submit an [Apache SparkR](https://spark.apache.org/docs/latest/sparkr.html) batch workload.", + "markdownDescription": "##### Examples\n\u003E \n```yaml\nmainRFileUri: 'gs://spark-jobs-kestra/dataframe.r'\nname: test-rspark\nregion: europe-west3\n```" + }, + "io.kestra.plugin.gcp.dataproc.batches.SparkSqlSubmit": { + "type": "object", + "properties": { + "allowFailure": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "archiveUris": { + "$dynamic": true, + "title": "HCFS URIs of archives to be extracted into the working director of each executor. Supported file types: `.jar`, `.tar`, `.tar.gz`, `.tgz`, and `.zip`.", + "markdownDescription": "Hadoop Compatible File System (HCFS) URIs should be accessible from the cluster. Can be a GCS file with the gs:// prefix, an HDFS file on the cluster with the hdfs:// prefix, or a local file on the cluster with the file:// prefix", + "type": "array", + "items": { + "$dynamic": true, + "type": "string" + } + }, + "args": { + "$dynamic": true, + "title": "The arguments to pass to the driver.", + "markdownDescription": "Do not include arguments that can be set as batch properties, such as `--conf`, since a collision can occur that causes an incorrect batch submission.", + "type": "array", + "items": { + "$dynamic": true, + "type": "string" + } + }, + "description": { + "type": "string" + }, + "disabled": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "execution": { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.dataproc.batches.AbstractBatch-ExecutionConfiguration" + }, + { + "$dynamic": true, + "title": "Execution configuration for a workload." + } + ] + }, + "fileUris": { + "$dynamic": true, + "title": "HCFS URIs of files to be placed in the working directory of each executor.", + "markdownDescription": "Hadoop Compatible File System (HCFS) URIs should be accessible from the cluster. Can be a GCS file with the gs:// prefix, an HDFS file on the cluster with the hdfs:// prefix, or a local file on the cluster with the file:// prefix", + "type": "array", + "items": { + "$dynamic": true, + "type": "string" + } + }, + "id": { + "type": "string", + "minLength": 1, + "pattern": "^[a-zA-Z0-9][a-zA-Z0-9_-]*" + }, + "jarFileUris": { + "$dynamic": true, + "title": "HCFS URIs of jar files to add to the classpath of the Spark driver and tasks.", + "markdownDescription": "Hadoop Compatible File System (HCFS) URIs should be accessible from the cluster. Can be a GCS file with the gs:// prefix, an HDFS file on the cluster with the hdfs:// prefix, or a local file on the cluster with the file:// prefix", + "type": "array", + "items": { + "$dynamic": true, + "type": "string" + } + }, + "logLevel": { + "type": "string", + "enum": ["ERROR", "WARN", "INFO", "DEBUG", "TRACE"] + }, + "name": { + "$dynamic": true, + "type": "string", + "title": "The batch name" + }, + "peripherals": { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.dataproc.batches.AbstractBatch-PeripheralsConfiguration" + }, + { + "$dynamic": true, + "title": "Peripherals configuration for a workload." + } + ] + }, + "projectId": { + "$dynamic": true, + "type": "string", + "title": "The GCP project ID." + }, + "queryFileUri": { + "$dynamic": true, + "type": "string", + "title": "The HCFS URI of the script that contains Spark SQL queries to execute.", + "markdownDescription": "Hadoop Compatible File System (HCFS) URIs should be accessible from the cluster. Can be a GCS file with the gs:// prefix, an HDFS file on the cluster with the hdfs:// prefix, or a local file on the cluster with the file:// prefix" + }, + "region": { + "$dynamic": true, + "type": "string", + "title": "The region" + }, + "retry": { + "oneOf": [ + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Constant-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Exponential-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Random-2" + } + ] + }, + "runtime": { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.dataproc.batches.AbstractBatch-RuntimeConfiguration" + }, + { + "$dynamic": true, + "title": "Runtime configuration for a workload." + } + ] + }, + "scopes": { + "$dynamic": true, + "title": "The GCP scopes to be used.", + "default": ["https://www.googleapis.com/auth/cloud-platform"], + "markdownDescription": "Default value is : `- https://www.googleapis.com/auth/cloud-platform`\n\nDefault value is : `- https://www.googleapis.com/auth/cloud-platform`", + "type": "array", + "items": { + "$dynamic": true, + "type": "string" + } + }, + "serviceAccount": { + "$dynamic": true, + "type": "string", + "title": "The GCP service account key." + }, + "timeout": { + "type": "string", + "format": "duration" + }, + "type": { + "const": "io.kestra.plugin.gcp.dataproc.batches.SparkSqlSubmit" + }, + "workerGroup": { + "$ref": "#/definitions/io.kestra.core.models.tasks.WorkerGroup" + } + }, + "required": ["id", "name", "queryFileUri", "region", "type"], + "title": "[Apache Spark SQL](https://spark.apache.org/sql/) queries as a batch workload.", + "markdownDescription": "##### Examples\n\u003E \n```yaml\nqueryFileUri: 'gs://spark-jobs-kestra/foobar.py'\nname: test-sparksql\nregion: europe-west3\n```" + }, + "io.kestra.plugin.gcp.dataproc.batches.SparkSubmit": { + "type": "object", + "properties": { + "allowFailure": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "archiveUris": { + "$dynamic": true, + "title": "HCFS URIs of archives to be extracted into the working director of each executor. Supported file types: `.jar`, `.tar`, `.tar.gz`, `.tgz`, and `.zip`.", + "markdownDescription": "Hadoop Compatible File System (HCFS) URIs should be accessible from the cluster. Can be a GCS file with the gs:// prefix, an HDFS file on the cluster with the hdfs:// prefix, or a local file on the cluster with the file:// prefix", + "type": "array", + "items": { + "$dynamic": true, + "type": "string" + } + }, + "args": { + "$dynamic": true, + "title": "The arguments to pass to the driver.", + "markdownDescription": "Do not include arguments that can be set as batch properties, such as `--conf`, since a collision can occur that causes an incorrect batch submission.", + "type": "array", + "items": { + "$dynamic": true, + "type": "string" + } + }, + "description": { + "type": "string" + }, + "disabled": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "execution": { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.dataproc.batches.AbstractBatch-ExecutionConfiguration" + }, + { + "$dynamic": true, + "title": "Execution configuration for a workload." + } + ] + }, + "fileUris": { + "$dynamic": true, + "title": "HCFS URIs of files to be placed in the working directory of each executor.", + "markdownDescription": "Hadoop Compatible File System (HCFS) URIs should be accessible from the cluster. Can be a GCS file with the gs:// prefix, an HDFS file on the cluster with the hdfs:// prefix, or a local file on the cluster with the file:// prefix", + "type": "array", + "items": { + "$dynamic": true, + "type": "string" + } + }, + "id": { + "type": "string", + "minLength": 1, + "pattern": "^[a-zA-Z0-9][a-zA-Z0-9_-]*" + }, + "jarFileUris": { + "$dynamic": true, + "title": "HCFS URIs of jar files to add to the classpath of the Spark driver and tasks.", + "markdownDescription": "Hadoop Compatible File System (HCFS) URIs should be accessible from the cluster. Can be a GCS file with the gs:// prefix, an HDFS file on the cluster with the hdfs:// prefix, or a local file on the cluster with the file:// prefix", + "type": "array", + "items": { + "$dynamic": true, + "type": "string" + } + }, + "logLevel": { + "type": "string", + "enum": ["ERROR", "WARN", "INFO", "DEBUG", "TRACE"] + }, + "mainClass": { + "$dynamic": true, + "type": "string", + "title": "The name of the driver main class.", + "markdownDescription": "The jar file that contains the class must be in the classpath or specified in `jarFileUris`" + }, + "name": { + "$dynamic": true, + "type": "string", + "title": "The batch name" + }, + "peripherals": { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.dataproc.batches.AbstractBatch-PeripheralsConfiguration" + }, + { + "$dynamic": true, + "title": "Peripherals configuration for a workload." + } + ] + }, + "projectId": { + "$dynamic": true, + "type": "string", + "title": "The GCP project ID." + }, + "region": { + "$dynamic": true, + "type": "string", + "title": "The region" + }, + "retry": { + "oneOf": [ + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Constant-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Exponential-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Random-2" + } + ] + }, + "runtime": { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.dataproc.batches.AbstractBatch-RuntimeConfiguration" + }, + { + "$dynamic": true, + "title": "Runtime configuration for a workload." + } + ] + }, + "scopes": { + "$dynamic": true, + "title": "The GCP scopes to be used.", + "default": ["https://www.googleapis.com/auth/cloud-platform"], + "markdownDescription": "Default value is : `- https://www.googleapis.com/auth/cloud-platform`\n\nDefault value is : `- https://www.googleapis.com/auth/cloud-platform`", + "type": "array", + "items": { + "$dynamic": true, + "type": "string" + } + }, + "serviceAccount": { + "$dynamic": true, + "type": "string", + "title": "The GCP service account key." + }, + "timeout": { + "type": "string", + "format": "duration" + }, + "type": { + "const": "io.kestra.plugin.gcp.dataproc.batches.SparkSubmit" + }, + "workerGroup": { + "$ref": "#/definitions/io.kestra.core.models.tasks.WorkerGroup" + } + }, + "required": ["id", "mainClass", "name", "region", "type"], + "title": "Submit an [Apache Spark](https://spark.apache.org/) batch workload.", + "markdownDescription": "##### Examples\n\u003E \n```yaml\njarFileUris: \n - 'gs://spark-jobs-kestra/spark-examples.jar'\nmainClass: org.apache.spark.examples.SparkPi\nargs:\n - 1000\nname: test-spark\nregion: europe-west3\n```" + }, + "io.kestra.plugin.gcp.firestore.Delete": { + "type": "object", + "properties": { + "allowFailure": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "childPath": { + "$dynamic": true, + "type": "string", + "title": "The Firestore document child path.", + "markdownDescription": "The Firestore document child path." + }, + "collection": { + "$dynamic": true, + "type": "string", + "title": "The Firestore collection" + }, + "description": { + "type": "string" + }, + "disabled": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "id": { + "type": "string", + "minLength": 1, + "pattern": "^[a-zA-Z0-9][a-zA-Z0-9_-]*" + }, + "logLevel": { + "type": "string", + "enum": ["ERROR", "WARN", "INFO", "DEBUG", "TRACE"] + }, + "projectId": { + "$dynamic": true, + "type": "string", + "title": "The GCP project ID." + }, + "retry": { + "oneOf": [ + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Constant-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Exponential-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Random-2" + } + ] + }, + "scopes": { + "$dynamic": true, + "title": "The GCP scopes to be used.", + "default": ["https://www.googleapis.com/auth/cloud-platform"], + "markdownDescription": "Default value is : `- https://www.googleapis.com/auth/cloud-platform`\n\nDefault value is : `- https://www.googleapis.com/auth/cloud-platform`", + "type": "array", + "items": { + "$dynamic": true, + "type": "string" + } + }, + "serviceAccount": { + "$dynamic": true, + "type": "string", + "title": "The GCP service account key." + }, + "timeout": { + "type": "string", + "format": "duration" + }, + "type": { + "const": "io.kestra.plugin.gcp.firestore.Delete" + }, + "workerGroup": { + "$ref": "#/definitions/io.kestra.core.models.tasks.WorkerGroup" + } + }, + "required": ["childPath", "id", "type"], + "title": "Delete a document from a collection.", + "markdownDescription": "##### Examples\n\u003E \n```yaml\ncollection: \"persons\"\nchildPath: \"1\"\n```" + }, + "io.kestra.plugin.gcp.firestore.Get": { + "type": "object", + "properties": { + "allowFailure": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "childPath": { + "$dynamic": true, + "type": "string", + "title": "The Firestore document child path." + }, + "collection": { + "$dynamic": true, + "type": "string", + "title": "The Firestore collection" + }, + "description": { + "type": "string" + }, + "disabled": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "id": { + "type": "string", + "minLength": 1, + "pattern": "^[a-zA-Z0-9][a-zA-Z0-9_-]*" + }, + "logLevel": { + "type": "string", + "enum": ["ERROR", "WARN", "INFO", "DEBUG", "TRACE"] + }, + "projectId": { + "$dynamic": true, + "type": "string", + "title": "The GCP project ID." + }, + "retry": { + "oneOf": [ + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Constant-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Exponential-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Random-2" + } + ] + }, + "scopes": { + "$dynamic": true, + "title": "The GCP scopes to be used.", + "default": ["https://www.googleapis.com/auth/cloud-platform"], + "markdownDescription": "Default value is : `- https://www.googleapis.com/auth/cloud-platform`\n\nDefault value is : `- https://www.googleapis.com/auth/cloud-platform`", + "type": "array", + "items": { + "$dynamic": true, + "type": "string" + } + }, + "serviceAccount": { + "$dynamic": true, + "type": "string", + "title": "The GCP service account key." + }, + "timeout": { + "type": "string", + "format": "duration" + }, + "type": { + "const": "io.kestra.plugin.gcp.firestore.Get" + }, + "workerGroup": { + "$ref": "#/definitions/io.kestra.core.models.tasks.WorkerGroup" + } + }, + "required": ["childPath", "id", "type"], + "title": "Get a document from a collection.", + "markdownDescription": "##### Examples\n\u003E Get a document from its path.\n```yaml\ncollection: \"persons\"\nchildPath: \"1\"\n```" + }, + "io.kestra.plugin.gcp.firestore.Query": { + "type": "object", + "properties": { + "allowFailure": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "collection": { + "$dynamic": true, + "type": "string", + "title": "The Firestore collection" + }, + "description": { + "type": "string" + }, + "disabled": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "fetchType": { + "$dynamic": false, + "type": "string", + "enum": ["STORE", "FETCH", "FETCH_ONE", "NONE"], + "title": "The way you want to store the data", + "default": "STORE", + "markdownDescription": "FETCH_ONE output the first row, FETCH output all the rows, STORE store all rows in a file, NONE do nothing.\n\nDefault value is : `STORE`" + }, + "filters": { + "$dynamic": false, + "title": "List of query filters that will be added as a where clause.", + "type": "array", + "items": { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.firestore.Query-Filter" + }, + { + "$dynamic": false + } + ] + } + }, + "id": { + "type": "string", + "minLength": 1, + "pattern": "^[a-zA-Z0-9][a-zA-Z0-9_-]*" + }, + "limit": { + "$dynamic": false, + "type": "integer", + "title": "Maximum numbers of returned results." + }, + "logLevel": { + "type": "string", + "enum": ["ERROR", "WARN", "INFO", "DEBUG", "TRACE"] + }, + "offset": { + "$dynamic": false, + "type": "integer", + "title": "Start offset for pagination of the query results." + }, + "orderBy": { + "$dynamic": false, + "type": "string", + "title": "Field name for the order by clause." + }, + "orderDirection": { + "$dynamic": false, + "type": "string", + "enum": ["ASCENDING", "DESCENDING"], + "title": "Field name for the order by clause.", + "default": "ASCENDING", + "markdownDescription": "Default value is : `ASCENDING`" + }, + "projectId": { + "$dynamic": true, + "type": "string", + "title": "The GCP project ID." + }, + "retry": { + "oneOf": [ + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Constant-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Exponential-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Random-2" + } + ] + }, + "scopes": { + "$dynamic": true, + "title": "The GCP scopes to be used.", + "default": ["https://www.googleapis.com/auth/cloud-platform"], + "markdownDescription": "Default value is : `- https://www.googleapis.com/auth/cloud-platform`\n\nDefault value is : `- https://www.googleapis.com/auth/cloud-platform`", + "type": "array", + "items": { + "$dynamic": true, + "type": "string" + } + }, + "serviceAccount": { + "$dynamic": true, + "type": "string", + "title": "The GCP service account key." + }, + "timeout": { + "type": "string", + "format": "duration" + }, + "type": { + "const": "io.kestra.plugin.gcp.firestore.Query" + }, + "workerGroup": { + "$ref": "#/definitions/io.kestra.core.models.tasks.WorkerGroup" + } + }, + "required": ["id", "type"], + "title": "Query documents of a collection.", + "markdownDescription": "##### Examples\n\u003E \n```yaml\ncollection: \"persons\"\nfilters: \n - field: \"lastname\"\n value: \"Doe\"\n```" + }, + "io.kestra.plugin.gcp.firestore.Query-Filter": { + "type": "object", + "properties": { + "field": { + "$dynamic": false, + "type": "string", + "title": "Field name for the filter." + }, + "operator": { + "$dynamic": false, + "type": "string", + "enum": [ + "EQUAL_TO", + "NOT_EQUAL_TO", + "LESS_THAN", + "LESS_THAN_OR_EQUAL_TO", + "GREATER_THAN", + "GREATER_THAN_OR_EQUAL_TO" + ], + "title": "The operator for the filter, by default EQUAL_TO that will call 'collection.whereEqualTo(name, value)'", + "default": "EQUAL_TO", + "markdownDescription": "Default value is : `EQUAL_TO`" + }, + "value": { + "$dynamic": true, + "type": "string", + "title": "Field value for the filter.", + "markdownDescription": "Field value for the filter. Only strings are supported at the moment." + } + }, + "required": ["field", "value"], + "title": "A filter for the where clause" + }, + "io.kestra.plugin.gcp.firestore.Set": { + "type": "object", + "properties": { + "allowFailure": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "childPath": { + "$dynamic": true, + "type": "string", + "title": "The Firestore document child path." + }, + "collection": { + "$dynamic": true, + "type": "string", + "title": "The Firestore collection" + }, + "description": { + "type": "string" + }, + "disabled": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "document": { + "$dynamic": true, + "title": "The Firestore document.", + "markdownDescription": "Can be a JSON string, or a map.", + "oneOf": [ + { + "type": "string" + }, + { + "type": "object" + } + ] + }, + "id": { + "type": "string", + "minLength": 1, + "pattern": "^[a-zA-Z0-9][a-zA-Z0-9_-]*" + }, + "logLevel": { + "type": "string", + "enum": ["ERROR", "WARN", "INFO", "DEBUG", "TRACE"] + }, + "projectId": { + "$dynamic": true, + "type": "string", + "title": "The GCP project ID." + }, + "retry": { + "oneOf": [ + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Constant-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Exponential-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Random-2" + } + ] + }, + "scopes": { + "$dynamic": true, + "title": "The GCP scopes to be used.", + "default": ["https://www.googleapis.com/auth/cloud-platform"], + "markdownDescription": "Default value is : `- https://www.googleapis.com/auth/cloud-platform`\n\nDefault value is : `- https://www.googleapis.com/auth/cloud-platform`", + "type": "array", + "items": { + "$dynamic": true, + "type": "string" + } + }, + "serviceAccount": { + "$dynamic": true, + "type": "string", + "title": "The GCP service account key." + }, + "timeout": { + "type": "string", + "format": "duration" + }, + "type": { + "const": "io.kestra.plugin.gcp.firestore.Set" + }, + "workerGroup": { + "$ref": "#/definitions/io.kestra.core.models.tasks.WorkerGroup" + } + }, + "required": ["id", "type"], + "title": "Set a document in a collection.", + "markdownDescription": "##### Examples\n\u003E Set a document from a map.\n```yaml\ncollection: \"persons\"\ndocument:\n firstname: \"John\"\n lastname: \"Doe\"\n```\n\n\u003E Set a document from a JSON string.\n```yaml\ncollection: \"persons\"\ndocument: \"{{ outputs.task_id.data | json }}\"\n```" + }, + "io.kestra.plugin.gcp.gcs.Compose": { + "type": "object", + "properties": { + "allowEmpty": { + "$dynamic": false, + "type": "boolean", + "title": "if `true`, don't failed if no result", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "allowFailure": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "description": { + "type": "string" + }, + "disabled": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "id": { + "type": "string", + "minLength": 1, + "pattern": "^[a-zA-Z0-9][a-zA-Z0-9_-]*" + }, + "list": { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.gcs.Compose-List" + }, + { + "$dynamic": true, + "title": "The directory to list" + } + ] + }, + "logLevel": { + "type": "string", + "enum": ["ERROR", "WARN", "INFO", "DEBUG", "TRACE"] + }, + "projectId": { + "$dynamic": true, + "type": "string", + "title": "The GCP project ID." + }, + "retry": { + "oneOf": [ + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Constant-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Exponential-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Random-2" + } + ] + }, + "scopes": { + "$dynamic": true, + "title": "The GCP scopes to be used.", + "default": ["https://www.googleapis.com/auth/cloud-platform"], + "markdownDescription": "Default value is : `- https://www.googleapis.com/auth/cloud-platform`\n\nDefault value is : `- https://www.googleapis.com/auth/cloud-platform`", + "type": "array", + "items": { + "$dynamic": true, + "type": "string" + } + }, + "serviceAccount": { + "$dynamic": true, + "type": "string", + "title": "The GCP service account key." + }, + "timeout": { + "type": "string", + "format": "duration" + }, + "to": { + "$dynamic": true, + "type": "string", + "title": "The destination path" + }, + "type": { + "const": "io.kestra.plugin.gcp.gcs.Compose" + }, + "workerGroup": { + "$ref": "#/definitions/io.kestra.core.models.tasks.WorkerGroup" + } + }, + "required": ["id", "list", "type"], + "title": "List file on a GCS bucket.", + "markdownDescription": "##### Examples\n\u003E Concat files in a bucket\n```yaml\nlist: \n from: \"gs://my_bucket/dir/\"\nto: \"gs://my_bucket/destination/my-compose-file.txt\"\n```" + }, + "io.kestra.plugin.gcp.gcs.Compose-List": { + "type": "object", + "properties": { + "filter": { + "type": "string", + "enum": ["FILES", "DIRECTORY", "BOTH"], + "default": "BOTH", + "markdownDescription": "Default value is : `BOTH`" + }, + "from": { + "$dynamic": true, + "type": "string", + "title": "The directory to list" + }, + "listingType": { + "$dynamic": false, + "type": "string", + "enum": ["RECURSIVE", "DIRECTORY"], + "title": "The listing type you want (like directory or recursive)", + "default": "DIRECTORY", + "markdownDescription": "if DIRECTORY, will only list objects in the specified directory\nif RECURSIVE, will list objects in the specified directory recursively\nDefault value is DIRECTORY\nWhen using RECURSIVE value, be careful to move your files to a location not in the `from` scope\n\nDefault value is : `DIRECTORY`" + }, + "regExp": { + "$dynamic": true, + "type": "string", + "title": "A regexp to filter on full path", + "markdownDescription": "ex:\n`regExp: .*` to match all files\n`regExp: .*2020-01-0.\\\\.csv` to match files between 01 and 09 of january ending with `.csv`" + } + }, + "required": ["from"] + }, + "io.kestra.plugin.gcp.gcs.Copy": { + "type": "object", + "properties": { + "allowFailure": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "delete": { + "type": "boolean", + "title": "Whether to delete the source files (from parameter) on success copy", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "description": { + "type": "string" + }, + "disabled": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "from": { + "$dynamic": true, + "type": "string", + "title": "The file to copy" + }, + "id": { + "type": "string", + "minLength": 1, + "pattern": "^[a-zA-Z0-9][a-zA-Z0-9_-]*" + }, + "logLevel": { + "type": "string", + "enum": ["ERROR", "WARN", "INFO", "DEBUG", "TRACE"] + }, + "projectId": { + "$dynamic": true, + "type": "string", + "title": "The GCP project ID." + }, + "retry": { + "oneOf": [ + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Constant-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Exponential-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Random-2" + } + ] + }, + "scopes": { + "$dynamic": true, + "title": "The GCP scopes to be used.", + "default": ["https://www.googleapis.com/auth/cloud-platform"], + "markdownDescription": "Default value is : `- https://www.googleapis.com/auth/cloud-platform`\n\nDefault value is : `- https://www.googleapis.com/auth/cloud-platform`", + "type": "array", + "items": { + "$dynamic": true, + "type": "string" + } + }, + "serviceAccount": { + "$dynamic": true, + "type": "string", + "title": "The GCP service account key." + }, + "timeout": { + "type": "string", + "format": "duration" + }, + "to": { + "$dynamic": true, + "type": "string", + "title": "The destination path" + }, + "type": { + "const": "io.kestra.plugin.gcp.gcs.Copy" + }, + "workerGroup": { + "$ref": "#/definitions/io.kestra.core.models.tasks.WorkerGroup" + } + }, + "required": ["id", "type"], + "title": "Copy a file between bucket", + "markdownDescription": "Copy the file between Internal Storage or Google Cloud Storage file##### Examples\n\u003E Move a file between bucket path\n```yaml\nfrom: \"{{ inputs.file }}\"\ndelete: true\n```" + }, + "io.kestra.plugin.gcp.gcs.CreateBucket": { + "type": "object", + "properties": { + "acl": { + "title": "The bucket's access control configuration", + "markdownDescription": " See \u003Ca href=\"https://cloud.google.com/storage/docs/access-control#About-Access-Control-Lists\"\u003EAbout Access Control Lists\u003C/a\u003E", + "type": "array", + "items": { + "$ref": "#/definitions/io.kestra.plugin.gcp.gcs.models.AccessControl" + } + }, + "allowFailure": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "cors": { + "title": "The bucket's Cross-Origin Resource Sharing (CORS) configuration", + "markdownDescription": " See \u003Ca href=\"https://cloud.google.com/storage/docs/cross-origin\"\u003ECross-Origin ResourceSharing (CORS)\u003C/a\u003E", + "type": "array", + "items": { + "$ref": "#/definitions/io.kestra.plugin.gcp.gcs.models.Cors" + } + }, + "defaultAcl": { + "title": "The default access control configuration", + "markdownDescription": "The access control configuration to apply to bucket's blobs when no other configuration is specified.\n See \u003Ca href=\"https://cloud.google.com/storage/docs/access-control#About-Access-Control-Lists\"\u003EAbout Access Control Lists\u003C/a\u003E", + "type": "array", + "items": { + "$ref": "#/definitions/io.kestra.plugin.gcp.gcs.models.AccessControl" + } + }, + "defaultEventBasedHold": { + "type": "boolean", + "title": "The default event-based hold for this bucket" + }, + "defaultKmsKeyName": { + "type": "string", + "title": "The default Cloud KMS key name for this bucket" + }, + "description": { + "type": "string" + }, + "disabled": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "iamConfiguration": { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.gcs.models.IamConfiguration" + }, + { + "title": "The Bucket's IAM Configuration", + "markdownDescription": " See \u003Ca href=\"https://cloud.google.com/storage/docs/uniform-bucket-level-access\"\u003Euniform bucket-level access\u003C/a\u003E" + } + ] + }, + "id": { + "type": "string", + "minLength": 1, + "pattern": "^[a-zA-Z0-9][a-zA-Z0-9_-]*" + }, + "ifExists": { + "type": "string", + "enum": ["ERROR", "UPDATE", "SKIP"], + "title": "Policy to apply if a bucket already exists.", + "default": "ERROR", + "markdownDescription": "Default value is : `ERROR`" + }, + "indexPage": { + "type": "string", + "title": "The bucket's website index page", + "markdownDescription": "Behaves as the bucket's directory index where missing blobs are treated as potential directories." + }, + "labels": { + "$dynamic": true, + "type": "object", + "title": "The labels of this bucket" + }, + "lifecycleRules": { + "title": "The bucket's lifecycle configuration", + "markdownDescription": "This configuration is expressed as a number of lifecycle rules, consisting of an action and a condition. \n See \u003Ca href=\"https://cloud.google.com/storage/docs/lifecycle\"\u003EObject Lifecycle Management \u003C/a\u003E \n Only the age condition is supported. Only the delete and SetStorageClass actions are supported", + "type": "array", + "items": { + "$ref": "#/definitions/io.kestra.plugin.gcp.gcs.models.BucketLifecycleRule" + } + }, + "location": { + "$dynamic": true, + "type": "string", + "title": "The bucket's location", + "markdownDescription": "Data for blobs in the bucket resides in physical storage within this region. A list of supported values is available \u003Ca href=\"https://cloud.google.com/storage/docs/bucket-locations\"\u003Ehere\u003C/a\u003E." + }, + "logLevel": { + "type": "string", + "enum": ["ERROR", "WARN", "INFO", "DEBUG", "TRACE"] + }, + "logging": { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.gcs.models.Logging" + }, + { + "title": "The bucket's logging configuration", + "markdownDescription": "This configuration defines the destination bucket and optional name prefix for the current bucket's logs." + } + ] + }, + "name": { + "$dynamic": true, + "type": "string", + "title": "Bucket's unique name" + }, + "notFoundPage": { + "type": "string", + "title": "The custom object to return when a requested resource is not found" + }, + "projectId": { + "$dynamic": true, + "type": "string", + "title": "The GCP project ID." + }, + "requesterPays": { + "type": "boolean", + "title": "Whether the requester pays or not.", + "markdownDescription": "Whether a user accessing the bucket or an object it contains should assume the transit costs related to the access." + }, + "retentionPeriod": { + "type": "integer", + "title": "Retention period", + "markdownDescription": "If policy is not locked this value can be cleared, increased, and decreased. If policy is locked the retention period can only be increased." + }, + "retry": { + "oneOf": [ + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Constant-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Exponential-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Random-2" + } + ] + }, + "scopes": { + "$dynamic": true, + "title": "The GCP scopes to be used.", + "default": ["https://www.googleapis.com/auth/cloud-platform"], + "markdownDescription": "Default value is : `- https://www.googleapis.com/auth/cloud-platform`\n\nDefault value is : `- https://www.googleapis.com/auth/cloud-platform`", + "type": "array", + "items": { + "$dynamic": true, + "type": "string" + } + }, + "serviceAccount": { + "$dynamic": true, + "type": "string", + "title": "The GCP service account key." + }, + "storageClass": { + "type": "string", + "enum": [ + "REGIONAL", + "MULTI_REGIONAL", + "NEARLINE", + "COLDLINE", + "STANDARD", + "ARCHIVE", + "DURABLE_REDUCED_AVAILABILITY" + ], + "title": "The bucket's storage class", + "markdownDescription": "This defines how blobs in the bucket are stored and determines the SLA and the cost of storage. A list of supported values is available \u003Ca href=\"https://cloud.google.com/storage/docs/storage-classes\"\u003Ehere\u003C/a\u003E." + }, + "timeout": { + "type": "string", + "format": "duration" + }, + "type": { + "const": "io.kestra.plugin.gcp.gcs.CreateBucket" + }, + "versioningEnabled": { + "type": "boolean", + "title": "Whether versioning should be enabled for this bucket", + "markdownDescription": "When set to true, versioning is fully enabled." + }, + "workerGroup": { + "$ref": "#/definitions/io.kestra.core.models.tasks.WorkerGroup" + } + }, + "required": ["id", "name", "type"], + "title": "Create a bucket or update if it already exists.", + "markdownDescription": "##### Examples\n\u003E Create a new bucket with some options\n```yaml\nname: \"my-bucket\"\nversioningEnabled: true\nlabels: \n my-label: my-value\n```" + }, + "io.kestra.plugin.gcp.gcs.CreateBucketIamPolicy": { + "type": "object", + "properties": { + "allowFailure": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "description": { + "type": "string" + }, + "disabled": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "id": { + "type": "string", + "minLength": 1, + "pattern": "^[a-zA-Z0-9][a-zA-Z0-9_-]*" + }, + "ifExists": { + "type": "string", + "enum": ["ERROR", "SKIP"], + "title": "Policy to apply if a policy already exists.", + "default": "SKIP", + "markdownDescription": "Default value is : `SKIP`" + }, + "logLevel": { + "type": "string", + "enum": ["ERROR", "WARN", "INFO", "DEBUG", "TRACE"] + }, + "member": { + "$dynamic": true, + "type": "string", + "title": "Bucket's unique name" + }, + "name": { + "$dynamic": true, + "type": "string", + "title": "Bucket's unique name" + }, + "projectId": { + "$dynamic": true, + "type": "string", + "title": "The GCP project ID." + }, + "retry": { + "oneOf": [ + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Constant-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Exponential-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Random-2" + } + ] + }, + "role": { + "$dynamic": true, + "type": "string", + "title": "Bucket's unique name" + }, + "scopes": { + "$dynamic": true, + "title": "The GCP scopes to be used.", + "default": ["https://www.googleapis.com/auth/cloud-platform"], + "markdownDescription": "Default value is : `- https://www.googleapis.com/auth/cloud-platform`\n\nDefault value is : `- https://www.googleapis.com/auth/cloud-platform`", + "type": "array", + "items": { + "$dynamic": true, + "type": "string" + } + }, + "serviceAccount": { + "$dynamic": true, + "type": "string", + "title": "The GCP service account key." + }, + "timeout": { + "type": "string", + "format": "duration" + }, + "type": { + "const": "io.kestra.plugin.gcp.gcs.CreateBucketIamPolicy" + }, + "workerGroup": { + "$ref": "#/definitions/io.kestra.core.models.tasks.WorkerGroup" + } + }, + "required": ["id", "member", "name", "role", "type"], + "title": "Add role on an existing bucket.", + "markdownDescription": "##### Examples\n\u003E Add role to a service account on a bucket\n```yaml\nname: \"my-bucket\"\nmember: \"sa@project.iam.gserviceaccount.com\"\nrole: \"roles/storage.admin\"\n```" + }, + "io.kestra.plugin.gcp.gcs.Delete": { + "type": "object", + "properties": { + "allowFailure": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "description": { + "type": "string" + }, + "disabled": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "errorOnMissing": { + "$dynamic": false, + "type": "boolean", + "title": "Raise an error if the file is not found", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "id": { + "type": "string", + "minLength": 1, + "pattern": "^[a-zA-Z0-9][a-zA-Z0-9_-]*" + }, + "logLevel": { + "type": "string", + "enum": ["ERROR", "WARN", "INFO", "DEBUG", "TRACE"] + }, + "projectId": { + "$dynamic": true, + "type": "string", + "title": "The GCP project ID." + }, + "retry": { + "oneOf": [ + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Constant-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Exponential-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Random-2" + } + ] + }, + "scopes": { + "$dynamic": true, + "title": "The GCP scopes to be used.", + "default": ["https://www.googleapis.com/auth/cloud-platform"], + "markdownDescription": "Default value is : `- https://www.googleapis.com/auth/cloud-platform`\n\nDefault value is : `- https://www.googleapis.com/auth/cloud-platform`", + "type": "array", + "items": { + "$dynamic": true, + "type": "string" + } + }, + "serviceAccount": { + "$dynamic": true, + "type": "string", + "title": "The GCP service account key." + }, + "timeout": { + "type": "string", + "format": "duration" + }, + "type": { + "const": "io.kestra.plugin.gcp.gcs.Delete" + }, + "uri": { + "$dynamic": true, + "type": "string", + "title": "The file to delete" + }, + "workerGroup": { + "$ref": "#/definitions/io.kestra.core.models.tasks.WorkerGroup" + } + }, + "required": ["id", "type"], + "title": "Delete a file to a GCS bucket.", + "markdownDescription": "##### Examples\n\u003E \n```yaml\nuri: \"gs://my_bucket/dir/file.csv\"\n```" + }, + "io.kestra.plugin.gcp.gcs.DeleteBucket": { + "type": "object", + "properties": { + "allowFailure": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "description": { + "type": "string" + }, + "disabled": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "id": { + "type": "string", + "minLength": 1, + "pattern": "^[a-zA-Z0-9][a-zA-Z0-9_-]*" + }, + "logLevel": { + "type": "string", + "enum": ["ERROR", "WARN", "INFO", "DEBUG", "TRACE"] + }, + "name": { + "$dynamic": true, + "type": "string", + "title": "Bucket's unique name" + }, + "projectId": { + "$dynamic": true, + "type": "string", + "title": "The GCP project ID." + }, + "retry": { + "oneOf": [ + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Constant-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Exponential-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Random-2" + } + ] + }, + "scopes": { + "$dynamic": true, + "title": "The GCP scopes to be used.", + "default": ["https://www.googleapis.com/auth/cloud-platform"], + "markdownDescription": "Default value is : `- https://www.googleapis.com/auth/cloud-platform`\n\nDefault value is : `- https://www.googleapis.com/auth/cloud-platform`", + "type": "array", + "items": { + "$dynamic": true, + "type": "string" + } + }, + "serviceAccount": { + "$dynamic": true, + "type": "string", + "title": "The GCP service account key." + }, + "timeout": { + "type": "string", + "format": "duration" + }, + "type": { + "const": "io.kestra.plugin.gcp.gcs.DeleteBucket" + }, + "workerGroup": { + "$ref": "#/definitions/io.kestra.core.models.tasks.WorkerGroup" + } + }, + "required": ["id", "name", "type"], + "title": "Delete a bucket.", + "markdownDescription": "##### Examples\n\u003E Delete a bucket\n```yaml\nname: \"my-bucket\"\n```" + }, + "io.kestra.plugin.gcp.gcs.DeleteList": { + "type": "object", + "properties": { + "allVersions": { + "$dynamic": true, + "type": "boolean", + "title": "If set to `true`, lists all versions of a blob. The default is `false`." + }, + "allowFailure": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "concurrent": { + "$dynamic": false, + "type": "integer", + "title": "Number of concurrent parallel deletions", + "minimum": 2 + }, + "description": { + "type": "string" + }, + "disabled": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "errorOnEmpty": { + "$dynamic": true, + "type": "boolean", + "title": "raise an error if the file is not found", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "from": { + "$dynamic": true, + "type": "string", + "title": "The directory to list" + }, + "id": { + "type": "string", + "minLength": 1, + "pattern": "^[a-zA-Z0-9][a-zA-Z0-9_-]*" + }, + "listingType": { + "$dynamic": false, + "type": "string", + "enum": ["RECURSIVE", "DIRECTORY"], + "title": "The listing type you want (like directory or recursive)", + "default": "DIRECTORY", + "markdownDescription": "if DIRECTORY, will only list objects in the specified directory\nif RECURSIVE, will list objects in the specified directory recursively\nDefault value is DIRECTORY\nWhen using RECURSIVE value, be careful to move your files to a location not in the `from` scope\n\nDefault value is : `DIRECTORY`" + }, + "logLevel": { + "type": "string", + "enum": ["ERROR", "WARN", "INFO", "DEBUG", "TRACE"] + }, + "projectId": { + "$dynamic": true, + "type": "string", + "title": "The GCP project ID." + }, + "regExp": { + "$dynamic": true, + "type": "string", + "title": "A regexp to filter on full path", + "markdownDescription": "ex:\n`regExp: .*` to match all files\n`regExp: .*2020-01-0.\\\\.csv` to match files between 01 and 09 of january ending with `.csv`" + }, + "retry": { + "oneOf": [ + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Constant-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Exponential-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Random-2" + } + ] + }, + "scopes": { + "$dynamic": true, + "title": "The GCP scopes to be used.", + "default": ["https://www.googleapis.com/auth/cloud-platform"], + "markdownDescription": "Default value is : `- https://www.googleapis.com/auth/cloud-platform`\n\nDefault value is : `- https://www.googleapis.com/auth/cloud-platform`", + "type": "array", + "items": { + "$dynamic": true, + "type": "string" + } + }, + "serviceAccount": { + "$dynamic": true, + "type": "string", + "title": "The GCP service account key." + }, + "timeout": { + "type": "string", + "format": "duration" + }, + "type": { + "const": "io.kestra.plugin.gcp.gcs.DeleteList" + }, + "workerGroup": { + "$ref": "#/definitions/io.kestra.core.models.tasks.WorkerGroup" + } + }, + "required": ["from", "id", "type"], + "title": "Delete all file to a GCS bucket.", + "markdownDescription": "##### Examples\n\u003E \n```yaml\nfrom: \"gs://my_bucket/dir/\"\n```" + }, + "io.kestra.plugin.gcp.gcs.Download": { + "type": "object", + "properties": { + "allowFailure": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "description": { + "type": "string" + }, + "disabled": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "from": { + "$dynamic": true, + "type": "string", + "title": "The file to copy" + }, + "id": { + "type": "string", + "minLength": 1, + "pattern": "^[a-zA-Z0-9][a-zA-Z0-9_-]*" + }, + "logLevel": { + "type": "string", + "enum": ["ERROR", "WARN", "INFO", "DEBUG", "TRACE"] + }, + "projectId": { + "$dynamic": true, + "type": "string", + "title": "The GCP project ID." + }, + "retry": { + "oneOf": [ + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Constant-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Exponential-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Random-2" + } + ] + }, + "scopes": { + "$dynamic": true, + "title": "The GCP scopes to be used.", + "default": ["https://www.googleapis.com/auth/cloud-platform"], + "markdownDescription": "Default value is : `- https://www.googleapis.com/auth/cloud-platform`\n\nDefault value is : `- https://www.googleapis.com/auth/cloud-platform`", + "type": "array", + "items": { + "$dynamic": true, + "type": "string" + } + }, + "serviceAccount": { + "$dynamic": true, + "type": "string", + "title": "The GCP service account key." + }, + "timeout": { + "type": "string", + "format": "duration" + }, + "type": { + "const": "io.kestra.plugin.gcp.gcs.Download" + }, + "workerGroup": { + "$ref": "#/definitions/io.kestra.core.models.tasks.WorkerGroup" + } + }, + "required": ["id", "type"], + "title": "Download a file from a GCS bucket.", + "markdownDescription": "##### Examples\n\u003E \n```yaml\nfrom: \"gs://my_bucket/dir/file.csv\"\n```" + }, + "io.kestra.plugin.gcp.gcs.Downloads": { + "type": "object", + "properties": { + "action": { + "$dynamic": true, + "type": "string", + "enum": ["MOVE", "DELETE", "NONE"], + "title": "The action to perform on the retrieved files. If using 'NONE' make sure to handle the files inside your flow to avoid infinite triggering." + }, + "allVersions": { + "$dynamic": true, + "type": "boolean", + "title": "If set to `true`, lists all versions of a blob. The default is `false`." + }, + "allowFailure": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "description": { + "type": "string" + }, + "disabled": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "from": { + "$dynamic": true, + "type": "string", + "title": "The directory to list" + }, + "id": { + "type": "string", + "minLength": 1, + "pattern": "^[a-zA-Z0-9][a-zA-Z0-9_-]*" + }, + "listingType": { + "$dynamic": false, + "type": "string", + "enum": ["RECURSIVE", "DIRECTORY"], + "title": "The listing type you want (like directory or recursive)", + "default": "DIRECTORY", + "markdownDescription": "if DIRECTORY, will only list objects in the specified directory\nif RECURSIVE, will list objects in the specified directory recursively\nDefault value is DIRECTORY\nWhen using RECURSIVE value, be careful to move your files to a location not in the `from` scope\n\nDefault value is : `DIRECTORY`" + }, + "logLevel": { + "type": "string", + "enum": ["ERROR", "WARN", "INFO", "DEBUG", "TRACE"] + }, + "moveDirectory": { + "$dynamic": true, + "type": "string", + "title": "The destination directory for `MOVE` action." + }, + "projectId": { + "$dynamic": true, + "type": "string", + "title": "The GCP project ID." + }, + "regExp": { + "$dynamic": true, + "type": "string", + "title": "A regexp to filter on full path", + "markdownDescription": "ex:\n`regExp: .*` to match all files\n`regExp: .*2020-01-0.\\\\.csv` to match files between 01 and 09 of january ending with `.csv`" + }, + "retry": { + "oneOf": [ + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Constant-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Exponential-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Random-2" + } + ] + }, + "scopes": { + "$dynamic": true, + "title": "The GCP scopes to be used.", + "default": ["https://www.googleapis.com/auth/cloud-platform"], + "markdownDescription": "Default value is : `- https://www.googleapis.com/auth/cloud-platform`\n\nDefault value is : `- https://www.googleapis.com/auth/cloud-platform`", + "type": "array", + "items": { + "$dynamic": true, + "type": "string" + } + }, + "serviceAccount": { + "$dynamic": true, + "type": "string", + "title": "The GCP service account key." + }, + "timeout": { + "type": "string", + "format": "duration" + }, + "type": { + "const": "io.kestra.plugin.gcp.gcs.Downloads" + }, + "workerGroup": { + "$ref": "#/definitions/io.kestra.core.models.tasks.WorkerGroup" + } + }, + "required": ["action", "from", "id", "type"], + "title": "Download multiple files from a GCS bucket.", + "markdownDescription": "##### Examples\n\u003E Download a list of files and move it to an archive folders\n```yaml\nfrom: gs://my-bucket/kestra/files/\naction: MOVE\nmoveDirectory: gs://my-bucket/kestra/archive/\n```" + }, + "io.kestra.plugin.gcp.gcs.List": { + "type": "object", + "properties": { + "allVersions": { + "$dynamic": true, + "type": "boolean", + "title": "If set to `true`, lists all versions of a blob. The default is `false`." + }, + "allowFailure": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "description": { + "type": "string" + }, + "disabled": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "filter": { + "$dynamic": false, + "type": "string", + "enum": ["FILES", "DIRECTORY", "BOTH"], + "title": "The filter files or directory", + "default": "BOTH", + "markdownDescription": "Default value is : `BOTH`" + }, + "from": { + "$dynamic": true, + "type": "string", + "title": "The directory to list" + }, + "id": { + "type": "string", + "minLength": 1, + "pattern": "^[a-zA-Z0-9][a-zA-Z0-9_-]*" + }, + "listingType": { + "$dynamic": false, + "type": "string", + "enum": ["RECURSIVE", "DIRECTORY"], + "title": "The listing type you want (like directory or recursive)", + "default": "DIRECTORY", + "markdownDescription": "if DIRECTORY, will only list objects in the specified directory\nif RECURSIVE, will list objects in the specified directory recursively\nDefault value is DIRECTORY\nWhen using RECURSIVE value, be careful to move your files to a location not in the `from` scope\n\nDefault value is : `DIRECTORY`" + }, + "logLevel": { + "type": "string", + "enum": ["ERROR", "WARN", "INFO", "DEBUG", "TRACE"] + }, + "projectId": { + "$dynamic": true, + "type": "string", + "title": "The GCP project ID." + }, + "regExp": { + "$dynamic": true, + "type": "string", + "title": "A regexp to filter on full path", + "markdownDescription": "ex:\n`regExp: .*` to match all files\n`regExp: .*2020-01-0.\\\\.csv` to match files between 01 and 09 of january ending with `.csv`" + }, + "retry": { + "oneOf": [ + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Constant-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Exponential-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Random-2" + } + ] + }, + "scopes": { + "$dynamic": true, + "title": "The GCP scopes to be used.", + "default": ["https://www.googleapis.com/auth/cloud-platform"], + "markdownDescription": "Default value is : `- https://www.googleapis.com/auth/cloud-platform`\n\nDefault value is : `- https://www.googleapis.com/auth/cloud-platform`", + "type": "array", + "items": { + "$dynamic": true, + "type": "string" + } + }, + "serviceAccount": { + "$dynamic": true, + "type": "string", + "title": "The GCP service account key." + }, + "timeout": { + "type": "string", + "format": "duration" + }, + "type": { + "const": "io.kestra.plugin.gcp.gcs.List" + }, + "workerGroup": { + "$ref": "#/definitions/io.kestra.core.models.tasks.WorkerGroup" + } + }, + "required": ["from", "id", "type"], + "title": "List file on a GCS bucket.", + "markdownDescription": "##### Examples\n\u003E List files in a bucket\n```yaml\nfrom: \"gs://my_bucket/dir/\"\n```" + }, + "io.kestra.plugin.gcp.gcs.Trigger": { + "type": "object", + "properties": { + "action": { + "$dynamic": true, + "type": "string", + "enum": ["MOVE", "DELETE", "NONE"], + "title": "The action to perform on the retrieved files. If using 'NONE' make sure to handle the files inside your flow to avoid infinite triggering." + }, + "conditions": { + "$dynamic": false, + "title": "List of conditions in order to limit the flow trigger.", + "type": "array", + "items": { + "oneOf": [ + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.DateTimeBetweenCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.DayWeekCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.DayWeekInMonthCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.ExecutionFlowCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.ExecutionLabelsCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.ExecutionNamespaceCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.ExecutionOutputsCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.ExecutionStatusCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.ExpressionCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.FlowCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.FlowNamespaceCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.HasRetryAttemptCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.MultipleCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.NotCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.OrCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.PublicHolidayCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.TimeBetweenCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.WeekendCondition" + }, + { + "$dynamic": false + } + ] + } + ] + } + }, + "description": { + "type": "string" + }, + "disabled": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "from": { + "$dynamic": true, + "type": "string", + "title": "The directory to list" + }, + "id": { + "type": "string", + "title": "A unique ID for the whole flow.", + "minLength": 1, + "pattern": "^[a-zA-Z0-9][a-zA-Z0-9_-]*" + }, + "interval": { + "$dynamic": false, + "type": "string", + "format": "duration", + "title": "Interval between polling.", + "default": 60, + "markdownDescription": "The interval between 2 different polls of schedule, this can avoid to overload the remote system with too many calls. For most of the triggers that depend on external systems, a minimal interval must be at least PT30S.\nSee [ISO_8601 Durations](https://en.wikipedia.org/wiki/ISO_8601#Durations) for more information of available interval values.\n\nDefault value is : `60.000000000`" + }, + "labels": { + "title": "The labels to pass to the execution created.", + "type": "array", + "items": { + "$ref": "#/definitions/io.kestra.core.models.Label" + } + }, + "listingType": { + "$dynamic": false, + "type": "string", + "enum": ["RECURSIVE", "DIRECTORY"], + "title": "The listing type you want (like directory or recursive)", + "default": "DIRECTORY", + "markdownDescription": "if DIRECTORY, will only list objects in the specified directory\nif RECURSIVE, will list objects in the specified directory recursively\nDefault value is DIRECTORY\nWhen using RECURSIVE value, be careful to move your files to a location not in the `from` scope\n\nDefault value is : `DIRECTORY`" + }, + "logLevel": { + "type": "string", + "enum": ["ERROR", "WARN", "INFO", "DEBUG", "TRACE"] + }, + "moveDirectory": { + "$dynamic": true, + "type": "string", + "title": "The destination directory for `MOVE` action." + }, + "projectId": { + "$dynamic": true, + "type": "string", + "title": "The GCP project ID." + }, + "regExp": { + "$dynamic": true, + "type": "string", + "title": "A regexp to filter on full path", + "markdownDescription": "ex:\n`regExp: .*` to match all files\n`regExp: .*2020-01-0.\\\\.csv` to match files between 01 and 09 of january ending with `.csv`" + }, + "scopes": { + "$dynamic": true, + "title": "The GCP scopes to be used.", + "default": ["https://www.googleapis.com/auth/cloud-platform"], + "markdownDescription": "Default value is : `- https://www.googleapis.com/auth/cloud-platform`\n\nDefault value is : `- https://www.googleapis.com/auth/cloud-platform`", + "type": "array", + "items": { + "$dynamic": true, + "type": "string" + } + }, + "serviceAccount": { + "$dynamic": true, + "type": "string", + "title": "The GCP service account key." + }, + "stopAfter": { + "$dynamic": false, + "title": "List of execution states after which a trigger should be stopped (a.k.a. disabled).", + "type": "array", + "items": { + "$dynamic": false, + "type": "string", + "enum": [ + "CREATED", + "RUNNING", + "PAUSED", + "RESTARTED", + "KILLING", + "SUCCESS", + "WARNING", + "FAILED", + "KILLED", + "CANCELLED", + "QUEUED", + "RETRYING", + "RETRIED" + ] + } + }, + "type": { + "const": "io.kestra.plugin.gcp.gcs.Trigger" + }, + "workerGroup": { + "$ref": "#/definitions/io.kestra.core.models.tasks.WorkerGroup" + } + }, + "required": ["action", "from", "id", "type"], + "title": "Wait for files on Google Cloud Storage.", + "markdownDescription": "This trigger will poll every `interval` a GCS bucket. You can search for all files in a bucket or directory in `from` or you can filter the files with a `regExp`.The detection is atomic, internally we do a list and interact only with files listed.\nOnce a file is detected, we download the file on internal storage and processed with declared `action` in order to move or delete the files from the bucket (to avoid double detection on new poll).##### Examples\n\u003E Wait for a list of files on a GCS bucket, and iterate through the files.\n```yaml\nid: gcs-listen\nnamespace: company.team\n\ntasks:\n - id: each\n type: io.kestra.plugin.core.flow.EachSequential\n tasks:\n - id: return\n type: io.kestra.plugin.core.debug.Return\n format: \"{{ taskrun.value }}\"\n value: \"{{ trigger.blobs | jq('.[].uri') }}\"\n\ntriggers:\n - id: watch\n type: io.kestra.plugin.gcp.gcs.Trigger\n interval: \"PT5M\"\n from: gs://my-bucket/kestra/listen/\n action: MOVE\n moveDirectory: gs://my-bucket/kestra/archive/\n```\n\n\u003E Wait for a list of files on a GCS bucket and iterate through the files. Delete files manually after processing to prevent infinite triggering.\n```yaml\nid: gcs-listen\nnamespace: company.team\n\ntasks:\n - id: each\n type: io.kestra.plugin.core.flow.EachSequential\n tasks:\n - id: return\n type: io.kestra.plugin.core.debug.Return\n format: \"{{ taskrun.value }}\"\n - id: delete\n type: io.kestra.plugin.gcp.gcs.Delete\n uri: \"{{ taskrun.value }}\"\n value: \"{{ trigger.blobs | jq('.[].uri') }}\"\n\ntriggers:\n - id: watch\n type: io.kestra.plugin.gcp.gcs.Trigger\n interval: \"PT5M\"\n from: gs://my-bucket/kestra/listen/\n action: NONE\n```" + }, + "io.kestra.plugin.gcp.gcs.UpdateBucket": { + "type": "object", + "properties": { + "acl": { + "title": "The bucket's access control configuration", + "markdownDescription": " See \u003Ca href=\"https://cloud.google.com/storage/docs/access-control#About-Access-Control-Lists\"\u003EAbout Access Control Lists\u003C/a\u003E", + "type": "array", + "items": { + "$ref": "#/definitions/io.kestra.plugin.gcp.gcs.models.AccessControl" + } + }, + "allowFailure": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "cors": { + "title": "The bucket's Cross-Origin Resource Sharing (CORS) configuration", + "markdownDescription": " See \u003Ca href=\"https://cloud.google.com/storage/docs/cross-origin\"\u003ECross-Origin ResourceSharing (CORS)\u003C/a\u003E", + "type": "array", + "items": { + "$ref": "#/definitions/io.kestra.plugin.gcp.gcs.models.Cors" + } + }, + "defaultAcl": { + "title": "The default access control configuration", + "markdownDescription": "The access control configuration to apply to bucket's blobs when no other configuration is specified.\n See \u003Ca href=\"https://cloud.google.com/storage/docs/access-control#About-Access-Control-Lists\"\u003EAbout Access Control Lists\u003C/a\u003E", + "type": "array", + "items": { + "$ref": "#/definitions/io.kestra.plugin.gcp.gcs.models.AccessControl" + } + }, + "defaultEventBasedHold": { + "type": "boolean", + "title": "The default event-based hold for this bucket" + }, + "defaultKmsKeyName": { + "type": "string", + "title": "The default Cloud KMS key name for this bucket" + }, + "description": { + "type": "string" + }, + "disabled": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "iamConfiguration": { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.gcs.models.IamConfiguration" + }, + { + "title": "The Bucket's IAM Configuration", + "markdownDescription": " See \u003Ca href=\"https://cloud.google.com/storage/docs/uniform-bucket-level-access\"\u003Euniform bucket-level access\u003C/a\u003E" + } + ] + }, + "id": { + "type": "string", + "minLength": 1, + "pattern": "^[a-zA-Z0-9][a-zA-Z0-9_-]*" + }, + "indexPage": { + "type": "string", + "title": "The bucket's website index page", + "markdownDescription": "Behaves as the bucket's directory index where missing blobs are treated as potential directories." + }, + "labels": { + "$dynamic": true, + "type": "object", + "title": "The labels of this bucket" + }, + "lifecycleRules": { + "title": "The bucket's lifecycle configuration", + "markdownDescription": "This configuration is expressed as a number of lifecycle rules, consisting of an action and a condition. \n See \u003Ca href=\"https://cloud.google.com/storage/docs/lifecycle\"\u003EObject Lifecycle Management \u003C/a\u003E \n Only the age condition is supported. Only the delete and SetStorageClass actions are supported", + "type": "array", + "items": { + "$ref": "#/definitions/io.kestra.plugin.gcp.gcs.models.BucketLifecycleRule" + } + }, + "location": { + "$dynamic": true, + "type": "string", + "title": "The bucket's location", + "markdownDescription": "Data for blobs in the bucket resides in physical storage within this region. A list of supported values is available \u003Ca href=\"https://cloud.google.com/storage/docs/bucket-locations\"\u003Ehere\u003C/a\u003E." + }, + "logLevel": { + "type": "string", + "enum": ["ERROR", "WARN", "INFO", "DEBUG", "TRACE"] + }, + "logging": { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.gcs.models.Logging" + }, + { + "title": "The bucket's logging configuration", + "markdownDescription": "This configuration defines the destination bucket and optional name prefix for the current bucket's logs." + } + ] + }, + "name": { + "$dynamic": true, + "type": "string", + "title": "Bucket's unique name" + }, + "notFoundPage": { + "type": "string", + "title": "The custom object to return when a requested resource is not found" + }, + "projectId": { + "$dynamic": true, + "type": "string", + "title": "The GCP project ID." + }, + "requesterPays": { + "type": "boolean", + "title": "Whether the requester pays or not.", + "markdownDescription": "Whether a user accessing the bucket or an object it contains should assume the transit costs related to the access." + }, + "retentionPeriod": { + "type": "integer", + "title": "Retention period", + "markdownDescription": "If policy is not locked this value can be cleared, increased, and decreased. If policy is locked the retention period can only be increased." + }, + "retry": { + "oneOf": [ + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Constant-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Exponential-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Random-2" + } + ] + }, + "scopes": { + "$dynamic": true, + "title": "The GCP scopes to be used.", + "default": ["https://www.googleapis.com/auth/cloud-platform"], + "markdownDescription": "Default value is : `- https://www.googleapis.com/auth/cloud-platform`\n\nDefault value is : `- https://www.googleapis.com/auth/cloud-platform`", + "type": "array", + "items": { + "$dynamic": true, + "type": "string" + } + }, + "serviceAccount": { + "$dynamic": true, + "type": "string", + "title": "The GCP service account key." + }, + "storageClass": { + "type": "string", + "enum": [ + "REGIONAL", + "MULTI_REGIONAL", + "NEARLINE", + "COLDLINE", + "STANDARD", + "ARCHIVE", + "DURABLE_REDUCED_AVAILABILITY" + ], + "title": "The bucket's storage class", + "markdownDescription": "This defines how blobs in the bucket are stored and determines the SLA and the cost of storage. A list of supported values is available \u003Ca href=\"https://cloud.google.com/storage/docs/storage-classes\"\u003Ehere\u003C/a\u003E." + }, + "timeout": { + "type": "string", + "format": "duration" + }, + "type": { + "const": "io.kestra.plugin.gcp.gcs.UpdateBucket" + }, + "versioningEnabled": { + "type": "boolean", + "title": "Whether versioning should be enabled for this bucket", + "markdownDescription": "When set to true, versioning is fully enabled." + }, + "workerGroup": { + "$ref": "#/definitions/io.kestra.core.models.tasks.WorkerGroup" + } + }, + "required": ["id", "name", "type"], + "title": "Update a bucket.", + "markdownDescription": "##### Examples\n\u003E Update some bucket labels\n```yaml\nname: \"my-bucket\"\nlabels:\n my-label: my-value\n```" + }, + "io.kestra.plugin.gcp.gcs.Upload": { + "type": "object", + "properties": { + "allowFailure": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "cacheControl": { + "$dynamic": true, + "type": "string", + "title": "The blob's data cache control." + }, + "contentDisposition": { + "$dynamic": true, + "type": "string", + "title": "The blob's data content disposition." + }, + "contentEncoding": { + "$dynamic": true, + "type": "string", + "title": "The blob's data content encoding." + }, + "contentType": { + "$dynamic": true, + "type": "string", + "title": "The blob's data content type." + }, + "description": { + "type": "string" + }, + "disabled": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "from": { + "$dynamic": true, + "type": "string", + "title": "The file to copy" + }, + "id": { + "type": "string", + "minLength": 1, + "pattern": "^[a-zA-Z0-9][a-zA-Z0-9_-]*" + }, + "logLevel": { + "type": "string", + "enum": ["ERROR", "WARN", "INFO", "DEBUG", "TRACE"] + }, + "projectId": { + "$dynamic": true, + "type": "string", + "title": "The GCP project ID." + }, + "retry": { + "oneOf": [ + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Constant-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Exponential-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Random-2" + } + ] + }, + "scopes": { + "$dynamic": true, + "title": "The GCP scopes to be used.", + "default": ["https://www.googleapis.com/auth/cloud-platform"], + "markdownDescription": "Default value is : `- https://www.googleapis.com/auth/cloud-platform`\n\nDefault value is : `- https://www.googleapis.com/auth/cloud-platform`", + "type": "array", + "items": { + "$dynamic": true, + "type": "string" + } + }, + "serviceAccount": { + "$dynamic": true, + "type": "string", + "title": "The GCP service account key." + }, + "timeout": { + "type": "string", + "format": "duration" + }, + "to": { + "$dynamic": true, + "type": "string", + "title": "The destination path" + }, + "type": { + "const": "io.kestra.plugin.gcp.gcs.Upload" + }, + "workerGroup": { + "$ref": "#/definitions/io.kestra.core.models.tasks.WorkerGroup" + } + }, + "required": ["id", "type"], + "title": "Upload a file to a GCS bucket.", + "markdownDescription": "##### Examples\n\u003E \n```yaml\nfrom: \"{{ inputs.file }}\"\nto: \"gs://my_bucket/dir/file.csv\"\n```" + }, + "io.kestra.plugin.gcp.gcs.models.AccessControl": { + "type": "object", + "properties": { + "entity": { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.gcs.models.Entity" + }, + { + "$dynamic": true, + "title": "The entity" + } + ] + }, + "role": { + "$dynamic": true, + "type": "string", + "enum": ["READER", "WRITER", "OWNER"], + "title": "The role to assign to the entity" + } + }, + "required": ["entity", "role"] + }, + "io.kestra.plugin.gcp.gcs.models.BucketLifecycleRule": { + "type": "object", + "properties": { + "action": { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.gcs.models.BucketLifecycleRule-Action" + }, + { + "$dynamic": true, + "title": "The action to take when a lifecycle condition is met" + } + ] + }, + "condition": { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.gcs.models.BucketLifecycleRule-Condition" + }, + { + "$dynamic": true, + "title": "The condition" + } + ] + } + }, + "required": ["action", "condition"] + }, + "io.kestra.plugin.gcp.gcs.models.BucketLifecycleRule-Action": { + "type": "object", + "properties": { + "type": { + "$dynamic": true, + "type": "string", + "enum": ["DELETE", "SET_STORAGE_CLASS"], + "title": "The type of the action (DELETE ...)" + }, + "value": { + "$dynamic": true, + "type": "string", + "title": "The value for the action (if any)" + } + }, + "required": ["type"] + }, + "io.kestra.plugin.gcp.gcs.models.BucketLifecycleRule-Condition": { + "type": "object", + "properties": { + "age": { + "$dynamic": true, + "type": "integer", + "title": "The Age condition is satisfied when an object reaches the specified age (in days). Age is measured from the object's creation time." + } + }, + "required": ["age"] + }, + "io.kestra.plugin.gcp.gcs.models.Cors": { + "type": "object", + "properties": { + "maxAgeSeconds": { + "type": "integer" + }, + "methods": { + "type": "array", + "items": { + "type": "string", + "enum": ["GET", "HEAD", "PUT", "POST", "DELETE", "OPTIONS"] + } + }, + "origins": { + "type": "array", + "items": { + "$ref": "#/definitions/com.google.cloud.storage.Cors-Origin" + } + }, + "responseHeaders": { + "type": "array", + "items": { + "type": "string" + } + } + } + }, + "io.kestra.plugin.gcp.gcs.models.Entity": { + "type": "object", + "properties": { + "type": { + "$dynamic": true, + "type": "string", + "enum": ["DOMAIN", "GROUP", "USER"], + "title": "The type of the entity (USER, GROUP or DOMAIN)" + }, + "value": { + "$dynamic": true, + "type": "string", + "title": "The value for the entity (ex : user email if the type is USER ...)" + } + }, + "required": ["type", "value"] + }, + "io.kestra.plugin.gcp.gcs.models.IamConfiguration": { + "type": "object", + "properties": { + "publicAccessPrevention": { + "type": "string", + "enum": ["ENFORCED", "UNSPECIFIED", "UNKNOWN", "INHERITED"] + }, + "uniformBucketLevelAccessEnabled": { + "type": "boolean" + } + } + }, + "io.kestra.plugin.gcp.gcs.models.Logging": { + "type": "object", + "properties": { + "logBucket": { + "type": "string" + }, + "logObjectPrefix": { + "type": "string" + } + } + }, + "io.kestra.plugin.gcp.gke.ClusterMetadata": { + "type": "object", + "properties": { + "allowFailure": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "clusterId": { + "$dynamic": true, + "type": "string", + "title": "Cluster ID whose metadata needs to be fetched." + }, + "clusterProjectId": { + "$dynamic": true, + "type": "string", + "title": "GCP project ID where the GKE cluster is present." + }, + "clusterZone": { + "$dynamic": true, + "type": "string", + "title": "GCP zone in which the GKE cluster is present." + }, + "description": { + "type": "string" + }, + "disabled": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "id": { + "type": "string", + "minLength": 1, + "pattern": "^[a-zA-Z0-9][a-zA-Z0-9_-]*" + }, + "logLevel": { + "type": "string", + "enum": ["ERROR", "WARN", "INFO", "DEBUG", "TRACE"] + }, + "projectId": { + "$dynamic": true, + "type": "string", + "title": "The GCP project ID." + }, + "retry": { + "oneOf": [ + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Constant-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Exponential-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Random-2" + } + ] + }, + "scopes": { + "$dynamic": true, + "title": "The GCP scopes to be used.", + "default": ["https://www.googleapis.com/auth/cloud-platform"], + "markdownDescription": "Default value is : `- https://www.googleapis.com/auth/cloud-platform`\n\nDefault value is : `- https://www.googleapis.com/auth/cloud-platform`", + "type": "array", + "items": { + "$dynamic": true, + "type": "string" + } + }, + "serviceAccount": { + "$dynamic": true, + "type": "string", + "title": "The GCP service account key." + }, + "timeout": { + "type": "string", + "format": "duration" + }, + "type": { + "const": "io.kestra.plugin.gcp.gke.ClusterMetadata" + }, + "workerGroup": { + "$ref": "#/definitions/io.kestra.core.models.tasks.WorkerGroup" + } + }, + "required": ["clusterId", "id", "type"], + "title": "Get GKE cluster's metadata.", + "markdownDescription": "##### Examples\n\u003E Fetch a GKE cluster's metadata.\n```yaml\nclusterProjectId: my-project-id\nclusterZone: europe-west1-c\nclusterId: my-cluster-id\n```" + }, + "io.kestra.plugin.gcp.pubsub.Consume": { + "type": "object", + "properties": { + "allowFailure": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "autoCreateSubscription": { + "$dynamic": false, + "type": "boolean", + "title": "Whether the Pub/Sub subscription should be created if not exists.", + "default": true, + "markdownDescription": "Default value is : `true`" + }, + "description": { + "type": "string" + }, + "disabled": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "id": { + "type": "string", + "minLength": 1, + "pattern": "^[a-zA-Z0-9][a-zA-Z0-9_-]*" + }, + "logLevel": { + "type": "string", + "enum": ["ERROR", "WARN", "INFO", "DEBUG", "TRACE"] + }, + "maxDuration": { + "$dynamic": false, + "type": "string", + "format": "duration", + "title": "Max duration in the Duration ISO format, after that the task will end." + }, + "maxRecords": { + "$dynamic": false, + "type": "integer", + "title": "Max number of records, when reached the task will end." + }, + "projectId": { + "$dynamic": true, + "type": "string", + "title": "The GCP project ID." + }, + "retry": { + "oneOf": [ + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Constant-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Exponential-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Random-2" + } + ] + }, + "scopes": { + "$dynamic": true, + "title": "The GCP scopes to be used.", + "default": ["https://www.googleapis.com/auth/cloud-platform"], + "markdownDescription": "Default value is : `- https://www.googleapis.com/auth/cloud-platform`\n\nDefault value is : `- https://www.googleapis.com/auth/cloud-platform`", + "type": "array", + "items": { + "$dynamic": true, + "type": "string" + } + }, + "serdeType": { + "$dynamic": false, + "type": "string", + "enum": ["STRING", "JSON"], + "title": "The serializer/deserializer to use.", + "default": "STRING", + "markdownDescription": "Default value is : `STRING`" + }, + "serviceAccount": { + "$dynamic": true, + "type": "string", + "title": "The GCP service account key." + }, + "subscription": { + "$dynamic": true, + "type": "string", + "title": "The Pub/Sub subscription.", + "markdownDescription": "The Pub/Sub subscription. It will be created automatically if it didn't exist and 'autoCreateSubscription' is enabled." + }, + "timeout": { + "type": "string", + "format": "duration" + }, + "topic": { + "$dynamic": true, + "type": "string", + "title": "The Pub/Sub topic", + "markdownDescription": "The Pub/Sub topic. It must be created before executing the task." + }, + "type": { + "const": "io.kestra.plugin.gcp.pubsub.Consume" + }, + "workerGroup": { + "$ref": "#/definitions/io.kestra.core.models.tasks.WorkerGroup" + } + }, + "required": ["id", "topic", "type"], + "title": "Consume messages from a Pub/Sub topic.", + "markdownDescription": "Requires a maxDuration or a maxRecords.##### Examples\n\u003E \n```yaml\ntopic: topic-test\nmaxRecords: 10\n```" + }, + "io.kestra.plugin.gcp.pubsub.Publish": { + "type": "object", + "properties": { + "allowFailure": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "description": { + "type": "string" + }, + "disabled": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "from": { + "$dynamic": true, + "title": "The source of the published data.", + "markdownDescription": "Can be an internal storage URI, a list of Pub/Sub messages, or a single Pub/Sub message.", + "oneOf": [ + { + "type": "string" + }, + { + "type": "array", + "items": { + "$ref": "#/definitions/io.kestra.plugin.gcp.pubsub.model.Message" + } + }, + { + "$ref": "#/definitions/io.kestra.plugin.gcp.pubsub.model.Message" + } + ] + }, + "id": { + "type": "string", + "minLength": 1, + "pattern": "^[a-zA-Z0-9][a-zA-Z0-9_-]*" + }, + "logLevel": { + "type": "string", + "enum": ["ERROR", "WARN", "INFO", "DEBUG", "TRACE"] + }, + "projectId": { + "$dynamic": true, + "type": "string", + "title": "The GCP project ID." + }, + "retry": { + "oneOf": [ + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Constant-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Exponential-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Random-2" + } + ] + }, + "scopes": { + "$dynamic": true, + "title": "The GCP scopes to be used.", + "default": ["https://www.googleapis.com/auth/cloud-platform"], + "markdownDescription": "Default value is : `- https://www.googleapis.com/auth/cloud-platform`\n\nDefault value is : `- https://www.googleapis.com/auth/cloud-platform`", + "type": "array", + "items": { + "$dynamic": true, + "type": "string" + } + }, + "serdeType": { + "$dynamic": false, + "type": "string", + "enum": ["STRING", "JSON"], + "title": "The serializer/deserializer to use.", + "default": "STRING", + "markdownDescription": "Default value is : `STRING`" + }, + "serviceAccount": { + "$dynamic": true, + "type": "string", + "title": "The GCP service account key." + }, + "timeout": { + "type": "string", + "format": "duration" + }, + "topic": { + "$dynamic": true, + "type": "string", + "title": "The Pub/Sub topic", + "markdownDescription": "The Pub/Sub topic. It must be created before executing the task." + }, + "type": { + "const": "io.kestra.plugin.gcp.pubsub.Publish" + }, + "workerGroup": { + "$ref": "#/definitions/io.kestra.core.models.tasks.WorkerGroup" + } + }, + "required": ["from", "id", "topic", "type"], + "title": "Publish a message to a Pub/Sub topic", + "markdownDescription": "##### Examples\n\u003E \n```yaml\ntopic: topic-test\nfrom:\n - data: \"{{ 'base64-encoded-string-1' | base64encode }}\"\n attributes:\n testAttribute: KestraTest\n - messageId: '1234'\n - orderingKey: 'foo'\n - data: \"{{ 'base64-encoded-string-2' | base64encode }}\"\n - attributes:\n testAttribute: KestraTest\n```" + }, + "io.kestra.plugin.gcp.pubsub.RealtimeTrigger": { + "type": "object", + "properties": { + "autoCreateSubscription": { + "$dynamic": false, + "type": "boolean", + "title": "Whether the Pub/Sub subscription should be created if not exist", + "default": true, + "markdownDescription": "Default value is : `true`" + }, + "conditions": { + "$dynamic": false, + "title": "List of conditions in order to limit the flow trigger.", + "type": "array", + "items": { + "oneOf": [ + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.DateTimeBetweenCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.DayWeekCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.DayWeekInMonthCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.ExecutionFlowCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.ExecutionLabelsCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.ExecutionNamespaceCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.ExecutionOutputsCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.ExecutionStatusCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.ExpressionCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.FlowCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.FlowNamespaceCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.HasRetryAttemptCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.MultipleCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.NotCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.OrCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.PublicHolidayCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.TimeBetweenCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.WeekendCondition" + }, + { + "$dynamic": false + } + ] + } + ] + } + }, + "description": { + "type": "string" + }, + "disabled": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "id": { + "type": "string", + "title": "A unique ID for the whole flow.", + "minLength": 1, + "pattern": "^[a-zA-Z0-9][a-zA-Z0-9_-]*" + }, + "interval": { + "type": "string", + "format": "duration", + "default": 60, + "markdownDescription": "Default value is : `60.000000000`" + }, + "labels": { + "title": "The labels to pass to the execution created.", + "type": "array", + "items": { + "$ref": "#/definitions/io.kestra.core.models.Label" + } + }, + "logLevel": { + "type": "string", + "enum": ["ERROR", "WARN", "INFO", "DEBUG", "TRACE"] + }, + "maxDuration": { + "$dynamic": false, + "type": "string", + "format": "duration", + "title": "Max duration in the Duration ISO format, after that the task will end." + }, + "maxRecords": { + "$dynamic": false, + "type": "integer", + "title": "Max number of records, when reached the task will end." + }, + "projectId": { + "$dynamic": true, + "type": "string", + "title": "The GCP project ID." + }, + "scopes": { + "$dynamic": true, + "title": "The GCP scopes to be used.", + "default": ["https://www.googleapis.com/auth/cloud-platform"], + "markdownDescription": "Default value is : `- https://www.googleapis.com/auth/cloud-platform`\n\nDefault value is : `- https://www.googleapis.com/auth/cloud-platform`", + "type": "array", + "items": { + "$dynamic": true, + "type": "string" + } + }, + "serdeType": { + "$dynamic": false, + "type": "string", + "enum": ["STRING", "JSON"], + "title": "The serializer/deserializer to use.", + "default": "STRING", + "markdownDescription": "Default value is : `STRING`" + }, + "serviceAccount": { + "$dynamic": true, + "type": "string", + "title": "The GCP service account key." + }, + "stopAfter": { + "$dynamic": false, + "title": "List of execution states after which a trigger should be stopped (a.k.a. disabled).", + "type": "array", + "items": { + "$dynamic": false, + "type": "string", + "enum": [ + "CREATED", + "RUNNING", + "PAUSED", + "RESTARTED", + "KILLING", + "SUCCESS", + "WARNING", + "FAILED", + "KILLED", + "CANCELLED", + "QUEUED", + "RETRYING", + "RETRIED" + ] + } + }, + "subscription": { + "$dynamic": true, + "type": "string", + "title": "The Pub/Sub subscription", + "markdownDescription": "The Pub/Sub subscription. It will be created automatically if it didn't exist and 'autoCreateSubscription' is enabled." + }, + "topic": { + "$dynamic": true, + "type": "string", + "title": "The Pub/Sub topic", + "markdownDescription": "The Pub/Sub topic. It must be created before executing the task." + }, + "type": { + "const": "io.kestra.plugin.gcp.pubsub.RealtimeTrigger" + }, + "workerGroup": { + "$ref": "#/definitions/io.kestra.core.models.tasks.WorkerGroup" + } + }, + "required": ["id", "topic", "type"], + "title": "Consume a message in real-time from a Pub/Sub topic and create one execution per message.", + "markdownDescription": "If you would like to consume multiple messages processed within a given time frame and process them in batch, you can use the [io.kestra.plugin.gcp.pubsub.Trigger](https://kestra.io/plugins/plugin-gcp/triggers/io.kestra.plugin.gcp.pubsub.trigger) instead.##### Examples\n\u003E Consume a message from a Pub/Sub topic in real-time.\n```yaml\nid: realtime-pubsub\nnamespace: company.team\n\ntasks:\n - id: log\n type: io.kestra.plugin.core.log.Log\n message: \"Received: {{ trigger.data }}\"\n\ntriggers:\n - id: trigger\n type: io.kestra.plugin.gcp.pubsub.RealtimeTrigger\n projectId: test-project-id\n topic: test-topic\n subscription: test-subscription\n\n```" + }, + "io.kestra.plugin.gcp.pubsub.Trigger": { + "type": "object", + "properties": { + "autoCreateSubscription": { + "$dynamic": false, + "type": "boolean", + "title": "Whether the Pub/Sub subscription should be created if not exist", + "default": true, + "markdownDescription": "Default value is : `true`" + }, + "conditions": { + "$dynamic": false, + "title": "List of conditions in order to limit the flow trigger.", + "type": "array", + "items": { + "oneOf": [ + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.DateTimeBetweenCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.DayWeekCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.DayWeekInMonthCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.ExecutionFlowCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.ExecutionLabelsCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.ExecutionNamespaceCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.ExecutionOutputsCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.ExecutionStatusCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.ExpressionCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.FlowCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.FlowNamespaceCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.HasRetryAttemptCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.MultipleCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.NotCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.OrCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.PublicHolidayCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.TimeBetweenCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.WeekendCondition" + }, + { + "$dynamic": false + } + ] + } + ] + } + }, + "description": { + "type": "string" + }, + "disabled": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "id": { + "type": "string", + "title": "A unique ID for the whole flow.", + "minLength": 1, + "pattern": "^[a-zA-Z0-9][a-zA-Z0-9_-]*" + }, + "interval": { + "$dynamic": false, + "type": "string", + "format": "duration", + "title": "Interval between polling.", + "default": 60, + "markdownDescription": "The interval between 2 different polls of schedule, this can avoid to overload the remote system with too many calls. For most of the triggers that depend on external systems, a minimal interval must be at least PT30S.\nSee [ISO_8601 Durations](https://en.wikipedia.org/wiki/ISO_8601#Durations) for more information of available interval values.\n\nDefault value is : `60.000000000`" + }, + "labels": { + "title": "The labels to pass to the execution created.", + "type": "array", + "items": { + "$ref": "#/definitions/io.kestra.core.models.Label" + } + }, + "logLevel": { + "type": "string", + "enum": ["ERROR", "WARN", "INFO", "DEBUG", "TRACE"] + }, + "maxDuration": { + "$dynamic": false, + "type": "string", + "format": "duration", + "title": "Max duration in the Duration ISO format, after that the task will end." + }, + "maxRecords": { + "$dynamic": false, + "type": "integer", + "title": "Max number of records, when reached the task will end." + }, + "projectId": { + "$dynamic": true, + "type": "string", + "title": "The GCP project ID." + }, + "scopes": { + "$dynamic": true, + "title": "The GCP scopes to be used.", + "default": ["https://www.googleapis.com/auth/cloud-platform"], + "markdownDescription": "Default value is : `- https://www.googleapis.com/auth/cloud-platform`\n\nDefault value is : `- https://www.googleapis.com/auth/cloud-platform`", + "type": "array", + "items": { + "$dynamic": true, + "type": "string" + } + }, + "serdeType": { + "$dynamic": false, + "type": "string", + "enum": ["STRING", "JSON"], + "title": "The serializer/deserializer to use.", + "default": "STRING", + "markdownDescription": "Default value is : `STRING`" + }, + "serviceAccount": { + "$dynamic": true, + "type": "string", + "title": "The GCP service account key." + }, + "stopAfter": { + "$dynamic": false, + "title": "List of execution states after which a trigger should be stopped (a.k.a. disabled).", + "type": "array", + "items": { + "$dynamic": false, + "type": "string", + "enum": [ + "CREATED", + "RUNNING", + "PAUSED", + "RESTARTED", + "KILLING", + "SUCCESS", + "WARNING", + "FAILED", + "KILLED", + "CANCELLED", + "QUEUED", + "RETRYING", + "RETRIED" + ] + } + }, + "subscription": { + "$dynamic": true, + "type": "string", + "title": "The Pub/Sub subscription", + "markdownDescription": "The Pub/Sub subscription. It will be created automatically if it didn't exist and 'autoCreateSubscription' is enabled." + }, + "topic": { + "$dynamic": true, + "type": "string", + "title": "The Pub/Sub topic", + "markdownDescription": "The Pub/Sub topic. It must be created before executing the task." + }, + "type": { + "const": "io.kestra.plugin.gcp.pubsub.Trigger" + }, + "workerGroup": { + "$ref": "#/definitions/io.kestra.core.models.tasks.WorkerGroup" + } + }, + "required": ["id", "topic", "type"], + "title": "Consume messages periodically from a Pub/Sub topic and create one execution per batch.", + "markdownDescription": "If you would like to consume each message from a Pub/Sub topic in real-time and create one execution per message, you can use the [io.kestra.plugin.gcp.pubsub.RealtimeTrigger](https://kestra.io/plugins/plugin-gcp/triggers/io.kestra.plugin.gcp.pubsub.realtimetrigger) instead.##### Examples\n\u003E \n```yaml\nprojectId: test-project-id\nsubscription: test-subscription\ntopic: test-topic\nmaxRecords: 10\n```" + }, + "io.kestra.plugin.gcp.pubsub.model.Message": { + "type": "object", + "properties": { + "attributes": { + "$dynamic": true, + "type": "object", + "title": "The message attributes map" + }, + "data": { + "$dynamic": true, + "title": "The message data, must be a string if serde type is 'STRING', otherwise a JSON object", + "markdownDescription": "If it's a string, it can be a dynamic property otherwise not." + }, + "messageId": { + "$dynamic": true, + "type": "string", + "title": "The message identifier" + }, + "orderingKey": { + "$dynamic": true, + "type": "string", + "title": "The message ordering key" + } + } + }, + "io.kestra.plugin.gcp.vertexai.AbstractGenerativeAi-ModelParameter": { + "type": "object", + "properties": { + "maxOutputTokens": { + "$dynamic": false, + "type": "integer", + "title": "Maximum number of tokens that can be generated in the response.", + "default": 128, + "minimum": 1, + "maximum": 1024, + "markdownDescription": "Specify a lower value for shorter responses and a higher value for longer responses.\nA token may be smaller than a word. A token is approximately four characters. 100 tokens correspond to roughly 60-80 words.\n\nDefault value is : `128`" + }, + "temperature": { + "$dynamic": false, + "type": "number", + "title": "Temperature used for sampling during the response generation, which occurs when topP and topK are applied.", + "default": 0.2, + "exclusiveMinimum": 0, + "maximum": 1, + "markdownDescription": "Temperature controls the degree of randomness in token selection. Lower temperatures are good for prompts that require a more deterministic and less open-ended or creative response, while higher temperatures can lead to more diverse or creative results. A temperature of 0 is deterministic: the highest probability response is always selected. For most use cases, try starting with a temperature of 0.2.\n\nDefault value is : `0.2`" + }, + "topK": { + "$dynamic": false, + "type": "integer", + "title": "Top-k changes how the model selects tokens for output.", + "default": 40, + "minimum": 1, + "maximum": 40, + "markdownDescription": "A top-k of 1 means the selected token is the most probable among all tokens in the model's vocabulary (also called greedy decoding), while a top-k of 3 means that the next token is selected from among the 3 most probable tokens (using temperature).\nFor each token selection step, the top K tokens with the highest probabilities are sampled. Then tokens are further filtered based on topP with the final token selected using temperature sampling.\nSpecify a lower value for less random responses and a higher value for more random responses.\n\nDefault value is : `40`" + }, + "topP": { + "$dynamic": false, + "type": "number", + "title": "Top-p changes how the model selects tokens for output.", + "default": 0.95, + "exclusiveMinimum": 0, + "maximum": 1, + "markdownDescription": "Tokens are selected from most K (see topK parameter) probable to least until the sum of their probabilities equals the top-p value. For example, if tokens A, B, and C have a probability of 0.3, 0.2, and 0.1 and the top-p value is 0.5, then the model will select either A or B as the next token (using temperature) and doesn't consider C. The default top-p value is 0.95.\nSpecify a lower value for less random responses and a higher value for more random responses.\n\nDefault value is : `0.95`" + } + } + }, + "io.kestra.plugin.gcp.vertexai.ChatCompletion": { + "type": "object", + "properties": { + "allowFailure": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "context": { + "$deprecated": true, + "$dynamic": true, + "type": "string", + "title": "For backward compatibility, since migration to Gemini LLM this property will be the first message to be send to the chat." + }, + "description": { + "type": "string" + }, + "disabled": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "examples": { + "$deprecated": true, + "$dynamic": true, + "title": "This property is not used anymore since migration to Gemini LLM.", + "type": "array", + "items": { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.vertexai.ChatCompletion-Example" + }, + { + "$deprecated": true, + "$dynamic": true + } + ] + } + }, + "history": { + "$dynamic": true, + "title": "Conversation history provided to the model.", + "markdownDescription": "Messages appear in chronological order: oldest first, newest last. When the history of messages causes the input to exceed the maximum length, the oldest messages are removed until the entire prompt is within the allowed limit.", + "type": "array", + "items": { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.vertexai.ChatCompletion-Message" + }, + { + "$dynamic": true + } + ] + } + }, + "id": { + "type": "string", + "minLength": 1, + "pattern": "^[a-zA-Z0-9][a-zA-Z0-9_-]*" + }, + "logLevel": { + "type": "string", + "enum": ["ERROR", "WARN", "INFO", "DEBUG", "TRACE"] + }, + "messages": { + "$dynamic": true, + "title": "Chat messages.", + "minItems": 1, + "markdownDescription": "Messages appear in chronological order: oldest first, newest last. When the history of messages causes the input to exceed the maximum length, the oldest messages are removed until the entire prompt is within the allowed limit.", + "type": "array", + "items": { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.vertexai.ChatCompletion-Message" + }, + { + "$dynamic": true + } + ] + } + }, + "parameters": { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.vertexai.AbstractGenerativeAi-ModelParameter" + }, + { + "$dynamic": false, + "title": "The model parameters.", + "default": { + "temperature": 0.2, + "maxOutputTokens": 128, + "topK": 40, + "topP": 0.95 + }, + "markdownDescription": "Default value is : `temperature: 0.2\nmaxOutputTokens: 128\ntopK: 40\ntopP: 0.95`" + } + ] + }, + "projectId": { + "$dynamic": true, + "type": "string", + "title": "The GCP project ID." + }, + "region": { + "$dynamic": true, + "type": "string", + "title": "The GCP region." + }, + "retry": { + "oneOf": [ + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Constant-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Exponential-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Random-2" + } + ] + }, + "scopes": { + "$dynamic": true, + "title": "The GCP scopes to be used.", + "default": ["https://www.googleapis.com/auth/cloud-platform"], + "markdownDescription": "Default value is : `- https://www.googleapis.com/auth/cloud-platform`\n\nDefault value is : `- https://www.googleapis.com/auth/cloud-platform`", + "type": "array", + "items": { + "$dynamic": true, + "type": "string" + } + }, + "serviceAccount": { + "$dynamic": true, + "type": "string", + "title": "The GCP service account key." + }, + "timeout": { + "type": "string", + "format": "duration" + }, + "type": { + "const": "io.kestra.plugin.gcp.vertexai.ChatCompletion" + }, + "workerGroup": { + "$ref": "#/definitions/io.kestra.core.models.tasks.WorkerGroup" + } + }, + "required": ["id", "messages", "region", "type"], + "title": "Chat completion using the Vertex AI for Google's Gemini large language models (LLM).", + "markdownDescription": "See [Generative AI quickstart using the Vertex AI API](https://cloud.google.com/vertex-ai/docs/generative-ai/start/quickstarts/api-quickstart) for more information.##### Examples\n\u003E Chat completion using the Vertex AI Gemini API.\n```yaml\nregion: us-central1\nprojectId: my-project\ncontext: I love jokes that talk about sport\nmessages:\n - author: user\n content: Please tell me a joke\n```" + }, + "io.kestra.plugin.gcp.vertexai.ChatCompletion-Example": { + "type": "object", + "properties": { + "input": { + "$dynamic": true, + "type": "string" + }, + "output": { + "$dynamic": true, + "type": "string" + } + }, + "required": ["input", "output"] + }, + "io.kestra.plugin.gcp.vertexai.ChatCompletion-Message": { + "type": "object", + "properties": { + "author": { + "$deprecated": true, + "$dynamic": true, + "type": "string", + "title": "This property is not used anymore since migration to Gemini LLM" + }, + "content": { + "$dynamic": true, + "type": "string" + } + }, + "required": ["content"] + }, + "io.kestra.plugin.gcp.vertexai.CustomJob": { + "type": "object", + "properties": { + "allowFailure": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "delete": { + "$dynamic": true, + "type": "boolean", + "title": "Delete the job at the end.", + "default": true, + "markdownDescription": "Default value is : `true`" + }, + "description": { + "type": "string" + }, + "disabled": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "displayName": { + "$dynamic": true, + "type": "string", + "title": "The job display name." + }, + "id": { + "type": "string", + "minLength": 1, + "pattern": "^[a-zA-Z0-9][a-zA-Z0-9_-]*" + }, + "logLevel": { + "type": "string", + "enum": ["ERROR", "WARN", "INFO", "DEBUG", "TRACE"] + }, + "projectId": { + "$dynamic": true, + "type": "string", + "title": "The GCP project ID." + }, + "region": { + "$dynamic": true, + "type": "string", + "title": "The GCP region." + }, + "retry": { + "oneOf": [ + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Constant-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Exponential-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Random-2" + } + ] + }, + "scopes": { + "$dynamic": true, + "title": "The GCP scopes to be used.", + "default": ["https://www.googleapis.com/auth/cloud-platform"], + "markdownDescription": "Default value is : `- https://www.googleapis.com/auth/cloud-platform`\n\nDefault value is : `- https://www.googleapis.com/auth/cloud-platform`", + "type": "array", + "items": { + "$dynamic": true, + "type": "string" + } + }, + "serviceAccount": { + "$dynamic": true, + "type": "string", + "title": "The GCP service account key." + }, + "spec": { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.vertexai.models.CustomJobSpec" + }, + { + "$dynamic": false, + "title": "The job specification." + } + ] + }, + "timeout": { + "type": "string", + "format": "duration" + }, + "type": { + "const": "io.kestra.plugin.gcp.vertexai.CustomJob" + }, + "wait": { + "$dynamic": true, + "type": "boolean", + "title": "Wait for the end of the job.", + "default": true, + "markdownDescription": "Allowing to capture job status & logs.\n\nDefault value is : `true`" + }, + "workerGroup": { + "$ref": "#/definitions/io.kestra.core.models.tasks.WorkerGroup" + } + }, + "required": ["displayName", "id", "region", "spec", "type"], + "title": "Start a Vertex AI [custom job](https://cloud.google.com/vertex-ai/docs/training/create-custom-job).", + "markdownDescription": "##### Examples\n\u003E \n```yaml\nprojectId: my-gcp-project\nregion: europe-west1\ndisplayName: Start Custom Job\nspec:\n workerPoolSpecs:\n - containerSpec:\n imageUri: gcr.io/my-gcp-project/my-dir/my-image:latest\n machineSpec:\n machineType: n1-standard-4\n replicaCount: 1\n```" + }, + "io.kestra.plugin.gcp.vertexai.MultimodalCompletion": { + "type": "object", + "properties": { + "allowFailure": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "contents": { + "$dynamic": true, + "title": "The contents.", + "minItems": 1, + "type": "array", + "items": { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.vertexai.MultimodalCompletion-Content" + }, + { + "$dynamic": true + } + ] + } + }, + "description": { + "type": "string" + }, + "disabled": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "id": { + "type": "string", + "minLength": 1, + "pattern": "^[a-zA-Z0-9][a-zA-Z0-9_-]*" + }, + "logLevel": { + "type": "string", + "enum": ["ERROR", "WARN", "INFO", "DEBUG", "TRACE"] + }, + "parameters": { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.vertexai.AbstractGenerativeAi-ModelParameter" + }, + { + "$dynamic": false, + "title": "The model parameters.", + "default": { + "temperature": 0.2, + "maxOutputTokens": 128, + "topK": 40, + "topP": 0.95 + }, + "markdownDescription": "Default value is : `temperature: 0.2\nmaxOutputTokens: 128\ntopK: 40\ntopP: 0.95`" + } + ] + }, + "projectId": { + "$dynamic": true, + "type": "string", + "title": "The GCP project ID." + }, + "region": { + "$dynamic": true, + "type": "string", + "title": "The GCP region." + }, + "retry": { + "oneOf": [ + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Constant-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Exponential-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Random-2" + } + ] + }, + "scopes": { + "$dynamic": true, + "title": "The GCP scopes to be used.", + "default": ["https://www.googleapis.com/auth/cloud-platform"], + "markdownDescription": "Default value is : `- https://www.googleapis.com/auth/cloud-platform`\n\nDefault value is : `- https://www.googleapis.com/auth/cloud-platform`", + "type": "array", + "items": { + "$dynamic": true, + "type": "string" + } + }, + "serviceAccount": { + "$dynamic": true, + "type": "string", + "title": "The GCP service account key." + }, + "timeout": { + "type": "string", + "format": "duration" + }, + "type": { + "const": "io.kestra.plugin.gcp.vertexai.MultimodalCompletion" + }, + "workerGroup": { + "$ref": "#/definitions/io.kestra.core.models.tasks.WorkerGroup" + } + }, + "required": ["contents", "id", "region", "type"], + "title": "Multimodal completion using the Vertex AI Gemini large language models (LLM).", + "markdownDescription": "See [Overview of multimodal models](https://cloud.google.com/vertex-ai/docs/generative-ai/multimodal/overview) for more information.##### Examples\n\u003E Text completion using the Vertex Gemini API\n```yaml\nregion: us-central1\nprojectId: my-project\ncontents:\n - content: Please tell me a joke\n```\n\n\u003E Multimodal completion using the Vertex Gemini API\n```yaml\n region: us-central1\n projectId: my-project\n contents:\n - content: Can you describe this image?\n - mimeType: image/jpeg\n content: \"{{ inputs.image }}\"\n\n```" + }, + "io.kestra.plugin.gcp.vertexai.MultimodalCompletion-Content": { + "type": "object", + "properties": { + "content": { + "$dynamic": false, + "type": "string", + "title": "The content itself, should be a string for text content or a Kestra internal storage URI for other content types.", + "markdownDescription": "If the content is not text, the `mimeType` property must be set." + }, + "mimeType": { + "$dynamic": true, + "type": "string", + "title": "Mime type of the content, use it only when the content is not text." + } + }, + "required": ["content"] + }, + "io.kestra.plugin.gcp.vertexai.TextCompletion": { + "type": "object", + "properties": { + "allowFailure": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "description": { + "type": "string" + }, + "disabled": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "id": { + "type": "string", + "minLength": 1, + "pattern": "^[a-zA-Z0-9][a-zA-Z0-9_-]*" + }, + "logLevel": { + "type": "string", + "enum": ["ERROR", "WARN", "INFO", "DEBUG", "TRACE"] + }, + "parameters": { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.vertexai.AbstractGenerativeAi-ModelParameter" + }, + { + "$dynamic": false, + "title": "The model parameters.", + "default": { + "temperature": 0.2, + "maxOutputTokens": 128, + "topK": 40, + "topP": 0.95 + }, + "markdownDescription": "Default value is : `temperature: 0.2\nmaxOutputTokens: 128\ntopK: 40\ntopP: 0.95`" + } + ] + }, + "projectId": { + "$dynamic": true, + "type": "string", + "title": "The GCP project ID." + }, + "prompt": { + "$dynamic": true, + "type": "string", + "title": "Text input to generate model response.", + "markdownDescription": "Prompts can include preamble, questions, suggestions, instructions, or examples." + }, + "region": { + "$dynamic": true, + "type": "string", + "title": "The GCP region." + }, + "retry": { + "oneOf": [ + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Constant-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Exponential-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Random-2" + } + ] + }, + "scopes": { + "$dynamic": true, + "title": "The GCP scopes to be used.", + "default": ["https://www.googleapis.com/auth/cloud-platform"], + "markdownDescription": "Default value is : `- https://www.googleapis.com/auth/cloud-platform`\n\nDefault value is : `- https://www.googleapis.com/auth/cloud-platform`", + "type": "array", + "items": { + "$dynamic": true, + "type": "string" + } + }, + "serviceAccount": { + "$dynamic": true, + "type": "string", + "title": "The GCP service account key." + }, + "timeout": { + "type": "string", + "format": "duration" + }, + "type": { + "const": "io.kestra.plugin.gcp.vertexai.TextCompletion" + }, + "workerGroup": { + "$ref": "#/definitions/io.kestra.core.models.tasks.WorkerGroup" + } + }, + "required": ["id", "region", "type"], + "title": "Text completion using the Vertex AI API for Google's Gemini large language models (LLM).", + "markdownDescription": "See [Generative AI quickstart using the Vertex AI API](https://cloud.google.com/vertex-ai/docs/generative-ai/start/quickstarts/api-quickstart) for more information.##### Examples\n\u003E Text completion using the Vertex AI Gemini API.\n```yaml\nregion: us-central1\nprojectId: my-project\nprompt: Please tell me a joke\n```" + }, + "io.kestra.plugin.gcp.vertexai.models.ContainerSpec": { + "type": "object", + "properties": { + "args": { + "$dynamic": true, + "title": "The arguments to be passed when starting the container.", + "type": "array", + "items": { + "$dynamic": true, + "type": "string" + } + }, + "commands": { + "$dynamic": true, + "title": "The command to be invoked when the container is started.", + "markdownDescription": "It overrides the entrypoint instruction in Dockerfile when provided.", + "type": "array", + "items": { + "$dynamic": true, + "type": "string" + } + }, + "env": { + "$dynamic": true, + "type": "object", + "title": "Environment variables to be passed to the container.", + "markdownDescription": "Maximum limit is 100." + }, + "imageUri": { + "$dynamic": true, + "type": "string", + "title": "The URI of a container image in the Container Registry that is to be run on each worker replica.", + "markdownDescription": "Must be on google container registry, example: `gcr.io/{{ project }}/{{ dir }}/{{ image }}:{{ tag }}`" + } + }, + "required": ["imageUri"] + }, + "io.kestra.plugin.gcp.vertexai.models.CustomJobSpec": { + "type": "object", + "properties": { + "baseOutputDirectory": { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.vertexai.models.GcsDestination" + }, + { + "$dynamic": false, + "title": "The Cloud Storage location to store the output of this job." + } + ] + }, + "enableWebAccess": { + "$dynamic": false, + "type": "boolean", + "title": "Whether you want Vertex AI to enable [interactive shell access](https://cloud.google.com/vertex-ai/docs/training/monitor-debug-interactive-shell) to training containers." + }, + "network": { + "$dynamic": true, + "type": "string", + "title": "The full name of the Compute Engine [network](https://cloud.google.com/compute/docs/networks-and-firewalls#networks) to which the Job should be peered.", + "markdownDescription": "For example, `projects/12345/global/networks/myVPC`.\nFormat is of the form `projects/{project}/global/networks/{network}`. Where {project} is a project number, as in `12345`, and {network} is a network name.\nTo specify this field, you must have already [configured VPC Network Peering for Vertex AI](https://cloud.google.com/vertex-ai/docs/general/vpc-peering).\nIf this field is left unspecified, the job is not peered with any network." + }, + "scheduling": { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.vertexai.models.Scheduling" + }, + { + "$dynamic": false, + "title": "Scheduling options for a CustomJob." + } + ] + }, + "serviceAccount": { + "$dynamic": true, + "type": "string", + "title": "Specifies the service account for workload run-as account.", + "markdownDescription": " Users submitting jobs must have act-as permission on this run-as account.\n If unspecified, the [Vertex AI Custom Code Service\n Agent](https://cloud.google.com/vertex-ai/docs/general/access-control#service-agents)\n for the CustomJob's project is used." + }, + "tensorboard": { + "$dynamic": true, + "type": "string", + "title": "The name of a Vertex AI Tensorboard resource to which this CustomJob", + "markdownDescription": "will upload Tensorboard logs. Format:`projects/{project}/locations/{location}/tensorboards/{tensorboard}`" + }, + "workerPoolSpecs": { + "$dynamic": true, + "title": "The spec of the worker pools including machine type and Docker image.", + "minItems": 1, + "markdownDescription": " All worker pools except the first one are optional and can be skipped", + "type": "array", + "items": { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.vertexai.models.WorkerPoolSpec" + }, + { + "$dynamic": true + } + ] + } + } + }, + "required": ["workerPoolSpecs"] + }, + "io.kestra.plugin.gcp.vertexai.models.DiscSpec": { + "type": "object", + "properties": { + "bootDiskSizeGb": { + "$dynamic": false, + "type": "integer", + "title": "Size in GB of the boot disk.", + "default": 100, + "markdownDescription": "Default value is : `100`" + }, + "bootDiskType": { + "$dynamic": false, + "type": "string", + "enum": ["PD_SSD", "PD_STANDARD"], + "title": "Type of the boot disk.", + "default": "PD_SSD", + "markdownDescription": "Default value is : `PD_SSD`" + } + } + }, + "io.kestra.plugin.gcp.vertexai.models.GcsDestination": { + "type": "object", + "properties": { + "outputUriPrefix": { + "$dynamic": false, + "type": "string", + "title": "Google Cloud Storage URI to output directory.", + "markdownDescription": "If the uri doesn't end with '/', a '/' will be automatically appended. The directory is created if it doesn't exist." + } + }, + "required": ["outputUriPrefix"] + }, + "io.kestra.plugin.gcp.vertexai.models.MachineSpec": { + "type": "object", + "properties": { + "acceleratorCount": { + "$dynamic": false, + "type": "integer", + "title": "The number of accelerators to attach to the machine." + }, + "acceleratorType": { + "$dynamic": true, + "type": "string", + "enum": [ + "ACCELERATOR_TYPE_UNSPECIFIED", + "NVIDIA_TESLA_K80", + "NVIDIA_TESLA_P100", + "NVIDIA_TESLA_V100", + "NVIDIA_TESLA_P4", + "NVIDIA_TESLA_T4", + "NVIDIA_TESLA_A100", + "NVIDIA_A100_80GB", + "NVIDIA_L4", + "NVIDIA_H100_80GB", + "TPU_V2", + "TPU_V3", + "TPU_V4_POD", + "UNRECOGNIZED" + ], + "title": "The type of accelerator(s) that may be attached to the machine." + }, + "machineType": { + "$dynamic": true, + "type": "string", + "title": " The type of the machine.", + "markdownDescription": "See the [list of machine types supported forprediction](https://cloud.google.com/vertex-ai/docs/predictions/configure-compute#machine-types)\nSee the [list of machine types supported for custom training](https://cloud.google.com/vertex-ai/docs/training/configure-compute#machine-types)." + } + }, + "required": ["machineType"] + }, + "io.kestra.plugin.gcp.vertexai.models.PythonPackageSpec": { + "type": "object", + "properties": { + "args": { + "$dynamic": true, + "title": "The Google Cloud Storage location of the Python package files which are the training program and its dependent packages.", + "markdownDescription": "The maximum number of package URIs is 100.", + "type": "array", + "items": { + "$dynamic": true, + "type": "string" + } + }, + "envs": { + "$dynamic": true, + "type": "object", + "title": "Environment variables to be passed to the python module.", + "markdownDescription": "Maximum limit is 100." + }, + "packageUris": { + "$dynamic": true, + "title": "The Google Cloud Storage location of the Python package files which are the training program and its dependent packages.", + "markdownDescription": "The maximum number of package URIs is 100.", + "type": "array", + "items": { + "$dynamic": true, + "type": "string" + } + } + }, + "required": ["args", "envs", "packageUris"] + }, + "io.kestra.plugin.gcp.vertexai.models.Scheduling": { + "type": "object", + "properties": { + "restartJobOnWorkerRestart": { + "$dynamic": false, + "type": "boolean", + "title": "Restarts the entire CustomJob if a worker gets restarted.", + "markdownDescription": "This feature can be used by distributed training jobs that are not resilient to workers leaving and joining a job." + }, + "timeOut": { + "$dynamic": false, + "type": "string", + "format": "duration", + "title": "The maximum job running time. The default is 7 days." + } + }, + "required": ["restartJobOnWorkerRestart", "timeOut"] + }, + "io.kestra.plugin.gcp.vertexai.models.WorkerPoolSpec": { + "type": "object", + "properties": { + "containerSpec": { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.vertexai.models.ContainerSpec" + }, + { + "$dynamic": false, + "title": " The custom container task." + } + ] + }, + "discSpec": { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.vertexai.models.DiscSpec" + }, + { + "$dynamic": false, + "title": "The specification of the disk." + } + ] + }, + "machineSpec": { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.vertexai.models.MachineSpec" + }, + { + "$dynamic": false, + "title": "The specification of a single machine." + } + ] + }, + "pythonPackageSpec": { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.gcp.vertexai.models.PythonPackageSpec" + }, + { + "$dynamic": false, + "title": "The python package specs." + } + ] + }, + "replicaCount": { + "$dynamic": false, + "type": "integer", + "title": "The specification of the disk." + } + }, + "required": ["containerSpec", "machineSpec"] + }, + "io.kestra.plugin.git.Clone": { + "type": "object", + "properties": { + "allowFailure": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "branch": { + "$dynamic": true, + "type": "string", + "title": "The initial Git branch." + }, + "cloneSubmodules": { + "$dynamic": false, + "type": "boolean", + "title": "Whether to clone submodules." + }, + "depth": { + "$dynamic": false, + "type": "integer", + "title": "Creates a shallow clone with a history truncated to the specified number of commits.", + "default": 1, + "minimum": 1, + "markdownDescription": "Default value is : `1`" + }, + "description": { + "type": "string" + }, + "directory": { + "$dynamic": true, + "type": "string", + "title": "The optional directory associated with the clone operation.", + "markdownDescription": "If the directory isn't set, the current directory will be used." + }, + "disabled": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "id": { + "type": "string", + "minLength": 1, + "pattern": "^[a-zA-Z0-9][a-zA-Z0-9_-]*" + }, + "logLevel": { + "type": "string", + "enum": ["ERROR", "WARN", "INFO", "DEBUG", "TRACE"] + }, + "passphrase": { + "$dynamic": true, + "type": "string", + "title": "The passphrase for the `privateKey`." + }, + "password": { + "$dynamic": true, + "type": "string", + "title": "The password or Personal Access Token (PAT). When you authenticate the task with a PAT, any flows or files pushed to Git from Kestra will be pushed from the user associated with that PAT. This way, you don't need to configure the commit author (the `authorName` and `authorEmail` properties)." + }, + "privateKey": { + "$dynamic": true, + "type": "string", + "title": "PEM-format private key content that is paired with a public key registered on Git.", + "markdownDescription": "To generate an ECDSA PEM format key from OpenSSH, use the following command: `ssh-keygen -t ecdsa -b 256 -m PEM`. You can then set this property with your private key content and put your public key on Git." + }, + "retry": { + "oneOf": [ + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Constant-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Exponential-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Random-2" + } + ] + }, + "timeout": { + "type": "string", + "format": "duration" + }, + "type": { + "const": "io.kestra.plugin.git.Clone" + }, + "url": { + "$dynamic": true, + "type": "string", + "title": "The URI to clone from." + }, + "username": { + "$dynamic": true, + "type": "string", + "title": "The username or organization." + }, + "workerGroup": { + "$ref": "#/definitions/io.kestra.core.models.tasks.WorkerGroup" + } + }, + "required": ["id", "type", "url"], + "title": "Clone a repository.", + "markdownDescription": "##### Examples\n\u003E Clone a public GitHub repository.\n```yaml\nurl: https://github.com/dbt-labs/jaffle_shop\nbranch: main\n```\n\n\u003E Clone a private repository from an HTTP server such as a private GitHub repository using a [personal access token](https://docs.github.com/en/authentication/keeping-your-account-and-data-secure/creating-a-personal-access-token).\n```yaml\nurl: https://github.com/kestra-io/examples\nbranch: main\nusername: git_username\npassword: your_personal_access_token\n```\n\n\u003E Clone a repository from an SSH server. If you want to clone the repository into a specific directory, you can configure the `directory` property as shown below.\n```yaml\nurl: git@github.com:kestra-io/kestra.git\ndirectory: kestra\nprivateKey: \u003Ckeyfile_content\u003E\npassphrase: \u003Cpassphrase\u003E\n```\n\n\u003E Clone a GitHub repository and run a Python ETL script. Note that the `Worker` task is required so that the Python script shares the same local file system with files cloned from GitHub in the previous task.\n```yaml\nid: gitPython\nnamespace: prod\n\ntasks:\n - id: fileSystem\n type: io.kestra.plugin.core.flow.WorkingDirectory\n tasks:\n - id: cloneRepository\n type: io.kestra.plugin.git.Clone\n url: https://github.com/kestra-io/examples\n branch: main\n - id: pythonETL\n type: io.kestra.plugin.scripts.python.Commands\n beforeCommands:\n - pip install requests pandas \u003E /dev/null\n commands:\n - python examples/scripts/etl_script.py\n```" + }, + "io.kestra.plugin.git.Push": { + "$deprecated": "true", + "type": "object", + "properties": { + "addFilesPattern": { + "$dynamic": true, + "title": "Patterns of files to add to the commit. Default is `.` which means all files.", + "default": ["."], + "markdownDescription": "A directory name (e.g. `dir` to add `dir/file1` and `dir/file2`) can also be given to add all files in the directory, recursively. File globs (e.g. `*.py`) are not yet supported.\n\nDefault value is : `- .`\n\nDefault value is : `- .`", + "type": "array", + "items": { + "$dynamic": true, + "type": "string" + } + }, + "allowFailure": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "author": { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.git.Push-Author" + }, + { + "$dynamic": false, + "title": "Commit author." + } + ] + }, + "branch": { + "$dynamic": true, + "type": "string", + "title": "The branch to which files should be committed and pushed.", + "markdownDescription": "If the branch doesn't exist yet, it will be created." + }, + "cloneSubmodules": { + "$dynamic": false, + "type": "boolean", + "title": "Whether to clone submodules." + }, + "commitMessage": { + "$dynamic": true, + "type": "string", + "title": "Commit message." + }, + "description": { + "type": "string" + }, + "directory": { + "$dynamic": true, + "type": "string", + "title": "The optional directory associated with the clone operation.", + "markdownDescription": "If the directory isn't set, the current directory will be used." + }, + "disabled": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "flows": { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.git.Push-FlowFiles" + }, + { + "$dynamic": false, + "title": "Whether to push flows from the current namespace to Git.", + "default": { + "enabled": true, + "childNamespaces": true, + "gitDirectory": "_flows" + }, + "markdownDescription": "Default value is : `enabled: true\nchildNamespaces: true\ngitDirectory: _flows`" + } + ] + }, + "id": { + "type": "string", + "minLength": 1, + "pattern": "^[a-zA-Z0-9][a-zA-Z0-9_-]*" + }, + "inputFiles": { + "$dynamic": true, + "title": "The files to create on the local filesystem. It can be a map or a JSON object.", + "oneOf": [ + { + "type": "object" + }, + { + "type": "string" + } + ] + }, + "logLevel": { + "type": "string", + "enum": ["ERROR", "WARN", "INFO", "DEBUG", "TRACE"] + }, + "namespaceFiles": { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.core.models.tasks.NamespaceFiles" + }, + { + "$dynamic": false, + "title": "Inject namespace files.", + "markdownDescription": "Inject namespace files to this task. When enabled, it will, by default, load all namespace files into the working directory. However, you can use the `include` or `exclude` properties to limit which namespace files will be injected." + } + ] + }, + "passphrase": { + "$dynamic": true, + "type": "string", + "title": "The passphrase for the `privateKey`." + }, + "password": { + "$dynamic": true, + "type": "string", + "title": "The password or Personal Access Token (PAT). When you authenticate the task with a PAT, any flows or files pushed to Git from Kestra will be pushed from the user associated with that PAT. This way, you don't need to configure the commit author (the `authorName` and `authorEmail` properties)." + }, + "privateKey": { + "$dynamic": true, + "type": "string", + "title": "PEM-format private key content that is paired with a public key registered on Git.", + "markdownDescription": "To generate an ECDSA PEM format key from OpenSSH, use the following command: `ssh-keygen -t ecdsa -b 256 -m PEM`. You can then set this property with your private key content and put your public key on Git." + }, + "retry": { + "oneOf": [ + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Constant-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Exponential-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Random-2" + } + ] + }, + "timeout": { + "type": "string", + "format": "duration" + }, + "type": { + "const": "io.kestra.plugin.git.Push" + }, + "url": { + "$dynamic": true, + "type": "string", + "title": "The URI to clone from." + }, + "username": { + "$dynamic": true, + "type": "string", + "title": "The username or organization." + }, + "workerGroup": { + "$ref": "#/definitions/io.kestra.core.models.tasks.WorkerGroup" + } + }, + "required": ["branch", "commitMessage", "id", "type"], + "title": "Commit and push files to a Git repository.", + "markdownDescription": "Replaced by [PushFlows](https://kestra.io/plugins/plugin-git/tasks/io.kestra.plugin.git.pushflows) and [PushNamespaceFiles](https://kestra.io/plugins/plugin-git/tasks/io.kestra.plugin.git.pushnamespacefiles). Previously, this task helps you to push your flows and namespace files to Git. To do that, you can set the `enabled` child property of `flows` and/or `namespaceFiles` to `true`. You can also add additional `inputFiles` to be committed and pushed. Furthermore, you can use this task in combination with the `Clone` task so that you can first clone the repository, then add or modify files and push to Git afterwards. Check the examples below as well as the [Version Control with Git](https://kestra.io/docs/developer-guide/git) documentation for more information.##### Examples\n\u003E Push flows and namespace files to a Git repository every 15 minutes.\n```yaml\nid: push_to_git\nnamespace: prod\n\ntasks:\n - id: commit_and_push\n type: io.kestra.plugin.git.Push\n namespaceFiles:\n enabled: true\n flows:\n enabled: true\n url: https://github.com/kestra-io/scripts\n branch: kestra\n username: git_username\n password: \"{{ secret('GITHUB_ACCESS_TOKEN') }}\"\n commitMessage: \"add flows and scripts {{ now() }}\"\n\ntriggers:\n - id: schedule_push\n type: io.kestra.plugin.core.trigger.Schedule\n cron: \"*/15 * * * *\"\n```\n\n\u003E Clone the main branch, generate a file in a script, and then push that new file to Git. Since we're in a working directory with a `.git` directory, you don't need to specify the URL in the Push task. However, the Git credentials always need to be explicitly provided on both Clone and Push tasks (unless using task defaults).\n```yaml\nid: push_new_file_to_git\nnamespace: dev\n\ninputs:\n - id: commit_message\n type: STRING\n defaults: add a new file to Git\n\ntasks:\n - id: wdir\n type: io.kestra.plugin.core.flow.WorkingDirectory\n tasks:\n - id: clone\n type: io.kestra.plugin.git.Clone\n branch: main\n url: https://github.com/kestra-io/scripts\n - id: generate_data\n type: io.kestra.plugin.scripts.python.Commands\n docker:\n image: ghcr.io/kestra-io/pydata:latest\n commands:\n - python generate_data/generate_orders.py\n - id: push\n type: io.kestra.plugin.git.Push\n username: git_username\n password: myPAT\n branch: feature_branch\n inputFiles:\n to_commit/avg_order.txt: \"{{ outputs.generate_data.vars.average_order }}\"\n addFilesPattern:\n - to_commit\n commitMessage: \"{{ inputs.commit_message }}\"\n```" + }, + "io.kestra.plugin.git.Push-Author": { + "type": "object", + "properties": { + "email": { + "$dynamic": true, + "type": "string", + "title": "The commit author email, if null no author will be set on this commit" + }, + "name": { + "$dynamic": true, + "type": "string", + "title": "The commit author name, if null the username will be used instead" + } + } + }, + "io.kestra.plugin.git.Push-FlowFiles": { + "type": "object", + "properties": { + "childNamespaces": { + "$dynamic": false, + "type": "boolean", + "title": "Whether flows from child namespaces should be included.", + "default": true, + "markdownDescription": "Default value is : `true`" + }, + "enabled": { + "$dynamic": false, + "type": "boolean", + "title": "Whether to push flows as YAML files to Git.", + "default": true, + "markdownDescription": "Default value is : `true`" + }, + "gitDirectory": { + "$dynamic": true, + "type": "string", + "title": "To which directory flows should be pushed (relative to `directory`).", + "default": "_flows", + "markdownDescription": "The default is `_flows`. This is the same directory name that you can see in the VS Code Editor.\n\nDefault value is : `_flows`" + } + } + }, + "io.kestra.plugin.git.PushFlows": { + "type": "object", + "properties": { + "allowFailure": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "authorEmail": { + "$dynamic": true, + "type": "string", + "title": "The commit author email.", + "markdownDescription": "If null, no author will be set on this commit." + }, + "authorName": { + "$dynamic": true, + "type": "string", + "title": "The commit author name.", + "default": "`username`", + "markdownDescription": "If null, the username will be used instead.\n\nDefault value is : `'`username`'`" + }, + "branch": { + "$dynamic": true, + "type": "string", + "title": "The branch to which files should be committed and pushed.", + "default": "kestra", + "markdownDescription": "If the branch doesn't exist yet, it will be created.\n\nDefault value is : `kestra`" + }, + "cloneSubmodules": { + "$dynamic": false, + "type": "boolean", + "title": "Whether to clone submodules." + }, + "commitMessage": { + "$dynamic": true, + "type": "string", + "title": "Git commit message.", + "default": "Add flows from `sourceNamespace` namespace", + "markdownDescription": "Default value is : `Add flows from `sourceNamespace` namespace`" + }, + "description": { + "type": "string" + }, + "disabled": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "dryRun": { + "$dynamic": false, + "type": "boolean", + "title": "If `true`, the task will only output modifications without pushing any file to Git yet. If `false` (default), all listed files will be pushed to Git immediately.", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "flows": { + "$dynamic": true, + "title": "List of glob patterns or a single one that declare which flows should be included in the Git commit.", + "default": "**", + "oneOf": [ + { + "type": "string" + }, + { + "type": "array", + "items": { + "type": "string" + } + } + ], + "markdownDescription": "By default, all flows from the specified sourceNamespace will be pushed (and optionally adjusted to match the targetNamespace before pushing to Git).\nIf you want to push only the current flow, you can use the \"{{flow.id}}\" expression or specify the flow ID explicitly, e.g. myflow.\nGiven that this is a list of glob patterns, you can include as many flows as you wish, provided that the user is authorized to access that namespace.\nNote that each glob pattern try to match the file name OR the relative path starting from `gitDirectory`\n\nDefault value is : `'**'`" + }, + "gitDirectory": { + "$dynamic": true, + "type": "string", + "title": "Directory to which flows should be pushed.", + "default": "_flows", + "markdownDescription": "If not set, flows will be pushed to a Git directory named _flows and will optionally also include subdirectories named after the child namespaces.\nIf you prefer, you can specify an arbitrary path, e.g., kestra/flows, allowing you to push flows to that specific Git directory.\nIf the `includeChildNamespaces` property is set to true, this task will also push all flows from child namespaces into their corresponding nested directories, e.g., flows from the child namespace called prod.marketing will be added to the marketing folder within the _flows folder.\nNote that the targetNamespace (here prod) is specified in the flow code; therefore, kestra will not create the prod directory within _flows. You can use the PushFlows task to push flows from the sourceNamespace, and use SyncFlows to then sync PR-approved flows to the targetNamespace, including all child namespaces.\n\nDefault value is : `_flows`" + }, + "id": { + "type": "string", + "minLength": 1, + "pattern": "^[a-zA-Z0-9][a-zA-Z0-9_-]*" + }, + "includeChildNamespaces": { + "$dynamic": false, + "type": "boolean", + "title": "Whether you want to push flows from child namespaces as well.", + "default": false, + "markdownDescription": "By default, it’s `false`, so the task will push only flows from the explicitly declared namespace without pushing flows from child namespaces. If set to `true`, flows from child namespaces will be pushed to child directories in Git. See the example below for a practical explanation:\n\n| Source namespace in the flow code | Git directory path | Synced to target namespace |\n| --------------------------------- | ------------------------------ | ----------------------------- |\n| namespace: dev | _flows/flow1.yml | namespace: prod |\n| namespace: dev | _flows/flow2.yml | namespace: prod |\n| namespace: dev.marketing | _flows/marketing/flow3.yml | namespace: prod.marketing |\n| namespace: dev.marketing | _flows/marketing/flow4.yml | namespace: prod.marketing |\n| namespace: dev.marketing.crm | _flows/marketing/crm/flow5.yml | namespace: prod.marketing.crm |\n| namespace: dev.marketing.crm | _flows/marketing/crm/flow6.yml | namespace: prod.marketing.crm |\n\nDefault value is : `false`" + }, + "logLevel": { + "type": "string", + "enum": ["ERROR", "WARN", "INFO", "DEBUG", "TRACE"] + }, + "passphrase": { + "$dynamic": true, + "type": "string", + "title": "The passphrase for the `privateKey`." + }, + "password": { + "$dynamic": true, + "type": "string", + "title": "The password or Personal Access Token (PAT). When you authenticate the task with a PAT, any flows or files pushed to Git from Kestra will be pushed from the user associated with that PAT. This way, you don't need to configure the commit author (the `authorName` and `authorEmail` properties)." + }, + "privateKey": { + "$dynamic": true, + "type": "string", + "title": "PEM-format private key content that is paired with a public key registered on Git.", + "markdownDescription": "To generate an ECDSA PEM format key from OpenSSH, use the following command: `ssh-keygen -t ecdsa -b 256 -m PEM`. You can then set this property with your private key content and put your public key on Git." + }, + "retry": { + "oneOf": [ + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Constant-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Exponential-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Random-2" + } + ] + }, + "sourceNamespace": { + "$dynamic": true, + "type": "string", + "title": "The source namespace from which flows should be synced to the `gitDirectory`.", + "default": "{{ flow.namespace }}", + "markdownDescription": "Default value is : `\"{{ flow.namespace }}\"`" + }, + "targetNamespace": { + "$dynamic": true, + "type": "string", + "title": "The target namespace, intended as the production namespace.", + "markdownDescription": "If set, the `sourceNamespace` will be overwritten to the `targetNamespace` in the flow source code to prepare your branch for merging into the production namespace." + }, + "timeout": { + "type": "string", + "format": "duration" + }, + "type": { + "const": "io.kestra.plugin.git.PushFlows" + }, + "url": { + "$dynamic": true, + "type": "string", + "title": "The URI to clone from." + }, + "username": { + "$dynamic": true, + "type": "string", + "title": "The username or organization." + }, + "workerGroup": { + "$ref": "#/definitions/io.kestra.core.models.tasks.WorkerGroup" + } + }, + "required": ["id", "type"], + "title": "Commit and push your saved flows to a Git repository.", + "markdownDescription": "Using this task, you can push one or more flows from a given namespace (and optionally also child namespaces) to Git.\nCheck the examples below to see how you can push all flows or only specific ones.\nYou can also learn about Git integration in the Version Control with [Git documentation](https://kestra.io/docs/developer-guide/git).##### Examples\n\u003E Automatically push all saved flows from the dev namespace and all child namespaces to a Git repository every day at 5 p.m. Before pushing to Git, the task will adjust the flow's source code to match the targetNamespace to prepare the Git branch for merging to the production namespace.\n```yaml\nid: push_to_git\nnamespace: system\n \ntasks:\n - id: commit_and_push\n type: io.kestra.plugin.git.PushFlows\n sourceNamespace: dev # the namespace from which flows are pushed\n targetNamespace: prod # the target production namespace; if different than sourceNamespace, the sourceNamespace in the source code will be overwritten by the targetNamespace\n flows: \"*\" # optional list of glob patterns; by default, all flows are pushed\n includeChildNamespaces: true # optional boolean, false by default\n gitDirectory: _flows\n url: https://github.com/kestra-io/scripts # required string\n username: git_username # required string needed for Auth with Git\n password: \"{{ secret('GITHUB_ACCESS_TOKEN') }}\"\n branch: kestra # optional, uses \"kestra\" by default\n commitMessage: \"add flows {{ now() }}\" # optional string\n dryRun: true # if true, you'll see what files will be added, modified or deleted based on the state in Git without overwriting the files yet\n \ntriggers:\n - id: schedule_push\n type: io.kestra.plugin.core.trigger.Schedule\n cron: \"0 17 * * *\" # release/push to Git every day at 5pm\n```\n\n\u003E Manually push a single flow to Git if the input push is set to true.\n```yaml\nid: myflow\nnamespace: prod\n \ninputs:\n - id: push\n type: BOOLEAN\n defaults: false\n \ntasks:\n - id: if\n type: io.kestra.plugin.core.flow.If\n condition: \"{{ inputs.push == true}}\"\n then:\n - id: commit_and_push\n type: io.kestra.plugin.git.PushFlows\n sourceNamespace: prod # optional; if you prefer templating, you can use \"{{ flow.namespace }}\"\n targetNamespace: prod # optional; by default, set to the same namespace as defined in sourceNamespace\n flows: myflow # if you prefer templating, you can use \"{{ flow.id }}\"\n url: https://github.com/kestra-io/scripts\n username: git_username\n password: \"{{ secret('GITHUB_ACCESS_TOKEN') }}\"\n branch: kestra\n commitMessage: \"add flow {{ flow.namespace ~ '.' ~ flow.id }}\" \n```" + }, + "io.kestra.plugin.git.PushNamespaceFiles": { + "type": "object", + "properties": { + "allowFailure": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "authorEmail": { + "$dynamic": true, + "type": "string", + "title": "The commit author email.", + "markdownDescription": "If null, no author will be set on this commit." + }, + "authorName": { + "$dynamic": true, + "type": "string", + "title": "The commit author name.", + "default": "`username`", + "markdownDescription": "If null, the username will be used instead.\n\nDefault value is : `'`username`'`" + }, + "branch": { + "$dynamic": true, + "type": "string", + "title": "The branch to which Namespace Files should be committed and pushed.", + "default": "kestra", + "markdownDescription": "If the branch doesn’t exist yet, it will be created. If not set, the task will push the files to the `kestra` branch.\n\nDefault value is : `kestra`" + }, + "cloneSubmodules": { + "$dynamic": false, + "type": "boolean", + "title": "Whether to clone submodules." + }, + "commitMessage": { + "$dynamic": true, + "type": "string", + "title": "Git commit message.", + "default": "Add files from `namespace` namespace", + "markdownDescription": "Default value is : `Add files from `namespace` namespace`" + }, + "description": { + "type": "string" + }, + "disabled": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "dryRun": { + "$dynamic": false, + "type": "boolean", + "title": "If `true`, the task will only output modifications without pushing any file to Git yet. If `false` (default), all listed files will be pushed to Git immediately.", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "files": { + "$dynamic": true, + "title": "Which Namespace Files should be included in the commit.", + "default": "**", + "markdownDescription": "By default, Kestra will push all Namespace Files from the specified namespace.\nIf you want to push only a specific file or directory e.g. myfile.py, you can set it explicitly using files: myfile.py.\nGiven that this is a glob pattern string (or a list of glob patterns), you can include as many files as you wish, provided that the user is authorized to access that namespace.\nNote that each glob pattern try to match the file name OR the relative path starting from `gitDirectory`\n\nDefault value is : `'**'`" + }, + "gitDirectory": { + "$dynamic": true, + "type": "string", + "title": "Directory to which Namespace Files should be pushed.", + "default": "_files", + "markdownDescription": "If not set, files will be pushed to a Git directory named _files. See the table below for an example mapping of Namespace Files to Git paths:\n\n| Namespace File Path | Git directory path |\n| --------------------- | ---------------------------- |\n| scripts/app.py | _files/scripts/app.py |\n| scripts/etl.py | _files/scripts/etl.py |\n| queries/orders.sql | _files/queries/orders.sql |\n| queries/customers.sql | _files/queries/customers.sql |\n| requirements.txt | _files/requirements.txt |\n\nDefault value is : `_files`" + }, + "id": { + "type": "string", + "minLength": 1, + "pattern": "^[a-zA-Z0-9][a-zA-Z0-9_-]*" + }, + "logLevel": { + "type": "string", + "enum": ["ERROR", "WARN", "INFO", "DEBUG", "TRACE"] + }, + "namespace": { + "$dynamic": true, + "type": "string", + "title": "The namespace from which files should be pushed to the `gitDirectory`.", + "default": "{{ flow.namespace }}", + "markdownDescription": "Default value is : `\"{{ flow.namespace }}\"`" + }, + "passphrase": { + "$dynamic": true, + "type": "string", + "title": "The passphrase for the `privateKey`." + }, + "password": { + "$dynamic": true, + "type": "string", + "title": "The password or Personal Access Token (PAT). When you authenticate the task with a PAT, any flows or files pushed to Git from Kestra will be pushed from the user associated with that PAT. This way, you don't need to configure the commit author (the `authorName` and `authorEmail` properties)." + }, + "privateKey": { + "$dynamic": true, + "type": "string", + "title": "PEM-format private key content that is paired with a public key registered on Git.", + "markdownDescription": "To generate an ECDSA PEM format key from OpenSSH, use the following command: `ssh-keygen -t ecdsa -b 256 -m PEM`. You can then set this property with your private key content and put your public key on Git." + }, + "retry": { + "oneOf": [ + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Constant-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Exponential-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Random-2" + } + ] + }, + "timeout": { + "type": "string", + "format": "duration" + }, + "type": { + "const": "io.kestra.plugin.git.PushNamespaceFiles" + }, + "url": { + "$dynamic": true, + "type": "string", + "title": "The URI to clone from." + }, + "username": { + "$dynamic": true, + "type": "string", + "title": "The username or organization." + }, + "workerGroup": { + "$ref": "#/definitions/io.kestra.core.models.tasks.WorkerGroup" + } + }, + "required": ["id", "type"], + "title": "Commit and push Namespace Files created from kestra UI to Git.", + "markdownDescription": "Using this task, you can push one or more Namespace Files from a given kestra namespace to Git. Check the [Version Control with Git](https://kestra.io/docs/developer-guide/git) documentation for more details.##### Examples\n\u003E Push all saved Namespace Files from the dev namespace to a Git repository every 15 minutes.\n```yaml\nid: push_to_git\nnamespace: system\n \ntasks:\n - id: commit_and_push\n type: io.kestra.plugin.git.PushNamespaceFiles\n namespace: dev\n files: \"*\" # optional list of glob patterns; by default, all files are pushed\n gitDirectory: _files # optional path in Git where Namespace Files should be pushed\n url: https://github.com/kestra-io/scripts # required string\n username: git_username # required string needed for Auth with Git\n password: \"{{ secret('GITHUB_ACCESS_TOKEN') }}\"\n branch: dev # optional, uses \"kestra\" by default\n commitMessage: \"add namespace files\" # optional string\n dryRun: true # if true, you'll see what files will be added, modified or deleted based on the state in Git without overwriting the files yet\n \ntriggers:\n - id: schedule_push_to_git\n type: io.kestra.plugin.core.trigger.Schedule\n cron: \"*/15 * * * *\"\n```" + }, + "io.kestra.plugin.git.Sync": { + "type": "object", + "properties": { + "allowFailure": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "branch": { + "$dynamic": true, + "type": "string", + "title": "The initial Git branch." + }, + "cloneSubmodules": { + "$dynamic": false, + "type": "boolean", + "title": "Whether to clone submodules." + }, + "description": { + "type": "string" + }, + "disabled": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "dryRun": { + "$dynamic": false, + "type": "boolean", + "title": "If true, the task will only display modifications without syncing any files yet. If false (default), all namespace files and flows will be overwritten based on the state in Git." + }, + "gitDirectory": { + "$dynamic": true, + "type": "string", + "title": "Git directory to sync code from. If not specified, all files from a Git repository will be synchronized." + }, + "id": { + "type": "string", + "minLength": 1, + "pattern": "^[a-zA-Z0-9][a-zA-Z0-9_-]*" + }, + "logLevel": { + "type": "string", + "enum": ["ERROR", "WARN", "INFO", "DEBUG", "TRACE"] + }, + "namespaceFilesDirectory": { + "$dynamic": true, + "type": "string", + "title": "Namespace files directory to which files from Git should be synced. It defaults to the root directory of the namespace." + }, + "passphrase": { + "$dynamic": true, + "type": "string", + "title": "The passphrase for the `privateKey`." + }, + "password": { + "$dynamic": true, + "type": "string", + "title": "The password or Personal Access Token (PAT). When you authenticate the task with a PAT, any flows or files pushed to Git from Kestra will be pushed from the user associated with that PAT. This way, you don't need to configure the commit author (the `authorName` and `authorEmail` properties)." + }, + "privateKey": { + "$dynamic": true, + "type": "string", + "title": "PEM-format private key content that is paired with a public key registered on Git.", + "markdownDescription": "To generate an ECDSA PEM format key from OpenSSH, use the following command: `ssh-keygen -t ecdsa -b 256 -m PEM`. You can then set this property with your private key content and put your public key on Git." + }, + "retry": { + "oneOf": [ + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Constant-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Exponential-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Random-2" + } + ] + }, + "timeout": { + "type": "string", + "format": "duration" + }, + "type": { + "const": "io.kestra.plugin.git.Sync" + }, + "url": { + "$dynamic": true, + "type": "string", + "title": "The URI to clone from." + }, + "username": { + "$dynamic": true, + "type": "string", + "title": "The username or organization." + }, + "workerGroup": { + "$ref": "#/definitions/io.kestra.core.models.tasks.WorkerGroup" + } + }, + "required": ["id", "type", "url"], + "title": "Synchronizes the code for namespace files and flows based on the current state in Git.", + "markdownDescription": "Replaced by [SyncFlows](https://kestra.io/plugins/plugin-git/tasks/io.kestra.plugin.git.syncflows) and [SyncNamespaceFiles](https://kestra.io/plugins/plugin-git/tasks/io.kestra.plugin.git.syncnamespacefiles). Files located in `gitDirectory` will be synced with namespace files under `namespaceFilesDirectory` folder. Any file not present in the `gitDirectory` but present in `namespaceFilesDirectory` will be deleted from namespace files to ensure that Git remains a single source of truth for your workflow and application code. If you don't want some files from Git to be synced, you can add them to a `.kestraignore` file at the root of your `gitDirectory` folder — that file works the same way as `.gitignore`. \n\nIf there is a `_flows` folder under the `gitDirectory` folder, any file within it will be parsed and imported as a flow under the namespace declared in the task. It's important to keep in mind that all flows **must be located within the same directory without any nested directories**. If you want to deploy all flows to kestra from Git using the Git Sync pattern, you have to place all your flows in the `_flows` directory. Adding namespace folders will result in an error and that's expected. Flows are not equivalent to Namespace Files — while Namespace Files can be stored in arbitrarily nested folders stored in Internal Storage, Flows are just metadata. Flows are sent to Kestra's API and stored in the database backend. This is why they follow a different deployment pattern and cannot be stored in nested folders in Git. \n\nAnother important aspect is that the namespace defined in the flow code **might get overwritten (!)** if the namespace defined within Git doesn't match the namespace or a child namespace defined in the Git Sync task. All Git deployments, both the Git Sync and Kestra's CI/CD integrations, operate on a namespace level to ensure namespace-level governance of permissions, secrets, and to allow separation of resources. If you leverage multiple namespaces in a monorepo, you can create multiple flows, each using the Git Sync task to sync specific Git directories to the desired namespaces.##### Examples\n\u003E Synchronizes namespace files and flows based on the current state in a Git repository. This flow can run either on a schedule (using the Schedule trigger) or anytime you push a change to a given Git branch (using the Webhook trigger).\n```yaml\nid: sync_from_git\nnamespace: prod\n\ntasks:\n - id: git\n type: io.kestra.plugin.git.Sync\n url: https://github.com/kestra-io/scripts\n branch: main\n username: git_username\n password: \"{{ secret('GITHUB_ACCESS_TOKEN') }}\"\n gitDirectory: your_git_dir # optional, otherwise all files\n namespaceFilesDirectory: your_namespace_files_location # optional, otherwise the namespace root directory\n dryRun: true # if true, print the output of what files will be added/modified or deleted without overwriting the files yet\n\ntriggers:\n - id: every_minute\n type: io.kestra.plugin.core.trigger.Schedule\n cron: \"*/1 * * * *\"\n```" + }, + "io.kestra.plugin.git.SyncFlows": { + "type": "object", + "properties": { + "allowFailure": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "branch": { + "$dynamic": true, + "type": "string", + "title": "The branch from which flows will be synced to Kestra.", + "default": "main", + "markdownDescription": "Default value is : `main`" + }, + "cloneSubmodules": { + "$dynamic": false, + "type": "boolean", + "title": "Whether to clone submodules." + }, + "delete": { + "$dynamic": false, + "type": "boolean", + "title": "Whether you want to delete flows present in kestra but not present in Git.", + "default": false, + "markdownDescription": "It’s `false` by default to avoid destructive behavior. Use this property with caution because when set to `true` and `includeChildNamespaces` is also set to `true`, this task will delete all flows from the `targetNamespace` and all its child namespaces that are not present in Git rather than only overwriting the changes.\n\nDefault value is : `false`" + }, + "description": { + "type": "string" + }, + "disabled": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "dryRun": { + "$dynamic": false, + "type": "boolean", + "title": "If `true`, the task will only output modifications without performing any modification to Kestra. If `false` (default), all listed modifications will be applied.", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "flowService": { + "$ref": "#/definitions/io.kestra.core.services.FlowService" + }, + "gitDirectory": { + "$dynamic": true, + "type": "string", + "title": "Directory from which flows should be synced.", + "default": "_flows", + "markdownDescription": "If not set, this task assumes your branch has a Git directory named `_flows` (equivalent to the default `gitDirectory` of the [PushFlows](https://kestra.io/docs/how-to-guides/pushflows) task).\n\nIf `includeChildNamespaces` property is set to `true`, this task will push all flows from nested subdirectories into their corresponding child namespaces, e.g. if `targetNamespace` is set to `prod`, then:\n\n- flows from the `_flows` directory will be synced to the `prod` namespace,\n- flows from the `_flows/marketing` subdirectory in Git will be synced to the `prod.marketing` namespace,\n- flows from the `_flows/marketing/crm` subdirectory will be synced to the `prod.marketing.crm` namespace.\n\nDefault value is : `_flows`" + }, + "id": { + "type": "string", + "minLength": 1, + "pattern": "^[a-zA-Z0-9][a-zA-Z0-9_-]*" + }, + "includeChildNamespaces": { + "$dynamic": true, + "type": "boolean", + "title": "Whether you want to sync flows from child namespaces as well.", + "default": false, + "markdownDescription": "It’s `false` by default so that we sync only flows from the explicitly declared `gitDirectory` without traversing child directories. If set to `true`, flows from subdirectories in Git will be synced to child namespace in Kestra using the dot notation `.` for each subdirectory in the folder structure.\n\nDefault value is : `false`" + }, + "logLevel": { + "type": "string", + "enum": ["ERROR", "WARN", "INFO", "DEBUG", "TRACE"] + }, + "passphrase": { + "$dynamic": true, + "type": "string", + "title": "The passphrase for the `privateKey`." + }, + "password": { + "$dynamic": true, + "type": "string", + "title": "The password or Personal Access Token (PAT). When you authenticate the task with a PAT, any flows or files pushed to Git from Kestra will be pushed from the user associated with that PAT. This way, you don't need to configure the commit author (the `authorName` and `authorEmail` properties)." + }, + "privateKey": { + "$dynamic": true, + "type": "string", + "title": "PEM-format private key content that is paired with a public key registered on Git.", + "markdownDescription": "To generate an ECDSA PEM format key from OpenSSH, use the following command: `ssh-keygen -t ecdsa -b 256 -m PEM`. You can then set this property with your private key content and put your public key on Git." + }, + "retry": { + "oneOf": [ + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Constant-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Exponential-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Random-2" + } + ] + }, + "targetNamespace": { + "$dynamic": true, + "type": "string", + "title": "The target namespace to which flows from the `gitDirectory` should be synced.", + "markdownDescription": "If the top-level namespace specified in the flow source code is different than the `targetNamespace`, it will be overwritten by this target namespace. This facilitates moving between environments and projects. If `includeChildNamespaces` property is set to true, the top-level namespace in the source code will also be overwritten by the `targetNamespace` in children namespaces.\n\nFor example, if the `targetNamespace` is set to `prod` and `includeChildNamespaces` property is set to `true`, then:\n- `namespace: dev` in flow source code will be overwritten by `namespace: prod`,\n- `namespace: dev.marketing.crm` will be overwritten by `namespace: prod.marketing.crm`.\n\nSee the table below for a practical explanation:\n\n| Source namespace in the flow code | Git directory path | Synced to target namespace |\n| --------------------------------- | ------------------------------ | ----------------------------- |\n| namespace: dev | _flows/flow1.yml | namespace: prod |\n| namespace: dev | _flows/flow2.yml | namespace: prod |\n| namespace: dev.marketing | _flows/marketing/flow3.yml | namespace: prod.marketing |\n| namespace: dev.marketing | _flows/marketing/flow4.yml | namespace: prod.marketing |\n| namespace: dev.marketing.crm | _flows/marketing/crm/flow5.yml | namespace: prod.marketing.crm |\n| namespace: dev.marketing.crm | _flows/marketing/crm/flow6.yml | namespace: prod.marketing.crm |\n" + }, + "timeout": { + "type": "string", + "format": "duration" + }, + "type": { + "const": "io.kestra.plugin.git.SyncFlows" + }, + "url": { + "$dynamic": true, + "type": "string", + "title": "The URI to clone from." + }, + "username": { + "$dynamic": true, + "type": "string", + "title": "The username or organization." + }, + "workerGroup": { + "$ref": "#/definitions/io.kestra.core.models.tasks.WorkerGroup" + } + }, + "required": ["id", "targetNamespace", "type"], + "title": "Sync flows from Git to Kestra.", + "markdownDescription": "This task syncs flows from a given Git branch to a Kestra `namespace`. If the `delete` property is set to true, any flow available in kestra but not present in the `gitDirectory` will be deleted, considering Git as a single source of truth for your flows. Check the [Version Control with Git](https://kestra.io/docs/developer-guide/git) documentation for more details.##### Examples\n\u003E Sync flows from a Git repository. This flow can run either on a schedule (using the [Schedule](https://kestra.io/docs/workflow-components/triggers#schedule-trigger) trigger) or anytime you push a change to a given Git branch (using the [Webhook](https://kestra.io/docs/workflow-components/triggers#webhook-trigger) trigger).\n```yaml\nid: sync_flows_from_git\nnamespace: system\n\ntasks:\n - id: git\n type: io.kestra.plugin.git.SyncFlows\n gitDirectory: flows # optional; set to _flows by default\n targetNamespace: git # required\n includeChildNamespaces: true # optional; by default, it's set to false to allow explicit definition\n delete: true # optional; by default, it's set to false to avoid destructive behavior\n url: https://github.com/kestra-io/flows # required\n branch: main\n username: git_username\n password: \"{{ secret('GITHUB_ACCESS_TOKEN') }}\"\n dryRun: true # if true, the task will only log which flows from Git will be added/modified or deleted in kestra without making any changes in kestra backend yet\n\ntriggers:\n - id: every_full_hour\n type: io.kestra.plugin.core.trigger.Schedule\n cron: \"0 * * * *\"\n```" + }, + "io.kestra.plugin.git.SyncNamespaceFiles": { + "type": "object", + "properties": { + "allowFailure": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "branch": { + "$dynamic": true, + "type": "string", + "title": "The branch from which Namespace Files will be synced to Kestra.", + "default": "kestra", + "markdownDescription": "Default value is : `kestra`" + }, + "cloneSubmodules": { + "$dynamic": false, + "type": "boolean", + "title": "Whether to clone submodules." + }, + "delete": { + "$dynamic": false, + "type": "boolean", + "title": "Whether you want to delete Namespace Files present in kestra but not present in Git.", + "default": false, + "markdownDescription": "It’s `false` by default to avoid destructive behavior. Use with caution because when set to `true`, this task will delete all Namespace Files which are not present in Git.\n\nDefault value is : `false`" + }, + "description": { + "type": "string" + }, + "disabled": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "dryRun": { + "$dynamic": false, + "type": "boolean", + "title": "If `true`, the task will only output modifications without performing any modification to Kestra. If `false` (default), all listed modifications will be applied.", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "gitDirectory": { + "$dynamic": true, + "type": "string", + "title": "Directory from which Namespace Files should be synced.", + "default": "_files", + "markdownDescription": "If not set, this task assumes your branch includes a directory named `_files`\n\nDefault value is : `_files`" + }, + "id": { + "type": "string", + "minLength": 1, + "pattern": "^[a-zA-Z0-9][a-zA-Z0-9_-]*" + }, + "logLevel": { + "type": "string", + "enum": ["ERROR", "WARN", "INFO", "DEBUG", "TRACE"] + }, + "namespace": { + "$dynamic": true, + "type": "string", + "title": "The namespace from which files should be synced from the `gitDirectory` to Kestra.", + "default": "{{ flow.namespace }}", + "markdownDescription": "Default value is : `\"{{ flow.namespace }}\"`" + }, + "passphrase": { + "$dynamic": true, + "type": "string", + "title": "The passphrase for the `privateKey`." + }, + "password": { + "$dynamic": true, + "type": "string", + "title": "The password or Personal Access Token (PAT). When you authenticate the task with a PAT, any flows or files pushed to Git from Kestra will be pushed from the user associated with that PAT. This way, you don't need to configure the commit author (the `authorName` and `authorEmail` properties)." + }, + "privateKey": { + "$dynamic": true, + "type": "string", + "title": "PEM-format private key content that is paired with a public key registered on Git.", + "markdownDescription": "To generate an ECDSA PEM format key from OpenSSH, use the following command: `ssh-keygen -t ecdsa -b 256 -m PEM`. You can then set this property with your private key content and put your public key on Git." + }, + "retry": { + "oneOf": [ + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Constant-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Exponential-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Random-2" + } + ] + }, + "timeout": { + "type": "string", + "format": "duration" + }, + "type": { + "const": "io.kestra.plugin.git.SyncNamespaceFiles" + }, + "url": { + "$dynamic": true, + "type": "string", + "title": "The URI to clone from." + }, + "username": { + "$dynamic": true, + "type": "string", + "title": "The username or organization." + }, + "workerGroup": { + "$ref": "#/definitions/io.kestra.core.models.tasks.WorkerGroup" + } + }, + "required": ["id", "type"], + "title": "Sync Namespace Files from Git to Kestra.", + "markdownDescription": "This task syncs Namespace Files from a given Git branch to a Kestra `namespace. If the delete property is set to true, any Namespace Files available in kestra but not present in the gitDirectory will be deleted, allowing to maintain Git as a single source of truth for your Namespace Files. Check the Version Control with Git documentation for more details.\nUsing this task, you can push one or more Namespace Files from a given kestra namespace to Git. Check the [Version Control with Git](https://kestra.io/docs/developer-guide/git) documentation for more details.##### Examples\n\u003E Sync Namespace Files from a Git repository. This flow can run either on a schedule (using the Schedule trigger) or anytime you push a change to a given Git branch (using the Webhook trigger).\n```yaml\nid: sync_from_git\nnamespace: system\n \ntasks:\n - id: git\n type: io.kestra.plugin.git.SyncNamespaceFiles\n namespace: prod\n gitDirectory: _files # optional; set to _files by default\n delete: true # optional; by default, it's set to false to avoid destructive behavior\n url: https://github.com/kestra-io/flows\n branch: main\n username: git_username\n password: \"{{ secret('GITHUB_ACCESS_TOKEN') }}\"\n dryRun: true # if true, the task will only log which flows from Git will be added/modified or deleted in kestra without making any changes in kestra backend yet\n \ntriggers:\n - id: every_minute\n type: io.kestra.plugin.core.trigger.Schedule\n cron: \"*/1 * * * *\"\n```" + }, + "io.kestra.plugin.github.code.Search": { + "type": "object", + "properties": { + "Order output": { + "$dynamic": false, + "type": "string", + "enum": ["ASC", "DESC"], + "markdownDescription": "ASC - the results will be in ascending order\nDESC - the results will be in descending order\n" + }, + "Sort output": { + "$dynamic": false, + "type": "string", + "enum": ["BEST_MATCH", "INDEXED"], + "markdownDescription": "BEST_MATCH - the results will be sorted by best match results\nINDEXED - the results will be sorted by the index\n" + }, + "Whether to include forks": { + "$dynamic": false, + "type": "string", + "enum": ["PARENT_AND_FORKS", "FORKS_ONLY", "PARENT_ONLY"] + }, + "allowFailure": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "description": { + "type": "string" + }, + "disabled": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "extension": { + "$dynamic": true, + "type": "string", + "title": "The file extension" + }, + "filename": { + "$dynamic": true, + "type": "string", + "title": "The file name" + }, + "id": { + "type": "string", + "minLength": 1, + "pattern": "^[a-zA-Z0-9][a-zA-Z0-9_-]*" + }, + "in": { + "$dynamic": true, + "type": "string", + "title": "In" + }, + "jwtToken": { + "$dynamic": true, + "type": "string", + "title": "GitHub JWT token", + "markdownDescription": "Does not requires additional fields to log-in" + }, + "language": { + "$dynamic": true, + "type": "string", + "title": "The language" + }, + "logLevel": { + "type": "string", + "enum": ["ERROR", "WARN", "INFO", "DEBUG", "TRACE"] + }, + "login": { + "$dynamic": true, + "type": "string", + "title": "GitHub login", + "markdownDescription": "Requires additional field: oauthToken, to log-in" + }, + "oauthToken": { + "$dynamic": true, + "type": "string", + "title": "GitHub oauthToken", + "markdownDescription": "GitHub Personal Access Token. In addition, can be used with login or by its own" + }, + "path": { + "$dynamic": true, + "type": "string", + "title": "The file path" + }, + "query": { + "$dynamic": true, + "type": "string", + "title": "The query contains one or more search keywords and qualifiers", + "markdownDescription": "Allow you to limit your search to specific areas of GitHub" + }, + "repository": { + "$dynamic": true, + "type": "string", + "title": "The GitHub repository" + }, + "retry": { + "oneOf": [ + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Constant-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Exponential-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Random-2" + } + ] + }, + "size": { + "$dynamic": true, + "type": "string", + "title": "The file path" + }, + "timeout": { + "type": "string", + "format": "duration" + }, + "type": { + "const": "io.kestra.plugin.github.code.Search" + }, + "user": { + "$dynamic": true, + "type": "string", + "title": "Search commits in all repositories owned by a certain user" + }, + "workerGroup": { + "$ref": "#/definitions/io.kestra.core.models.tasks.WorkerGroup" + } + }, + "required": ["id", "type"], + "title": "Search for GitHub code", + "markdownDescription": "Requires authentication##### Examples\n\u003E \n```yaml\nid: search\ntype: io.kestra.plugin.github.code.Search\noauthToken: your_github_token\nquery: \"addClass in:file language:js repo:jquery/jquery\"\n\n```\n\n\u003E \n```yaml\nid: search\ntype: io.kestra.plugin.github.code.Search\noauthToken: your_github_token\nquery: addClass\nin: file\nlanguage: js\nrepository: jquery/jquery\n\n```" + }, + "io.kestra.plugin.github.commits.Search": { + "type": "object", + "properties": { + "Filters merge commits": { + "$dynamic": false, + "type": "boolean" + }, + "Find commits by a particular user": { + "$dynamic": true, + "type": "string" + }, + "Match commits authored within the specified date range": { + "$dynamic": true, + "type": "string", + "markdownDescription": "When you search for a date, you can use greater than, less than, and range qualifiers to further filter results" + }, + "Match commits by the author's full email address": { + "$dynamic": true, + "type": "string" + }, + "Match commits by the committer's full email address": { + "$dynamic": true, + "type": "string" + }, + "Match commits by the name of the author": { + "$dynamic": true, + "type": "string" + }, + "Match commits by the name of the committer": { + "$dynamic": true, + "type": "string" + }, + "Match commits committed within the specified date range": { + "$dynamic": true, + "type": "string", + "markdownDescription": "When you search for a date, you can use greater than, less than, and range qualifiers to further filter results" + }, + "Matches commits from repositories with the specified visibility": { + "$dynamic": true, + "type": "string" + }, + "Matches commits with the specified SHA-1 git tree hash": { + "$dynamic": true, + "type": "string" + }, + "Matches commits with the specified SHA-1 hash": { + "$dynamic": true, + "type": "string" + }, + "Order output": { + "$dynamic": false, + "type": "string", + "enum": ["ASC", "DESC"], + "markdownDescription": "ASC - the results will be in ascending order\nDESC - the results will be in descending order\n" + }, + "Search commits in all repositories owned by a certain organization": { + "$dynamic": true, + "type": "string" + }, + "Search commits in all repositories owned by a certain user": { + "$dynamic": true, + "type": "string" + }, + "Search in specified repository": { + "$dynamic": true, + "type": "string" + }, + "Sort output": { + "$dynamic": false, + "type": "string", + "enum": ["COMMITTER_DATE", "AUTHOR_DATE"], + "markdownDescription": "COMMITTER_DATE - the results will be sorted by when user joined to Github\nAUTHOR_DATE - the results will be sorted by the number of repositories owned by user\n" + }, + "The query contains one or more search keywords and qualifiers": { + "$dynamic": true, + "type": "string", + "markdownDescription": "Allow you to limit your search to specific areas of GitHub" + }, + "allowFailure": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "description": { + "type": "string" + }, + "disabled": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "id": { + "type": "string", + "minLength": 1, + "pattern": "^[a-zA-Z0-9][a-zA-Z0-9_-]*" + }, + "jwtToken": { + "$dynamic": true, + "type": "string", + "title": "GitHub JWT token", + "markdownDescription": "Does not requires additional fields to log-in" + }, + "logLevel": { + "type": "string", + "enum": ["ERROR", "WARN", "INFO", "DEBUG", "TRACE"] + }, + "login": { + "$dynamic": true, + "type": "string", + "title": "GitHub login", + "markdownDescription": "Requires additional field: oauthToken, to log-in" + }, + "matches commits whose parent has the specified SHA-1 hash": { + "$dynamic": true, + "type": "string" + }, + "oauthToken": { + "$dynamic": true, + "type": "string", + "title": "GitHub oauthToken", + "markdownDescription": "GitHub Personal Access Token. In addition, can be used with login or by its own" + }, + "retry": { + "oneOf": [ + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Constant-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Exponential-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Random-2" + } + ] + }, + "timeout": { + "type": "string", + "format": "duration" + }, + "type": { + "const": "io.kestra.plugin.github.commits.Search" + }, + "workerGroup": { + "$ref": "#/definitions/io.kestra.core.models.tasks.WorkerGroup" + } + }, + "required": ["id", "type"], + "title": "Search for GitHub commits", + "markdownDescription": "Requires authentication##### Examples\n\u003E \n```yaml\nid: commits\ntype: io.kestra.plugin.github.commits.Search\noauthToken: your_github_token\nquery: \"Initial repo:kestra-io/plugin-github language:java\"\n\n```\n\n\u003E \n```yaml\nid: commits\ntype: io.kestra.plugin.github.commits.Search\noauthToken: your_github_token\nquery: Initial\nrepository: kestra-io/plugin-github\n\n```" + }, + "io.kestra.plugin.github.issues.Comment": { + "type": "object", + "properties": { + "allowFailure": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "body": { + "$dynamic": true, + "type": "string", + "title": "Ticket body" + }, + "description": { + "type": "string" + }, + "disabled": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "id": { + "type": "string", + "minLength": 1, + "pattern": "^[a-zA-Z0-9][a-zA-Z0-9_-]*" + }, + "issueNumber": { + "$dynamic": false, + "type": "integer", + "title": "Ticket number" + }, + "jwtToken": { + "$dynamic": true, + "type": "string", + "title": "GitHub JWT token", + "markdownDescription": "Does not requires additional fields to log-in" + }, + "logLevel": { + "type": "string", + "enum": ["ERROR", "WARN", "INFO", "DEBUG", "TRACE"] + }, + "login": { + "$dynamic": true, + "type": "string", + "title": "GitHub login", + "markdownDescription": "Requires additional field: oauthToken, to log-in" + }, + "oauthToken": { + "$dynamic": true, + "type": "string", + "title": "GitHub oauthToken", + "markdownDescription": "GitHub Personal Access Token. In addition, can be used with login or by its own" + }, + "repository": { + "$dynamic": true, + "type": "string", + "title": "GitHub repository", + "markdownDescription": "Repository where issue/ticket should be created. It's a string of Username + / + Repository name" + }, + "retry": { + "oneOf": [ + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Constant-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Exponential-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Random-2" + } + ] + }, + "timeout": { + "type": "string", + "format": "duration" + }, + "type": { + "const": "io.kestra.plugin.github.issues.Comment" + }, + "workerGroup": { + "$ref": "#/definitions/io.kestra.core.models.tasks.WorkerGroup" + } + }, + "required": ["id", "type"], + "title": "Create GitHub issue comment", + "markdownDescription": "If no authentication is provided, anonymous authentication will be used##### Examples\n\u003E \n```yaml\nid: comment\ntype: io.kestra.plugin.github.issues.Comment\noauthToken: your_github_token\nrepository: kestra-io/kestra\nissueNumber: 1347\nbody: \"{{ execution.id }} has failed on {{ taskrun.startDate }}. See the link below for more details\"\n\n```" + }, + "io.kestra.plugin.github.issues.Create": { + "type": "object", + "properties": { + "allowFailure": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "assignees": { + "$dynamic": true, + "title": "Ticket assignee", + "markdownDescription": "List of unique names of assignees", + "type": "array", + "items": { + "$dynamic": true, + "type": "string" + } + }, + "body": { + "$dynamic": true, + "type": "string", + "title": "Ticket body" + }, + "description": { + "type": "string" + }, + "disabled": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "id": { + "type": "string", + "minLength": 1, + "pattern": "^[a-zA-Z0-9][a-zA-Z0-9_-]*" + }, + "jwtToken": { + "$dynamic": true, + "type": "string", + "title": "GitHub JWT token", + "markdownDescription": "Does not requires additional fields to log-in" + }, + "labels": { + "$dynamic": true, + "title": "Ticket label", + "markdownDescription": "List of labels for ticket", + "type": "array", + "items": { + "$dynamic": true, + "type": "string" + } + }, + "logLevel": { + "type": "string", + "enum": ["ERROR", "WARN", "INFO", "DEBUG", "TRACE"] + }, + "login": { + "$dynamic": true, + "type": "string", + "title": "GitHub login", + "markdownDescription": "Requires additional field: oauthToken, to log-in" + }, + "oauthToken": { + "$dynamic": true, + "type": "string", + "title": "GitHub oauthToken", + "markdownDescription": "GitHub Personal Access Token. In addition, can be used with login or by its own" + }, + "repository": { + "$dynamic": true, + "type": "string", + "title": "GitHub repository", + "markdownDescription": "Repository where issue/ticket should be created. It's a string of Username + / + Repository name" + }, + "retry": { + "oneOf": [ + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Constant-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Exponential-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Random-2" + } + ] + }, + "timeout": { + "type": "string", + "format": "duration" + }, + "title": { + "$dynamic": true, + "type": "string", + "title": "Ticket title" + }, + "type": { + "const": "io.kestra.plugin.github.issues.Create" + }, + "workerGroup": { + "$ref": "#/definitions/io.kestra.core.models.tasks.WorkerGroup" + } + }, + "required": ["id", "type"], + "title": "Create a GitHub issue", + "markdownDescription": "If no authentication is provided, anonymous authentication will be used##### Examples\n\u003E Create an issue in a repository\n```yaml\nid: create\ntype: io.kestra.plugin.github.issues.Create\njwtToken: your_github_jwt_token\nrepository: kestra-io/kestra\ntitle: Workflow failed\nbody: \"{{ execution.id }} has failed on {{ taskrun.startDate }}. See the link below for more details\"\nlabels:\n - bug\n - workflow\n\n```\n\n\u003E Create an issue in a repository\n```yaml\nid: create\ntype: io.kestra.plugin.github.issues.Create\nlogin: your_github_login\noauthToken: your_github_token\nrepository: kestra-io/kestra\ntitle: Workflow failed\nbody: \"{{ execution.id }} has failed on {{ taskrun.startDate }}. See the link below for more details\"\nlabels:\n - bug\n - workflow\n\n```\n\n\u003E Create an issue in a repository\n```yaml\nid: create\ntype: io.kestra.plugin.github.issues.Create\noauthToken: your_github_token\nrepository: kestra-io/kestra\ntitle: Workflow failed\nbody: \"{{ execution.id }} has failed on {{ taskrun.startDate }}. See the link below for more details\"\nlabels:\n - bug\n - workflow\nassignees:\n - MyDeveloperUserName\n - MyDesignerUserName\n\n```" + }, + "io.kestra.plugin.github.issues.Search": { + "type": "object", + "properties": { + "Order output": { + "$dynamic": false, + "type": "string", + "enum": ["ASC", "DESC"], + "markdownDescription": "ASC - the results will be in ascending order\nDESC - the results will be in descending order\n" + }, + "Searched issues mentions by specified user": { + "$dynamic": true, + "type": "string" + }, + "Sort output": { + "$dynamic": false, + "type": "string", + "enum": ["CREATED", "UPDATED", "COMMENTS"], + "markdownDescription": "CREATED - Sorts the results of query by the time issue was created (DEFAULT)\nUPDATED - Sorts the results of query by the tome issue was last time updated\nCOMMENTS - Sorts the results of query by the number of comments\n" + }, + "Specifies whether issue is closed": { + "$dynamic": false, + "type": "boolean" + }, + "Specifies whether issue is merged": { + "$dynamic": false, + "type": "boolean" + }, + "Specifies whether issue is open": { + "$dynamic": false, + "type": "boolean" + }, + "The query contains one or more search keywords and qualifiers": { + "$dynamic": true, + "type": "string", + "markdownDescription": "Allow you to limit your search to specific areas of GitHub" + }, + "allowFailure": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "description": { + "type": "string" + }, + "disabled": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "id": { + "type": "string", + "minLength": 1, + "pattern": "^[a-zA-Z0-9][a-zA-Z0-9_-]*" + }, + "jwtToken": { + "$dynamic": true, + "type": "string", + "title": "GitHub JWT token", + "markdownDescription": "Does not requires additional fields to log-in" + }, + "logLevel": { + "type": "string", + "enum": ["ERROR", "WARN", "INFO", "DEBUG", "TRACE"] + }, + "login": { + "$dynamic": true, + "type": "string", + "title": "GitHub login", + "markdownDescription": "Requires additional field: oauthToken, to log-in" + }, + "oauthToken": { + "$dynamic": true, + "type": "string", + "title": "GitHub oauthToken", + "markdownDescription": "GitHub Personal Access Token. In addition, can be used with login or by its own" + }, + "retry": { + "oneOf": [ + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Constant-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Exponential-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Random-2" + } + ] + }, + "timeout": { + "type": "string", + "format": "duration" + }, + "type": { + "const": "io.kestra.plugin.github.issues.Search" + }, + "workerGroup": { + "$ref": "#/definitions/io.kestra.core.models.tasks.WorkerGroup" + } + }, + "required": ["id", "type"], + "title": "Search for GitHub issues", + "markdownDescription": "If no authentication is provided, anonymous authentication will be used##### Examples\n\u003E \n```yaml\nid: search\ntype: io.kestra.plugin.github.issues.Search\noauthToken: your_github_token\nquery: \"repo:kestra-io/plugin-github is:open\"\n\n```\n\n\u003E \n```yaml\nid: search\ntype: io.kestra.plugin.github.issues.Search\noauthToken: your_github_token\nrepository: kestra-io/plugin-github\nopen: TRUE\n\n```" + }, + "io.kestra.plugin.github.pulls.Create": { + "type": "object", + "properties": { + "allowFailure": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "body": { + "$dynamic": true, + "type": "string", + "title": "Ticket body", + "markdownDescription": "The contents of the pull request. This is the markdown description of a pull request" + }, + "description": { + "type": "string" + }, + "disabled": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "draft": { + "$dynamic": false, + "type": "boolean", + "title": "Whether to create a draft pull request", + "default": false, + "markdownDescription": "Boolean value indicates whether to create a draft pull request or not. Default is false\n\nDefault value is : `false`" + }, + "id": { + "type": "string", + "minLength": 1, + "pattern": "^[a-zA-Z0-9][a-zA-Z0-9_-]*" + }, + "jwtToken": { + "$dynamic": true, + "type": "string", + "title": "GitHub JWT token", + "markdownDescription": "Does not requires additional fields to log-in" + }, + "logLevel": { + "type": "string", + "enum": ["ERROR", "WARN", "INFO", "DEBUG", "TRACE"] + }, + "login": { + "$dynamic": true, + "type": "string", + "title": "GitHub login", + "markdownDescription": "Requires additional field: oauthToken, to log-in" + }, + "maintainerCanModify": { + "$dynamic": false, + "type": "boolean", + "title": "Whether maintainers can modify the pull request", + "default": false, + "markdownDescription": "Boolean value indicating whether maintainers can modify the pull request. Default is false\n\nDefault value is : `false`" + }, + "oauthToken": { + "$dynamic": true, + "type": "string", + "title": "GitHub oauthToken", + "markdownDescription": "GitHub Personal Access Token. In addition, can be used with login or by its own" + }, + "repository": { + "$dynamic": true, + "type": "string", + "title": "GitHub repository", + "markdownDescription": "Repository where issue/ticket should be created. It's a string of Username + / + Repository name" + }, + "retry": { + "oneOf": [ + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Constant-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Exponential-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Random-2" + } + ] + }, + "sourceBranch": { + "$dynamic": true, + "type": "string", + "title": "Source/Head branch", + "markdownDescription": "Required. The name of the branch where your changes are implemented. For cross-repository pull requests in the same network, namespace head with a user like this: username:branch" + }, + "targetBranch": { + "$dynamic": true, + "type": "string", + "title": "Target/Base branch", + "markdownDescription": "Required. The name of the branch you want your changes pulled into. This should be an existing branch on the current repository" + }, + "timeout": { + "type": "string", + "format": "duration" + }, + "title": { + "$dynamic": true, + "type": "string", + "title": "Ticket title", + "markdownDescription": "Required. The title of the pull request" + }, + "type": { + "const": "io.kestra.plugin.github.pulls.Create" + }, + "workerGroup": { + "$ref": "#/definitions/io.kestra.core.models.tasks.WorkerGroup" + } + }, + "required": ["id", "type"], + "title": "Create a pull request", + "markdownDescription": "If no authentication is provided, anonymous authentication will be used##### Examples\n\u003E \n```yaml\nid: create\ntype: io.kestra.plugin.github.pulls.Create\noauthToken: your_github_token\nrepository: kestra-io/kestra\nsourceBranch: develop\ntargetBranch: main\ntitle: Workflow failed\nbody: \"{{ execution.id }} has failed on {{ taskrun.startDate }}. See the link below for more details\"\n\n```" + }, + "io.kestra.plugin.github.pulls.Search": { + "type": "object", + "properties": { + "allowFailure": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "assigned": { + "$dynamic": false, + "type": "string", + "title": "Search pull requests that are assigned to a certain user" + }, + "author": { + "$dynamic": false, + "type": "string", + "title": "Finds pull requests created by a certain user or integration account" + }, + "base": { + "$dynamic": false, + "type": "string", + "title": "Filter pull requests based on the branch they are merging into" + }, + "closed": { + "$dynamic": false, + "type": "boolean", + "title": "Specifies whether the pull request is closed" + }, + "closedAt": { + "$dynamic": false, + "type": "string", + "title": "Search for code based on when pull request was closed", + "markdownDescription": "You can use greater than, less than, and range qualifiers (`..` between two dates) to further filter results" + }, + "commit": { + "$dynamic": false, + "type": "string", + "title": "Search for pull requests that contain that SHA", + "markdownDescription": "The SHA syntax must be at least seven characters" + }, + "createdAt": { + "$dynamic": false, + "type": "string", + "title": "Search for code based on when the pull request was created", + "markdownDescription": "You can use greater than, less than, and range qualifiers (`..` between two dates) to further filter results" + }, + "createdByMe": { + "$dynamic": false, + "type": "boolean", + "title": "Specifies whether pull request is created by user who logged in using token", + "markdownDescription": "Requires authentication" + }, + "description": { + "type": "string" + }, + "disabled": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "draft": { + "$dynamic": false, + "type": "boolean", + "title": "Specifies whether the pull request is in draft" + }, + "head": { + "$dynamic": false, + "type": "string", + "title": "Filter pull requests based on the branch they came from" + }, + "id": { + "type": "string", + "minLength": 1, + "pattern": "^[a-zA-Z0-9][a-zA-Z0-9_-]*" + }, + "jwtToken": { + "$dynamic": true, + "type": "string", + "title": "GitHub JWT token", + "markdownDescription": "Does not requires additional fields to log-in" + }, + "logLevel": { + "type": "string", + "enum": ["ERROR", "WARN", "INFO", "DEBUG", "TRACE"] + }, + "login": { + "$dynamic": true, + "type": "string", + "title": "GitHub login", + "markdownDescription": "Requires additional field: oauthToken, to log-in" + }, + "mentions": { + "$dynamic": true, + "type": "string", + "title": "Searched issues mentions by specified user" + }, + "merged": { + "$dynamic": false, + "type": "boolean", + "title": "Specifies whether the pull request is merged" + }, + "oauthToken": { + "$dynamic": true, + "type": "string", + "title": "GitHub oauthToken", + "markdownDescription": "GitHub Personal Access Token. In addition, can be used with login or by its own" + }, + "open": { + "$dynamic": false, + "type": "boolean", + "title": "Specifies whether the pull request is open" + }, + "order": { + "$dynamic": false, + "type": "string", + "enum": ["ASC", "DESC"], + "title": "Order output", + "default": "ASC", + "markdownDescription": "ASC - the results will be in ascending order\nDESC - the results will be in descending order\n\n\nDefault value is : `ASC`" + }, + "query": { + "$dynamic": true, + "type": "string", + "title": "The query contains one or more search keywords and qualifiers", + "markdownDescription": "Allow you to limit your search to specific areas of GitHub" + }, + "repository": { + "$dynamic": false, + "type": "string", + "title": "Search pull requests in a specific repository" + }, + "retry": { + "oneOf": [ + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Constant-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Exponential-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Random-2" + } + ] + }, + "sort": { + "$dynamic": false, + "type": "string", + "enum": ["CREATED", "UPDATED", "COMMENTS"], + "title": "Sort output", + "default": "CREATED", + "markdownDescription": "CREATED - Sorts the results of query by the time issue was created (DEFAULT)\nUPDATED - Sorts the results of query by the tome issue was last time updated\nCOMMENTS - Sorts the results of query by the number of comments\n\n\nDefault value is : `CREATED`" + }, + "timeout": { + "type": "string", + "format": "duration" + }, + "title": { + "$dynamic": false, + "type": "string", + "title": "Search pull requests that have title like specified" + }, + "type": { + "const": "io.kestra.plugin.github.pulls.Search" + }, + "updatedAt": { + "$dynamic": false, + "type": "string", + "title": "Search for code based on when pull request was updated last time", + "markdownDescription": "You can use greater than, less than, and range qualifiers (`..` between two dates) to further filter results" + }, + "workerGroup": { + "$ref": "#/definitions/io.kestra.core.models.tasks.WorkerGroup" + } + }, + "required": ["id", "type"], + "title": "Search for GitHub pull requests", + "markdownDescription": "If no authentication is provided, anonymous authentication will be used. Anonymous authentication can't retrieve full information##### Examples\n\u003E \n```yaml\nid: search\ntype: io.kestra.plugin.github.pulls.Search\noauthToken: your_github_token\nquery: \"repo:kestra-io/plugin-github is:open\"\n\n```\n\n\u003E \n```yaml\nid: search\ntype: io.kestra.plugin.github.pulls.Search\noauthToken: your_github_token\nrepository: kestra-io/plugin-github\nopen: TRUE\n\n```" + }, + "io.kestra.plugin.github.repositories.Search": { + "type": "object", + "properties": { + "allowFailure": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "created": { + "$dynamic": true, + "type": "string", + "title": "Search for code based on when repository was created" + }, + "description": { + "type": "string" + }, + "disabled": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "id": { + "type": "string", + "minLength": 1, + "pattern": "^[a-zA-Z0-9][a-zA-Z0-9_-]*" + }, + "jwtToken": { + "$dynamic": true, + "type": "string", + "title": "GitHub JWT token", + "markdownDescription": "Does not requires additional fields to log-in" + }, + "language": { + "$dynamic": true, + "type": "string", + "title": "Search for code based on what language it's written in", + "markdownDescription": "Can be the language name or alias" + }, + "logLevel": { + "type": "string", + "enum": ["ERROR", "WARN", "INFO", "DEBUG", "TRACE"] + }, + "login": { + "$dynamic": true, + "type": "string", + "title": "GitHub login", + "markdownDescription": "Requires additional field: oauthToken, to log-in" + }, + "oauthToken": { + "$dynamic": true, + "type": "string", + "title": "GitHub oauthToken", + "markdownDescription": "GitHub Personal Access Token. In addition, can be used with login or by its own" + }, + "order": { + "$dynamic": false, + "type": "string", + "enum": ["ASC", "DESC"], + "title": "Order output", + "default": "ASC", + "markdownDescription": "ASC - the results will be in ascending order\nDESC - the results will be in descending order\n\n\nDefault value is : `ASC`" + }, + "query": { + "$dynamic": true, + "type": "string", + "title": "The query contains one or more search keywords and qualifiers", + "markdownDescription": "Qualifiers allow you to limit your search to specific areas of GitHub" + }, + "repository": { + "$dynamic": true, + "type": "string", + "title": "To search the code in a specific repository", + "markdownDescription": "Example string: \"myUserName/MyRepository\". query equivalent: \"repo:myUserName/MyRepository\"" + }, + "retry": { + "oneOf": [ + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Constant-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Exponential-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Random-2" + } + ] + }, + "sort": { + "$dynamic": false, + "type": "string", + "enum": ["UPDATED", "STARS", "FORKS"], + "title": "Sort output", + "default": "UPDATED", + "markdownDescription": "UPDATED - the results will be sorted by when the repository was last updated\nSTARS - the results will be sorted by the number of stars the repository has\nFORKS - the results will be sorted by the number of forks the repository has\n\n\nDefault value is : `UPDATED`" + }, + "stars": { + "$dynamic": true, + "type": "string", + "title": "Search for code based on how many starts repository has" + }, + "timeout": { + "type": "string", + "format": "duration" + }, + "topic": { + "$dynamic": true, + "type": "string", + "title": "Search the code by topic" + }, + "type": { + "const": "io.kestra.plugin.github.repositories.Search" + }, + "user": { + "$dynamic": true, + "type": "string", + "title": "Search the code in all repositories owned by a certain user", + "markdownDescription": "To search by organization use: \"query: org:myOrganization\"" + }, + "visibility": { + "$dynamic": false, + "type": "string", + "enum": ["PUBLIC", "PRIVATE", "INTERNAL"], + "title": "Search repository that have specified repositories. By default it's search for all repositories", + "markdownDescription": "PUBLIC - shows only public repositories\nPRIVATE - shows only private repositories that are available for user who is searching\nINTERNAL - shows only internal repositories\n" + }, + "workerGroup": { + "$ref": "#/definitions/io.kestra.core.models.tasks.WorkerGroup" + } + }, + "required": ["id", "type"], + "title": "Search for GitHub repositories", + "markdownDescription": "If no authentication is provided, anonymous authentication will be used. Anonymous authentication can't retrieve full information##### Examples\n\u003E \n```yaml\nid: repos\ntype: io.kestra.plugin.github.repositories.Search\noauthToken: your_github_token\nquery: \"repo:kestra-io/plugin-github\"\n\n```\n\n\u003E \n```yaml\nid: repos\ntype: io.kestra.plugin.github.repositories.Search\noauthToken: your_github_token\nrepository: kestra-io/plugin-github\n\n```\n\n\u003E \n```yaml\nid: repos\ntype: io.kestra.plugin.github.repositories.Search\noauthToken: your_github_token\nquery: \"user:kestra-io language:java is:public\"\nsort: STARS\norder: DESC\n\n```\n\n\u003E \n```yaml\nid: repos\ntype: io.kestra.plugin.github.repositories.Search\noauthToken: your_github_token\nuser: kestra-io\nlanguage: java\nvisibility: PUBLIC\nsort: STARS\norder: DESC\n\n```" + }, + "io.kestra.plugin.github.topics.Search": { + "type": "object", + "properties": { + "allowFailure": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "created": { + "$dynamic": true, + "type": "string", + "title": "The query contains one or more search keywords and qualifiers", + "markdownDescription": "You can use greater than, less than, and range qualifiers to further filter results" + }, + "description": { + "type": "string" + }, + "disabled": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "id": { + "type": "string", + "minLength": 1, + "pattern": "^[a-zA-Z0-9][a-zA-Z0-9_-]*" + }, + "is": { + "$dynamic": true, + "type": "string", + "enum": ["CURATED", "FEATURED", "NOT_CURATED", "NOT_FEATURED"], + "title": "The query contains one or more search keywords and qualifiers", + "markdownDescription": "CURATED - Matches topics that are curated\nFEATURED - Matches topics that are featured on `https://github.com/topics/`\nNOT_CURATED - Matches topics that don't have extra information, such as a description or logo\nNOT_FEATURED - Matches topics that aren't featured on `https://github.com/topics/`\n" + }, + "jwtToken": { + "$dynamic": true, + "type": "string", + "title": "GitHub JWT token", + "markdownDescription": "Does not requires additional fields to log-in" + }, + "logLevel": { + "type": "string", + "enum": ["ERROR", "WARN", "INFO", "DEBUG", "TRACE"] + }, + "login": { + "$dynamic": true, + "type": "string", + "title": "GitHub login", + "markdownDescription": "Requires additional field: oauthToken, to log-in" + }, + "oauthToken": { + "$dynamic": true, + "type": "string", + "title": "GitHub oauthToken", + "markdownDescription": "GitHub Personal Access Token. In addition, can be used with login or by its own" + }, + "order": { + "$dynamic": false, + "type": "string", + "enum": ["ASC", "DESC"], + "title": "Order output", + "default": "ASC", + "markdownDescription": "ASC - the results will be in ascending order\nDESC - the results will be in descending order\n\n\nDefault value is : `ASC`" + }, + "query": { + "$dynamic": true, + "type": "string", + "title": "The query contains one or more search keywords and qualifiers", + "markdownDescription": "Allow you to limit your search to specific areas of GitHub" + }, + "repositories": { + "$dynamic": true, + "type": "string", + "title": "Matches topics that have number of repositories", + "markdownDescription": "You can use greater than, less than, and range qualifiers to further filter results" + }, + "retry": { + "oneOf": [ + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Constant-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Exponential-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Random-2" + } + ] + }, + "timeout": { + "type": "string", + "format": "duration" + }, + "type": { + "const": "io.kestra.plugin.github.topics.Search" + }, + "workerGroup": { + "$ref": "#/definitions/io.kestra.core.models.tasks.WorkerGroup" + } + }, + "required": ["id", "type"], + "title": "Search for GitHub topics", + "markdownDescription": "If no authentication is provided, anonymous authentication will be used. Anonymous authentication can't retrieve full information##### Examples\n\u003E \n```yaml\nid: search\ntype: io.kestra.plugin.github.topics.Search\noauthToken: your_github_token\nquery: \"micronaut framework is:not-curated repositories:\u003E100\"\n\n```\n\n\u003E \n```yaml\nid: search\ntype: io.kestra.plugin.github.topics.Search\noauthToken: your_github_token\nquery: \"micronaut framework\"\nis: NOT_CURATED\nrepositories: \u003E100\n\n```" + }, + "io.kestra.plugin.github.users.Search": { + "type": "object", + "properties": { + "accountType": { + "$dynamic": true, + "type": "string", + "enum": ["USER", "ORGANIZATION"], + "title": "Restrict search results to personal accounts or organizations only", + "markdownDescription": "USER - the results will include only user accounts\nORGANIZATION - the results will include only organization accounts\n" + }, + "allowFailure": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "created": { + "$dynamic": true, + "type": "string", + "title": "Filter users based on when they joined GitHub", + "markdownDescription": "Available formats:\n- '\u003C=YYYY-MM-DD' - joined at or before\n- '\u003E=YYYY-MM-DD' - joined at or after\n- Similar cases for above two with \"\u003E\", \"\u003C\"\n- 'YYYY-MM-DD..YYYY-MM-DD' - joined in period between\n" + }, + "description": { + "type": "string" + }, + "disabled": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "followers": { + "$dynamic": true, + "type": "string", + "title": "Filter users based on the number of followers that they have" + }, + "id": { + "type": "string", + "minLength": 1, + "pattern": "^[a-zA-Z0-9][a-zA-Z0-9_-]*" + }, + "in": { + "$dynamic": true, + "type": "string", + "title": "With the 'in' qualifier you can restrict your search to the username/login, full name, public email", + "markdownDescription": "Example kenya in:login matches users with the word \"kenya\" in their username. One more case of use to search users that have sponsor profile, equivalent to query: is:sponsorable" + }, + "jwtToken": { + "$dynamic": true, + "type": "string", + "title": "GitHub JWT token", + "markdownDescription": "Does not requires additional fields to log-in" + }, + "language": { + "$dynamic": true, + "type": "string", + "title": "Search for users based on the languages of repositories they own", + "markdownDescription": "Can be the language name or alias" + }, + "location": { + "$dynamic": true, + "type": "string", + "title": "Search for users by the location indicated in their profile" + }, + "logLevel": { + "type": "string", + "enum": ["ERROR", "WARN", "INFO", "DEBUG", "TRACE"] + }, + "login": { + "$dynamic": true, + "type": "string", + "title": "GitHub login", + "markdownDescription": "Requires additional field: oauthToken, to log-in" + }, + "oauthToken": { + "$dynamic": true, + "type": "string", + "title": "GitHub oauthToken", + "markdownDescription": "GitHub Personal Access Token. In addition, can be used with login or by its own" + }, + "order": { + "$dynamic": false, + "type": "string", + "enum": ["ASC", "DESC"], + "title": "Order output", + "default": "ASC", + "markdownDescription": "ASC - the results will be in ascending order (DEFAULT)\nDESC - the results will be in descending order\n\n\nDefault value is : `ASC`" + }, + "query": { + "$dynamic": true, + "type": "string", + "title": "The query contains one or more search keywords and qualifiers", + "markdownDescription": "Qualifiers allow you to limit your search to specific areas of GitHub" + }, + "repositories": { + "$dynamic": true, + "type": "integer", + "title": "You can filter users based on the number of repositories they own" + }, + "retry": { + "oneOf": [ + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Constant-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Exponential-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Random-2" + } + ] + }, + "sort": { + "$dynamic": false, + "type": "string", + "enum": ["JOINED", "REPOSITORIES", "FOLLOWERS"], + "title": "Sort output", + "default": "JOINED", + "markdownDescription": "JOINED - the results will be sorted by when user joined to Github (DEFAULT)\nREPOSITORIES - the results will be sorted by the number of repositories owned by user\nFOLLOWERS - the results will be sorted by the number of followers that user has\n\n\nDefault value is : `JOINED`" + }, + "timeout": { + "type": "string", + "format": "duration" + }, + "type": { + "const": "io.kestra.plugin.github.users.Search" + }, + "workerGroup": { + "$ref": "#/definitions/io.kestra.core.models.tasks.WorkerGroup" + } + }, + "required": ["id", "type"], + "title": "Search for GitHub users", + "markdownDescription": "If no authentication is provided, anonymous authentication will be used. Anonymous authentication can't retrieve full information##### Examples\n\u003E \n```yaml\nid: users\ntype: io.kestra.plugin.github.users.Search\noauthToken: your_github_token\nquery: \"kestra-io in:login language:java\"\n\n```\n\n\u003E \n```yaml\nid: users\ntype: io.kestra.plugin.github.users.Search\noauthToken: your_github_token\nquery: kestra-io\nin: login\nlanguage: java\n\n```" + }, + "io.kestra.plugin.googleworkspace.drive.Create": { + "type": "object", + "properties": { + "allowFailure": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "description": { + "$dynamic": true, + "type": "string", + "title": "A short description of the file." + }, + "disabled": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "id": { + "type": "string", + "minLength": 1, + "pattern": "^[a-zA-Z0-9][a-zA-Z0-9_-]*" + }, + "logLevel": { + "type": "string", + "enum": ["ERROR", "WARN", "INFO", "DEBUG", "TRACE"] + }, + "mimeType": { + "$dynamic": true, + "type": "string", + "title": "The MIME type of the file.", + "markdownDescription": "Drive will attempt to automatically detect an appropriate value from uploaded content if no value is provided. The value cannot be changed unless a new revision is uploaded. If a file is created with a Google Doc MIME type, the uploaded content will be imported if possible. The supported import formats are published [here](https://developers.google.com/drive/api/v3/mime-types)." + }, + "name": { + "$dynamic": true, + "type": "string", + "title": "The name of the file", + "markdownDescription": "This is not necessarily unique within a folder" + }, + "parents": { + "$dynamic": true, + "title": "The destination path", + "type": "array", + "items": { + "$dynamic": true, + "type": "string" + } + }, + "readTimeout": { + "$dynamic": true, + "type": "integer", + "title": "The read timeout for the request (in seconds)", + "default": 120, + "markdownDescription": "Default value is : `120`" + }, + "retry": { + "oneOf": [ + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Constant-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Exponential-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Random-2" + } + ] + }, + "scopes": { + "$dynamic": true, + "title": "The GCP scopes to used", + "default": ["https://www.googleapis.com/auth/drive"], + "markdownDescription": "Default value is : `- https://www.googleapis.com/auth/drive`\n\nDefault value is : `- https://www.googleapis.com/auth/drive`", + "type": "array", + "items": { + "$dynamic": true, + "type": "string" + } + }, + "serviceAccount": { + "$dynamic": true, + "type": "string", + "title": "The GCP service account key" + }, + "teamDriveId": { + "$dynamic": true, + "type": "string", + "title": "ID of the Team Drive the file resides in." + }, + "timeout": { + "type": "string", + "format": "duration" + }, + "type": { + "const": "io.kestra.plugin.googleworkspace.drive.Create" + }, + "workerGroup": { + "$ref": "#/definitions/io.kestra.core.models.tasks.WorkerGroup" + } + }, + "required": ["id", "type"], + "title": "Create a file or a folder.", + "markdownDescription": "##### Examples\n\u003E \n```yaml\nname: \"My Folder\"\nmimeType: \"application/vnd.google-apps.folder\"\n```" + }, + "io.kestra.plugin.googleworkspace.drive.Delete": { + "type": "object", + "properties": { + "allowFailure": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "description": { + "type": "string" + }, + "disabled": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "fileId": { + "$dynamic": true, + "type": "string", + "title": "The file id to delete" + }, + "id": { + "type": "string", + "minLength": 1, + "pattern": "^[a-zA-Z0-9][a-zA-Z0-9_-]*" + }, + "logLevel": { + "type": "string", + "enum": ["ERROR", "WARN", "INFO", "DEBUG", "TRACE"] + }, + "readTimeout": { + "$dynamic": true, + "type": "integer", + "title": "The read timeout for the request (in seconds)", + "default": 120, + "markdownDescription": "Default value is : `120`" + }, + "retry": { + "oneOf": [ + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Constant-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Exponential-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Random-2" + } + ] + }, + "scopes": { + "$dynamic": true, + "title": "The GCP scopes to used", + "default": ["https://www.googleapis.com/auth/drive"], + "markdownDescription": "Default value is : `- https://www.googleapis.com/auth/drive`\n\nDefault value is : `- https://www.googleapis.com/auth/drive`", + "type": "array", + "items": { + "$dynamic": true, + "type": "string" + } + }, + "serviceAccount": { + "$dynamic": true, + "type": "string", + "title": "The GCP service account key" + }, + "timeout": { + "type": "string", + "format": "duration" + }, + "type": { + "const": "io.kestra.plugin.googleworkspace.drive.Delete" + }, + "workerGroup": { + "$ref": "#/definitions/io.kestra.core.models.tasks.WorkerGroup" + } + }, + "required": ["id", "type"], + "title": "Delete a file on a Drive folder.", + "markdownDescription": "##### Examples\n\u003E \n```yaml\nfileId: \"1Dkd3W0OQo-wxz1rrORLP7YGSj6EBLEg74fiTdbJUIQE\"\n```" + }, + "io.kestra.plugin.googleworkspace.drive.Download": { + "type": "object", + "properties": { + "allowFailure": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "description": { + "type": "string" + }, + "disabled": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "fileId": { + "$dynamic": true, + "type": "string", + "title": "The file id to copy" + }, + "id": { + "type": "string", + "minLength": 1, + "pattern": "^[a-zA-Z0-9][a-zA-Z0-9_-]*" + }, + "logLevel": { + "type": "string", + "enum": ["ERROR", "WARN", "INFO", "DEBUG", "TRACE"] + }, + "readTimeout": { + "$dynamic": true, + "type": "integer", + "title": "The read timeout for the request (in seconds)", + "default": 120, + "markdownDescription": "Default value is : `120`" + }, + "retry": { + "oneOf": [ + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Constant-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Exponential-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Random-2" + } + ] + }, + "scopes": { + "$dynamic": true, + "title": "The GCP scopes to used", + "default": ["https://www.googleapis.com/auth/drive"], + "markdownDescription": "Default value is : `- https://www.googleapis.com/auth/drive`\n\nDefault value is : `- https://www.googleapis.com/auth/drive`", + "type": "array", + "items": { + "$dynamic": true, + "type": "string" + } + }, + "serviceAccount": { + "$dynamic": true, + "type": "string", + "title": "The GCP service account key" + }, + "timeout": { + "type": "string", + "format": "duration" + }, + "type": { + "const": "io.kestra.plugin.googleworkspace.drive.Download" + }, + "workerGroup": { + "$ref": "#/definitions/io.kestra.core.models.tasks.WorkerGroup" + } + }, + "required": ["fileId", "id", "type"], + "title": "Download a file in a Drive folder.", + "markdownDescription": "##### Examples\n\u003E \n```yaml\nfileId: \"1Dkd3W0OQo-wxz1rrORLP7YGSj6EBLEg74fiTdbJUIQE\"\n```" + }, + "io.kestra.plugin.googleworkspace.drive.Export": { + "type": "object", + "properties": { + "allowFailure": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "contentType": { + "$dynamic": true, + "type": "string", + "title": "The content-type of the file.", + "markdownDescription": "a valid [RFC2045](https://datatracker.ietf.org/doc/html/rfc2045) like `text/csv`, `application/msword`, ... " + }, + "description": { + "type": "string" + }, + "disabled": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "fileId": { + "$dynamic": true, + "type": "string", + "title": "The file id to copy" + }, + "id": { + "type": "string", + "minLength": 1, + "pattern": "^[a-zA-Z0-9][a-zA-Z0-9_-]*" + }, + "logLevel": { + "type": "string", + "enum": ["ERROR", "WARN", "INFO", "DEBUG", "TRACE"] + }, + "readTimeout": { + "$dynamic": true, + "type": "integer", + "title": "The read timeout for the request (in seconds)", + "default": 120, + "markdownDescription": "Default value is : `120`" + }, + "retry": { + "oneOf": [ + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Constant-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Exponential-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Random-2" + } + ] + }, + "scopes": { + "$dynamic": true, + "title": "The GCP scopes to used", + "default": ["https://www.googleapis.com/auth/drive"], + "markdownDescription": "Default value is : `- https://www.googleapis.com/auth/drive`\n\nDefault value is : `- https://www.googleapis.com/auth/drive`", + "type": "array", + "items": { + "$dynamic": true, + "type": "string" + } + }, + "serviceAccount": { + "$dynamic": true, + "type": "string", + "title": "The GCP service account key" + }, + "timeout": { + "type": "string", + "format": "duration" + }, + "type": { + "const": "io.kestra.plugin.googleworkspace.drive.Export" + }, + "workerGroup": { + "$ref": "#/definitions/io.kestra.core.models.tasks.WorkerGroup" + } + }, + "required": ["contentType", "fileId", "id", "type"], + "title": "Export a file in a Drive folder.", + "markdownDescription": "##### Examples\n\u003E \n```yaml\nfileId: \"1Dkd3W0OQo-wxz1rrORLP7YGSj6EBLEg74fiTdbJUIQE\"\n```" + }, + "io.kestra.plugin.googleworkspace.drive.List": { + "type": "object", + "properties": { + "allowFailure": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "corpora": { + "$dynamic": false, + "title": "list of bodies of items (files/documents) to which the query applies.", + "markdownDescription": "'allTeamDrives' must be combined with 'user'; all other values must be used in isolation. Prefer 'user' or 'teamDrive' to 'allTeamDrives' for efficiency.", + "type": "array", + "items": { + "$dynamic": false, + "type": "string", + "enum": ["user", "domain", "teamDrive", "allTeamDrives"] + } + }, + "description": { + "type": "string" + }, + "disabled": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "id": { + "type": "string", + "minLength": 1, + "pattern": "^[a-zA-Z0-9][a-zA-Z0-9_-]*" + }, + "logLevel": { + "type": "string", + "enum": ["ERROR", "WARN", "INFO", "DEBUG", "TRACE"] + }, + "query": { + "$dynamic": true, + "type": "string", + "title": "Query operators to filter results", + "markdownDescription": "see details [here](https://developers.google.com/drive/api/v3/search-files)\nif not defined, will list all files that the service account have access" + }, + "readTimeout": { + "$dynamic": true, + "type": "integer", + "title": "The read timeout for the request (in seconds)", + "default": 120, + "markdownDescription": "Default value is : `120`" + }, + "retry": { + "oneOf": [ + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Constant-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Exponential-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Random-2" + } + ] + }, + "scopes": { + "$dynamic": true, + "title": "The GCP scopes to used", + "default": ["https://www.googleapis.com/auth/drive"], + "markdownDescription": "Default value is : `- https://www.googleapis.com/auth/drive`\n\nDefault value is : `- https://www.googleapis.com/auth/drive`", + "type": "array", + "items": { + "$dynamic": true, + "type": "string" + } + }, + "serviceAccount": { + "$dynamic": true, + "type": "string", + "title": "The GCP service account key" + }, + "timeout": { + "type": "string", + "format": "duration" + }, + "type": { + "const": "io.kestra.plugin.googleworkspace.drive.List" + }, + "workerGroup": { + "$ref": "#/definitions/io.kestra.core.models.tasks.WorkerGroup" + } + }, + "required": ["id", "type"], + "title": "List file on a Drive folder.", + "markdownDescription": "##### Examples\n\u003E List subfolder in a Drive folder\n```yaml\nquery: |\n mimeType = 'application/vnd.google-apps.folder' \n and '1z2GZgLEX12BN9zbVE6TodrCHyTRMj_ka' in parents\n```" + }, + "io.kestra.plugin.googleworkspace.drive.Upload": { + "type": "object", + "properties": { + "allowFailure": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "contentType": { + "$dynamic": true, + "type": "string", + "title": "The content-type of the file.", + "markdownDescription": "a valid [RFC2045](https://datatracker.ietf.org/doc/html/rfc2045) like `text/csv`, `application/msword`, ... " + }, + "description": { + "$dynamic": true, + "type": "string", + "title": "A short description of the file." + }, + "disabled": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "fileId": { + "$dynamic": true, + "type": "string", + "title": "The file id to update", + "markdownDescription": "If not provided, it will create a new file" + }, + "from": { + "$dynamic": true, + "type": "string", + "title": "The file to copy" + }, + "id": { + "type": "string", + "minLength": 1, + "pattern": "^[a-zA-Z0-9][a-zA-Z0-9_-]*" + }, + "logLevel": { + "type": "string", + "enum": ["ERROR", "WARN", "INFO", "DEBUG", "TRACE"] + }, + "mimeType": { + "$dynamic": true, + "type": "string", + "title": "The MIME type of the file.", + "markdownDescription": "Drive will attempt to automatically detect an appropriate value from uploaded content if no value is provided. The value cannot be changed unless a new revision is uploaded. If a file is created with a Google Doc MIME type, the uploaded content will be imported if possible. The supported import formats are published [here](https://developers.google.com/drive/api/v3/mime-types)." + }, + "name": { + "$dynamic": true, + "type": "string", + "title": "The name of the file", + "markdownDescription": "This is not necessarily unique within a folder" + }, + "parents": { + "$dynamic": true, + "title": "The destination path", + "type": "array", + "items": { + "$dynamic": true, + "type": "string" + } + }, + "readTimeout": { + "$dynamic": true, + "type": "integer", + "title": "The read timeout for the request (in seconds)", + "default": 120, + "markdownDescription": "Default value is : `120`" + }, + "retry": { + "oneOf": [ + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Constant-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Exponential-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Random-2" + } + ] + }, + "scopes": { + "$dynamic": true, + "title": "The GCP scopes to used", + "default": ["https://www.googleapis.com/auth/drive"], + "markdownDescription": "Default value is : `- https://www.googleapis.com/auth/drive`\n\nDefault value is : `- https://www.googleapis.com/auth/drive`", + "type": "array", + "items": { + "$dynamic": true, + "type": "string" + } + }, + "serviceAccount": { + "$dynamic": true, + "type": "string", + "title": "The GCP service account key" + }, + "teamDriveId": { + "$dynamic": true, + "type": "string", + "title": "ID of the Team Drive the file resides in." + }, + "timeout": { + "type": "string", + "format": "duration" + }, + "type": { + "const": "io.kestra.plugin.googleworkspace.drive.Upload" + }, + "workerGroup": { + "$ref": "#/definitions/io.kestra.core.models.tasks.WorkerGroup" + } + }, + "required": ["contentType", "from", "id", "type"], + "title": "Upload a file in a Drive folder.", + "markdownDescription": "##### Examples\n\u003E Upload a csv and convert it to sheet format\n```yaml\nfrom: \"{{ inputs.file }}\"\nparents:\n - \"1HuxzpLt1b0111MuKMgy8wAv-m9Myc1E_\"\nname: \"My awesome CSV\"\ncontentType: \"text/csv\"\nmimeType: \"application/vnd.google-apps.spreadsheet\"\n```" + }, + "io.kestra.plugin.googleworkspace.sheets.Read": { + "type": "object", + "properties": { + "allowFailure": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "dateTimeRender": { + "$dynamic": false, + "type": "string", + "enum": ["SERIAL_NUMBER", "FORMATTED_STRING"], + "title": "How dates, times, and durations should be represented in the output.", + "default": "FORMATTED_STRING", + "markdownDescription": "his is ignored if valueRender is `FORMATTED_VALUE`.\nMore details [here](https://developers.google.com/sheets/api/reference/rest/v4/DateTimeRenderOption)\n\nDefault value is : `FORMATTED_STRING`" + }, + "description": { + "type": "string" + }, + "disabled": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "fetch": { + "$dynamic": false, + "type": "boolean", + "title": "Whether to Fetch the data from the query result to the task output", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "header": { + "type": "boolean", + "title": "Specifies if the first line should be the header (default: false)", + "default": true, + "markdownDescription": "Default value is : `true`" + }, + "id": { + "type": "string", + "minLength": 1, + "pattern": "^[a-zA-Z0-9][a-zA-Z0-9_-]*" + }, + "logLevel": { + "type": "string", + "enum": ["ERROR", "WARN", "INFO", "DEBUG", "TRACE"] + }, + "readTimeout": { + "$dynamic": true, + "type": "integer", + "title": "The read timeout for the request (in seconds)", + "default": 120, + "markdownDescription": "Default value is : `120`" + }, + "retry": { + "oneOf": [ + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Constant-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Exponential-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Random-2" + } + ] + }, + "scopes": { + "$dynamic": true, + "title": "The GCP scopes to used", + "default": ["https://www.googleapis.com/auth/spreadsheets"], + "markdownDescription": "Default value is : `- https://www.googleapis.com/auth/spreadsheets`\n\nDefault value is : `- https://www.googleapis.com/auth/spreadsheets`", + "type": "array", + "items": { + "$dynamic": true, + "type": "string" + } + }, + "selectedSheetsTitle": { + "title": "The sheet title to be included", + "markdownDescription": "If not provided all the sheets will be included.", + "type": "array", + "items": { + "type": "string" + } + }, + "serviceAccount": { + "$dynamic": true, + "type": "string", + "title": "The GCP service account key" + }, + "spreadsheetId": { + "$dynamic": true, + "type": "string", + "title": "The spreadsheet unique id" + }, + "store": { + "$dynamic": false, + "type": "boolean", + "title": "Whether to store the data from the query result into an ion serialized data file", + "default": true, + "markdownDescription": "Default value is : `true`" + }, + "timeout": { + "type": "string", + "format": "duration" + }, + "type": { + "const": "io.kestra.plugin.googleworkspace.sheets.Read" + }, + "valueRender": { + "$dynamic": false, + "type": "string", + "enum": ["FORMATTED_VALUE", "UNFORMATTED_VALUE", "FORMULA"], + "title": "Determines how values should be rendered in the output.", + "default": "UNFORMATTED_VALUE", + "markdownDescription": "More details [here](https://developers.google.com/sheets/api/reference/rest/v4/ValueRenderOption)\n\nDefault value is : `UNFORMATTED_VALUE`" + }, + "workerGroup": { + "$ref": "#/definitions/io.kestra.core.models.tasks.WorkerGroup" + } + }, + "required": ["id", "spreadsheetId", "type"], + "title": "Read all sheets from a google Sheets", + "markdownDescription": "##### Examples\n\u003E \n```yaml\nspreadsheetId: \"1Dkd3W0OQo-wxz1rrORLP7YGSj6EBLEg74fiTdbJUIQE\"\nstore: true\nvalueRender: FORMATTED_VALUE\n```" + }, + "io.kestra.plugin.googleworkspace.sheets.ReadRange": { + "type": "object", + "properties": { + "allowFailure": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "dateTimeRender": { + "$dynamic": false, + "type": "string", + "enum": ["SERIAL_NUMBER", "FORMATTED_STRING"], + "title": "How dates, times, and durations should be represented in the output.", + "default": "FORMATTED_STRING", + "markdownDescription": "his is ignored if valueRender is `FORMATTED_VALUE`.\nMore details [here](https://developers.google.com/sheets/api/reference/rest/v4/DateTimeRenderOption)\n\nDefault value is : `FORMATTED_STRING`" + }, + "description": { + "type": "string" + }, + "disabled": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "fetch": { + "$dynamic": false, + "type": "boolean", + "title": "Whether to Fetch the data from the query result to the task output", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "header": { + "type": "boolean", + "title": "Specifies if the first line should be the header (default: false)", + "default": true, + "markdownDescription": "Default value is : `true`" + }, + "id": { + "type": "string", + "minLength": 1, + "pattern": "^[a-zA-Z0-9][a-zA-Z0-9_-]*" + }, + "logLevel": { + "type": "string", + "enum": ["ERROR", "WARN", "INFO", "DEBUG", "TRACE"] + }, + "range": { + "type": "string", + "title": "The range to select" + }, + "readTimeout": { + "$dynamic": true, + "type": "integer", + "title": "The read timeout for the request (in seconds)", + "default": 120, + "markdownDescription": "Default value is : `120`" + }, + "retry": { + "oneOf": [ + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Constant-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Exponential-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Random-2" + } + ] + }, + "scopes": { + "$dynamic": true, + "title": "The GCP scopes to used", + "default": ["https://www.googleapis.com/auth/spreadsheets"], + "markdownDescription": "Default value is : `- https://www.googleapis.com/auth/spreadsheets`\n\nDefault value is : `- https://www.googleapis.com/auth/spreadsheets`", + "type": "array", + "items": { + "$dynamic": true, + "type": "string" + } + }, + "serviceAccount": { + "$dynamic": true, + "type": "string", + "title": "The GCP service account key" + }, + "spreadsheetId": { + "$dynamic": true, + "type": "string", + "title": "The spreadsheet unique id" + }, + "store": { + "$dynamic": false, + "type": "boolean", + "title": "Whether to store the data from the query result into an ion serialized data file", + "default": true, + "markdownDescription": "Default value is : `true`" + }, + "timeout": { + "type": "string", + "format": "duration" + }, + "type": { + "const": "io.kestra.plugin.googleworkspace.sheets.ReadRange" + }, + "valueRender": { + "$dynamic": false, + "type": "string", + "enum": ["FORMATTED_VALUE", "UNFORMATTED_VALUE", "FORMULA"], + "title": "Determines how values should be rendered in the output.", + "default": "UNFORMATTED_VALUE", + "markdownDescription": "More details [here](https://developers.google.com/sheets/api/reference/rest/v4/ValueRenderOption)\n\nDefault value is : `UNFORMATTED_VALUE`" + }, + "workerGroup": { + "$ref": "#/definitions/io.kestra.core.models.tasks.WorkerGroup" + } + }, + "required": ["id", "spreadsheetId", "type"], + "title": "Read a range from a google Sheets", + "markdownDescription": "##### Examples\n\u003E \n```yaml\nspreadsheetId: \"1Dkd3W0OQo-wxz1rrORLP7YGSj6EBLEg74fiTdbJUIQE\"\nrange: \"Second One!A1:I\"\nstore: true\nvalueRender: FORMATTED_VALUE\n```" + }, + "io.kestra.plugin.hightouch.Sync": { + "type": "object", + "properties": { + "allowFailure": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "description": { + "type": "string" + }, + "disabled": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "fullResynchronization": { + "$dynamic": true, + "type": "boolean", + "title": "Whether to do a full resynchronization", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "id": { + "type": "string", + "minLength": 1, + "pattern": "^[a-zA-Z0-9][a-zA-Z0-9_-]*" + }, + "logLevel": { + "type": "string", + "enum": ["ERROR", "WARN", "INFO", "DEBUG", "TRACE"] + }, + "maxDuration": { + "$dynamic": false, + "type": "string", + "format": "duration", + "title": "The max total wait duration", + "default": 300, + "markdownDescription": "Default value is : `300.000000000`" + }, + "retry": { + "oneOf": [ + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Constant-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Exponential-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Random-2" + } + ] + }, + "syncId": { + "$dynamic": true, + "type": "integer", + "title": "The sync id to trigger run" + }, + "timeout": { + "type": "string", + "format": "duration" + }, + "token": { + "$dynamic": true, + "type": "string", + "title": "API Bearer token" + }, + "type": { + "const": "io.kestra.plugin.hightouch.Sync" + }, + "wait": { + "$dynamic": false, + "type": "boolean", + "title": "Whether to wait for the end of the run.", + "default": true, + "markdownDescription": "Allowing to capture run status and logs\n\nDefault value is : `true`" + }, + "workerGroup": { + "$ref": "#/definitions/io.kestra.core.models.tasks.WorkerGroup" + } + }, + "required": ["id", "syncId", "token", "type"], + "title": "Trigger a Hightouch sync and optionally wait for its completion", + "markdownDescription": "##### Examples\n\u003E \n```yaml\ntoken: YOUR_API_TOKEN\nsyncId: 1127166\n```" + }, + "io.kestra.plugin.hubspot.tickets.Create": { + "type": "object", + "properties": { + "allowFailure": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "apiKey": { + "$dynamic": true, + "type": "string", + "title": "Hubspot API key" + }, + "content": { + "$dynamic": true, + "type": "string", + "title": "Ticket body" + }, + "description": { + "type": "string" + }, + "disabled": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "id": { + "type": "string", + "minLength": 1, + "pattern": "^[a-zA-Z0-9][a-zA-Z0-9_-]*" + }, + "logLevel": { + "type": "string", + "enum": ["ERROR", "WARN", "INFO", "DEBUG", "TRACE"] + }, + "oauthToken": { + "$dynamic": true, + "type": "string", + "title": "Hubspot OAuth token" + }, + "pipeline": { + "$dynamic": false, + "type": "integer", + "title": "Ticket pipeline" + }, + "priority": { + "$dynamic": false, + "type": "string", + "enum": ["LOW", "MEDIUM", "HIGH"], + "title": "Ticket priority", + "markdownDescription": "(Optional) Available values:\nLOW: Low priority\nMEDIUM: Medium priority\nHIGH: High priority\n" + }, + "retry": { + "oneOf": [ + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Constant-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Exponential-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Random-2" + } + ] + }, + "stage": { + "$dynamic": false, + "type": "integer", + "title": "Ticket pipeline stage", + "default": 1, + "markdownDescription": "Default value is : `1`" + }, + "subject": { + "$dynamic": true, + "type": "string", + "title": "Ticket subject" + }, + "timeout": { + "type": "string", + "format": "duration" + }, + "type": { + "const": "io.kestra.plugin.hubspot.tickets.Create" + }, + "workerGroup": { + "$ref": "#/definitions/io.kestra.core.models.tasks.WorkerGroup" + } + }, + "required": ["id", "type"], + "title": "Creates ticket in Hubspot", + "markdownDescription": "##### Examples\n\u003E \n```yaml\n- id: hubspot\n type: io.kestra.plugin.hubspot.tickets.Create\n apiKey: my_api_key\n subject: Workflow failed\n content: \"{{ execution.id }} has failed on {{ taskrun.startDate }}\"\n stage: 3\n priority: HIGH\n\n```" + }, + "io.kestra.plugin.jdbc.arrowflight.Query": { + "type": "object", + "properties": { + "allowFailure": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "description": { + "type": "string" + }, + "disabled": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "fetch": { + "$dynamic": false, + "type": "boolean", + "title": "Whether to fetch the data from the query result to the task output. This parameter is evaluated after `fetchOne` and `store`.", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "fetchOne": { + "$dynamic": false, + "type": "boolean", + "title": "Whether to fetch only one data row from the query result to the task output. This parameter is evaluated before `store` and `fetch`.", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "fetchSize": { + "$dynamic": false, + "type": "integer", + "title": "Number of rows that should be fetched.", + "default": 10000, + "markdownDescription": "Gives the JDBC driver a hint as to the number of rows that should be fetched from the database when more rows are needed for this ResultSet object. If the fetch size specified is zero, the JDBC driver ignores the value and is free to make its own best guess as to what the fetch size should be. Ignored if `autoCommit` is false.\n\nDefault value is : `10000`" + }, + "id": { + "type": "string", + "minLength": 1, + "pattern": "^[a-zA-Z0-9][a-zA-Z0-9_-]*" + }, + "logLevel": { + "type": "string", + "enum": ["ERROR", "WARN", "INFO", "DEBUG", "TRACE"] + }, + "password": { + "$dynamic": true, + "type": "string", + "title": "The database user's password." + }, + "retry": { + "oneOf": [ + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Constant-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Exponential-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Random-2" + } + ] + }, + "sql": { + "$dynamic": true, + "type": "string", + "title": "The SQL query to run." + }, + "store": { + "$dynamic": false, + "type": "boolean", + "title": "Whether to fetch data row(s) from the query result to a file in internal storage. File will be saved as Amazon Ion (text format). \n See \u003Ca href=\"http://amzn.github.io/ion-docs/\"\u003EAmazon Ion documentation\u003C/a\u003E This parameter is evaluated after `fetchOne` but before `fetch`.", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "timeZoneId": { + "$dynamic": false, + "type": "string", + "title": "The time zone id to use for date/time manipulation. Default value is the worker's default time zone id." + }, + "timeout": { + "type": "string", + "format": "duration" + }, + "type": { + "const": "io.kestra.plugin.jdbc.arrowflight.Query" + }, + "url": { + "$dynamic": true, + "type": "string", + "title": "The JDBC URL to connect to the database." + }, + "username": { + "$dynamic": true, + "type": "string", + "title": "The database user." + }, + "workerGroup": { + "$ref": "#/definitions/io.kestra.core.models.tasks.WorkerGroup" + } + }, + "required": ["id", "type", "url"], + "title": "Query a database through Apache Arrow Flight SQL driver.", + "markdownDescription": "##### Examples\n\u003E Send a SQL query to a database and fetch row(s) using Apache Arrow Flight SQL driver.\n```yaml\nurl: jdbc:arrow-flight-sql://localhost:31010/?useEncryption=false\nusername: db_user\npassword: db_passwd\nsql: select * FROM departments\nfetch: true\n```\n\n\u003E Send a SQL query to a Dremio coordinator and fetch rows as output using Apache Arrow Flight SQL driver.\n```yaml\nurl: jdbc:arrow-flight-sql://dremio-coordinator:32010/?schema=postgres.public\nusername: dremio_user\npassword: dremio_passwd\nsql: select * FROM departments\nfetch: true\n```" + }, + "io.kestra.plugin.jdbc.arrowflight.Trigger": { + "type": "object", + "properties": { + "conditions": { + "$dynamic": false, + "title": "List of conditions in order to limit the flow trigger.", + "type": "array", + "items": { + "oneOf": [ + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.DateTimeBetweenCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.DayWeekCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.DayWeekInMonthCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.ExecutionFlowCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.ExecutionLabelsCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.ExecutionNamespaceCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.ExecutionOutputsCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.ExecutionStatusCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.ExpressionCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.FlowCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.FlowNamespaceCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.HasRetryAttemptCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.MultipleCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.NotCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.OrCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.PublicHolidayCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.TimeBetweenCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.WeekendCondition" + }, + { + "$dynamic": false + } + ] + } + ] + } + }, + "description": { + "type": "string" + }, + "disabled": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "fetch": { + "$dynamic": false, + "type": "boolean", + "title": "Whether to fetch the data from the query result to the task output. This parameter is evaluated after `fetchOne` and `store`.", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "fetchOne": { + "$dynamic": false, + "type": "boolean", + "title": "Whether to fetch only one data row from the query result to the task output. This parameter is evaluated before `store` and `fetch`.", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "fetchSize": { + "$dynamic": false, + "type": "integer", + "title": "Number of rows that should be fetched.", + "default": 10000, + "markdownDescription": "Gives the JDBC driver a hint as to the number of rows that should be fetched from the database when more rows are needed for this ResultSet object. If the fetch size specified is zero, the JDBC driver ignores the value and is free to make its own best guess as to what the fetch size should be. Ignored if `autoCommit` is false.\n\nDefault value is : `10000`" + }, + "id": { + "type": "string", + "title": "A unique ID for the whole flow.", + "minLength": 1, + "pattern": "^[a-zA-Z0-9][a-zA-Z0-9_-]*" + }, + "interval": { + "$dynamic": false, + "type": "string", + "format": "duration", + "title": "Interval between polling.", + "default": 60, + "markdownDescription": "The interval between 2 different polls of schedule, this can avoid to overload the remote system with too many calls. For most of the triggers that depend on external systems, a minimal interval must be at least PT30S.\nSee [ISO_8601 Durations](https://en.wikipedia.org/wiki/ISO_8601#Durations) for more information of available interval values.\n\nDefault value is : `60.000000000`" + }, + "labels": { + "title": "The labels to pass to the execution created.", + "type": "array", + "items": { + "$ref": "#/definitions/io.kestra.core.models.Label" + } + }, + "logLevel": { + "type": "string", + "enum": ["ERROR", "WARN", "INFO", "DEBUG", "TRACE"] + }, + "password": { + "$dynamic": true, + "type": "string", + "title": "The database user's password." + }, + "sql": { + "$dynamic": true, + "type": "string", + "title": "The SQL query to run." + }, + "stopAfter": { + "$dynamic": false, + "title": "List of execution states after which a trigger should be stopped (a.k.a. disabled).", + "type": "array", + "items": { + "$dynamic": false, + "type": "string", + "enum": [ + "CREATED", + "RUNNING", + "PAUSED", + "RESTARTED", + "KILLING", + "SUCCESS", + "WARNING", + "FAILED", + "KILLED", + "CANCELLED", + "QUEUED", + "RETRYING", + "RETRIED" + ] + } + }, + "store": { + "$dynamic": false, + "type": "boolean", + "title": "Whether to fetch data row(s) from the query result to a file in internal storage. File will be saved as Amazon Ion (text format). \n See \u003Ca href=\"http://amzn.github.io/ion-docs/\"\u003EAmazon Ion documentation\u003C/a\u003E This parameter is evaluated after `fetchOne` but before `fetch`.", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "timeZoneId": { + "$dynamic": false, + "type": "string", + "title": "The time zone id to use for date/time manipulation. Default value is the worker's default time zone id." + }, + "type": { + "const": "io.kestra.plugin.jdbc.arrowflight.Trigger" + }, + "url": { + "$dynamic": true, + "type": "string", + "title": "The JDBC URL to connect to the database." + }, + "username": { + "$dynamic": true, + "type": "string", + "title": "The database user." + }, + "workerGroup": { + "$ref": "#/definitions/io.kestra.core.models.tasks.WorkerGroup" + } + }, + "required": ["id", "type", "url"], + "title": "Wait for query to a database through Arrow Flight SQL driver.", + "markdownDescription": "##### Examples\n\u003E Wait for a SQL query to return results, and then iterate through rows.\n```yaml\nid: jdbc-trigger\nnamespace: company.team\n\ntasks:\n - id: each\n type: io.kestra.plugin.core.flow.EachSequential\n tasks:\n - id: return\n type: io.kestra.plugin.core.debug.Return\n format: \"{{ json(taskrun.value) }}\"\n value: \"{{ trigger.rows }}\"\n\ntriggers:\n - id: watch\n type: io.kestra.plugin.jdbc.arrowflight.Trigger\n username: dremio_user\n password: dremio_passwd\n url: jdbc:arrow-flight-sql://dremio-coordinator:32010/?schema=postgres.public\n interval: \"PT5M\"\n sql: \"SELECT * FROM my_table\"\n fetch: true\n```" + }, + "io.kestra.plugin.jdbc.as400.Query": { + "type": "object", + "properties": { + "allowFailure": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "autoCommit": { + "$dynamic": false, + "type": "boolean", + "title": "Whether autocommit is enabled.", + "default": true, + "markdownDescription": "Sets this connection's auto-commit mode to the given state. If a connection is in auto-commit mode, then all its SQL statements will be executed and committed as individual transactions. Otherwise, its SQL statements are grouped into transactions that are terminated by a call to either the method commit or the method rollback. By default, new connections are in auto-commit mode except when you are using `store` property in which case the auto-commit will be disabled.\n\nDefault value is : `true`" + }, + "description": { + "type": "string" + }, + "disabled": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "fetch": { + "$dynamic": false, + "type": "boolean", + "title": "Whether to fetch the data from the query result to the task output. This parameter is evaluated after `fetchOne` and `store`.", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "fetchOne": { + "$dynamic": false, + "type": "boolean", + "title": "Whether to fetch only one data row from the query result to the task output. This parameter is evaluated before `store` and `fetch`.", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "fetchSize": { + "$dynamic": false, + "type": "integer", + "title": "Number of rows that should be fetched.", + "default": 10000, + "markdownDescription": "Gives the JDBC driver a hint as to the number of rows that should be fetched from the database when more rows are needed for this ResultSet object. If the fetch size specified is zero, the JDBC driver ignores the value and is free to make its own best guess as to what the fetch size should be. Ignored if `autoCommit` is false.\n\nDefault value is : `10000`" + }, + "id": { + "type": "string", + "minLength": 1, + "pattern": "^[a-zA-Z0-9][a-zA-Z0-9_-]*" + }, + "logLevel": { + "type": "string", + "enum": ["ERROR", "WARN", "INFO", "DEBUG", "TRACE"] + }, + "password": { + "$dynamic": true, + "type": "string", + "title": "The database user's password." + }, + "retry": { + "oneOf": [ + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Constant-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Exponential-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Random-2" + } + ] + }, + "sql": { + "$dynamic": true, + "type": "string", + "title": "The SQL query to run." + }, + "store": { + "$dynamic": false, + "type": "boolean", + "title": "Whether to fetch data row(s) from the query result to a file in internal storage. File will be saved as Amazon Ion (text format). \n See \u003Ca href=\"http://amzn.github.io/ion-docs/\"\u003EAmazon Ion documentation\u003C/a\u003E This parameter is evaluated after `fetchOne` but before `fetch`.", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "timeZoneId": { + "$dynamic": false, + "type": "string", + "title": "The time zone id to use for date/time manipulation. Default value is the worker's default time zone id." + }, + "timeout": { + "type": "string", + "format": "duration" + }, + "type": { + "const": "io.kestra.plugin.jdbc.as400.Query" + }, + "url": { + "$dynamic": true, + "type": "string", + "title": "The JDBC URL to connect to the database." + }, + "username": { + "$dynamic": true, + "type": "string", + "title": "The database user." + }, + "workerGroup": { + "$ref": "#/definitions/io.kestra.core.models.tasks.WorkerGroup" + } + }, + "required": ["id", "type", "url"], + "title": "Query a AS400 database.", + "markdownDescription": "##### Examples\n\u003E Send a SQL query to a AS400 Database and fetch a row as output.\n```yaml\nurl: jdbc:as400://127.0.0.1:50000/\nusername: as400_user\npassword: as400_passwd\nsql: select * from as400_types\nfetchOne: true\n```" + }, + "io.kestra.plugin.jdbc.as400.Trigger": { + "type": "object", + "properties": { + "conditions": { + "$dynamic": false, + "title": "List of conditions in order to limit the flow trigger.", + "type": "array", + "items": { + "oneOf": [ + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.DateTimeBetweenCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.DayWeekCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.DayWeekInMonthCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.ExecutionFlowCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.ExecutionLabelsCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.ExecutionNamespaceCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.ExecutionOutputsCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.ExecutionStatusCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.ExpressionCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.FlowCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.FlowNamespaceCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.HasRetryAttemptCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.MultipleCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.NotCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.OrCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.PublicHolidayCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.TimeBetweenCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.WeekendCondition" + }, + { + "$dynamic": false + } + ] + } + ] + } + }, + "description": { + "type": "string" + }, + "disabled": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "fetch": { + "$dynamic": false, + "type": "boolean", + "title": "Whether to fetch the data from the query result to the task output. This parameter is evaluated after `fetchOne` and `store`.", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "fetchOne": { + "$dynamic": false, + "type": "boolean", + "title": "Whether to fetch only one data row from the query result to the task output. This parameter is evaluated before `store` and `fetch`.", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "fetchSize": { + "$dynamic": false, + "type": "integer", + "title": "Number of rows that should be fetched.", + "default": 10000, + "markdownDescription": "Gives the JDBC driver a hint as to the number of rows that should be fetched from the database when more rows are needed for this ResultSet object. If the fetch size specified is zero, the JDBC driver ignores the value and is free to make its own best guess as to what the fetch size should be. Ignored if `autoCommit` is false.\n\nDefault value is : `10000`" + }, + "id": { + "type": "string", + "title": "A unique ID for the whole flow.", + "minLength": 1, + "pattern": "^[a-zA-Z0-9][a-zA-Z0-9_-]*" + }, + "interval": { + "$dynamic": false, + "type": "string", + "format": "duration", + "title": "Interval between polling.", + "default": 60, + "markdownDescription": "The interval between 2 different polls of schedule, this can avoid to overload the remote system with too many calls. For most of the triggers that depend on external systems, a minimal interval must be at least PT30S.\nSee [ISO_8601 Durations](https://en.wikipedia.org/wiki/ISO_8601#Durations) for more information of available interval values.\n\nDefault value is : `60.000000000`" + }, + "labels": { + "title": "The labels to pass to the execution created.", + "type": "array", + "items": { + "$ref": "#/definitions/io.kestra.core.models.Label" + } + }, + "logLevel": { + "type": "string", + "enum": ["ERROR", "WARN", "INFO", "DEBUG", "TRACE"] + }, + "password": { + "$dynamic": true, + "type": "string", + "title": "The database user's password." + }, + "sql": { + "$dynamic": true, + "type": "string", + "title": "The SQL query to run." + }, + "stopAfter": { + "$dynamic": false, + "title": "List of execution states after which a trigger should be stopped (a.k.a. disabled).", + "type": "array", + "items": { + "$dynamic": false, + "type": "string", + "enum": [ + "CREATED", + "RUNNING", + "PAUSED", + "RESTARTED", + "KILLING", + "SUCCESS", + "WARNING", + "FAILED", + "KILLED", + "CANCELLED", + "QUEUED", + "RETRYING", + "RETRIED" + ] + } + }, + "store": { + "$dynamic": false, + "type": "boolean", + "title": "Whether to fetch data row(s) from the query result to a file in internal storage. File will be saved as Amazon Ion (text format). \n See \u003Ca href=\"http://amzn.github.io/ion-docs/\"\u003EAmazon Ion documentation\u003C/a\u003E This parameter is evaluated after `fetchOne` but before `fetch`.", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "timeZoneId": { + "$dynamic": false, + "type": "string", + "title": "The time zone id to use for date/time manipulation. Default value is the worker's default time zone id." + }, + "type": { + "const": "io.kestra.plugin.jdbc.as400.Trigger" + }, + "url": { + "$dynamic": true, + "type": "string", + "title": "The JDBC URL to connect to the database." + }, + "username": { + "$dynamic": true, + "type": "string", + "title": "The database user." + }, + "workerGroup": { + "$ref": "#/definitions/io.kestra.core.models.tasks.WorkerGroup" + } + }, + "required": ["id", "type", "url"], + "title": "Wait for query on a AS400 database.", + "markdownDescription": "##### Examples\n\u003E Wait for a SQL query to return results, and then iterate through rows.\n```yaml\nid: jdbc-trigger\nnamespace: company.team\n\ntasks:\n - id: each\n type: io.kestra.plugin.core.flow.EachSequential\n tasks:\n - id: return\n type: io.kestra.plugin.core.debug.Return\n format: \"{{ json(taskrun.value) }}\"\n value: \"{{ trigger.rows }}\"\n\ntriggers:\n - id: watch\n type: io.kestra.plugin.jdbc.as400.Trigger\n interval: \"PT5M\"\n url: jdbc:as400://127.0.0.1:50000/\n username: as400_user\n password: as400_passwd\n sql: \"SELECT * FROM my_table\"\n fetch: true\n```" + }, + "io.kestra.plugin.jdbc.clickhouse.BulkInsert": { + "type": "object", + "properties": { + "allowFailure": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "chunk": { + "$dynamic": true, + "type": "integer", + "title": "The size of chunk for every bulk request.", + "default": 1000, + "markdownDescription": "Default value is : `1000`" + }, + "columns": { + "$dynamic": true, + "title": "The columns to be inserted.", + "markdownDescription": "If not provided, `?` count need to match the `from` number of columns.", + "type": "array", + "items": { + "$dynamic": true, + "type": "string" + } + }, + "description": { + "type": "string" + }, + "disabled": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "from": { + "$dynamic": true, + "type": "string", + "title": "Source file URI" + }, + "id": { + "type": "string", + "minLength": 1, + "pattern": "^[a-zA-Z0-9][a-zA-Z0-9_-]*" + }, + "logLevel": { + "type": "string", + "enum": ["ERROR", "WARN", "INFO", "DEBUG", "TRACE"] + }, + "password": { + "$dynamic": true, + "type": "string", + "title": "The database user's password." + }, + "retry": { + "oneOf": [ + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Constant-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Exponential-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Random-2" + } + ] + }, + "sql": { + "$dynamic": true, + "type": "string", + "title": "Insert query to be executed.", + "markdownDescription": "The query must have as many question marks as the number of columns in the table.\nExample: 'insert into \u003Ctable_name\u003E values( ? , ? , ? )' for 3 columns.\nIn case you do not want all columns, you need to specify it in the query in the columns property\nExample: 'insert into \u003Ctable_name\u003E (id, name) values( ? , ? )' for inserting data into 2 columns: 'id' and 'name'." + }, + "timeZoneId": { + "$dynamic": false, + "type": "string", + "title": "The time zone id to use for date/time manipulation. Default value is the worker's default time zone id." + }, + "timeout": { + "type": "string", + "format": "duration" + }, + "type": { + "const": "io.kestra.plugin.jdbc.clickhouse.BulkInsert" + }, + "url": { + "$dynamic": true, + "type": "string", + "title": "The JDBC URL to connect to the database." + }, + "username": { + "$dynamic": true, + "type": "string", + "title": "The database user." + }, + "workerGroup": { + "$ref": "#/definitions/io.kestra.core.models.tasks.WorkerGroup" + } + }, + "required": ["from", "id", "sql", "type", "url"], + "title": "Bulk Insert new rows into a ClickHouse database.", + "markdownDescription": "##### Examples\n\u003E Insert rows from another table to a Clickhouse database using asynchronous inserts.\n```yaml\nfrom: \"{{ outputs.query.uri }}\"\nurl: jdbc:clickhouse://127.0.0.1:56982/\nusername: ch_user\npassword: ch_passwd\nsql: INSERT INTO YourTable SETTINGS async_insert=1, wait_for_async_insert=1 values( ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ? )\n```\n\n\u003E Insert data into specific columns via a SQL query to a ClickHouse database using asynchronous inserts.\n```yaml\nfrom: \"{{ outputs.query.uri }}\"\nurl: jdbc:clickhouse://127.0.0.1:56982/\nusername: ch_user\npassword: ch_passwd\nsql: INSERT INTO YourTable ( field1, field2, field3 ) SETTINGS async_insert=1, wait_for_async_insert=1 values( ?, ?, ? )\n```" + }, + "io.kestra.plugin.jdbc.clickhouse.Query": { + "type": "object", + "properties": { + "allowFailure": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "autoCommit": { + "$dynamic": false, + "type": "boolean", + "title": "Whether autocommit is enabled.", + "default": true, + "markdownDescription": "Sets this connection's auto-commit mode to the given state. If a connection is in auto-commit mode, then all its SQL statements will be executed and committed as individual transactions. Otherwise, its SQL statements are grouped into transactions that are terminated by a call to either the method commit or the method rollback. By default, new connections are in auto-commit mode except when you are using `store` property in which case the auto-commit will be disabled.\n\nDefault value is : `true`" + }, + "description": { + "type": "string" + }, + "disabled": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "fetch": { + "$dynamic": false, + "type": "boolean", + "title": "Whether to fetch the data from the query result to the task output. This parameter is evaluated after `fetchOne` and `store`.", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "fetchOne": { + "$dynamic": false, + "type": "boolean", + "title": "Whether to fetch only one data row from the query result to the task output. This parameter is evaluated before `store` and `fetch`.", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "fetchSize": { + "$dynamic": false, + "type": "integer", + "title": "Number of rows that should be fetched.", + "default": 10000, + "markdownDescription": "Gives the JDBC driver a hint as to the number of rows that should be fetched from the database when more rows are needed for this ResultSet object. If the fetch size specified is zero, the JDBC driver ignores the value and is free to make its own best guess as to what the fetch size should be. Ignored if `autoCommit` is false.\n\nDefault value is : `10000`" + }, + "id": { + "type": "string", + "minLength": 1, + "pattern": "^[a-zA-Z0-9][a-zA-Z0-9_-]*" + }, + "logLevel": { + "type": "string", + "enum": ["ERROR", "WARN", "INFO", "DEBUG", "TRACE"] + }, + "password": { + "$dynamic": true, + "type": "string", + "title": "The database user's password." + }, + "retry": { + "oneOf": [ + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Constant-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Exponential-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Random-2" + } + ] + }, + "sql": { + "$dynamic": true, + "type": "string", + "title": "The SQL query to run." + }, + "store": { + "$dynamic": false, + "type": "boolean", + "title": "Whether to fetch data row(s) from the query result to a file in internal storage. File will be saved as Amazon Ion (text format). \n See \u003Ca href=\"http://amzn.github.io/ion-docs/\"\u003EAmazon Ion documentation\u003C/a\u003E This parameter is evaluated after `fetchOne` but before `fetch`.", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "timeZoneId": { + "$dynamic": false, + "type": "string", + "title": "The time zone id to use for date/time manipulation. Default value is the worker's default time zone id." + }, + "timeout": { + "type": "string", + "format": "duration" + }, + "type": { + "const": "io.kestra.plugin.jdbc.clickhouse.Query" + }, + "url": { + "$dynamic": true, + "type": "string", + "title": "The JDBC URL to connect to the database." + }, + "username": { + "$dynamic": true, + "type": "string", + "title": "The database user." + }, + "workerGroup": { + "$ref": "#/definitions/io.kestra.core.models.tasks.WorkerGroup" + } + }, + "required": ["id", "type", "url"], + "title": "Query a Clickhouse database.", + "markdownDescription": "##### Examples\n\u003E Query a Clickhouse database.\n```yaml\nurl: jdbc:clickhouse://127.0.0.1:56982/\nusername: ch_user\npassword: ch_passwd\nsql: select * from clickhouse_types\nstore: true\n```" + }, + "io.kestra.plugin.jdbc.clickhouse.Trigger": { + "type": "object", + "properties": { + "conditions": { + "$dynamic": false, + "title": "List of conditions in order to limit the flow trigger.", + "type": "array", + "items": { + "oneOf": [ + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.DateTimeBetweenCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.DayWeekCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.DayWeekInMonthCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.ExecutionFlowCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.ExecutionLabelsCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.ExecutionNamespaceCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.ExecutionOutputsCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.ExecutionStatusCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.ExpressionCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.FlowCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.FlowNamespaceCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.HasRetryAttemptCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.MultipleCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.NotCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.OrCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.PublicHolidayCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.TimeBetweenCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.WeekendCondition" + }, + { + "$dynamic": false + } + ] + } + ] + } + }, + "description": { + "type": "string" + }, + "disabled": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "fetch": { + "$dynamic": false, + "type": "boolean", + "title": "Whether to fetch the data from the query result to the task output. This parameter is evaluated after `fetchOne` and `store`.", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "fetchOne": { + "$dynamic": false, + "type": "boolean", + "title": "Whether to fetch only one data row from the query result to the task output. This parameter is evaluated before `store` and `fetch`.", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "fetchSize": { + "$dynamic": false, + "type": "integer", + "title": "Number of rows that should be fetched.", + "default": 10000, + "markdownDescription": "Gives the JDBC driver a hint as to the number of rows that should be fetched from the database when more rows are needed for this ResultSet object. If the fetch size specified is zero, the JDBC driver ignores the value and is free to make its own best guess as to what the fetch size should be. Ignored if `autoCommit` is false.\n\nDefault value is : `10000`" + }, + "id": { + "type": "string", + "title": "A unique ID for the whole flow.", + "minLength": 1, + "pattern": "^[a-zA-Z0-9][a-zA-Z0-9_-]*" + }, + "interval": { + "$dynamic": false, + "type": "string", + "format": "duration", + "title": "Interval between polling.", + "default": 60, + "markdownDescription": "The interval between 2 different polls of schedule, this can avoid to overload the remote system with too many calls. For most of the triggers that depend on external systems, a minimal interval must be at least PT30S.\nSee [ISO_8601 Durations](https://en.wikipedia.org/wiki/ISO_8601#Durations) for more information of available interval values.\n\nDefault value is : `60.000000000`" + }, + "labels": { + "title": "The labels to pass to the execution created.", + "type": "array", + "items": { + "$ref": "#/definitions/io.kestra.core.models.Label" + } + }, + "logLevel": { + "type": "string", + "enum": ["ERROR", "WARN", "INFO", "DEBUG", "TRACE"] + }, + "password": { + "$dynamic": true, + "type": "string", + "title": "The database user's password." + }, + "sql": { + "$dynamic": true, + "type": "string", + "title": "The SQL query to run." + }, + "stopAfter": { + "$dynamic": false, + "title": "List of execution states after which a trigger should be stopped (a.k.a. disabled).", + "type": "array", + "items": { + "$dynamic": false, + "type": "string", + "enum": [ + "CREATED", + "RUNNING", + "PAUSED", + "RESTARTED", + "KILLING", + "SUCCESS", + "WARNING", + "FAILED", + "KILLED", + "CANCELLED", + "QUEUED", + "RETRYING", + "RETRIED" + ] + } + }, + "store": { + "$dynamic": false, + "type": "boolean", + "title": "Whether to fetch data row(s) from the query result to a file in internal storage. File will be saved as Amazon Ion (text format). \n See \u003Ca href=\"http://amzn.github.io/ion-docs/\"\u003EAmazon Ion documentation\u003C/a\u003E This parameter is evaluated after `fetchOne` but before `fetch`.", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "timeZoneId": { + "$dynamic": false, + "type": "string", + "title": "The time zone id to use for date/time manipulation. Default value is the worker's default time zone id." + }, + "type": { + "const": "io.kestra.plugin.jdbc.clickhouse.Trigger" + }, + "url": { + "$dynamic": true, + "type": "string", + "title": "The JDBC URL to connect to the database." + }, + "username": { + "$dynamic": true, + "type": "string", + "title": "The database user." + }, + "workerGroup": { + "$ref": "#/definitions/io.kestra.core.models.tasks.WorkerGroup" + } + }, + "required": ["id", "type", "url"], + "title": "Wait for query on a Clickhouse database.", + "markdownDescription": "##### Examples\n\u003E Wait for a SQL query to return results, and then iterate through rows.\n```yaml\nid: jdbc-trigger\nnamespace: company.team\n\ntasks:\n - id: each\n type: io.kestra.plugin.core.flow.EachSequential\n tasks:\n - id: return\n type: io.kestra.plugin.core.debug.Return\n format: \"{{ json(taskrun.value) }}\"\n value: \"{{ trigger.rows }}\"\n\ntriggers:\n - id: watch\n type: io.kestra.plugin.jdbc.clickhouse.Trigger\n interval: \"PT5M\"\n url: jdbc:clickhouse://127.0.0.1:56982/\n username: ch_user\n password: ch_passwd\n sql: \"SELECT * FROM my_table\"\n fetch: true\n```" + }, + "io.kestra.plugin.jdbc.db2.Query": { + "type": "object", + "properties": { + "allowFailure": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "autoCommit": { + "$dynamic": false, + "type": "boolean", + "title": "Whether autocommit is enabled.", + "default": true, + "markdownDescription": "Sets this connection's auto-commit mode to the given state. If a connection is in auto-commit mode, then all its SQL statements will be executed and committed as individual transactions. Otherwise, its SQL statements are grouped into transactions that are terminated by a call to either the method commit or the method rollback. By default, new connections are in auto-commit mode except when you are using `store` property in which case the auto-commit will be disabled.\n\nDefault value is : `true`" + }, + "description": { + "type": "string" + }, + "disabled": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "fetch": { + "$dynamic": false, + "type": "boolean", + "title": "Whether to fetch the data from the query result to the task output. This parameter is evaluated after `fetchOne` and `store`.", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "fetchOne": { + "$dynamic": false, + "type": "boolean", + "title": "Whether to fetch only one data row from the query result to the task output. This parameter is evaluated before `store` and `fetch`.", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "fetchSize": { + "$dynamic": false, + "type": "integer", + "title": "Number of rows that should be fetched.", + "default": 10000, + "markdownDescription": "Gives the JDBC driver a hint as to the number of rows that should be fetched from the database when more rows are needed for this ResultSet object. If the fetch size specified is zero, the JDBC driver ignores the value and is free to make its own best guess as to what the fetch size should be. Ignored if `autoCommit` is false.\n\nDefault value is : `10000`" + }, + "id": { + "type": "string", + "minLength": 1, + "pattern": "^[a-zA-Z0-9][a-zA-Z0-9_-]*" + }, + "logLevel": { + "type": "string", + "enum": ["ERROR", "WARN", "INFO", "DEBUG", "TRACE"] + }, + "password": { + "$dynamic": true, + "type": "string", + "title": "The database user's password." + }, + "retry": { + "oneOf": [ + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Constant-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Exponential-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Random-2" + } + ] + }, + "sql": { + "$dynamic": true, + "type": "string", + "title": "The SQL query to run." + }, + "store": { + "$dynamic": false, + "type": "boolean", + "title": "Whether to fetch data row(s) from the query result to a file in internal storage. File will be saved as Amazon Ion (text format). \n See \u003Ca href=\"http://amzn.github.io/ion-docs/\"\u003EAmazon Ion documentation\u003C/a\u003E This parameter is evaluated after `fetchOne` but before `fetch`.", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "timeZoneId": { + "$dynamic": false, + "type": "string", + "title": "The time zone id to use for date/time manipulation. Default value is the worker's default time zone id." + }, + "timeout": { + "type": "string", + "format": "duration" + }, + "type": { + "const": "io.kestra.plugin.jdbc.db2.Query" + }, + "url": { + "$dynamic": true, + "type": "string", + "title": "The JDBC URL to connect to the database." + }, + "username": { + "$dynamic": true, + "type": "string", + "title": "The database user." + }, + "workerGroup": { + "$ref": "#/definitions/io.kestra.core.models.tasks.WorkerGroup" + } + }, + "required": ["id", "type", "url"], + "title": "Query a DB2 database.", + "markdownDescription": "##### Examples\n\u003E Send a SQL query to a DB2 Database and fetch a row as output.\n```yaml\nurl: jdbc:db2://127.0.0.1:50000/\nusername: db2inst\npassword: db2_passwd\nsql: select * from db2_types\nfetchOne: true\n```" + }, + "io.kestra.plugin.jdbc.db2.Trigger": { + "type": "object", + "properties": { + "conditions": { + "$dynamic": false, + "title": "List of conditions in order to limit the flow trigger.", + "type": "array", + "items": { + "oneOf": [ + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.DateTimeBetweenCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.DayWeekCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.DayWeekInMonthCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.ExecutionFlowCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.ExecutionLabelsCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.ExecutionNamespaceCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.ExecutionOutputsCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.ExecutionStatusCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.ExpressionCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.FlowCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.FlowNamespaceCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.HasRetryAttemptCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.MultipleCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.NotCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.OrCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.PublicHolidayCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.TimeBetweenCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.WeekendCondition" + }, + { + "$dynamic": false + } + ] + } + ] + } + }, + "description": { + "type": "string" + }, + "disabled": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "fetch": { + "$dynamic": false, + "type": "boolean", + "title": "Whether to fetch the data from the query result to the task output. This parameter is evaluated after `fetchOne` and `store`.", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "fetchOne": { + "$dynamic": false, + "type": "boolean", + "title": "Whether to fetch only one data row from the query result to the task output. This parameter is evaluated before `store` and `fetch`.", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "fetchSize": { + "$dynamic": false, + "type": "integer", + "title": "Number of rows that should be fetched.", + "default": 10000, + "markdownDescription": "Gives the JDBC driver a hint as to the number of rows that should be fetched from the database when more rows are needed for this ResultSet object. If the fetch size specified is zero, the JDBC driver ignores the value and is free to make its own best guess as to what the fetch size should be. Ignored if `autoCommit` is false.\n\nDefault value is : `10000`" + }, + "id": { + "type": "string", + "title": "A unique ID for the whole flow.", + "minLength": 1, + "pattern": "^[a-zA-Z0-9][a-zA-Z0-9_-]*" + }, + "interval": { + "$dynamic": false, + "type": "string", + "format": "duration", + "title": "Interval between polling.", + "default": 60, + "markdownDescription": "The interval between 2 different polls of schedule, this can avoid to overload the remote system with too many calls. For most of the triggers that depend on external systems, a minimal interval must be at least PT30S.\nSee [ISO_8601 Durations](https://en.wikipedia.org/wiki/ISO_8601#Durations) for more information of available interval values.\n\nDefault value is : `60.000000000`" + }, + "labels": { + "title": "The labels to pass to the execution created.", + "type": "array", + "items": { + "$ref": "#/definitions/io.kestra.core.models.Label" + } + }, + "logLevel": { + "type": "string", + "enum": ["ERROR", "WARN", "INFO", "DEBUG", "TRACE"] + }, + "password": { + "$dynamic": true, + "type": "string", + "title": "The database user's password." + }, + "sql": { + "$dynamic": true, + "type": "string", + "title": "The SQL query to run." + }, + "stopAfter": { + "$dynamic": false, + "title": "List of execution states after which a trigger should be stopped (a.k.a. disabled).", + "type": "array", + "items": { + "$dynamic": false, + "type": "string", + "enum": [ + "CREATED", + "RUNNING", + "PAUSED", + "RESTARTED", + "KILLING", + "SUCCESS", + "WARNING", + "FAILED", + "KILLED", + "CANCELLED", + "QUEUED", + "RETRYING", + "RETRIED" + ] + } + }, + "store": { + "$dynamic": false, + "type": "boolean", + "title": "Whether to fetch data row(s) from the query result to a file in internal storage. File will be saved as Amazon Ion (text format). \n See \u003Ca href=\"http://amzn.github.io/ion-docs/\"\u003EAmazon Ion documentation\u003C/a\u003E This parameter is evaluated after `fetchOne` but before `fetch`.", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "timeZoneId": { + "$dynamic": false, + "type": "string", + "title": "The time zone id to use for date/time manipulation. Default value is the worker's default time zone id." + }, + "type": { + "const": "io.kestra.plugin.jdbc.db2.Trigger" + }, + "url": { + "$dynamic": true, + "type": "string", + "title": "The JDBC URL to connect to the database." + }, + "username": { + "$dynamic": true, + "type": "string", + "title": "The database user." + }, + "workerGroup": { + "$ref": "#/definitions/io.kestra.core.models.tasks.WorkerGroup" + } + }, + "required": ["id", "type", "url"], + "title": "Wait for query on a DB2 database.", + "markdownDescription": "##### Examples\n\u003E Wait for a SQL query to return results, and then iterate through rows.\n```yaml\nid: jdbc-trigger\nnamespace: company.team\n\ntasks:\n - id: each\n type: io.kestra.plugin.core.flow.EachSequential\n tasks:\n - id: return\n type: io.kestra.plugin.core.debug.Return\n format: \"{{ json(taskrun.value) }}\"\n value: \"{{ trigger.rows }}\"\n\ntriggers:\n - id: watch\n type: io.kestra.plugin.jdbc.db2.Trigger\n interval: \"PT5M\"\n url: jdbc:db2://127.0.0.1:50000/\n username: db2inst\n password: db2_passwd\n sql: \"SELECT * FROM my_table\"\n fetch: true\n```" + }, + "io.kestra.plugin.jdbc.dremio.Query": { + "type": "object", + "properties": { + "allowFailure": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "description": { + "type": "string" + }, + "disabled": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "fetch": { + "$dynamic": false, + "type": "boolean", + "title": "Whether to fetch the data from the query result to the task output. This parameter is evaluated after `fetchOne` and `store`.", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "fetchOne": { + "$dynamic": false, + "type": "boolean", + "title": "Whether to fetch only one data row from the query result to the task output. This parameter is evaluated before `store` and `fetch`.", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "fetchSize": { + "$dynamic": false, + "type": "integer", + "title": "Number of rows that should be fetched.", + "default": 10000, + "markdownDescription": "Gives the JDBC driver a hint as to the number of rows that should be fetched from the database when more rows are needed for this ResultSet object. If the fetch size specified is zero, the JDBC driver ignores the value and is free to make its own best guess as to what the fetch size should be. Ignored if `autoCommit` is false.\n\nDefault value is : `10000`" + }, + "id": { + "type": "string", + "minLength": 1, + "pattern": "^[a-zA-Z0-9][a-zA-Z0-9_-]*" + }, + "logLevel": { + "type": "string", + "enum": ["ERROR", "WARN", "INFO", "DEBUG", "TRACE"] + }, + "password": { + "$dynamic": true, + "type": "string", + "title": "The database user's password." + }, + "retry": { + "oneOf": [ + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Constant-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Exponential-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Random-2" + } + ] + }, + "sql": { + "$dynamic": true, + "type": "string", + "title": "The SQL query to run." + }, + "store": { + "$dynamic": false, + "type": "boolean", + "title": "Whether to fetch data row(s) from the query result to a file in internal storage. File will be saved as Amazon Ion (text format). \n See \u003Ca href=\"http://amzn.github.io/ion-docs/\"\u003EAmazon Ion documentation\u003C/a\u003E This parameter is evaluated after `fetchOne` but before `fetch`.", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "timeZoneId": { + "$dynamic": false, + "type": "string", + "title": "The time zone id to use for date/time manipulation. Default value is the worker's default time zone id." + }, + "timeout": { + "type": "string", + "format": "duration" + }, + "type": { + "const": "io.kestra.plugin.jdbc.dremio.Query" + }, + "url": { + "$dynamic": true, + "type": "string", + "title": "The JDBC URL to connect to the database." + }, + "username": { + "$dynamic": true, + "type": "string", + "title": "The database user." + }, + "workerGroup": { + "$ref": "#/definitions/io.kestra.core.models.tasks.WorkerGroup" + } + }, + "required": ["id", "type", "url"], + "title": "Query a Dremio database.", + "markdownDescription": "##### Examples\n\u003E Send a SQL query to a Dremio database and fetch a row as output.\n```yaml\nurl: jdbc:dremio:direct=sql.dremio.cloud:443;ssl=true;PROJECT_ID=sampleProjectId;\nusername: $token\npassword: samplePersonalAccessToken\nsql: select * FROM source.database.table\nfetchOne: true\n```" + }, + "io.kestra.plugin.jdbc.dremio.Trigger": { + "type": "object", + "properties": { + "conditions": { + "$dynamic": false, + "title": "List of conditions in order to limit the flow trigger.", + "type": "array", + "items": { + "oneOf": [ + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.DateTimeBetweenCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.DayWeekCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.DayWeekInMonthCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.ExecutionFlowCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.ExecutionLabelsCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.ExecutionNamespaceCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.ExecutionOutputsCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.ExecutionStatusCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.ExpressionCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.FlowCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.FlowNamespaceCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.HasRetryAttemptCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.MultipleCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.NotCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.OrCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.PublicHolidayCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.TimeBetweenCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.WeekendCondition" + }, + { + "$dynamic": false + } + ] + } + ] + } + }, + "description": { + "type": "string" + }, + "disabled": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "fetch": { + "$dynamic": false, + "type": "boolean", + "title": "Whether to fetch the data from the query result to the task output. This parameter is evaluated after `fetchOne` and `store`.", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "fetchOne": { + "$dynamic": false, + "type": "boolean", + "title": "Whether to fetch only one data row from the query result to the task output. This parameter is evaluated before `store` and `fetch`.", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "fetchSize": { + "$dynamic": false, + "type": "integer", + "title": "Number of rows that should be fetched.", + "default": 10000, + "markdownDescription": "Gives the JDBC driver a hint as to the number of rows that should be fetched from the database when more rows are needed for this ResultSet object. If the fetch size specified is zero, the JDBC driver ignores the value and is free to make its own best guess as to what the fetch size should be. Ignored if `autoCommit` is false.\n\nDefault value is : `10000`" + }, + "id": { + "type": "string", + "title": "A unique ID for the whole flow.", + "minLength": 1, + "pattern": "^[a-zA-Z0-9][a-zA-Z0-9_-]*" + }, + "interval": { + "$dynamic": false, + "type": "string", + "format": "duration", + "title": "Interval between polling.", + "default": 60, + "markdownDescription": "The interval between 2 different polls of schedule, this can avoid to overload the remote system with too many calls. For most of the triggers that depend on external systems, a minimal interval must be at least PT30S.\nSee [ISO_8601 Durations](https://en.wikipedia.org/wiki/ISO_8601#Durations) for more information of available interval values.\n\nDefault value is : `60.000000000`" + }, + "labels": { + "title": "The labels to pass to the execution created.", + "type": "array", + "items": { + "$ref": "#/definitions/io.kestra.core.models.Label" + } + }, + "logLevel": { + "type": "string", + "enum": ["ERROR", "WARN", "INFO", "DEBUG", "TRACE"] + }, + "password": { + "$dynamic": true, + "type": "string", + "title": "The database user's password." + }, + "sql": { + "$dynamic": true, + "type": "string", + "title": "The SQL query to run." + }, + "stopAfter": { + "$dynamic": false, + "title": "List of execution states after which a trigger should be stopped (a.k.a. disabled).", + "type": "array", + "items": { + "$dynamic": false, + "type": "string", + "enum": [ + "CREATED", + "RUNNING", + "PAUSED", + "RESTARTED", + "KILLING", + "SUCCESS", + "WARNING", + "FAILED", + "KILLED", + "CANCELLED", + "QUEUED", + "RETRYING", + "RETRIED" + ] + } + }, + "store": { + "$dynamic": false, + "type": "boolean", + "title": "Whether to fetch data row(s) from the query result to a file in internal storage. File will be saved as Amazon Ion (text format). \n See \u003Ca href=\"http://amzn.github.io/ion-docs/\"\u003EAmazon Ion documentation\u003C/a\u003E This parameter is evaluated after `fetchOne` but before `fetch`.", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "timeZoneId": { + "$dynamic": false, + "type": "string", + "title": "The time zone id to use for date/time manipulation. Default value is the worker's default time zone id." + }, + "type": { + "const": "io.kestra.plugin.jdbc.dremio.Trigger" + }, + "url": { + "$dynamic": true, + "type": "string", + "title": "The JDBC URL to connect to the database." + }, + "username": { + "$dynamic": true, + "type": "string", + "title": "The database user." + }, + "workerGroup": { + "$ref": "#/definitions/io.kestra.core.models.tasks.WorkerGroup" + } + }, + "required": ["id", "type", "url"], + "title": "Wait for query on a Dremio database.", + "markdownDescription": "##### Examples\n\u003E Wait for a SQL query to return results, and then iterate through rows.\n```yaml\nid: jdbc-trigger\nnamespace: company.team\n\ntasks:\n - id: each\n type: io.kestra.plugin.core.flow.EachSequential\n tasks:\n - id: return\n type: io.kestra.plugin.core.debug.Return\n format: \"{{ json(taskrun.value) }}\"\n value: \"{{ trigger.rows }}\"\n\ntriggers:\n - id: watch\n type: io.kestra.plugin.jdbc.dremio.Trigger\n interval: \"PT5M\"\n url: jdbc:dremio:direct=sql.dremio.cloud:443;ssl=true;PROJECT_ID=sampleProjectId;\n username: $token\n password: samplePersonalAccessToken\n sql: \"SELECT * FROM source.database.my_table\"\n fetch: true\n```" + }, + "io.kestra.plugin.jdbc.druid.Query": { + "type": "object", + "properties": { + "allowFailure": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "description": { + "type": "string" + }, + "disabled": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "fetch": { + "$dynamic": false, + "type": "boolean", + "title": "Whether to fetch the data from the query result to the task output. This parameter is evaluated after `fetchOne` and `store`.", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "fetchOne": { + "$dynamic": false, + "type": "boolean", + "title": "Whether to fetch only one data row from the query result to the task output. This parameter is evaluated before `store` and `fetch`.", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "fetchSize": { + "$dynamic": false, + "type": "integer", + "title": "Number of rows that should be fetched.", + "default": 10000, + "markdownDescription": "Gives the JDBC driver a hint as to the number of rows that should be fetched from the database when more rows are needed for this ResultSet object. If the fetch size specified is zero, the JDBC driver ignores the value and is free to make its own best guess as to what the fetch size should be. Ignored if `autoCommit` is false.\n\nDefault value is : `10000`" + }, + "id": { + "type": "string", + "minLength": 1, + "pattern": "^[a-zA-Z0-9][a-zA-Z0-9_-]*" + }, + "logLevel": { + "type": "string", + "enum": ["ERROR", "WARN", "INFO", "DEBUG", "TRACE"] + }, + "password": { + "$dynamic": true, + "type": "string", + "title": "The database user's password." + }, + "retry": { + "oneOf": [ + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Constant-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Exponential-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Random-2" + } + ] + }, + "sql": { + "$dynamic": true, + "type": "string", + "title": "The SQL query to run." + }, + "store": { + "$dynamic": false, + "type": "boolean", + "title": "Whether to fetch data row(s) from the query result to a file in internal storage. File will be saved as Amazon Ion (text format). \n See \u003Ca href=\"http://amzn.github.io/ion-docs/\"\u003EAmazon Ion documentation\u003C/a\u003E This parameter is evaluated after `fetchOne` but before `fetch`.", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "timeZoneId": { + "$dynamic": false, + "type": "string", + "title": "The time zone id to use for date/time manipulation. Default value is the worker's default time zone id." + }, + "timeout": { + "type": "string", + "format": "duration" + }, + "type": { + "const": "io.kestra.plugin.jdbc.druid.Query" + }, + "url": { + "$dynamic": true, + "type": "string", + "title": "The JDBC URL to connect to the database." + }, + "username": { + "$dynamic": true, + "type": "string", + "title": "The database user." + }, + "workerGroup": { + "$ref": "#/definitions/io.kestra.core.models.tasks.WorkerGroup" + } + }, + "required": ["id", "type", "url"], + "title": "Query a Apache Druid database.", + "markdownDescription": "##### Examples\n\u003E Query an Apache Druid database.\n```yaml\nurl: jdbc:avatica:remote:url=http://localhost:8888/druid/v2/sql/avatica/;transparent_reconnection=true\nsql: |\n SELECT *\n FROM wikiticker\nstore: true\n```" + }, + "io.kestra.plugin.jdbc.druid.Trigger": { + "type": "object", + "properties": { + "conditions": { + "$dynamic": false, + "title": "List of conditions in order to limit the flow trigger.", + "type": "array", + "items": { + "oneOf": [ + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.DateTimeBetweenCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.DayWeekCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.DayWeekInMonthCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.ExecutionFlowCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.ExecutionLabelsCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.ExecutionNamespaceCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.ExecutionOutputsCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.ExecutionStatusCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.ExpressionCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.FlowCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.FlowNamespaceCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.HasRetryAttemptCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.MultipleCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.NotCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.OrCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.PublicHolidayCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.TimeBetweenCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.WeekendCondition" + }, + { + "$dynamic": false + } + ] + } + ] + } + }, + "description": { + "type": "string" + }, + "disabled": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "fetch": { + "$dynamic": false, + "type": "boolean", + "title": "Whether to fetch the data from the query result to the task output. This parameter is evaluated after `fetchOne` and `store`.", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "fetchOne": { + "$dynamic": false, + "type": "boolean", + "title": "Whether to fetch only one data row from the query result to the task output. This parameter is evaluated before `store` and `fetch`.", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "fetchSize": { + "$dynamic": false, + "type": "integer", + "title": "Number of rows that should be fetched.", + "default": 10000, + "markdownDescription": "Gives the JDBC driver a hint as to the number of rows that should be fetched from the database when more rows are needed for this ResultSet object. If the fetch size specified is zero, the JDBC driver ignores the value and is free to make its own best guess as to what the fetch size should be. Ignored if `autoCommit` is false.\n\nDefault value is : `10000`" + }, + "id": { + "type": "string", + "title": "A unique ID for the whole flow.", + "minLength": 1, + "pattern": "^[a-zA-Z0-9][a-zA-Z0-9_-]*" + }, + "interval": { + "$dynamic": false, + "type": "string", + "format": "duration", + "title": "Interval between polling.", + "default": 60, + "markdownDescription": "The interval between 2 different polls of schedule, this can avoid to overload the remote system with too many calls. For most of the triggers that depend on external systems, a minimal interval must be at least PT30S.\nSee [ISO_8601 Durations](https://en.wikipedia.org/wiki/ISO_8601#Durations) for more information of available interval values.\n\nDefault value is : `60.000000000`" + }, + "labels": { + "title": "The labels to pass to the execution created.", + "type": "array", + "items": { + "$ref": "#/definitions/io.kestra.core.models.Label" + } + }, + "logLevel": { + "type": "string", + "enum": ["ERROR", "WARN", "INFO", "DEBUG", "TRACE"] + }, + "password": { + "$dynamic": true, + "type": "string", + "title": "The database user's password." + }, + "sql": { + "$dynamic": true, + "type": "string", + "title": "The SQL query to run." + }, + "stopAfter": { + "$dynamic": false, + "title": "List of execution states after which a trigger should be stopped (a.k.a. disabled).", + "type": "array", + "items": { + "$dynamic": false, + "type": "string", + "enum": [ + "CREATED", + "RUNNING", + "PAUSED", + "RESTARTED", + "KILLING", + "SUCCESS", + "WARNING", + "FAILED", + "KILLED", + "CANCELLED", + "QUEUED", + "RETRYING", + "RETRIED" + ] + } + }, + "store": { + "$dynamic": false, + "type": "boolean", + "title": "Whether to fetch data row(s) from the query result to a file in internal storage. File will be saved as Amazon Ion (text format). \n See \u003Ca href=\"http://amzn.github.io/ion-docs/\"\u003EAmazon Ion documentation\u003C/a\u003E This parameter is evaluated after `fetchOne` but before `fetch`.", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "timeZoneId": { + "$dynamic": false, + "type": "string", + "title": "The time zone id to use for date/time manipulation. Default value is the worker's default time zone id." + }, + "type": { + "const": "io.kestra.plugin.jdbc.druid.Trigger" + }, + "url": { + "$dynamic": true, + "type": "string", + "title": "The JDBC URL to connect to the database." + }, + "username": { + "$dynamic": true, + "type": "string", + "title": "The database user." + }, + "workerGroup": { + "$ref": "#/definitions/io.kestra.core.models.tasks.WorkerGroup" + } + }, + "required": ["id", "type", "url"], + "title": "Wait for query on a Druid database.", + "markdownDescription": "##### Examples\n\u003E Wait for a SQL query to return results, and then iterate through rows.\n```yaml\nid: jdbc-trigger\nnamespace: company.team\n\ntasks:\n - id: each\n type: io.kestra.plugin.core.flow.EachSequential\n tasks:\n - id: return\n type: io.kestra.plugin.core.debug.Return\n format: \"{{ json(taskrun.value) }}\"\n value: \"{{ trigger.rows }}\"\n\ntriggers:\n - id: watch\n type: io.kestra.plugin.jdbc.druid.Trigger\n interval: \"PT5M\"\n url: jdbc:avatica:remote:url=http://localhost:8888/druid/v2/sql/avatica/;transparent_reconnection=true\n sql: \"SELECT * FROM my_table\"\n fetch: true\n```" + }, + "io.kestra.plugin.jdbc.duckdb.Query": { + "type": "object", + "properties": { + "allowFailure": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "autoCommit": { + "$dynamic": false, + "type": "boolean", + "title": "Whether autocommit is enabled.", + "default": true, + "markdownDescription": "Sets this connection's auto-commit mode to the given state. If a connection is in auto-commit mode, then all its SQL statements will be executed and committed as individual transactions. Otherwise, its SQL statements are grouped into transactions that are terminated by a call to either the method commit or the method rollback. By default, new connections are in auto-commit mode except when you are using `store` property in which case the auto-commit will be disabled.\n\nDefault value is : `true`" + }, + "description": { + "type": "string" + }, + "disabled": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "fetch": { + "$dynamic": false, + "type": "boolean", + "title": "Whether to fetch the data from the query result to the task output. This parameter is evaluated after `fetchOne` and `store`.", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "fetchOne": { + "$dynamic": false, + "type": "boolean", + "title": "Whether to fetch only one data row from the query result to the task output. This parameter is evaluated before `store` and `fetch`.", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "fetchSize": { + "$dynamic": false, + "type": "integer", + "title": "Number of rows that should be fetched.", + "default": 10000, + "markdownDescription": "Gives the JDBC driver a hint as to the number of rows that should be fetched from the database when more rows are needed for this ResultSet object. If the fetch size specified is zero, the JDBC driver ignores the value and is free to make its own best guess as to what the fetch size should be. Ignored if `autoCommit` is false.\n\nDefault value is : `10000`" + }, + "id": { + "type": "string", + "minLength": 1, + "pattern": "^[a-zA-Z0-9][a-zA-Z0-9_-]*" + }, + "inputFiles": { + "$dynamic": true, + "title": "Input files to be loaded from DuckDb.", + "additionalProperties": { + "type": "string" + }, + "markdownDescription": "Describe a files map that will be written and usable by DuckDb. You can reach files using a `workingDir` variable, example: `SELECT * FROM read_csv_auto('{{ workingDir }}/myfile.csv');` " + }, + "logLevel": { + "type": "string", + "enum": ["ERROR", "WARN", "INFO", "DEBUG", "TRACE"] + }, + "outputFiles": { + "$dynamic": false, + "title": "Output file list that will be uploaded to internal storage.", + "markdownDescription": "List of keys that will generate temporary files.\nOn the SQL query, you can just use a variable named `outputFiles.key` for the corresponding file.\nIf you add a file with `[\"first\"]`, you can use the special vars `COPY tbl TO '{{ outputFiles.first }}' (HEADER, DELIMITER ',');` and use this file in others tasks using `{{ outputs.taskId.outputFiles.first }}`.", + "type": "array", + "items": { + "$dynamic": false, + "type": "string" + } + }, + "password": { + "$dynamic": true, + "type": "string", + "title": "The database user's password." + }, + "retry": { + "oneOf": [ + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Constant-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Exponential-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Random-2" + } + ] + }, + "sql": { + "$dynamic": true, + "type": "string", + "title": "The SQL query to run." + }, + "store": { + "$dynamic": false, + "type": "boolean", + "title": "Whether to fetch data row(s) from the query result to a file in internal storage. File will be saved as Amazon Ion (text format). \n See \u003Ca href=\"http://amzn.github.io/ion-docs/\"\u003EAmazon Ion documentation\u003C/a\u003E This parameter is evaluated after `fetchOne` but before `fetch`.", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "timeZoneId": { + "$dynamic": false, + "type": "string", + "title": "The time zone id to use for date/time manipulation. Default value is the worker's default time zone id." + }, + "timeout": { + "type": "string", + "format": "duration" + }, + "type": { + "const": "io.kestra.plugin.jdbc.duckdb.Query" + }, + "url": { + "$dynamic": true, + "type": "string", + "title": "The JDBC URL to connect to the database.", + "default": "jdbc:duckdb:", + "markdownDescription": "The default value, `jdbc:duckdb:`, will use a local in-memory database. \nSet this property when connecting to a persisted database instance, for example `jdbc:duckdb:md:my_database?motherduck_token=\u003Cmy_token\u003E` to connect to [MotherDuck](https://motherduck.com/).\n\nDefault value is : `\"jdbc:duckdb:\"`" + }, + "username": { + "$dynamic": true, + "type": "string", + "title": "The database user." + }, + "workerGroup": { + "$ref": "#/definitions/io.kestra.core.models.tasks.WorkerGroup" + } + }, + "required": ["id", "type"], + "title": "Query a DuckDb Database.", + "markdownDescription": "##### Examples\n\u003E Execute a query that reads a csv, and outputs another csv.\n```yaml\nid: query-duckdb\nnamespace: company.team\ntasks:\n - id: http_download\n type: io.kestra.plugin.core.http.Download\n uri: \"https://huggingface.co/datasets/kestra/datasets/raw/main/csv/orders.csv\"\n - id: query\n type: io.kestra.plugin.jdbc.duckdb.Query\n url: 'jdbc:duckdb:'\n timeZoneId: Europe/Paris\n sql: |-\n CREATE TABLE new_tbl AS SELECT * FROM read_csv_auto('{{ workingDir }}/in.csv', header=True);\n\n COPY (SELECT order_id, customer_name FROM new_tbl) TO '{{ outputFiles.out }}' (HEADER, DELIMITER ',');\n inputFiles:\n in.csv: \"{{ outputs.http_download.uri }}\"\n outputFiles:\n - out\n```\n\n\u003E Execute a query that reads from an existing database file using a URL.\n```yaml\nid: query-duckdb\nnamespace: company.team\ntasks:\n - id: query1\n type: io.kestra.plugin.jdbc.duckdb.Query\n url: jdbc:duckdb:/{{ vars.dbfile }}\n sql: SELECT * FROM table_name;\n store: true\n\n - id: query2\n type: io.kestra.plugin.jdbc.duckdb.Query\n url: jdbc:duckdb:/temp/folder/duck.db\n sql: SELECT * FROM table_name;\n store: true\n```\n\n\u003E Execute a query that reads from an existing database file using the `databaseFile` variable.\n```yaml\nid: query-duckdb\nnamespace: company.team\ntasks:\n - id: query1\n type: io.kestra.plugin.jdbc.duckdb.Query\n url: jdbc:duckdb:\n databaseFile:{{ vars.dbfile }}\n sql: SELECT * FROM table_name;\n store: true\n\n - id: query2\n type: io.kestra.plugin.jdbc.duckdb.Query\n url: jdbc:duckdb:\n databaseFile:/temp/folder/duck.db\n sql: SELECT * FROM table_name;\n store: true\n```" + }, + "io.kestra.plugin.jdbc.duckdb.Trigger": { + "type": "object", + "properties": { + "conditions": { + "$dynamic": false, + "title": "List of conditions in order to limit the flow trigger.", + "type": "array", + "items": { + "oneOf": [ + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.DateTimeBetweenCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.DayWeekCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.DayWeekInMonthCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.ExecutionFlowCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.ExecutionLabelsCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.ExecutionNamespaceCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.ExecutionOutputsCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.ExecutionStatusCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.ExpressionCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.FlowCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.FlowNamespaceCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.HasRetryAttemptCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.MultipleCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.NotCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.OrCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.PublicHolidayCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.TimeBetweenCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.WeekendCondition" + }, + { + "$dynamic": false + } + ] + } + ] + } + }, + "description": { + "type": "string" + }, + "disabled": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "fetch": { + "$dynamic": false, + "type": "boolean", + "title": "Whether to fetch the data from the query result to the task output. This parameter is evaluated after `fetchOne` and `store`.", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "fetchOne": { + "$dynamic": false, + "type": "boolean", + "title": "Whether to fetch only one data row from the query result to the task output. This parameter is evaluated before `store` and `fetch`.", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "fetchSize": { + "$dynamic": false, + "type": "integer", + "title": "Number of rows that should be fetched.", + "default": 10000, + "markdownDescription": "Gives the JDBC driver a hint as to the number of rows that should be fetched from the database when more rows are needed for this ResultSet object. If the fetch size specified is zero, the JDBC driver ignores the value and is free to make its own best guess as to what the fetch size should be. Ignored if `autoCommit` is false.\n\nDefault value is : `10000`" + }, + "id": { + "type": "string", + "title": "A unique ID for the whole flow.", + "minLength": 1, + "pattern": "^[a-zA-Z0-9][a-zA-Z0-9_-]*" + }, + "interval": { + "$dynamic": false, + "type": "string", + "format": "duration", + "title": "Interval between polling.", + "default": 60, + "markdownDescription": "The interval between 2 different polls of schedule, this can avoid to overload the remote system with too many calls. For most of the triggers that depend on external systems, a minimal interval must be at least PT30S.\nSee [ISO_8601 Durations](https://en.wikipedia.org/wiki/ISO_8601#Durations) for more information of available interval values.\n\nDefault value is : `60.000000000`" + }, + "labels": { + "title": "The labels to pass to the execution created.", + "type": "array", + "items": { + "$ref": "#/definitions/io.kestra.core.models.Label" + } + }, + "logLevel": { + "type": "string", + "enum": ["ERROR", "WARN", "INFO", "DEBUG", "TRACE"] + }, + "password": { + "$dynamic": true, + "type": "string", + "title": "The database user's password." + }, + "sql": { + "$dynamic": true, + "type": "string", + "title": "The SQL query to run." + }, + "stopAfter": { + "$dynamic": false, + "title": "List of execution states after which a trigger should be stopped (a.k.a. disabled).", + "type": "array", + "items": { + "$dynamic": false, + "type": "string", + "enum": [ + "CREATED", + "RUNNING", + "PAUSED", + "RESTARTED", + "KILLING", + "SUCCESS", + "WARNING", + "FAILED", + "KILLED", + "CANCELLED", + "QUEUED", + "RETRYING", + "RETRIED" + ] + } + }, + "store": { + "$dynamic": false, + "type": "boolean", + "title": "Whether to fetch data row(s) from the query result to a file in internal storage. File will be saved as Amazon Ion (text format). \n See \u003Ca href=\"http://amzn.github.io/ion-docs/\"\u003EAmazon Ion documentation\u003C/a\u003E This parameter is evaluated after `fetchOne` but before `fetch`.", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "timeZoneId": { + "$dynamic": false, + "type": "string", + "title": "The time zone id to use for date/time manipulation. Default value is the worker's default time zone id." + }, + "type": { + "const": "io.kestra.plugin.jdbc.duckdb.Trigger" + }, + "url": { + "$dynamic": true, + "type": "string", + "title": "The JDBC URL to connect to the database.", + "default": "jdbc:duckdb:null", + "markdownDescription": "Default value is : `jdbc:duckdb:null`" + }, + "username": { + "$dynamic": true, + "type": "string", + "title": "The database user." + }, + "workerGroup": { + "$ref": "#/definitions/io.kestra.core.models.tasks.WorkerGroup" + } + }, + "required": ["id", "type"], + "title": "Wait for query on a DuckDb database.", + "markdownDescription": "##### Examples\n\u003E Wait for a SQL query to return results, and then iterate through rows.\n```yaml\nid: jdbc-trigger\nnamespace: company.team\n\ntasks:\n - id: each\n type: io.kestra.plugin.core.flow.EachSequential\n tasks:\n - id: return\n type: io.kestra.plugin.core.debug.Return\n format: \"{{ json(taskrun.value) }}\"\n value: \"{{ trigger.rows }}\"\n\ntriggers:\n - id: watch\n type: io.kestra.plugin.jdbc.duckdb.Trigger\n interval: \"PT5M\"\n url: 'jdbc:duckdb:'\n sql: \"SELECT * FROM my_table\"\n fetch: true\n```" + }, + "io.kestra.plugin.jdbc.mysql.Batch": { + "type": "object", + "properties": { + "allowFailure": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "chunk": { + "$dynamic": true, + "type": "integer", + "title": "The size of chunk for every bulk request.", + "default": 1000, + "markdownDescription": "Default value is : `1000`" + }, + "columns": { + "$dynamic": true, + "title": "The columns to be inserted.", + "markdownDescription": "If not provided, `?` count need to match the `from` number of columns.", + "type": "array", + "items": { + "$dynamic": true, + "type": "string" + } + }, + "description": { + "type": "string" + }, + "disabled": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "from": { + "$dynamic": true, + "type": "string", + "title": "Source file URI" + }, + "id": { + "type": "string", + "minLength": 1, + "pattern": "^[a-zA-Z0-9][a-zA-Z0-9_-]*" + }, + "logLevel": { + "type": "string", + "enum": ["ERROR", "WARN", "INFO", "DEBUG", "TRACE"] + }, + "password": { + "$dynamic": true, + "type": "string", + "title": "The database user's password." + }, + "retry": { + "oneOf": [ + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Constant-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Exponential-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Random-2" + } + ] + }, + "sql": { + "$dynamic": true, + "type": "string", + "title": "Insert query to be executed.", + "markdownDescription": "The query must have as many question marks as the number of columns in the table.\nExample: 'insert into \u003Ctable_name\u003E values( ? , ? , ? )' for 3 columns.\nIn case you do not want all columns, you need to specify it in the query in the columns property\nExample: 'insert into \u003Ctable_name\u003E (id, name) values( ? , ? )' for inserting data into 2 columns: 'id' and 'name'." + }, + "timeZoneId": { + "$dynamic": false, + "type": "string", + "title": "The time zone id to use for date/time manipulation. Default value is the worker's default time zone id." + }, + "timeout": { + "type": "string", + "format": "duration" + }, + "type": { + "const": "io.kestra.plugin.jdbc.mysql.Batch" + }, + "url": { + "$dynamic": true, + "type": "string", + "title": "The JDBC URL to connect to the database." + }, + "username": { + "$dynamic": true, + "type": "string", + "title": "The database user." + }, + "workerGroup": { + "$ref": "#/definitions/io.kestra.core.models.tasks.WorkerGroup" + } + }, + "required": ["from", "id", "sql", "type", "url"], + "title": "Execute a batch query to a MySQL server.", + "markdownDescription": "##### Examples\n\u003E Fetch rows from a table, and bulk insert them to another one.\n```yaml\ntasks:\n - id: query\n type: io.kestra.plugin.jdbc.mysql.Query\n url: jdbc:mysql://127.0.0.1:3306/\n username: mysql_user\n password: mysql_passwd\n sql: |\n SELECT *\n FROM xref\n LIMIT 1500;\n store: true\n - id: update\n type: io.kestra.plugin.jdbc.mysql.Batch\n from: \"{{ outputs.query.uri }}\"\n url: jdbc:mysql://127.0.0.1:3306/\n username: mysql_user\n password: mysql_passwd\n sql: |\n insert into xref values( ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ? )\n```" + }, + "io.kestra.plugin.jdbc.mysql.Query": { + "type": "object", + "properties": { + "allowFailure": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "autoCommit": { + "$dynamic": false, + "type": "boolean", + "title": "Whether autocommit is enabled.", + "default": true, + "markdownDescription": "Sets this connection's auto-commit mode to the given state. If a connection is in auto-commit mode, then all its SQL statements will be executed and committed as individual transactions. Otherwise, its SQL statements are grouped into transactions that are terminated by a call to either the method commit or the method rollback. By default, new connections are in auto-commit mode except when you are using `store` property in which case the auto-commit will be disabled.\n\nDefault value is : `true`" + }, + "description": { + "type": "string" + }, + "disabled": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "fetch": { + "$dynamic": false, + "type": "boolean", + "title": "Whether to fetch the data from the query result to the task output. This parameter is evaluated after `fetchOne` and `store`.", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "fetchOne": { + "$dynamic": false, + "type": "boolean", + "title": "Whether to fetch only one data row from the query result to the task output. This parameter is evaluated before `store` and `fetch`.", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "fetchSize": { + "$dynamic": false, + "type": "integer", + "title": "Number of rows that should be fetched.", + "default": 10000, + "markdownDescription": "Gives the JDBC driver a hint as to the number of rows that should be fetched from the database when more rows are needed for this ResultSet object. If the fetch size specified is zero, the JDBC driver ignores the value and is free to make its own best guess as to what the fetch size should be. Ignored if `autoCommit` is false.\n\nDefault value is : `10000`" + }, + "id": { + "type": "string", + "minLength": 1, + "pattern": "^[a-zA-Z0-9][a-zA-Z0-9_-]*" + }, + "inputFile": { + "$dynamic": true, + "type": "string", + "title": "Add input file to be loaded with `LOAD DATA LOCAL`.", + "markdownDescription": "The file must be from Kestra's internal storage" + }, + "logLevel": { + "type": "string", + "enum": ["ERROR", "WARN", "INFO", "DEBUG", "TRACE"] + }, + "password": { + "$dynamic": true, + "type": "string", + "title": "The database user's password." + }, + "retry": { + "oneOf": [ + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Constant-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Exponential-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Random-2" + } + ] + }, + "sql": { + "$dynamic": true, + "type": "string", + "title": "The SQL query to run." + }, + "store": { + "$dynamic": false, + "type": "boolean", + "title": "Whether to fetch data row(s) from the query result to a file in internal storage. File will be saved as Amazon Ion (text format). \n See \u003Ca href=\"http://amzn.github.io/ion-docs/\"\u003EAmazon Ion documentation\u003C/a\u003E This parameter is evaluated after `fetchOne` but before `fetch`.", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "timeZoneId": { + "$dynamic": false, + "type": "string", + "title": "The time zone id to use for date/time manipulation. Default value is the worker's default time zone id." + }, + "timeout": { + "type": "string", + "format": "duration" + }, + "type": { + "const": "io.kestra.plugin.jdbc.mysql.Query" + }, + "url": { + "$dynamic": true, + "type": "string", + "title": "The JDBC URL to connect to the database." + }, + "username": { + "$dynamic": true, + "type": "string", + "title": "The database user." + }, + "workerGroup": { + "$ref": "#/definitions/io.kestra.core.models.tasks.WorkerGroup" + } + }, + "required": ["id", "type", "url"], + "title": "Query a MySQL database.", + "markdownDescription": "##### Examples\n\u003E Send a SQL query to a MySQL Database and fetch a row as output.\n```yaml\nurl: jdbc:mysql://127.0.0.1:3306/\nusername: mysql_user\npassword: mysql_passwd\nsql: select * from mysql_types\nfetchOne: true\n```\n\n\u003E Load a csv file into a MySQL table.\n```yaml\nurl: jdbc:mysql://127.0.0.1:3306/\nusername: mysql_user\npassword: mysql_passwd\ninputFile: \"{{ outputs.taskId.file }}\"\nsql: |\n LOAD DATA LOCAL INFILE '{{ inputFile }}'\n INTO TABLE discounts FIELDS TERMINATED BY ','\n ENCLOSED BY '\"'\n LINES TERMINATED BY '\\n'\n IGNORE 1 ROWS;\n```" + }, + "io.kestra.plugin.jdbc.mysql.Trigger": { + "type": "object", + "properties": { + "conditions": { + "$dynamic": false, + "title": "List of conditions in order to limit the flow trigger.", + "type": "array", + "items": { + "oneOf": [ + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.DateTimeBetweenCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.DayWeekCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.DayWeekInMonthCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.ExecutionFlowCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.ExecutionLabelsCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.ExecutionNamespaceCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.ExecutionOutputsCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.ExecutionStatusCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.ExpressionCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.FlowCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.FlowNamespaceCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.HasRetryAttemptCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.MultipleCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.NotCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.OrCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.PublicHolidayCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.TimeBetweenCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.WeekendCondition" + }, + { + "$dynamic": false + } + ] + } + ] + } + }, + "description": { + "type": "string" + }, + "disabled": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "fetch": { + "$dynamic": false, + "type": "boolean", + "title": "Whether to fetch the data from the query result to the task output. This parameter is evaluated after `fetchOne` and `store`.", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "fetchOne": { + "$dynamic": false, + "type": "boolean", + "title": "Whether to fetch only one data row from the query result to the task output. This parameter is evaluated before `store` and `fetch`.", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "fetchSize": { + "$dynamic": false, + "type": "integer", + "title": "Number of rows that should be fetched.", + "default": 10000, + "markdownDescription": "Gives the JDBC driver a hint as to the number of rows that should be fetched from the database when more rows are needed for this ResultSet object. If the fetch size specified is zero, the JDBC driver ignores the value and is free to make its own best guess as to what the fetch size should be. Ignored if `autoCommit` is false.\n\nDefault value is : `10000`" + }, + "id": { + "type": "string", + "title": "A unique ID for the whole flow.", + "minLength": 1, + "pattern": "^[a-zA-Z0-9][a-zA-Z0-9_-]*" + }, + "interval": { + "$dynamic": false, + "type": "string", + "format": "duration", + "title": "Interval between polling.", + "default": 60, + "markdownDescription": "The interval between 2 different polls of schedule, this can avoid to overload the remote system with too many calls. For most of the triggers that depend on external systems, a minimal interval must be at least PT30S.\nSee [ISO_8601 Durations](https://en.wikipedia.org/wiki/ISO_8601#Durations) for more information of available interval values.\n\nDefault value is : `60.000000000`" + }, + "labels": { + "title": "The labels to pass to the execution created.", + "type": "array", + "items": { + "$ref": "#/definitions/io.kestra.core.models.Label" + } + }, + "logLevel": { + "type": "string", + "enum": ["ERROR", "WARN", "INFO", "DEBUG", "TRACE"] + }, + "password": { + "$dynamic": true, + "type": "string", + "title": "The database user's password." + }, + "sql": { + "$dynamic": true, + "type": "string", + "title": "The SQL query to run." + }, + "stopAfter": { + "$dynamic": false, + "title": "List of execution states after which a trigger should be stopped (a.k.a. disabled).", + "type": "array", + "items": { + "$dynamic": false, + "type": "string", + "enum": [ + "CREATED", + "RUNNING", + "PAUSED", + "RESTARTED", + "KILLING", + "SUCCESS", + "WARNING", + "FAILED", + "KILLED", + "CANCELLED", + "QUEUED", + "RETRYING", + "RETRIED" + ] + } + }, + "store": { + "$dynamic": false, + "type": "boolean", + "title": "Whether to fetch data row(s) from the query result to a file in internal storage. File will be saved as Amazon Ion (text format). \n See \u003Ca href=\"http://amzn.github.io/ion-docs/\"\u003EAmazon Ion documentation\u003C/a\u003E This parameter is evaluated after `fetchOne` but before `fetch`.", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "timeZoneId": { + "$dynamic": false, + "type": "string", + "title": "The time zone id to use for date/time manipulation. Default value is the worker's default time zone id." + }, + "type": { + "const": "io.kestra.plugin.jdbc.mysql.Trigger" + }, + "url": { + "$dynamic": true, + "type": "string", + "title": "The JDBC URL to connect to the database." + }, + "username": { + "$dynamic": true, + "type": "string", + "title": "The database user." + }, + "workerGroup": { + "$ref": "#/definitions/io.kestra.core.models.tasks.WorkerGroup" + } + }, + "required": ["id", "type", "url"], + "title": "Wait for query on a MySQL database.", + "markdownDescription": "##### Examples\n\u003E Wait for a SQL query to return results, and then iterate through rows.\n```yaml\nid: jdbc-trigger\nnamespace: company.team\n\ntasks:\n - id: each\n type: io.kestra.plugin.core.flow.EachSequential\n tasks:\n - id: return\n type: io.kestra.plugin.core.debug.Return\n format: \"{{ json(taskrun.value) }}\"\n value: \"{{ trigger.rows }}\"\n\ntriggers:\n - id: watch\n type: io.kestra.plugin.jdbc.mysql.Trigger\n interval: \"PT5M\"\n url: jdbc:mysql://127.0.0.1:3306/\n username: mysql_user\n password: mysql_passwd\n sql: \"SELECT * FROM my_table\"\n fetch: true\n```" + }, + "io.kestra.plugin.jdbc.oracle.Batch": { + "type": "object", + "properties": { + "allowFailure": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "chunk": { + "$dynamic": true, + "type": "integer", + "title": "The size of chunk for every bulk request.", + "default": 1000, + "markdownDescription": "Default value is : `1000`" + }, + "columns": { + "$dynamic": true, + "title": "The columns to be inserted.", + "markdownDescription": "If not provided, `?` count need to match the `from` number of columns.", + "type": "array", + "items": { + "$dynamic": true, + "type": "string" + } + }, + "description": { + "type": "string" + }, + "disabled": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "from": { + "$dynamic": true, + "type": "string", + "title": "Source file URI" + }, + "id": { + "type": "string", + "minLength": 1, + "pattern": "^[a-zA-Z0-9][a-zA-Z0-9_-]*" + }, + "logLevel": { + "type": "string", + "enum": ["ERROR", "WARN", "INFO", "DEBUG", "TRACE"] + }, + "password": { + "$dynamic": true, + "type": "string", + "title": "The database user's password." + }, + "retry": { + "oneOf": [ + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Constant-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Exponential-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Random-2" + } + ] + }, + "sql": { + "$dynamic": true, + "type": "string", + "title": "Insert query to be executed.", + "markdownDescription": "The query must have as many question marks as the number of columns in the table.\nExample: 'insert into \u003Ctable_name\u003E values( ? , ? , ? )' for 3 columns.\nIn case you do not want all columns, you need to specify it in the query in the columns property\nExample: 'insert into \u003Ctable_name\u003E (id, name) values( ? , ? )' for inserting data into 2 columns: 'id' and 'name'." + }, + "timeZoneId": { + "$dynamic": false, + "type": "string", + "title": "The time zone id to use for date/time manipulation. Default value is the worker's default time zone id." + }, + "timeout": { + "type": "string", + "format": "duration" + }, + "type": { + "const": "io.kestra.plugin.jdbc.oracle.Batch" + }, + "url": { + "$dynamic": true, + "type": "string", + "title": "The JDBC URL to connect to the database." + }, + "username": { + "$dynamic": true, + "type": "string", + "title": "The database user." + }, + "workerGroup": { + "$ref": "#/definitions/io.kestra.core.models.tasks.WorkerGroup" + } + }, + "required": ["from", "id", "sql", "type", "url"], + "title": "Execute a batch query to a Oracle server", + "markdownDescription": "##### Examples\n\u003E Fetch rows from a table and bulk insert to another one\n```yaml\ntasks:\n - id: query\n type: io.kestra.plugin.jdbc.oracle.Query\n url: jdbc:oracle:thin:@dev:49161:XE\n username: oracle\n password: oracle_passwd\n sql: |\n SELECT *\n FROM xref\n LIMIT 1500;\n store: true\n - id: update\n type: io.kestra.plugin.jdbc.oracle.Batch\n from: \"{{ outputs.query.uri }}\"\n url: jdbc:oracle:thin:@prod:49161:XE\n username: oracle\n password: oracle_passwd\n sql: |\n insert into xref values( ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ? )\n```" + }, + "io.kestra.plugin.jdbc.oracle.Query": { + "type": "object", + "properties": { + "allowFailure": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "autoCommit": { + "$dynamic": false, + "type": "boolean", + "title": "Whether autocommit is enabled.", + "default": true, + "markdownDescription": "Sets this connection's auto-commit mode to the given state. If a connection is in auto-commit mode, then all its SQL statements will be executed and committed as individual transactions. Otherwise, its SQL statements are grouped into transactions that are terminated by a call to either the method commit or the method rollback. By default, new connections are in auto-commit mode except when you are using `store` property in which case the auto-commit will be disabled.\n\nDefault value is : `true`" + }, + "description": { + "type": "string" + }, + "disabled": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "fetch": { + "$dynamic": false, + "type": "boolean", + "title": "Whether to fetch the data from the query result to the task output. This parameter is evaluated after `fetchOne` and `store`.", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "fetchOne": { + "$dynamic": false, + "type": "boolean", + "title": "Whether to fetch only one data row from the query result to the task output. This parameter is evaluated before `store` and `fetch`.", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "fetchSize": { + "$dynamic": false, + "type": "integer", + "title": "Number of rows that should be fetched.", + "default": 10000, + "markdownDescription": "Gives the JDBC driver a hint as to the number of rows that should be fetched from the database when more rows are needed for this ResultSet object. If the fetch size specified is zero, the JDBC driver ignores the value and is free to make its own best guess as to what the fetch size should be. Ignored if `autoCommit` is false.\n\nDefault value is : `10000`" + }, + "id": { + "type": "string", + "minLength": 1, + "pattern": "^[a-zA-Z0-9][a-zA-Z0-9_-]*" + }, + "logLevel": { + "type": "string", + "enum": ["ERROR", "WARN", "INFO", "DEBUG", "TRACE"] + }, + "password": { + "$dynamic": true, + "type": "string", + "title": "The database user's password." + }, + "retry": { + "oneOf": [ + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Constant-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Exponential-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Random-2" + } + ] + }, + "sql": { + "$dynamic": true, + "type": "string", + "title": "The SQL query to run." + }, + "store": { + "$dynamic": false, + "type": "boolean", + "title": "Whether to fetch data row(s) from the query result to a file in internal storage. File will be saved as Amazon Ion (text format). \n See \u003Ca href=\"http://amzn.github.io/ion-docs/\"\u003EAmazon Ion documentation\u003C/a\u003E This parameter is evaluated after `fetchOne` but before `fetch`.", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "timeZoneId": { + "$dynamic": false, + "type": "string", + "title": "The time zone id to use for date/time manipulation. Default value is the worker's default time zone id." + }, + "timeout": { + "type": "string", + "format": "duration" + }, + "type": { + "const": "io.kestra.plugin.jdbc.oracle.Query" + }, + "url": { + "$dynamic": true, + "type": "string", + "title": "The JDBC URL to connect to the database." + }, + "username": { + "$dynamic": true, + "type": "string", + "title": "The database user." + }, + "workerGroup": { + "$ref": "#/definitions/io.kestra.core.models.tasks.WorkerGroup" + } + }, + "required": ["id", "type", "url"], + "title": "Query an Oracle database.", + "markdownDescription": "##### Examples\n\u003E Execute a query and fetch results on another task to update another table.\n```yaml\ntasks:\n - id: select\n type: io.kestra.plugin.jdbc.oracle.Query\n url: jdbc:oracle:thin:@localhost:49161:XE\n username: oracle_user\n password: oracle_passwd\n sql: select * from source\n fetch: true\n - id: generate-update\n type: io.kestra.plugin.jdbc.oracle.Query\n url: jdbc:oracle:thin:@localhost:49161:XE\n username: oracle_user\n password: oracle_passwd\n sql: \"{% for row in outputs.select.rows %} INSERT INTO destination (year_month, store_code, update_date) values ({{ row.year_month }}, {{ row.store_code }}, TO_DATE('{{ row.date }}', 'MONTH DD, YYYY') ); {% endfor %}\"\n```" + }, + "io.kestra.plugin.jdbc.oracle.Trigger": { + "type": "object", + "properties": { + "conditions": { + "$dynamic": false, + "title": "List of conditions in order to limit the flow trigger.", + "type": "array", + "items": { + "oneOf": [ + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.DateTimeBetweenCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.DayWeekCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.DayWeekInMonthCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.ExecutionFlowCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.ExecutionLabelsCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.ExecutionNamespaceCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.ExecutionOutputsCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.ExecutionStatusCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.ExpressionCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.FlowCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.FlowNamespaceCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.HasRetryAttemptCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.MultipleCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.NotCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.OrCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.PublicHolidayCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.TimeBetweenCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.WeekendCondition" + }, + { + "$dynamic": false + } + ] + } + ] + } + }, + "description": { + "type": "string" + }, + "disabled": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "fetch": { + "$dynamic": false, + "type": "boolean", + "title": "Whether to fetch the data from the query result to the task output. This parameter is evaluated after `fetchOne` and `store`.", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "fetchOne": { + "$dynamic": false, + "type": "boolean", + "title": "Whether to fetch only one data row from the query result to the task output. This parameter is evaluated before `store` and `fetch`.", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "fetchSize": { + "$dynamic": false, + "type": "integer", + "title": "Number of rows that should be fetched.", + "default": 10000, + "markdownDescription": "Gives the JDBC driver a hint as to the number of rows that should be fetched from the database when more rows are needed for this ResultSet object. If the fetch size specified is zero, the JDBC driver ignores the value and is free to make its own best guess as to what the fetch size should be. Ignored if `autoCommit` is false.\n\nDefault value is : `10000`" + }, + "id": { + "type": "string", + "title": "A unique ID for the whole flow.", + "minLength": 1, + "pattern": "^[a-zA-Z0-9][a-zA-Z0-9_-]*" + }, + "interval": { + "$dynamic": false, + "type": "string", + "format": "duration", + "title": "Interval between polling.", + "default": 60, + "markdownDescription": "The interval between 2 different polls of schedule, this can avoid to overload the remote system with too many calls. For most of the triggers that depend on external systems, a minimal interval must be at least PT30S.\nSee [ISO_8601 Durations](https://en.wikipedia.org/wiki/ISO_8601#Durations) for more information of available interval values.\n\nDefault value is : `60.000000000`" + }, + "labels": { + "title": "The labels to pass to the execution created.", + "type": "array", + "items": { + "$ref": "#/definitions/io.kestra.core.models.Label" + } + }, + "logLevel": { + "type": "string", + "enum": ["ERROR", "WARN", "INFO", "DEBUG", "TRACE"] + }, + "password": { + "$dynamic": true, + "type": "string", + "title": "The database user's password." + }, + "sql": { + "$dynamic": true, + "type": "string", + "title": "The SQL query to run." + }, + "stopAfter": { + "$dynamic": false, + "title": "List of execution states after which a trigger should be stopped (a.k.a. disabled).", + "type": "array", + "items": { + "$dynamic": false, + "type": "string", + "enum": [ + "CREATED", + "RUNNING", + "PAUSED", + "RESTARTED", + "KILLING", + "SUCCESS", + "WARNING", + "FAILED", + "KILLED", + "CANCELLED", + "QUEUED", + "RETRYING", + "RETRIED" + ] + } + }, + "store": { + "$dynamic": false, + "type": "boolean", + "title": "Whether to fetch data row(s) from the query result to a file in internal storage. File will be saved as Amazon Ion (text format). \n See \u003Ca href=\"http://amzn.github.io/ion-docs/\"\u003EAmazon Ion documentation\u003C/a\u003E This parameter is evaluated after `fetchOne` but before `fetch`.", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "timeZoneId": { + "$dynamic": false, + "type": "string", + "title": "The time zone id to use for date/time manipulation. Default value is the worker's default time zone id." + }, + "type": { + "const": "io.kestra.plugin.jdbc.oracle.Trigger" + }, + "url": { + "$dynamic": true, + "type": "string", + "title": "The JDBC URL to connect to the database." + }, + "username": { + "$dynamic": true, + "type": "string", + "title": "The database user." + }, + "workerGroup": { + "$ref": "#/definitions/io.kestra.core.models.tasks.WorkerGroup" + } + }, + "required": ["id", "type", "url"], + "title": "Wait for query on an Oracle database.", + "markdownDescription": "##### Examples\n\u003E Wait for a SQL query to return results, and then iterate through rows.\n```yaml\nid: jdbc-trigger\nnamespace: company.team\n\ntasks:\n - id: each\n type: io.kestra.plugin.core.flow.EachSequential\n tasks:\n - id: return\n type: io.kestra.plugin.core.debug.Return\n format: \"{{ json(taskrun.value) }}\"\n value: \"{{ trigger.rows }}\"\n\ntriggers:\n - id: watch\n type: io.kestra.plugin.jdbc.oracle.Trigger\n interval: \"PT5M\"\n url: jdbc:oracle:thin:@localhost:49161:XE\n username: oracle_user\n password: oracle_passwd\n sql: \"SELECT * FROM my_table\"\n fetch: true\n```" + }, + "io.kestra.plugin.jdbc.pinot.Query": { + "type": "object", + "properties": { + "allowFailure": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "description": { + "type": "string" + }, + "disabled": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "fetch": { + "$dynamic": false, + "type": "boolean", + "title": "Whether to fetch the data from the query result to the task output. This parameter is evaluated after `fetchOne` and `store`.", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "fetchOne": { + "$dynamic": false, + "type": "boolean", + "title": "Whether to fetch only one data row from the query result to the task output. This parameter is evaluated before `store` and `fetch`.", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "fetchSize": { + "$dynamic": false, + "type": "integer", + "title": "Number of rows that should be fetched.", + "default": 10000, + "markdownDescription": "Gives the JDBC driver a hint as to the number of rows that should be fetched from the database when more rows are needed for this ResultSet object. If the fetch size specified is zero, the JDBC driver ignores the value and is free to make its own best guess as to what the fetch size should be. Ignored if `autoCommit` is false.\n\nDefault value is : `10000`" + }, + "id": { + "type": "string", + "minLength": 1, + "pattern": "^[a-zA-Z0-9][a-zA-Z0-9_-]*" + }, + "logLevel": { + "type": "string", + "enum": ["ERROR", "WARN", "INFO", "DEBUG", "TRACE"] + }, + "password": { + "$dynamic": true, + "type": "string", + "title": "The database user's password." + }, + "retry": { + "oneOf": [ + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Constant-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Exponential-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Random-2" + } + ] + }, + "sql": { + "$dynamic": true, + "type": "string", + "title": "The SQL query to run." + }, + "store": { + "$dynamic": false, + "type": "boolean", + "title": "Whether to fetch data row(s) from the query result to a file in internal storage. File will be saved as Amazon Ion (text format). \n See \u003Ca href=\"http://amzn.github.io/ion-docs/\"\u003EAmazon Ion documentation\u003C/a\u003E This parameter is evaluated after `fetchOne` but before `fetch`.", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "timeZoneId": { + "$dynamic": false, + "type": "string", + "title": "The time zone id to use for date/time manipulation. Default value is the worker's default time zone id." + }, + "timeout": { + "type": "string", + "format": "duration" + }, + "type": { + "const": "io.kestra.plugin.jdbc.pinot.Query" + }, + "url": { + "$dynamic": true, + "type": "string", + "title": "The JDBC URL to connect to the database." + }, + "username": { + "$dynamic": true, + "type": "string", + "title": "The database user." + }, + "workerGroup": { + "$ref": "#/definitions/io.kestra.core.models.tasks.WorkerGroup" + } + }, + "required": ["id", "type", "url"], + "title": "Query a Apache Pinot server.", + "markdownDescription": "##### Examples\n\u003E \n```yaml\nurl: jdbc:pinot://localhost:9000\nsql: |\n SELECT *\n FROM airlineStats\nfetch: true\n```" + }, + "io.kestra.plugin.jdbc.pinot.Trigger": { + "type": "object", + "properties": { + "conditions": { + "$dynamic": false, + "title": "List of conditions in order to limit the flow trigger.", + "type": "array", + "items": { + "oneOf": [ + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.DateTimeBetweenCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.DayWeekCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.DayWeekInMonthCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.ExecutionFlowCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.ExecutionLabelsCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.ExecutionNamespaceCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.ExecutionOutputsCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.ExecutionStatusCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.ExpressionCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.FlowCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.FlowNamespaceCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.HasRetryAttemptCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.MultipleCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.NotCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.OrCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.PublicHolidayCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.TimeBetweenCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.WeekendCondition" + }, + { + "$dynamic": false + } + ] + } + ] + } + }, + "description": { + "type": "string" + }, + "disabled": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "fetch": { + "$dynamic": false, + "type": "boolean", + "title": "Whether to fetch the data from the query result to the task output. This parameter is evaluated after `fetchOne` and `store`.", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "fetchOne": { + "$dynamic": false, + "type": "boolean", + "title": "Whether to fetch only one data row from the query result to the task output. This parameter is evaluated before `store` and `fetch`.", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "fetchSize": { + "$dynamic": false, + "type": "integer", + "title": "Number of rows that should be fetched.", + "default": 10000, + "markdownDescription": "Gives the JDBC driver a hint as to the number of rows that should be fetched from the database when more rows are needed for this ResultSet object. If the fetch size specified is zero, the JDBC driver ignores the value and is free to make its own best guess as to what the fetch size should be. Ignored if `autoCommit` is false.\n\nDefault value is : `10000`" + }, + "id": { + "type": "string", + "title": "A unique ID for the whole flow.", + "minLength": 1, + "pattern": "^[a-zA-Z0-9][a-zA-Z0-9_-]*" + }, + "interval": { + "$dynamic": false, + "type": "string", + "format": "duration", + "title": "Interval between polling.", + "default": 60, + "markdownDescription": "The interval between 2 different polls of schedule, this can avoid to overload the remote system with too many calls. For most of the triggers that depend on external systems, a minimal interval must be at least PT30S.\nSee [ISO_8601 Durations](https://en.wikipedia.org/wiki/ISO_8601#Durations) for more information of available interval values.\n\nDefault value is : `60.000000000`" + }, + "labels": { + "title": "The labels to pass to the execution created.", + "type": "array", + "items": { + "$ref": "#/definitions/io.kestra.core.models.Label" + } + }, + "logLevel": { + "type": "string", + "enum": ["ERROR", "WARN", "INFO", "DEBUG", "TRACE"] + }, + "password": { + "$dynamic": true, + "type": "string", + "title": "The database user's password." + }, + "sql": { + "$dynamic": true, + "type": "string", + "title": "The SQL query to run." + }, + "stopAfter": { + "$dynamic": false, + "title": "List of execution states after which a trigger should be stopped (a.k.a. disabled).", + "type": "array", + "items": { + "$dynamic": false, + "type": "string", + "enum": [ + "CREATED", + "RUNNING", + "PAUSED", + "RESTARTED", + "KILLING", + "SUCCESS", + "WARNING", + "FAILED", + "KILLED", + "CANCELLED", + "QUEUED", + "RETRYING", + "RETRIED" + ] + } + }, + "store": { + "$dynamic": false, + "type": "boolean", + "title": "Whether to fetch data row(s) from the query result to a file in internal storage. File will be saved as Amazon Ion (text format). \n See \u003Ca href=\"http://amzn.github.io/ion-docs/\"\u003EAmazon Ion documentation\u003C/a\u003E This parameter is evaluated after `fetchOne` but before `fetch`.", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "timeZoneId": { + "$dynamic": false, + "type": "string", + "title": "The time zone id to use for date/time manipulation. Default value is the worker's default time zone id." + }, + "type": { + "const": "io.kestra.plugin.jdbc.pinot.Trigger" + }, + "url": { + "$dynamic": true, + "type": "string", + "title": "The JDBC URL to connect to the database." + }, + "username": { + "$dynamic": true, + "type": "string", + "title": "The database user." + }, + "workerGroup": { + "$ref": "#/definitions/io.kestra.core.models.tasks.WorkerGroup" + } + }, + "required": ["id", "type", "url"], + "title": "Wait for query on a Pinot database.", + "markdownDescription": "##### Examples\n\u003E Wait for a SQL query to return results, and then iterate through rows.\n```yaml\nid: jdbc-trigger\nnamespace: company.team\n\ntasks:\n - id: each\n type: io.kestra.plugin.core.flow.EachSequential\n tasks:\n - id: return\n type: io.kestra.plugin.core.debug.Return\n format: \"{{ json(taskrun.value) }}\"\n value: \"{{ trigger.rows }}\"\n\ntriggers:\n - id: watch\n type: io.kestra.plugin.jdbc.pinot.Trigger\n interval: \"PT5M\"\n url: jdbc:pinot://localhost:9000\n sql: \"SELECT * FROM my_table\"\n fetch: true\n```" + }, + "io.kestra.plugin.jdbc.postgresql.Batch": { + "type": "object", + "properties": { + "allowFailure": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "chunk": { + "$dynamic": true, + "type": "integer", + "title": "The size of chunk for every bulk request.", + "default": 1000, + "markdownDescription": "Default value is : `1000`" + }, + "columns": { + "$dynamic": true, + "title": "The columns to be inserted.", + "markdownDescription": "If not provided, `?` count need to match the `from` number of columns.", + "type": "array", + "items": { + "$dynamic": true, + "type": "string" + } + }, + "description": { + "type": "string" + }, + "disabled": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "from": { + "$dynamic": true, + "type": "string", + "title": "Source file URI" + }, + "id": { + "type": "string", + "minLength": 1, + "pattern": "^[a-zA-Z0-9][a-zA-Z0-9_-]*" + }, + "logLevel": { + "type": "string", + "enum": ["ERROR", "WARN", "INFO", "DEBUG", "TRACE"] + }, + "password": { + "$dynamic": true, + "type": "string", + "title": "The database user's password." + }, + "retry": { + "oneOf": [ + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Constant-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Exponential-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Random-2" + } + ] + }, + "sql": { + "$dynamic": true, + "type": "string", + "title": "Insert query to be executed.", + "markdownDescription": "The query must have as many question marks as the number of columns in the table.\nExample: 'insert into \u003Ctable_name\u003E values( ? , ? , ? )' for 3 columns.\nIn case you do not want all columns, you need to specify it in the query in the columns property\nExample: 'insert into \u003Ctable_name\u003E (id, name) values( ? , ? )' for inserting data into 2 columns: 'id' and 'name'." + }, + "ssl": { + "$dynamic": false, + "type": "boolean", + "title": "Is the connection SSL?", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "sslCert": { + "$dynamic": true, + "type": "string", + "title": "The SSL cert.", + "markdownDescription": "Must be a PEM encoded certificate" + }, + "sslKey": { + "$dynamic": true, + "type": "string", + "title": "The SSL key.", + "markdownDescription": "Must be a PEM encoded key" + }, + "sslKeyPassword": { + "$dynamic": true, + "type": "string", + "title": "The SSL key password." + }, + "sslMode": { + "$dynamic": false, + "type": "string", + "enum": [ + "DISABLE", + "ALLOW", + "PREFER", + "REQUIRE", + "VERIFY_CA", + "VERIFY_FULL" + ], + "title": "The SSL mode." + }, + "sslRootCert": { + "$dynamic": true, + "type": "string", + "title": "The SSL root cert.", + "markdownDescription": "Must be a PEM encoded certificate" + }, + "timeZoneId": { + "$dynamic": false, + "type": "string", + "title": "The time zone id to use for date/time manipulation. Default value is the worker's default time zone id." + }, + "timeout": { + "type": "string", + "format": "duration" + }, + "type": { + "const": "io.kestra.plugin.jdbc.postgresql.Batch" + }, + "url": { + "$dynamic": true, + "type": "string", + "title": "The JDBC URL to connect to the database." + }, + "username": { + "$dynamic": true, + "type": "string", + "title": "The database user." + }, + "workerGroup": { + "$ref": "#/definitions/io.kestra.core.models.tasks.WorkerGroup" + } + }, + "required": ["from", "id", "sql", "type", "url"], + "title": "Execute a batch query to a PostgreSQL server.", + "markdownDescription": "##### Examples\n\u003E Fetch rows from a table, and bulk insert them to another one.\n```yaml\ntasks:\n - id: query\n type: io.kestra.plugin.jdbc.postgresql.Query\n url: jdbc:postgresql://dev:56982/\n username: pg_user\n password: pg_passwd\n sql: |\n SELECT *\n FROM xref\n LIMIT 1500;\n store: true\n - id: update\n type: io.kestra.plugin.jdbc.postgresql.Batch\n from: \"{{ outputs.query.uri }}\"\n url: jdbc:postgresql://prod:56982/\n username: pg_user\n password: pg_passwd\n sql: |\n insert into xref values( ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ? )\n```" + }, + "io.kestra.plugin.jdbc.postgresql.CopyIn": { + "type": "object", + "properties": { + "allowFailure": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "columns": { + "$dynamic": false, + "title": "An optional list of columns to be copied.", + "markdownDescription": "If no column list is specified, all columns of the table will be copied.", + "type": "array", + "items": { + "$dynamic": false, + "type": "string" + } + }, + "delimiter": { + "$dynamic": false, + "type": "string", + "title": "Specifies the character that separates columns within each row (line) of the file.", + "markdownDescription": "The default is a tab character in text format, a comma in CSV format. This must be a single one-byte character. This option is not allowed when using binary." + }, + "description": { + "type": "string" + }, + "disabled": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "encoding": { + "$dynamic": false, + "type": "string", + "title": "Specifies that the file is encoded in the encoding_name.", + "markdownDescription": "If this option is omitted, the current client encoding is used. See the Notes below for more details." + }, + "escape": { + "$dynamic": false, + "type": "string", + "title": "Specifies the character that should appear before a data character that matches the QUOTE value.", + "markdownDescription": "The default is the same as the QUOTE value (so that the quoting character is doubled if it appears in the data). This must be a single one-byte character. This option is allowed only when using CSV format." + }, + "forceNotNull": { + "$dynamic": false, + "title": "Do not match the specified columns' values against the null string.", + "markdownDescription": "In the default case where the null string is empty, this means that empty values will be read as zero-length strings rather than nulls, even when they are not quoted. This option is allowed only in COPY FROM, and only when using CSV format.", + "type": "array", + "items": { + "$dynamic": false, + "type": "string" + } + }, + "forceNull": { + "$dynamic": false, + "title": "Match the specified columns' values against the null string, even if it has been quoted, and if a match is found set the value to NULL.", + "markdownDescription": "In the default case where the null string is empty, this converts a quoted empty string into NULL. This option is allowed only in COPY FROM, and only when using CSV format.", + "type": "array", + "items": { + "$dynamic": false, + "type": "string" + } + }, + "forceQuote": { + "$dynamic": false, + "title": "Forces quoting to be used for all non-NULL values in each specified column.", + "markdownDescription": "NULL output is never quoted. If * is specified, non-NULL values will be quoted in all columns. This option is allowed only in COPY TO, and only when using CSV format.", + "type": "array", + "items": { + "$dynamic": false, + "type": "string" + } + }, + "format": { + "$dynamic": false, + "type": "string", + "enum": ["TEXT", "CSV", "BINARY"], + "title": "Selects the data format to be read or written.", + "default": "TEXT", + "markdownDescription": "Default value is : `TEXT`" + }, + "freeze": { + "$dynamic": false, + "type": "boolean", + "title": "Requests copying the data with rows already frozen, just as they would be after running the VACUUM FREEZE command.", + "markdownDescription": "This is intended as a performance option for initial data loading. Rows will be frozen only if the table being loaded has been created or truncated in the current sub-transaction, there are no cursors open and there are no older snapshots held by this transaction. It is currently not possible to perform a COPY FREEZE on a partitioned table.\n\nNote that all other sessions will immediately be able to see the data once it has been successfully loaded. This violates the normal rules of MVCC visibility and users specifying should be aware of the potential problems this might cause." + }, + "from": { + "$dynamic": true, + "type": "string", + "title": "Source file URI." + }, + "header": { + "$dynamic": false, + "type": "boolean", + "title": "Specifies that the file contains a header line with the names of each column in the file.", + "markdownDescription": "On output, the first line contains the column names from the table, and on input, the first line is ignored. This option is allowed only when using CSV." + }, + "id": { + "type": "string", + "minLength": 1, + "pattern": "^[a-zA-Z0-9][a-zA-Z0-9_-]*" + }, + "logLevel": { + "type": "string", + "enum": ["ERROR", "WARN", "INFO", "DEBUG", "TRACE"] + }, + "nullString": { + "$dynamic": false, + "type": "string", + "title": "Specifies the string that represents a null value.", + "markdownDescription": "The default is \\N (backslash-N) in text format, and an unquoted empty string in CSV format. You might prefer an empty string even in text format for cases where you don't want to distinguish nulls from empty strings. This option is not allowed when using binary format." + }, + "oids": { + "$dynamic": false, + "type": "boolean", + "title": "Specifies copying the OID for each row.", + "markdownDescription": "An error is raised if OIDs is specified for a table that does not have OIDs, or in the case of copying a query." + }, + "password": { + "$dynamic": true, + "type": "string", + "title": "The database user's password." + }, + "quote": { + "$dynamic": false, + "type": "string", + "title": "Specifies the quoting character to be used when a data value is quoted.", + "markdownDescription": "The default is double-quote. This must be a single one-byte character. This option is allowed only when using CSV format." + }, + "retry": { + "oneOf": [ + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Constant-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Exponential-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Random-2" + } + ] + }, + "ssl": { + "$dynamic": false, + "type": "boolean", + "title": "Is the connection SSL?", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "sslCert": { + "$dynamic": true, + "type": "string", + "title": "The SSL cert.", + "markdownDescription": "Must be a PEM encoded certificate" + }, + "sslKey": { + "$dynamic": true, + "type": "string", + "title": "The SSL key.", + "markdownDescription": "Must be a PEM encoded key" + }, + "sslKeyPassword": { + "$dynamic": true, + "type": "string", + "title": "The SSL key password." + }, + "sslMode": { + "$dynamic": false, + "type": "string", + "enum": [ + "DISABLE", + "ALLOW", + "PREFER", + "REQUIRE", + "VERIFY_CA", + "VERIFY_FULL" + ], + "title": "The SSL mode." + }, + "sslRootCert": { + "$dynamic": true, + "type": "string", + "title": "The SSL root cert.", + "markdownDescription": "Must be a PEM encoded certificate" + }, + "table": { + "$dynamic": true, + "type": "string", + "title": "The name (optionally schema-qualified) of an existing table." + }, + "timeout": { + "type": "string", + "format": "duration" + }, + "type": { + "const": "io.kestra.plugin.jdbc.postgresql.CopyIn" + }, + "url": { + "$dynamic": true, + "type": "string", + "title": "The JDBC URL to connect to the database." + }, + "username": { + "$dynamic": true, + "type": "string", + "title": "The database user." + }, + "workerGroup": { + "$ref": "#/definitions/io.kestra.core.models.tasks.WorkerGroup" + } + }, + "required": ["from", "id", "type", "url"], + "title": "Copy a PostgreSQL table or a query to a file.", + "markdownDescription": "Moves data between PostgreSQL tables or query to a file.##### Examples\n\u003E Load CSV or TSV into a PostgreSQL table.\n```yaml\nurl: jdbc:postgresql://127.0.0.1:56982/\nusername: pg_user\npassword: pg_passwd\nformat: CSV\nfrom: {{ outputs.export.uri }}\ntable: my_destination_table\nheader: true\ndelimiter: \"\t\"\n```" + }, + "io.kestra.plugin.jdbc.postgresql.CopyOut": { + "type": "object", + "properties": { + "allowFailure": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "columns": { + "$dynamic": false, + "title": "An optional list of columns to be copied.", + "markdownDescription": "If no column list is specified, all columns of the table will be copied.", + "type": "array", + "items": { + "$dynamic": false, + "type": "string" + } + }, + "delimiter": { + "$dynamic": false, + "type": "string", + "title": "Specifies the character that separates columns within each row (line) of the file.", + "markdownDescription": "The default is a tab character in text format, a comma in CSV format. This must be a single one-byte character. This option is not allowed when using binary." + }, + "description": { + "type": "string" + }, + "disabled": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "encoding": { + "$dynamic": false, + "type": "string", + "title": "Specifies that the file is encoded in the encoding_name.", + "markdownDescription": "If this option is omitted, the current client encoding is used. See the Notes below for more details." + }, + "escape": { + "$dynamic": false, + "type": "string", + "title": "Specifies the character that should appear before a data character that matches the QUOTE value.", + "markdownDescription": "The default is the same as the QUOTE value (so that the quoting character is doubled if it appears in the data). This must be a single one-byte character. This option is allowed only when using CSV format." + }, + "forceNotNull": { + "$dynamic": false, + "title": "Do not match the specified columns' values against the null string.", + "markdownDescription": "In the default case where the null string is empty, this means that empty values will be read as zero-length strings rather than nulls, even when they are not quoted. This option is allowed only in COPY FROM, and only when using CSV format.", + "type": "array", + "items": { + "$dynamic": false, + "type": "string" + } + }, + "forceNull": { + "$dynamic": false, + "title": "Match the specified columns' values against the null string, even if it has been quoted, and if a match is found set the value to NULL.", + "markdownDescription": "In the default case where the null string is empty, this converts a quoted empty string into NULL. This option is allowed only in COPY FROM, and only when using CSV format.", + "type": "array", + "items": { + "$dynamic": false, + "type": "string" + } + }, + "forceQuote": { + "$dynamic": false, + "title": "Forces quoting to be used for all non-NULL values in each specified column.", + "markdownDescription": "NULL output is never quoted. If * is specified, non-NULL values will be quoted in all columns. This option is allowed only in COPY TO, and only when using CSV format.", + "type": "array", + "items": { + "$dynamic": false, + "type": "string" + } + }, + "format": { + "$dynamic": false, + "type": "string", + "enum": ["TEXT", "CSV", "BINARY"], + "title": "Selects the data format to be read or written.", + "default": "TEXT", + "markdownDescription": "Default value is : `TEXT`" + }, + "freeze": { + "$dynamic": false, + "type": "boolean", + "title": "Requests copying the data with rows already frozen, just as they would be after running the VACUUM FREEZE command.", + "markdownDescription": "This is intended as a performance option for initial data loading. Rows will be frozen only if the table being loaded has been created or truncated in the current sub-transaction, there are no cursors open and there are no older snapshots held by this transaction. It is currently not possible to perform a COPY FREEZE on a partitioned table.\n\nNote that all other sessions will immediately be able to see the data once it has been successfully loaded. This violates the normal rules of MVCC visibility and users specifying should be aware of the potential problems this might cause." + }, + "header": { + "$dynamic": false, + "type": "boolean", + "title": "Specifies that the file contains a header line with the names of each column in the file.", + "markdownDescription": "On output, the first line contains the column names from the table, and on input, the first line is ignored. This option is allowed only when using CSV." + }, + "id": { + "type": "string", + "minLength": 1, + "pattern": "^[a-zA-Z0-9][a-zA-Z0-9_-]*" + }, + "logLevel": { + "type": "string", + "enum": ["ERROR", "WARN", "INFO", "DEBUG", "TRACE"] + }, + "nullString": { + "$dynamic": false, + "type": "string", + "title": "Specifies the string that represents a null value.", + "markdownDescription": "The default is \\N (backslash-N) in text format, and an unquoted empty string in CSV format. You might prefer an empty string even in text format for cases where you don't want to distinguish nulls from empty strings. This option is not allowed when using binary format." + }, + "oids": { + "$dynamic": false, + "type": "boolean", + "title": "Specifies copying the OID for each row.", + "markdownDescription": "An error is raised if OIDs is specified for a table that does not have OIDs, or in the case of copying a query." + }, + "password": { + "$dynamic": true, + "type": "string", + "title": "The database user's password." + }, + "quote": { + "$dynamic": false, + "type": "string", + "title": "Specifies the quoting character to be used when a data value is quoted.", + "markdownDescription": "The default is double-quote. This must be a single one-byte character. This option is allowed only when using CSV format." + }, + "retry": { + "oneOf": [ + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Constant-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Exponential-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Random-2" + } + ] + }, + "sql": { + "$dynamic": true, + "type": "string", + "title": "A SELECT, VALUES, INSERT, UPDATE or DELETE command whose results are to be copied.", + "markdownDescription": "For INSERT, UPDATE and DELETE queries a RETURNING clause must be provided, and the target relation must not have a conditional rule, nor an ALSO rule, nor an INSTEAD rule that expands to multiple statements." + }, + "ssl": { + "$dynamic": false, + "type": "boolean", + "title": "Is the connection SSL?", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "sslCert": { + "$dynamic": true, + "type": "string", + "title": "The SSL cert.", + "markdownDescription": "Must be a PEM encoded certificate" + }, + "sslKey": { + "$dynamic": true, + "type": "string", + "title": "The SSL key.", + "markdownDescription": "Must be a PEM encoded key" + }, + "sslKeyPassword": { + "$dynamic": true, + "type": "string", + "title": "The SSL key password." + }, + "sslMode": { + "$dynamic": false, + "type": "string", + "enum": [ + "DISABLE", + "ALLOW", + "PREFER", + "REQUIRE", + "VERIFY_CA", + "VERIFY_FULL" + ], + "title": "The SSL mode." + }, + "sslRootCert": { + "$dynamic": true, + "type": "string", + "title": "The SSL root cert.", + "markdownDescription": "Must be a PEM encoded certificate" + }, + "table": { + "$dynamic": true, + "type": "string", + "title": "The name (optionally schema-qualified) of an existing table." + }, + "timeout": { + "type": "string", + "format": "duration" + }, + "type": { + "const": "io.kestra.plugin.jdbc.postgresql.CopyOut" + }, + "url": { + "$dynamic": true, + "type": "string", + "title": "The JDBC URL to connect to the database." + }, + "username": { + "$dynamic": true, + "type": "string", + "title": "The database user." + }, + "workerGroup": { + "$ref": "#/definitions/io.kestra.core.models.tasks.WorkerGroup" + } + }, + "required": ["id", "type", "url"], + "title": "Copy tabular data from a PostgreSQL table to a file.", + "markdownDescription": "##### Examples\n\u003E Export a PostgreSQL table or query to a CSV or TSV file.\n```yaml\nurl: jdbc:postgresql://127.0.0.1:56982/\nusername: pg_user\npassword: pg_passwd\nformat: CSV\nsql: SELECT 1 AS int, 't'::bool AS bool UNION SELECT 2 AS int, 'f'::bool AS bool\nheader: true\ndelimiter: \"\t\"\n```" + }, + "io.kestra.plugin.jdbc.postgresql.Query": { + "type": "object", + "properties": { + "allowFailure": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "autoCommit": { + "$dynamic": false, + "type": "boolean", + "title": "Whether autocommit is enabled.", + "default": true, + "markdownDescription": "Sets this connection's auto-commit mode to the given state. If a connection is in auto-commit mode, then all its SQL statements will be executed and committed as individual transactions. Otherwise, its SQL statements are grouped into transactions that are terminated by a call to either the method commit or the method rollback. By default, new connections are in auto-commit mode except when you are using `store` property in which case the auto-commit will be disabled.\n\nDefault value is : `true`" + }, + "description": { + "type": "string" + }, + "disabled": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "fetch": { + "$dynamic": false, + "type": "boolean", + "title": "Whether to fetch the data from the query result to the task output. This parameter is evaluated after `fetchOne` and `store`.", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "fetchOne": { + "$dynamic": false, + "type": "boolean", + "title": "Whether to fetch only one data row from the query result to the task output. This parameter is evaluated before `store` and `fetch`.", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "fetchSize": { + "$dynamic": false, + "type": "integer", + "title": "Number of rows that should be fetched.", + "default": 10000, + "markdownDescription": "Gives the JDBC driver a hint as to the number of rows that should be fetched from the database when more rows are needed for this ResultSet object. If the fetch size specified is zero, the JDBC driver ignores the value and is free to make its own best guess as to what the fetch size should be. Ignored if `autoCommit` is false.\n\nDefault value is : `10000`" + }, + "id": { + "type": "string", + "minLength": 1, + "pattern": "^[a-zA-Z0-9][a-zA-Z0-9_-]*" + }, + "logLevel": { + "type": "string", + "enum": ["ERROR", "WARN", "INFO", "DEBUG", "TRACE"] + }, + "password": { + "$dynamic": true, + "type": "string", + "title": "The database user's password." + }, + "retry": { + "oneOf": [ + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Constant-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Exponential-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Random-2" + } + ] + }, + "sql": { + "$dynamic": true, + "type": "string", + "title": "The SQL query to run." + }, + "ssl": { + "$dynamic": false, + "type": "boolean", + "title": "Is the connection SSL?", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "sslCert": { + "$dynamic": true, + "type": "string", + "title": "The SSL cert.", + "markdownDescription": "Must be a PEM encoded certificate" + }, + "sslKey": { + "$dynamic": true, + "type": "string", + "title": "The SSL key.", + "markdownDescription": "Must be a PEM encoded key" + }, + "sslKeyPassword": { + "$dynamic": true, + "type": "string", + "title": "The SSL key password." + }, + "sslMode": { + "$dynamic": false, + "type": "string", + "enum": [ + "DISABLE", + "ALLOW", + "PREFER", + "REQUIRE", + "VERIFY_CA", + "VERIFY_FULL" + ], + "title": "The SSL mode." + }, + "sslRootCert": { + "$dynamic": true, + "type": "string", + "title": "The SSL root cert.", + "markdownDescription": "Must be a PEM encoded certificate" + }, + "store": { + "$dynamic": false, + "type": "boolean", + "title": "Whether to fetch data row(s) from the query result to a file in internal storage. File will be saved as Amazon Ion (text format). \n See \u003Ca href=\"http://amzn.github.io/ion-docs/\"\u003EAmazon Ion documentation\u003C/a\u003E This parameter is evaluated after `fetchOne` but before `fetch`.", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "timeZoneId": { + "$dynamic": false, + "type": "string", + "title": "The time zone id to use for date/time manipulation. Default value is the worker's default time zone id." + }, + "timeout": { + "type": "string", + "format": "duration" + }, + "type": { + "const": "io.kestra.plugin.jdbc.postgresql.Query" + }, + "url": { + "$dynamic": true, + "type": "string", + "title": "The JDBC URL to connect to the database." + }, + "username": { + "$dynamic": true, + "type": "string", + "title": "The database user." + }, + "workerGroup": { + "$ref": "#/definitions/io.kestra.core.models.tasks.WorkerGroup" + } + }, + "required": ["id", "type", "url"], + "title": "Query a PostgreSQL server.", + "markdownDescription": "##### Examples\n\u003E Execute a query and fetch results in a task, and update another table with fetched results in a different task.\n```yaml\ntasks:\n - id: fetch\n type: io.kestra.plugin.jdbc.postgresql.Query\n url: jdbc:postgresql://127.0.0.1:56982/\n username: pg_user\n password: pg_passwd\n sql: select concert_id, available, a, b, c, d, play_time, library_record, floatn_test, double_test, real_test, numeric_test, date_type, time_type, timez_type, timestamp_type, timestampz_type, interval_type, pay_by_quarter, schedule, json_type, blob_type from pgsql_types\n fetch: true\n - id: use-fetched-data\n type: io.kestra.plugin.jdbc.postgresql.Query\n url: jdbc:postgresql://127.0.0.1:56982/\n username: pg_user\n password: pg_passwd\n sql: \"{% for row in outputs.fetch.rows %} INSERT INTO pl_store_distribute (year_month,store_code, update_date) values ({{row.play_time}}, {{row.concert_id}}, TO_TIMESTAMP('{{row.timestamp_type}}', 'YYYY-MM-DDTHH:MI:SS.US') ); {% endfor %}\"\n```" + }, + "io.kestra.plugin.jdbc.postgresql.Trigger": { + "type": "object", + "properties": { + "conditions": { + "$dynamic": false, + "title": "List of conditions in order to limit the flow trigger.", + "type": "array", + "items": { + "oneOf": [ + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.DateTimeBetweenCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.DayWeekCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.DayWeekInMonthCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.ExecutionFlowCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.ExecutionLabelsCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.ExecutionNamespaceCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.ExecutionOutputsCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.ExecutionStatusCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.ExpressionCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.FlowCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.FlowNamespaceCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.HasRetryAttemptCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.MultipleCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.NotCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.OrCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.PublicHolidayCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.TimeBetweenCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.WeekendCondition" + }, + { + "$dynamic": false + } + ] + } + ] + } + }, + "description": { + "type": "string" + }, + "disabled": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "fetch": { + "$dynamic": false, + "type": "boolean", + "title": "Whether to fetch the data from the query result to the task output. This parameter is evaluated after `fetchOne` and `store`.", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "fetchOne": { + "$dynamic": false, + "type": "boolean", + "title": "Whether to fetch only one data row from the query result to the task output. This parameter is evaluated before `store` and `fetch`.", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "fetchSize": { + "$dynamic": false, + "type": "integer", + "title": "Number of rows that should be fetched.", + "default": 10000, + "markdownDescription": "Gives the JDBC driver a hint as to the number of rows that should be fetched from the database when more rows are needed for this ResultSet object. If the fetch size specified is zero, the JDBC driver ignores the value and is free to make its own best guess as to what the fetch size should be. Ignored if `autoCommit` is false.\n\nDefault value is : `10000`" + }, + "id": { + "type": "string", + "title": "A unique ID for the whole flow.", + "minLength": 1, + "pattern": "^[a-zA-Z0-9][a-zA-Z0-9_-]*" + }, + "interval": { + "$dynamic": false, + "type": "string", + "format": "duration", + "title": "Interval between polling.", + "default": 60, + "markdownDescription": "The interval between 2 different polls of schedule, this can avoid to overload the remote system with too many calls. For most of the triggers that depend on external systems, a minimal interval must be at least PT30S.\nSee [ISO_8601 Durations](https://en.wikipedia.org/wiki/ISO_8601#Durations) for more information of available interval values.\n\nDefault value is : `60.000000000`" + }, + "labels": { + "title": "The labels to pass to the execution created.", + "type": "array", + "items": { + "$ref": "#/definitions/io.kestra.core.models.Label" + } + }, + "logLevel": { + "type": "string", + "enum": ["ERROR", "WARN", "INFO", "DEBUG", "TRACE"] + }, + "password": { + "$dynamic": true, + "type": "string", + "title": "The database user's password." + }, + "sql": { + "$dynamic": true, + "type": "string", + "title": "The SQL query to run." + }, + "ssl": { + "$dynamic": false, + "type": "boolean", + "title": "Is the connection SSL?", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "sslCert": { + "$dynamic": true, + "type": "string", + "title": "The SSL cert.", + "markdownDescription": "Must be a PEM encoded certificate" + }, + "sslKey": { + "$dynamic": true, + "type": "string", + "title": "The SSL key.", + "markdownDescription": "Must be a PEM encoded key" + }, + "sslKeyPassword": { + "$dynamic": true, + "type": "string", + "title": "The SSL key password." + }, + "sslMode": { + "$dynamic": false, + "type": "string", + "enum": [ + "DISABLE", + "ALLOW", + "PREFER", + "REQUIRE", + "VERIFY_CA", + "VERIFY_FULL" + ], + "title": "The SSL mode." + }, + "sslRootCert": { + "$dynamic": true, + "type": "string", + "title": "The SSL root cert.", + "markdownDescription": "Must be a PEM encoded certificate" + }, + "stopAfter": { + "$dynamic": false, + "title": "List of execution states after which a trigger should be stopped (a.k.a. disabled).", + "type": "array", + "items": { + "$dynamic": false, + "type": "string", + "enum": [ + "CREATED", + "RUNNING", + "PAUSED", + "RESTARTED", + "KILLING", + "SUCCESS", + "WARNING", + "FAILED", + "KILLED", + "CANCELLED", + "QUEUED", + "RETRYING", + "RETRIED" + ] + } + }, + "store": { + "$dynamic": false, + "type": "boolean", + "title": "Whether to fetch data row(s) from the query result to a file in internal storage. File will be saved as Amazon Ion (text format). \n See \u003Ca href=\"http://amzn.github.io/ion-docs/\"\u003EAmazon Ion documentation\u003C/a\u003E This parameter is evaluated after `fetchOne` but before `fetch`.", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "timeZoneId": { + "$dynamic": false, + "type": "string", + "title": "The time zone id to use for date/time manipulation. Default value is the worker's default time zone id." + }, + "type": { + "const": "io.kestra.plugin.jdbc.postgresql.Trigger" + }, + "url": { + "$dynamic": true, + "type": "string", + "title": "The JDBC URL to connect to the database." + }, + "username": { + "$dynamic": true, + "type": "string", + "title": "The database user." + }, + "workerGroup": { + "$ref": "#/definitions/io.kestra.core.models.tasks.WorkerGroup" + } + }, + "required": ["id", "type", "url"], + "title": "Wait for query on a PostgreSQL database.", + "markdownDescription": "##### Examples\n\u003E Wait for a SQL query to return results, and then iterate through rows.\n```yaml\nid: jdbc-trigger\nnamespace: company.team\n\ntasks:\n - id: each\n type: io.kestra.plugin.core.flow.EachSequential\n tasks:\n - id: return\n type: io.kestra.plugin.core.debug.Return\n format: \"{{ json(taskrun.value) }}\"\n value: \"{{ trigger.rows }}\"\n\ntriggers:\n - id: watch\n type: io.kestra.plugin.jdbc.postgresql.Trigger\n interval: \"PT5M\"\n url: jdbc:postgresql://127.0.0.1:56982/\n username: pg_user\n password: pg_passwd\n sql: \"SELECT * FROM my_table\"\n fetch: true\n```" + }, + "io.kestra.plugin.jdbc.redshift.Query": { + "type": "object", + "properties": { + "allowFailure": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "autoCommit": { + "$dynamic": false, + "type": "boolean", + "title": "Whether autocommit is enabled.", + "default": true, + "markdownDescription": "Sets this connection's auto-commit mode to the given state. If a connection is in auto-commit mode, then all its SQL statements will be executed and committed as individual transactions. Otherwise, its SQL statements are grouped into transactions that are terminated by a call to either the method commit or the method rollback. By default, new connections are in auto-commit mode except when you are using `store` property in which case the auto-commit will be disabled.\n\nDefault value is : `true`" + }, + "description": { + "type": "string" + }, + "disabled": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "fetch": { + "$dynamic": false, + "type": "boolean", + "title": "Whether to fetch the data from the query result to the task output. This parameter is evaluated after `fetchOne` and `store`.", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "fetchOne": { + "$dynamic": false, + "type": "boolean", + "title": "Whether to fetch only one data row from the query result to the task output. This parameter is evaluated before `store` and `fetch`.", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "fetchSize": { + "$dynamic": false, + "type": "integer", + "title": "Number of rows that should be fetched.", + "default": 10000, + "markdownDescription": "Gives the JDBC driver a hint as to the number of rows that should be fetched from the database when more rows are needed for this ResultSet object. If the fetch size specified is zero, the JDBC driver ignores the value and is free to make its own best guess as to what the fetch size should be. Ignored if `autoCommit` is false.\n\nDefault value is : `10000`" + }, + "id": { + "type": "string", + "minLength": 1, + "pattern": "^[a-zA-Z0-9][a-zA-Z0-9_-]*" + }, + "logLevel": { + "type": "string", + "enum": ["ERROR", "WARN", "INFO", "DEBUG", "TRACE"] + }, + "password": { + "$dynamic": true, + "type": "string", + "title": "The database user's password." + }, + "retry": { + "oneOf": [ + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Constant-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Exponential-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Random-2" + } + ] + }, + "sql": { + "$dynamic": true, + "type": "string", + "title": "The SQL query to run." + }, + "store": { + "$dynamic": false, + "type": "boolean", + "title": "Whether to fetch data row(s) from the query result to a file in internal storage. File will be saved as Amazon Ion (text format). \n See \u003Ca href=\"http://amzn.github.io/ion-docs/\"\u003EAmazon Ion documentation\u003C/a\u003E This parameter is evaluated after `fetchOne` but before `fetch`.", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "timeZoneId": { + "$dynamic": false, + "type": "string", + "title": "The time zone id to use for date/time manipulation. Default value is the worker's default time zone id." + }, + "timeout": { + "type": "string", + "format": "duration" + }, + "type": { + "const": "io.kestra.plugin.jdbc.redshift.Query" + }, + "url": { + "$dynamic": true, + "type": "string", + "title": "The JDBC URL to connect to the database." + }, + "username": { + "$dynamic": true, + "type": "string", + "title": "The database user." + }, + "workerGroup": { + "$ref": "#/definitions/io.kestra.core.models.tasks.WorkerGroup" + } + }, + "required": ["id", "type", "url"], + "title": "Query a Redshift server.", + "markdownDescription": "##### Examples\n\u003E Send a SQL query to a Redshift database and fetch a row as output.\n```yaml\nurl: jdbc:redshift://123456789.eu-central-1.redshift-serverless.amazonaws.com:5439/dev\nusername: admin\npassword: admin_passwd\nsql: select * from redshift_types\nfetchOne: true\n```" + }, + "io.kestra.plugin.jdbc.redshift.Trigger": { + "type": "object", + "properties": { + "conditions": { + "$dynamic": false, + "title": "List of conditions in order to limit the flow trigger.", + "type": "array", + "items": { + "oneOf": [ + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.DateTimeBetweenCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.DayWeekCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.DayWeekInMonthCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.ExecutionFlowCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.ExecutionLabelsCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.ExecutionNamespaceCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.ExecutionOutputsCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.ExecutionStatusCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.ExpressionCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.FlowCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.FlowNamespaceCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.HasRetryAttemptCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.MultipleCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.NotCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.OrCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.PublicHolidayCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.TimeBetweenCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.WeekendCondition" + }, + { + "$dynamic": false + } + ] + } + ] + } + }, + "description": { + "type": "string" + }, + "disabled": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "fetch": { + "$dynamic": false, + "type": "boolean", + "title": "Whether to fetch the data from the query result to the task output. This parameter is evaluated after `fetchOne` and `store`.", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "fetchOne": { + "$dynamic": false, + "type": "boolean", + "title": "Whether to fetch only one data row from the query result to the task output. This parameter is evaluated before `store` and `fetch`.", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "fetchSize": { + "$dynamic": false, + "type": "integer", + "title": "Number of rows that should be fetched.", + "default": 10000, + "markdownDescription": "Gives the JDBC driver a hint as to the number of rows that should be fetched from the database when more rows are needed for this ResultSet object. If the fetch size specified is zero, the JDBC driver ignores the value and is free to make its own best guess as to what the fetch size should be. Ignored if `autoCommit` is false.\n\nDefault value is : `10000`" + }, + "id": { + "type": "string", + "title": "A unique ID for the whole flow.", + "minLength": 1, + "pattern": "^[a-zA-Z0-9][a-zA-Z0-9_-]*" + }, + "interval": { + "$dynamic": false, + "type": "string", + "format": "duration", + "title": "Interval between polling.", + "default": 60, + "markdownDescription": "The interval between 2 different polls of schedule, this can avoid to overload the remote system with too many calls. For most of the triggers that depend on external systems, a minimal interval must be at least PT30S.\nSee [ISO_8601 Durations](https://en.wikipedia.org/wiki/ISO_8601#Durations) for more information of available interval values.\n\nDefault value is : `60.000000000`" + }, + "labels": { + "title": "The labels to pass to the execution created.", + "type": "array", + "items": { + "$ref": "#/definitions/io.kestra.core.models.Label" + } + }, + "logLevel": { + "type": "string", + "enum": ["ERROR", "WARN", "INFO", "DEBUG", "TRACE"] + }, + "password": { + "$dynamic": true, + "type": "string", + "title": "The database user's password." + }, + "sql": { + "$dynamic": true, + "type": "string", + "title": "The SQL query to run." + }, + "stopAfter": { + "$dynamic": false, + "title": "List of execution states after which a trigger should be stopped (a.k.a. disabled).", + "type": "array", + "items": { + "$dynamic": false, + "type": "string", + "enum": [ + "CREATED", + "RUNNING", + "PAUSED", + "RESTARTED", + "KILLING", + "SUCCESS", + "WARNING", + "FAILED", + "KILLED", + "CANCELLED", + "QUEUED", + "RETRYING", + "RETRIED" + ] + } + }, + "store": { + "$dynamic": false, + "type": "boolean", + "title": "Whether to fetch data row(s) from the query result to a file in internal storage. File will be saved as Amazon Ion (text format). \n See \u003Ca href=\"http://amzn.github.io/ion-docs/\"\u003EAmazon Ion documentation\u003C/a\u003E This parameter is evaluated after `fetchOne` but before `fetch`.", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "timeZoneId": { + "$dynamic": false, + "type": "string", + "title": "The time zone id to use for date/time manipulation. Default value is the worker's default time zone id." + }, + "type": { + "const": "io.kestra.plugin.jdbc.redshift.Trigger" + }, + "url": { + "$dynamic": true, + "type": "string", + "title": "The JDBC URL to connect to the database." + }, + "username": { + "$dynamic": true, + "type": "string", + "title": "The database user." + }, + "workerGroup": { + "$ref": "#/definitions/io.kestra.core.models.tasks.WorkerGroup" + } + }, + "required": ["id", "type", "url"], + "title": "Wait for query on a Redshift database.", + "markdownDescription": "##### Examples\n\u003E Wait for a SQL query to return results, and then iterate through rows.\n```yaml\nid: jdbc-trigger\nnamespace: company.team\n\ntasks:\n - id: each\n type: io.kestra.plugin.core.flow.EachSequential\n tasks:\n - id: return\n type: io.kestra.plugin.core.debug.Return\n format: \"{{ json(taskrun.value) }}\"\n value: \"{{ trigger.rows }}\"\n\ntriggers:\n - id: watch\n type: io.kestra.plugin.jdbc.redshift.Trigger\n interval: \"PT5M\"\n url: jdbc:redshift://123456789.eu-central-1.redshift-serverless.amazonaws.com:5439/dev\n username: admin\n password: admin_passwd\n sql: \"SELECT * FROM my_table\"\n fetch: true\n```" + }, + "io.kestra.plugin.jdbc.rockset.Query": { + "type": "object", + "properties": { + "allowFailure": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "apiKey": { + "$dynamic": true, + "type": "string" + }, + "apiServer": { + "$dynamic": true, + "type": "string" + }, + "autoCommit": { + "$dynamic": false, + "type": "boolean", + "title": "Whether autocommit is enabled.", + "default": true, + "markdownDescription": "Sets this connection's auto-commit mode to the given state. If a connection is in auto-commit mode, then all its SQL statements will be executed and committed as individual transactions. Otherwise, its SQL statements are grouped into transactions that are terminated by a call to either the method commit or the method rollback. By default, new connections are in auto-commit mode except when you are using `store` property in which case the auto-commit will be disabled.\n\nDefault value is : `true`" + }, + "description": { + "type": "string" + }, + "disabled": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "fetch": { + "$dynamic": false, + "type": "boolean", + "title": "Whether to fetch the data from the query result to the task output. This parameter is evaluated after `fetchOne` and `store`.", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "fetchOne": { + "$dynamic": false, + "type": "boolean", + "title": "Whether to fetch only one data row from the query result to the task output. This parameter is evaluated before `store` and `fetch`.", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "fetchSize": { + "$dynamic": false, + "type": "integer", + "title": "Number of rows that should be fetched.", + "default": 10000, + "markdownDescription": "Gives the JDBC driver a hint as to the number of rows that should be fetched from the database when more rows are needed for this ResultSet object. If the fetch size specified is zero, the JDBC driver ignores the value and is free to make its own best guess as to what the fetch size should be. Ignored if `autoCommit` is false.\n\nDefault value is : `10000`" + }, + "id": { + "type": "string", + "minLength": 1, + "pattern": "^[a-zA-Z0-9][a-zA-Z0-9_-]*" + }, + "logLevel": { + "type": "string", + "enum": ["ERROR", "WARN", "INFO", "DEBUG", "TRACE"] + }, + "password": { + "$dynamic": true, + "type": "string", + "title": "The database user's password." + }, + "retry": { + "oneOf": [ + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Constant-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Exponential-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Random-2" + } + ] + }, + "sql": { + "$dynamic": true, + "type": "string", + "title": "The SQL query to run." + }, + "store": { + "$dynamic": false, + "type": "boolean", + "title": "Whether to fetch data row(s) from the query result to a file in internal storage. File will be saved as Amazon Ion (text format). \n See \u003Ca href=\"http://amzn.github.io/ion-docs/\"\u003EAmazon Ion documentation\u003C/a\u003E This parameter is evaluated after `fetchOne` but before `fetch`.", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "timeZoneId": { + "$dynamic": false, + "type": "string", + "title": "The time zone id to use for date/time manipulation. Default value is the worker's default time zone id." + }, + "timeout": { + "type": "string", + "format": "duration" + }, + "type": { + "const": "io.kestra.plugin.jdbc.rockset.Query" + }, + "url": { + "$dynamic": true, + "type": "string", + "title": "The JDBC URL to connect to the database." + }, + "username": { + "$dynamic": true, + "type": "string", + "title": "The database user." + }, + "workerGroup": { + "$ref": "#/definitions/io.kestra.core.models.tasks.WorkerGroup" + } + }, + "required": ["id", "type", "url"], + "title": "Query a Rockset server.", + "markdownDescription": "##### Examples\n\u003E Execute a query and fetch results.\n```yaml\ntasks:\n - id: select\n type: io.kestra.plugin.jdbc.rockset.Query\n url: jdbc:rockset://\n apiKey: \"[apiKey]\"\n apiServer: \"[apiServer]\"\n sql: |\n SELECT *\n FROM nation\n fetch: true\n```" + }, + "io.kestra.plugin.jdbc.rockset.Trigger": { + "type": "object", + "properties": { + "apiKey": { + "$dynamic": true, + "type": "string" + }, + "apiServer": { + "$dynamic": true, + "type": "string" + }, + "conditions": { + "$dynamic": false, + "title": "List of conditions in order to limit the flow trigger.", + "type": "array", + "items": { + "oneOf": [ + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.DateTimeBetweenCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.DayWeekCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.DayWeekInMonthCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.ExecutionFlowCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.ExecutionLabelsCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.ExecutionNamespaceCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.ExecutionOutputsCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.ExecutionStatusCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.ExpressionCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.FlowCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.FlowNamespaceCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.HasRetryAttemptCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.MultipleCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.NotCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.OrCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.PublicHolidayCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.TimeBetweenCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.WeekendCondition" + }, + { + "$dynamic": false + } + ] + } + ] + } + }, + "description": { + "type": "string" + }, + "disabled": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "fetch": { + "$dynamic": false, + "type": "boolean", + "title": "Whether to fetch the data from the query result to the task output. This parameter is evaluated after `fetchOne` and `store`.", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "fetchOne": { + "$dynamic": false, + "type": "boolean", + "title": "Whether to fetch only one data row from the query result to the task output. This parameter is evaluated before `store` and `fetch`.", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "fetchSize": { + "$dynamic": false, + "type": "integer", + "title": "Number of rows that should be fetched.", + "default": 10000, + "markdownDescription": "Gives the JDBC driver a hint as to the number of rows that should be fetched from the database when more rows are needed for this ResultSet object. If the fetch size specified is zero, the JDBC driver ignores the value and is free to make its own best guess as to what the fetch size should be. Ignored if `autoCommit` is false.\n\nDefault value is : `10000`" + }, + "id": { + "type": "string", + "title": "A unique ID for the whole flow.", + "minLength": 1, + "pattern": "^[a-zA-Z0-9][a-zA-Z0-9_-]*" + }, + "interval": { + "$dynamic": false, + "type": "string", + "format": "duration", + "title": "Interval between polling.", + "default": 60, + "markdownDescription": "The interval between 2 different polls of schedule, this can avoid to overload the remote system with too many calls. For most of the triggers that depend on external systems, a minimal interval must be at least PT30S.\nSee [ISO_8601 Durations](https://en.wikipedia.org/wiki/ISO_8601#Durations) for more information of available interval values.\n\nDefault value is : `60.000000000`" + }, + "labels": { + "title": "The labels to pass to the execution created.", + "type": "array", + "items": { + "$ref": "#/definitions/io.kestra.core.models.Label" + } + }, + "logLevel": { + "type": "string", + "enum": ["ERROR", "WARN", "INFO", "DEBUG", "TRACE"] + }, + "password": { + "$dynamic": true, + "type": "string", + "title": "The database user's password." + }, + "sql": { + "$dynamic": true, + "type": "string", + "title": "The SQL query to run." + }, + "stopAfter": { + "$dynamic": false, + "title": "List of execution states after which a trigger should be stopped (a.k.a. disabled).", + "type": "array", + "items": { + "$dynamic": false, + "type": "string", + "enum": [ + "CREATED", + "RUNNING", + "PAUSED", + "RESTARTED", + "KILLING", + "SUCCESS", + "WARNING", + "FAILED", + "KILLED", + "CANCELLED", + "QUEUED", + "RETRYING", + "RETRIED" + ] + } + }, + "store": { + "$dynamic": false, + "type": "boolean", + "title": "Whether to fetch data row(s) from the query result to a file in internal storage. File will be saved as Amazon Ion (text format). \n See \u003Ca href=\"http://amzn.github.io/ion-docs/\"\u003EAmazon Ion documentation\u003C/a\u003E This parameter is evaluated after `fetchOne` but before `fetch`.", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "timeZoneId": { + "$dynamic": false, + "type": "string", + "title": "The time zone id to use for date/time manipulation. Default value is the worker's default time zone id." + }, + "type": { + "const": "io.kestra.plugin.jdbc.rockset.Trigger" + }, + "url": { + "$dynamic": true, + "type": "string", + "title": "The JDBC URL to connect to the database." + }, + "username": { + "$dynamic": true, + "type": "string", + "title": "The database user." + }, + "workerGroup": { + "$ref": "#/definitions/io.kestra.core.models.tasks.WorkerGroup" + } + }, + "required": ["id", "type", "url"], + "title": "Wait for query on a Rockset database.", + "markdownDescription": "##### Examples\n\u003E Wait for a SQL query to return results, and then iterate through rows.\n```yaml\nid: jdbc-trigger\nnamespace: company.team\n\ntasks:\n - id: each\n type: io.kestra.plugin.core.flow.EachSequential\n tasks:\n - id: return\n type: io.kestra.plugin.core.debug.Return\n format: \"{{ json(taskrun.value) }}\"\n value: \"{{ trigger.rows }}\"\n\ntriggers:\n - id: watch\n type: io.kestra.plugin.jdbc.rockset.Trigger\n interval: \"PT5M\"\n url: jdbc:rockset://\n apiKey: \"[apiKey]\"\n apiServer: \"[apiServer]\"\n sql: \"SELECT * FROM my_table\"\n fetch: true\n```" + }, + "io.kestra.plugin.jdbc.snowflake.Download": { + "type": "object", + "properties": { + "allowFailure": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "compress": { + "$dynamic": false, + "type": "boolean", + "title": "Whether to compress data before uploading stream.", + "default": true, + "markdownDescription": "Default value is : `true`" + }, + "database": { + "$dynamic": true, + "type": "string", + "title": "Specifies the default database to use once connected.", + "markdownDescription": "The specified database should be an existing database for which the specified default role has privileges.\nIf you need to use a different database after connecting, execute the `USE DATABASE` command." + }, + "description": { + "type": "string" + }, + "disabled": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "fileName": { + "$dynamic": true, + "type": "string", + "title": "File name on Snowflake stage that should be downloaded." + }, + "id": { + "type": "string", + "minLength": 1, + "pattern": "^[a-zA-Z0-9][a-zA-Z0-9_-]*" + }, + "logLevel": { + "type": "string", + "enum": ["ERROR", "WARN", "INFO", "DEBUG", "TRACE"] + }, + "password": { + "$dynamic": true, + "type": "string", + "title": "The database user's password." + }, + "privateKey": { + "$dynamic": true, + "type": "string", + "title": "Specifies the private key for key pair authentication and key rotation.", + "markdownDescription": "It needs to be an un-encoded private key in plaintext." + }, + "privateKeyFile": { + "$dynamic": true, + "type": "string", + "title": "Specifies the private key file for key pair authentication and key rotation.", + "markdownDescription": "It needs to be the path on the host where the private key file is located." + }, + "privateKeyFilePassword": { + "$dynamic": true, + "type": "string", + "title": "Specifies the private key file password for key pair authentication and key rotation." + }, + "retry": { + "oneOf": [ + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Constant-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Exponential-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Random-2" + } + ] + }, + "role": { + "$dynamic": true, + "type": "string", + "title": "Specifies the default access control role to use in the Snowflake session initiated by the driver.", + "markdownDescription": "The specified role should be an existing role that has already been assigned to the specified user for the driver. If the specified role has not already been assigned to the user, the role is not used when the session is initiated by the driver.\nIf you need to use a different role after connecting, execute the `USE ROLE` command." + }, + "schema": { + "$dynamic": true, + "type": "string", + "title": "Specifies the default schema to use for the specified database once connected.", + "markdownDescription": "The specified schema should be an existing schema for which the specified default role has privileges.\nIf you need to use a different schema after connecting, execute the `USE SCHEMA` command." + }, + "stageName": { + "$dynamic": true, + "type": "string", + "title": "Snowflake stage name.", + "markdownDescription": "~ or table name or stage name." + }, + "timeout": { + "type": "string", + "format": "duration" + }, + "type": { + "const": "io.kestra.plugin.jdbc.snowflake.Download" + }, + "url": { + "$dynamic": true, + "type": "string", + "title": "The JDBC URL to connect to the database." + }, + "username": { + "$dynamic": true, + "type": "string", + "title": "The database user." + }, + "warehouse": { + "$dynamic": true, + "type": "string", + "title": "Specifies the virtual warehouse to use once connected.", + "markdownDescription": "The specified warehouse should be an existing warehouse for which the specified default role has privileges.\nIf you need to use a different warehouse after connecting, execute the `USE WAREHOUSE` command to set a different warehouse for the session." + }, + "workerGroup": { + "$ref": "#/definitions/io.kestra.core.models.tasks.WorkerGroup" + } + }, + "required": ["fileName", "id", "stageName", "type", "url"], + "title": "Download data from Snowflake stage to Kestra's internal storage.", + "markdownDescription": "##### Examples\n\u003E \n```yaml\nurl: jdbc:snowflake://\u003Caccount_identifier\u003E.snowflakecomputing.com\nusername: snowflake_user\npassword: snowflake_passwd\nstageName: \"@demo_db.public.%myStage\"\nfileName: prefix/destFile.csv\n```" + }, + "io.kestra.plugin.jdbc.snowflake.Query": { + "type": "object", + "properties": { + "allowFailure": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "autoCommit": { + "$dynamic": false, + "type": "boolean", + "title": "Whether autocommit is enabled.", + "default": true, + "markdownDescription": "Sets this connection's auto-commit mode to the given state. If a connection is in auto-commit mode, then all its SQL statements will be executed and committed as individual transactions. Otherwise, its SQL statements are grouped into transactions that are terminated by a call to either the method commit or the method rollback. By default, new connections are in auto-commit mode except when you are using `store` property in which case the auto-commit will be disabled.\n\nDefault value is : `true`" + }, + "database": { + "$dynamic": true, + "type": "string", + "title": "Specifies the default database to use once connected.", + "markdownDescription": "The specified database should be an existing database for which the specified default role has privileges.\nIf you need to use a different database after connecting, execute the `USE DATABASE` command." + }, + "description": { + "type": "string" + }, + "disabled": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "fetch": { + "$dynamic": false, + "type": "boolean", + "title": "Whether to fetch the data from the query result to the task output. This parameter is evaluated after `fetchOne` and `store`.", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "fetchOne": { + "$dynamic": false, + "type": "boolean", + "title": "Whether to fetch only one data row from the query result to the task output. This parameter is evaluated before `store` and `fetch`.", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "fetchSize": { + "$dynamic": false, + "type": "integer", + "title": "Number of rows that should be fetched.", + "default": 10000, + "markdownDescription": "Gives the JDBC driver a hint as to the number of rows that should be fetched from the database when more rows are needed for this ResultSet object. If the fetch size specified is zero, the JDBC driver ignores the value and is free to make its own best guess as to what the fetch size should be. Ignored if `autoCommit` is false.\n\nDefault value is : `10000`" + }, + "id": { + "type": "string", + "minLength": 1, + "pattern": "^[a-zA-Z0-9][a-zA-Z0-9_-]*" + }, + "logLevel": { + "type": "string", + "enum": ["ERROR", "WARN", "INFO", "DEBUG", "TRACE"] + }, + "password": { + "$dynamic": true, + "type": "string", + "title": "The database user's password." + }, + "privateKey": { + "$dynamic": true, + "type": "string", + "title": "Specifies the private key for key pair authentication and key rotation.", + "markdownDescription": "It needs to be an un-encoded private key in plaintext." + }, + "privateKeyFile": { + "$dynamic": true, + "type": "string", + "title": "Specifies the private key file for key pair authentication and key rotation.", + "markdownDescription": "It needs to be the path on the host where the private key file is located." + }, + "privateKeyFilePassword": { + "$dynamic": true, + "type": "string", + "title": "Specifies the private key file password for key pair authentication and key rotation." + }, + "retry": { + "oneOf": [ + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Constant-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Exponential-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Random-2" + } + ] + }, + "role": { + "$dynamic": true, + "type": "string", + "title": "Specifies the default access control role to use in the Snowflake session initiated by the driver.", + "markdownDescription": "The specified role should be an existing role that has already been assigned to the specified user for the driver. If the specified role has not already been assigned to the user, the role is not used when the session is initiated by the driver.\nIf you need to use a different role after connecting, execute the `USE ROLE` command." + }, + "schema": { + "$dynamic": true, + "type": "string", + "title": "Specifies the default schema to use for the specified database once connected.", + "markdownDescription": "The specified schema should be an existing schema for which the specified default role has privileges.\nIf you need to use a different schema after connecting, execute the `USE SCHEMA` command." + }, + "sql": { + "$dynamic": true, + "type": "string", + "title": "The SQL query to run." + }, + "store": { + "$dynamic": false, + "type": "boolean", + "title": "Whether to fetch data row(s) from the query result to a file in internal storage. File will be saved as Amazon Ion (text format). \n See \u003Ca href=\"http://amzn.github.io/ion-docs/\"\u003EAmazon Ion documentation\u003C/a\u003E This parameter is evaluated after `fetchOne` but before `fetch`.", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "timeZoneId": { + "$dynamic": false, + "type": "string", + "title": "The time zone id to use for date/time manipulation. Default value is the worker's default time zone id." + }, + "timeout": { + "type": "string", + "format": "duration" + }, + "type": { + "const": "io.kestra.plugin.jdbc.snowflake.Query" + }, + "url": { + "$dynamic": true, + "type": "string", + "title": "The JDBC URL to connect to the database." + }, + "username": { + "$dynamic": true, + "type": "string", + "title": "The database user." + }, + "warehouse": { + "$dynamic": true, + "type": "string", + "title": "Specifies the virtual warehouse to use once connected.", + "markdownDescription": "The specified warehouse should be an existing warehouse for which the specified default role has privileges.\nIf you need to use a different warehouse after connecting, execute the `USE WAREHOUSE` command to set a different warehouse for the session." + }, + "workerGroup": { + "$ref": "#/definitions/io.kestra.core.models.tasks.WorkerGroup" + } + }, + "required": ["id", "type", "url"], + "title": "Query a Snowflake server.", + "markdownDescription": "##### Examples\n\u003E Execute a query and fetch results in a task, and update another table with fetched results in a different task.\n```yaml\ntasks:\n - id: select\n type: io.kestra.plugin.jdbc.snowflake.Query\n url: jdbc:snowflake://\u003Caccount_identifier\u003E.snowflakecomputing.com\n username: snowflake_user\n password: snowflake_passwd\n sql: select * from demo_db.public.customers\n fetch: true\n - id: generate-update\n type: io.kestra.plugin.jdbc.snowflake.Query\n url: jdbc:snowflake://\u003Caccount_identifier\u003E.snowflakecomputing.com\n username: snowflake_user\n password: snowflake_passwd\n sql: \"INSERT INTO demo_db.public.customers_new (year_month, store_code, update_date) values {% for row in outputs.update.rows %} ({{row.year_month}}, {{row.store_code}}, TO_DATE('{{row.date}}', 'MONTH DD, YYYY') ) {% if not loop.last %}, {% endif %}; {% endfor %}\"\n```" + }, + "io.kestra.plugin.jdbc.snowflake.Trigger": { + "type": "object", + "properties": { + "conditions": { + "$dynamic": false, + "title": "List of conditions in order to limit the flow trigger.", + "type": "array", + "items": { + "oneOf": [ + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.DateTimeBetweenCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.DayWeekCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.DayWeekInMonthCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.ExecutionFlowCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.ExecutionLabelsCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.ExecutionNamespaceCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.ExecutionOutputsCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.ExecutionStatusCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.ExpressionCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.FlowCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.FlowNamespaceCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.HasRetryAttemptCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.MultipleCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.NotCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.OrCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.PublicHolidayCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.TimeBetweenCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.WeekendCondition" + }, + { + "$dynamic": false + } + ] + } + ] + } + }, + "database": { + "$dynamic": true, + "type": "string", + "title": "Specifies the default database to use once connected.", + "markdownDescription": "The specified database should be an existing database for which the specified default role has privileges.\nIf you need to use a different database after connecting, execute the `USE DATABASE` command." + }, + "description": { + "type": "string" + }, + "disabled": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "fetch": { + "$dynamic": false, + "type": "boolean", + "title": "Whether to fetch the data from the query result to the task output. This parameter is evaluated after `fetchOne` and `store`.", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "fetchOne": { + "$dynamic": false, + "type": "boolean", + "title": "Whether to fetch only one data row from the query result to the task output. This parameter is evaluated before `store` and `fetch`.", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "fetchSize": { + "$dynamic": false, + "type": "integer", + "title": "Number of rows that should be fetched.", + "default": 10000, + "markdownDescription": "Gives the JDBC driver a hint as to the number of rows that should be fetched from the database when more rows are needed for this ResultSet object. If the fetch size specified is zero, the JDBC driver ignores the value and is free to make its own best guess as to what the fetch size should be. Ignored if `autoCommit` is false.\n\nDefault value is : `10000`" + }, + "id": { + "type": "string", + "title": "A unique ID for the whole flow.", + "minLength": 1, + "pattern": "^[a-zA-Z0-9][a-zA-Z0-9_-]*" + }, + "interval": { + "$dynamic": false, + "type": "string", + "format": "duration", + "title": "Interval between polling.", + "default": 60, + "markdownDescription": "The interval between 2 different polls of schedule, this can avoid to overload the remote system with too many calls. For most of the triggers that depend on external systems, a minimal interval must be at least PT30S.\nSee [ISO_8601 Durations](https://en.wikipedia.org/wiki/ISO_8601#Durations) for more information of available interval values.\n\nDefault value is : `60.000000000`" + }, + "labels": { + "title": "The labels to pass to the execution created.", + "type": "array", + "items": { + "$ref": "#/definitions/io.kestra.core.models.Label" + } + }, + "logLevel": { + "type": "string", + "enum": ["ERROR", "WARN", "INFO", "DEBUG", "TRACE"] + }, + "password": { + "$dynamic": true, + "type": "string", + "title": "The database user's password." + }, + "privateKey": { + "$dynamic": true, + "type": "string", + "title": "Specifies the private key for key pair authentication and key rotation.", + "markdownDescription": "It needs to be an un-encoded private key in plaintext." + }, + "privateKeyFile": { + "$dynamic": true, + "type": "string", + "title": "Specifies the private key file for key pair authentication and key rotation.", + "markdownDescription": "It needs to be the path on the host where the private key file is located." + }, + "privateKeyFilePassword": { + "$dynamic": true, + "type": "string", + "title": "Specifies the private key file password for key pair authentication and key rotation." + }, + "role": { + "$dynamic": true, + "type": "string", + "title": "Specifies the default access control role to use in the Snowflake session initiated by the driver.", + "markdownDescription": "The specified role should be an existing role that has already been assigned to the specified user for the driver. If the specified role has not already been assigned to the user, the role is not used when the session is initiated by the driver.\nIf you need to use a different role after connecting, execute the `USE ROLE` command." + }, + "schema": { + "$dynamic": true, + "type": "string", + "title": "Specifies the default schema to use for the specified database once connected.", + "markdownDescription": "The specified schema should be an existing schema for which the specified default role has privileges.\nIf you need to use a different schema after connecting, execute the `USE SCHEMA` command." + }, + "sql": { + "$dynamic": true, + "type": "string", + "title": "The SQL query to run." + }, + "stopAfter": { + "$dynamic": false, + "title": "List of execution states after which a trigger should be stopped (a.k.a. disabled).", + "type": "array", + "items": { + "$dynamic": false, + "type": "string", + "enum": [ + "CREATED", + "RUNNING", + "PAUSED", + "RESTARTED", + "KILLING", + "SUCCESS", + "WARNING", + "FAILED", + "KILLED", + "CANCELLED", + "QUEUED", + "RETRYING", + "RETRIED" + ] + } + }, + "store": { + "$dynamic": false, + "type": "boolean", + "title": "Whether to fetch data row(s) from the query result to a file in internal storage. File will be saved as Amazon Ion (text format). \n See \u003Ca href=\"http://amzn.github.io/ion-docs/\"\u003EAmazon Ion documentation\u003C/a\u003E This parameter is evaluated after `fetchOne` but before `fetch`.", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "timeZoneId": { + "$dynamic": false, + "type": "string", + "title": "The time zone id to use for date/time manipulation. Default value is the worker's default time zone id." + }, + "type": { + "const": "io.kestra.plugin.jdbc.snowflake.Trigger" + }, + "url": { + "$dynamic": true, + "type": "string", + "title": "The JDBC URL to connect to the database." + }, + "username": { + "$dynamic": true, + "type": "string", + "title": "The database user." + }, + "warehouse": { + "$dynamic": true, + "type": "string", + "title": "Specifies the virtual warehouse to use once connected.", + "markdownDescription": "The specified warehouse should be an existing warehouse for which the specified default role has privileges.\nIf you need to use a different warehouse after connecting, execute the `USE WAREHOUSE` command to set a different warehouse for the session." + }, + "workerGroup": { + "$ref": "#/definitions/io.kestra.core.models.tasks.WorkerGroup" + } + }, + "required": ["id", "type", "url"], + "title": "Wait for a query on a Snowflake database.", + "markdownDescription": "##### Examples\n\u003E Wait for a SQL query to return results, and then iterate through rows.\n```yaml\nid: jdbc-trigger\nnamespace: company.team\n\ntasks:\n - id: each\n type: io.kestra.plugin.core.flow.EachSequential\n tasks:\n - id: return\n type: io.kestra.plugin.core.debug.Return\n format: \"{{ json(taskrun.value) }}\"\n value: \"{{ trigger.rows }}\"\n\ntriggers:\n - id: watch\n type: io.kestra.plugin.jdbc.snowflake.Trigger\n interval: \"PT5M\"\n url: jdbc:snowflake://\u003Caccount_identifier\u003E.snowflakecomputing.com\n username: snowflake_user\n password: snowflake_passwd\n sql: \"SELECT * FROM demo_db.public.customers\"\n fetch: true\n```" + }, + "io.kestra.plugin.jdbc.snowflake.Upload": { + "type": "object", + "properties": { + "allowFailure": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "compress": { + "$dynamic": false, + "type": "boolean", + "title": "Whether to compress the file or not before uploading it to the Snowflake stage.", + "default": true, + "markdownDescription": "Default value is : `true`" + }, + "database": { + "$dynamic": true, + "type": "string", + "title": "Specifies the default database to use once connected.", + "markdownDescription": "The specified database should be an existing database for which the specified default role has privileges.\nIf you need to use a different database after connecting, execute the `USE DATABASE` command." + }, + "description": { + "type": "string" + }, + "disabled": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "fileName": { + "$dynamic": true, + "type": "string", + "title": "Destination file name to use." + }, + "from": { + "$dynamic": true, + "type": "string", + "title": "Path to the file to load to Snowflake stage." + }, + "id": { + "type": "string", + "minLength": 1, + "pattern": "^[a-zA-Z0-9][a-zA-Z0-9_-]*" + }, + "logLevel": { + "type": "string", + "enum": ["ERROR", "WARN", "INFO", "DEBUG", "TRACE"] + }, + "password": { + "$dynamic": true, + "type": "string", + "title": "The database user's password." + }, + "prefix": { + "$dynamic": true, + "type": "string", + "title": "The prefix under which the file will be uploaded to Snowflake stage." + }, + "privateKey": { + "$dynamic": true, + "type": "string", + "title": "Specifies the private key for key pair authentication and key rotation.", + "markdownDescription": "It needs to be an un-encoded private key in plaintext." + }, + "privateKeyFile": { + "$dynamic": true, + "type": "string", + "title": "Specifies the private key file for key pair authentication and key rotation.", + "markdownDescription": "It needs to be the path on the host where the private key file is located." + }, + "privateKeyFilePassword": { + "$dynamic": true, + "type": "string", + "title": "Specifies the private key file password for key pair authentication and key rotation." + }, + "retry": { + "oneOf": [ + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Constant-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Exponential-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Random-2" + } + ] + }, + "role": { + "$dynamic": true, + "type": "string", + "title": "Specifies the default access control role to use in the Snowflake session initiated by the driver.", + "markdownDescription": "The specified role should be an existing role that has already been assigned to the specified user for the driver. If the specified role has not already been assigned to the user, the role is not used when the session is initiated by the driver.\nIf you need to use a different role after connecting, execute the `USE ROLE` command." + }, + "schema": { + "$dynamic": true, + "type": "string", + "title": "Specifies the default schema to use for the specified database once connected.", + "markdownDescription": "The specified schema should be an existing schema for which the specified default role has privileges.\nIf you need to use a different schema after connecting, execute the `USE SCHEMA` command." + }, + "stageName": { + "$dynamic": true, + "type": "string", + "title": "Snowflake stage name.", + "markdownDescription": "This can either be a stage name or a table name." + }, + "timeout": { + "type": "string", + "format": "duration" + }, + "type": { + "const": "io.kestra.plugin.jdbc.snowflake.Upload" + }, + "url": { + "$dynamic": true, + "type": "string", + "title": "The JDBC URL to connect to the database." + }, + "username": { + "$dynamic": true, + "type": "string", + "title": "The database user." + }, + "warehouse": { + "$dynamic": true, + "type": "string", + "title": "Specifies the virtual warehouse to use once connected.", + "markdownDescription": "The specified warehouse should be an existing warehouse for which the specified default role has privileges.\nIf you need to use a different warehouse after connecting, execute the `USE WAREHOUSE` command to set a different warehouse for the session." + }, + "workerGroup": { + "$ref": "#/definitions/io.kestra.core.models.tasks.WorkerGroup" + } + }, + "required": [ + "fileName", + "from", + "id", + "prefix", + "stageName", + "type", + "url" + ], + "title": "Upload data from an internal storage file to Snowflake stage. Make sure that the `stageName` follows the naming convention of `@databaseName.schemaName.%stageOrTableName`. For usage examples, check the Blueprints tagged with `Snowflake`.", + "markdownDescription": "##### Examples\n\u003E \n```yaml\nurl: jdbc:snowflake://\u003Caccount_identifier\u003E.snowflakecomputing.com\nusername: snowflake_user\npassword: snowflake_passwd\nfrom: '{{ outputs.extract.uri }}'\nfileName: data.csv\nprefix: raw\nstageName: \"@demo_db.public.%myStage\"\n```" + }, + "io.kestra.plugin.jdbc.sqlite.Query": { + "type": "object", + "properties": { + "allowFailure": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "autoCommit": { + "$dynamic": false, + "type": "boolean", + "title": "Whether autocommit is enabled.", + "default": true, + "markdownDescription": "Sets this connection's auto-commit mode to the given state. If a connection is in auto-commit mode, then all its SQL statements will be executed and committed as individual transactions. Otherwise, its SQL statements are grouped into transactions that are terminated by a call to either the method commit or the method rollback. By default, new connections are in auto-commit mode except when you are using `store` property in which case the auto-commit will be disabled.\n\nDefault value is : `true`" + }, + "description": { + "type": "string" + }, + "disabled": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "fetch": { + "$dynamic": false, + "type": "boolean", + "title": "Whether to fetch the data from the query result to the task output. This parameter is evaluated after `fetchOne` and `store`.", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "fetchOne": { + "$dynamic": false, + "type": "boolean", + "title": "Whether to fetch only one data row from the query result to the task output. This parameter is evaluated before `store` and `fetch`.", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "fetchSize": { + "$dynamic": false, + "type": "integer", + "title": "Number of rows that should be fetched.", + "default": 10000, + "markdownDescription": "Gives the JDBC driver a hint as to the number of rows that should be fetched from the database when more rows are needed for this ResultSet object. If the fetch size specified is zero, the JDBC driver ignores the value and is free to make its own best guess as to what the fetch size should be. Ignored if `autoCommit` is false.\n\nDefault value is : `10000`" + }, + "id": { + "type": "string", + "minLength": 1, + "pattern": "^[a-zA-Z0-9][a-zA-Z0-9_-]*" + }, + "logLevel": { + "type": "string", + "enum": ["ERROR", "WARN", "INFO", "DEBUG", "TRACE"] + }, + "password": { + "$dynamic": true, + "type": "string", + "title": "The database user's password." + }, + "retry": { + "oneOf": [ + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Constant-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Exponential-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Random-2" + } + ] + }, + "sql": { + "$dynamic": true, + "type": "string", + "title": "The SQL query to run." + }, + "sqliteFile": { + "$dynamic": true, + "type": "string", + "title": "Add sqlite file.", + "markdownDescription": "The file must be from Kestra's internal storage" + }, + "store": { + "$dynamic": false, + "type": "boolean", + "title": "Whether to fetch data row(s) from the query result to a file in internal storage. File will be saved as Amazon Ion (text format). \n See \u003Ca href=\"http://amzn.github.io/ion-docs/\"\u003EAmazon Ion documentation\u003C/a\u003E This parameter is evaluated after `fetchOne` but before `fetch`.", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "timeZoneId": { + "$dynamic": false, + "type": "string", + "title": "The time zone id to use for date/time manipulation. Default value is the worker's default time zone id." + }, + "timeout": { + "type": "string", + "format": "duration" + }, + "type": { + "const": "io.kestra.plugin.jdbc.sqlite.Query" + }, + "url": { + "$dynamic": true, + "type": "string", + "title": "The JDBC URL to connect to the database." + }, + "username": { + "$dynamic": true, + "type": "string", + "title": "The database user." + }, + "workerGroup": { + "$ref": "#/definitions/io.kestra.core.models.tasks.WorkerGroup" + } + }, + "required": ["id", "type", "url"], + "title": "Query a SQLite server.", + "markdownDescription": "##### Examples\n\u003E Execute a query and pass the results to another task.\n```yaml\ntasks:\n - id: update\n type: io.kestra.plugin.jdbc.sqlite.Query\n url: jdbc:sqlite:myfile.db\n sql: select concert_id, available, a, b, c, d, play_time, library_record, floatn_test, double_test, real_test, numeric_test, date_type, time_type, timez_type, timestamp_type, timestampz_type, interval_type, pay_by_quarter, schedule, json_type, blob_type from pgsql_types\n fetch: true\n\n - id: use-fetched-data\n type: io.kestra.plugin.jdbc.sqlite.Query\n url: jdbc:sqlite:myfile.db\n sql: \"{% for row in outputs.update.rows %} INSERT INTO pl_store_distribute (year_month,store_code, update_date) values ({{row.play_time}}, {{row.concert_id}}, TO_TIMESTAMP('{{row.timestamp_type}}', 'YYYY-MM-DDTHH:MI:SS.US') ); {% endfor %}\"\n```\n\n\u003E Execute a query, using existing sqlite file, and pass the results to another task.\n```yaml\ntasks:\n- id: update\n type: io.kestra.plugin.jdbc.sqlite.Query\n url: jdbc:sqlite:myfile.db\n sqliteFile: {{ outputs.get.outputFiles['myfile.sqlite'] }}\n sql: select * from pgsql_types\n fetch: true\n\n- id: use-fetched-data\n type: io.kestra.plugin.jdbc.sqlite.Query\n url: jdbc:sqlite:myfile.db\n sqliteFile: {{ outputs.get.outputFiles['myfile.sqlite'] }}\n sql: \"{% for row in outputs.update.rows %} INSERT INTO pl_store_distribute (year_month,store_code, update_date) values ({{row.play_time}}, {{row.concert_id}}, TO_TIMESTAMP('{{row.timestamp_type}}', 'YYYY-MM-DDTHH:MI:SS.US') ); {% endfor %}\"\n```" + }, + "io.kestra.plugin.jdbc.sqlite.Trigger": { + "type": "object", + "properties": { + "conditions": { + "$dynamic": false, + "title": "List of conditions in order to limit the flow trigger.", + "type": "array", + "items": { + "oneOf": [ + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.DateTimeBetweenCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.DayWeekCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.DayWeekInMonthCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.ExecutionFlowCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.ExecutionLabelsCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.ExecutionNamespaceCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.ExecutionOutputsCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.ExecutionStatusCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.ExpressionCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.FlowCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.FlowNamespaceCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.HasRetryAttemptCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.MultipleCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.NotCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.OrCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.PublicHolidayCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.TimeBetweenCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.WeekendCondition" + }, + { + "$dynamic": false + } + ] + } + ] + } + }, + "description": { + "type": "string" + }, + "disabled": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "fetch": { + "$dynamic": false, + "type": "boolean", + "title": "Whether to fetch the data from the query result to the task output. This parameter is evaluated after `fetchOne` and `store`.", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "fetchOne": { + "$dynamic": false, + "type": "boolean", + "title": "Whether to fetch only one data row from the query result to the task output. This parameter is evaluated before `store` and `fetch`.", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "fetchSize": { + "$dynamic": false, + "type": "integer", + "title": "Number of rows that should be fetched.", + "default": 10000, + "markdownDescription": "Gives the JDBC driver a hint as to the number of rows that should be fetched from the database when more rows are needed for this ResultSet object. If the fetch size specified is zero, the JDBC driver ignores the value and is free to make its own best guess as to what the fetch size should be. Ignored if `autoCommit` is false.\n\nDefault value is : `10000`" + }, + "id": { + "type": "string", + "title": "A unique ID for the whole flow.", + "minLength": 1, + "pattern": "^[a-zA-Z0-9][a-zA-Z0-9_-]*" + }, + "interval": { + "$dynamic": false, + "type": "string", + "format": "duration", + "title": "Interval between polling.", + "default": 60, + "markdownDescription": "The interval between 2 different polls of schedule, this can avoid to overload the remote system with too many calls. For most of the triggers that depend on external systems, a minimal interval must be at least PT30S.\nSee [ISO_8601 Durations](https://en.wikipedia.org/wiki/ISO_8601#Durations) for more information of available interval values.\n\nDefault value is : `60.000000000`" + }, + "labels": { + "title": "The labels to pass to the execution created.", + "type": "array", + "items": { + "$ref": "#/definitions/io.kestra.core.models.Label" + } + }, + "logLevel": { + "type": "string", + "enum": ["ERROR", "WARN", "INFO", "DEBUG", "TRACE"] + }, + "password": { + "$dynamic": true, + "type": "string", + "title": "The database user's password." + }, + "sql": { + "$dynamic": true, + "type": "string", + "title": "The SQL query to run." + }, + "stopAfter": { + "$dynamic": false, + "title": "List of execution states after which a trigger should be stopped (a.k.a. disabled).", + "type": "array", + "items": { + "$dynamic": false, + "type": "string", + "enum": [ + "CREATED", + "RUNNING", + "PAUSED", + "RESTARTED", + "KILLING", + "SUCCESS", + "WARNING", + "FAILED", + "KILLED", + "CANCELLED", + "QUEUED", + "RETRYING", + "RETRIED" + ] + } + }, + "store": { + "$dynamic": false, + "type": "boolean", + "title": "Whether to fetch data row(s) from the query result to a file in internal storage. File will be saved as Amazon Ion (text format). \n See \u003Ca href=\"http://amzn.github.io/ion-docs/\"\u003EAmazon Ion documentation\u003C/a\u003E This parameter is evaluated after `fetchOne` but before `fetch`.", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "timeZoneId": { + "$dynamic": false, + "type": "string", + "title": "The time zone id to use for date/time manipulation. Default value is the worker's default time zone id." + }, + "type": { + "const": "io.kestra.plugin.jdbc.sqlite.Trigger" + }, + "url": { + "$dynamic": true, + "type": "string", + "title": "The JDBC URL to connect to the database." + }, + "username": { + "$dynamic": true, + "type": "string", + "title": "The database user." + }, + "workerGroup": { + "$ref": "#/definitions/io.kestra.core.models.tasks.WorkerGroup" + } + }, + "required": ["id", "type", "url"], + "title": "Wait for query on a SQLite database.", + "markdownDescription": "##### Examples\n\u003E Wait for a SQL query to return results, and then iterate through rows.\n```yaml\nid: jdbc-trigger\nnamespace: company.team\n\ntasks:\n - id: each\n type: io.kestra.plugin.core.flow.EachSequential\n tasks:\n - id: return\n type: io.kestra.plugin.core.debug.Return\n format: \"{{ json(taskrun.value) }}\"\n value: \"{{ trigger.rows }}\"\n\ntriggers:\n - id: watch\n type: io.kestra.plugin.jdbc.sqlite.Trigger\n interval: \"PT5M\"\n url: jdbc:sqlite:myfile.db\n sql: \"SELECT * FROM my_table\"\n fetch: true\n```" + }, + "io.kestra.plugin.jdbc.sqlserver.Batch": { + "type": "object", + "properties": { + "allowFailure": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "chunk": { + "$dynamic": true, + "type": "integer", + "title": "The size of chunk for every bulk request.", + "default": 1000, + "markdownDescription": "Default value is : `1000`" + }, + "columns": { + "$dynamic": true, + "title": "The columns to be inserted.", + "markdownDescription": "If not provided, `?` count need to match the `from` number of columns.", + "type": "array", + "items": { + "$dynamic": true, + "type": "string" + } + }, + "description": { + "type": "string" + }, + "disabled": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "from": { + "$dynamic": true, + "type": "string", + "title": "Source file URI" + }, + "id": { + "type": "string", + "minLength": 1, + "pattern": "^[a-zA-Z0-9][a-zA-Z0-9_-]*" + }, + "logLevel": { + "type": "string", + "enum": ["ERROR", "WARN", "INFO", "DEBUG", "TRACE"] + }, + "password": { + "$dynamic": true, + "type": "string", + "title": "The database user's password." + }, + "retry": { + "oneOf": [ + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Constant-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Exponential-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Random-2" + } + ] + }, + "sql": { + "$dynamic": true, + "type": "string", + "title": "Insert query to be executed.", + "markdownDescription": "The query must have as many question marks as the number of columns in the table.\nExample: 'insert into \u003Ctable_name\u003E values( ? , ? , ? )' for 3 columns.\nIn case you do not want all columns, you need to specify it in the query in the columns property\nExample: 'insert into \u003Ctable_name\u003E (id, name) values( ? , ? )' for inserting data into 2 columns: 'id' and 'name'." + }, + "timeZoneId": { + "$dynamic": false, + "type": "string", + "title": "The time zone id to use for date/time manipulation. Default value is the worker's default time zone id." + }, + "timeout": { + "type": "string", + "format": "duration" + }, + "type": { + "const": "io.kestra.plugin.jdbc.sqlserver.Batch" + }, + "url": { + "$dynamic": true, + "type": "string", + "title": "The JDBC URL to connect to the database." + }, + "username": { + "$dynamic": true, + "type": "string", + "title": "The database user." + }, + "workerGroup": { + "$ref": "#/definitions/io.kestra.core.models.tasks.WorkerGroup" + } + }, + "required": ["from", "id", "sql", "type", "url"], + "title": "Execute a batch query on a Microsoft SQL Server.", + "markdownDescription": "##### Examples\n\u003E Fetch rows from a table and bulk insert to another one.\n```yaml\ntasks:\n - id: query\n type: io.kestra.plugin.jdbc.sqlserver.Query\n url: jdbc:sqlserver://dev:41433;trustServerCertificate=true\n username: sql_server_user\n password: sql_server_passwd\n sql: |\n SELECT *\n FROM xref\n LIMIT 1500;\n store: true\n - id: update\n type: io.kestra.plugin.jdbc.sqlserver.Batch\n from: \"{{ outputs.query.uri }}\"\n url: jdbc:sqlserver://prod:41433;trustServerCertificate=true\n username: sql_server_user\n password: sql_server_passwd\n sql: |\n insert into xref values( ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ? )\n```" + }, + "io.kestra.plugin.jdbc.sqlserver.Query": { + "type": "object", + "properties": { + "allowFailure": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "autoCommit": { + "$dynamic": false, + "type": "boolean", + "title": "Whether autocommit is enabled.", + "default": true, + "markdownDescription": "Sets this connection's auto-commit mode to the given state. If a connection is in auto-commit mode, then all its SQL statements will be executed and committed as individual transactions. Otherwise, its SQL statements are grouped into transactions that are terminated by a call to either the method commit or the method rollback. By default, new connections are in auto-commit mode except when you are using `store` property in which case the auto-commit will be disabled.\n\nDefault value is : `true`" + }, + "description": { + "type": "string" + }, + "disabled": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "fetch": { + "$dynamic": false, + "type": "boolean", + "title": "Whether to fetch the data from the query result to the task output. This parameter is evaluated after `fetchOne` and `store`.", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "fetchOne": { + "$dynamic": false, + "type": "boolean", + "title": "Whether to fetch only one data row from the query result to the task output. This parameter is evaluated before `store` and `fetch`.", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "fetchSize": { + "$dynamic": false, + "type": "integer", + "title": "Number of rows that should be fetched.", + "default": 10000, + "markdownDescription": "Gives the JDBC driver a hint as to the number of rows that should be fetched from the database when more rows are needed for this ResultSet object. If the fetch size specified is zero, the JDBC driver ignores the value and is free to make its own best guess as to what the fetch size should be. Ignored if `autoCommit` is false.\n\nDefault value is : `10000`" + }, + "id": { + "type": "string", + "minLength": 1, + "pattern": "^[a-zA-Z0-9][a-zA-Z0-9_-]*" + }, + "logLevel": { + "type": "string", + "enum": ["ERROR", "WARN", "INFO", "DEBUG", "TRACE"] + }, + "password": { + "$dynamic": true, + "type": "string", + "title": "The database user's password." + }, + "retry": { + "oneOf": [ + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Constant-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Exponential-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Random-2" + } + ] + }, + "sql": { + "$dynamic": true, + "type": "string", + "title": "The SQL query to run." + }, + "store": { + "$dynamic": false, + "type": "boolean", + "title": "Whether to fetch data row(s) from the query result to a file in internal storage. File will be saved as Amazon Ion (text format). \n See \u003Ca href=\"http://amzn.github.io/ion-docs/\"\u003EAmazon Ion documentation\u003C/a\u003E This parameter is evaluated after `fetchOne` but before `fetch`.", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "timeZoneId": { + "$dynamic": false, + "type": "string", + "title": "The time zone id to use for date/time manipulation. Default value is the worker's default time zone id." + }, + "timeout": { + "type": "string", + "format": "duration" + }, + "type": { + "const": "io.kestra.plugin.jdbc.sqlserver.Query" + }, + "url": { + "$dynamic": true, + "type": "string", + "title": "The JDBC URL to connect to the database." + }, + "username": { + "$dynamic": true, + "type": "string", + "title": "The database user." + }, + "workerGroup": { + "$ref": "#/definitions/io.kestra.core.models.tasks.WorkerGroup" + } + }, + "required": ["id", "type", "url"], + "title": "Query a Microsoft SQL Server.", + "markdownDescription": "##### Examples\n\u003E Execute a query and fetch results in a task, and update another table with fetched results in a different task.\n```yaml\ntasks:\n - id: select\n type: io.kestra.plugin.jdbc.sqlserver.Query\n url: jdbc:sqlserver://localhost:41433;trustServerCertificate=true\n username: sql_server_user\n password: sql_server_passwd\n sql: select * from source\n fetch: true\n - id: generate-update\n type: io.kestra.plugin.jdbc.sqlserver.Query\n url: jdbc:sqlserver://localhost:41433;trustServerCertificate=true\n username: sql_server_user\n password: sql_server_passwd\n sql: \"{% for row in outputs.update.rows %} INSERT INTO destination (year_month, store_code, update_date) values ({{row.year_month}}, {{row.store_code}}, '{{row.date}}'); {% endfor %}\"\n```" + }, + "io.kestra.plugin.jdbc.sqlserver.Trigger": { + "type": "object", + "properties": { + "conditions": { + "$dynamic": false, + "title": "List of conditions in order to limit the flow trigger.", + "type": "array", + "items": { + "oneOf": [ + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.DateTimeBetweenCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.DayWeekCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.DayWeekInMonthCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.ExecutionFlowCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.ExecutionLabelsCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.ExecutionNamespaceCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.ExecutionOutputsCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.ExecutionStatusCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.ExpressionCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.FlowCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.FlowNamespaceCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.HasRetryAttemptCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.MultipleCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.NotCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.OrCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.PublicHolidayCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.TimeBetweenCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.WeekendCondition" + }, + { + "$dynamic": false + } + ] + } + ] + } + }, + "description": { + "type": "string" + }, + "disabled": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "fetch": { + "$dynamic": false, + "type": "boolean", + "title": "Whether to fetch the data from the query result to the task output. This parameter is evaluated after `fetchOne` and `store`.", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "fetchOne": { + "$dynamic": false, + "type": "boolean", + "title": "Whether to fetch only one data row from the query result to the task output. This parameter is evaluated before `store` and `fetch`.", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "fetchSize": { + "$dynamic": false, + "type": "integer", + "title": "Number of rows that should be fetched.", + "default": 10000, + "markdownDescription": "Gives the JDBC driver a hint as to the number of rows that should be fetched from the database when more rows are needed for this ResultSet object. If the fetch size specified is zero, the JDBC driver ignores the value and is free to make its own best guess as to what the fetch size should be. Ignored if `autoCommit` is false.\n\nDefault value is : `10000`" + }, + "id": { + "type": "string", + "title": "A unique ID for the whole flow.", + "minLength": 1, + "pattern": "^[a-zA-Z0-9][a-zA-Z0-9_-]*" + }, + "interval": { + "$dynamic": false, + "type": "string", + "format": "duration", + "title": "Interval between polling.", + "default": 60, + "markdownDescription": "The interval between 2 different polls of schedule, this can avoid to overload the remote system with too many calls. For most of the triggers that depend on external systems, a minimal interval must be at least PT30S.\nSee [ISO_8601 Durations](https://en.wikipedia.org/wiki/ISO_8601#Durations) for more information of available interval values.\n\nDefault value is : `60.000000000`" + }, + "labels": { + "title": "The labels to pass to the execution created.", + "type": "array", + "items": { + "$ref": "#/definitions/io.kestra.core.models.Label" + } + }, + "logLevel": { + "type": "string", + "enum": ["ERROR", "WARN", "INFO", "DEBUG", "TRACE"] + }, + "password": { + "$dynamic": true, + "type": "string", + "title": "The database user's password." + }, + "sql": { + "$dynamic": true, + "type": "string", + "title": "The SQL query to run." + }, + "stopAfter": { + "$dynamic": false, + "title": "List of execution states after which a trigger should be stopped (a.k.a. disabled).", + "type": "array", + "items": { + "$dynamic": false, + "type": "string", + "enum": [ + "CREATED", + "RUNNING", + "PAUSED", + "RESTARTED", + "KILLING", + "SUCCESS", + "WARNING", + "FAILED", + "KILLED", + "CANCELLED", + "QUEUED", + "RETRYING", + "RETRIED" + ] + } + }, + "store": { + "$dynamic": false, + "type": "boolean", + "title": "Whether to fetch data row(s) from the query result to a file in internal storage. File will be saved as Amazon Ion (text format). \n See \u003Ca href=\"http://amzn.github.io/ion-docs/\"\u003EAmazon Ion documentation\u003C/a\u003E This parameter is evaluated after `fetchOne` but before `fetch`.", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "timeZoneId": { + "$dynamic": false, + "type": "string", + "title": "The time zone id to use for date/time manipulation. Default value is the worker's default time zone id." + }, + "type": { + "const": "io.kestra.plugin.jdbc.sqlserver.Trigger" + }, + "url": { + "$dynamic": true, + "type": "string", + "title": "The JDBC URL to connect to the database." + }, + "username": { + "$dynamic": true, + "type": "string", + "title": "The database user." + }, + "workerGroup": { + "$ref": "#/definitions/io.kestra.core.models.tasks.WorkerGroup" + } + }, + "required": ["id", "type", "url"], + "title": "Wait for query on a Microsoft SQL Server database.", + "markdownDescription": "##### Examples\n\u003E Wait for a SQL query to return results, and then iterate through rows.\n```yaml\nid: jdbc-trigger\nnamespace: company.team\n\ntasks:\n - id: each\n type: io.kestra.plugin.core.flow.EachSequential\n tasks:\n - id: return\n type: io.kestra.plugin.core.debug.Return\n format: \"{{ json(taskrun.value) }}\"\n value: \"{{ trigger.rows }}\"\n\ntriggers:\n - id: watch\n type: io.kestra.plugin.jdbc.sqlserver.Trigger\n interval: \"PT5M\"\n url: jdbc:sqlserver://localhost:41433;trustServerCertificate=true\n username: sql_server_user\n password: sql_server_passwd\n sql: \"SELECT * FROM my_table\"\n fetch: true\n```" + }, + "io.kestra.plugin.jdbc.sybase.Query": { + "type": "object", + "properties": { + "allowFailure": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "autoCommit": { + "$dynamic": false, + "type": "boolean", + "title": "Whether autocommit is enabled.", + "default": true, + "markdownDescription": "Sets this connection's auto-commit mode to the given state. If a connection is in auto-commit mode, then all its SQL statements will be executed and committed as individual transactions. Otherwise, its SQL statements are grouped into transactions that are terminated by a call to either the method commit or the method rollback. By default, new connections are in auto-commit mode except when you are using `store` property in which case the auto-commit will be disabled.\n\nDefault value is : `true`" + }, + "description": { + "type": "string" + }, + "disabled": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "fetch": { + "$dynamic": false, + "type": "boolean", + "title": "Whether to fetch the data from the query result to the task output. This parameter is evaluated after `fetchOne` and `store`.", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "fetchOne": { + "$dynamic": false, + "type": "boolean", + "title": "Whether to fetch only one data row from the query result to the task output. This parameter is evaluated before `store` and `fetch`.", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "fetchSize": { + "$dynamic": false, + "type": "integer", + "title": "Number of rows that should be fetched.", + "default": 10000, + "markdownDescription": "Gives the JDBC driver a hint as to the number of rows that should be fetched from the database when more rows are needed for this ResultSet object. If the fetch size specified is zero, the JDBC driver ignores the value and is free to make its own best guess as to what the fetch size should be. Ignored if `autoCommit` is false.\n\nDefault value is : `10000`" + }, + "id": { + "type": "string", + "minLength": 1, + "pattern": "^[a-zA-Z0-9][a-zA-Z0-9_-]*" + }, + "logLevel": { + "type": "string", + "enum": ["ERROR", "WARN", "INFO", "DEBUG", "TRACE"] + }, + "password": { + "$dynamic": true, + "type": "string", + "title": "The database user's password." + }, + "retry": { + "oneOf": [ + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Constant-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Exponential-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Random-2" + } + ] + }, + "sql": { + "$dynamic": true, + "type": "string", + "title": "The SQL query to run." + }, + "store": { + "$dynamic": false, + "type": "boolean", + "title": "Whether to fetch data row(s) from the query result to a file in internal storage. File will be saved as Amazon Ion (text format). \n See \u003Ca href=\"http://amzn.github.io/ion-docs/\"\u003EAmazon Ion documentation\u003C/a\u003E This parameter is evaluated after `fetchOne` but before `fetch`.", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "timeZoneId": { + "$dynamic": false, + "type": "string", + "title": "The time zone id to use for date/time manipulation. Default value is the worker's default time zone id." + }, + "timeout": { + "type": "string", + "format": "duration" + }, + "type": { + "const": "io.kestra.plugin.jdbc.sybase.Query" + }, + "url": { + "$dynamic": true, + "type": "string", + "title": "The JDBC URL to connect to the database." + }, + "username": { + "$dynamic": true, + "type": "string", + "title": "The database user." + }, + "workerGroup": { + "$ref": "#/definitions/io.kestra.core.models.tasks.WorkerGroup" + } + }, + "required": ["id", "type", "url"], + "title": "Query a Sybase database.", + "markdownDescription": "##### Examples\n\u003E Send a SQL query to a Sybase Database and fetch a row as output.\n```yaml\nurl: jdbc:sybase:Tds:127.0.0.1:5000/\nusername: syb_user\npassword: syb_passwd\nsql: select * from syb_types\nfetchOne: true\n```" + }, + "io.kestra.plugin.jdbc.sybase.Trigger": { + "type": "object", + "properties": { + "conditions": { + "$dynamic": false, + "title": "List of conditions in order to limit the flow trigger.", + "type": "array", + "items": { + "oneOf": [ + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.DateTimeBetweenCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.DayWeekCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.DayWeekInMonthCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.ExecutionFlowCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.ExecutionLabelsCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.ExecutionNamespaceCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.ExecutionOutputsCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.ExecutionStatusCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.ExpressionCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.FlowCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.FlowNamespaceCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.HasRetryAttemptCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.MultipleCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.NotCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.OrCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.PublicHolidayCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.TimeBetweenCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.WeekendCondition" + }, + { + "$dynamic": false + } + ] + } + ] + } + }, + "description": { + "type": "string" + }, + "disabled": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "fetch": { + "$dynamic": false, + "type": "boolean", + "title": "Whether to fetch the data from the query result to the task output. This parameter is evaluated after `fetchOne` and `store`.", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "fetchOne": { + "$dynamic": false, + "type": "boolean", + "title": "Whether to fetch only one data row from the query result to the task output. This parameter is evaluated before `store` and `fetch`.", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "fetchSize": { + "$dynamic": false, + "type": "integer", + "title": "Number of rows that should be fetched.", + "default": 10000, + "markdownDescription": "Gives the JDBC driver a hint as to the number of rows that should be fetched from the database when more rows are needed for this ResultSet object. If the fetch size specified is zero, the JDBC driver ignores the value and is free to make its own best guess as to what the fetch size should be. Ignored if `autoCommit` is false.\n\nDefault value is : `10000`" + }, + "id": { + "type": "string", + "title": "A unique ID for the whole flow.", + "minLength": 1, + "pattern": "^[a-zA-Z0-9][a-zA-Z0-9_-]*" + }, + "interval": { + "$dynamic": false, + "type": "string", + "format": "duration", + "title": "Interval between polling.", + "default": 60, + "markdownDescription": "The interval between 2 different polls of schedule, this can avoid to overload the remote system with too many calls. For most of the triggers that depend on external systems, a minimal interval must be at least PT30S.\nSee [ISO_8601 Durations](https://en.wikipedia.org/wiki/ISO_8601#Durations) for more information of available interval values.\n\nDefault value is : `60.000000000`" + }, + "labels": { + "title": "The labels to pass to the execution created.", + "type": "array", + "items": { + "$ref": "#/definitions/io.kestra.core.models.Label" + } + }, + "logLevel": { + "type": "string", + "enum": ["ERROR", "WARN", "INFO", "DEBUG", "TRACE"] + }, + "password": { + "$dynamic": true, + "type": "string", + "title": "The database user's password." + }, + "sql": { + "$dynamic": true, + "type": "string", + "title": "The SQL query to run." + }, + "stopAfter": { + "$dynamic": false, + "title": "List of execution states after which a trigger should be stopped (a.k.a. disabled).", + "type": "array", + "items": { + "$dynamic": false, + "type": "string", + "enum": [ + "CREATED", + "RUNNING", + "PAUSED", + "RESTARTED", + "KILLING", + "SUCCESS", + "WARNING", + "FAILED", + "KILLED", + "CANCELLED", + "QUEUED", + "RETRYING", + "RETRIED" + ] + } + }, + "store": { + "$dynamic": false, + "type": "boolean", + "title": "Whether to fetch data row(s) from the query result to a file in internal storage. File will be saved as Amazon Ion (text format). \n See \u003Ca href=\"http://amzn.github.io/ion-docs/\"\u003EAmazon Ion documentation\u003C/a\u003E This parameter is evaluated after `fetchOne` but before `fetch`.", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "timeZoneId": { + "$dynamic": false, + "type": "string", + "title": "The time zone id to use for date/time manipulation. Default value is the worker's default time zone id." + }, + "type": { + "const": "io.kestra.plugin.jdbc.sybase.Trigger" + }, + "url": { + "$dynamic": true, + "type": "string", + "title": "The JDBC URL to connect to the database." + }, + "username": { + "$dynamic": true, + "type": "string", + "title": "The database user." + }, + "workerGroup": { + "$ref": "#/definitions/io.kestra.core.models.tasks.WorkerGroup" + } + }, + "required": ["id", "type", "url"], + "title": "Wait for query on a Sybase database.", + "markdownDescription": "##### Examples\n\u003E Wait for a SQL query to return results, and then iterate through rows.\n```yaml\nid: jdbc-trigger\nnamespace: company.team\n\ntasks:\n - id: each\n type: io.kestra.plugin.core.flow.EachSequential\n tasks:\n - id: return\n type: io.kestra.plugin.core.debug.Return\n format: \"{{ json(taskrun.value) }}\"\n value: \"{{ trigger.rows }}\"\n\ntriggers:\n - id: watch\n type: io.kestra.plugin.jdbc.sybase.Trigger\n interval: \"PT5M\"\n url: jdbc:sybase:Tds:127.0.0.1:5000/\n username: syb_user\n password: syb_passwd\n sql: \"SELECT * FROM my_table\"\n fetch: true\n```" + }, + "io.kestra.plugin.jdbc.trino.Query": { + "type": "object", + "properties": { + "allowFailure": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "autoCommit": { + "$dynamic": false, + "type": "boolean", + "title": "Whether autocommit is enabled.", + "default": true, + "markdownDescription": "Sets this connection's auto-commit mode to the given state. If a connection is in auto-commit mode, then all its SQL statements will be executed and committed as individual transactions. Otherwise, its SQL statements are grouped into transactions that are terminated by a call to either the method commit or the method rollback. By default, new connections are in auto-commit mode except when you are using `store` property in which case the auto-commit will be disabled.\n\nDefault value is : `true`" + }, + "description": { + "type": "string" + }, + "disabled": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "fetch": { + "$dynamic": false, + "type": "boolean", + "title": "Whether to fetch the data from the query result to the task output. This parameter is evaluated after `fetchOne` and `store`.", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "fetchOne": { + "$dynamic": false, + "type": "boolean", + "title": "Whether to fetch only one data row from the query result to the task output. This parameter is evaluated before `store` and `fetch`.", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "fetchSize": { + "$dynamic": false, + "type": "integer", + "title": "Number of rows that should be fetched.", + "default": 10000, + "markdownDescription": "Gives the JDBC driver a hint as to the number of rows that should be fetched from the database when more rows are needed for this ResultSet object. If the fetch size specified is zero, the JDBC driver ignores the value and is free to make its own best guess as to what the fetch size should be. Ignored if `autoCommit` is false.\n\nDefault value is : `10000`" + }, + "id": { + "type": "string", + "minLength": 1, + "pattern": "^[a-zA-Z0-9][a-zA-Z0-9_-]*" + }, + "logLevel": { + "type": "string", + "enum": ["ERROR", "WARN", "INFO", "DEBUG", "TRACE"] + }, + "password": { + "$dynamic": true, + "type": "string", + "title": "The database user's password." + }, + "retry": { + "oneOf": [ + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Constant-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Exponential-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Random-2" + } + ] + }, + "sql": { + "$dynamic": true, + "type": "string", + "title": "The SQL query to run." + }, + "store": { + "$dynamic": false, + "type": "boolean", + "title": "Whether to fetch data row(s) from the query result to a file in internal storage. File will be saved as Amazon Ion (text format). \n See \u003Ca href=\"http://amzn.github.io/ion-docs/\"\u003EAmazon Ion documentation\u003C/a\u003E This parameter is evaluated after `fetchOne` but before `fetch`.", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "timeZoneId": { + "$dynamic": false, + "type": "string", + "title": "The time zone id to use for date/time manipulation. Default value is the worker's default time zone id." + }, + "timeout": { + "type": "string", + "format": "duration" + }, + "type": { + "const": "io.kestra.plugin.jdbc.trino.Query" + }, + "url": { + "$dynamic": true, + "type": "string", + "title": "The JDBC URL to connect to the database." + }, + "username": { + "$dynamic": true, + "type": "string", + "title": "The database user." + }, + "workerGroup": { + "$ref": "#/definitions/io.kestra.core.models.tasks.WorkerGroup" + } + }, + "required": ["id", "type", "url"], + "title": "Query data using Trino Query Engine. Make sure NOT to include semicolon at the end of your SQL query. Adding semicolon at the end will result in an error. If you want to test this integration, search for Trino in Blueprints - you'll find detailed instructions there.", + "markdownDescription": "##### Examples\n\u003E Execute a query and fetch results to pass it to downstream tasks.\n```yaml\ntasks:\n - id: analyzeOrders\n type: io.kestra.plugin.jdbc.trino.Query\n url: jdbc:trino://localhost:8080/tpch\n username: trino_user\n password: trino_passwd\n sql: |\n select orderpriority as priority, sum(totalprice) as total\n from tpch.tiny.orders\n group by orderpriority\n order by orderpriority\n fetch: true\n store: true\n - id: csvReport\n type: io.kestra.plugin.serdes.csv.IonToCsv\n from: \"{{ outputs.analyzeOrders.uri }}\"\n```" + }, + "io.kestra.plugin.jdbc.trino.Trigger": { + "type": "object", + "properties": { + "conditions": { + "$dynamic": false, + "title": "List of conditions in order to limit the flow trigger.", + "type": "array", + "items": { + "oneOf": [ + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.DateTimeBetweenCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.DayWeekCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.DayWeekInMonthCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.ExecutionFlowCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.ExecutionLabelsCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.ExecutionNamespaceCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.ExecutionOutputsCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.ExecutionStatusCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.ExpressionCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.FlowCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.FlowNamespaceCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.HasRetryAttemptCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.MultipleCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.NotCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.OrCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.PublicHolidayCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.TimeBetweenCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.WeekendCondition" + }, + { + "$dynamic": false + } + ] + } + ] + } + }, + "description": { + "type": "string" + }, + "disabled": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "fetch": { + "$dynamic": false, + "type": "boolean", + "title": "Whether to fetch the data from the query result to the task output. This parameter is evaluated after `fetchOne` and `store`.", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "fetchOne": { + "$dynamic": false, + "type": "boolean", + "title": "Whether to fetch only one data row from the query result to the task output. This parameter is evaluated before `store` and `fetch`.", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "fetchSize": { + "$dynamic": false, + "type": "integer", + "title": "Number of rows that should be fetched.", + "default": 10000, + "markdownDescription": "Gives the JDBC driver a hint as to the number of rows that should be fetched from the database when more rows are needed for this ResultSet object. If the fetch size specified is zero, the JDBC driver ignores the value and is free to make its own best guess as to what the fetch size should be. Ignored if `autoCommit` is false.\n\nDefault value is : `10000`" + }, + "id": { + "type": "string", + "title": "A unique ID for the whole flow.", + "minLength": 1, + "pattern": "^[a-zA-Z0-9][a-zA-Z0-9_-]*" + }, + "interval": { + "$dynamic": false, + "type": "string", + "format": "duration", + "title": "Interval between polling.", + "default": 60, + "markdownDescription": "The interval between 2 different polls of schedule, this can avoid to overload the remote system with too many calls. For most of the triggers that depend on external systems, a minimal interval must be at least PT30S.\nSee [ISO_8601 Durations](https://en.wikipedia.org/wiki/ISO_8601#Durations) for more information of available interval values.\n\nDefault value is : `60.000000000`" + }, + "labels": { + "title": "The labels to pass to the execution created.", + "type": "array", + "items": { + "$ref": "#/definitions/io.kestra.core.models.Label" + } + }, + "logLevel": { + "type": "string", + "enum": ["ERROR", "WARN", "INFO", "DEBUG", "TRACE"] + }, + "password": { + "$dynamic": true, + "type": "string", + "title": "The database user's password." + }, + "sql": { + "$dynamic": true, + "type": "string", + "title": "The SQL query to run." + }, + "stopAfter": { + "$dynamic": false, + "title": "List of execution states after which a trigger should be stopped (a.k.a. disabled).", + "type": "array", + "items": { + "$dynamic": false, + "type": "string", + "enum": [ + "CREATED", + "RUNNING", + "PAUSED", + "RESTARTED", + "KILLING", + "SUCCESS", + "WARNING", + "FAILED", + "KILLED", + "CANCELLED", + "QUEUED", + "RETRYING", + "RETRIED" + ] + } + }, + "store": { + "$dynamic": false, + "type": "boolean", + "title": "Whether to fetch data row(s) from the query result to a file in internal storage. File will be saved as Amazon Ion (text format). \n See \u003Ca href=\"http://amzn.github.io/ion-docs/\"\u003EAmazon Ion documentation\u003C/a\u003E This parameter is evaluated after `fetchOne` but before `fetch`.", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "timeZoneId": { + "$dynamic": false, + "type": "string", + "title": "The time zone id to use for date/time manipulation. Default value is the worker's default time zone id." + }, + "type": { + "const": "io.kestra.plugin.jdbc.trino.Trigger" + }, + "url": { + "$dynamic": true, + "type": "string", + "title": "The JDBC URL to connect to the database." + }, + "username": { + "$dynamic": true, + "type": "string", + "title": "The database user." + }, + "workerGroup": { + "$ref": "#/definitions/io.kestra.core.models.tasks.WorkerGroup" + } + }, + "required": ["id", "type", "url"], + "title": "Wait for query on a Trino database.", + "markdownDescription": "##### Examples\n\u003E Wait for a SQL query to return results, and then iterate through rows.\n```yaml\nid: jdbc-trigger\nnamespace: company.team\n\ntasks:\n - id: each\n type: io.kestra.plugin.core.flow.EachSequential\n tasks:\n - id: return\n type: io.kestra.plugin.core.debug.Return\n format: \"{{ json(taskrun.value) }}\"\n value: \"{{ trigger.rows }}\"\n\ntriggers:\n - id: watch\n type: io.kestra.plugin.jdbc.trino.Trigger\n interval: \"PT5M\"\n url: jdbc:trino://localhost:8080/tpch\n username: trino_user\n password: trino_passwd\n sql: \"SELECT * FROM my_table\"\n fetch: true\n```" + }, + "io.kestra.plugin.jdbc.vectorwise.Batch": { + "type": "object", + "properties": { + "allowFailure": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "chunk": { + "$dynamic": true, + "type": "integer", + "title": "The size of chunk for every bulk request.", + "default": 1000, + "markdownDescription": "Default value is : `1000`" + }, + "columns": { + "$dynamic": true, + "title": "The columns to be inserted.", + "markdownDescription": "If not provided, `?` count need to match the `from` number of columns.", + "type": "array", + "items": { + "$dynamic": true, + "type": "string" + } + }, + "description": { + "type": "string" + }, + "disabled": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "from": { + "$dynamic": true, + "type": "string", + "title": "Source file URI" + }, + "id": { + "type": "string", + "minLength": 1, + "pattern": "^[a-zA-Z0-9][a-zA-Z0-9_-]*" + }, + "logLevel": { + "type": "string", + "enum": ["ERROR", "WARN", "INFO", "DEBUG", "TRACE"] + }, + "password": { + "$dynamic": true, + "type": "string", + "title": "The database user's password." + }, + "retry": { + "oneOf": [ + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Constant-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Exponential-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Random-2" + } + ] + }, + "sql": { + "$dynamic": true, + "type": "string", + "title": "Insert query to be executed.", + "markdownDescription": "The query must have as many question marks as the number of columns in the table.\nExample: 'insert into \u003Ctable_name\u003E values( ? , ? , ? )' for 3 columns.\nIn case you do not want all columns, you need to specify it in the query in the columns property\nExample: 'insert into \u003Ctable_name\u003E (id, name) values( ? , ? )' for inserting data into 2 columns: 'id' and 'name'." + }, + "timeZoneId": { + "$dynamic": false, + "type": "string", + "title": "The time zone id to use for date/time manipulation. Default value is the worker's default time zone id." + }, + "timeout": { + "type": "string", + "format": "duration" + }, + "type": { + "const": "io.kestra.plugin.jdbc.vectorwise.Batch" + }, + "url": { + "$dynamic": true, + "type": "string", + "title": "The JDBC URL to connect to the database." + }, + "username": { + "$dynamic": true, + "type": "string", + "title": "The database user." + }, + "workerGroup": { + "$ref": "#/definitions/io.kestra.core.models.tasks.WorkerGroup" + } + }, + "required": ["from", "id", "sql", "type", "url"], + "title": "Execute a batch query on a Vectorwise server.", + "markdownDescription": "##### Examples\n\u003E Fetch rows from a table and bulk insert to another one.\n```yaml\ntasks:\n - id: query\n type: io.kestra.plugin.jdbc.vectorwise.Query\n url: jdbc:vectorwise://dev:port/base\n username: admin\n password: admin_passwd\n sql: |\n SELECT *\n FROM xref\n LIMIT 1500;\n store: true\n - id: update\n type: io.kestra.plugin.jdbc.vectorwise.Batch\n from: \"{{ outputs.query.uri }}\"\n url: jdbc:vectorwise://prod:port/base\n username: admin\n password: admin_passwd\n sql: insert into xref values( ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ? )\n```" + }, + "io.kestra.plugin.jdbc.vectorwise.Query": { + "type": "object", + "properties": { + "allowFailure": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "autoCommit": { + "$dynamic": false, + "type": "boolean", + "title": "Whether autocommit is enabled.", + "default": true, + "markdownDescription": "Sets this connection's auto-commit mode to the given state. If a connection is in auto-commit mode, then all its SQL statements will be executed and committed as individual transactions. Otherwise, its SQL statements are grouped into transactions that are terminated by a call to either the method commit or the method rollback. By default, new connections are in auto-commit mode except when you are using `store` property in which case the auto-commit will be disabled.\n\nDefault value is : `true`" + }, + "description": { + "type": "string" + }, + "disabled": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "fetch": { + "$dynamic": false, + "type": "boolean", + "title": "Whether to fetch the data from the query result to the task output. This parameter is evaluated after `fetchOne` and `store`.", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "fetchOne": { + "$dynamic": false, + "type": "boolean", + "title": "Whether to fetch only one data row from the query result to the task output. This parameter is evaluated before `store` and `fetch`.", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "fetchSize": { + "$dynamic": false, + "type": "integer", + "title": "Number of rows that should be fetched.", + "default": 10000, + "markdownDescription": "Gives the JDBC driver a hint as to the number of rows that should be fetched from the database when more rows are needed for this ResultSet object. If the fetch size specified is zero, the JDBC driver ignores the value and is free to make its own best guess as to what the fetch size should be. Ignored if `autoCommit` is false.\n\nDefault value is : `10000`" + }, + "id": { + "type": "string", + "minLength": 1, + "pattern": "^[a-zA-Z0-9][a-zA-Z0-9_-]*" + }, + "logLevel": { + "type": "string", + "enum": ["ERROR", "WARN", "INFO", "DEBUG", "TRACE"] + }, + "password": { + "$dynamic": true, + "type": "string", + "title": "The database user's password." + }, + "retry": { + "oneOf": [ + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Constant-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Exponential-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Random-2" + } + ] + }, + "sql": { + "$dynamic": true, + "type": "string", + "title": "The SQL query to run." + }, + "store": { + "$dynamic": false, + "type": "boolean", + "title": "Whether to fetch data row(s) from the query result to a file in internal storage. File will be saved as Amazon Ion (text format). \n See \u003Ca href=\"http://amzn.github.io/ion-docs/\"\u003EAmazon Ion documentation\u003C/a\u003E This parameter is evaluated after `fetchOne` but before `fetch`.", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "timeZoneId": { + "$dynamic": false, + "type": "string", + "title": "The time zone id to use for date/time manipulation. Default value is the worker's default time zone id." + }, + "timeout": { + "type": "string", + "format": "duration" + }, + "type": { + "const": "io.kestra.plugin.jdbc.vectorwise.Query" + }, + "url": { + "$dynamic": true, + "type": "string", + "title": "The JDBC URL to connect to the database." + }, + "username": { + "$dynamic": true, + "type": "string", + "title": "The database user." + }, + "workerGroup": { + "$ref": "#/definitions/io.kestra.core.models.tasks.WorkerGroup" + } + }, + "required": ["id", "type", "url"], + "title": "Query a Vectorwise database.", + "markdownDescription": "##### Examples\n\u003E Send a SQL query to a Vectorwise database and fetch a row as output.\n```yaml\nurl: jdbc:vectorwise://url:port/base\nusername: admin\npassword: admin_passwd\nsql: select * from vectorwise_types\nfetchOne: true\n```" + }, + "io.kestra.plugin.jdbc.vectorwise.Trigger": { + "type": "object", + "properties": { + "conditions": { + "$dynamic": false, + "title": "List of conditions in order to limit the flow trigger.", + "type": "array", + "items": { + "oneOf": [ + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.DateTimeBetweenCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.DayWeekCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.DayWeekInMonthCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.ExecutionFlowCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.ExecutionLabelsCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.ExecutionNamespaceCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.ExecutionOutputsCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.ExecutionStatusCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.ExpressionCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.FlowCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.FlowNamespaceCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.HasRetryAttemptCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.MultipleCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.NotCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.OrCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.PublicHolidayCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.TimeBetweenCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.WeekendCondition" + }, + { + "$dynamic": false + } + ] + } + ] + } + }, + "description": { + "type": "string" + }, + "disabled": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "fetch": { + "$dynamic": false, + "type": "boolean", + "title": "Whether to fetch the data from the query result to the task output. This parameter is evaluated after `fetchOne` and `store`.", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "fetchOne": { + "$dynamic": false, + "type": "boolean", + "title": "Whether to fetch only one data row from the query result to the task output. This parameter is evaluated before `store` and `fetch`.", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "fetchSize": { + "$dynamic": false, + "type": "integer", + "title": "Number of rows that should be fetched.", + "default": 10000, + "markdownDescription": "Gives the JDBC driver a hint as to the number of rows that should be fetched from the database when more rows are needed for this ResultSet object. If the fetch size specified is zero, the JDBC driver ignores the value and is free to make its own best guess as to what the fetch size should be. Ignored if `autoCommit` is false.\n\nDefault value is : `10000`" + }, + "id": { + "type": "string", + "title": "A unique ID for the whole flow.", + "minLength": 1, + "pattern": "^[a-zA-Z0-9][a-zA-Z0-9_-]*" + }, + "interval": { + "$dynamic": false, + "type": "string", + "format": "duration", + "title": "Interval between polling.", + "default": 60, + "markdownDescription": "The interval between 2 different polls of schedule, this can avoid to overload the remote system with too many calls. For most of the triggers that depend on external systems, a minimal interval must be at least PT30S.\nSee [ISO_8601 Durations](https://en.wikipedia.org/wiki/ISO_8601#Durations) for more information of available interval values.\n\nDefault value is : `60.000000000`" + }, + "labels": { + "title": "The labels to pass to the execution created.", + "type": "array", + "items": { + "$ref": "#/definitions/io.kestra.core.models.Label" + } + }, + "logLevel": { + "type": "string", + "enum": ["ERROR", "WARN", "INFO", "DEBUG", "TRACE"] + }, + "password": { + "$dynamic": true, + "type": "string", + "title": "The database user's password." + }, + "sql": { + "$dynamic": true, + "type": "string", + "title": "The SQL query to run." + }, + "stopAfter": { + "$dynamic": false, + "title": "List of execution states after which a trigger should be stopped (a.k.a. disabled).", + "type": "array", + "items": { + "$dynamic": false, + "type": "string", + "enum": [ + "CREATED", + "RUNNING", + "PAUSED", + "RESTARTED", + "KILLING", + "SUCCESS", + "WARNING", + "FAILED", + "KILLED", + "CANCELLED", + "QUEUED", + "RETRYING", + "RETRIED" + ] + } + }, + "store": { + "$dynamic": false, + "type": "boolean", + "title": "Whether to fetch data row(s) from the query result to a file in internal storage. File will be saved as Amazon Ion (text format). \n See \u003Ca href=\"http://amzn.github.io/ion-docs/\"\u003EAmazon Ion documentation\u003C/a\u003E This parameter is evaluated after `fetchOne` but before `fetch`.", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "timeZoneId": { + "$dynamic": false, + "type": "string", + "title": "The time zone id to use for date/time manipulation. Default value is the worker's default time zone id." + }, + "type": { + "const": "io.kestra.plugin.jdbc.vectorwise.Trigger" + }, + "url": { + "$dynamic": true, + "type": "string", + "title": "The JDBC URL to connect to the database." + }, + "username": { + "$dynamic": true, + "type": "string", + "title": "The database user." + }, + "workerGroup": { + "$ref": "#/definitions/io.kestra.core.models.tasks.WorkerGroup" + } + }, + "required": ["id", "type", "url"], + "title": "Wait for query on a Vectorwise database.", + "markdownDescription": "##### Examples\n\u003E Wait for a SQL query to return results, and then iterate through rows.\n```yaml\nid: jdbc-trigger\nnamespace: company.team\n\ntasks:\n - id: each\n type: io.kestra.plugin.core.flow.EachSequential\n tasks:\n - id: return\n type: io.kestra.plugin.core.debug.Return\n format: \"{{ json(taskrun.value) }}\"\n value: \"{{ trigger.rows }}\"\n\ntriggers:\n - id: watch\n type: io.kestra.plugin.jdbc.vectorwise.Trigger\n interval: \"PT5M\"\n url: jdbc:vectorwise://url:port/base\n username: admin\n password: admin_passwd\n sql: \"SELECT * FROM my_table\"\n fetch: true\n```" + }, + "io.kestra.plugin.jdbc.vertica.Batch": { + "type": "object", + "properties": { + "allowFailure": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "chunk": { + "$dynamic": true, + "type": "integer", + "title": "The size of chunk for every bulk request.", + "default": 1000, + "markdownDescription": "Default value is : `1000`" + }, + "columns": { + "$dynamic": true, + "title": "The columns to be inserted.", + "markdownDescription": "If not provided, `?` count need to match the `from` number of columns.", + "type": "array", + "items": { + "$dynamic": true, + "type": "string" + } + }, + "description": { + "type": "string" + }, + "disabled": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "from": { + "$dynamic": true, + "type": "string", + "title": "Source file URI" + }, + "id": { + "type": "string", + "minLength": 1, + "pattern": "^[a-zA-Z0-9][a-zA-Z0-9_-]*" + }, + "logLevel": { + "type": "string", + "enum": ["ERROR", "WARN", "INFO", "DEBUG", "TRACE"] + }, + "password": { + "$dynamic": true, + "type": "string", + "title": "The database user's password." + }, + "retry": { + "oneOf": [ + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Constant-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Exponential-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Random-2" + } + ] + }, + "sql": { + "$dynamic": true, + "type": "string", + "title": "Insert query to be executed.", + "markdownDescription": "The query must have as many question marks as the number of columns in the table.\nExample: 'insert into \u003Ctable_name\u003E values( ? , ? , ? )' for 3 columns.\nIn case you do not want all columns, you need to specify it in the query in the columns property\nExample: 'insert into \u003Ctable_name\u003E (id, name) values( ? , ? )' for inserting data into 2 columns: 'id' and 'name'." + }, + "timeZoneId": { + "$dynamic": false, + "type": "string", + "title": "The time zone id to use for date/time manipulation. Default value is the worker's default time zone id." + }, + "timeout": { + "type": "string", + "format": "duration" + }, + "type": { + "const": "io.kestra.plugin.jdbc.vertica.Batch" + }, + "url": { + "$dynamic": true, + "type": "string", + "title": "The JDBC URL to connect to the database." + }, + "username": { + "$dynamic": true, + "type": "string", + "title": "The database user." + }, + "workerGroup": { + "$ref": "#/definitions/io.kestra.core.models.tasks.WorkerGroup" + } + }, + "required": ["from", "id", "sql", "type", "url"], + "title": "Execute a batch query on a Vertica server.", + "markdownDescription": "##### Examples\n\u003E Fetch rows from a table and bulk insert to another one.\n```yaml\ntasks:\n - id: query\n type: io.kestra.plugin.jdbc.vertica.Query\n url: jdbc:vertica://dev:56982/db\n username: vertica_user\n password: vertica_passwd\n sql: |\n SELECT *\n FROM xref\n LIMIT 1500;\n fetch: true\n store: true\n - id: update\n type: io.kestra.plugin.jdbc.vertica.Batch\n from: \"{{ outputs.query.uri }}\"\n url: jdbc:vertica://prod:56982/db\n username: vertica_user\n password: vertica_passwd\n sql: insert into xref values( ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ? )\n```" + }, + "io.kestra.plugin.jdbc.vertica.Query": { + "type": "object", + "properties": { + "allowFailure": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "autoCommit": { + "$dynamic": false, + "type": "boolean", + "title": "Whether autocommit is enabled.", + "default": true, + "markdownDescription": "Sets this connection's auto-commit mode to the given state. If a connection is in auto-commit mode, then all its SQL statements will be executed and committed as individual transactions. Otherwise, its SQL statements are grouped into transactions that are terminated by a call to either the method commit or the method rollback. By default, new connections are in auto-commit mode except when you are using `store` property in which case the auto-commit will be disabled.\n\nDefault value is : `true`" + }, + "description": { + "type": "string" + }, + "disabled": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "fetch": { + "$dynamic": false, + "type": "boolean", + "title": "Whether to fetch the data from the query result to the task output. This parameter is evaluated after `fetchOne` and `store`.", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "fetchOne": { + "$dynamic": false, + "type": "boolean", + "title": "Whether to fetch only one data row from the query result to the task output. This parameter is evaluated before `store` and `fetch`.", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "fetchSize": { + "$dynamic": false, + "type": "integer", + "title": "Number of rows that should be fetched.", + "default": 10000, + "markdownDescription": "Gives the JDBC driver a hint as to the number of rows that should be fetched from the database when more rows are needed for this ResultSet object. If the fetch size specified is zero, the JDBC driver ignores the value and is free to make its own best guess as to what the fetch size should be. Ignored if `autoCommit` is false.\n\nDefault value is : `10000`" + }, + "id": { + "type": "string", + "minLength": 1, + "pattern": "^[a-zA-Z0-9][a-zA-Z0-9_-]*" + }, + "logLevel": { + "type": "string", + "enum": ["ERROR", "WARN", "INFO", "DEBUG", "TRACE"] + }, + "password": { + "$dynamic": true, + "type": "string", + "title": "The database user's password." + }, + "retry": { + "oneOf": [ + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Constant-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Exponential-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Random-2" + } + ] + }, + "sql": { + "$dynamic": true, + "type": "string", + "title": "The SQL query to run." + }, + "store": { + "$dynamic": false, + "type": "boolean", + "title": "Whether to fetch data row(s) from the query result to a file in internal storage. File will be saved as Amazon Ion (text format). \n See \u003Ca href=\"http://amzn.github.io/ion-docs/\"\u003EAmazon Ion documentation\u003C/a\u003E This parameter is evaluated after `fetchOne` but before `fetch`.", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "timeZoneId": { + "$dynamic": false, + "type": "string", + "title": "The time zone id to use for date/time manipulation. Default value is the worker's default time zone id." + }, + "timeout": { + "type": "string", + "format": "duration" + }, + "type": { + "const": "io.kestra.plugin.jdbc.vertica.Query" + }, + "url": { + "$dynamic": true, + "type": "string", + "title": "The JDBC URL to connect to the database." + }, + "username": { + "$dynamic": true, + "type": "string", + "title": "The database user." + }, + "workerGroup": { + "$ref": "#/definitions/io.kestra.core.models.tasks.WorkerGroup" + } + }, + "required": ["id", "type", "url"], + "title": "Query a Vertica server.", + "markdownDescription": "##### Examples\n\u003E Send a SQL query to a Vertica database, and fetch a row as output.\n```yaml\nurl: jdbc:vertica://127.0.0.1:56982/db\nusername: vertica_user\npassword: vertica_passwd\nsql: select * from customer\nfetchOne: true\n```" + }, + "io.kestra.plugin.jdbc.vertica.Trigger": { + "type": "object", + "properties": { + "conditions": { + "$dynamic": false, + "title": "List of conditions in order to limit the flow trigger.", + "type": "array", + "items": { + "oneOf": [ + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.DateTimeBetweenCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.DayWeekCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.DayWeekInMonthCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.ExecutionFlowCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.ExecutionLabelsCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.ExecutionNamespaceCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.ExecutionOutputsCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.ExecutionStatusCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.ExpressionCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.FlowCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.FlowNamespaceCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.HasRetryAttemptCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.MultipleCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.NotCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.OrCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.PublicHolidayCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.TimeBetweenCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.WeekendCondition" + }, + { + "$dynamic": false + } + ] + } + ] + } + }, + "description": { + "type": "string" + }, + "disabled": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "fetch": { + "$dynamic": false, + "type": "boolean", + "title": "Whether to fetch the data from the query result to the task output. This parameter is evaluated after `fetchOne` and `store`.", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "fetchOne": { + "$dynamic": false, + "type": "boolean", + "title": "Whether to fetch only one data row from the query result to the task output. This parameter is evaluated before `store` and `fetch`.", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "fetchSize": { + "$dynamic": false, + "type": "integer", + "title": "Number of rows that should be fetched.", + "default": 10000, + "markdownDescription": "Gives the JDBC driver a hint as to the number of rows that should be fetched from the database when more rows are needed for this ResultSet object. If the fetch size specified is zero, the JDBC driver ignores the value and is free to make its own best guess as to what the fetch size should be. Ignored if `autoCommit` is false.\n\nDefault value is : `10000`" + }, + "id": { + "type": "string", + "title": "A unique ID for the whole flow.", + "minLength": 1, + "pattern": "^[a-zA-Z0-9][a-zA-Z0-9_-]*" + }, + "interval": { + "$dynamic": false, + "type": "string", + "format": "duration", + "title": "Interval between polling.", + "default": 60, + "markdownDescription": "The interval between 2 different polls of schedule, this can avoid to overload the remote system with too many calls. For most of the triggers that depend on external systems, a minimal interval must be at least PT30S.\nSee [ISO_8601 Durations](https://en.wikipedia.org/wiki/ISO_8601#Durations) for more information of available interval values.\n\nDefault value is : `60.000000000`" + }, + "labels": { + "title": "The labels to pass to the execution created.", + "type": "array", + "items": { + "$ref": "#/definitions/io.kestra.core.models.Label" + } + }, + "logLevel": { + "type": "string", + "enum": ["ERROR", "WARN", "INFO", "DEBUG", "TRACE"] + }, + "password": { + "$dynamic": true, + "type": "string", + "title": "The database user's password." + }, + "sql": { + "$dynamic": true, + "type": "string", + "title": "The SQL query to run." + }, + "stopAfter": { + "$dynamic": false, + "title": "List of execution states after which a trigger should be stopped (a.k.a. disabled).", + "type": "array", + "items": { + "$dynamic": false, + "type": "string", + "enum": [ + "CREATED", + "RUNNING", + "PAUSED", + "RESTARTED", + "KILLING", + "SUCCESS", + "WARNING", + "FAILED", + "KILLED", + "CANCELLED", + "QUEUED", + "RETRYING", + "RETRIED" + ] + } + }, + "store": { + "$dynamic": false, + "type": "boolean", + "title": "Whether to fetch data row(s) from the query result to a file in internal storage. File will be saved as Amazon Ion (text format). \n See \u003Ca href=\"http://amzn.github.io/ion-docs/\"\u003EAmazon Ion documentation\u003C/a\u003E This parameter is evaluated after `fetchOne` but before `fetch`.", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "timeZoneId": { + "$dynamic": false, + "type": "string", + "title": "The time zone id to use for date/time manipulation. Default value is the worker's default time zone id." + }, + "type": { + "const": "io.kestra.plugin.jdbc.vertica.Trigger" + }, + "url": { + "$dynamic": true, + "type": "string", + "title": "The JDBC URL to connect to the database." + }, + "username": { + "$dynamic": true, + "type": "string", + "title": "The database user." + }, + "workerGroup": { + "$ref": "#/definitions/io.kestra.core.models.tasks.WorkerGroup" + } + }, + "required": ["id", "type", "url"], + "title": "Wait for query on a Vertica database.", + "markdownDescription": "##### Examples\n\u003E Wait for a SQL query to return results, and then iterate through rows.\n```yaml\nid: jdbc-trigger\nnamespace: company.team\n\ntasks:\n - id: each\n type: io.kestra.plugin.core.flow.EachSequential\n tasks:\n - id: return\n type: io.kestra.plugin.core.debug.Return\n format: \"{{ json(taskrun.value) }}\"\n value: \"{{ trigger.rows }}\"\n\ntriggers:\n - id: watch\n type: io.kestra.plugin.jdbc.vertica.Trigger\n interval: \"PT5M\"\n url: jdbc:vertica://127.0.0.1:56982/db\n username: vertica_user\n password: vertica_passwd\n sql: \"SELECT * FROM my_table\"\n fetch: true\n```" + }, + "io.kestra.plugin.jira.issues.Create": { + "type": "object", + "properties": { + "allowFailure": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "baseUrl": { + "$dynamic": true, + "type": "string", + "title": "Atlassian URL", + "minLength": 1 + }, + "description": { + "$dynamic": true, + "type": "string", + "title": "Description of the ticket to be created" + }, + "disabled": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "id": { + "type": "string", + "minLength": 1, + "pattern": "^[a-zA-Z0-9][a-zA-Z0-9_-]*" + }, + "labels": { + "$dynamic": true, + "title": "Labels associated with opened ticket", + "type": "array", + "items": { + "$dynamic": true, + "type": "string" + } + }, + "logLevel": { + "type": "string", + "enum": ["ERROR", "WARN", "INFO", "DEBUG", "TRACE"] + }, + "password": { + "$dynamic": true, + "type": "string", + "title": "Atlassian password", + "minLength": 1 + }, + "payload": { + "$dynamic": true, + "type": "string" + }, + "projectKey": { + "$dynamic": true, + "type": "string", + "title": "Atlassian project's key", + "minLength": 1 + }, + "retry": { + "oneOf": [ + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Constant-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Exponential-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Random-2" + } + ] + }, + "summary": { + "$dynamic": true, + "type": "string", + "title": "Summary of the ticket" + }, + "timeout": { + "type": "string", + "format": "duration" + }, + "type": { + "const": "io.kestra.plugin.jira.issues.Create" + }, + "username": { + "$dynamic": true, + "type": "string", + "title": "Atlassian Username", + "minLength": 1 + }, + "workerGroup": { + "$ref": "#/definitions/io.kestra.core.models.tasks.WorkerGroup" + } + }, + "required": [ + "baseUrl", + "id", + "password", + "projectKey", + "type", + "username" + ], + "title": "Create a jira ticket based on workflow execution status", + "markdownDescription": "##### Examples\n\u003E Create a jira ticket on a failed flow execution\n```yaml\nid: myflow\nnamespace: company.myteam\n\ntasks:\n - id: hello\n type: io.kestra.plugin.jira.issues.Create\n baseUrl: your-domain.atlassian.net\n username: your_email@example.com\n password: \"{{ secret('your_jira_api_token') }}\"\n projectKey: myproject\n summary: \"Workflow failed\"\n description: \"{{ execution.id }} has failed on {{ taskrun.startDate }} See the link below for more details\"\n labels:\n - bug\n - workflow\n\n```" + }, + "io.kestra.plugin.jira.issues.CreateComment": { + "type": "object", + "properties": { + "allowFailure": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "baseUrl": { + "$dynamic": true, + "type": "string", + "title": "Atlassian URL", + "minLength": 1 + }, + "body": { + "$dynamic": true, + "type": "string", + "title": "The comment's content", + "minLength": 1 + }, + "description": { + "$dynamic": true, + "type": "string", + "title": "Description of the ticket to be created" + }, + "disabled": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "id": { + "type": "string", + "minLength": 1, + "pattern": "^[a-zA-Z0-9][a-zA-Z0-9_-]*" + }, + "issueIdOrKey": { + "$dynamic": true, + "type": "string", + "title": "Jira ticket key", + "minLength": 1 + }, + "labels": { + "$dynamic": true, + "title": "Labels associated with opened ticket", + "type": "array", + "items": { + "$dynamic": true, + "type": "string" + } + }, + "logLevel": { + "type": "string", + "enum": ["ERROR", "WARN", "INFO", "DEBUG", "TRACE"] + }, + "password": { + "$dynamic": true, + "type": "string", + "title": "Atlassian password", + "minLength": 1 + }, + "payload": { + "$dynamic": true, + "type": "string" + }, + "projectKey": { + "$dynamic": true, + "type": "string", + "title": "Atlassian project's key", + "minLength": 1 + }, + "retry": { + "oneOf": [ + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Constant-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Exponential-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Random-2" + } + ] + }, + "summary": { + "$dynamic": true, + "type": "string", + "title": "Summary of the ticket" + }, + "timeout": { + "type": "string", + "format": "duration" + }, + "type": { + "const": "io.kestra.plugin.jira.issues.CreateComment" + }, + "username": { + "$dynamic": true, + "type": "string", + "title": "Atlassian Username", + "minLength": 1 + }, + "workerGroup": { + "$ref": "#/definitions/io.kestra.core.models.tasks.WorkerGroup" + } + }, + "required": [ + "baseUrl", + "body", + "id", + "issueIdOrKey", + "password", + "projectKey", + "type", + "username" + ], + "title": "Comment on a jira ticket based on workflow execution status", + "markdownDescription": "##### Examples\n\u003E Comment on a jira ticket on a failed flow execution\n```yaml\nid: myflow\nnamespace: company.myteam\n\ntasks:\n - id: create_comment_on_a_ticket\n type: io.kestra.plugin.jira.issues.CreateComment\n baseUrl: your-domain.atlassian.net\n username: your_email@example.com\n password: \"{{ secret('jira_api_token') }}\"\n projectKey: project_key\n issueIdOrKey: \"TID-53\"\n body: \"This ticket is not moving, do we need to outsource this!\"\n\n```" + }, + "io.kestra.plugin.kafka.Consume": { + "type": "object", + "properties": { + "allowFailure": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "description": { + "type": "string" + }, + "disabled": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "groupId": { + "$dynamic": true, + "type": "string", + "title": "Kafka consumer group ID.", + "markdownDescription": "Using a consumer group, we will fetch only records that haven't been consumed yet." + }, + "id": { + "type": "string", + "minLength": 1, + "pattern": "^[a-zA-Z0-9][a-zA-Z0-9_-]*" + }, + "keyDeserializer": { + "allOf": [ + { + "type": "string", + "enum": [ + "STRING", + "INTEGER", + "FLOAT", + "DOUBLE", + "LONG", + "SHORT", + "BYTE_ARRAY", + "BYTE_BUFFER", + "BYTES", + "UUID", + "VOID", + "AVRO", + "JSON" + ], + "title": "Serializer / Deserializer to use for the value", + "markdownDescription": "Lists are not supported." + }, + { + "$dynamic": true, + "title": "The deserializer used for the key.", + "default": "STRING", + "markdownDescription": "Possible values are: `STRING`, `INTEGER`, `FLOAT`, `DOUBLE`, `LONG`, `SHORT`, `BYTE_ARRAY`, `BYTE_BUFFER`, `BYTES`, `UUID`, `VOID`, `AVRO`, `JSON`.\n\nDefault value is : `STRING`" + } + ] + }, + "logLevel": { + "type": "string", + "enum": ["ERROR", "WARN", "INFO", "DEBUG", "TRACE"] + }, + "maxDuration": { + "$dynamic": false, + "type": "string", + "format": "duration", + "title": "The maximum duration to wait for new records before stopping the consumption process.", + "markdownDescription": "It's a soft limit evaluated every second." + }, + "maxRecords": { + "$dynamic": false, + "type": "integer", + "title": "The maximum number of records to fetch before stopping the consumption process.", + "markdownDescription": "It's a soft limit evaluated every second." + }, + "partitions": { + "$dynamic": false, + "title": "Topic partitions to consume messages from.", + "markdownDescription": "Manually assign a list of partitions to the consumer.", + "type": "array", + "items": { + "$dynamic": false, + "type": "integer" + } + }, + "pollDuration": { + "$dynamic": true, + "type": "string", + "format": "duration", + "title": "How often to poll for a record.", + "default": 5, + "markdownDescription": "If no records are available, the maximum wait duration to wait for new records. \n\nDefault value is : `5.000000000`" + }, + "properties": { + "$dynamic": true, + "type": "object", + "title": "Kafka connection properties.", + "markdownDescription": "The `bootstrap.servers` property is a minimal required configuration to connect to a Kafka topic.\nThis property can reference any valid [Consumer Configs](https://kafka.apache.org/documentation/#consumerconfigs) or [Producer Configs\n](https://kafka.apache.org/documentation/#producerconfigs) as key-value pairs.\n\nIf you want to pass a truststore or a keystore, you must provide a base64 encoded string for `ssl.keystore.location` and `ssl.truststore.location`." + }, + "retry": { + "oneOf": [ + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Constant-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Exponential-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Random-2" + } + ] + }, + "serdeProperties": { + "$dynamic": true, + "type": "object", + "title": "Serializer configuration", + "default": {}, + "markdownDescription": "Configuration that will be passed to serializer or deserializer. The `avro.use.logical.type.converters` is always passed when you have any values set to `true`.\n\nDefault value is : `{}`" + }, + "since": { + "$dynamic": true, + "type": "string", + "title": "Timestamp of a message to start consuming messages from.", + "markdownDescription": "By default, we consume all messages from the topics with no consumer group or depending on the configuration of the `auto.offset.reset` property. However, you can provide an arbitrary start time.\nThis property is ignored if a consumer group is used.\nIt must be a valid ISO 8601 date." + }, + "timeout": { + "type": "string", + "format": "duration" + }, + "topic": { + "$dynamic": true, + "title": "Kafka topic(s) to consume messages from.", + "markdownDescription": "It can be a string or a list of strings to consume from one or multiple topics." + }, + "topicPattern": { + "$dynamic": true, + "type": "string", + "title": "Kafka topic pattern to consume messages from.", + "markdownDescription": "Consumer will subscribe to all topics matching the specified pattern to get dynamically assigned partitions." + }, + "type": { + "const": "io.kestra.plugin.kafka.Consume" + }, + "valueDeserializer": { + "allOf": [ + { + "type": "string", + "enum": [ + "STRING", + "INTEGER", + "FLOAT", + "DOUBLE", + "LONG", + "SHORT", + "BYTE_ARRAY", + "BYTE_BUFFER", + "BYTES", + "UUID", + "VOID", + "AVRO", + "JSON" + ], + "title": "Serializer / Deserializer to use for the value", + "markdownDescription": "Lists are not supported." + }, + { + "$dynamic": true, + "title": "The deserializer used for the value.", + "default": "STRING", + "markdownDescription": "Possible values are: `STRING`, `INTEGER`, `FLOAT`, `DOUBLE`, `LONG`, `SHORT`, `BYTE_ARRAY`, `BYTE_BUFFER`, `BYTES`, `UUID`, `VOID`, `AVRO`, `JSON`.\n\nDefault value is : `STRING`" + } + ] + }, + "workerGroup": { + "$ref": "#/definitions/io.kestra.core.models.tasks.WorkerGroup" + } + }, + "required": ["id", "properties", "type"], + "title": "Consume messages from one or more Kafka topics.", + "markdownDescription": "##### Examples\n\u003E \n```yaml\ntopic: test_kestra\nproperties:\n bootstrap.servers: localhost:9092\nserdeProperties:\n schema.registry.url: http://localhost:8085\nkeyDeserializer: STRING\nvalueDeserializer: AVRO\n```\n\n\u003E Connect to a Kafka cluster with SSL.\n```yaml\nproperties:\n security.protocol: SSL\n bootstrap.servers: localhost:19092\n ssl.key.password: my-ssl-password\n ssl.keystore.type: PKCS12\n ssl.keystore.location: my-base64-encoded-keystore\n ssl.keystore.password: my-ssl-password\n ssl.truststore.location: my-base64-encoded-truststore\n ssl.truststore.password: my-ssl-password\ntopic:\n- kestra_workerinstance\nkeyDeserializer: STRING\nvalueDeserializer: STRING\n```" + }, + "io.kestra.plugin.kafka.Produce": { + "type": "object", + "properties": { + "allowFailure": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "description": { + "type": "string" + }, + "disabled": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "from": { + "$dynamic": true, + "title": "The content of the message to be sent to Kafka.", + "markdownDescription": "Can be a Kestra internal storage URI, a map (i.e. a list of key-value pairs) or a list of maps. The following keys are supported: `key`, `value`, `partition`, `timestamp`, and `headers`.", + "oneOf": [ + { + "type": "string" + }, + { + "type": "array", + "items": {} + }, + { + "type": "object" + } + ] + }, + "id": { + "type": "string", + "minLength": 1, + "pattern": "^[a-zA-Z0-9][a-zA-Z0-9_-]*" + }, + "keyAvroSchema": { + "$dynamic": true, + "type": "string", + "title": "Avro Schema if the key is set to `AVRO` type." + }, + "keySerializer": { + "allOf": [ + { + "type": "string", + "enum": [ + "STRING", + "INTEGER", + "FLOAT", + "DOUBLE", + "LONG", + "SHORT", + "BYTE_ARRAY", + "BYTE_BUFFER", + "BYTES", + "UUID", + "VOID", + "AVRO", + "JSON" + ], + "title": "Serializer / Deserializer to use for the value", + "markdownDescription": "Lists are not supported." + }, + { + "$dynamic": true, + "title": "The serializer used for the key.", + "default": "STRING", + "markdownDescription": "Possible values are: `STRING`, `INTEGER`, `FLOAT`, `DOUBLE`, `LONG`, `SHORT`, `BYTE_ARRAY`, `BYTE_BUFFER`, `BYTES`, `UUID`, `VOID`, `AVRO`, `JSON`.\n\nDefault value is : `STRING`" + } + ] + }, + "logLevel": { + "type": "string", + "enum": ["ERROR", "WARN", "INFO", "DEBUG", "TRACE"] + }, + "properties": { + "$dynamic": true, + "type": "object", + "title": "Kafka connection properties.", + "markdownDescription": "The `bootstrap.servers` property is a minimal required configuration to connect to a Kafka topic.\nThis property can reference any valid [Consumer Configs](https://kafka.apache.org/documentation/#consumerconfigs) or [Producer Configs\n](https://kafka.apache.org/documentation/#producerconfigs) as key-value pairs.\n\nIf you want to pass a truststore or a keystore, you must provide a base64 encoded string for `ssl.keystore.location` and `ssl.truststore.location`." + }, + "retry": { + "oneOf": [ + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Constant-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Exponential-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Random-2" + } + ] + }, + "serdeProperties": { + "$dynamic": true, + "type": "object", + "title": "Serializer configuration", + "default": {}, + "markdownDescription": "Configuration that will be passed to serializer or deserializer. The `avro.use.logical.type.converters` is always passed when you have any values set to `true`.\n\nDefault value is : `{}`" + }, + "timeout": { + "type": "string", + "format": "duration" + }, + "topic": { + "$dynamic": true, + "type": "string", + "title": "Kafka topic to which the message should be sent.", + "markdownDescription": "Could also be passed inside the `from` property using the key `topic`." + }, + "transactional": { + "$dynamic": false, + "type": "boolean", + "title": "Whether the producer should be transactional.", + "default": true, + "markdownDescription": "Default value is : `true`" + }, + "type": { + "const": "io.kestra.plugin.kafka.Produce" + }, + "valueAvroSchema": { + "$dynamic": true, + "type": "string", + "title": "Avro Schema if the value is set to `AVRO` type." + }, + "valueSerializer": { + "allOf": [ + { + "type": "string", + "enum": [ + "STRING", + "INTEGER", + "FLOAT", + "DOUBLE", + "LONG", + "SHORT", + "BYTE_ARRAY", + "BYTE_BUFFER", + "BYTES", + "UUID", + "VOID", + "AVRO", + "JSON" + ], + "title": "Serializer / Deserializer to use for the value", + "markdownDescription": "Lists are not supported." + }, + { + "$dynamic": true, + "title": "The serializer used for the value.", + "default": "STRING", + "markdownDescription": "Possible values are: `STRING`, `INTEGER`, `FLOAT`, `DOUBLE`, `LONG`, `SHORT`, `BYTE_ARRAY`, `BYTE_BUFFER`, `BYTES`, `UUID`, `VOID`, `AVRO`, `JSON`.\n\nDefault value is : `STRING`" + } + ] + }, + "workerGroup": { + "$ref": "#/definitions/io.kestra.core.models.tasks.WorkerGroup" + } + }, + "required": ["from", "id", "properties", "type"], + "title": "Send a message to a Kafka topic.", + "markdownDescription": "##### Examples\n\u003E Read a CSV file, transform it and send it to Kafka.\n```yaml\nid: send_message_to_kafka\nnamespace: company.team\ninputs:\n - id: file\n type: FILE\n description: A CSV file with columns: id, username, tweet, and timestamp.\n\ntasks:\n - id: csv_to_ion\n type: io.kestra.plugin.serdes.csv.CsvToIon\n from: \"{{ inputs.file }}\"\n\n - id: ion_to_avro_schema\n type: io.kestra.plugin.scripts.nashorn.FileTransform\n from: \"{{ outputs.csvReader.uri }}\"\n script: |\n var result = {\n \"key\": row.id,\n \"value\": {\n \"username\": row.username,\n \"tweet\": row.tweet\n },\n \"timestamp\": row.timestamp,\n \"headers\": {\n \"key\": \"value\"\n }\n };\n row = result\n\n - id: avro_to_kafka\n type: io.kestra.plugin.kafka.Produce\n from: \"{{ outputs.ion_to_avro_schema.uri }}\"\n keySerializer: STRING\n properties:\n bootstrap.servers: localhost:9092\n serdeProperties:\n schema.registry.url: http://localhost:8085\n topic: test_kestra\n valueAvroSchema: |\n {\"type\":\"record\",\"name\":\"twitter_schema\",\"namespace\":\"io.kestra.examples\",\"fields\":[{\"name\":\"username\",\"type\":\"string\"},{\"name\":\"tweet\",\"type\":\"string\"}]}\n valueSerializer: AVRO\n\n```" + }, + "io.kestra.plugin.kafka.RealtimeTrigger": { + "type": "object", + "properties": { + "conditions": { + "$dynamic": false, + "title": "List of conditions in order to limit the flow trigger.", + "type": "array", + "items": { + "oneOf": [ + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.DateTimeBetweenCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.DayWeekCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.DayWeekInMonthCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.ExecutionFlowCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.ExecutionLabelsCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.ExecutionNamespaceCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.ExecutionOutputsCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.ExecutionStatusCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.ExpressionCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.FlowCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.FlowNamespaceCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.HasRetryAttemptCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.MultipleCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.NotCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.OrCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.PublicHolidayCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.TimeBetweenCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.WeekendCondition" + }, + { + "$dynamic": false + } + ] + } + ] + } + }, + "description": { + "type": "string" + }, + "disabled": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "groupId": { + "$dynamic": true, + "type": "string", + "title": "Kafka consumer group ID.", + "markdownDescription": "Using a consumer group, we will fetch only records that haven't been consumed yet." + }, + "id": { + "type": "string", + "title": "A unique ID for the whole flow.", + "minLength": 1, + "pattern": "^[a-zA-Z0-9][a-zA-Z0-9_-]*" + }, + "keyDeserializer": { + "allOf": [ + { + "type": "string", + "enum": [ + "STRING", + "INTEGER", + "FLOAT", + "DOUBLE", + "LONG", + "SHORT", + "BYTE_ARRAY", + "BYTE_BUFFER", + "BYTES", + "UUID", + "VOID", + "AVRO", + "JSON" + ], + "title": "Serializer / Deserializer to use for the value", + "markdownDescription": "Lists are not supported." + }, + { + "$dynamic": true, + "title": "The deserializer used for the key.", + "default": "STRING", + "markdownDescription": "Possible values are: `STRING`, `INTEGER`, `FLOAT`, `DOUBLE`, `LONG`, `SHORT`, `BYTE_ARRAY`, `BYTE_BUFFER`, `BYTES`, `UUID`, `VOID`, `AVRO`, `JSON`.\n\nDefault value is : `STRING`" + } + ] + }, + "labels": { + "title": "The labels to pass to the execution created.", + "type": "array", + "items": { + "$ref": "#/definitions/io.kestra.core.models.Label" + } + }, + "logLevel": { + "type": "string", + "enum": ["ERROR", "WARN", "INFO", "DEBUG", "TRACE"] + }, + "partitions": { + "$dynamic": false, + "title": "Topic partitions to consume messages from.", + "markdownDescription": "Manually assign a list of partitions to the consumer.", + "type": "array", + "items": { + "$dynamic": false, + "type": "integer" + } + }, + "properties": { + "$dynamic": true, + "type": "object", + "title": "Kafka connection properties.", + "markdownDescription": "The `bootstrap.servers` property is a minimal required configuration to connect to a Kafka topic.\nThis property can reference any valid [Consumer Configs](https://kafka.apache.org/documentation/#consumerconfigs) or [Producer Configs\n](https://kafka.apache.org/documentation/#producerconfigs) as key-value pairs.\n\nIf you want to pass a truststore or a keystore, you must provide a base64 encoded string for `ssl.keystore.location` and `ssl.truststore.location`." + }, + "serdeProperties": { + "$dynamic": true, + "type": "object", + "title": "Serializer configuration", + "default": {}, + "markdownDescription": "Configuration that will be passed to serializer or deserializer. The `avro.use.logical.type.converters` is always passed when you have any values set to `true`.\n\nDefault value is : `{}`" + }, + "since": { + "$dynamic": true, + "type": "string", + "title": "Timestamp of a message to start consuming messages from.", + "markdownDescription": "By default, we consume all messages from the topics with no consumer group or depending on the configuration of the `auto.offset.reset` property. However, you can provide an arbitrary start time.\nThis property is ignored if a consumer group is used.\nIt must be a valid ISO 8601 date." + }, + "stopAfter": { + "$dynamic": false, + "title": "List of execution states after which a trigger should be stopped (a.k.a. disabled).", + "type": "array", + "items": { + "$dynamic": false, + "type": "string", + "enum": [ + "CREATED", + "RUNNING", + "PAUSED", + "RESTARTED", + "KILLING", + "SUCCESS", + "WARNING", + "FAILED", + "KILLED", + "CANCELLED", + "QUEUED", + "RETRYING", + "RETRIED" + ] + } + }, + "topic": { + "$dynamic": true, + "title": "Kafka topic(s) to consume messages from.", + "markdownDescription": "It can be a string or a list of strings to consume from one or multiple topics." + }, + "topicPattern": { + "$dynamic": true, + "type": "string", + "title": "Kafka topic pattern to consume messages from.", + "markdownDescription": "Consumer will subscribe to all topics matching the specified pattern to get dynamically assigned partitions." + }, + "type": { + "const": "io.kestra.plugin.kafka.RealtimeTrigger" + }, + "valueDeserializer": { + "allOf": [ + { + "type": "string", + "enum": [ + "STRING", + "INTEGER", + "FLOAT", + "DOUBLE", + "LONG", + "SHORT", + "BYTE_ARRAY", + "BYTE_BUFFER", + "BYTES", + "UUID", + "VOID", + "AVRO", + "JSON" + ], + "title": "Serializer / Deserializer to use for the value", + "markdownDescription": "Lists are not supported." + }, + { + "$dynamic": true, + "title": "The deserializer used for the value.", + "default": "STRING", + "markdownDescription": "Possible values are: `STRING`, `INTEGER`, `FLOAT`, `DOUBLE`, `LONG`, `SHORT`, `BYTE_ARRAY`, `BYTE_BUFFER`, `BYTES`, `UUID`, `VOID`, `AVRO`, `JSON`.\n\nDefault value is : `STRING`" + } + ] + }, + "workerGroup": { + "$ref": "#/definitions/io.kestra.core.models.tasks.WorkerGroup" + } + }, + "required": ["groupId", "id", "properties", "type"], + "title": "Consume a message in real-time from a Kafka topic and create one execution per message.", + "markdownDescription": "If you would like to consume multiple messages processed within a given time frame and process them in batch, you can use the [io.kestra.plugin.kafka.Trigger](https://kestra.io/plugins/plugin-kafka/triggers/io.kestra.plugin.kafka.trigger) instead.##### Examples\n\u003E Consume a message from a Kafka topic in real time.\n```yaml\nid: kafka\nnamespace: company.team\n\ntasks:\n- id: log\n type: io.kestra.plugin.core.log.Log\n message: \"{{ trigger.value }}\"\n\ntriggers:\n- id: realtime_trigger\n type: io.kestra.plugin.kafka.RealtimeTrigger\n topic: test_kestra\n properties:\n bootstrap.servers: localhost:9092\n serdeProperties:\n schema.registry.url: http://localhost:8085\n keyDeserializer: STRING\n valueDeserializer: AVRO\n groupId: kafkaConsumerGroupId\n```" + }, + "io.kestra.plugin.kafka.Trigger": { + "type": "object", + "properties": { + "conditions": { + "$dynamic": false, + "title": "List of conditions in order to limit the flow trigger.", + "type": "array", + "items": { + "oneOf": [ + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.DateTimeBetweenCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.DayWeekCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.DayWeekInMonthCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.ExecutionFlowCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.ExecutionLabelsCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.ExecutionNamespaceCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.ExecutionOutputsCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.ExecutionStatusCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.ExpressionCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.FlowCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.FlowNamespaceCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.HasRetryAttemptCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.MultipleCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.NotCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.OrCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.PublicHolidayCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.TimeBetweenCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.WeekendCondition" + }, + { + "$dynamic": false + } + ] + } + ] + } + }, + "description": { + "type": "string" + }, + "disabled": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "groupId": { + "$dynamic": true, + "type": "string", + "title": "Kafka consumer group ID.", + "markdownDescription": "Using a consumer group, we will fetch only records that haven't been consumed yet." + }, + "id": { + "type": "string", + "title": "A unique ID for the whole flow.", + "minLength": 1, + "pattern": "^[a-zA-Z0-9][a-zA-Z0-9_-]*" + }, + "interval": { + "$dynamic": false, + "type": "string", + "format": "duration", + "title": "Interval between polling.", + "default": 60, + "markdownDescription": "The interval between 2 different polls of schedule, this can avoid to overload the remote system with too many calls. For most of the triggers that depend on external systems, a minimal interval must be at least PT30S.\nSee [ISO_8601 Durations](https://en.wikipedia.org/wiki/ISO_8601#Durations) for more information of available interval values.\n\nDefault value is : `60.000000000`" + }, + "keyDeserializer": { + "allOf": [ + { + "type": "string", + "enum": [ + "STRING", + "INTEGER", + "FLOAT", + "DOUBLE", + "LONG", + "SHORT", + "BYTE_ARRAY", + "BYTE_BUFFER", + "BYTES", + "UUID", + "VOID", + "AVRO", + "JSON" + ], + "title": "Serializer / Deserializer to use for the value", + "markdownDescription": "Lists are not supported." + }, + { + "$dynamic": true, + "title": "The deserializer used for the key.", + "default": "STRING", + "markdownDescription": "Possible values are: `STRING`, `INTEGER`, `FLOAT`, `DOUBLE`, `LONG`, `SHORT`, `BYTE_ARRAY`, `BYTE_BUFFER`, `BYTES`, `UUID`, `VOID`, `AVRO`, `JSON`.\n\nDefault value is : `STRING`" + } + ] + }, + "labels": { + "title": "The labels to pass to the execution created.", + "type": "array", + "items": { + "$ref": "#/definitions/io.kestra.core.models.Label" + } + }, + "logLevel": { + "type": "string", + "enum": ["ERROR", "WARN", "INFO", "DEBUG", "TRACE"] + }, + "maxDuration": { + "$dynamic": false, + "type": "string", + "format": "duration", + "title": "The maximum duration to wait for new records before stopping the consumption process.", + "markdownDescription": "It's a soft limit evaluated every second." + }, + "maxRecords": { + "$dynamic": false, + "type": "integer", + "title": "The maximum number of records to fetch before stopping the consumption process.", + "markdownDescription": "It's a soft limit evaluated every second." + }, + "partitions": { + "$dynamic": false, + "title": "Topic partitions to consume messages from.", + "markdownDescription": "Manually assign a list of partitions to the consumer.", + "type": "array", + "items": { + "$dynamic": false, + "type": "integer" + } + }, + "pollDuration": { + "$dynamic": true, + "type": "string", + "format": "duration", + "title": "How often to poll for a record.", + "default": 5, + "markdownDescription": "If no records are available, the maximum wait duration to wait for new records. \n\nDefault value is : `5.000000000`" + }, + "properties": { + "$dynamic": true, + "type": "object", + "title": "Kafka connection properties.", + "markdownDescription": "The `bootstrap.servers` property is a minimal required configuration to connect to a Kafka topic.\nThis property can reference any valid [Consumer Configs](https://kafka.apache.org/documentation/#consumerconfigs) or [Producer Configs\n](https://kafka.apache.org/documentation/#producerconfigs) as key-value pairs.\n\nIf you want to pass a truststore or a keystore, you must provide a base64 encoded string for `ssl.keystore.location` and `ssl.truststore.location`." + }, + "serdeProperties": { + "$dynamic": true, + "type": "object", + "title": "Serializer configuration", + "default": {}, + "markdownDescription": "Configuration that will be passed to serializer or deserializer. The `avro.use.logical.type.converters` is always passed when you have any values set to `true`.\n\nDefault value is : `{}`" + }, + "since": { + "$dynamic": true, + "type": "string", + "title": "Timestamp of a message to start consuming messages from.", + "markdownDescription": "By default, we consume all messages from the topics with no consumer group or depending on the configuration of the `auto.offset.reset` property. However, you can provide an arbitrary start time.\nThis property is ignored if a consumer group is used.\nIt must be a valid ISO 8601 date." + }, + "stopAfter": { + "$dynamic": false, + "title": "List of execution states after which a trigger should be stopped (a.k.a. disabled).", + "type": "array", + "items": { + "$dynamic": false, + "type": "string", + "enum": [ + "CREATED", + "RUNNING", + "PAUSED", + "RESTARTED", + "KILLING", + "SUCCESS", + "WARNING", + "FAILED", + "KILLED", + "CANCELLED", + "QUEUED", + "RETRYING", + "RETRIED" + ] + } + }, + "topic": { + "$dynamic": true, + "title": "Kafka topic(s) to consume messages from.", + "markdownDescription": "It can be a string or a list of strings to consume from one or multiple topics." + }, + "topicPattern": { + "$dynamic": true, + "type": "string", + "title": "Kafka topic pattern to consume messages from.", + "markdownDescription": "Consumer will subscribe to all topics matching the specified pattern to get dynamically assigned partitions." + }, + "type": { + "const": "io.kestra.plugin.kafka.Trigger" + }, + "valueDeserializer": { + "allOf": [ + { + "type": "string", + "enum": [ + "STRING", + "INTEGER", + "FLOAT", + "DOUBLE", + "LONG", + "SHORT", + "BYTE_ARRAY", + "BYTE_BUFFER", + "BYTES", + "UUID", + "VOID", + "AVRO", + "JSON" + ], + "title": "Serializer / Deserializer to use for the value", + "markdownDescription": "Lists are not supported." + }, + { + "$dynamic": true, + "title": "The deserializer used for the value.", + "default": "STRING", + "markdownDescription": "Possible values are: `STRING`, `INTEGER`, `FLOAT`, `DOUBLE`, `LONG`, `SHORT`, `BYTE_ARRAY`, `BYTE_BUFFER`, `BYTES`, `UUID`, `VOID`, `AVRO`, `JSON`.\n\nDefault value is : `STRING`" + } + ] + }, + "workerGroup": { + "$ref": "#/definitions/io.kestra.core.models.tasks.WorkerGroup" + } + }, + "required": ["groupId", "id", "properties", "type"], + "title": "Consume messages periodically from Kafka topics and create one execution per batch.", + "markdownDescription": "Note that you don't need an extra task to consume the message from the event trigger. The trigger will automatically consume messages and you can retrieve their content in your flow using the `{{ trigger.uri }}` variable. If you would like to consume each message from a Kafka topic in real-time and create one execution per message, you can use the [io.kestra.plugin.kafka.RealtimeTrigger](https://kestra.io/plugins/plugin-kafka/triggers/io.kestra.plugin.kafka.realtimetrigger) instead.##### Examples\n\u003E \n```yaml\ntopic: test_kestra\nproperties:\n bootstrap.servers: localhost:9092\nserdeProperties:\n schema.registry.url: http://localhost:8085\n keyDeserializer: STRING\n valueDeserializer: AVRO\ninterval: PT30S\nmaxRecords: 5\ngroupId: kafkaConsumerGroupId\n```" + }, + "io.kestra.plugin.kubernetes.PodCreate": { + "type": "object", + "properties": { + "allowFailure": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "connection": { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.kubernetes.models.Connection" + }, + { + "title": "The connection parameters to the Kubernetes cluster", + "markdownDescription": "If no connection is defined, we try to load the connection from the current context in the following order: \n1. System properties\n2. Environment variables\n3. Kube config file\n4. Service account token and a mounted CA certificate.\n\nYou can pass a full configuration with all options if needed." + } + ] + }, + "delete": { + "$dynamic": false, + "type": "boolean", + "title": "Whether the pod should be deleted upon completion.", + "default": true, + "markdownDescription": "Default value is : `true`" + }, + "description": { + "type": "string" + }, + "disabled": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "fileSidecar": { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.kubernetes.models.SideCar" + }, + { + "$dynamic": false, + "title": "The configuration of the file sidecar container that handle download and upload of files.", + "default": { + "image": "busybox" + }, + "markdownDescription": "Default value is : `image: busybox`" + } + ] + }, + "id": { + "type": "string", + "minLength": 1, + "pattern": "^[a-zA-Z0-9][a-zA-Z0-9_-]*" + }, + "inputFiles": { + "$dynamic": true, + "title": "The files to create on the local filesystem. It can be a map or a JSON object.", + "additionalProperties": { + "type": "string" + }, + "markdownDescription": "The files will be available inside the `kestra/working-dir` directory of the container. You can use the special variable `{{workingDir}}` in your command to refer to it." + }, + "logLevel": { + "type": "string", + "enum": ["ERROR", "WARN", "INFO", "DEBUG", "TRACE"] + }, + "metadata": { + "$dynamic": true, + "type": "object", + "title": "The YAML metadata of the pod." + }, + "namespace": { + "$dynamic": true, + "type": "string", + "title": "The namespace where the pod will be created", + "default": "default", + "markdownDescription": "Default value is : `default`" + }, + "outputFiles": { + "$dynamic": false, + "title": "The files from the container filesystem to send to Kestra's internal storage.", + "markdownDescription": "Only files created inside the `kestra/working-dir` directory of the container can be retrieved. You can use the special variable `{{workingDir}}` in this property to refer to it", + "type": "array", + "items": { + "$dynamic": false, + "type": "string" + } + }, + "resume": { + "$dynamic": false, + "type": "boolean", + "title": "Whether to reconnect to the current pod if it already exists.", + "default": true, + "markdownDescription": "Default value is : `true`" + }, + "retry": { + "oneOf": [ + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Constant-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Exponential-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Random-2" + } + ] + }, + "spec": { + "$dynamic": true, + "type": "object", + "title": "The YAML spec of the pod." + }, + "timeout": { + "type": "string", + "format": "duration" + }, + "type": { + "const": "io.kestra.plugin.kubernetes.PodCreate" + }, + "waitRunning": { + "type": "string", + "format": "duration", + "title": "The maximum duration to wait for the job completion.", + "default": 3600, + "markdownDescription": "Default value is : `3600.000000000`" + }, + "waitUntilRunning": { + "type": "string", + "format": "duration", + "title": "The maximum duration to wait until the job and the pod is created.", + "default": 600, + "markdownDescription": "This timeout is the maximum time that Kubernetes scheduler will take to\n* schedule the job\n* pull the pod image\n* and start the pod.\n\nDefault value is : `600.000000000`" + }, + "workerGroup": { + "$ref": "#/definitions/io.kestra.core.models.tasks.WorkerGroup" + } + }, + "required": ["id", "spec", "type"], + "title": "Create a pod on a Kubernetes cluster, wait until the pod stops and collect its logs.", + "markdownDescription": "##### Examples\n\u003E Launch a Pod\n```yaml\nnamespace: default\nmetadata:\n labels:\n my-label: my-value\nspec:\n containers:\n - name: unittest\n image: debian:stable-slim\n command: \n - 'bash' \n - '-c'\n - 'for i in {1..10}; do echo $i; sleep 0.1; done'\n restartPolicy: Never\n```\n\n\u003E Launch a Pod with input files and gather its output files.\n```yaml\nid: kubernetes\nnamespace: company.team\n\ninputs:\n - id: file\n type: FILE\n\ntasks:\n - id: kubernetes\n type: io.kestra.plugin.kubernetes.PodCreate\n spec:\n containers:\n - name: unittest\n image: centos\n command:\n - cp\n - \"{{workingDir}}/data.txt\"\n - \"{{workingDir}}/out.txt\"\n restartPolicy: Never\n waitUntilRunning: PT3M\n inputFiles:\n data.txt: \"{{inputs.file}}\"\n outputFiles:\n - out.txt\n```" + }, + "io.kestra.plugin.kubernetes.kubectl.Apply": { + "type": "object", + "properties": { + "allowFailure": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "connection": { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.kubernetes.models.Connection" + }, + { + "title": "The connection parameters to the Kubernetes cluster", + "markdownDescription": "If no connection is defined, we try to load the connection from the current context in the following order: \n1. System properties\n2. Environment variables\n3. Kube config file\n4. Service account token and a mounted CA certificate.\n\nYou can pass a full configuration with all options if needed." + } + ] + }, + "description": { + "type": "string" + }, + "disabled": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "fileSidecar": { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.kubernetes.models.SideCar" + }, + { + "$dynamic": false, + "title": "The configuration of the file sidecar container that handle download and upload of files.", + "default": { + "image": "busybox" + }, + "markdownDescription": "Default value is : `image: busybox`" + } + ] + }, + "id": { + "type": "string", + "minLength": 1, + "pattern": "^[a-zA-Z0-9][a-zA-Z0-9_-]*" + }, + "inputFiles": { + "$dynamic": true, + "title": "The files to create on the local filesystem. It can be a map or a JSON object.", + "additionalProperties": { + "type": "string" + }, + "markdownDescription": "The files will be available inside the `kestra/working-dir` directory of the container. You can use the special variable `{{workingDir}}` in your command to refer to it." + }, + "logLevel": { + "type": "string", + "enum": ["ERROR", "WARN", "INFO", "DEBUG", "TRACE"] + }, + "namespace": { + "$dynamic": true, + "type": "string", + "title": "The Kubernetes namespace" + }, + "outputFiles": { + "$dynamic": false, + "title": "The files from the container filesystem to send to Kestra's internal storage.", + "markdownDescription": "Only files created inside the `kestra/working-dir` directory of the container can be retrieved. You can use the special variable `{{workingDir}}` in this property to refer to it", + "type": "array", + "items": { + "$dynamic": false, + "type": "string" + } + }, + "retry": { + "oneOf": [ + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Constant-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Exponential-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Random-2" + } + ] + }, + "spec": { + "$dynamic": true, + "type": "string", + "title": "The Kubernetes resource spec" + }, + "timeout": { + "type": "string", + "format": "duration" + }, + "type": { + "const": "io.kestra.plugin.kubernetes.kubectl.Apply" + }, + "waitRunning": { + "type": "string", + "format": "duration", + "title": "The maximum duration to wait for the job completion.", + "default": 3600, + "markdownDescription": "Default value is : `3600.000000000`" + }, + "waitUntilRunning": { + "type": "string", + "format": "duration", + "title": "The maximum duration to wait until the job and the pod is created.", + "default": 600, + "markdownDescription": "This timeout is the maximum time that Kubernetes scheduler will take to\n* schedule the job\n* pull the pod image\n* and start the pod.\n\nDefault value is : `600.000000000`" + }, + "workerGroup": { + "$ref": "#/definitions/io.kestra.core.models.tasks.WorkerGroup" + } + }, + "required": ["id", "spec", "type"], + "title": "Apply a Kubernetes resource", + "markdownDescription": "##### Examples\n\u003E Apply a Kubernetes resource, using YAML\n```yaml\nid: create_or_replace_deployment\nnamespace: company.team\ntasks:\n - io.kestra.plugin.kubernetes.kubectl.Apply:\n namespace: default\n spec: |-\n apiVersion: apps/v1\n kind: Deployment\n metadata:\n name: mypod\n```\n\n\u003E Apply a Kubernetes resource, using a namespace file\n```yaml\nid: create_or_replace_deployment\nnamespace: company.team\ntasks:\n - io.kestra.plugin.kubernetes.kubectl.Apply:\n namespace: default\n spec: \"{{ read('deployment.yaml') }}\"\n```" + }, + "io.kestra.plugin.kubernetes.models.Connection": { + "type": "object", + "properties": { + "apiVersion": { + "$dynamic": true, + "type": "string", + "title": "The API version", + "default": "v1", + "markdownDescription": "Default value is : `v1`" + }, + "caCertData": { + "$dynamic": true, + "type": "string", + "title": "CA certificate as data" + }, + "caCertFile": { + "$dynamic": true, + "type": "string", + "title": "CA certificate as file path" + }, + "clientCertData": { + "$dynamic": true, + "type": "string", + "title": "Client certificate as data" + }, + "clientCertFile": { + "$dynamic": true, + "type": "string", + "title": "Client certificate as a file path" + }, + "clientKeyAlgo": { + "$dynamic": true, + "type": "string", + "title": "Client key encryption algorithm", + "default": "RSA", + "markdownDescription": "default is RSA\n\nDefault value is : `RSA`" + }, + "clientKeyData": { + "$dynamic": true, + "type": "string", + "title": "Client key as data" + }, + "clientKeyFile": { + "$dynamic": true, + "type": "string", + "title": "Client key as a file path" + }, + "clientKeyPassphrase": { + "$dynamic": true, + "type": "string", + "title": "Client key passphrase" + }, + "disableHostnameVerification": { + "type": "boolean", + "title": "Disable hostname verification" + }, + "keyStoreFile": { + "$dynamic": true, + "type": "string", + "title": "Key store file" + }, + "keyStorePassphrase": { + "$dynamic": true, + "type": "string", + "title": "Key store passphrase" + }, + "masterUrl": { + "$dynamic": true, + "type": "string", + "title": "The url to the Kubernetes API", + "default": "https://kubernetes.default.svc", + "markdownDescription": "Default value is : `https://kubernetes.default.svc`" + }, + "namespace": { + "$dynamic": true, + "type": "string", + "title": "The namespace used" + }, + "oauthToken": { + "$dynamic": true, + "type": "string", + "title": "Oauth token" + }, + "oauthTokenProvider": { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.kubernetes.models.OAuthTokenProvider" + }, + { + "$dynamic": false, + "title": "Oauth token provider" + } + ] + }, + "password": { + "$dynamic": true, + "type": "string", + "title": "Password" + }, + "trustCerts": { + "type": "boolean", + "title": "Trust all certificates" + }, + "trustStoreFile": { + "$dynamic": true, + "type": "string", + "title": "Truststore file" + }, + "trustStorePassphrase": { + "$dynamic": true, + "type": "string", + "title": "Truststore passphrase" + }, + "username": { + "$dynamic": true, + "type": "string", + "title": "Username" + } + } + }, + "io.kestra.plugin.kubernetes.models.OAuthTokenProvider": { + "type": "object", + "properties": { + "output": { + "type": "string" + }, + "task": { + "oneOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.debug.Echo" + }, + { + "$ref": "#/definitions/io.kestra.plugin.core.debug.Return" + }, + { + "$ref": "#/definitions/io.kestra.plugin.core.execution.Count" + }, + { + "$ref": "#/definitions/io.kestra.plugin.core.execution.Fail" + }, + { + "$ref": "#/definitions/io.kestra.plugin.core.execution.Labels" + }, + { + "$ref": "#/definitions/io.kestra.plugin.core.execution.PurgeExecutions" + }, + { + "$ref": "#/definitions/io.kestra.plugin.core.execution.Resume" + }, + { + "$ref": "#/definitions/io.kestra.plugin.core.flow.AllowFailure" + }, + { + "$ref": "#/definitions/io.kestra.plugin.core.flow.Dag" + }, + { + "$ref": "#/definitions/io.kestra.plugin.core.flow.EachParallel" + }, + { + "$ref": "#/definitions/io.kestra.plugin.core.flow.EachSequential" + }, + { + "$ref": "#/definitions/io.kestra.plugin.core.flow.ForEach" + }, + { + "$ref": "#/definitions/io.kestra.plugin.core.flow.ForEachItem" + }, + { + "$ref": "#/definitions/io.kestra.plugin.core.flow.If" + }, + { + "$ref": "#/definitions/io.kestra.plugin.core.flow.Parallel" + }, + { + "$ref": "#/definitions/io.kestra.plugin.core.flow.Pause" + }, + { + "$ref": "#/definitions/io.kestra.plugin.core.flow.Sequential" + }, + { + "$ref": "#/definitions/io.kestra.plugin.core.flow.Subflow" + }, + { + "$ref": "#/definitions/io.kestra.plugin.core.flow.Switch" + }, + { + "$ref": "#/definitions/io.kestra.plugin.core.flow.Template" + }, + { + "$ref": "#/definitions/io.kestra.plugin.core.flow.WaitFor" + }, + { + "$ref": "#/definitions/io.kestra.plugin.core.flow.WorkingDirectory" + }, + { + "$ref": "#/definitions/io.kestra.plugin.core.http.Download" + }, + { + "$ref": "#/definitions/io.kestra.plugin.core.http.Request" + }, + { + "$ref": "#/definitions/io.kestra.plugin.core.kv.Delete" + }, + { + "$ref": "#/definitions/io.kestra.plugin.core.kv.Get" + }, + { + "$ref": "#/definitions/io.kestra.plugin.core.kv.GetKeys" + }, + { + "$ref": "#/definitions/io.kestra.plugin.core.kv.Set" + }, + { + "$ref": "#/definitions/io.kestra.plugin.core.log.Fetch" + }, + { + "$ref": "#/definitions/io.kestra.plugin.core.log.Log" + }, + { + "$ref": "#/definitions/io.kestra.plugin.core.log.PurgeLogs" + }, + { + "$ref": "#/definitions/io.kestra.plugin.core.namespace.DeleteFiles" + }, + { + "$ref": "#/definitions/io.kestra.plugin.core.namespace.DownloadFiles" + }, + { + "$ref": "#/definitions/io.kestra.plugin.core.namespace.UploadFiles" + }, + { + "$ref": "#/definitions/io.kestra.plugin.core.output.OutputValues" + }, + { + "$ref": "#/definitions/io.kestra.plugin.core.state.Delete" + }, + { + "$ref": "#/definitions/io.kestra.plugin.core.state.Get" + }, + { + "$ref": "#/definitions/io.kestra.plugin.core.state.Set" + }, + { + "$ref": "#/definitions/io.kestra.plugin.core.storage.Concat" + }, + { + "$ref": "#/definitions/io.kestra.plugin.core.storage.DeduplicateItems" + }, + { + "$ref": "#/definitions/io.kestra.plugin.core.storage.Delete" + }, + { + "$ref": "#/definitions/io.kestra.plugin.core.storage.FilterItems" + }, + { + "$ref": "#/definitions/io.kestra.plugin.core.storage.LocalFiles" + }, + { + "$ref": "#/definitions/io.kestra.plugin.core.storage.PurgeCurrentExecutionFiles" + }, + { + "$ref": "#/definitions/io.kestra.plugin.core.storage.Reverse" + }, + { + "$ref": "#/definitions/io.kestra.plugin.core.storage.Size" + }, + { + "$ref": "#/definitions/io.kestra.plugin.core.storage.Split" + }, + { + "$ref": "#/definitions/io.kestra.plugin.core.templating.TemplatedTask" + }, + { + "$ref": "#/definitions/io.kestra.plugin.core.trigger.Toggle" + }, + { + "$ref": "#/definitions/io.kestra.plugin.hightouch.Sync" + }, + { + "$ref": "#/definitions/io.kestra.plugin.github.code.Search" + }, + { + "$ref": "#/definitions/io.kestra.plugin.github.commits.Search" + }, + { + "$ref": "#/definitions/io.kestra.plugin.github.issues.Comment" + }, + { + "$ref": "#/definitions/io.kestra.plugin.github.issues.Create" + }, + { + "$ref": "#/definitions/io.kestra.plugin.github.issues.Search" + }, + { + "$ref": "#/definitions/io.kestra.plugin.github.pulls.Create" + }, + { + "$ref": "#/definitions/io.kestra.plugin.github.pulls.Search" + }, + { + "$ref": "#/definitions/io.kestra.plugin.github.repositories.Search" + }, + { + "$ref": "#/definitions/io.kestra.plugin.github.topics.Search" + }, + { + "$ref": "#/definitions/io.kestra.plugin.github.users.Search" + }, + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.druid.Query" + }, + { + "$ref": "#/definitions/io.kestra.plugin.weaviate.BatchCreate" + }, + { + "$ref": "#/definitions/io.kestra.plugin.weaviate.Delete" + }, + { + "$ref": "#/definitions/io.kestra.plugin.weaviate.Query" + }, + { + "$ref": "#/definitions/io.kestra.plugin.weaviate.SchemaCreate" + }, + { + "$ref": "#/definitions/io.kestra.plugin.spark.JarSubmit" + }, + { + "$ref": "#/definitions/io.kestra.plugin.spark.PythonSubmit" + }, + { + "$ref": "#/definitions/io.kestra.plugin.spark.RSubmit" + }, + { + "$ref": "#/definitions/io.kestra.plugin.spark.SparkCLI" + }, + { + "$ref": "#/definitions/io.kestra.plugin.gcp.auth.OauthAccessToken" + }, + { + "$ref": "#/definitions/io.kestra.plugin.gcp.bigquery.Copy" + }, + { + "$ref": "#/definitions/io.kestra.plugin.gcp.bigquery.CopyPartitions" + }, + { + "$ref": "#/definitions/io.kestra.plugin.gcp.bigquery.CreateDataset" + }, + { + "$ref": "#/definitions/io.kestra.plugin.gcp.bigquery.CreateTable" + }, + { + "$ref": "#/definitions/io.kestra.plugin.gcp.bigquery.DeleteDataset" + }, + { + "$ref": "#/definitions/io.kestra.plugin.gcp.bigquery.DeletePartitions" + }, + { + "$ref": "#/definitions/io.kestra.plugin.gcp.bigquery.DeleteTable" + }, + { + "$ref": "#/definitions/io.kestra.plugin.gcp.bigquery.ExtractToGcs" + }, + { + "$ref": "#/definitions/io.kestra.plugin.gcp.bigquery.Load" + }, + { + "$ref": "#/definitions/io.kestra.plugin.gcp.bigquery.LoadFromGcs" + }, + { + "$ref": "#/definitions/io.kestra.plugin.gcp.bigquery.Query" + }, + { + "$ref": "#/definitions/io.kestra.plugin.gcp.bigquery.StorageWrite" + }, + { + "$ref": "#/definitions/io.kestra.plugin.gcp.bigquery.TableMetadata" + }, + { + "$ref": "#/definitions/io.kestra.plugin.gcp.bigquery.UpdateDataset" + }, + { + "$ref": "#/definitions/io.kestra.plugin.gcp.bigquery.UpdateTable" + }, + { + "$ref": "#/definitions/io.kestra.plugin.gcp.cli.GCloudCLI" + }, + { + "$ref": "#/definitions/io.kestra.plugin.gcp.dataproc.batches.PySparkSubmit" + }, + { + "$ref": "#/definitions/io.kestra.plugin.gcp.dataproc.batches.RSparkSubmit" + }, + { + "$ref": "#/definitions/io.kestra.plugin.gcp.dataproc.batches.SparkSqlSubmit" + }, + { + "$ref": "#/definitions/io.kestra.plugin.gcp.dataproc.batches.SparkSubmit" + }, + { + "$ref": "#/definitions/io.kestra.plugin.gcp.firestore.Delete" + }, + { + "$ref": "#/definitions/io.kestra.plugin.gcp.firestore.Get" + }, + { + "$ref": "#/definitions/io.kestra.plugin.gcp.firestore.Query" + }, + { + "$ref": "#/definitions/io.kestra.plugin.gcp.firestore.Set" + }, + { + "$ref": "#/definitions/io.kestra.plugin.gcp.gcs.Compose" + }, + { + "$ref": "#/definitions/io.kestra.plugin.gcp.gcs.Copy" + }, + { + "$ref": "#/definitions/io.kestra.plugin.gcp.gcs.CreateBucket" + }, + { + "$ref": "#/definitions/io.kestra.plugin.gcp.gcs.CreateBucketIamPolicy" + }, + { + "$ref": "#/definitions/io.kestra.plugin.gcp.gcs.Delete" + }, + { + "$ref": "#/definitions/io.kestra.plugin.gcp.gcs.DeleteBucket" + }, + { + "$ref": "#/definitions/io.kestra.plugin.gcp.gcs.DeleteList" + }, + { + "$ref": "#/definitions/io.kestra.plugin.gcp.gcs.Download" + }, + { + "$ref": "#/definitions/io.kestra.plugin.gcp.gcs.Downloads" + }, + { + "$ref": "#/definitions/io.kestra.plugin.gcp.gcs.List" + }, + { + "$ref": "#/definitions/io.kestra.plugin.gcp.gcs.UpdateBucket" + }, + { + "$ref": "#/definitions/io.kestra.plugin.gcp.gcs.Upload" + }, + { + "$ref": "#/definitions/io.kestra.plugin.gcp.gke.ClusterMetadata" + }, + { + "$ref": "#/definitions/io.kestra.plugin.gcp.pubsub.Consume" + }, + { + "$ref": "#/definitions/io.kestra.plugin.gcp.pubsub.Publish" + }, + { + "$ref": "#/definitions/io.kestra.plugin.gcp.vertexai.ChatCompletion" + }, + { + "$ref": "#/definitions/io.kestra.plugin.gcp.vertexai.CustomJob" + }, + { + "$ref": "#/definitions/io.kestra.plugin.gcp.vertexai.MultimodalCompletion" + }, + { + "$ref": "#/definitions/io.kestra.plugin.gcp.vertexai.TextCompletion" + }, + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.db2.Query" + }, + { + "$ref": "#/definitions/io.kestra.plugin.minio.Copy" + }, + { + "$ref": "#/definitions/io.kestra.plugin.minio.CreateBucket" + }, + { + "$ref": "#/definitions/io.kestra.plugin.minio.Delete" + }, + { + "$ref": "#/definitions/io.kestra.plugin.minio.DeleteList" + }, + { + "$ref": "#/definitions/io.kestra.plugin.minio.Download" + }, + { + "$ref": "#/definitions/io.kestra.plugin.minio.Downloads" + }, + { + "$ref": "#/definitions/io.kestra.plugin.minio.List" + }, + { + "$ref": "#/definitions/io.kestra.plugin.minio.Upload" + }, + { + "$ref": "#/definitions/io.kestra.plugin.soda.Scan" + }, + { + "$ref": "#/definitions/io.kestra.plugin.modal.cli.ModalCLI" + }, + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.rockset.Query" + }, + { + "$ref": "#/definitions/io.kestra.plugin.scripts.nashorn.Eval" + }, + { + "$ref": "#/definitions/io.kestra.plugin.scripts.nashorn.FileTransform" + }, + { + "$ref": "#/definitions/io.kestra.plugin.scripts.ruby.Commands" + }, + { + "$ref": "#/definitions/io.kestra.plugin.scripts.ruby.Script" + }, + { + "$ref": "#/definitions/io.kestra.plugin.mongodb.Bulk" + }, + { + "$ref": "#/definitions/io.kestra.plugin.mongodb.Delete" + }, + { + "$ref": "#/definitions/io.kestra.plugin.mongodb.Find" + }, + { + "$ref": "#/definitions/io.kestra.plugin.mongodb.InsertOne" + }, + { + "$ref": "#/definitions/io.kestra.plugin.mongodb.Load" + }, + { + "$ref": "#/definitions/io.kestra.plugin.mongodb.Update" + }, + { + "$ref": "#/definitions/io.kestra.plugin.debezium.postgres.Capture" + }, + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.BigQuery" + }, + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.BingAds" + }, + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.ChargeBee" + }, + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.ExchangeRateHost" + }, + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.FacebookAds" + }, + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.Fastly" + }, + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.GenericTap" + }, + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.GitHub" + }, + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.Gitlab" + }, + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.GoogleAdwords" + }, + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.GoogleAnalytics" + }, + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.GoogleSearchConsole" + }, + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.HubSpot" + }, + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.Marketo" + }, + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.Netsuite" + }, + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.PipelinewiseMongoDb" + }, + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.PipelinewiseMysql" + }, + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.PipelinewiseOracle" + }, + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.PipelinewisePostgres" + }, + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.PipelinewiseSqlServer" + }, + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.Quickbooks" + }, + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.Recharge" + }, + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.SageIntacct" + }, + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.Salesforce" + }, + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.Shopify" + }, + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.Slack" + }, + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.Stripe" + }, + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.Zendesk" + }, + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.Zoom" + }, + { + "$ref": "#/definitions/io.kestra.plugin.singer.targets.AdswerveBigQuery" + }, + { + "$ref": "#/definitions/io.kestra.plugin.singer.targets.Csv" + }, + { + "$ref": "#/definitions/io.kestra.plugin.singer.targets.DatamillCoPostgres" + }, + { + "$ref": "#/definitions/io.kestra.plugin.singer.targets.GenericTarget" + }, + { + "$ref": "#/definitions/io.kestra.plugin.singer.targets.Json" + }, + { + "$ref": "#/definitions/io.kestra.plugin.singer.targets.MeltanoSnowflake" + }, + { + "$ref": "#/definitions/io.kestra.plugin.singer.targets.Oracle" + }, + { + "$ref": "#/definitions/io.kestra.plugin.singer.targets.PipelinewisePostgres" + }, + { + "$ref": "#/definitions/io.kestra.plugin.singer.targets.PipelinewiseRedshift" + }, + { + "$ref": "#/definitions/io.kestra.plugin.singer.targets.PipelinewiseSnowflake" + }, + { + "$ref": "#/definitions/io.kestra.plugin.singer.targets.SqlServer" + }, + { + "$ref": "#/definitions/io.kestra.plugin.scripts.julia.Commands" + }, + { + "$ref": "#/definitions/io.kestra.plugin.scripts.julia.Script" + }, + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.trino.Query" + }, + { + "$ref": "#/definitions/io.kestra.plugin.compress.ArchiveCompress" + }, + { + "$ref": "#/definitions/io.kestra.plugin.compress.ArchiveDecompress" + }, + { + "$ref": "#/definitions/io.kestra.plugin.compress.FileCompress" + }, + { + "$ref": "#/definitions/io.kestra.plugin.compress.FileDecompress" + }, + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.duckdb.Query" + }, + { + "$ref": "#/definitions/io.kestra.plugin.dataform.cli.DataformCLI" + }, + { + "$ref": "#/definitions/io.kestra.plugin.couchbase.Query" + }, + { + "$ref": "#/definitions/io.kestra.plugin.serdes.avro.AvroToIon" + }, + { + "$ref": "#/definitions/io.kestra.plugin.serdes.avro.IonToAvro" + }, + { + "$ref": "#/definitions/io.kestra.plugin.serdes.csv.CsvToIon" + }, + { + "$ref": "#/definitions/io.kestra.plugin.serdes.csv.IonToCsv" + }, + { + "$ref": "#/definitions/io.kestra.plugin.serdes.excel.ExcelToIon" + }, + { + "$ref": "#/definitions/io.kestra.plugin.serdes.excel.IonToExcel" + }, + { + "$ref": "#/definitions/io.kestra.plugin.serdes.json.IonToJson" + }, + { + "$ref": "#/definitions/io.kestra.plugin.serdes.json.JsonToIon" + }, + { + "$ref": "#/definitions/io.kestra.plugin.serdes.parquet.IonToParquet" + }, + { + "$ref": "#/definitions/io.kestra.plugin.serdes.parquet.ParquetToIon" + }, + { + "$ref": "#/definitions/io.kestra.plugin.serdes.xml.IonToXml" + }, + { + "$ref": "#/definitions/io.kestra.plugin.serdes.xml.XmlToIon" + }, + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.sqlserver.Batch" + }, + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.sqlserver.Query" + }, + { + "$ref": "#/definitions/io.kestra.plugin.powerbi.RefreshGroupDataset" + }, + { + "$ref": "#/definitions/io.kestra.core.tasks.scripts.Node" + }, + { + "$ref": "#/definitions/io.kestra.plugin.scripts.node.Commands" + }, + { + "$ref": "#/definitions/io.kestra.plugin.scripts.node.Script" + }, + { + "$ref": "#/definitions/io.kestra.plugin.docker.Build" + }, + { + "$ref": "#/definitions/io.kestra.plugin.docker.Run" + }, + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.oracle.Batch" + }, + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.oracle.Query" + }, + { + "$ref": "#/definitions/io.kestra.plugin.zendesk.tickets.Create" + }, + { + "$ref": "#/definitions/io.kestra.plugin.debezium.mysql.Capture" + }, + { + "$ref": "#/definitions/io.kestra.plugin.debezium.sqlserver.Capture" + }, + { + "$ref": "#/definitions/io.kestra.plugin.cassandra.astradb.Query" + }, + { + "$ref": "#/definitions/io.kestra.plugin.cassandra.standard.Query" + }, + { + "$ref": "#/definitions/io.kestra.plugin.openai.ChatCompletion" + }, + { + "$ref": "#/definitions/io.kestra.plugin.openai.CreateImage" + }, + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.postgresql.Batch" + }, + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.postgresql.CopyIn" + }, + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.postgresql.CopyOut" + }, + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.postgresql.Query" + }, + { + "$ref": "#/definitions/io.kestra.core.tasks.scripts.Bash" + }, + { + "$ref": "#/definitions/io.kestra.plugin.scripts.shell.Commands" + }, + { + "$ref": "#/definitions/io.kestra.plugin.scripts.shell.Script" + }, + { + "$ref": "#/definitions/io.kestra.plugin.scripts.r.Commands" + }, + { + "$ref": "#/definitions/io.kestra.plugin.scripts.r.Script" + }, + { + "$ref": "#/definitions/io.kestra.plugin.debezium.db2.Capture" + }, + { + "$ref": "#/definitions/io.kestra.plugin.tika.Parse" + }, + { + "$ref": "#/definitions/io.kestra.plugin.jira.issues.Create" + }, + { + "$ref": "#/definitions/io.kestra.plugin.jira.issues.CreateComment" + }, + { + "$ref": "#/definitions/io.kestra.plugin.debezium.oracle.Capture" + }, + { + "$ref": "#/definitions/io.kestra.plugin.git.Clone" + }, + { + "$ref": "#/definitions/io.kestra.plugin.git.Push" + }, + { + "$ref": "#/definitions/io.kestra.plugin.git.PushFlows" + }, + { + "$ref": "#/definitions/io.kestra.plugin.git.PushNamespaceFiles" + }, + { + "$ref": "#/definitions/io.kestra.plugin.git.Sync" + }, + { + "$ref": "#/definitions/io.kestra.plugin.git.SyncFlows" + }, + { + "$ref": "#/definitions/io.kestra.plugin.git.SyncNamespaceFiles" + }, + { + "$ref": "#/definitions/io.kestra.plugin.servicenow.Post" + }, + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.sybase.Query" + }, + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.as400.Query" + }, + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.clickhouse.BulkInsert" + }, + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.clickhouse.Query" + }, + { + "$ref": "#/definitions/io.kestra.plugin.scripts.groovy.Eval" + }, + { + "$ref": "#/definitions/io.kestra.plugin.scripts.groovy.FileTransform" + }, + { + "$ref": "#/definitions/io.kestra.plugin.redis.list.ListPop" + }, + { + "$ref": "#/definitions/io.kestra.plugin.redis.list.ListPush" + }, + { + "$ref": "#/definitions/io.kestra.plugin.redis.pubsub.Publish" + }, + { + "$ref": "#/definitions/io.kestra.plugin.redis.string.Delete" + }, + { + "$ref": "#/definitions/io.kestra.plugin.redis.string.Get" + }, + { + "$ref": "#/definitions/io.kestra.plugin.redis.string.Set" + }, + { + "$ref": "#/definitions/io.kestra.plugin.linear.issues.Create" + }, + { + "$ref": "#/definitions/io.kestra.plugin.malloy.CLI" + }, + { + "$ref": "#/definitions/io.kestra.plugin.neo4j.Batch" + }, + { + "$ref": "#/definitions/io.kestra.plugin.neo4j.Query" + }, + { + "$ref": "#/definitions/io.kestra.plugin.hubspot.tickets.Create" + }, + { + "$ref": "#/definitions/io.kestra.plugin.scripts.powershell.Commands" + }, + { + "$ref": "#/definitions/io.kestra.plugin.scripts.powershell.Script" + }, + { + "$ref": "#/definitions/io.kestra.plugin.cloudquery.CloudQueryCLI" + }, + { + "$ref": "#/definitions/io.kestra.plugin.cloudquery.Sync" + }, + { + "$ref": "#/definitions/io.kestra.plugin.nats.Consume" + }, + { + "$ref": "#/definitions/io.kestra.plugin.nats.Produce" + }, + { + "$ref": "#/definitions/io.kestra.plugin.amqp.Consume" + }, + { + "$ref": "#/definitions/io.kestra.plugin.amqp.CreateQueue" + }, + { + "$ref": "#/definitions/io.kestra.plugin.amqp.DeclareExchange" + }, + { + "$ref": "#/definitions/io.kestra.plugin.amqp.Publish" + }, + { + "$ref": "#/definitions/io.kestra.plugin.amqp.QueueBind" + }, + { + "$ref": "#/definitions/io.kestra.plugin.notifications.discord.DiscordExecution" + }, + { + "$ref": "#/definitions/io.kestra.plugin.notifications.discord.DiscordIncomingWebhook" + }, + { + "$ref": "#/definitions/io.kestra.plugin.notifications.google.GoogleChatExecution" + }, + { + "$ref": "#/definitions/io.kestra.plugin.notifications.google.GoogleChatIncomingWebhook" + }, + { + "$ref": "#/definitions/io.kestra.plugin.notifications.mail.MailExecution" + }, + { + "$ref": "#/definitions/io.kestra.plugin.notifications.mail.MailSend" + }, + { + "$ref": "#/definitions/io.kestra.plugin.notifications.opsgenie.OpsgenieAlert" + }, + { + "$ref": "#/definitions/io.kestra.plugin.notifications.opsgenie.OpsgenieExecution" + }, + { + "$ref": "#/definitions/io.kestra.plugin.notifications.pagerduty.PagerDutyAlert" + }, + { + "$ref": "#/definitions/io.kestra.plugin.notifications.pagerduty.PagerDutyExecution" + }, + { + "$ref": "#/definitions/io.kestra.plugin.notifications.sendgrid.SendGridMailExecution" + }, + { + "$ref": "#/definitions/io.kestra.plugin.notifications.sendgrid.SendGridMailSend" + }, + { + "$ref": "#/definitions/io.kestra.plugin.notifications.sentry.SentryAlert" + }, + { + "$ref": "#/definitions/io.kestra.plugin.notifications.sentry.SentryExecution" + }, + { + "$ref": "#/definitions/io.kestra.plugin.notifications.slack.SlackExecution" + }, + { + "$ref": "#/definitions/io.kestra.plugin.notifications.slack.SlackIncomingWebhook" + }, + { + "$ref": "#/definitions/io.kestra.plugin.notifications.teams.TeamsExecution" + }, + { + "$ref": "#/definitions/io.kestra.plugin.notifications.teams.TeamsIncomingWebhook" + }, + { + "$ref": "#/definitions/io.kestra.plugin.notifications.telegram.TelegramExecution" + }, + { + "$ref": "#/definitions/io.kestra.plugin.notifications.telegram.TelegramSend" + }, + { + "$ref": "#/definitions/io.kestra.plugin.notifications.twilio.TwilioAlert" + }, + { + "$ref": "#/definitions/io.kestra.plugin.notifications.twilio.TwilioExecution" + }, + { + "$ref": "#/definitions/io.kestra.plugin.notifications.whatsapp.WhatsAppExecution" + }, + { + "$ref": "#/definitions/io.kestra.plugin.notifications.whatsapp.WhatsAppIncomingWebhook" + }, + { + "$ref": "#/definitions/io.kestra.plugin.notifications.zenduty.ZendutyAlert" + }, + { + "$ref": "#/definitions/io.kestra.plugin.notifications.zenduty.ZendutyExecution" + }, + { + "$ref": "#/definitions/io.kestra.plugin.azure.batch.job.Create" + }, + { + "$ref": "#/definitions/io.kestra.plugin.azure.batch.pool.Resize" + }, + { + "$ref": "#/definitions/io.kestra.plugin.azure.cli.AzCLI" + }, + { + "$ref": "#/definitions/io.kestra.plugin.azure.eventhubs.Consume" + }, + { + "$ref": "#/definitions/io.kestra.plugin.azure.eventhubs.Produce" + }, + { + "$ref": "#/definitions/io.kestra.plugin.azure.storage.blob.Copy" + }, + { + "$ref": "#/definitions/io.kestra.plugin.azure.storage.blob.Delete" + }, + { + "$ref": "#/definitions/io.kestra.plugin.azure.storage.blob.DeleteList" + }, + { + "$ref": "#/definitions/io.kestra.plugin.azure.storage.blob.Download" + }, + { + "$ref": "#/definitions/io.kestra.plugin.azure.storage.blob.Downloads" + }, + { + "$ref": "#/definitions/io.kestra.plugin.azure.storage.blob.List" + }, + { + "$ref": "#/definitions/io.kestra.plugin.azure.storage.blob.SharedAccess" + }, + { + "$ref": "#/definitions/io.kestra.plugin.azure.storage.blob.Upload" + }, + { + "$ref": "#/definitions/io.kestra.plugin.azure.storage.table.Bulk" + }, + { + "$ref": "#/definitions/io.kestra.plugin.azure.storage.table.Delete" + }, + { + "$ref": "#/definitions/io.kestra.plugin.azure.storage.table.Get" + }, + { + "$ref": "#/definitions/io.kestra.plugin.azure.storage.table.List" + }, + { + "$ref": "#/definitions/io.kestra.plugin.transform.grok.TransformItems" + }, + { + "$ref": "#/definitions/io.kestra.plugin.transform.grok.TransformValue" + }, + { + "$ref": "#/definitions/io.kestra.plugin.kubernetes.PodCreate" + }, + { + "$ref": "#/definitions/io.kestra.plugin.kubernetes.kubectl.Apply" + }, + { + "$ref": "#/definitions/io.kestra.plugin.transform.jsonata.TransformItems" + }, + { + "$ref": "#/definitions/io.kestra.plugin.transform.jsonata.TransformValue" + }, + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.vertica.Batch" + }, + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.vertica.Query" + }, + { + "$ref": "#/definitions/io.kestra.plugin.solace.Consume" + }, + { + "$ref": "#/definitions/io.kestra.plugin.solace.Produce" + }, + { + "$ref": "#/definitions/io.kestra.plugin.ansible.cli.AnsibleCLI" + }, + { + "$ref": "#/definitions/io.kestra.plugin.elasticsearch.Bulk" + }, + { + "$ref": "#/definitions/io.kestra.plugin.elasticsearch.Get" + }, + { + "$ref": "#/definitions/io.kestra.plugin.elasticsearch.Load" + }, + { + "$ref": "#/definitions/io.kestra.plugin.elasticsearch.Put" + }, + { + "$ref": "#/definitions/io.kestra.plugin.elasticsearch.Request" + }, + { + "$ref": "#/definitions/io.kestra.plugin.elasticsearch.Scroll" + }, + { + "$ref": "#/definitions/io.kestra.plugin.elasticsearch.Search" + }, + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.pinot.Query" + }, + { + "$ref": "#/definitions/io.kestra.plugin.aws.athena.Query" + }, + { + "$ref": "#/definitions/io.kestra.plugin.aws.cli.AwsCLI" + }, + { + "$ref": "#/definitions/io.kestra.plugin.aws.dynamodb.DeleteItem" + }, + { + "$ref": "#/definitions/io.kestra.plugin.aws.dynamodb.GetItem" + }, + { + "$ref": "#/definitions/io.kestra.plugin.aws.dynamodb.PutItem" + }, + { + "$ref": "#/definitions/io.kestra.plugin.aws.dynamodb.Query" + }, + { + "$ref": "#/definitions/io.kestra.plugin.aws.dynamodb.Scan" + }, + { + "$ref": "#/definitions/io.kestra.plugin.aws.ecr.GetAuthToken" + }, + { + "$ref": "#/definitions/io.kestra.plugin.aws.eventbridge.PutEvents" + }, + { + "$ref": "#/definitions/io.kestra.plugin.aws.kinesis.PutRecords" + }, + { + "$ref": "#/definitions/io.kestra.plugin.aws.lambda.Invoke" + }, + { + "$ref": "#/definitions/io.kestra.plugin.aws.s3.Copy" + }, + { + "$ref": "#/definitions/io.kestra.plugin.aws.s3.CreateBucket" + }, + { + "$ref": "#/definitions/io.kestra.plugin.aws.s3.Delete" + }, + { + "$ref": "#/definitions/io.kestra.plugin.aws.s3.DeleteList" + }, + { + "$ref": "#/definitions/io.kestra.plugin.aws.s3.Download" + }, + { + "$ref": "#/definitions/io.kestra.plugin.aws.s3.Downloads" + }, + { + "$ref": "#/definitions/io.kestra.plugin.aws.s3.List" + }, + { + "$ref": "#/definitions/io.kestra.plugin.aws.s3.Upload" + }, + { + "$ref": "#/definitions/io.kestra.plugin.aws.sns.Publish" + }, + { + "$ref": "#/definitions/io.kestra.plugin.aws.sqs.Consume" + }, + { + "$ref": "#/definitions/io.kestra.plugin.aws.sqs.Publish" + }, + { + "$ref": "#/definitions/io.kestra.plugin.sqlmesh.cli.SQLMeshCLI" + }, + { + "$ref": "#/definitions/io.kestra.plugin.surrealdb.Query" + }, + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.vectorwise.Batch" + }, + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.vectorwise.Query" + }, + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.arrowflight.Query" + }, + { + "$ref": "#/definitions/io.kestra.plugin.terraform.cli.TerraformCLI" + }, + { + "$ref": "#/definitions/io.kestra.plugin.debezium.mongodb.Capture" + }, + { + "$ref": "#/definitions/io.kestra.plugin.fs.ftp.Delete" + }, + { + "$ref": "#/definitions/io.kestra.plugin.fs.ftp.Download" + }, + { + "$ref": "#/definitions/io.kestra.plugin.fs.ftp.Downloads" + }, + { + "$ref": "#/definitions/io.kestra.plugin.fs.ftp.List" + }, + { + "$ref": "#/definitions/io.kestra.plugin.fs.ftp.Move" + }, + { + "$ref": "#/definitions/io.kestra.plugin.fs.ftp.Upload" + }, + { + "$ref": "#/definitions/io.kestra.plugin.fs.ftp.Uploads" + }, + { + "$ref": "#/definitions/io.kestra.plugin.fs.ftps.Delete" + }, + { + "$ref": "#/definitions/io.kestra.plugin.fs.ftps.Download" + }, + { + "$ref": "#/definitions/io.kestra.plugin.fs.ftps.Downloads" + }, + { + "$ref": "#/definitions/io.kestra.plugin.fs.ftps.List" + }, + { + "$ref": "#/definitions/io.kestra.plugin.fs.ftps.Move" + }, + { + "$ref": "#/definitions/io.kestra.plugin.fs.ftps.Upload" + }, + { + "$ref": "#/definitions/io.kestra.plugin.fs.ftps.Uploads" + }, + { + "$ref": "#/definitions/io.kestra.plugin.fs.sftp.Delete" + }, + { + "$ref": "#/definitions/io.kestra.plugin.fs.sftp.Download" + }, + { + "$ref": "#/definitions/io.kestra.plugin.fs.sftp.Downloads" + }, + { + "$ref": "#/definitions/io.kestra.plugin.fs.sftp.List" + }, + { + "$ref": "#/definitions/io.kestra.plugin.fs.sftp.Move" + }, + { + "$ref": "#/definitions/io.kestra.plugin.fs.sftp.Upload" + }, + { + "$ref": "#/definitions/io.kestra.plugin.fs.sftp.Uploads" + }, + { + "$ref": "#/definitions/io.kestra.plugin.fs.smb.Delete" + }, + { + "$ref": "#/definitions/io.kestra.plugin.fs.smb.Download" + }, + { + "$ref": "#/definitions/io.kestra.plugin.fs.smb.Downloads" + }, + { + "$ref": "#/definitions/io.kestra.plugin.fs.smb.List" + }, + { + "$ref": "#/definitions/io.kestra.plugin.fs.smb.Move" + }, + { + "$ref": "#/definitions/io.kestra.plugin.fs.smb.Upload" + }, + { + "$ref": "#/definitions/io.kestra.plugin.fs.smb.Uploads" + }, + { + "$ref": "#/definitions/io.kestra.plugin.fs.ssh.Command" + }, + { + "$ref": "#/definitions/io.kestra.plugin.kafka.Consume" + }, + { + "$ref": "#/definitions/io.kestra.plugin.kafka.Produce" + }, + { + "$ref": "#/definitions/io.kestra.plugin.airflow.dags.TriggerDagRun" + }, + { + "$ref": "#/definitions/io.kestra.core.tasks.scripts.Python" + }, + { + "$ref": "#/definitions/io.kestra.plugin.scripts.python.Commands" + }, + { + "$ref": "#/definitions/io.kestra.plugin.scripts.python.Script" + }, + { + "$ref": "#/definitions/io.kestra.plugin.crypto.openpgp.Decrypt" + }, + { + "$ref": "#/definitions/io.kestra.plugin.crypto.openpgp.Encrypt" + }, + { + "$ref": "#/definitions/io.kestra.plugin.scripts.jython.Eval" + }, + { + "$ref": "#/definitions/io.kestra.plugin.scripts.jython.FileTransform" + }, + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.mysql.Batch" + }, + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.mysql.Query" + }, + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.snowflake.Download" + }, + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.snowflake.Query" + }, + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.snowflake.Upload" + }, + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.redshift.Query" + }, + { + "$ref": "#/definitions/io.kestra.plugin.ldap.Add" + }, + { + "$ref": "#/definitions/io.kestra.plugin.ldap.Delete" + }, + { + "$ref": "#/definitions/io.kestra.plugin.ldap.IonToLdif" + }, + { + "$ref": "#/definitions/io.kestra.plugin.ldap.LdifToIon" + }, + { + "$ref": "#/definitions/io.kestra.plugin.ldap.Modify" + }, + { + "$ref": "#/definitions/io.kestra.plugin.ldap.Search" + }, + { + "$ref": "#/definitions/io.kestra.plugin.databricks.cluster.CreateCluster" + }, + { + "$ref": "#/definitions/io.kestra.plugin.databricks.cluster.DeleteCluster" + }, + { + "$ref": "#/definitions/io.kestra.plugin.databricks.dbfs.Download" + }, + { + "$ref": "#/definitions/io.kestra.plugin.databricks.dbfs.Upload" + }, + { + "$ref": "#/definitions/io.kestra.plugin.databricks.job.CreateJob" + }, + { + "$ref": "#/definitions/io.kestra.plugin.databricks.job.SubmitRun" + }, + { + "$ref": "#/definitions/io.kestra.plugin.databricks.sql.Query" + }, + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.sqlite.Query" + }, + { + "$ref": "#/definitions/io.kestra.plugin.mqtt.Publish" + }, + { + "$ref": "#/definitions/io.kestra.plugin.mqtt.Subscribe" + }, + { + "$ref": "#/definitions/io.kestra.plugin.pulsar.Consume" + }, + { + "$ref": "#/definitions/io.kestra.plugin.pulsar.Produce" + }, + { + "$ref": "#/definitions/io.kestra.plugin.pulsar.Reader" + }, + { + "$ref": "#/definitions/io.kestra.plugin.dbt.cli.Build" + }, + { + "$ref": "#/definitions/io.kestra.plugin.dbt.cli.Compile" + }, + { + "$ref": "#/definitions/io.kestra.plugin.dbt.cli.DbtCLI" + }, + { + "$ref": "#/definitions/io.kestra.plugin.dbt.cli.Deps" + }, + { + "$ref": "#/definitions/io.kestra.plugin.dbt.cli.Freshness" + }, + { + "$ref": "#/definitions/io.kestra.plugin.dbt.cli.List" + }, + { + "$ref": "#/definitions/io.kestra.plugin.dbt.cli.Run" + }, + { + "$ref": "#/definitions/io.kestra.plugin.dbt.cli.Seed" + }, + { + "$ref": "#/definitions/io.kestra.plugin.dbt.cli.Setup" + }, + { + "$ref": "#/definitions/io.kestra.plugin.dbt.cli.Snapshot" + }, + { + "$ref": "#/definitions/io.kestra.plugin.dbt.cli.Test" + }, + { + "$ref": "#/definitions/io.kestra.plugin.dbt.cloud.CheckStatus" + }, + { + "$ref": "#/definitions/io.kestra.plugin.dbt.cloud.TriggerRun" + }, + { + "$ref": "#/definitions/io.kestra.plugin.jdbc.dremio.Query" + }, + { + "$ref": "#/definitions/io.kestra.plugin.googleworkspace.drive.Create" + }, + { + "$ref": "#/definitions/io.kestra.plugin.googleworkspace.drive.Delete" + }, + { + "$ref": "#/definitions/io.kestra.plugin.googleworkspace.drive.Download" + }, + { + "$ref": "#/definitions/io.kestra.plugin.googleworkspace.drive.Export" + }, + { + "$ref": "#/definitions/io.kestra.plugin.googleworkspace.drive.List" + }, + { + "$ref": "#/definitions/io.kestra.plugin.googleworkspace.drive.Upload" + }, + { + "$ref": "#/definitions/io.kestra.plugin.googleworkspace.sheets.Read" + }, + { + "$ref": "#/definitions/io.kestra.plugin.googleworkspace.sheets.ReadRange" + }, + { + "$ref": "#/definitions/io.kestra.plugin.airbyte.cloud.jobs.Reset" + }, + { + "$ref": "#/definitions/io.kestra.plugin.airbyte.cloud.jobs.Sync" + }, + { + "$ref": "#/definitions/io.kestra.plugin.airbyte.connections.CheckStatus" + }, + { + "$ref": "#/definitions/io.kestra.plugin.airbyte.connections.Sync" + }, + { + "$ref": "#/definitions/io.kestra.plugin.fivetran.connectors.Sync" + } + ] + } + } + }, + "io.kestra.plugin.kubernetes.models.SideCar": { + "type": "object", + "properties": { + "image": { + "$dynamic": true, + "type": "string", + "title": "The image used for the file sidecar container.", + "default": "busybox", + "markdownDescription": "Default value is : `busybox`" + } + } + }, + "io.kestra.plugin.ldap.Add": { + "type": "object", + "properties": { + "allowFailure": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "description": { + "type": "string" + }, + "disabled": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "hostname": { + "$dynamic": true, + "type": "string", + "title": "Hostname", + "markdownDescription": "Hostname for connection." + }, + "id": { + "type": "string", + "minLength": 1, + "pattern": "^[a-zA-Z0-9][a-zA-Z0-9_-]*" + }, + "inputs": { + "$dynamic": true, + "title": "URI(s) of input file(s)", + "markdownDescription": "List of URI(s) of file(s) containing LDIF formatted entries to input into LDAP.", + "type": "array", + "items": { + "$dynamic": true, + "type": "string" + } + }, + "logLevel": { + "type": "string", + "enum": ["ERROR", "WARN", "INFO", "DEBUG", "TRACE"] + }, + "password": { + "$dynamic": true, + "type": "string", + "title": "Password", + "markdownDescription": "User password for connection." + }, + "port": { + "$dynamic": true, + "type": "string", + "title": "Port", + "markdownDescription": "A whole number describing the port for connection." + }, + "retry": { + "oneOf": [ + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Constant-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Exponential-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Random-2" + } + ] + }, + "timeout": { + "type": "string", + "format": "duration" + }, + "type": { + "const": "io.kestra.plugin.ldap.Add" + }, + "userDn": { + "$dynamic": true, + "type": "string", + "title": "User DN", + "markdownDescription": "User DN for connection." + }, + "workerGroup": { + "$ref": "#/definitions/io.kestra.core.models.tasks.WorkerGroup" + } + }, + "required": [ + "hostname", + "id", + "inputs", + "password", + "port", + "type", + "userDn" + ], + "title": "Insert entries in LDAP.", + "markdownDescription": "Creates a new entry, if allowed, for each line of provided LDIF files.##### Examples\n\u003E Insert entries in LDAP server.\n```yaml\ndescription: What your task is supposed to do and why.\nuserDn: cn=admin,dc=orga,dc=en\npassword: admin\ninputs:\n - \"{{outputs.someTask.uri_of_ldif_formated_file}}\"\nhostname: 0.0.0.0\nport: 18060\n```" + }, + "io.kestra.plugin.ldap.Delete": { + "type": "object", + "properties": { + "allowFailure": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "description": { + "type": "string" + }, + "disabled": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "hostname": { + "$dynamic": true, + "type": "string", + "title": "Hostname", + "markdownDescription": "Hostname for connection." + }, + "id": { + "type": "string", + "minLength": 1, + "pattern": "^[a-zA-Z0-9][a-zA-Z0-9_-]*" + }, + "inputs": { + "$dynamic": true, + "title": "File(s) URI(s) containing Distinguished-Name(s)", + "markdownDescription": "Targeted DN(s) in the LDAP.", + "type": "array", + "items": { + "$dynamic": true, + "type": "string" + } + }, + "logLevel": { + "type": "string", + "enum": ["ERROR", "WARN", "INFO", "DEBUG", "TRACE"] + }, + "password": { + "$dynamic": true, + "type": "string", + "title": "Password", + "markdownDescription": "User password for connection." + }, + "port": { + "$dynamic": true, + "type": "string", + "title": "Port", + "markdownDescription": "A whole number describing the port for connection." + }, + "retry": { + "oneOf": [ + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Constant-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Exponential-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Random-2" + } + ] + }, + "timeout": { + "type": "string", + "format": "duration" + }, + "type": { + "const": "io.kestra.plugin.ldap.Delete" + }, + "userDn": { + "$dynamic": true, + "type": "string", + "title": "User DN", + "markdownDescription": "User DN for connection." + }, + "workerGroup": { + "$ref": "#/definitions/io.kestra.core.models.tasks.WorkerGroup" + } + }, + "required": [ + "hostname", + "id", + "inputs", + "password", + "port", + "type", + "userDn" + ], + "title": "Remove entries in LDAP.", + "markdownDescription": "Remove entries based on a targeted DN list.##### Examples\n\u003E \n```yaml\ndescription: What your task is supposed to do and why.\nuserDn: cn=admin,dc=orga,dc=fr\npassword: admin\ninputs:\n - \"{{outputs.someTask.uri_of_ldif_formated_file}}\"\nhostname: 0.0.0.0\nport: 15060\n```" + }, + "io.kestra.plugin.ldap.IonToLdif": { + "type": "object", + "properties": { + "allowFailure": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "description": { + "type": "string" + }, + "disabled": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "id": { + "type": "string", + "minLength": 1, + "pattern": "^[a-zA-Z0-9][a-zA-Z0-9_-]*" + }, + "inputs": { + "$dynamic": true, + "title": "URI(s) of file(s) containing ION entries.", + "type": "array", + "items": { + "$dynamic": true, + "type": "string" + } + }, + "logLevel": { + "type": "string", + "enum": ["ERROR", "WARN", "INFO", "DEBUG", "TRACE"] + }, + "retry": { + "oneOf": [ + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Constant-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Exponential-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Random-2" + } + ] + }, + "timeout": { + "type": "string", + "format": "duration" + }, + "type": { + "const": "io.kestra.plugin.ldap.IonToLdif" + }, + "workerGroup": { + "$ref": "#/definitions/io.kestra.core.models.tasks.WorkerGroup" + } + }, + "required": ["id", "inputs", "type"], + "title": "Unionises ION entries.", + "markdownDescription": "Transform .ion files to .ldif ones.##### Examples\n\u003E YAML : Make LDIF entries from ION ones.\n```yaml\ndescription: What your task is supposed to do and why.\ninputs:\n - {{some_uri}}\n - {{some_other_uri}}\n```\n\n\u003E INPUT example : here's an ION file content that may be inputted :\n```yaml\n# simple entry\n{dn:\"cn=bob@orga.com,ou=diffusion_list,dc=orga,dc=com\",attributes:{description:[\"Some description\",\"Some other description\"],someOtherAttribute:[\"perhaps\",\"perhapsAgain\"]}}\n# modify changeRecord\n{dn:\"cn=triss@orga.com,ou=diffusion_list,dc=orga,dc=com\",changeType:\"modify\",modifications:[{operation:\"DELETE\",attribute:\"description\",values:[\"Some description 3\"]},{operation:\"ADD\",attribute:\"description\",values:[\"Some description 4\"]},{operation:\"REPLACE\",attribute:\"someOtherAttribute\",values:[\"Loves herself more\"]}]}\n# delete changeRecord\n{dn:\"cn=triss@orga.com,ou=diffusion_list,dc=orga,dc=com\",changeType:\"delete\"}\n# moddn changeRecord (it is mandatory to specify a newrdn and a deleteoldrdn)\n{dn:\"cn=triss@orga.com,ou=diffusion_list,dc=orga,dc=com\",changeType:\"moddn\",newDn:{newrdn:\"cn=triss@orga.com\",deleteoldrdn:false,newsuperior:\"ou=expeople,dc=example,dc=com\"}}\n# moddn changeRecord without new superior (it is optional to specify a new superior field)\n{dn:\"cn=triss@orga.com,ou=diffusion_list,dc=orga,dc=com\",changeType:\"moddn\",newDn:{newrdn:\"cn=triss@orga.com\",deleteoldrdn:true}}\n\n```\n\n\u003E OUTPUT example : here's an LDIF file content that may be outputted :\n```yaml\n# simple entry\ndn: cn=bob@orga.com,ou=diffusion_list,dc=orga,dc=com\ndescription: Some description\nsomeOtherAttribute: perhaps\ndescription: Some other description\nsomeOtherAttribute: perhapsAgain\n\n# modify changeRecord\ndn: cn=triss@orga.com,ou=diffusion_list,dc=orga,dc=com\nchangetype: modify\ndelete: description\ndescription: Some description 3\n-\nadd: description\ndescription: Some description 4\n-\nreplace: someOtherAttribute\nsomeOtherAttribute: Loves herself more\n-\n\n# delete changeRecord\ndn: cn=triss@orga.com,ou=diffusion_list,dc=orga,dc=com\nchangetype: delete\n\n# moddn with new superior\ndn: cn=triss@orga.com,ou=diffusion_list,dc=orga,dc=com\nchangetype: moddn\nnewrdn: cn=triss@orga.com\ndeleteoldrdn: 0\nnewsuperior: ou=expeople,dc=example,dc=com\n\n# moddn without new superior\ndn: cn=triss@orga.com,ou=diffusion_list,dc=orga,dc=com\nchangetype: moddn\nnewrdn: cn=triss@orga.com\ndeleteoldrdn: 1\n\n```" + }, + "io.kestra.plugin.ldap.LdifToIon": { + "type": "object", + "properties": { + "allowFailure": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "description": { + "type": "string" + }, + "disabled": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "id": { + "type": "string", + "minLength": 1, + "pattern": "^[a-zA-Z0-9][a-zA-Z0-9_-]*" + }, + "inputs": { + "$dynamic": true, + "title": "URI(s) of file(s) containing LDIF entries.", + "type": "array", + "items": { + "$dynamic": true, + "type": "string" + } + }, + "logLevel": { + "type": "string", + "enum": ["ERROR", "WARN", "INFO", "DEBUG", "TRACE"] + }, + "retry": { + "oneOf": [ + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Constant-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Exponential-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Random-2" + } + ] + }, + "timeout": { + "type": "string", + "format": "duration" + }, + "type": { + "const": "io.kestra.plugin.ldap.LdifToIon" + }, + "workerGroup": { + "$ref": "#/definitions/io.kestra.core.models.tasks.WorkerGroup" + } + }, + "required": ["id", "inputs", "type"], + "title": "Ionise LDIF entries.", + "markdownDescription": "Transform .ldif files to .ion ones.##### Examples\n\u003E Make ION entries from LDIF ones.\n```yaml\ndescription: What your task is supposed to do and why.\ninputs:\n - {{some_uri}}\n - {{some_other_uri}}\n```\n\n\u003E INPUT example : here's an LDIF file content that may be inputted :\n```yaml\n# simple entry\ndn: cn=bob@orga.com,ou=diffusion_list,dc=orga,dc=com\ndescription: Some description\nsomeOtherAttribute: perhaps\ndescription: Some other description\nsomeOtherAttribute: perhapsAgain\n\n# modify changeRecord\ndn: cn=triss@orga.com,ou=diffusion_list,dc=orga,dc=com\nchangetype: modify\ndelete: description\ndescription: Some description 3\n-\nadd: description\ndescription: Some description 4\n-\nreplace: someOtherAttribute\nsomeOtherAttribute: Loves herself more\n-\n\n# delete changeRecord\ndn: cn=triss@orga.com,ou=diffusion_list,dc=orga,dc=com\nchangetype: delete\n\n# moddn and modrdn are equals, what's mandatory is to specify in the following order : newrdn -\u003E deleteoldrdn -\u003E (optional) newsuperior\ndn: cn=triss@orga.com,ou=diffusion_list,dc=orga,dc=com\nchangetype: modrdn\nnewrdn: cn=triss@orga.com\ndeleteoldrdn: 0\nnewsuperior: ou=expeople,dc=example,dc=com\n\n# moddn without new superior\ndn: cn=triss@orga.com,ou=diffusion_list,dc=orga,dc=com\nchangetype: moddn\nnewrdn: cn=triss@orga.com\ndeleteoldrdn: 1\n\n```\n\n\u003E OUTPUT example : here's an ION file content that may be outputted :\n```yaml\n# simple entry\n{dn:\"cn=bob@orga.com,ou=diffusion_list,dc=orga,dc=com\",attributes:{description:[\"Some description\",\"Some other description\"],someOtherAttribute:[\"perhaps\",\"perhapsAgain\"]}}\n# modify changeRecord\n{dn:\"cn=triss@orga.com,ou=diffusion_list,dc=orga,dc=com\",changeType:\"modify\",modifications:[{operation:\"DELETE\",attribute:\"description\",values:[\"Some description 3\"]},{operation:\"ADD\",attribute:\"description\",values:[\"Some description 4\"]},{operation:\"REPLACE\",attribute:\"someOtherAttribute\",values:[\"Loves herself more\"]}]}\n# delete changeRecord\n{dn:\"cn=triss@orga.com,ou=diffusion_list,dc=orga,dc=com\",changeType:\"delete\"}\n# moddn changeRecord (it is mandatory to specify a newrdn and a deleteoldrdn)\n{dn:\"cn=triss@orga.com,ou=diffusion_list,dc=orga,dc=com\",changeType:\"moddn\",newDn:{newrdn:\"cn=triss@orga.com\",deleteoldrdn:false,newsuperior:\"ou=expeople,dc=example,dc=com\"}}\n# moddn changeRecord without new superior (it is optional to specify a new superior field)\n{dn:\"cn=triss@orga.com,ou=diffusion_list,dc=orga,dc=com\",changeType:\"moddn\",newDn:{newrdn:\"cn=triss@orga.com\",deleteoldrdn:true}}\n\n```" + }, + "io.kestra.plugin.ldap.Modify": { + "type": "object", + "properties": { + "allowFailure": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "description": { + "type": "string" + }, + "disabled": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "hostname": { + "$dynamic": true, + "type": "string", + "title": "Hostname", + "markdownDescription": "Hostname for connection." + }, + "id": { + "type": "string", + "minLength": 1, + "pattern": "^[a-zA-Z0-9][a-zA-Z0-9_-]*" + }, + "inputs": { + "$dynamic": true, + "title": "URI(s) of input file(s)", + "markdownDescription": "List of URI(s) of file(s) containing LDIF formatted entries to modify into LDAP. Entries must provide a changeType field.", + "type": "array", + "items": { + "$dynamic": true, + "type": "string" + } + }, + "logLevel": { + "type": "string", + "enum": ["ERROR", "WARN", "INFO", "DEBUG", "TRACE"] + }, + "password": { + "$dynamic": true, + "type": "string", + "title": "Password", + "markdownDescription": "User password for connection." + }, + "port": { + "$dynamic": true, + "type": "string", + "title": "Port", + "markdownDescription": "A whole number describing the port for connection." + }, + "retry": { + "oneOf": [ + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Constant-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Exponential-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Random-2" + } + ] + }, + "timeout": { + "type": "string", + "format": "duration" + }, + "type": { + "const": "io.kestra.plugin.ldap.Modify" + }, + "userDn": { + "$dynamic": true, + "type": "string", + "title": "User DN", + "markdownDescription": "User DN for connection." + }, + "workerGroup": { + "$ref": "#/definitions/io.kestra.core.models.tasks.WorkerGroup" + } + }, + "required": [ + "hostname", + "id", + "inputs", + "password", + "port", + "type", + "userDn" + ], + "title": "Modify entries in LDAP.", + "markdownDescription": "Modify, Delete or Add attributes or DNs following LDIF changeType fields of each entries provided.##### Examples\n\u003E Modify entries in LDAP server.\n```yaml\ndescription: What your task is supposed to do and why.\nuserDn: cn=admin,dc=orga,dc=en\npassword: admin\ninputs:\n - \"{{outputs.someTask.uri_of_ldif_change_record_formated_file}}\"\nhostname: 0.0.0.0\nport: 18060\n```" + }, + "io.kestra.plugin.ldap.Search": { + "type": "object", + "properties": { + "allowFailure": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "attributes": { + "$dynamic": true, + "title": "Attributes", + "default": ["*"], + "markdownDescription": "Specific attributes to retrieve from the filtered entries. Retrieves all attributes by default.\nSepcial attributes may be specified :\n\"+\" -\u003E OPERATIONAL_ATTRIBUTES\n\"1.1\" -\u003E NO_ATTRIBUTES\n\"0.0\" -\u003E ALL_ATTRIBUTES_EXCEPT_OPERATIONAL\n `--\u003E This special attribute canno't be combined with other attributes and the search will ignore everything else.\n\n\nDefault value is : `- '*'`\n\nDefault value is : `- '*'`", + "type": "array", + "items": { + "$dynamic": true, + "type": "string" + } + }, + "baseDn": { + "$dynamic": true, + "type": "string", + "title": "Base DN", + "default": "ou=system", + "markdownDescription": "Base DN target in the LDAP.\n\nDefault value is : `ou=system`" + }, + "description": { + "type": "string" + }, + "disabled": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "filter": { + "$dynamic": true, + "type": "string", + "title": "Filter", + "default": "(objectclass=*)", + "markdownDescription": "Filter for the search in the LDAP.\n\nDefault value is : `(objectclass=*)`" + }, + "hostname": { + "$dynamic": true, + "type": "string", + "title": "Hostname", + "markdownDescription": "Hostname for connection." + }, + "id": { + "type": "string", + "minLength": 1, + "pattern": "^[a-zA-Z0-9][a-zA-Z0-9_-]*" + }, + "logLevel": { + "type": "string", + "enum": ["ERROR", "WARN", "INFO", "DEBUG", "TRACE"] + }, + "password": { + "$dynamic": true, + "type": "string", + "title": "Password", + "markdownDescription": "User password for connection." + }, + "port": { + "$dynamic": true, + "type": "string", + "title": "Port", + "markdownDescription": "A whole number describing the port for connection." + }, + "retry": { + "oneOf": [ + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Constant-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Exponential-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Random-2" + } + ] + }, + "sub": { + "allOf": [ + { + "$ref": "#/definitions/com.unboundid.ldap.sdk.SearchScope" + }, + { + "$dynamic": true, + "title": "SUB", + "default": { + "name": "SUB" + }, + "markdownDescription": "Search scope of the filter :\nBASE -- Indicates that only the entry specified by the base DN should be considered.\nONE -- Indicates that only entries that are immediate subordinates of the entry specified by the base DN (but not the base entry itself) should be considered.\nSUB -- Indicates that the base entry itself and any subordinate entries (to any depth) should be considered.\nSUBORDINATE_SUBTREE -- Indicates that any subordinate entries (to any depth) below the entry specified by the base DN should be considered, but the base entry itself should not be considered, as described in draft-sermersheim-ldap-subordinate-scope.\n\nDefault value is : `name: SUB`" + } + ] + }, + "timeout": { + "type": "string", + "format": "duration" + }, + "type": { + "const": "io.kestra.plugin.ldap.Search" + }, + "userDn": { + "$dynamic": true, + "type": "string", + "title": "User DN", + "markdownDescription": "User DN for connection." + }, + "workerGroup": { + "$ref": "#/definitions/io.kestra.core.models.tasks.WorkerGroup" + } + }, + "required": ["hostname", "id", "password", "port", "type", "userDn"], + "title": "Retrieves entries in LDAP.", + "markdownDescription": "Search and list entries based on a filter list for each base DN target.##### Examples\n\u003E Retrieve LDAP entries.\nIn this example, assuming that their is exactly one entry matching each of our filter,\nthe outputs of the task would be four entries in this order (since we search two times in the same baseDn) :\n(dn, description, mail) of {melusine, metatron, melusine, metatron}.\n```yaml\ndescription: What your task is supposed to do and why.\nuserDn: cn=admin,dc=orga,dc=en\npassword: admin\nbaseDn: ou=people,dc=orga,dc=en\nfilter: (|(sn=melusine*)(sn=metatron*))\nattributes:\n - description\n - mail\nhostname: 0.0.0.0\nport: 15060\n```" + }, + "io.kestra.plugin.linear.issues.Create": { + "type": "object", + "properties": { + "allowFailure": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "description": { + "$dynamic": true, + "type": "string", + "title": "Issue description" + }, + "disabled": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "id": { + "type": "string", + "minLength": 1, + "pattern": "^[a-zA-Z0-9][a-zA-Z0-9_-]*" + }, + "labels": { + "$dynamic": true, + "title": "Names of labels", + "type": "array", + "items": { + "$dynamic": true, + "type": "string" + } + }, + "logLevel": { + "type": "string", + "enum": ["ERROR", "WARN", "INFO", "DEBUG", "TRACE"] + }, + "retry": { + "oneOf": [ + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Constant-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Exponential-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Random-2" + } + ] + }, + "team": { + "$dynamic": true, + "type": "string", + "title": "Team name" + }, + "timeout": { + "type": "string", + "format": "duration" + }, + "title": { + "$dynamic": true, + "type": "string", + "title": "Issue title" + }, + "token": { + "$dynamic": true, + "type": "string", + "title": "Linear API token" + }, + "type": { + "const": "io.kestra.plugin.linear.issues.Create" + }, + "workerGroup": { + "$ref": "#/definitions/io.kestra.core.models.tasks.WorkerGroup" + } + }, + "required": ["id", "type"], + "title": "Opens issue in Linear", + "markdownDescription": "##### Examples\n\u003E \n```yaml\n- id: linear\n type: io.kestra.plugin.linear.issues.Create\n token: your_api_token\n team: MyTeamName\n title: Workflow failed\n description: \"{{ execution.id }} has failed on {{ taskrun.startDate }}. See the link below for more details\"\n labels:\n - Bug\n - Workflow\n\n```" + }, + "io.kestra.plugin.malloy.CLI": { + "type": "object", + "properties": { + "allowFailure": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "beforeCommands": { + "$dynamic": true, + "title": "A list of commands that will run before the `commands`, allowing to set up the environment e.g. `pip install -r requirements.txt`.", + "type": "array", + "items": { + "$dynamic": true, + "type": "string" + } + }, + "commands": { + "$dynamic": true, + "title": "The commands to run.", + "type": "array", + "items": { + "$dynamic": true, + "type": "string" + } + }, + "containerImage": { + "$dynamic": true, + "type": "string", + "title": "The task runner container image, only used if the task runner is container-based.", + "default": "ghcr.io/kestra-io/malloy", + "markdownDescription": "Default value is : `ghcr.io/kestra-io/malloy`" + }, + "description": { + "type": "string" + }, + "disabled": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "docker": { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.scripts.exec.scripts.models.DockerOptions" + }, + { + "$deprecated": true, + "title": "Deprecated - use the 'taskRunner' property instead.", + "markdownDescription": "Only used if the `taskRunner` property is not set" + } + ] + }, + "env": { + "$dynamic": true, + "type": "object", + "title": "Additional environment variables for the current process.", + "additionalProperties": { + "type": "string" + } + }, + "failFast": { + "$dynamic": false, + "type": "boolean", + "title": "Fail the task on the first command with a non-zero status.", + "default": true, + "markdownDescription": "If set to `false` all commands will be executed one after the other. The final state of task execution is determined by the last command. Note that this property maybe be ignored if a non compatible interpreter is specified.\nYou can also disable it if your interpreter does not support the `set -e`option.\n\nDefault value is : `true`" + }, + "id": { + "type": "string", + "minLength": 1, + "pattern": "^[a-zA-Z0-9][a-zA-Z0-9_-]*" + }, + "inputFiles": { + "$dynamic": true, + "title": "The files to create on the local filesystem. It can be a map or a JSON object.", + "oneOf": [ + { + "type": "object" + }, + { + "type": "string" + } + ] + }, + "interpreter": { + "$dynamic": false, + "title": "Which interpreter to use.", + "default": ["/bin/sh", "-c"], + "minItems": 1, + "markdownDescription": "Default value is : `- /bin/sh\n- -c`\n\nDefault value is : `- /bin/sh\n- -c`", + "type": "array", + "items": { + "$dynamic": false, + "type": "string" + } + }, + "logLevel": { + "type": "string", + "enum": ["ERROR", "WARN", "INFO", "DEBUG", "TRACE"] + }, + "namespaceFiles": { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.core.models.tasks.NamespaceFiles" + }, + { + "$dynamic": false, + "title": "Inject namespace files.", + "markdownDescription": "Inject namespace files to this task. When enabled, it will, by default, load all namespace files into the working directory. However, you can use the `include` or `exclude` properties to limit which namespace files will be injected." + } + ] + }, + "outputDirectory": { + "$deprecated": true, + "type": "boolean", + "title": "Whether to setup the output directory mechanism.", + "default": "false", + "markdownDescription": "Required to use the {{ outputDir }} expression. Note that it could increase the starting time. Deprecated, use the `outputFiles` property instead.\n\nDefault value is : `\"false\"`" + }, + "outputFiles": { + "$dynamic": true, + "title": "The files from the local filesystem to send to Kestra's internal storage.", + "markdownDescription": "Must be a list of [glob](https://en.wikipedia.org/wiki/Glob_(programming)) expressions relative to the current working directory, some examples: `my-dir/**`, `my-dir/*/**` or `my-dir/my-file.txt`.", + "type": "array", + "items": { + "$dynamic": true, + "type": "string" + } + }, + "retry": { + "oneOf": [ + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Constant-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Exponential-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Random-2" + } + ] + }, + "runner": { + "$deprecated": true, + "$dynamic": false, + "type": "string", + "enum": ["PROCESS", "DOCKER"], + "title": "Deprecated - use the 'taskRunner' property instead.", + "markdownDescription": "Only used if the `taskRunner` property is not set" + }, + "targetOS": { + "type": "string", + "enum": ["LINUX", "WINDOWS", "AUTO"], + "title": "The target operating system where the script will run.", + "default": "AUTO", + "markdownDescription": "Default value is : `AUTO`" + }, + "taskRunner": { + "oneOf": [ + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.scripts.runner.docker.Docker" + }, + { + "$dynamic": false, + "title": "The task runner to use.", + "markdownDescription": "Task runners are provided by plugins, each have their own properties." + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.runner.Process" + }, + { + "$dynamic": false, + "title": "The task runner to use.", + "markdownDescription": "Task runners are provided by plugins, each have their own properties." + } + ] + } + ] + }, + "timeout": { + "type": "string", + "format": "duration" + }, + "type": { + "const": "io.kestra.plugin.malloy.CLI" + }, + "warningOnStdErr": { + "$dynamic": false, + "type": "boolean", + "title": "Whether to set the task state to `WARNING` if any `stdErr` is emitted.", + "default": true, + "markdownDescription": "Default value is : `true`" + }, + "workerGroup": { + "$ref": "#/definitions/io.kestra.core.models.tasks.WorkerGroup" + } + }, + "required": ["id", "type"], + "title": "Execute one or more Malloy commands from the Command Line Interface.", + "markdownDescription": "##### Examples\n\u003E Create a Malloy script and run the malloy-cli run command.\n```yaml\nid: malloy\nnamespace: company.team\n\ntasks:\n - id: run_malloy\n type: io.kestra.plugin.malloy.CLI\n inputFiles:\n model.malloy: |\n source: my_model is duckdb.table('https://huggingface.co/datasets/kestra/datasets/raw/main/csv/iris.csv')\n\n run: my_model -\u003E {\n group_by: variety\n aggregate:\n avg_petal_width is avg(petal_width)\n avg_petal_length is avg(petal_length)\n avg_sepal_width is avg(sepal_width)\n avg_sepal_length is avg(sepal_length)\n }\n commands:\n - malloy-cli run model.malloy\n\n```" + }, + "io.kestra.plugin.minio.Copy": { + "type": "object", + "properties": { + "accessKeyId": { + "$dynamic": true, + "type": "string", + "title": "Access Key Id for authentication." + }, + "allowFailure": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "bucket": { + "$dynamic": true, + "type": "string", + "title": "The bucket name." + }, + "delete": { + "$dynamic": false, + "type": "boolean", + "title": "Whether to delete the source file after download.", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "description": { + "type": "string" + }, + "disabled": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "endpoint": { + "$dynamic": true, + "type": "string", + "title": "URL to the MinIO endpoint." + }, + "from": { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.minio.Copy-CopyObjectFrom" + }, + { + "$dynamic": false, + "title": "The source bucket and key." + } + ] + }, + "id": { + "type": "string", + "minLength": 1, + "pattern": "^[a-zA-Z0-9][a-zA-Z0-9_-]*" + }, + "logLevel": { + "type": "string", + "enum": ["ERROR", "WARN", "INFO", "DEBUG", "TRACE"] + }, + "region": { + "$dynamic": true, + "type": "string", + "title": "MinIO region with which the SDK should communicate." + }, + "retry": { + "oneOf": [ + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Constant-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Exponential-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Random-2" + } + ] + }, + "secretKeyId": { + "$dynamic": true, + "type": "string", + "title": "Secret Key Id for authentication." + }, + "timeout": { + "type": "string", + "format": "duration" + }, + "to": { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.minio.Copy-CopyObject" + }, + { + "$dynamic": false, + "title": "The destination bucket and key." + } + ] + }, + "type": { + "const": "io.kestra.plugin.minio.Copy" + }, + "workerGroup": { + "$ref": "#/definitions/io.kestra.core.models.tasks.WorkerGroup" + } + }, + "required": ["id", "type"], + "title": "Copy a file between buckets.", + "markdownDescription": "##### Examples\n\u003E \n```yaml\naccessKeyId: \"\u003Caccess-key\u003E\"\nsecretKeyId: \"\u003Csecret-key\u003E\"\nregion: \"eu-central-1\"\nfrom:\n bucket: \"my-bucket\"\n key: \"path/to/file\"\nto:\n bucket: \"my-bucket2\"\n key: \"path/to/file2\"\n```" + }, + "io.kestra.plugin.minio.Copy-CopyObject": { + "type": "object", + "properties": { + "bucket": { + "$dynamic": true, + "type": "string", + "title": "The bucket name" + }, + "key": { + "$dynamic": true, + "type": "string", + "title": "The bucket key" + } + } + }, + "io.kestra.plugin.minio.Copy-CopyObjectFrom": { + "type": "object", + "properties": { + "bucket": { + "$dynamic": true, + "type": "string", + "title": "The bucket name" + }, + "key": { + "$dynamic": true, + "type": "string", + "title": "The bucket key" + }, + "versionId": { + "$dynamic": true, + "type": "string", + "title": "The specific version of the object." + } + } + }, + "io.kestra.plugin.minio.CreateBucket": { + "type": "object", + "properties": { + "accessKeyId": { + "$dynamic": true, + "type": "string", + "title": "Access Key Id for authentication." + }, + "allowFailure": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "bucket": { + "$dynamic": true, + "type": "string", + "title": "The bucket name." + }, + "description": { + "type": "string" + }, + "disabled": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "endpoint": { + "$dynamic": true, + "type": "string", + "title": "URL to the MinIO endpoint." + }, + "id": { + "type": "string", + "minLength": 1, + "pattern": "^[a-zA-Z0-9][a-zA-Z0-9_-]*" + }, + "logLevel": { + "type": "string", + "enum": ["ERROR", "WARN", "INFO", "DEBUG", "TRACE"] + }, + "objectLockEnabledForBucket": { + "$dynamic": false, + "type": "boolean", + "title": "Specifies whether you want Object Lock to be enabled for the new bucket." + }, + "region": { + "$dynamic": true, + "type": "string", + "title": "MinIO region with which the SDK should communicate." + }, + "retry": { + "oneOf": [ + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Constant-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Exponential-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Random-2" + } + ] + }, + "secretKeyId": { + "$dynamic": true, + "type": "string", + "title": "Secret Key Id for authentication." + }, + "timeout": { + "type": "string", + "format": "duration" + }, + "type": { + "const": "io.kestra.plugin.minio.CreateBucket" + }, + "workerGroup": { + "$ref": "#/definitions/io.kestra.core.models.tasks.WorkerGroup" + } + }, + "required": ["id", "type"], + "title": "Create a bucket", + "markdownDescription": "##### Examples\n\u003E Create a new bucket with some options\n```yaml\naccessKeyId: \"\u003Caccess-key\u003E\"\nsecretKeyId: \"\u003Csecret-key\u003E\"\nregion: \"eu-central-1\"\nbucket: \"my-bucket\"\n```" + }, + "io.kestra.plugin.minio.Delete": { + "type": "object", + "properties": { + "accessKeyId": { + "$dynamic": true, + "type": "string", + "title": "Access Key Id for authentication." + }, + "allowFailure": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "bucket": { + "$dynamic": true, + "type": "string", + "title": "The bucket name." + }, + "bypassGovernanceRetention": { + "$dynamic": false, + "type": "boolean", + "title": "Indicates whether Object Lock should bypass Governance-mode restrictions to process this operation." + }, + "description": { + "type": "string" + }, + "disabled": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "endpoint": { + "$dynamic": true, + "type": "string", + "title": "URL to the MinIO endpoint." + }, + "id": { + "type": "string", + "minLength": 1, + "pattern": "^[a-zA-Z0-9][a-zA-Z0-9_-]*" + }, + "key": { + "$dynamic": true, + "type": "string", + "title": "The key to delete." + }, + "logLevel": { + "type": "string", + "enum": ["ERROR", "WARN", "INFO", "DEBUG", "TRACE"] + }, + "region": { + "$dynamic": true, + "type": "string", + "title": "MinIO region with which the SDK should communicate." + }, + "retry": { + "oneOf": [ + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Constant-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Exponential-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Random-2" + } + ] + }, + "secretKeyId": { + "$dynamic": true, + "type": "string", + "title": "Secret Key Id for authentication." + }, + "timeout": { + "type": "string", + "format": "duration" + }, + "type": { + "const": "io.kestra.plugin.minio.Delete" + }, + "workerGroup": { + "$ref": "#/definitions/io.kestra.core.models.tasks.WorkerGroup" + } + }, + "required": ["id", "type"], + "title": "Delete a file from a bucket.", + "markdownDescription": "##### Examples\n\u003E \n```yaml\naccessKeyId: \"\u003Caccess-key\u003E\"\nsecretKeyId: \"\u003Csecret-key\u003E\"\nregion: \"eu-central-1\"\nbucket: \"my-bucket\"\nkey: \"path/to/file\"\n```" + }, + "io.kestra.plugin.minio.DeleteList": { + "type": "object", + "properties": { + "accessKeyId": { + "$dynamic": true, + "type": "string", + "title": "Access Key Id for authentication." + }, + "allowFailure": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "bucket": { + "$dynamic": true, + "type": "string", + "title": "The bucket name." + }, + "concurrent": { + "$dynamic": false, + "type": "integer", + "title": "Number of concurrent parallels deletion", + "minimum": 2 + }, + "delimiter": { + "$dynamic": true, + "type": "string", + "title": "A delimiter is a character you use to group keys." + }, + "description": { + "type": "string" + }, + "disabled": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "endpoint": { + "$dynamic": true, + "type": "string", + "title": "URL to the MinIO endpoint." + }, + "errorOnEmpty": { + "$dynamic": false, + "type": "boolean", + "title": "raise an error if the file is not found", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "filter": { + "$dynamic": false, + "type": "string", + "enum": ["FILES", "DIRECTORY", "BOTH"], + "title": "The type of objects to filter: files, directory, or both.", + "default": "BOTH", + "markdownDescription": "Default value is : `BOTH`" + }, + "id": { + "type": "string", + "minLength": 1, + "pattern": "^[a-zA-Z0-9][a-zA-Z0-9_-]*" + }, + "logLevel": { + "type": "string", + "enum": ["ERROR", "WARN", "INFO", "DEBUG", "TRACE"] + }, + "marker": { + "$dynamic": true, + "type": "string", + "title": "Marker is where you want to start listing from.", + "markdownDescription": "Start listing after this specified key. Marker can be any key in the bucket." + }, + "maxKeys": { + "$dynamic": true, + "type": "integer", + "title": "Sets the maximum number of keys returned in the response.", + "default": 1000, + "markdownDescription": "By default, the action returns up to 1,000 key names. The response might contain fewer keys but will never contain more.\n\nDefault value is : `1000`" + }, + "prefix": { + "$dynamic": true, + "type": "string", + "title": "Limits the response to keys that begin with the specified prefix." + }, + "regexp": { + "$dynamic": true, + "type": "string", + "title": "A regexp to filter on full key.", + "markdownDescription": "ex:\n`regExp: .*` to match all files\n`regExp: .*2020-01-0.\\\\.csv` to match files between 01 and 09 of january ending with `.csv`" + }, + "region": { + "$dynamic": true, + "type": "string", + "title": "MinIO region with which the SDK should communicate." + }, + "retry": { + "oneOf": [ + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Constant-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Exponential-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Random-2" + } + ] + }, + "secretKeyId": { + "$dynamic": true, + "type": "string", + "title": "Secret Key Id for authentication." + }, + "timeout": { + "type": "string", + "format": "duration" + }, + "type": { + "const": "io.kestra.plugin.minio.DeleteList" + }, + "workerGroup": { + "$ref": "#/definitions/io.kestra.core.models.tasks.WorkerGroup" + } + }, + "required": ["id", "type"], + "title": "Delete a list of keys on a bucket.", + "markdownDescription": "##### Examples\n\u003E \n```yaml\naccessKeyId: \"\u003Caccess-key\u003E\"\nsecretKeyId: \"\u003Csecret-key\u003E\"\nregion: \"eu-central-1\"\nbucket: \"my-bucket\"\nprefix: \"sub-dir\"\n```" + }, + "io.kestra.plugin.minio.Download": { + "type": "object", + "properties": { + "accessKeyId": { + "$dynamic": true, + "type": "string", + "title": "Access Key Id for authentication." + }, + "allowFailure": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "bucket": { + "$dynamic": true, + "type": "string", + "title": "The bucket name." + }, + "description": { + "type": "string" + }, + "disabled": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "endpoint": { + "$dynamic": true, + "type": "string", + "title": "URL to the MinIO endpoint." + }, + "id": { + "type": "string", + "minLength": 1, + "pattern": "^[a-zA-Z0-9][a-zA-Z0-9_-]*" + }, + "key": { + "$dynamic": true, + "type": "string", + "title": "The key of a file to download." + }, + "logLevel": { + "type": "string", + "enum": ["ERROR", "WARN", "INFO", "DEBUG", "TRACE"] + }, + "region": { + "$dynamic": true, + "type": "string", + "title": "MinIO region with which the SDK should communicate." + }, + "retry": { + "oneOf": [ + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Constant-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Exponential-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Random-2" + } + ] + }, + "secretKeyId": { + "$dynamic": true, + "type": "string", + "title": "Secret Key Id for authentication." + }, + "timeout": { + "type": "string", + "format": "duration" + }, + "type": { + "const": "io.kestra.plugin.minio.Download" + }, + "versionId": { + "$dynamic": true, + "type": "string", + "title": "The specific version of the object." + }, + "workerGroup": { + "$ref": "#/definitions/io.kestra.core.models.tasks.WorkerGroup" + } + }, + "required": ["id", "type"], + "title": "Download a file from a bucket.", + "markdownDescription": "##### Examples\n\u003E \n```yaml\naccessKeyId: \"\u003Caccess-key\u003E\"\nsecretKeyId: \"\u003Csecret-key\u003E\"\nregion: \"eu-central-1\"\nbucket: \"my-bucket\"\nkey: \"path/to/file\"\n```" + }, + "io.kestra.plugin.minio.Downloads": { + "type": "object", + "properties": { + "accessKeyId": { + "$dynamic": true, + "type": "string", + "title": "Access Key Id for authentication." + }, + "action": { + "$dynamic": true, + "type": "string", + "enum": ["MOVE", "DELETE", "NONE"], + "title": "The action to perform on the retrieved files. If using 'NONE' make sure to handle the files inside your flow to avoid infinite triggering." + }, + "allowFailure": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "bucket": { + "$dynamic": true, + "type": "string", + "title": "The bucket name." + }, + "delimiter": { + "$dynamic": true, + "type": "string", + "title": "A delimiter is a character you use to group keys." + }, + "description": { + "type": "string" + }, + "disabled": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "endpoint": { + "$dynamic": true, + "type": "string", + "title": "URL to the MinIO endpoint." + }, + "filter": { + "$dynamic": false, + "type": "string", + "enum": ["FILES", "DIRECTORY", "BOTH"], + "title": "The type of objects to filter: files, directory, or both.", + "default": "BOTH", + "markdownDescription": "Default value is : `BOTH`" + }, + "id": { + "type": "string", + "minLength": 1, + "pattern": "^[a-zA-Z0-9][a-zA-Z0-9_-]*" + }, + "logLevel": { + "type": "string", + "enum": ["ERROR", "WARN", "INFO", "DEBUG", "TRACE"] + }, + "marker": { + "$dynamic": true, + "type": "string", + "title": "Marker is where you want to start listing from.", + "markdownDescription": "Start listing after this specified key. Marker can be any key in the bucket." + }, + "maxKeys": { + "$dynamic": true, + "type": "integer", + "title": "Sets the maximum number of keys returned in the response.", + "default": 1000, + "markdownDescription": "By default, the action returns up to 1,000 key names. The response might contain fewer keys but will never contain more.\n\nDefault value is : `1000`" + }, + "moveTo": { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.minio.Copy-CopyObject" + }, + { + "$dynamic": true, + "title": "The destination bucket and key for `MOVE` action." + } + ] + }, + "prefix": { + "$dynamic": true, + "type": "string", + "title": "Limits the response to keys that begin with the specified prefix." + }, + "regexp": { + "$dynamic": true, + "type": "string", + "title": "A regexp to filter on full key.", + "markdownDescription": "ex:\n`regExp: .*` to match all files\n`regExp: .*2020-01-0.\\\\.csv` to match files between 01 and 09 of january ending with `.csv`" + }, + "region": { + "$dynamic": true, + "type": "string", + "title": "MinIO region with which the SDK should communicate." + }, + "retry": { + "oneOf": [ + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Constant-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Exponential-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Random-2" + } + ] + }, + "secretKeyId": { + "$dynamic": true, + "type": "string", + "title": "Secret Key Id for authentication." + }, + "timeout": { + "type": "string", + "format": "duration" + }, + "type": { + "const": "io.kestra.plugin.minio.Downloads" + }, + "workerGroup": { + "$ref": "#/definitions/io.kestra.core.models.tasks.WorkerGroup" + } + }, + "required": ["action", "id", "type"], + "title": "Downloads multiple files from a bucket.", + "markdownDescription": "##### Examples\n\u003E \n```yaml\naccessKeyId: \"\u003Caccess-key\u003E\"\nsecretKeyId: \"\u003Csecret-key\u003E\"\nregion: \"eu-central-1\"\nbucket: \"my-bucket\"\nprefix: \"sub-dir\"\n```" + }, + "io.kestra.plugin.minio.List": { + "type": "object", + "properties": { + "accessKeyId": { + "$dynamic": true, + "type": "string", + "title": "Access Key Id for authentication." + }, + "allowFailure": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "bucket": { + "$dynamic": true, + "type": "string", + "title": "The bucket name." + }, + "delimiter": { + "$dynamic": true, + "type": "string", + "title": "A delimiter is a character you use to group keys." + }, + "description": { + "type": "string" + }, + "disabled": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "endpoint": { + "$dynamic": true, + "type": "string", + "title": "URL to the MinIO endpoint." + }, + "filter": { + "$dynamic": false, + "type": "string", + "enum": ["FILES", "DIRECTORY", "BOTH"], + "title": "The type of objects to filter: files, directory, or both.", + "default": "BOTH", + "markdownDescription": "Default value is : `BOTH`" + }, + "id": { + "type": "string", + "minLength": 1, + "pattern": "^[a-zA-Z0-9][a-zA-Z0-9_-]*" + }, + "includeVersions": { + "$dynamic": false, + "type": "boolean", + "title": "Indicates whether task should include versions in output.", + "default": true, + "markdownDescription": "Default value is : `true`" + }, + "logLevel": { + "type": "string", + "enum": ["ERROR", "WARN", "INFO", "DEBUG", "TRACE"] + }, + "marker": { + "$dynamic": true, + "type": "string", + "title": "Marker is where you want to start listing from.", + "markdownDescription": "Start listing after this specified key. Marker can be any key in the bucket." + }, + "maxKeys": { + "$dynamic": true, + "type": "integer", + "title": "Sets the maximum number of keys returned in the response.", + "default": 1000, + "markdownDescription": "By default, the action returns up to 1,000 key names. The response might contain fewer keys but will never contain more.\n\nDefault value is : `1000`" + }, + "prefix": { + "$dynamic": true, + "type": "string", + "title": "Limits the response to keys that begin with the specified prefix." + }, + "recursive": { + "$dynamic": false, + "type": "boolean", + "title": "Indicates whether it should look into subfolders.", + "default": true, + "markdownDescription": "Default value is : `true`" + }, + "regexp": { + "$dynamic": true, + "type": "string", + "title": "A regexp to filter on full key.", + "markdownDescription": "ex:\n`regExp: .*` to match all files\n`regExp: .*2020-01-0.\\\\.csv` to match files between 01 and 09 of january ending with `.csv`" + }, + "region": { + "$dynamic": true, + "type": "string", + "title": "MinIO region with which the SDK should communicate." + }, + "retry": { + "oneOf": [ + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Constant-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Exponential-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Random-2" + } + ] + }, + "secretKeyId": { + "$dynamic": true, + "type": "string", + "title": "Secret Key Id for authentication." + }, + "startAfter": { + "$dynamic": true, + "type": "string", + "title": "Limits the response to keys that ends with the specified string." + }, + "timeout": { + "type": "string", + "format": "duration" + }, + "type": { + "const": "io.kestra.plugin.minio.List" + }, + "workerGroup": { + "$ref": "#/definitions/io.kestra.core.models.tasks.WorkerGroup" + } + }, + "required": ["id", "type"], + "title": "List keys on a bucket.", + "markdownDescription": "##### Examples\n\u003E \n```yaml\naccessKeyId: \"\u003Caccess-key\u003E\"\nsecretKeyId: \"\u003Csecret-key\u003E\"\nregion: \"eu-central-1\"\nbucket: \"my-bucket\"\nprefix: \"sub-dir\"\n```" + }, + "io.kestra.plugin.minio.Trigger": { + "type": "object", + "properties": { + "accessKeyId": { + "$dynamic": true, + "type": "string", + "title": "Access Key Id for authentication." + }, + "action": { + "type": "string", + "enum": ["MOVE", "DELETE", "NONE"] + }, + "bucket": { + "type": "string" + }, + "conditions": { + "$dynamic": false, + "title": "List of conditions in order to limit the flow trigger.", + "type": "array", + "items": { + "oneOf": [ + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.DateTimeBetweenCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.DayWeekCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.DayWeekInMonthCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.ExecutionFlowCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.ExecutionLabelsCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.ExecutionNamespaceCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.ExecutionOutputsCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.ExecutionStatusCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.ExpressionCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.FlowCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.FlowNamespaceCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.HasRetryAttemptCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.MultipleCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.NotCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.OrCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.PublicHolidayCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.TimeBetweenCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.WeekendCondition" + }, + { + "$dynamic": false + } + ] + } + ] + } + }, + "delimiter": { + "type": "string" + }, + "description": { + "type": "string" + }, + "disabled": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "endpoint": { + "$dynamic": true, + "type": "string", + "title": "URL to the MinIO endpoint." + }, + "filter": { + "type": "string", + "enum": ["FILES", "DIRECTORY", "BOTH"], + "default": "BOTH", + "markdownDescription": "Default value is : `BOTH`" + }, + "id": { + "type": "string", + "title": "A unique ID for the whole flow.", + "minLength": 1, + "pattern": "^[a-zA-Z0-9][a-zA-Z0-9_-]*" + }, + "interval": { + "$dynamic": false, + "type": "string", + "format": "duration", + "title": "Interval between polling.", + "default": 60, + "markdownDescription": "The interval between 2 different polls of schedule, this can avoid to overload the remote system with too many calls. For most of the triggers that depend on external systems, a minimal interval must be at least PT30S.\nSee [ISO_8601 Durations](https://en.wikipedia.org/wiki/ISO_8601#Durations) for more information of available interval values.\n\nDefault value is : `60.000000000`" + }, + "labels": { + "title": "The labels to pass to the execution created.", + "type": "array", + "items": { + "$ref": "#/definitions/io.kestra.core.models.Label" + } + }, + "logLevel": { + "type": "string", + "enum": ["ERROR", "WARN", "INFO", "DEBUG", "TRACE"] + }, + "marker": { + "type": "string" + }, + "maxKeys": { + "type": "integer", + "default": 1000, + "markdownDescription": "Default value is : `1000`" + }, + "moveTo": { + "$ref": "#/definitions/io.kestra.plugin.minio.Copy-CopyObject" + }, + "prefix": { + "type": "string" + }, + "regexp": { + "type": "string" + }, + "region": { + "$dynamic": true, + "type": "string", + "title": "MinIO region with which the SDK should communicate." + }, + "secretKeyId": { + "$dynamic": true, + "type": "string", + "title": "Secret Key Id for authentication." + }, + "stopAfter": { + "$dynamic": false, + "title": "List of execution states after which a trigger should be stopped (a.k.a. disabled).", + "type": "array", + "items": { + "$dynamic": false, + "type": "string", + "enum": [ + "CREATED", + "RUNNING", + "PAUSED", + "RESTARTED", + "KILLING", + "SUCCESS", + "WARNING", + "FAILED", + "KILLED", + "CANCELLED", + "QUEUED", + "RETRYING", + "RETRIED" + ] + } + }, + "type": { + "const": "io.kestra.plugin.minio.Trigger" + }, + "workerGroup": { + "$ref": "#/definitions/io.kestra.core.models.tasks.WorkerGroup" + } + }, + "required": ["id", "type"], + "title": "Wait for files on a bucket.", + "markdownDescription": "This trigger will list every `interval` a bucket. You can search for all files in a bucket or directory in `from` or you can filter the files with a `regExp`. The detection is atomic, internally we do a list and interact only with files listed.\nOnce a file is detected, we download the file on internal storage and processed with declared `action` in order to move or delete the files from the bucket (to avoid double detection on new poll).##### Examples\n\u003E Wait for a list of files on a bucket and iterate through the files.\n```yaml\nid: minio-listen\nnamespace: company.team\n\ntasks:\n - id: each\n type: io.kestra.plugin.core.flow.EachSequential\n tasks:\n - id: return\n type: io.kestra.plugin.core.debug.Return\n format: \"{{ taskrun.value }}\"\n value: \"{{ trigger.objects | jq('.[].uri') }}\"\n\ntriggers:\n - id: watch\n type: io.kestra.plugin.minio.Trigger\n interval: \"PT5M\"\n accessKeyId: \"\u003Caccess-key\u003E\"\n secretKeyId: \"\u003Csecret-key\u003E\"\n region: \"eu-central-1\"\n bucket: \"my-bucket\"\n prefix: \"sub-dir\"\n action: MOVE\n moveTo: \n key: archive\n```\n\n\u003E Wait for a list of files on a bucket and iterate through the files. Delete files manually after processing to prevent infinite triggering.\n```yaml\nid: minio-listen\nnamespace: company.team\n\ntasks:\n - id: each\n type: io.kestra.plugin.core.flow.EachSequential\n tasks:\n - id: return\n type: io.kestra.plugin.core.debug.Return\n format: \"{{ taskrun.value }}\"\n - id: delete\n type: io.kestra.plugin.minio.Delete\n accessKeyId: \"\u003Caccess-key\u003E\"\n secretKeyId: \"\u003Csecret-key\u003E\"\n region: \"eu-central-1\"\n bucket: \"my-bucket\"\n key: \"{{ taskrun.value }}\"\n value: \"{{ trigger.objects | jq('.[].key') }}\"\n\ntriggers:\n - id: watch\n type: io.kestra.plugin.minio.Trigger\n interval: \"PT5M\"\n accessKeyId: \"\u003Caccess-key\u003E\"\n secretKeyId: \"\u003Csecret-key\u003E\"\n region: \"eu-central-1\"\n bucket: \"my-bucket\"\n prefix: \"sub-dir\"\n action: NONE\n```" + }, + "io.kestra.plugin.minio.Upload": { + "type": "object", + "properties": { + "accessKeyId": { + "$dynamic": true, + "type": "string", + "title": "Access Key Id for authentication." + }, + "allowFailure": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "bucket": { + "$dynamic": true, + "type": "string", + "title": "The bucket name." + }, + "contentType": { + "$dynamic": true, + "type": "string", + "title": "A standard MIME type describing the format of the contents." + }, + "description": { + "type": "string" + }, + "disabled": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "endpoint": { + "$dynamic": true, + "type": "string", + "title": "URL to the MinIO endpoint." + }, + "from": { + "$dynamic": true, + "title": "The file(s) to upload.", + "markdownDescription": "Can be a single file, a list of files or json array.", + "oneOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.minio.List" + }, + { + "type": "string" + } + ] + }, + "id": { + "type": "string", + "minLength": 1, + "pattern": "^[a-zA-Z0-9][a-zA-Z0-9_-]*" + }, + "key": { + "$dynamic": true, + "type": "string", + "title": "The key where to upload the file.", + "markdownDescription": "a full key (with filename) or the directory path if from is multiple files." + }, + "logLevel": { + "type": "string", + "enum": ["ERROR", "WARN", "INFO", "DEBUG", "TRACE"] + }, + "metadata": { + "$dynamic": true, + "type": "object", + "title": "A map of metadata to store with the object." + }, + "region": { + "$dynamic": true, + "type": "string", + "title": "MinIO region with which the SDK should communicate." + }, + "retry": { + "oneOf": [ + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Constant-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Exponential-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Random-2" + } + ] + }, + "secretKeyId": { + "$dynamic": true, + "type": "string", + "title": "Secret Key Id for authentication." + }, + "timeout": { + "type": "string", + "format": "duration" + }, + "type": { + "const": "io.kestra.plugin.minio.Upload" + }, + "workerGroup": { + "$ref": "#/definitions/io.kestra.core.models.tasks.WorkerGroup" + } + }, + "required": ["id", "type"], + "title": "Upload a file to a bucket.", + "markdownDescription": "##### Examples\n\u003E \n```yaml\naccessKeyId: \"\u003Caccess-key\u003E\"\nsecretKeyId: \"\u003Csecret-key\u003E\"\nregion: \"eu-central-1\"\nfrom: \"{{ inputs.file }}\"\nbucket: \"my-bucket\"\nkey: \"path/to/file\"\n```" + }, + "io.kestra.plugin.modal.cli.ModalCLI": { + "type": "object", + "properties": { + "allowFailure": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "beforeCommands": { + "$dynamic": true, + "title": "The commands to execute before the main list of commands", + "type": "array", + "items": { + "$dynamic": true, + "type": "string" + } + }, + "commands": { + "$dynamic": true, + "title": "The commands to run", + "minItems": 1, + "type": "array", + "items": { + "$dynamic": true, + "type": "string" + } + }, + "containerImage": { + "$dynamic": true, + "type": "string", + "title": "The task runner container image, only used if the task runner is container-based.", + "default": "ghcr.io/kestra-io/modal", + "markdownDescription": "Default value is : `ghcr.io/kestra-io/modal`" + }, + "description": { + "type": "string" + }, + "disabled": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "docker": { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.scripts.exec.scripts.models.DockerOptions" + }, + { + "$deprecated": true, + "$dynamic": false, + "title": "Deprecated, use 'taskRunner' instead" + } + ] + }, + "env": { + "$dynamic": true, + "type": "object", + "title": "Additional environment variables for the current process.", + "additionalProperties": { + "type": "string" + } + }, + "id": { + "type": "string", + "minLength": 1, + "pattern": "^[a-zA-Z0-9][a-zA-Z0-9_-]*" + }, + "inputFiles": { + "$dynamic": true, + "title": "The files to create on the local filesystem. It can be a map or a JSON object.", + "oneOf": [ + { + "type": "object" + }, + { + "type": "string" + } + ] + }, + "logLevel": { + "type": "string", + "enum": ["ERROR", "WARN", "INFO", "DEBUG", "TRACE"] + }, + "namespaceFiles": { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.core.models.tasks.NamespaceFiles" + }, + { + "$dynamic": false, + "title": "Inject namespace files.", + "markdownDescription": "Inject namespace files to this task. When enabled, it will, by default, load all namespace files into the working directory. However, you can use the `include` or `exclude` properties to limit which namespace files will be injected." + } + ] + }, + "outputFiles": { + "$dynamic": true, + "title": "The files from the local filesystem to send to Kestra's internal storage.", + "markdownDescription": "Must be a list of [glob](https://en.wikipedia.org/wiki/Glob_(programming)) expressions relative to the current working directory, some examples: `my-dir/**`, `my-dir/*/**` or `my-dir/my-file.txt`.", + "type": "array", + "items": { + "$dynamic": true, + "type": "string" + } + }, + "retry": { + "oneOf": [ + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Constant-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Exponential-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Random-2" + } + ] + }, + "taskRunner": { + "oneOf": [ + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.scripts.runner.docker.Docker" + }, + { + "$dynamic": false, + "title": "The task runner to use.", + "markdownDescription": "Task runners are provided by plugins, each have their own properties." + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.runner.Process" + }, + { + "$dynamic": false, + "title": "The task runner to use.", + "markdownDescription": "Task runners are provided by plugins, each have their own properties." + } + ] + } + ] + }, + "timeout": { + "type": "string", + "format": "duration" + }, + "type": { + "const": "io.kestra.plugin.modal.cli.ModalCLI" + }, + "workerGroup": { + "$ref": "#/definitions/io.kestra.core.models.tasks.WorkerGroup" + } + }, + "required": ["commands", "id", "type"], + "title": "Execute Modal commands from the Command Line Interface", + "markdownDescription": "##### Examples\n\u003E Execute a Python script on a GPU-powered instance in the cloud using [Modal](https://modal.com/). Make sure to add [the script](https://github.com/kestra-io/scripts/blob/main/modal/gpu.py) that you want to orchestrate as a Namespace File in the Editor and point to it in the `commands` section.\n```yaml\nid: modal\nnamespace: company.team\n\ntasks:\n - id: modal_cli\n type: io.kestra.plugin.modal.cli.ModalCLI\n namespaceFiles:\n enabled: true\n commands:\n - modal run scripts/gpu.py\n env:\n MODAL_TOKEN_ID: \"{{ secret('MODAL_TOKEN_ID') }}\"\n MODAL_TOKEN_SECRET: \"{{ secret('MODAL_TOKEN_SECRET') }}\"\n\n```\n\n\u003E Execute a Python script from Git on a cloud VM using [Modal](https://modal.com/).\n```yaml\nid: modal_git\nnamespace: company.team\n\ntasks:\n - id: repository\n type: io.kestra.plugin.core.flow.WorkingDirectory\n tasks:\n - id: clone\n type: io.kestra.plugin.git.Clone\n branch: main\n url: https://github.com/kestra-io/scripts\n\n - id: modal_cli\n type: io.kestra.plugin.modal.cli.ModalCLI\n commands:\n - modal run modal/getting_started.py\n env:\n MODAL_TOKEN_ID: \"{{ secret('MODAL_TOKEN_ID') }}\"\n MODAL_TOKEN_SECRET: \"{{ secret('MODAL_TOKEN_SECRET') }}\"\n\n```" + }, + "io.kestra.plugin.mongodb.Bulk": { + "type": "object", + "properties": { + "allowFailure": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "chunk": { + "$dynamic": true, + "type": "integer", + "title": "Chunk size for every bulk request.", + "default": 1000, + "markdownDescription": "Default value is : `1000`" + }, + "collection": { + "$dynamic": true, + "type": "string", + "title": "MongoDB collection." + }, + "connection": { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.mongodb.MongoDbConnection" + }, + { + "title": "MongoDB connection properties." + } + ] + }, + "database": { + "$dynamic": true, + "type": "string", + "title": "MongoDB database." + }, + "description": { + "type": "string" + }, + "disabled": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "from": { + "$dynamic": true, + "type": "string", + "title": "The source file." + }, + "id": { + "type": "string", + "minLength": 1, + "pattern": "^[a-zA-Z0-9][a-zA-Z0-9_-]*" + }, + "logLevel": { + "type": "string", + "enum": ["ERROR", "WARN", "INFO", "DEBUG", "TRACE"] + }, + "retry": { + "oneOf": [ + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Constant-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Exponential-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Random-2" + } + ] + }, + "timeout": { + "type": "string", + "format": "duration" + }, + "type": { + "const": "io.kestra.plugin.mongodb.Bulk" + }, + "workerGroup": { + "$ref": "#/definitions/io.kestra.core.models.tasks.WorkerGroup" + } + }, + "required": [ + "collection", + "connection", + "database", + "from", + "id", + "type" + ], + "title": "Execute [Bulk](https://www.mongodb.com/docs/manual/reference/method/Bulk/) request in MongoDB.", + "markdownDescription": "Here are the sample file contents that can be provided as input to Bulk task:\n```\n{ \"insertOne\" : {\"firstName\": \"John\", \"lastName\": \"Doe\", \"city\": \"Paris\"}}\n{ \"insertOne\" : {\"firstName\": \"Ravi\", \"lastName\": \"Singh\", \"city\": \"Mumbai\"}}\n{ \"deleteMany\": {\"filter\": {\"city\": \"Bengaluru\"}}}\n```\n##### Examples\n\u003E \n```yaml\nconnection:\n uri: \"mongodb://root:example@localhost:27017/?authSource=admin\"\ndatabase: \"my_database\"\ncollection: \"my_collection\"\nfrom: \"{{ inputs.file }}\"\n```" + }, + "io.kestra.plugin.mongodb.Delete": { + "type": "object", + "properties": { + "allowFailure": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "collection": { + "$dynamic": true, + "type": "string", + "title": "MongoDB collection." + }, + "connection": { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.mongodb.MongoDbConnection" + }, + { + "title": "MongoDB connection properties." + } + ] + }, + "database": { + "$dynamic": true, + "type": "string", + "title": "MongoDB database." + }, + "description": { + "type": "string" + }, + "disabled": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "filter": { + "$dynamic": true, + "title": "MongoDB BSON filter.", + "markdownDescription": "Can be a BSON string, or a map." + }, + "id": { + "type": "string", + "minLength": 1, + "pattern": "^[a-zA-Z0-9][a-zA-Z0-9_-]*" + }, + "logLevel": { + "type": "string", + "enum": ["ERROR", "WARN", "INFO", "DEBUG", "TRACE"] + }, + "operation": { + "$dynamic": false, + "type": "string", + "enum": ["DELETE_ONE", "DELETE_MANY"], + "title": "Operation to use.", + "default": "DELETE_ONE", + "markdownDescription": "Default value is : `DELETE_ONE`" + }, + "retry": { + "oneOf": [ + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Constant-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Exponential-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Random-2" + } + ] + }, + "timeout": { + "type": "string", + "format": "duration" + }, + "type": { + "const": "io.kestra.plugin.mongodb.Delete" + }, + "workerGroup": { + "$ref": "#/definitions/io.kestra.core.models.tasks.WorkerGroup" + } + }, + "required": ["collection", "connection", "database", "id", "type"], + "title": "Delete one or many documents from a MongoDB collection.", + "markdownDescription": "##### Examples\n\u003E \n```yaml\nconnection:\n uri: \"mongodb://root:example@localhost:27017/?authSource=admin\"\ndatabase: \"my_database\"\ncollection: \"my_collection\"\noperation: \"DELETE_ONE\"\nfilter:\n _id:\n $oid: 60930c39a982931c20ef6cd6\n```" + }, + "io.kestra.plugin.mongodb.Find": { + "type": "object", + "properties": { + "allowFailure": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "collection": { + "$dynamic": true, + "type": "string", + "title": "MongoDB collection." + }, + "connection": { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.mongodb.MongoDbConnection" + }, + { + "title": "MongoDB connection properties." + } + ] + }, + "database": { + "$dynamic": true, + "type": "string", + "title": "MongoDB database." + }, + "description": { + "type": "string" + }, + "disabled": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "filter": { + "$dynamic": true, + "title": "MongoDB BSON filter.", + "markdownDescription": "Can be a BSON string, or a map." + }, + "id": { + "type": "string", + "minLength": 1, + "pattern": "^[a-zA-Z0-9][a-zA-Z0-9_-]*" + }, + "limit": { + "$dynamic": true, + "type": "integer", + "title": "The number of records to return." + }, + "logLevel": { + "type": "string", + "enum": ["ERROR", "WARN", "INFO", "DEBUG", "TRACE"] + }, + "projection": { + "$dynamic": true, + "title": "MongoDB BSON projection.", + "markdownDescription": "Can be a BSON string, or a map." + }, + "retry": { + "oneOf": [ + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Constant-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Exponential-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Random-2" + } + ] + }, + "skip": { + "$dynamic": true, + "type": "integer", + "title": "The number of records to skip." + }, + "sort": { + "$dynamic": true, + "title": "MongoDB BSON sort.", + "markdownDescription": "Can be a BSON string, or a map." + }, + "store": { + "$dynamic": false, + "type": "boolean", + "title": "Whether to store the data from the query result into an ion serialized data file.", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "timeout": { + "type": "string", + "format": "duration" + }, + "type": { + "const": "io.kestra.plugin.mongodb.Find" + }, + "workerGroup": { + "$ref": "#/definitions/io.kestra.core.models.tasks.WorkerGroup" + } + }, + "required": ["collection", "connection", "database", "id", "type"], + "title": "Find documents from a MongoDB collection.", + "markdownDescription": "##### Examples\n\u003E \n```yaml\nconnection:\n uri: \"mongodb://root:example@localhost:27017/?authSource=admin\"\ndatabase: \"my_database\"\ncollection: \"my_collection\"\nfilter:\n _id:\n $oid: 60930c39a982931c20ef6cd6\n```" + }, + "io.kestra.plugin.mongodb.InsertOne": { + "type": "object", + "properties": { + "allowFailure": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "collection": { + "$dynamic": true, + "type": "string", + "title": "MongoDB collection." + }, + "connection": { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.mongodb.MongoDbConnection" + }, + { + "title": "MongoDB connection properties." + } + ] + }, + "database": { + "$dynamic": true, + "type": "string", + "title": "MongoDB database." + }, + "description": { + "type": "string" + }, + "disabled": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "document": { + "$dynamic": true, + "title": "MongoDB document.", + "markdownDescription": "Can be a BSON string, or a map." + }, + "id": { + "type": "string", + "minLength": 1, + "pattern": "^[a-zA-Z0-9][a-zA-Z0-9_-]*" + }, + "logLevel": { + "type": "string", + "enum": ["ERROR", "WARN", "INFO", "DEBUG", "TRACE"] + }, + "retry": { + "oneOf": [ + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Constant-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Exponential-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Random-2" + } + ] + }, + "timeout": { + "type": "string", + "format": "duration" + }, + "type": { + "const": "io.kestra.plugin.mongodb.InsertOne" + }, + "workerGroup": { + "$ref": "#/definitions/io.kestra.core.models.tasks.WorkerGroup" + } + }, + "required": [ + "collection", + "connection", + "database", + "document", + "id", + "type" + ], + "title": "Insert a document into a MongoDB collection.", + "markdownDescription": "##### Examples\n\u003E Insert a document with a map.\n```yaml\nconnection:\n uri: \"mongodb://root:example@localhost:27017/?authSource=admin\"\ndatabase: \"my_database\"\ncollection: \"my_collection\"\ndocument:\n _id:\n $oid: 60930c39a982931c20ef6cd6\n name: \"John Doe\"\n city: \"Paris\"\n```\n\n\u003E Insert a document from a JSON string.\n```yaml\nconnection:\n uri: \"mongodb://root:example@localhost:27017/?authSource=admin\"\ndatabase: \"my_database\"\ncollection: \"my_collection\"\ndocument: \"{{ outputs.task_id.data | json }}\"\n```" + }, + "io.kestra.plugin.mongodb.Load": { + "type": "object", + "properties": { + "allowFailure": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "chunk": { + "$dynamic": true, + "type": "integer", + "title": "Chunk size for every bulk request.", + "default": 1000, + "markdownDescription": "Default value is : `1000`" + }, + "collection": { + "$dynamic": true, + "type": "string", + "title": "MongoDB collection." + }, + "connection": { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.mongodb.MongoDbConnection" + }, + { + "title": "MongoDB connection properties." + } + ] + }, + "database": { + "$dynamic": true, + "type": "string", + "title": "MongoDB database." + }, + "description": { + "type": "string" + }, + "disabled": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "from": { + "$dynamic": true, + "type": "string", + "title": "The source file." + }, + "id": { + "type": "string", + "minLength": 1, + "pattern": "^[a-zA-Z0-9][a-zA-Z0-9_-]*" + }, + "idKey": { + "$dynamic": true, + "type": "string", + "title": "Use this key as ID." + }, + "logLevel": { + "type": "string", + "enum": ["ERROR", "WARN", "INFO", "DEBUG", "TRACE"] + }, + "removeIdKey": { + "$dynamic": true, + "type": "boolean", + "title": "Whether to remove idKey from the final document.", + "default": true, + "markdownDescription": "Default value is : `true`" + }, + "retry": { + "oneOf": [ + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Constant-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Exponential-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Random-2" + } + ] + }, + "timeout": { + "type": "string", + "format": "duration" + }, + "type": { + "const": "io.kestra.plugin.mongodb.Load" + }, + "workerGroup": { + "$ref": "#/definitions/io.kestra.core.models.tasks.WorkerGroup" + } + }, + "required": [ + "collection", + "connection", + "database", + "from", + "id", + "type" + ], + "title": "Bulk load documents in MongoDB using Kestra internal storage file.", + "markdownDescription": "##### Examples\n\u003E \n```yaml\nconnection:\n uri: \"mongodb://root:example@localhost:27017/?authSource=admin\"\ndatabase: \"my_database\"\ncollection: \"my_collection\"\nfrom: \"{{ inputs.file }}\"\n```" + }, + "io.kestra.plugin.mongodb.MongoDbConnection": { + "type": "object", + "properties": { + "uri": { + "$dynamic": true, + "type": "string", + "title": "Connection string to MongoDB server.", + "minLength": 1, + "markdownDescription": "[URL format](https://docs.mongodb.com/manual/reference/connection-string/) like `mongodb://mongodb0.example.com:27017`" + } + }, + "required": ["uri"] + }, + "io.kestra.plugin.mongodb.Update": { + "type": "object", + "properties": { + "allowFailure": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "collection": { + "$dynamic": true, + "type": "string", + "title": "MongoDB collection." + }, + "connection": { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.mongodb.MongoDbConnection" + }, + { + "title": "MongoDB connection properties." + } + ] + }, + "database": { + "$dynamic": true, + "type": "string", + "title": "MongoDB database." + }, + "description": { + "type": "string" + }, + "disabled": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "document": { + "$dynamic": true, + "title": "MongoDB document.", + "markdownDescription": "Can be a BSON string, or a map." + }, + "filter": { + "$dynamic": true, + "title": "MongoDB BSON filter.", + "markdownDescription": "Can be a BSON string, or a map." + }, + "id": { + "type": "string", + "minLength": 1, + "pattern": "^[a-zA-Z0-9][a-zA-Z0-9_-]*" + }, + "logLevel": { + "type": "string", + "enum": ["ERROR", "WARN", "INFO", "DEBUG", "TRACE"] + }, + "operation": { + "$dynamic": false, + "type": "string", + "enum": ["REPLACE_ONE", "UPDATE_ONE", "UPDATE_MANY"], + "title": "Operation to use.", + "default": "UPDATE_ONE", + "markdownDescription": "Default value is : `UPDATE_ONE`" + }, + "retry": { + "oneOf": [ + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Constant-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Exponential-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Random-2" + } + ] + }, + "timeout": { + "type": "string", + "format": "duration" + }, + "type": { + "const": "io.kestra.plugin.mongodb.Update" + }, + "workerGroup": { + "$ref": "#/definitions/io.kestra.core.models.tasks.WorkerGroup" + } + }, + "required": [ + "collection", + "connection", + "database", + "document", + "filter", + "id", + "type" + ], + "title": "Update or Replace one or many documents in a MongoDB collection.", + "markdownDescription": "##### Examples\n\u003E Replace a document.\n```yaml\nconnection:\n uri: \"mongodb://root:example@localhost:27017/?authSource=admin\"\ndatabase: \"my_database\"\ncollection: \"my_collection\"\noperation: \"REPLACE_ONE\"\ndocument:\n _id:\n $oid: 60930c39a982931c20ef6cd6\n name: \"John Doe\"\n city: \"Paris\"\nfilter:\n _id:\n $oid: 60930c39a982931c20ef6cd6\n```\n\n\u003E Update a document.\n```yaml\nconnection:\n uri: \"mongodb://root:example@localhost:27017/?authSource=admin\"\ndatabase: \"my_database\"\ncollection: \"my_collection\"\nfilter:\n _id:\n $oid: 60930c39a982931c20ef6cd6\ndocument: \"{\"$set\": { \"tags\": [\"blue\", \"green\", \"red\"]}}\"\n```" + }, + "io.kestra.plugin.mqtt.Publish": { + "type": "object", + "properties": { + "allowFailure": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "authMethod": { + "$dynamic": true, + "type": "string", + "title": "The Authentication Method.", + "markdownDescription": "Only available if `version` = `V5`\nIf set, this value contains the name of the authentication method to be used for extended authentication. If null, extended authentication is not performed." + }, + "clientId": { + "$dynamic": true, + "type": "string", + "title": "A client identifier that is unique on the server being connected to", + "markdownDescription": "A client identifier clientId must be specified and be less that 65535 characters. It must be unique across all clients connecting to the same server. The clientId is used by the server to store data related to the client, hence it is important that the clientId remain the same when connecting to a server if durable subscriptions or reliable messaging are required.\nAs the client identifier is used by the server to identify a client when it reconnects, the client must use the same identifier between connections if durable subscriptions or reliable delivery of messages is required." + }, + "connectionTimeout": { + "$dynamic": false, + "type": "string", + "format": "duration", + "title": "The connection timeout.", + "markdownDescription": "This value defines the maximum time interval the client will wait for the network connection to the MQTT server to be established. The default timeout is 30 seconds. A value of 0 disables timeout processing meaning the client will wait until the network connection is made successfully or fails." + }, + "crt": { + "$dynamic": true, + "type": "string", + "title": "Server certificate file path." + }, + "description": { + "type": "string" + }, + "disabled": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "from": { + "$dynamic": true, + "title": "Source of message send", + "markdownDescription": "Can be an internal storage uri, a map or a list.", + "oneOf": [ + { + "type": "string" + }, + { + "type": "array", + "items": {} + }, + { + "type": "object" + } + ] + }, + "httpsHostnameVerificationEnabled": { + "$dynamic": false, + "type": "boolean", + "title": "Disable ssl verification.", + "markdownDescription": "This value will allow all ca certificate." + }, + "id": { + "type": "string", + "minLength": 1, + "pattern": "^[a-zA-Z0-9][a-zA-Z0-9_-]*" + }, + "logLevel": { + "type": "string", + "enum": ["ERROR", "WARN", "INFO", "DEBUG", "TRACE"] + }, + "password": { + "$dynamic": true, + "type": "string", + "title": "The password to use for the connection." + }, + "qos": { + "$dynamic": false, + "type": "integer", + "title": "Sets the quality of service for this message.", + "default": 1, + "markdownDescription": "* **Quality of Service 0**: indicates that a message should be delivered at most once (zero or one times). The message will not be persisted to disk, and will not be acknowledged across the network. This QoS is the fastest, but should only be used for messages which are not valuable - note that if the server cannot process the message (for example, there is an authorization problem). Also known as \"fire and forget\".\n* **Quality of Service 1**: indicates that a message should be delivered at least once (one or more times). The message can only be delivered safely if it can be persisted, so the application must supply a means of persistence using MqttConnectOptions. If a persistence mechanism is not specified, the message will not be delivered in the event of a client failure. The message will be acknowledged across the network.\n* **Quality of Service 2**: indicates that a message should be delivered once. The message will be persisted to disk, and will be subject to a two-phase acknowledgement across the network. The message can only be delivered safely if it can be persisted, so the application must supply a means of persistence using MqttConnectOptions. If a persistence mechanism is not specified, the message will not be delivered in the event of a client failure.\nIf persistence is not configured, QoS 1 and 2 messages will still be delivered in the event of a network or server problem as the client will hold state in memory. If the MQTT client is shutdown or fails and persistence is not configured then delivery of QoS 1 and 2 messages can not be maintained as client-side state will be lost.\n\nDefault value is : `1`" + }, + "retain": { + "$dynamic": false, + "type": "boolean", + "title": "Whether or not the publish message should be retained by the messaging engine. ", + "default": false, + "markdownDescription": "Sending a message with retained set to true and with an empty byte array as the payload e.g. `null` will clear the retained message from the server.\n\nDefault value is : `false`" + }, + "retry": { + "oneOf": [ + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Constant-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Exponential-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Random-2" + } + ] + }, + "serdeType": { + "$dynamic": false, + "type": "string", + "enum": ["STRING", "JSON", "BYTES"], + "title": "Serializer / Deserializer used for the payload" + }, + "server": { + "$dynamic": true, + "type": "string", + "title": "The address of the server to connect to, specified as a URI", + "markdownDescription": "The serverURI parameter is typically used with the the clientId parameter to form a key. The key is used to store and reference messages while they are being delivered.\nThe address of the server to connect to is specified as a URI. Two types of connection are supported `tcp://` for a TCP connection and `ssl://` for a TCP connection secured by SSL/TLS. For example:\n* `tcp://localhost:1883`\n* `ssl://localhost:8883`\nIf the port is not specified, it will default to 1883 for `tcp://`\" URIs, and 8883 for `ssl://` URIs." + }, + "timeout": { + "type": "string", + "format": "duration" + }, + "topic": { + "$dynamic": true, + "type": "string", + "title": "Topic where to send message" + }, + "type": { + "const": "io.kestra.plugin.mqtt.Publish" + }, + "username": { + "$dynamic": true, + "type": "string", + "title": "The user name to use for the connection." + }, + "version": { + "$dynamic": false, + "type": "string", + "enum": ["V3", "V5"], + "title": "The MQTT version to use.", + "default": "V5", + "markdownDescription": "Default value is : `V5`" + }, + "workerGroup": { + "$ref": "#/definitions/io.kestra.core.models.tasks.WorkerGroup" + } + }, + "required": [ + "clientId", + "from", + "id", + "serdeType", + "server", + "topic", + "type" + ], + "title": "Produce message in a MQTT topic", + "markdownDescription": "##### Examples\n\u003E \n```yaml\nserver: tcp://localhost:1883\nclientId: kestraProducer\ntopic: kestra/sensors/cpu\nserdeType: JSON\nretain: true\nfrom: \n type: \"sensors\"\n value: 1.23\n```\n\n\u003E \n```yaml\nserver: ssl://localhost:8883\nclientId: kestraProducer\ntopic: kestra/sensors/cpu\ncrt: /home/path/to/ca.crt\nserdeType: JSON\nretain: true\nfrom: \n type: \"sensors\"\n value: 1.23\n```" + }, + "io.kestra.plugin.mqtt.RealtimeTrigger": { + "type": "object", + "properties": { + "authMethod": { + "type": "string" + }, + "clientId": { + "type": "string" + }, + "conditions": { + "$dynamic": false, + "title": "List of conditions in order to limit the flow trigger.", + "type": "array", + "items": { + "oneOf": [ + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.DateTimeBetweenCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.DayWeekCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.DayWeekInMonthCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.ExecutionFlowCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.ExecutionLabelsCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.ExecutionNamespaceCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.ExecutionOutputsCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.ExecutionStatusCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.ExpressionCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.FlowCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.FlowNamespaceCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.HasRetryAttemptCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.MultipleCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.NotCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.OrCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.PublicHolidayCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.TimeBetweenCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.WeekendCondition" + }, + { + "$dynamic": false + } + ] + } + ] + } + }, + "connectionTimeout": { + "type": "string", + "format": "duration" + }, + "crt": { + "type": "string" + }, + "description": { + "type": "string" + }, + "disabled": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "httpsHostnameVerificationEnabled": { + "type": "boolean" + }, + "id": { + "type": "string", + "title": "A unique ID for the whole flow.", + "minLength": 1, + "pattern": "^[a-zA-Z0-9][a-zA-Z0-9_-]*" + }, + "labels": { + "title": "The labels to pass to the execution created.", + "type": "array", + "items": { + "$ref": "#/definitions/io.kestra.core.models.Label" + } + }, + "logLevel": { + "type": "string", + "enum": ["ERROR", "WARN", "INFO", "DEBUG", "TRACE"] + }, + "password": { + "type": "string" + }, + "qos": { + "$dynamic": false, + "type": "integer", + "title": "Sets the quality of service for this message.", + "default": 1, + "markdownDescription": "* **Quality of Service 0**: indicates that a message should be delivered at most once (zero or one times). The message will not be persisted to disk, and will not be acknowledged across the network. This QoS is the fastest, but should only be used for messages which are not valuable - note that if the server cannot process the message (for example, there is an authorization problem). Also known as \"fire and forget\".\n* **Quality of Service 1**: indicates that a message should be delivered at least once (one or more times). The message can only be delivered safely if it can be persisted, so the application must supply a means of persistence using MqttConnectOptions. If a persistence mechanism is not specified, the message will not be delivered in the event of a client failure. The message will be acknowledged across the network.\n* **Quality of Service 2**: indicates that a message should be delivered once. The message will be persisted to disk, and will be subject to a two-phase acknowledgement across the network. The message can only be delivered safely if it can be persisted, so the application must supply a means of persistence using MqttConnectOptions. If a persistence mechanism is not specified, the message will not be delivered in the event of a client failure.\nIf persistence is not configured, QoS 1 and 2 messages will still be delivered in the event of a network or server problem as the client will hold state in memory. If the MQTT client is shutdown or fails and persistence is not configured then delivery of QoS 1 and 2 messages can not be maintained as client-side state will be lost.\n\nDefault value is : `1`" + }, + "serdeType": { + "$dynamic": false, + "type": "string", + "enum": ["STRING", "JSON", "BYTES"], + "title": "Serializer / Deserializer used for the payload", + "default": "JSON", + "markdownDescription": "Default value is : `JSON`" + }, + "server": { + "type": "string" + }, + "stopAfter": { + "$dynamic": false, + "title": "List of execution states after which a trigger should be stopped (a.k.a. disabled).", + "type": "array", + "items": { + "$dynamic": false, + "type": "string", + "enum": [ + "CREATED", + "RUNNING", + "PAUSED", + "RESTARTED", + "KILLING", + "SUCCESS", + "WARNING", + "FAILED", + "KILLED", + "CANCELLED", + "QUEUED", + "RETRYING", + "RETRIED" + ] + } + }, + "topic": { + "$dynamic": true, + "title": "Topic where to consume message", + "markdownDescription": "Can be a string or a List of string to consume from multiple topic" + }, + "type": { + "const": "io.kestra.plugin.mqtt.RealtimeTrigger" + }, + "username": { + "type": "string" + }, + "version": { + "type": "string", + "enum": ["V3", "V5"], + "default": "V5", + "markdownDescription": "Default value is : `V5`" + }, + "workerGroup": { + "$ref": "#/definitions/io.kestra.core.models.tasks.WorkerGroup" + } + }, + "required": ["id", "topic", "type"], + "title": "Consume a message in real-time from MQTT topics and create one execution per message.", + "markdownDescription": "If you would like to consume multiple messages processed within a given time frame and process them in batch, you can use the [io.kestra.plugin.mqtt.Trigger](https://kestra.io/plugins/plugin-mqtt/triggers/io.kestra.plugin.mqtt.trigger) instead.##### Examples\n\u003E Consume a message from MQTT topics in real-time.\n```yaml\nid: mqtt\nnamespace: company.team\n\ntasks:\n - id: log\n type: io.kestra.plugin.core.log.Log\n message: \"{{ trigger.payload }}\"\n\ntriggers:\n - id: realtime_trigger\n type: io.kestra.plugin.mqtt.RealtimeTrigger\n server: tcp://localhost:1883\n clientId: kestraProducer\n topic:\n - kestra/sensors/cpu\n - kestra/sensors/mem\n serdeType: JSON\n```" + }, + "io.kestra.plugin.mqtt.Subscribe": { + "type": "object", + "properties": { + "allowFailure": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "authMethod": { + "$dynamic": true, + "type": "string", + "title": "The Authentication Method.", + "markdownDescription": "Only available if `version` = `V5`\nIf set, this value contains the name of the authentication method to be used for extended authentication. If null, extended authentication is not performed." + }, + "clientId": { + "$dynamic": true, + "type": "string", + "title": "A client identifier that is unique on the server being connected to", + "markdownDescription": "A client identifier clientId must be specified and be less that 65535 characters. It must be unique across all clients connecting to the same server. The clientId is used by the server to store data related to the client, hence it is important that the clientId remain the same when connecting to a server if durable subscriptions or reliable messaging are required.\nAs the client identifier is used by the server to identify a client when it reconnects, the client must use the same identifier between connections if durable subscriptions or reliable delivery of messages is required." + }, + "connectionTimeout": { + "$dynamic": false, + "type": "string", + "format": "duration", + "title": "The connection timeout.", + "markdownDescription": "This value defines the maximum time interval the client will wait for the network connection to the MQTT server to be established. The default timeout is 30 seconds. A value of 0 disables timeout processing meaning the client will wait until the network connection is made successfully or fails." + }, + "crt": { + "$dynamic": true, + "type": "string", + "title": "Server certificate file path." + }, + "description": { + "type": "string" + }, + "disabled": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "httpsHostnameVerificationEnabled": { + "$dynamic": false, + "type": "boolean", + "title": "Disable ssl verification.", + "markdownDescription": "This value will allow all ca certificate." + }, + "id": { + "type": "string", + "minLength": 1, + "pattern": "^[a-zA-Z0-9][a-zA-Z0-9_-]*" + }, + "logLevel": { + "type": "string", + "enum": ["ERROR", "WARN", "INFO", "DEBUG", "TRACE"] + }, + "maxDuration": { + "$dynamic": false, + "type": "string", + "format": "duration", + "title": "The max duration waiting for new rows", + "markdownDescription": "It's not an hard limit and is evaluated every second" + }, + "maxRecords": { + "$dynamic": false, + "type": "integer", + "title": "The max number of rows to fetch before stopping", + "markdownDescription": "It's not an hard limit and is evaluated every second" + }, + "password": { + "$dynamic": true, + "type": "string", + "title": "The password to use for the connection." + }, + "qos": { + "$dynamic": false, + "type": "integer", + "title": "Sets the quality of service for this message.", + "default": 1, + "markdownDescription": "* **Quality of Service 0**: indicates that a message should be delivered at most once (zero or one times). The message will not be persisted to disk, and will not be acknowledged across the network. This QoS is the fastest, but should only be used for messages which are not valuable - note that if the server cannot process the message (for example, there is an authorization problem). Also known as \"fire and forget\".\n* **Quality of Service 1**: indicates that a message should be delivered at least once (one or more times). The message can only be delivered safely if it can be persisted, so the application must supply a means of persistence using MqttConnectOptions. If a persistence mechanism is not specified, the message will not be delivered in the event of a client failure. The message will be acknowledged across the network.\n* **Quality of Service 2**: indicates that a message should be delivered once. The message will be persisted to disk, and will be subject to a two-phase acknowledgement across the network. The message can only be delivered safely if it can be persisted, so the application must supply a means of persistence using MqttConnectOptions. If a persistence mechanism is not specified, the message will not be delivered in the event of a client failure.\nIf persistence is not configured, QoS 1 and 2 messages will still be delivered in the event of a network or server problem as the client will hold state in memory. If the MQTT client is shutdown or fails and persistence is not configured then delivery of QoS 1 and 2 messages can not be maintained as client-side state will be lost.\n\nDefault value is : `1`" + }, + "retry": { + "oneOf": [ + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Constant-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Exponential-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Random-2" + } + ] + }, + "serdeType": { + "$dynamic": false, + "type": "string", + "enum": ["STRING", "JSON", "BYTES"], + "title": "Serializer / Deserializer used for the payload", + "default": "JSON", + "markdownDescription": "Default value is : `JSON`" + }, + "server": { + "$dynamic": true, + "type": "string", + "title": "The address of the server to connect to, specified as a URI", + "markdownDescription": "The serverURI parameter is typically used with the the clientId parameter to form a key. The key is used to store and reference messages while they are being delivered.\nThe address of the server to connect to is specified as a URI. Two types of connection are supported `tcp://` for a TCP connection and `ssl://` for a TCP connection secured by SSL/TLS. For example:\n* `tcp://localhost:1883`\n* `ssl://localhost:8883`\nIf the port is not specified, it will default to 1883 for `tcp://`\" URIs, and 8883 for `ssl://` URIs." + }, + "timeout": { + "type": "string", + "format": "duration" + }, + "topic": { + "$dynamic": true, + "title": "Topic where to consume message", + "markdownDescription": "Can be a string or a List of string to consume from multiple topic" + }, + "type": { + "const": "io.kestra.plugin.mqtt.Subscribe" + }, + "username": { + "$dynamic": true, + "type": "string", + "title": "The user name to use for the connection." + }, + "version": { + "$dynamic": false, + "type": "string", + "enum": ["V3", "V5"], + "title": "The MQTT version to use.", + "default": "V5", + "markdownDescription": "Default value is : `V5`" + }, + "workerGroup": { + "$ref": "#/definitions/io.kestra.core.models.tasks.WorkerGroup" + } + }, + "required": ["clientId", "id", "server", "topic", "type"], + "title": "Subscribe message in a MQTT topic", + "markdownDescription": "##### Examples\n\u003E \n```yaml\nserver: tcp://localhost:1883\nclientId: kestraProducer\ntopic: \n - kestra/sensors/cpu\n - kestra/sensors/mem\nserdeType: JSON\nmaxRecords: 10\n```\n\n\u003E \n```yaml\nserver: ssl://localhost:8883\nclientId: kestraProducer\ntopic: \n - kestra/sensors/cpu\n - kestra/sensors/mem\ncrt: /home/path/to/ca.crt\nserdeType: JSON\nmaxRecords: 10\n```" + }, + "io.kestra.plugin.mqtt.Trigger": { + "type": "object", + "properties": { + "authMethod": { + "type": "string" + }, + "clientId": { + "type": "string" + }, + "conditions": { + "$dynamic": false, + "title": "List of conditions in order to limit the flow trigger.", + "type": "array", + "items": { + "oneOf": [ + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.DateTimeBetweenCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.DayWeekCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.DayWeekInMonthCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.ExecutionFlowCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.ExecutionLabelsCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.ExecutionNamespaceCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.ExecutionOutputsCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.ExecutionStatusCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.ExpressionCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.FlowCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.FlowNamespaceCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.HasRetryAttemptCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.MultipleCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.NotCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.OrCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.PublicHolidayCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.TimeBetweenCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.WeekendCondition" + }, + { + "$dynamic": false + } + ] + } + ] + } + }, + "connectionTimeout": { + "type": "string", + "format": "duration" + }, + "crt": { + "type": "string" + }, + "description": { + "type": "string" + }, + "disabled": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "httpsHostnameVerificationEnabled": { + "type": "boolean" + }, + "id": { + "type": "string", + "title": "A unique ID for the whole flow.", + "minLength": 1, + "pattern": "^[a-zA-Z0-9][a-zA-Z0-9_-]*" + }, + "interval": { + "$dynamic": false, + "type": "string", + "format": "duration", + "title": "Interval between polling.", + "default": 60, + "markdownDescription": "The interval between 2 different polls of schedule, this can avoid to overload the remote system with too many calls. For most of the triggers that depend on external systems, a minimal interval must be at least PT30S.\nSee [ISO_8601 Durations](https://en.wikipedia.org/wiki/ISO_8601#Durations) for more information of available interval values.\n\nDefault value is : `60.000000000`" + }, + "labels": { + "title": "The labels to pass to the execution created.", + "type": "array", + "items": { + "$ref": "#/definitions/io.kestra.core.models.Label" + } + }, + "logLevel": { + "type": "string", + "enum": ["ERROR", "WARN", "INFO", "DEBUG", "TRACE"] + }, + "maxDuration": { + "$dynamic": false, + "type": "string", + "format": "duration", + "title": "The max duration waiting for new rows", + "markdownDescription": "It's not an hard limit and is evaluated every second" + }, + "maxRecords": { + "$dynamic": false, + "type": "integer", + "title": "The max number of rows to fetch before stopping", + "markdownDescription": "It's not an hard limit and is evaluated every second" + }, + "password": { + "type": "string" + }, + "qos": { + "$dynamic": false, + "type": "integer", + "title": "Sets the quality of service for this message.", + "default": 1, + "markdownDescription": "* **Quality of Service 0**: indicates that a message should be delivered at most once (zero or one times). The message will not be persisted to disk, and will not be acknowledged across the network. This QoS is the fastest, but should only be used for messages which are not valuable - note that if the server cannot process the message (for example, there is an authorization problem). Also known as \"fire and forget\".\n* **Quality of Service 1**: indicates that a message should be delivered at least once (one or more times). The message can only be delivered safely if it can be persisted, so the application must supply a means of persistence using MqttConnectOptions. If a persistence mechanism is not specified, the message will not be delivered in the event of a client failure. The message will be acknowledged across the network.\n* **Quality of Service 2**: indicates that a message should be delivered once. The message will be persisted to disk, and will be subject to a two-phase acknowledgement across the network. The message can only be delivered safely if it can be persisted, so the application must supply a means of persistence using MqttConnectOptions. If a persistence mechanism is not specified, the message will not be delivered in the event of a client failure.\nIf persistence is not configured, QoS 1 and 2 messages will still be delivered in the event of a network or server problem as the client will hold state in memory. If the MQTT client is shutdown or fails and persistence is not configured then delivery of QoS 1 and 2 messages can not be maintained as client-side state will be lost.\n\nDefault value is : `1`" + }, + "serdeType": { + "$dynamic": false, + "type": "string", + "enum": ["STRING", "JSON", "BYTES"], + "title": "Serializer / Deserializer used for the payload", + "default": "JSON", + "markdownDescription": "Default value is : `JSON`" + }, + "server": { + "type": "string" + }, + "stopAfter": { + "$dynamic": false, + "title": "List of execution states after which a trigger should be stopped (a.k.a. disabled).", + "type": "array", + "items": { + "$dynamic": false, + "type": "string", + "enum": [ + "CREATED", + "RUNNING", + "PAUSED", + "RESTARTED", + "KILLING", + "SUCCESS", + "WARNING", + "FAILED", + "KILLED", + "CANCELLED", + "QUEUED", + "RETRYING", + "RETRIED" + ] + } + }, + "topic": { + "$dynamic": true, + "title": "Topic where to consume message", + "markdownDescription": "Can be a string or a List of string to consume from multiple topic" + }, + "type": { + "const": "io.kestra.plugin.mqtt.Trigger" + }, + "username": { + "type": "string" + }, + "version": { + "type": "string", + "enum": ["V3", "V5"], + "default": "V5", + "markdownDescription": "Default value is : `V5`" + }, + "workerGroup": { + "$ref": "#/definitions/io.kestra.core.models.tasks.WorkerGroup" + } + }, + "required": ["id", "topic", "type"], + "title": "Consume messages periodically from MQTT topics and create one execution per batch.", + "markdownDescription": "Note that you don't need an extra task to consume the message from the event trigger. The trigger will automatically consume messages and you can retrieve their content in your flow using the `{{ trigger.uri }}` variable. If you would like to consume each message from MQTT topics in real-time and create one execution per message, you can use the [io.kestra.plugin.mqtt.RealtimeTrigger](https://kestra.io/plugins/plugin-mqtt/triggers/io.kestra.plugin.mqtt.realtimetrigger) instead.##### Examples\n\u003E \n```yaml\nserver: tcp://localhost:1883\nclientId: kestraProducer\ntopic: \n - kestra/sensors/cpu\n - kestra/sensors/mem\nserdeType: JSON\nmaxRecords: 10\n```" + }, + "io.kestra.plugin.nats.Consume": { + "type": "object", + "properties": { + "allowFailure": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "batchSize": { + "$dynamic": false, + "type": "integer", + "title": "Messages are fetched by batch of given size.", + "default": 10, + "minimum": 1, + "markdownDescription": "Default value is : `10`" + }, + "deliverPolicy": { + "$dynamic": false, + "type": "string", + "enum": [ + "All", + "Last", + "New", + "ByStartSequence", + "ByStartTime", + "LastPerSubject" + ], + "title": "The point in the stream to receive messages from.", + "default": "All", + "markdownDescription": "Possible settings are:\n- `All`: The default policy. The consumer will start receiving from the earliest available message.\n- `Last`: When first consuming messages, the consumer will start receiving messages with the last message added to the stream, or the last message in the stream that matches the consumer's filter subject if defined.\n- `New`: When first consuming messages, the consumer will only start receiving messages that were created after the consumer was created.\n- `ByStartSequence`: When first consuming messages, start at the first message having the sequence number or the next one available.\n- `ByStartTime`: When first consuming messages, start with messages on or after this time. The consumer is required to specify `since` which defines this start time.\n- `LastPerSubject`: When first consuming messages, start with the latest one for each filtered subject currently in the stream.\n\n\nDefault value is : `All`" + }, + "description": { + "type": "string" + }, + "disabled": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "durableId": { + "$dynamic": true, + "type": "string", + "title": "ID used to attach the subscription to a durable one, allowing the subscription to start back from a previous position" + }, + "id": { + "type": "string", + "minLength": 1, + "pattern": "^[a-zA-Z0-9][a-zA-Z0-9_-]*" + }, + "logLevel": { + "type": "string", + "enum": ["ERROR", "WARN", "INFO", "DEBUG", "TRACE"] + }, + "maxDuration": { + "$dynamic": false, + "type": "string", + "format": "duration", + "title": "The max duration before stopping the message polling", + "markdownDescription": "It's not an hard limit and is evaluated every second" + }, + "maxRecords": { + "$dynamic": false, + "type": "integer", + "title": "The max number of rows to fetch before stopping" + }, + "password": { + "$dynamic": true, + "type": "string", + "title": "Plaintext authentication password" + }, + "pollDuration": { + "$dynamic": false, + "type": "string", + "format": "duration", + "title": "Polling duration before processing message", + "default": 2, + "markdownDescription": "If no messages are available, define the max duration to wait for new messages\n\nDefault value is : `2.000000000`" + }, + "retry": { + "oneOf": [ + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Constant-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Exponential-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Random-2" + } + ] + }, + "since": { + "$dynamic": true, + "type": "string", + "title": "Minimum message timestamp to start consumption from.", + "markdownDescription": "By default, we consume all messages from the subjects starting from beginning of logs or depending on the current durable id position. You can also provide an arbitrary start time to get all messages since this date for a new durable id. Note that if you don't provide a durable id, you will retrieve all messages starting from this date even after subsequent usage of this task.Must be a valid iso 8601 date." + }, + "subject": { + "$dynamic": true, + "type": "string", + "title": "Subject to subscribe to", + "minLength": 1 + }, + "timeout": { + "type": "string", + "format": "duration" + }, + "type": { + "const": "io.kestra.plugin.nats.Consume" + }, + "url": { + "$dynamic": true, + "type": "string", + "title": "URL to connect to NATS server", + "minLength": 1, + "markdownDescription": "The format is (nats://)server_url:port. You can also provide a connection token like so: nats://token@server_url:port" + }, + "username": { + "$dynamic": true, + "type": "string", + "title": "Plaintext authentication username" + }, + "workerGroup": { + "$ref": "#/definitions/io.kestra.core.models.tasks.WorkerGroup" + } + }, + "required": ["id", "subject", "type", "url"], + "title": "Consume messages from a NATS subject on a JetStream-enabled NATS server.", + "markdownDescription": "Please note that the server you run it against must have JetStream enabled for it to work.\nIt should also have a stream configured to match the given subject.##### Examples\n\u003E Consume messages from any topic subject matching the kestra.\u003E wildcard, using user password authentication.\n```yaml\nurl: nats://localhost:4222\nusername: nats_user\npassword: nats_passwd\nsubject: kestra.\u003E\ndurableId: someDurableId\npollDuration: PT5S\n```" + }, + "io.kestra.plugin.nats.Produce": { + "type": "object", + "properties": { + "allowFailure": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "description": { + "type": "string" + }, + "disabled": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "from": { + "$dynamic": true, + "title": "Source of message(s) to send", + "markdownDescription": "Can be an internal storage uri, a map or a list.with the following format: headers, data", + "oneOf": [ + { + "type": "string" + }, + { + "type": "array", + "items": {} + }, + { + "type": "object" + } + ] + }, + "id": { + "type": "string", + "minLength": 1, + "pattern": "^[a-zA-Z0-9][a-zA-Z0-9_-]*" + }, + "logLevel": { + "type": "string", + "enum": ["ERROR", "WARN", "INFO", "DEBUG", "TRACE"] + }, + "password": { + "$dynamic": true, + "type": "string", + "title": "Plaintext authentication password" + }, + "retry": { + "oneOf": [ + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Constant-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Exponential-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Random-2" + } + ] + }, + "subject": { + "$dynamic": true, + "type": "string", + "title": "Subject to produce message to", + "minLength": 1 + }, + "timeout": { + "type": "string", + "format": "duration" + }, + "type": { + "const": "io.kestra.plugin.nats.Produce" + }, + "url": { + "$dynamic": true, + "type": "string", + "title": "URL to connect to NATS server", + "minLength": 1, + "markdownDescription": "The format is (nats://)server_url:port. You can also provide a connection token like so: nats://token@server_url:port" + }, + "username": { + "$dynamic": true, + "type": "string", + "title": "Plaintext authentication username" + }, + "workerGroup": { + "$ref": "#/definitions/io.kestra.core.models.tasks.WorkerGroup" + } + }, + "required": ["from", "id", "subject", "type", "url"], + "title": "Produce messages to a NATS subject on a NATS server.", + "markdownDescription": "##### Examples\n\u003E Produce a single message to kestra.publish subject, using user password authentication.\n```yaml\nurl: nats://localhost:4222\nusername: nats_user\npassword: nats_passwd\nsubject: kestra.publish\nfrom:\n headers:\n someHeaderKey: someHeaderValue\n data: Some message\n```\n\n\u003E Produce 2 messages to kestra.publish subject, using user password authentication.\n```yaml\nurl: nats://localhost:4222\nusername: nats_user\npassword: nats_passwd\nsubject: kestra.publish\nfrom:\n - headers:\n someHeaderKey: someHeaderValue\n data: Some message\n - data: Another message\n```\n\n\u003E Produce messages (1 / row) from an internal storage file to kestra.publish subject, using user password authentication.\n```yaml\nurl: nats://localhost:4222\nusername: nats_user\npassword: nats_passwd\nsubject: kestra.publish\nfrom: {{outputs.someTaskWithOutputFile.uri}}\n```" + }, + "io.kestra.plugin.nats.RealtimeTrigger": { + "type": "object", + "properties": { + "batchSize": { + "$dynamic": false, + "type": "integer", + "title": "Messages are fetched by batch of given size.", + "default": 10, + "minimum": 1, + "markdownDescription": "Default value is : `10`" + }, + "conditions": { + "$dynamic": false, + "title": "List of conditions in order to limit the flow trigger.", + "type": "array", + "items": { + "oneOf": [ + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.DateTimeBetweenCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.DayWeekCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.DayWeekInMonthCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.ExecutionFlowCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.ExecutionLabelsCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.ExecutionNamespaceCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.ExecutionOutputsCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.ExecutionStatusCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.ExpressionCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.FlowCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.FlowNamespaceCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.HasRetryAttemptCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.MultipleCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.NotCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.OrCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.PublicHolidayCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.TimeBetweenCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.WeekendCondition" + }, + { + "$dynamic": false + } + ] + } + ] + } + }, + "deliverPolicy": { + "$dynamic": false, + "type": "string", + "enum": [ + "All", + "Last", + "New", + "ByStartSequence", + "ByStartTime", + "LastPerSubject" + ], + "title": "The point in the stream to receive messages from.", + "default": "All", + "markdownDescription": "Possible settings are:\n- `All`: The default policy. The consumer will start receiving from the earliest available message.\n- `Last`: When first consuming messages, the consumer will start receiving messages with the last message added to the stream, or the last message in the stream that matches the consumer's filter subject if defined.\n- `New`: When first consuming messages, the consumer will only start receiving messages that were created after the consumer was created.\n- `ByStartSequence`: When first consuming messages, start at the first message having the sequence number or the next one available.\n- `ByStartTime`: When first consuming messages, start with messages on or after this time. The consumer is required to specify `since` which defines this start time.\n- `LastPerSubject`: When first consuming messages, start with the latest one for each filtered subject currently in the stream.\n\n\nDefault value is : `All`" + }, + "description": { + "type": "string" + }, + "disabled": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "durableId": { + "$dynamic": true, + "type": "string", + "title": "ID used to attach the subscription to a durable one, allowing the subscription to start back from a previous position" + }, + "id": { + "type": "string", + "title": "A unique ID for the whole flow.", + "minLength": 1, + "pattern": "^[a-zA-Z0-9][a-zA-Z0-9_-]*" + }, + "labels": { + "title": "The labels to pass to the execution created.", + "type": "array", + "items": { + "$ref": "#/definitions/io.kestra.core.models.Label" + } + }, + "logLevel": { + "type": "string", + "enum": ["ERROR", "WARN", "INFO", "DEBUG", "TRACE"] + }, + "password": { + "$dynamic": true, + "type": "string", + "title": "Plaintext authentication password" + }, + "since": { + "$dynamic": true, + "type": "string", + "title": "Minimum message timestamp to start consumption from.", + "markdownDescription": "By default, we consume all messages from the subjects starting from beginning of logs or depending on the current durable id position. You can also provide an arbitrary start time to get all messages since this date for a new durable id. Note that if you don't provide a durable id, you will retrieve all messages starting from this date even after subsequent usage of this task.Must be a valid iso 8601 date." + }, + "stopAfter": { + "$dynamic": false, + "title": "List of execution states after which a trigger should be stopped (a.k.a. disabled).", + "type": "array", + "items": { + "$dynamic": false, + "type": "string", + "enum": [ + "CREATED", + "RUNNING", + "PAUSED", + "RESTARTED", + "KILLING", + "SUCCESS", + "WARNING", + "FAILED", + "KILLED", + "CANCELLED", + "QUEUED", + "RETRYING", + "RETRIED" + ] + } + }, + "subject": { + "$dynamic": true, + "type": "string", + "title": "Subject to subscribe to", + "minLength": 1 + }, + "type": { + "const": "io.kestra.plugin.nats.RealtimeTrigger" + }, + "url": { + "$dynamic": true, + "type": "string", + "title": "URL to connect to NATS server", + "minLength": 1, + "markdownDescription": "The format is (nats://)server_url:port. You can also provide a connection token like so: nats://token@server_url:port" + }, + "username": { + "$dynamic": true, + "type": "string", + "title": "Plaintext authentication username" + }, + "workerGroup": { + "$ref": "#/definitions/io.kestra.core.models.tasks.WorkerGroup" + } + }, + "required": ["id", "subject", "type", "url"], + "title": "Consume a message in real-time from a NATS subject on a JetStream-enabled NATS server and create one execution per message.", + "markdownDescription": "If you would like to consume multiple messages processed within a given time frame and process them in batch, you can use the [io.kestra.plugin.nats.Trigger](https://kestra.io/plugins/plugin-nats/triggers/io.kestra.plugin.nats.trigger) instead.##### Examples\n\u003E Subscribe to a NATS subject, getting every message from the beginning of the subject on first trigger execution.\n```yaml\nid: nats\nnamespace: company.team\n\ntasks:\n - id: log\n type: io.kestra.plugin.core.log.Log\n message: \"{{ trigger.data }}\"\ntriggers:\n - id: watch\n type: io.kestra.plugin.nats.RealtimeTrigger\n url: nats://localhost:4222\n username: kestra\n password: k3stra\n subject: kestra.trigger\n durableId: natsTrigger\n deliverPolicy: All\n\n```" + }, + "io.kestra.plugin.nats.Trigger": { + "type": "object", + "properties": { + "batchSize": { + "$dynamic": false, + "type": "integer", + "title": "Messages are fetched by batch of given size.", + "default": 10, + "minimum": 1, + "markdownDescription": "Default value is : `10`" + }, + "conditions": { + "$dynamic": false, + "title": "List of conditions in order to limit the flow trigger.", + "type": "array", + "items": { + "oneOf": [ + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.DateTimeBetweenCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.DayWeekCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.DayWeekInMonthCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.ExecutionFlowCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.ExecutionLabelsCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.ExecutionNamespaceCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.ExecutionOutputsCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.ExecutionStatusCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.ExpressionCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.FlowCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.FlowNamespaceCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.HasRetryAttemptCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.MultipleCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.NotCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.OrCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.PublicHolidayCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.TimeBetweenCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.WeekendCondition" + }, + { + "$dynamic": false + } + ] + } + ] + } + }, + "deliverPolicy": { + "$dynamic": false, + "type": "string", + "enum": [ + "All", + "Last", + "New", + "ByStartSequence", + "ByStartTime", + "LastPerSubject" + ], + "title": "The point in the stream to receive messages from.", + "default": "All", + "markdownDescription": "Possible settings are:\n- `All`: The default policy. The consumer will start receiving from the earliest available message.\n- `Last`: When first consuming messages, the consumer will start receiving messages with the last message added to the stream, or the last message in the stream that matches the consumer's filter subject if defined.\n- `New`: When first consuming messages, the consumer will only start receiving messages that were created after the consumer was created.\n- `ByStartSequence`: When first consuming messages, start at the first message having the sequence number or the next one available.\n- `ByStartTime`: When first consuming messages, start with messages on or after this time. The consumer is required to specify `since` which defines this start time.\n- `LastPerSubject`: When first consuming messages, start with the latest one for each filtered subject currently in the stream.\n\n\nDefault value is : `All`" + }, + "description": { + "type": "string" + }, + "disabled": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "durableId": { + "$dynamic": true, + "type": "string", + "title": "ID used to attach the subscription to a durable one, allowing the subscription to start back from a previous position" + }, + "id": { + "type": "string", + "title": "A unique ID for the whole flow.", + "minLength": 1, + "pattern": "^[a-zA-Z0-9][a-zA-Z0-9_-]*" + }, + "interval": { + "$dynamic": false, + "type": "string", + "format": "duration", + "title": "Interval between polling.", + "default": 60, + "markdownDescription": "The interval between 2 different polls of schedule, this can avoid to overload the remote system with too many calls. For most of the triggers that depend on external systems, a minimal interval must be at least PT30S.\nSee [ISO_8601 Durations](https://en.wikipedia.org/wiki/ISO_8601#Durations) for more information of available interval values.\n\nDefault value is : `60.000000000`" + }, + "labels": { + "title": "The labels to pass to the execution created.", + "type": "array", + "items": { + "$ref": "#/definitions/io.kestra.core.models.Label" + } + }, + "logLevel": { + "type": "string", + "enum": ["ERROR", "WARN", "INFO", "DEBUG", "TRACE"] + }, + "maxDuration": { + "$dynamic": false, + "type": "string", + "format": "duration", + "title": "The max duration before stopping the message polling", + "markdownDescription": "It's not an hard limit and is evaluated every second" + }, + "maxRecords": { + "$dynamic": false, + "type": "integer", + "title": "The max number of rows to fetch before stopping" + }, + "password": { + "$dynamic": true, + "type": "string", + "title": "Plaintext authentication password" + }, + "pollDuration": { + "$dynamic": false, + "type": "string", + "format": "duration", + "title": "Polling duration before processing message", + "default": 2, + "markdownDescription": "If no messages are available, define the max duration to wait for new messages\n\nDefault value is : `2.000000000`" + }, + "since": { + "$dynamic": true, + "type": "string", + "title": "Minimum message timestamp to start consumption from.", + "markdownDescription": "By default, we consume all messages from the subjects starting from beginning of logs or depending on the current durable id position. You can also provide an arbitrary start time to get all messages since this date for a new durable id. Note that if you don't provide a durable id, you will retrieve all messages starting from this date even after subsequent usage of this task.Must be a valid iso 8601 date." + }, + "stopAfter": { + "$dynamic": false, + "title": "List of execution states after which a trigger should be stopped (a.k.a. disabled).", + "type": "array", + "items": { + "$dynamic": false, + "type": "string", + "enum": [ + "CREATED", + "RUNNING", + "PAUSED", + "RESTARTED", + "KILLING", + "SUCCESS", + "WARNING", + "FAILED", + "KILLED", + "CANCELLED", + "QUEUED", + "RETRYING", + "RETRIED" + ] + } + }, + "subject": { + "$dynamic": true, + "type": "string", + "title": "Subject to subscribe to", + "minLength": 1 + }, + "type": { + "const": "io.kestra.plugin.nats.Trigger" + }, + "url": { + "$dynamic": true, + "type": "string", + "title": "URL to connect to NATS server", + "minLength": 1, + "markdownDescription": "The format is (nats://)server_url:port. You can also provide a connection token like so: nats://token@server_url:port" + }, + "username": { + "$dynamic": true, + "type": "string", + "title": "Plaintext authentication username" + }, + "workerGroup": { + "$ref": "#/definitions/io.kestra.core.models.tasks.WorkerGroup" + } + }, + "required": ["id", "subject", "type", "url"], + "title": "Consume messages periodically from a NATS subject on a JetStream-enabled NATS server and create one execution per batch.", + "markdownDescription": "If you would like to consume each message from a NATS subject in real-time and create one execution per message, you can use the [io.kestra.plugin.nats.RealtimeTrigger](https://kestra.io/plugins/plugin-nats/triggers/io.kestra.plugin.nats.realtimetrigger) instead.##### Examples\n\u003E Subscribe to a NATS subject, getting every message from the beginning of the subject on first trigger execution.\n```yaml\ntriggers:\n - id: watch\n type: io.kestra.plugin.nats.Trigger\n url: nats://localhost:4222\n username: kestra\n password: k3stra\n subject: kestra.trigger\n durableId: natsTrigger\n deliverPolicy: All\n maxRecords: 1\n```" + }, + "io.kestra.plugin.neo4j.Batch": { + "type": "object", + "properties": { + "allowFailure": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "bearerToken": { + "$dynamic": true, + "type": "string", + "title": "Token base64 encoded token" + }, + "chunk": { + "$dynamic": true, + "type": "integer", + "title": "The size of chunk for every bulk request", + "default": 1000, + "markdownDescription": "Default value is : `1000`" + }, + "description": { + "type": "string" + }, + "disabled": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "from": { + "$dynamic": true, + "type": "string", + "title": "Source file URI" + }, + "id": { + "type": "string", + "minLength": 1, + "pattern": "^[a-zA-Z0-9][a-zA-Z0-9_-]*" + }, + "logLevel": { + "type": "string", + "enum": ["ERROR", "WARN", "INFO", "DEBUG", "TRACE"] + }, + "password": { + "$dynamic": true, + "type": "string", + "title": "Password to use in case of basic auth", + "markdownDescription": "If not specified, won't use basic auth" + }, + "query": { + "$dynamic": true, + "type": "string", + "title": "Query to execute batch, must use UNWIND", + "markdownDescription": "The query must have the row :\n\"UNWIND $props AS X\" with $props the variable where\n we input the source data for the batch." + }, + "retry": { + "oneOf": [ + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Constant-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Exponential-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Random-2" + } + ] + }, + "timeout": { + "type": "string", + "format": "duration" + }, + "type": { + "const": "io.kestra.plugin.neo4j.Batch" + }, + "url": { + "type": "string", + "title": "The URL to a Neo4j instance", + "markdownDescription": "The URL can either be in HTTP or Bolt format" + }, + "username": { + "$dynamic": true, + "type": "string", + "title": "Username to use in case of basic auth", + "markdownDescription": "If not specified, won't use basic" + }, + "workerGroup": { + "$ref": "#/definitions/io.kestra.core.models.tasks.WorkerGroup" + } + }, + "required": ["from", "id", "query", "type"], + "title": "Execute a batch query to a Neo4j database.", + "markdownDescription": "##### Examples\n\u003E \n```yaml\nurl: \"{{url}}\"\nusername: \"{{username}}\"\npassword: \"{{password}}\"\nquery: |\n UNWIND $props AS properties\n MERGE (y:Year {year: properties.year})\n MERGE (y)\u003C-[:IN]-(e:Event {id: properties.id})\n\n RETURN e.id AS x ORDER BY x\n\nfrom: \"{{ outputs['previous-task-id'].uri }}\"\nchunk: 1000\n```" + }, + "io.kestra.plugin.neo4j.Query": { + "type": "object", + "properties": { + "allowFailure": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "bearerToken": { + "$dynamic": true, + "type": "string", + "title": "Token base64 encoded token" + }, + "description": { + "type": "string" + }, + "disabled": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "id": { + "type": "string", + "minLength": 1, + "pattern": "^[a-zA-Z0-9][a-zA-Z0-9_-]*" + }, + "logLevel": { + "type": "string", + "enum": ["ERROR", "WARN", "INFO", "DEBUG", "TRACE"] + }, + "password": { + "$dynamic": true, + "type": "string", + "title": "Password to use in case of basic auth", + "markdownDescription": "If not specified, won't use basic auth" + }, + "query": { + "$dynamic": true, + "type": "string", + "title": "The Neo4J query to perform" + }, + "retry": { + "oneOf": [ + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Constant-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Exponential-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Random-2" + } + ] + }, + "storeType": { + "$dynamic": false, + "type": "string", + "enum": ["STORE", "FETCH", "FETCHONE", "NONE"], + "title": "The way you want to store the data", + "default": "NONE", + "markdownDescription": "FETCHONE output the first rowFETCH output all the rowSTORE store all row in a fileNONE do nothing\n\nDefault value is : `NONE`" + }, + "timeout": { + "type": "string", + "format": "duration" + }, + "type": { + "const": "io.kestra.plugin.neo4j.Query" + }, + "url": { + "type": "string", + "title": "The URL to a Neo4j instance", + "markdownDescription": "The URL can either be in HTTP or Bolt format" + }, + "username": { + "$dynamic": true, + "type": "string", + "title": "Username to use in case of basic auth", + "markdownDescription": "If not specified, won't use basic" + }, + "workerGroup": { + "$ref": "#/definitions/io.kestra.core.models.tasks.WorkerGroup" + } + }, + "required": ["id", "type"], + "title": "Execute a query to a neo4j database.", + "markdownDescription": "##### Examples\n\u003E \n```yaml\nurl: \"{{url}}\"\nusername: \"{{username}}\"\npassword: \"{{password}}\"\nquery: |\n MATCH (p:Person)\n RETURN p\nstoreType: FETCH\n```" + }, + "io.kestra.plugin.notifications.discord.DiscordExecution": { + "type": "object", + "properties": { + "allowFailure": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "avatarUrl": { + "$dynamic": true, + "type": "string", + "title": "Webhook avatar URL" + }, + "content": { + "$dynamic": true, + "type": "string", + "title": "Message content" + }, + "customFields": { + "$dynamic": true, + "type": "object", + "title": "Custom fields to be added on notification" + }, + "customMessage": { + "$dynamic": true, + "type": "string", + "title": "Custom message to be added on notification" + }, + "description": { + "type": "string" + }, + "disabled": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "embedList": { + "$dynamic": true, + "title": "Adds an embed to the discord notification body", + "type": "array", + "items": { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.notifications.discord.DiscordTemplate-Embed" + }, + { + "$dynamic": true + } + ] + } + }, + "executionId": { + "$dynamic": true, + "type": "string", + "title": "The execution id to use", + "default": "{{ execution.id }}", + "markdownDescription": "Default is the current execution, change it to {{ trigger.executionId }} if you use this task with a Flow trigger to use the original execution.\n\nDefault value is : `\"{{ execution.id }}\"`" + }, + "id": { + "type": "string", + "minLength": 1, + "pattern": "^[a-zA-Z0-9][a-zA-Z0-9_-]*" + }, + "logLevel": { + "type": "string", + "enum": ["ERROR", "WARN", "INFO", "DEBUG", "TRACE"] + }, + "payload": { + "$dynamic": true, + "type": "string", + "title": "Discord message payload" + }, + "retry": { + "oneOf": [ + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Constant-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Exponential-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Random-2" + } + ] + }, + "templateRenderMap": { + "$dynamic": true, + "type": "object", + "title": "Map of variables to use for the message template" + }, + "timeout": { + "type": "string", + "format": "duration" + }, + "type": { + "const": "io.kestra.plugin.notifications.discord.DiscordExecution" + }, + "url": { + "$dynamic": true, + "type": "string", + "title": "Webhook URL which should be taken from discord integrations tab", + "minLength": 1 + }, + "username": { + "$dynamic": true, + "type": "string", + "title": "Webhook username" + }, + "workerGroup": { + "$ref": "#/definitions/io.kestra.core.models.tasks.WorkerGroup" + } + }, + "required": ["id", "type", "url"], + "title": "Send a Discord message with the execution information", + "markdownDescription": "The message will include a link to the execution page in the UI along with the execution ID, namespace, flow name, the start date, duration and the final status of the execution, and (if failed) the task that led to a failure.\n\nUse this notification task only in a flow that has a [Flow trigger](https://kestra.io/docs/administrator-guide/monitoring#alerting). Don't use this notification task in `errors` tasks. Instead, for `errors` tasks, use the [DiscordIncomingWebhook](https://kestra.io/plugins/plugin-notifications/tasks/discord/io.kestra.plugin.notifications.discord.discordincomingwebhook) task.##### Examples\n\u003E Send a Discord notification on a failed flow execution\n```yaml\nid: failure_alert\nnamespace: company.team\n\ntasks:\n - id: send_alert\n type: io.kestra.plugin.notifications.discord.DiscordExecution\n url: \"{{ secret('DISCORD_WEBHOOK') }}\" # format: https://hooks.discord.com/services/xzy/xyz/xyz\n username: \"MyUsername\"\n embedList:\n - title: \"Discord Notification\"\n color:\n - 255\n - 255\n - 255\n executionId: \"{{trigger.executionId}}\"\n\ntriggers:\n - id: failed_prod_workflows\n type: io.kestra.plugin.core.trigger.Flow\n conditions:\n - type: io.kestra.plugin.core.condition.ExecutionStatusCondition\n in:\n - FAILED\n - WARNING\n - type: io.kestra.plugin.core.condition.ExecutionNamespaceCondition\n namespace: prod\n prefix: true\n\n```" + }, + "io.kestra.plugin.notifications.discord.DiscordIncomingWebhook": { + "type": "object", + "properties": { + "allowFailure": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "description": { + "type": "string" + }, + "disabled": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "id": { + "type": "string", + "minLength": 1, + "pattern": "^[a-zA-Z0-9][a-zA-Z0-9_-]*" + }, + "logLevel": { + "type": "string", + "enum": ["ERROR", "WARN", "INFO", "DEBUG", "TRACE"] + }, + "payload": { + "$dynamic": true, + "type": "string", + "title": "Discord message payload" + }, + "retry": { + "oneOf": [ + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Constant-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Exponential-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Random-2" + } + ] + }, + "timeout": { + "type": "string", + "format": "duration" + }, + "type": { + "const": "io.kestra.plugin.notifications.discord.DiscordIncomingWebhook" + }, + "url": { + "$dynamic": true, + "type": "string", + "title": "Webhook URL which should be taken from discord integrations tab", + "minLength": 1 + }, + "workerGroup": { + "$ref": "#/definitions/io.kestra.core.models.tasks.WorkerGroup" + } + }, + "required": ["id", "type", "url"], + "title": "Send a Discord message using an Incoming Webhook", + "markdownDescription": "Add this task to a list of `errors` tasks to implement custom flow-level failure notifications. Check the \u003Ca href=\"https://discord.com/developers/docs/resources/webhook\"\u003EDiscord documentation\u003C/a\u003E for more details..##### Examples\n\u003E Send a Discord notification on a failed flow execution\n```yaml\nid: unreliable_flow\nnamespace: company.team\n\ntasks:\n - id: fail\n type: io.kestra.plugin.scripts.shell.Commands\n runner: PROCESS\n commands:\n - exit 1\n\nerrors:\n - id: alert_on_failure\n type: io.kestra.plugin.notifications.discord.DiscordIncomingWebhook\n url: \"{{ secret('DISCORD_WEBHOOK') }}\" # https://discord.com/api/webhooks/000000/xxxxxxxxxxx\n payload: |\n {\n \"username\": \"MyUsername\",\n \"content\": \"Failure alert for flow {{ flow.namespace }}.{{ flow.id }} with ID {{ execution.id }}\"\n \"embedList\": [{\n \"title\": \"Discord Notification\"\n }]\n }\n\n```\n\n\u003E Send a Discord message via incoming webhook\n```yaml\nid: discord_incoming_webhook\nnamespace: company.team\n\ntasks:\n - id: send_discord_message\n type: io.kestra.plugin.notifications.discord.DiscordIncomingWebhook\n url: \"{{ secret('DISCORD_WEBHOOK') }}\"\n payload: |\n {\n \"username\": \"MyUsername\",\n \"tts\": false,\n \"content\": \"Hello from the workflow {{ flow.id }}\",\n \"embeds\": [\n {\n \"title\": \"Discord Hello\",\n \"color\": 16777215\n \"description\": \"Namespace: dev\nFlow ID: discord\nExecution ID: 1p0JVFz24ZVLSK8iJN6hfs\nExecution Status: SUCCESS\n\n[Link to the Execution page](http://localhost:8080/ui/executions/dev/discord/1p0JVFz24ZVLSK8iJN6hfs)\",\n \"footer\": {\n \"text\": \"Succeeded after 00:00:00.385\"\n }\n }\n ]\n }\n\n```" + }, + "io.kestra.plugin.notifications.discord.DiscordTemplate-Embed": { + "type": "object", + "properties": { + "authorName": { + "$dynamic": true, + "type": "string", + "title": "Message author name" + }, + "color": { + "$dynamic": false, + "title": "RGB color of text", + "markdownDescription": "Example: [255, 255, 255]", + "type": "array", + "items": { + "$dynamic": false, + "type": "integer" + } + }, + "description": { + "$dynamic": true, + "type": "string", + "title": "Message description" + }, + "footer": { + "$dynamic": true, + "type": "string", + "title": "Footer text" + }, + "thumbnail": { + "$dynamic": true, + "type": "string", + "title": "Thumbnail URL" + }, + "title": { + "$dynamic": true, + "type": "string", + "title": "Title" + }, + "websiteUrl": { + "$dynamic": true, + "type": "string", + "title": "Website URL, link title with given URL" + } + } + }, + "io.kestra.plugin.notifications.google.GoogleChatExecution": { + "type": "object", + "properties": { + "allowFailure": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "customFields": { + "$dynamic": true, + "type": "object", + "title": "Custom fields to be added on notification" + }, + "customMessage": { + "$dynamic": true, + "type": "string", + "title": "Custom message to be added on notification" + }, + "description": { + "type": "string" + }, + "disabled": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "executionId": { + "$dynamic": true, + "type": "string", + "title": "The execution id to use", + "default": "{{ execution.id }}", + "markdownDescription": "Default is the current execution, change it to {{ trigger.executionId }} if you use this task with a Flow trigger to use the original execution.\n\nDefault value is : `\"{{ execution.id }}\"`" + }, + "id": { + "type": "string", + "minLength": 1, + "pattern": "^[a-zA-Z0-9][a-zA-Z0-9_-]*" + }, + "logLevel": { + "type": "string", + "enum": ["ERROR", "WARN", "INFO", "DEBUG", "TRACE"] + }, + "payload": { + "$dynamic": true, + "type": "string", + "title": "Google Chat message payload" + }, + "retry": { + "oneOf": [ + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Constant-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Exponential-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Random-2" + } + ] + }, + "templateRenderMap": { + "$dynamic": true, + "type": "object", + "title": "Map of variables to use for the message template" + }, + "text": { + "$dynamic": true, + "type": "string", + "title": "Message body" + }, + "timeout": { + "type": "string", + "format": "duration" + }, + "type": { + "const": "io.kestra.plugin.notifications.google.GoogleChatExecution" + }, + "url": { + "$dynamic": true, + "type": "string", + "title": "Google Chat incoming webhook URL", + "minLength": 1, + "markdownDescription": "Check the \u003Ca href=\"https://developers.google.com/chat/how-tos/webhooks#step_1_register_the_incoming_webhook\"\u003ECreate an Incoming Webhook\u003C/a\u003E documentation for more details.." + }, + "workerGroup": { + "$ref": "#/definitions/io.kestra.core.models.tasks.WorkerGroup" + } + }, + "required": ["id", "type", "url"], + "title": "Send a Google Chat message with the execution information", + "markdownDescription": "The message will include a link to the execution page in the UI along with the execution ID, namespace, flow name, the start date, duration and the final status of the execution, and (if failed) the task that led to a failure.\n\nUse this notification task only in a flow that has a [Flow trigger](https://kestra.io/docs/administrator-guide/monitoring#alerting). Don't use this notification task in `errors` tasks. Instead, for `errors` tasks, use the [GoogleChatIncomingWebhook](https://kestra.io/plugins/plugin-notifications/tasks/google-chat/io.kestra.plugin.notifications.google.googlechatincomingwebhook) task.##### Examples\n\u003E Send a Google Chat notification on a failed flow execution\n```yaml\nid: failure_alert\nnamespace: company.team\n\ntasks:\n - id: send_alert\n type: io.kestra.plugin.notifications.google.GoogleChatExecution\n url: \"{{ secret('GOOGLE_WEBHOOK') }}\" # format: https://chat.googleapis.com/v1/spaces/xzy/messages\n text: \"Google Chat Notification\"\n executionId: \"{{trigger.executionId}}\"\n\ntriggers:\n - id: failed_prod_workflows\n type: io.kestra.plugin.core.trigger.Flow\n conditions:\n - type: io.kestra.plugin.core.condition.ExecutionStatusCondition\n in:\n - FAILED\n - WARNING\n - type: io.kestra.plugin.core.condition.ExecutionNamespaceCondition\n namespace: prod\n prefix: true\n\n```" + }, + "io.kestra.plugin.notifications.google.GoogleChatIncomingWebhook": { + "type": "object", + "properties": { + "allowFailure": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "description": { + "type": "string" + }, + "disabled": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "id": { + "type": "string", + "minLength": 1, + "pattern": "^[a-zA-Z0-9][a-zA-Z0-9_-]*" + }, + "logLevel": { + "type": "string", + "enum": ["ERROR", "WARN", "INFO", "DEBUG", "TRACE"] + }, + "payload": { + "$dynamic": true, + "type": "string", + "title": "Google Chat message payload" + }, + "retry": { + "oneOf": [ + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Constant-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Exponential-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Random-2" + } + ] + }, + "timeout": { + "type": "string", + "format": "duration" + }, + "type": { + "const": "io.kestra.plugin.notifications.google.GoogleChatIncomingWebhook" + }, + "url": { + "$dynamic": true, + "type": "string", + "title": "Google Chat incoming webhook URL", + "minLength": 1, + "markdownDescription": "Check the \u003Ca href=\"https://developers.google.com/chat/how-tos/webhooks#step_1_register_the_incoming_webhook\"\u003ECreate an Incoming Webhook\u003C/a\u003E documentation for more details.." + }, + "workerGroup": { + "$ref": "#/definitions/io.kestra.core.models.tasks.WorkerGroup" + } + }, + "required": ["id", "type", "url"], + "title": "Send a Google Chat message using an Incoming Webhook", + "markdownDescription": "Add this task to a list of `errors` tasks to implement custom flow-level failure notifications. Check the \u003Ca href=\"https://developers.google.com/chat/how-tos/webhooks\"\u003EGoogle documentation\u003C/a\u003E for more details..##### Examples\n\u003E Send a Google Chat notification on a failed flow execution\n```yaml\nid: unreliable_flow\nnamespace: company.team\n\ntasks:\n - id: fail\n type: io.kestra.plugin.scripts.shell.Commands\n runner: PROCESS\n commands:\n - exit 1\n\nerrors:\n - id: alert_on_failure\n type: io.kestra.plugin.notifications.google.GoogleChatIncomingWebhook\n url: \"{{ secret('GOOGLE_WEBHOOK') }}\" # https://chat.googleapis.com/v1/spaces/xzy/messages?threadKey=errorThread\n payload: |\n {\n \"text\": \"Google Chat Alert\"\n }\n\n```\n\n\u003E Send a Google Chat message via incoming webhook\n```yaml\nid: google_incoming_webhook\nnamespace: company.team\n\ntasks:\n - id: send_google_chat_message\n type: io.kestra.plugin.notifications.google.GoogleChatIncomingWebhook\n url: \"{{ secret('GOOGLE_WEBHOOK') }}\"\n payload: |\n {\n \"text\": \"Google Chat Hello\"\n }\n\n```" + }, + "io.kestra.plugin.notifications.mail.MailExecution": { + "type": "object", + "properties": { + "allowFailure": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "attachments": { + "$dynamic": true, + "title": "Adds an attachment to the email message", + "markdownDescription": "The attachment will be shown in the email client as separate files available for download, or displayed inline if the client supports it (for example, most browsers display PDF's in a popup window)", + "type": "array", + "items": { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.notifications.mail.MailSend-Attachment" + }, + { + "$dynamic": true + } + ] + } + }, + "cc": { + "$dynamic": true, + "type": "string", + "title": "One or more 'Cc' (carbon copy) optional recipient email address. Use semicolon as delimiter to provide several addresses", + "markdownDescription": "Note that each email address must be compliant with the RFC2822 format" + }, + "customFields": { + "$dynamic": true, + "type": "object", + "title": "Custom fields to be added on notification" + }, + "customMessage": { + "$dynamic": true, + "type": "string", + "title": "Custom message to be added on notification" + }, + "description": { + "type": "string" + }, + "disabled": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "embeddedImages": { + "$dynamic": true, + "title": "Adds image data to this email that can be referred to from the email HTML body", + "markdownDescription": "The provided images are assumed to be of MIME type png, jpg or whatever the email client supports as valid image that can be embedded in HTML content", + "type": "array", + "items": { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.notifications.mail.MailSend-Attachment" + }, + { + "$dynamic": true + } + ] + } + }, + "executionId": { + "$dynamic": true, + "type": "string", + "title": "The execution id to use", + "default": "{{ execution.id }}", + "markdownDescription": "Default is the current execution, change it to {{ trigger.executionId }} if you use this task with a Flow trigger to use the original execution.\n\nDefault value is : `\"{{ execution.id }}\"`" + }, + "from": { + "$dynamic": true, + "type": "string", + "title": "The address of the sender of this email" + }, + "host": { + "$dynamic": true, + "type": "string", + "title": "The email server host" + }, + "htmlTextContent": { + "$dynamic": true, + "type": "string", + "title": "The optional email message body in HTML text", + "markdownDescription": "Both text and HTML can be provided, which will be offered to the email client as alternative contentEmail clients that support it, will favor HTML over plain text and ignore the text body completely" + }, + "id": { + "type": "string", + "minLength": 1, + "pattern": "^[a-zA-Z0-9][a-zA-Z0-9_-]*" + }, + "logLevel": { + "type": "string", + "enum": ["ERROR", "WARN", "INFO", "DEBUG", "TRACE"] + }, + "password": { + "$dynamic": true, + "type": "string", + "title": "The email server password" + }, + "plainTextContent": { + "$dynamic": true, + "type": "string", + "title": "The optional email message body in plain text", + "markdownDescription": "Both text and HTML can be provided, which will be offered to the email client as alternative contentEmail clients that support it, will favor HTML over plain text and ignore the text body completely" + }, + "port": { + "$dynamic": true, + "type": "integer", + "title": "The email server port" + }, + "retry": { + "oneOf": [ + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Constant-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Exponential-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Random-2" + } + ] + }, + "sessionTimeout": { + "type": "integer", + "title": "Integer value in milliseconds. Default is 10000 milliseconds, i.e. 10 seconds", + "default": 10000, + "markdownDescription": "It controls the maximum timeout value when sending emails\n\nDefault value is : `10000`" + }, + "subject": { + "$dynamic": true, + "type": "string", + "title": "The optional subject of this email" + }, + "templateRenderMap": { + "$dynamic": true, + "type": "object", + "title": "Map of variables to use for the message template" + }, + "timeout": { + "type": "string", + "format": "duration" + }, + "to": { + "$dynamic": true, + "type": "string", + "title": "Email address(es) of the recipient(s). Use semicolon as delimiter to provide several email addresses", + "markdownDescription": "Note that each email address must be compliant with the RFC2822 format" + }, + "transportStrategy": { + "type": "string", + "enum": ["SMTP", "SMTPS", "SMTP_TLS", "SMTP_OAUTH2"], + "title": "The optional transport strategy", + "default": "SMTPS", + "markdownDescription": "Will default to SMTPS if left empty\n\nDefault value is : `SMTPS`" + }, + "type": { + "const": "io.kestra.plugin.notifications.mail.MailExecution" + }, + "username": { + "$dynamic": true, + "type": "string", + "title": "The email server username" + }, + "workerGroup": { + "$ref": "#/definitions/io.kestra.core.models.tasks.WorkerGroup" + } + }, + "required": ["id", "type"], + "title": "Send an email with the execution information", + "markdownDescription": "The message will include a link to the execution page in the UI along with the execution ID, namespace, flow name, the start date, duration and the final status of the execution, and (if failed) the task that led to a failure.\n\nUse this notification task only in a flow that has a [Flow trigger](https://kestra.io/docs/administrator-guide/monitoring#alerting), as shown in this example. Don't use this notification task in `errors` tasks. Instead, for `errors` tasks, use the [MailSend](https://kestra.io/plugins/plugin-notifications/tasks/mail/io.kestra.plugin.notifications.mail.mailsend) task.##### Examples\n\u003E Send an email notification on a failed flow execution\n```yaml\nid: failure_alert\nnamespace: company.team\n\ntasks:\n - id: send_alert\n type: io.kestra.plugin.notifications.mail.MailExecution\n to: hello@kestra.io\n from: hello@kestra.io\n subject: \"The workflow execution {{trigger.executionId}} failed for the flow {{trigger.flowId}} in the namespace {{trigger.namespace}}\"\n host: mail.privateemail.com\n port: 465\n username: \"{{ secret('EMAIL_USERNAME') }}\"\n password: \"{{ secret('EMAIL_PASSWORD') }}\"\n executionId: \"{{ trigger.executionId }}\"\n\ntriggers:\n - id: failed_prod_workflows\n type: io.kestra.plugin.core.trigger.Flow\n conditions:\n - type: io.kestra.plugin.core.condition.ExecutionStatusCondition\n in:\n - FAILED\n - WARNING\n - type: io.kestra.plugin.core.condition.ExecutionNamespaceCondition\n namespace: prod\n prefix: true\n\n```" + }, + "io.kestra.plugin.notifications.mail.MailSend": { + "type": "object", + "properties": { + "allowFailure": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "attachments": { + "$dynamic": true, + "title": "Adds an attachment to the email message", + "markdownDescription": "The attachment will be shown in the email client as separate files available for download, or displayed inline if the client supports it (for example, most browsers display PDF's in a popup window)", + "type": "array", + "items": { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.notifications.mail.MailSend-Attachment" + }, + { + "$dynamic": true + } + ] + } + }, + "cc": { + "$dynamic": true, + "type": "string", + "title": "One or more 'Cc' (carbon copy) optional recipient email address. Use semicolon as delimiter to provide several addresses", + "markdownDescription": "Note that each email address must be compliant with the RFC2822 format" + }, + "description": { + "type": "string" + }, + "disabled": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "embeddedImages": { + "$dynamic": true, + "title": "Adds image data to this email that can be referred to from the email HTML body", + "markdownDescription": "The provided images are assumed to be of MIME type png, jpg or whatever the email client supports as valid image that can be embedded in HTML content", + "type": "array", + "items": { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.notifications.mail.MailSend-Attachment" + }, + { + "$dynamic": true + } + ] + } + }, + "from": { + "$dynamic": true, + "type": "string", + "title": "The address of the sender of this email" + }, + "host": { + "$dynamic": true, + "type": "string", + "title": "The email server host" + }, + "htmlTextContent": { + "$dynamic": true, + "type": "string", + "title": "The optional email message body in HTML text", + "markdownDescription": "Both text and HTML can be provided, which will be offered to the email client as alternative contentEmail clients that support it, will favor HTML over plain text and ignore the text body completely" + }, + "id": { + "type": "string", + "minLength": 1, + "pattern": "^[a-zA-Z0-9][a-zA-Z0-9_-]*" + }, + "logLevel": { + "type": "string", + "enum": ["ERROR", "WARN", "INFO", "DEBUG", "TRACE"] + }, + "password": { + "$dynamic": true, + "type": "string", + "title": "The email server password" + }, + "plainTextContent": { + "$dynamic": true, + "type": "string", + "title": "The optional email message body in plain text", + "markdownDescription": "Both text and HTML can be provided, which will be offered to the email client as alternative contentEmail clients that support it, will favor HTML over plain text and ignore the text body completely" + }, + "port": { + "$dynamic": true, + "type": "integer", + "title": "The email server port" + }, + "retry": { + "oneOf": [ + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Constant-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Exponential-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Random-2" + } + ] + }, + "sessionTimeout": { + "type": "integer", + "title": "Integer value in milliseconds. Default is 10000 milliseconds, i.e. 10 seconds", + "default": 10000, + "markdownDescription": "It controls the maximum timeout value when sending emails\n\nDefault value is : `10000`" + }, + "subject": { + "$dynamic": true, + "type": "string", + "title": "The optional subject of this email" + }, + "timeout": { + "type": "string", + "format": "duration" + }, + "to": { + "$dynamic": true, + "type": "string", + "title": "Email address(es) of the recipient(s). Use semicolon as delimiter to provide several email addresses", + "markdownDescription": "Note that each email address must be compliant with the RFC2822 format" + }, + "transportStrategy": { + "type": "string", + "enum": ["SMTP", "SMTPS", "SMTP_TLS", "SMTP_OAUTH2"], + "title": "The optional transport strategy", + "default": "SMTPS", + "markdownDescription": "Will default to SMTPS if left empty\n\nDefault value is : `SMTPS`" + }, + "type": { + "const": "io.kestra.plugin.notifications.mail.MailSend" + }, + "username": { + "$dynamic": true, + "type": "string", + "title": "The email server username" + }, + "workerGroup": { + "$ref": "#/definitions/io.kestra.core.models.tasks.WorkerGroup" + } + }, + "required": ["id", "type"], + "title": "Send an automated email from a workflow", + "markdownDescription": "##### Examples\n\u003E Send an email on a failed flow execution\n```yaml\nid: unreliable_flow\nnamespace: company.team\n\ntasks:\n - id: fail\n type: io.kestra.plugin.scripts.shell.Commands\n runner: PROCESS\n commands:\n - exit 1\n\nerrors:\n - id: send_email\n type: io.kestra.plugin.notifications.mail.MailSend\n from: hello@kestra.io\n to: hello@kestra.io\n username: \"{{ secret('EMAIL_USERNAME') }}\"\n password: \"{{ secret('EMAIL_PASSWORD') }}\"\n host: mail.privateemail.com\n port: 465 # or 587\n subject: \"Kestra workflow failed for the flow {{flow.id}} in the namespace {{flow.namespace}}\"\n htmlTextContent: \"Failure alert for flow {{ flow.namespace }}.{{ flow.id }} with ID {{ execution.id }}\"\n\n```" + }, + "io.kestra.plugin.notifications.mail.MailSend-Attachment": { + "type": "object", + "properties": { + "contentType": { + "$dynamic": true, + "type": "string", + "title": "One or more 'Cc' (carbon copy) optional recipient email address(es). Use semicolon as a delimiter to provide several addresses", + "default": "application/octet-stream", + "markdownDescription": "Note that each email address must be compliant with the RFC2822 format\n\nDefault value is : `application/octet-stream`" + }, + "name": { + "$dynamic": true, + "type": "string", + "title": "The name of the attachment (eg. 'filename.txt')" + }, + "uri": { + "$dynamic": true, + "type": "string", + "title": "An attachment URI from Kestra internal storage" + } + }, + "required": ["name", "uri"] + }, + "io.kestra.plugin.notifications.opsgenie.OpsgenieAlert": { + "type": "object", + "properties": { + "allowFailure": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "authorizationToken": { + "$dynamic": true, + "type": "string", + "title": "GenieKey. Authorization token from Opsgenie" + }, + "description": { + "type": "string" + }, + "disabled": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "id": { + "type": "string", + "minLength": 1, + "pattern": "^[a-zA-Z0-9][a-zA-Z0-9_-]*" + }, + "logLevel": { + "type": "string", + "enum": ["ERROR", "WARN", "INFO", "DEBUG", "TRACE"] + }, + "payload": { + "$dynamic": true, + "type": "string", + "title": "Opsgenie alert payload" + }, + "retry": { + "oneOf": [ + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Constant-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Exponential-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Random-2" + } + ] + }, + "timeout": { + "type": "string", + "format": "duration" + }, + "type": { + "const": "io.kestra.plugin.notifications.opsgenie.OpsgenieAlert" + }, + "url": { + "$dynamic": true, + "type": "string", + "title": "Alert creation URL", + "minLength": 1 + }, + "workerGroup": { + "$ref": "#/definitions/io.kestra.core.models.tasks.WorkerGroup" + } + }, + "required": ["id", "type", "url"], + "title": "Send an alert to Opsgenie", + "markdownDescription": "Add this task to a list of `errors` tasks to implement custom flow-level failure notifications. Check the \u003Ca href=\"https://docs.opsgenie.com/docs/alert-api\"\u003EOpsgenie documentation\u003C/a\u003E for more details..##### Examples\n\u003E Send a failed flow alert to Opsgenie\n```yaml\nid: unreliable_flow\nnamespace: company.team\n\ntasks:\n - id: fail\n type: io.kestra.plugin.scripts.shell.Commands\n runner: PROCESS\n commands:\n - exit 1\n\nerrors:\n - id: alert_on_failure\n type: io.kestra.plugin.notifications.opsgenie.OpsgenieAlert\n url: \"{{ secret('OPSGENIE_REQUEST') }}\" # https://api.opsgenie.com/v2/alerts/requests/xxx000xxxxx\n payload: |\n {\n \"message\":\"Kestra Opsgenie alert\",\n \"alias\":\"ExecutionError\",\n \"responders\":[\n {\"id\":\"4513b7ea-3b91-438f-b7e4-e3e54af9147c\",\"type\":\"team\"},\n {\"id\":\"bb4d9938-c3c2-455d-aaab-727aa701c0d8\",\"type\":\"user\"},\n {\"id\":\"aee8a0de-c80f-4515-a232-501c0bc9d715\",\"type\":\"escalation\"},\n {\"id\":\"80564037-1984-4f38-b98e-8a1f662df552\",\"type\":\"schedule\"}\n ],\n \"visibleTo\":[\n {\"id\":\"4513b7ea-3b91-438f-b7e4-e3e54af9147c\",\"type\":\"team\"},\n {\"id\":\"bb4d9938-c3c2-455d-aaab-727aa701c0d8\",\"type\":\"user\"}\n ],\n \"tags\":[\"ExecutionFail\",\"Error\",\"Execution\"],\n \"priority\":\"P1\"\n }\n authorizationToken: sampleAuthorizationToken\n\n```\n\n\u003E Send a Opsgenie alert\n```yaml\nid: opsgenie_incoming_webhook\nnamespace: company.team\n\ntasks:\n - id: send_opsgenie_message\n type: io.kestra.plugin.notifications.opsgenie.OpsgenieAlert\n url: \"{{ secret('OPSGENIE_REQUEST') }}\"\n payload: |\n {\n \"message\":\"Kestra Opsgenie alert\",\n \"alias\":\"Some Execution\",\n \"responders\":[\n {\"id\":\"4513b7ea-3b91-438f-b7e4-e3e54af9147c\",\"type\":\"team\"},\n {\"id\":\"bb4d9938-c3c2-455d-aaab-727aa701c0d8\",\"type\":\"user\"}\n ],\n \"visibleTo\":[\n {\"id\":\"4513b7ea-3b91-438f-b7e4-e3e54af9147c\",\"type\":\"team\"},\n {\"id\":\"bb4d9938-c3c2-455d-aaab-727aa701c0d8\",\"type\":\"user\"}\n ],\n \"tags\":[\"Execution\"],\n \"priority\":\"P2\"\n }\n authorizationToken: sampleAuthorizationToken\n\n```" + }, + "io.kestra.plugin.notifications.opsgenie.OpsgenieExecution": { + "type": "object", + "properties": { + "alias": { + "$dynamic": true, + "type": "string", + "title": "Map of variables to use for the message template" + }, + "allowFailure": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "authorizationToken": { + "$dynamic": true, + "type": "string", + "title": "GenieKey. Authorization token from Opsgenie" + }, + "customFields": { + "$dynamic": true, + "type": "object", + "title": "Custom fields to be added on notification" + }, + "customMessage": { + "$dynamic": true, + "type": "string", + "title": "Custom message to be added on notification" + }, + "description": { + "type": "string" + }, + "disabled": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "executionId": { + "$dynamic": true, + "type": "string", + "title": "The execution id to use", + "default": "{{ execution.id }}", + "markdownDescription": "Default is the current execution, change it to {{ trigger.executionId }} if you use this task with a Flow trigger to use the original execution.\n\nDefault value is : `\"{{ execution.id }}\"`" + }, + "id": { + "type": "string", + "minLength": 1, + "pattern": "^[a-zA-Z0-9][a-zA-Z0-9_-]*" + }, + "logLevel": { + "type": "string", + "enum": ["ERROR", "WARN", "INFO", "DEBUG", "TRACE"] + }, + "message": { + "$dynamic": true, + "type": "string", + "title": "Map of variables to use for the message template" + }, + "payload": { + "$dynamic": true, + "type": "string", + "title": "Opsgenie alert payload" + }, + "priority": { + "$dynamic": true, + "type": "string", + "title": "Map of variables to use for the message template" + }, + "responders": { + "$dynamic": true, + "type": "object", + "title": "Map of variables to use for the message template" + }, + "retry": { + "oneOf": [ + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Constant-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Exponential-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Random-2" + } + ] + }, + "tags": { + "$dynamic": true, + "title": "Map of variables to use for the message template", + "type": "array", + "items": { + "$dynamic": true, + "type": "string" + } + }, + "templateRenderMap": { + "$dynamic": true, + "type": "object", + "title": "Map of variables to use for the message template" + }, + "timeout": { + "type": "string", + "format": "duration" + }, + "type": { + "const": "io.kestra.plugin.notifications.opsgenie.OpsgenieExecution" + }, + "url": { + "$dynamic": true, + "type": "string", + "title": "Alert creation URL", + "minLength": 1 + }, + "visibleTo": { + "$dynamic": true, + "type": "object", + "title": "Map of variables to use for the message template" + }, + "workerGroup": { + "$ref": "#/definitions/io.kestra.core.models.tasks.WorkerGroup" + } + }, + "required": ["id", "type", "url"], + "title": "Send a notification with the execution information via Opsgenie", + "markdownDescription": "The message will include a link to the execution page in the UI along with the execution ID, namespace, flow name, the start date, duration and the final status of the execution, and (if failed) the task that led to a failure.\n\nUse this notification task only in a flow that has a [Flow trigger](https://kestra.io/docs/administrator-guide/monitoring#alerting). Don't use this notification task in `errors` tasks. Instead, for `errors` tasks, use the [OpsgenieAlert](https://kestra.io/plugins/plugin-notifications/tasks/opsgenie/io.kestra.plugin.notifications.opsgenie.opsgeniealert) task.##### Examples\n\u003E Send notification on a failed flow execution via Opsgenie\n```yaml\nid: failure_alert\nnamespace: company.team\n\ntasks:\n - id: send_alert\n type: io.kestra.plugin.notifications.opsgenie.OpsgenieExecution\n url: \"{{ secret('OPSGENIE_REQUEST') }}\" # format: 'https://api.opsgenie.com/v2/alerts/requests/xxxxxxyx-yyyx-xyxx-yyxx-yyxyyyyyxxxx'\n message: \"Kestra Opsgenie alert\"\n alias: ExecutionError\n responders:\n 4513b7ea-3b91-438f-b7e4-e3e54af9147c: team\n bb4d9938-c3c2-455d-aaab-727aa701c0d8: user\n aee8a0de-c80f-4515-a232-501c0bc9d715: escalation\n 80564037-1984-4f38-b98e-8a1f662df552: schedule\n visibleTo:\n 4513b7ea-3b91-438f-b7e4-e3e54af9147c: team\n bb4d9938-c3c2-455d-aaab-727aa701c0d8: user\n priority: P1\n tags:\n - ExecutionError\n - Error\n - Fail\n - Execution\n authorizationToken: sampleAuthorizationToken\n executionId: \"{{trigger.executionId}}\"\n\ntriggers:\n - id: failed_prod_workflows\n type: io.kestra.plugin.core.trigger.Flow\n conditions:\n - type: io.kestra.plugin.core.condition.ExecutionStatusCondition\n in:\n - FAILED\n - WARNING\n - type: io.kestra.plugin.core.condition.ExecutionNamespaceCondition\n namespace: prod\n prefix: true\n\n```" + }, + "io.kestra.plugin.notifications.pagerduty.PagerDutyAlert": { + "type": "object", + "properties": { + "allowFailure": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "description": { + "type": "string" + }, + "disabled": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "id": { + "type": "string", + "minLength": 1, + "pattern": "^[a-zA-Z0-9][a-zA-Z0-9_-]*" + }, + "logLevel": { + "type": "string", + "enum": ["ERROR", "WARN", "INFO", "DEBUG", "TRACE"] + }, + "payload": { + "$dynamic": true, + "type": "string", + "title": "PagerDuty message payload" + }, + "retry": { + "oneOf": [ + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Constant-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Exponential-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Random-2" + } + ] + }, + "timeout": { + "type": "string", + "format": "duration" + }, + "type": { + "const": "io.kestra.plugin.notifications.pagerduty.PagerDutyAlert" + }, + "url": { + "$dynamic": true, + "type": "string", + "title": "PagerDuty event URL", + "minLength": 1 + }, + "workerGroup": { + "$ref": "#/definitions/io.kestra.core.models.tasks.WorkerGroup" + } + }, + "required": ["id", "type", "url"], + "title": "Send a PagerDuty alert", + "markdownDescription": "Add this task to a list of `errors` tasks to implement custom flow-level failure notifications. Check the \u003Ca href=\"https://developer.pagerduty.com/docs/ZG9jOjExMDI5NTgx-send-an-alert-event\"\u003EPagerDuty documentation\u003C/a\u003E for more details..##### Examples\n\u003E Send a PagerDuty alert on a failed flow execution\n```yaml\nid: unreliable_flow\nnamespace: company.team\n\ntasks:\n - id: fail\n type: io.kestra.plugin.scripts.shell.Commands\n runner: PROCESS\n commands:\n - exit 1\n\nerrors:\n - id: alert_on_failure\n type: io.kestra.plugin.notifications.pagerduty.PagerDutyAlert\n url: \"{{ secret('PAGERDUTY_EVENT') }}\" # https://events.pagerduty.com/v2/enqueue\n payload: |\n {\n \"dedup_key\": \"samplekey\",\n \"routing_key\": \"samplekey\",\n \"event_action\": \"trigger\",\n \"payload\" : {\n \"summary\": \"PagerDuty alert\",\n }\n }\n\n```\n\n\u003E Send a Discord message via incoming webhook\n```yaml\nid: discord_incoming_webhook\nnamespace: company.team\n\ntasks:\n - id: send_pagerduty_alert\n type: io.kestra.plugin.notifications.pagerduty.PagerDutyAlert\n url: \"{{ secret('PAGERDUTY_EVENT') }}\"\n payload: |\n {\n \"dedup_key\": \"samplekey\",\n \"routing_key\": \"samplekey\",\n \"event_action\": \"acknowledge\"\n }\n\n```" + }, + "io.kestra.plugin.notifications.pagerduty.PagerDutyExecution": { + "type": "object", + "properties": { + "allowFailure": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "customFields": { + "$dynamic": true, + "type": "object", + "title": "Custom fields to be added on notification" + }, + "customMessage": { + "$dynamic": true, + "type": "string", + "title": "Custom message to be added on notification" + }, + "deduplicationKey": { + "$dynamic": true, + "type": "string", + "title": "Deduplication key for correlating triggers and resolves" + }, + "description": { + "type": "string" + }, + "disabled": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "eventAction": { + "$dynamic": true, + "type": "string", + "title": "The type of event. Can be trigger, acknowledge or resolve." + }, + "executionId": { + "$dynamic": true, + "type": "string", + "title": "The execution id to use", + "default": "{{ execution.id }}", + "markdownDescription": "Default is the current execution, change it to {{ trigger.executionId }} if you use this task with a Flow trigger to use the original execution.\n\nDefault value is : `\"{{ execution.id }}\"`" + }, + "id": { + "type": "string", + "minLength": 1, + "pattern": "^[a-zA-Z0-9][a-zA-Z0-9_-]*" + }, + "logLevel": { + "type": "string", + "enum": ["ERROR", "WARN", "INFO", "DEBUG", "TRACE"] + }, + "payload": { + "$dynamic": true, + "type": "string", + "title": "PagerDuty message payload" + }, + "payloadSummary": { + "$dynamic": true, + "type": "string", + "title": "Brief text summary of the event, used to generate the summaries/titles of any associated alerts", + "maxLength": 1024 + }, + "retry": { + "oneOf": [ + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Constant-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Exponential-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Random-2" + } + ] + }, + "routingKey": { + "$dynamic": true, + "type": "string", + "title": "Integration Key for an integration on a PagerDuty service" + }, + "templateRenderMap": { + "$dynamic": true, + "type": "object", + "title": "Map of variables to use for the message template" + }, + "timeout": { + "type": "string", + "format": "duration" + }, + "type": { + "const": "io.kestra.plugin.notifications.pagerduty.PagerDutyExecution" + }, + "url": { + "$dynamic": true, + "type": "string", + "title": "PagerDuty event URL", + "minLength": 1 + }, + "workerGroup": { + "$ref": "#/definitions/io.kestra.core.models.tasks.WorkerGroup" + } + }, + "required": ["id", "type", "url"], + "title": "Send a PagerDuty message with the execution information", + "markdownDescription": "The message will include a link to the execution page in the UI along with the execution ID, namespace, flow name, the start date, duration and the final status of the execution, and (if failed) the task that led to a failure.\n\nUse this notification task only in a flow that has a [Flow trigger](https://kestra.io/docs/administrator-guide/monitoring#alerting). Don't use this notification task in `errors` tasks. Instead, for `errors` tasks, use the [PagerDutyAlert](https://kestra.io/plugins/plugin-notifications/tasks/pagerduty/io.kestra.plugin.notifications.pagerduty.pagerdutyalert) task.##### Examples\n\u003E Send a PagerDuty notification on a failed flow execution\n```yaml\nid: failure_alert\nnamespace: company.team\n\ntasks:\n - id: send_alert\n type: io.kestra.plugin.notifications.pagerduty.PagerDutyExecution\n url: \"{{ secret('PAGERDUTY_EVENT') }}\" # format: https://events.pagerduty.com/v2/enqueue\n payloadSummary: \"PagerDuty Alert\"\n deduplicationKey: \"dedupkey\"\n routingKey: \"routingkey\"\n eventAction: \"acknowledge\"\n executionId: \"{{trigger.executionId}}\"\n\ntriggers:\n - id: failed_prod_workflows\n type: io.kestra.plugin.core.trigger.Flow\n conditions:\n - type: io.kestra.plugin.core.condition.ExecutionStatusCondition\n in:\n - FAILED\n - WARNING\n - type: io.kestra.plugin.core.condition.ExecutionNamespaceCondition\n namespace: prod\n prefix: true\n\n```" + }, + "io.kestra.plugin.notifications.sendgrid.SendGridMailExecution": { + "type": "object", + "properties": { + "allowFailure": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "attachments": { + "$dynamic": true, + "title": "Adds an attachment to the email message", + "markdownDescription": "The attachment will be shown in the email client as separate files available for download, or displayed inline if the client supports it (for example, most browsers display PDF's in a popup window)", + "type": "array", + "items": { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.notifications.sendgrid.SendGridMailSend-Attachment" + }, + { + "$dynamic": true + } + ] + } + }, + "cc": { + "$dynamic": true, + "title": "One or more 'Cc' (carbon copy) optional recipient(s) email address(es)", + "markdownDescription": "Note that each email address must be compliant with the RFC2822 format", + "type": "array", + "items": { + "$dynamic": true, + "type": "string" + } + }, + "customFields": { + "$dynamic": true, + "type": "object", + "title": "Custom fields to be added on notification" + }, + "customMessage": { + "$dynamic": true, + "type": "string", + "title": "Custom message to be added on notification" + }, + "description": { + "type": "string" + }, + "disabled": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "embeddedImages": { + "$dynamic": true, + "title": "Adds image data to this email that can be referred to from the email HTML body", + "markdownDescription": "The provided images are assumed to be of MIME type png, jpg or whatever the email client supports as valid image that can be embedded in HTML content", + "type": "array", + "items": { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.notifications.sendgrid.SendGridMailSend-Attachment" + }, + { + "$dynamic": true + } + ] + } + }, + "executionId": { + "$dynamic": true, + "type": "string", + "title": "The execution id to use", + "default": "{{ execution.id }}", + "markdownDescription": "Default is the current execution, change it to {{ trigger.executionId }} if you use this task with a Flow trigger to use the original execution.\n\nDefault value is : `\"{{ execution.id }}\"`" + }, + "from": { + "$dynamic": true, + "type": "string", + "title": "The address of the sender of this email", + "minLength": 1 + }, + "htmlContent": { + "$dynamic": true, + "type": "string", + "title": "The optional email message body in HTML", + "markdownDescription": "Both text and HTML can be provided, which will be offered to the email client as alternative contentEmail clients that support it, will favor HTML over plain text and ignore the text body completely" + }, + "id": { + "type": "string", + "minLength": 1, + "pattern": "^[a-zA-Z0-9][a-zA-Z0-9_-]*" + }, + "logLevel": { + "type": "string", + "enum": ["ERROR", "WARN", "INFO", "DEBUG", "TRACE"] + }, + "retry": { + "oneOf": [ + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Constant-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Exponential-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Random-2" + } + ] + }, + "sendgridApiKey": { + "$dynamic": true, + "type": "string", + "title": "The SendGrid API KEY", + "minLength": 1 + }, + "subject": { + "$dynamic": true, + "type": "string", + "title": "The optional subject of this email" + }, + "templateRenderMap": { + "$dynamic": true, + "type": "object", + "title": "Map of variables to use for the message template" + }, + "textContent": { + "$dynamic": true, + "type": "string", + "title": "The optional email message body in plain text", + "markdownDescription": "Both text and HTML can be provided, which will be offered to the email client as alternative contentEmail clients that support it, will favor HTML over plain text and ignore the text body completely" + }, + "timeout": { + "type": "string", + "format": "duration" + }, + "to": { + "$dynamic": true, + "title": "Email address(es) of the recipient(s)", + "minItems": 1, + "markdownDescription": "Note that each email address must be compliant with the RFC2822 format", + "type": "array", + "items": { + "$dynamic": true, + "type": "string" + } + }, + "type": { + "const": "io.kestra.plugin.notifications.sendgrid.SendGridMailExecution" + }, + "workerGroup": { + "$ref": "#/definitions/io.kestra.core.models.tasks.WorkerGroup" + } + }, + "required": ["from", "id", "sendgridApiKey", "to", "type"], + "title": "Send an SendGrid email with the execution information", + "markdownDescription": "The message will include a link to the execution page in the UI along with the execution ID, namespace, flow name, the start date, duration and the final status of the execution, and (if failed) the task that led to a failure.\n\nUse this notification task only in a flow that has a [Flow trigger](https://kestra.io/docs/administrator-guide/monitoring#alerting), as shown in this example. Don't use this notification task in `errors` tasks. Instead, for `errors` tasks, use the [SendGridMailSend](https://kestra.io/plugins/plugin-notifications/tasks/mail/io.kestra.plugin.notifications.gendgrid.sendgridmailsend) task.##### Examples\n\u003E Send an SendGrid email notification on a failed flow execution\n```yaml\nid: failure_alert\nnamespace: company.team\n\ntasks:\n - id: send_alert\n type: io.kestra.plugin.notifications.sendgrid.SendGridMailExecution\n to:\n - hello@kestra.io\n from: hello@kestra.io\n subject: \"The workflow execution {{trigger.executionId}} failed for the flow {{trigger.flowId}} in the namespace {{trigger.namespace}}\"\n sendgridApiKey: \"{{ secret('SENDGRID_API_KEY') }}\"\n executionId: \"{{ trigger.executionId }}\"\n\ntriggers:\n - id: failed_prod_workflows\n type: io.kestra.plugin.core.trigger.Flow\n conditions:\n - type: io.kestra.plugin.core.condition.ExecutionStatusCondition\n in:\n - FAILED\n - WARNING\n - type: io.kestra.plugin.core.condition.ExecutionNamespaceCondition\n namespace: prod\n prefix: true\n\n```" + }, + "io.kestra.plugin.notifications.sendgrid.SendGridMailSend": { + "type": "object", + "properties": { + "allowFailure": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "attachments": { + "$dynamic": true, + "title": "Adds an attachment to the email message", + "markdownDescription": "The attachment will be shown in the email client as separate files available for download, or displayed inline if the client supports it (for example, most browsers display PDF's in a popup window)", + "type": "array", + "items": { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.notifications.sendgrid.SendGridMailSend-Attachment" + }, + { + "$dynamic": true + } + ] + } + }, + "cc": { + "$dynamic": true, + "title": "One or more 'Cc' (carbon copy) optional recipient(s) email address(es)", + "markdownDescription": "Note that each email address must be compliant with the RFC2822 format", + "type": "array", + "items": { + "$dynamic": true, + "type": "string" + } + }, + "description": { + "type": "string" + }, + "disabled": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "embeddedImages": { + "$dynamic": true, + "title": "Adds image data to this email that can be referred to from the email HTML body", + "markdownDescription": "The provided images are assumed to be of MIME type png, jpg or whatever the email client supports as valid image that can be embedded in HTML content", + "type": "array", + "items": { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.notifications.sendgrid.SendGridMailSend-Attachment" + }, + { + "$dynamic": true + } + ] + } + }, + "from": { + "$dynamic": true, + "type": "string", + "title": "The address of the sender of this email", + "minLength": 1 + }, + "htmlContent": { + "$dynamic": true, + "type": "string", + "title": "The optional email message body in HTML", + "markdownDescription": "Both text and HTML can be provided, which will be offered to the email client as alternative contentEmail clients that support it, will favor HTML over plain text and ignore the text body completely" + }, + "id": { + "type": "string", + "minLength": 1, + "pattern": "^[a-zA-Z0-9][a-zA-Z0-9_-]*" + }, + "logLevel": { + "type": "string", + "enum": ["ERROR", "WARN", "INFO", "DEBUG", "TRACE"] + }, + "retry": { + "oneOf": [ + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Constant-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Exponential-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Random-2" + } + ] + }, + "sendgridApiKey": { + "$dynamic": true, + "type": "string", + "title": "The SendGrid API KEY", + "minLength": 1 + }, + "subject": { + "$dynamic": true, + "type": "string", + "title": "The optional subject of this email" + }, + "textContent": { + "$dynamic": true, + "type": "string", + "title": "The optional email message body in plain text", + "markdownDescription": "Both text and HTML can be provided, which will be offered to the email client as alternative contentEmail clients that support it, will favor HTML over plain text and ignore the text body completely" + }, + "timeout": { + "type": "string", + "format": "duration" + }, + "to": { + "$dynamic": true, + "title": "Email address(es) of the recipient(s)", + "minItems": 1, + "markdownDescription": "Note that each email address must be compliant with the RFC2822 format", + "type": "array", + "items": { + "$dynamic": true, + "type": "string" + } + }, + "type": { + "const": "io.kestra.plugin.notifications.sendgrid.SendGridMailSend" + }, + "workerGroup": { + "$ref": "#/definitions/io.kestra.core.models.tasks.WorkerGroup" + } + }, + "required": ["from", "id", "sendgridApiKey", "to", "type"], + "title": "Send an automated SendGrid email from a workflow", + "markdownDescription": "##### Examples\n\u003E Send an email on a failed flow execution\n```yaml\nid: unreliable_flow\nnamespace: company.team\n\ntasks:\n - id: fail\n type: io.kestra.plugin.scripts.shell.Commands\n runner: PROCESS\n commands:\n - exit 1\n\nerrors:\n - id: send_email\n type: io.kestra.plugin.notifications.sendgrid.SendGridMailSend\n from: hello@kestra.io\n to:\n - hello@kestra.io\n sendgridApiKey: \"{{ secret('SENDGRID_API_KEY') }}\"\n subject: \"Kestra workflow failed for the flow {{flow.id}} in the namespace {{flow.namespace}}\"\n htmlTextContent: \"Failure alert for flow {{ flow.namespace }}.{{ flow.id }} with ID {{ execution.id }}\"\n\n```" + }, + "io.kestra.plugin.notifications.sendgrid.SendGridMailSend-Attachment": { + "type": "object", + "properties": { + "contentType": { + "$dynamic": true, + "type": "string", + "title": "One or more 'Cc' (carbon copy) optional recipient email address(es). Use semicolon as a delimiter to provide several addresses", + "default": "application/octet-stream", + "markdownDescription": "Note that each email address must be compliant with the RFC2822 format\n\nDefault value is : `application/octet-stream`" + }, + "name": { + "$dynamic": true, + "type": "string", + "title": "The name of the attachment (eg. 'filename.txt')" + }, + "uri": { + "$dynamic": true, + "type": "string", + "title": "An attachment URI from Kestra internal storage" + } + }, + "required": ["name", "uri"] + }, + "io.kestra.plugin.notifications.sentry.SentryAlert": { + "type": "object", + "properties": { + "allowFailure": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "description": { + "type": "string" + }, + "disabled": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "dsn": { + "$dynamic": true, + "type": "string", + "title": "Sentry DSN", + "minLength": 1 + }, + "id": { + "type": "string", + "minLength": 1, + "pattern": "^[a-zA-Z0-9][a-zA-Z0-9_-]*" + }, + "logLevel": { + "type": "string", + "enum": ["ERROR", "WARN", "INFO", "DEBUG", "TRACE"] + }, + "payload": { + "$dynamic": true, + "type": "string", + "title": "Sentry event payload" + }, + "retry": { + "oneOf": [ + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Constant-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Exponential-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Random-2" + } + ] + }, + "timeout": { + "type": "string", + "format": "duration" + }, + "type": { + "const": "io.kestra.plugin.notifications.sentry.SentryAlert" + }, + "workerGroup": { + "$ref": "#/definitions/io.kestra.core.models.tasks.WorkerGroup" + } + }, + "required": ["dsn", "id", "type"], + "title": "Send a Sentry alert when a specific flow or task fails", + "markdownDescription": "Add this task to a list of `errors` tasks to implement custom flow-level failure notifications. \n\n The only required input is a DSN string value, which you can find when you go to your Sentry project settings and go to the section `Client Keys (DSN)`. You can find more detailed description of how to find your DSN in the [following Sentry documentation](https://docs.sentry.io/product/sentry-basics/concepts/dsn-explainer/#where-to-find-your-dsn). \n\n You can customize the alert `payload`, which is a JSON object, or you can skip it and use the default payload created by kestra. For more information about the payload, check the [Sentry Event Payloads documentation](https://develop.sentry.dev/sdk/event-payloads/). \n\n The `event_id` is an optional payload attribute that you can use to override the default event ID. If you don't specify it (recommended), kestra will generate a random UUID. You can use this attribute to group events together, but note that this must be a UUID type. For more information, check the [Sentry documentation](https://docs.sentry.io/product/issues/grouping-and-fingerprints/).##### Examples\n\u003E Send a Sentry alert on a failed flow execution\n```yaml\nid: unreliable_flow\nnamespace: company.team\n\ntasks:\n - id: fail\n type: io.kestra.plugin.scripts.shell.Commands\n runner: PROCESS\n commands:\n - exit 1\n\nerrors:\n - id: alert_on_failure\n type: io.kestra.plugin.notifications.sentry.SentryAlert\n dsn: \"{{ secret('SENTRY_DSN') }}\" # format: https://xxx@xxx.ingest.sentry.io/xxx\n```\n\n\u003E Send a custom Sentry alert\n```yaml\nid: sentry_alert\nnamespace: company.team\n\ntasks:\n - id: send_sentry_message\n type: io.kestra.plugin.notifications.sentry.SentryAlert\n dsn: \"{{ secret('SENTRY_DSN') }}\"\n payload: |\n {\n \"timestamp\": \"{{ execution.startDate }}\",\n \"platform\": \"java\",\n \"level\": \"error\",\n \"transaction\": \"/execution/id/{{ execution.id }}\",\n \"server_name\": \"localhost:8080\",\n \"message\": {\n \"message\": \"Execution {{ execution.id }} failed\"\n },\n \"extra\": {\n \"Namespace\": \"{{ flow.namespace }}\",\n \"Flow ID\": \"{{ flow.id }}\",\n \"Execution ID\": \"{{ execution.id }}\",\n \"Link\": \"http://localhost:8080/ui/executions/{{flow.namespace}}/{{flow.id}}/{{execution.id}}\"\n }\n }\n```" + }, + "io.kestra.plugin.notifications.sentry.SentryExecution": { + "type": "object", + "properties": { + "allowFailure": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "customFields": { + "$dynamic": true, + "type": "object", + "title": "Custom fields to be added on notification" + }, + "customMessage": { + "$dynamic": true, + "type": "string", + "title": "Custom message to be added on notification" + }, + "description": { + "type": "string" + }, + "disabled": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "dsn": { + "$dynamic": true, + "type": "string", + "title": "Sentry DSN", + "minLength": 1 + }, + "errors": { + "$dynamic": true, + "type": "object", + "title": "An arbitrary mapping of additional metadata to store with the event" + }, + "eventId": { + "$dynamic": true, + "type": "string", + "title": "Hexadecimal string representing a uuid4 value. The length is exactly 32 characters. Dashes are not allowed. It has to be lowercase.", + "default": "a generated unique identifier", + "pattern": "[0-9a-f]{8}[0-9a-f]{4}[0-9a-f]{4}[0-9a-f]{4}[0-9a-f]{12}", + "markdownDescription": "Default value is : `a generated unique identifier`" + }, + "executionId": { + "$dynamic": true, + "type": "string", + "title": "The execution id to use", + "default": "{{ execution.id }}", + "markdownDescription": "Default is the current execution, change it to {{ trigger.executionId }} if you use this task with a Flow trigger to use the original execution.\n\nDefault value is : `\"{{ execution.id }}\"`" + }, + "extra": { + "$dynamic": true, + "type": "object", + "title": "An arbitrary mapping of additional metadata to store with the event" + }, + "id": { + "type": "string", + "minLength": 1, + "pattern": "^[a-zA-Z0-9][a-zA-Z0-9_-]*" + }, + "level": { + "$dynamic": true, + "type": "string", + "enum": ["FATAL", "ERROR", "WARNING", "INFO", "DEBUG"], + "title": "The record severity", + "default": "ERROR", + "markdownDescription": "Acceptable values are: `fatal`, `error`, `warning`, `info`, `debug`.\n\nDefault value is : `ERROR`" + }, + "logLevel": { + "type": "string", + "enum": ["ERROR", "WARN", "INFO", "DEBUG", "TRACE"] + }, + "payload": { + "$dynamic": true, + "type": "string", + "title": "Sentry event payload" + }, + "platform": { + "$dynamic": true, + "type": "string", + "enum": [ + "AS3", + "C", + "CFML", + "COCOA", + "CSHARP", + "ELIXIR", + "HASKELL", + "GO", + "GROOVY", + "JAVA", + "JAVASCRIPT", + "NATIVE", + "NODE", + "OBJC", + "OTHER", + "PERL", + "PHP", + "PYTHON", + "RUBY" + ], + "title": "A string representing the platform the SDK is submitting from. This will be used by the Sentry interface to customize various components.", + "default": "JAVA", + "markdownDescription": "Default value is : `JAVA`" + }, + "retry": { + "oneOf": [ + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Constant-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Exponential-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Random-2" + } + ] + }, + "serverName": { + "$dynamic": true, + "type": "string", + "title": "Identifies the host from which the event was recorded" + }, + "templateRenderMap": { + "$dynamic": true, + "type": "object", + "title": "Map of variables to use for the message template" + }, + "timeout": { + "type": "string", + "format": "duration" + }, + "transaction": { + "$dynamic": true, + "type": "string", + "title": "The name of the transaction which caused this alert", + "markdownDescription": "For example, in a web app, this might be the route name" + }, + "type": { + "const": "io.kestra.plugin.notifications.sentry.SentryExecution" + }, + "workerGroup": { + "$ref": "#/definitions/io.kestra.core.models.tasks.WorkerGroup" + } + }, + "required": ["dsn", "id", "type"], + "title": "Send a Sentry alert with the execution information", + "markdownDescription": "The alert message will include a link to the execution page in the UI along with the execution ID, namespace, flow name, the start date, duration and the final status of the execution, and (if failed) the task that led to a failure.\n\n Use this notification task only in a flow that has a [Flow trigger](https://kestra.io/docs/administrator-guide/monitoring#alerting). Don't use this notification task in `errors` tasks. Instead, for `errors` tasks, use the [SentryAlert](https://kestra.io/plugins/plugin-notifications/tasks/sentry/io.kestra.plugin.notifications.sentry.sentryalert) task. \n\n The only required input is a DSN string value, which you can find when you go to your Sentry project settings and go to the section `Client Keys (DSN)`. For more detailed description of how to find your DSN, visit the [following Sentry documentation](https://docs.sentry.io/product/sentry-basics/concepts/dsn-explainer/#where-to-find-your-dsn).\n\n You can customize the alert `payload`, which is a JSON object. For more information about the payload, check the [Sentry Event Payloads documentation](https://develop.sentry.dev/sdk/event-payloads/). \n\n The `level` parameter is the severity of the issue. The task documentation lists all available options including `DEBUG`, `INFO`, `WARNING`, `ERROR`, `FATAL`. The default value is `ERROR`.##### Examples\n\u003E This monitoring flow is triggered anytime a flow fails in the `prod` namespace. It then sends a Sentry alert with the execution information. You can fully customize the [trigger conditions](https://kestra.io/plugins/core#conditions).\n```yaml\nid: failure_alert\nnamespace: company.team\n\ntasks:\n - id: send_alert\n type: io.kestra.plugin.notifications.sentry.SentryExecution\n executionId: \"{{ trigger.executionId }}\"\n transaction: \"/execution/id/{{ trigger.executionId }}\"\n dsn: \"{{ secret('SENTRY_DSN') }}\"\n level: ERROR\n executionId: \"{{ trigger.executionId }}\"\n\ntriggers:\n - id: failed_prod_workflows\n type: io.kestra.plugin.core.trigger.Flow\n conditions:\n - type: io.kestra.plugin.core.condition.ExecutionStatusCondition\n in:\n - FAILED\n - WARNING\n - type: io.kestra.plugin.core.condition.ExecutionNamespaceCondition\n namespace: prod\n prefix: true\n```" + }, + "io.kestra.plugin.notifications.slack.SlackExecution": { + "type": "object", + "properties": { + "allowFailure": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "channel": { + "$dynamic": true, + "type": "string", + "title": "Slack channel to send the message to" + }, + "customFields": { + "$dynamic": true, + "type": "object", + "title": "Custom fields to be added on notification" + }, + "customMessage": { + "$dynamic": true, + "type": "string", + "title": "Custom message to be added on notification" + }, + "description": { + "type": "string" + }, + "disabled": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "executionId": { + "$dynamic": true, + "type": "string", + "title": "The execution id to use", + "default": "{{ execution.id }}", + "markdownDescription": "Default is the current execution, change it to {{ trigger.executionId }} if you use this task with a Flow trigger to use the original execution.\n\nDefault value is : `\"{{ execution.id }}\"`" + }, + "iconEmoji": { + "$dynamic": true, + "type": "string", + "title": "Emoji icon to use" + }, + "iconUrl": { + "$dynamic": true, + "type": "string", + "title": "Url of the icon to use" + }, + "id": { + "type": "string", + "minLength": 1, + "pattern": "^[a-zA-Z0-9][a-zA-Z0-9_-]*" + }, + "logLevel": { + "type": "string", + "enum": ["ERROR", "WARN", "INFO", "DEBUG", "TRACE"] + }, + "payload": { + "$dynamic": true, + "type": "string", + "title": "Slack message payload" + }, + "retry": { + "oneOf": [ + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Constant-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Exponential-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Random-2" + } + ] + }, + "templateRenderMap": { + "$dynamic": true, + "type": "object", + "title": "Map of variables to use for the message template" + }, + "timeout": { + "type": "string", + "format": "duration" + }, + "type": { + "const": "io.kestra.plugin.notifications.slack.SlackExecution" + }, + "url": { + "$dynamic": true, + "type": "string", + "title": "Slack incoming webhook URL", + "minLength": 1, + "markdownDescription": "Check the \u003Ca href=\"https://api.slack.com/messaging/webhooks#create_a_webhook\"\u003ECreate an Incoming Webhook\u003C/a\u003E documentation for more details.." + }, + "username": { + "$dynamic": true, + "type": "string", + "title": "Author of the slack message" + }, + "workerGroup": { + "$ref": "#/definitions/io.kestra.core.models.tasks.WorkerGroup" + } + }, + "required": ["id", "type", "url"], + "title": "Send a Slack message with the execution information", + "markdownDescription": "The message will include a link to the execution page in the UI along with the execution ID, namespace, flow name, the start date, duration and the final status of the execution, and (if failed) the task that led to a failure.\n\nUse this notification task only in a flow that has a [Flow trigger](https://kestra.io/docs/administrator-guide/monitoring#alerting). Don't use this notification task in `errors` tasks. Instead, for `errors` tasks, use the [SlackIncomingWebhook](https://kestra.io/plugins/plugin-notifications/tasks/slack/io.kestra.plugin.notifications.slack.slackincomingwebhook) task.##### Examples\n\u003E Send a Slack notification on a failed flow execution\n```yaml\nid: failure_alert\nnamespace: company.team\n\ntasks:\n - id: send_alert\n type: io.kestra.plugin.notifications.slack.SlackExecution\n url: \"{{ secret('SLACK_WEBHOOK') }}\" # format: https://hooks.slack.com/services/xzy/xyz/xyz\n channel: \"#general\"\n executionId: \"{{trigger.executionId}}\"\n\ntriggers:\n - id: failed_prod_workflows\n type: io.kestra.plugin.core.trigger.Flow\n conditions:\n - type: io.kestra.plugin.core.condition.ExecutionStatusCondition\n in:\n - FAILED\n - WARNING\n - type: io.kestra.plugin.core.condition.ExecutionNamespaceCondition\n namespace: prod\n prefix: true\n\n```" + }, + "io.kestra.plugin.notifications.slack.SlackIncomingWebhook": { + "type": "object", + "properties": { + "allowFailure": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "description": { + "type": "string" + }, + "disabled": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "id": { + "type": "string", + "minLength": 1, + "pattern": "^[a-zA-Z0-9][a-zA-Z0-9_-]*" + }, + "logLevel": { + "type": "string", + "enum": ["ERROR", "WARN", "INFO", "DEBUG", "TRACE"] + }, + "payload": { + "$dynamic": true, + "type": "string", + "title": "Slack message payload" + }, + "retry": { + "oneOf": [ + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Constant-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Exponential-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Random-2" + } + ] + }, + "timeout": { + "type": "string", + "format": "duration" + }, + "type": { + "const": "io.kestra.plugin.notifications.slack.SlackIncomingWebhook" + }, + "url": { + "$dynamic": true, + "type": "string", + "title": "Slack incoming webhook URL", + "minLength": 1, + "markdownDescription": "Check the \u003Ca href=\"https://api.slack.com/messaging/webhooks#create_a_webhook\"\u003ECreate an Incoming Webhook\u003C/a\u003E documentation for more details.." + }, + "workerGroup": { + "$ref": "#/definitions/io.kestra.core.models.tasks.WorkerGroup" + } + }, + "required": ["id", "type", "url"], + "title": "Send a Slack message using an Incoming Webhook", + "markdownDescription": "Add this task to send direct Slack notifications. Check the \u003Ca href=\"https://api.slack.com/messaging/webhooks\"\u003ESlack documentation\u003C/a\u003E for more details..##### Examples\n\u003E Send a Slack notification on a failed flow execution\n```yaml\nid: unreliable_flow\nnamespace: company.team\n\ntasks:\n - id: fail\n type: io.kestra.plugin.scripts.shell.Commands\n runner: PROCESS\n commands:\n - exit 1\n\nerrors:\n - id: alert_on_failure\n type: io.kestra.plugin.notifications.slack.SlackIncomingWebhook\n url: \"{{ secret('SLACK_WEBHOOK') }}\" # https://hooks.slack.com/services/xzy/xyz/xyz\n payload: |\n {\n \"text\": \"Failure alert for flow {{ flow.namespace }}.{{ flow.id }} with ID {{ execution.id }}\"\n }\n\n```\n\n\u003E Send a Slack message via incoming webhook with a text argument\n```yaml\nid: slack_incoming_webhook\nnamespace: company.team\n\ntasks:\n - id: send_slack_message\n type: io.kestra.plugin.notifications.slack.SlackIncomingWebhook\n url: \"{{ secret('SLACK_WEBHOOK') }}\"\n payload: |\n {\n \"text\": \"Hello from the workflow {{ flow.id }}\"\n }\n\n```\n\n\u003E Send a Slack message via incoming webhook with a blocks argument, read more on blocks \u003Ca href=\"https://api.slack.com/reference/block-kit/blocks\"\u003Ehere\u003C/a\u003E\n```yaml\nid: slack_incoming_webhook\nnamespace: company.team\n\ntasks:\n - id: send_slack_message\n type: io.kestra.plugin.notifications.slack.SlackIncomingWebhook\n url: \"{{ secret('SLACK_WEBHOOK') }}\"\n payload: |\n {\n \"blocks\": [\n \t\t{\n \t\t\t\"type\": \"section\",\n \t\t\t\"text\": {\n \t\t\t\t\"type\": \"mrkdwn\",\n \t\t\t\t\"text\": \"Hello from the workflow *{{ flow.id }}*\"\n \t\t\t}\n \t\t}\n \t]\n }\n\n```" + }, + "io.kestra.plugin.notifications.teams.TeamsExecution": { + "type": "object", + "properties": { + "activitySubtitle": { + "$dynamic": true, + "type": "string", + "title": "Activity Subtitle" + }, + "activityTitle": { + "$dynamic": true, + "type": "string", + "title": "Activity Title" + }, + "allowFailure": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "customFields": { + "$dynamic": true, + "type": "object", + "title": "Custom fields to be added on notification" + }, + "customMessage": { + "$dynamic": true, + "type": "string", + "title": "Custom message to be added on notification" + }, + "description": { + "type": "string" + }, + "disabled": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "executionId": { + "$dynamic": true, + "type": "string", + "title": "The execution id to use", + "default": "{{ execution.id }}", + "markdownDescription": "Default is the current execution, change it to {{ trigger.executionId }} if you use this task with a Flow trigger to use the original execution.\n\nDefault value is : `\"{{ execution.id }}\"`" + }, + "id": { + "type": "string", + "minLength": 1, + "pattern": "^[a-zA-Z0-9][a-zA-Z0-9_-]*" + }, + "logLevel": { + "type": "string", + "enum": ["ERROR", "WARN", "INFO", "DEBUG", "TRACE"] + }, + "payload": { + "$dynamic": true, + "type": "string", + "title": "Microsoft Teams message payload" + }, + "retry": { + "oneOf": [ + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Constant-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Exponential-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Random-2" + } + ] + }, + "templateRenderMap": { + "$dynamic": true, + "type": "object", + "title": "Map of variables to use for the message template" + }, + "themeColor": { + "$dynamic": true, + "type": "string", + "title": "Theme color", + "default": "0076D7", + "markdownDescription": "Default value is : `0076D7`" + }, + "timeout": { + "type": "string", + "format": "duration" + }, + "type": { + "const": "io.kestra.plugin.notifications.teams.TeamsExecution" + }, + "url": { + "$dynamic": true, + "type": "string", + "title": "Microsoft Teams incoming webhook URL", + "minLength": 1 + }, + "workerGroup": { + "$ref": "#/definitions/io.kestra.core.models.tasks.WorkerGroup" + } + }, + "required": ["id", "type", "url"], + "title": "Send a Microsoft Teams message with the execution information", + "markdownDescription": "The message will include a link to the execution page in the UI along with the execution ID, namespace, flow name, the start date, duration and the final status of the execution, and (if failed) the task that led to a failure.\n\nUse this notification task only in a flow that has a [Flow trigger](https://kestra.io/docs/administrator-guide/monitoring#alerting). Don't use this notification task in `errors` tasks. Instead, for `errors` tasks, use the [TeamsIncomingWebhook](https://kestra.io/plugins/plugin-notifications/tasks/teams/io.kestra.plugin.notifications.teams.teamsincomingwebhook) task.##### Examples\n\u003E Send a Microsoft Teams notification on a failed flow execution\n```yaml\nid: failure_alert\nnamespace: company.team\n\ntasks:\n - id: send_alert\n type: io.kestra.plugin.notifications.teams.TeamsExecution\n url: \"{{ secret('TEAMS_WEBHOOK') }}\" # format: https://microsoft.webhook.office.com/webhook/xyz\n activityTitle: \"Kestra Teams notification\"\n executionId: \"{{ trigger.executionId }}\"\n\ntriggers:\n - id: failed_prod_workflows\n type: io.kestra.plugin.core.trigger.Flow\n conditions:\n - type: io.kestra.plugin.core.condition.ExecutionStatusCondition\n in:\n - FAILED\n - WARNING\n - type: io.kestra.plugin.core.condition.ExecutionNamespaceCondition\n namespace: prod\n prefix: true\n\n```" + }, + "io.kestra.plugin.notifications.teams.TeamsIncomingWebhook": { + "type": "object", + "properties": { + "allowFailure": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "description": { + "type": "string" + }, + "disabled": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "id": { + "type": "string", + "minLength": 1, + "pattern": "^[a-zA-Z0-9][a-zA-Z0-9_-]*" + }, + "logLevel": { + "type": "string", + "enum": ["ERROR", "WARN", "INFO", "DEBUG", "TRACE"] + }, + "payload": { + "$dynamic": true, + "type": "string", + "title": "Microsoft Teams message payload" + }, + "retry": { + "oneOf": [ + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Constant-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Exponential-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Random-2" + } + ] + }, + "timeout": { + "type": "string", + "format": "duration" + }, + "type": { + "const": "io.kestra.plugin.notifications.teams.TeamsIncomingWebhook" + }, + "url": { + "$dynamic": true, + "type": "string", + "title": "Microsoft Teams incoming webhook URL", + "minLength": 1 + }, + "workerGroup": { + "$ref": "#/definitions/io.kestra.core.models.tasks.WorkerGroup" + } + }, + "required": ["id", "type", "url"], + "title": "Send a Microsoft Teams message using an incoming webhook.", + "markdownDescription": "Add this task to a list of `errors` tasks to implement custom flow-level failure noticiations. Check the \u003Ca href=\"https://learn.microsoft.com/en-us/azure/data-factory/how-to-send-notifications-to-teams?tabs=data-factory\"\u003EMicrosoft Teams documentation\u003C/a\u003E for more details.##### Examples\n\u003E Send a Microsoft Teams notification on a failed flow execution\n```yaml\nid: unreliable_flow\nnamespace: company.team\n\ntasks:\n - id: fail\n type: io.kestra.plugin.scripts.shell.Commands\n runner: PROCESS\n commands:\n - exit 1\n\nerrors:\n - id: alert_on_failure\n type: io.kestra.plugin.notifications.teams.TeamsIncomingWebhook\n url: \"{{ secret('TEAMS_WEBHOOK') }}\" # format: https://microsoft.webhook.office.com/webhook/xyz\n payload: |\n {\n \"@type\": \"MessageCard\",\n \"@context\": \"http://schema.org/extensions\",\n \"themeColor\": \"0076D7\",\n \"summary\": \"Failure alert for flow {{ flow.namespace }}.{{ flow.id }} with ID {{ execution.id }}\",\n \"sections\": [{\n \"activityTitle\": \"Kestra Workflow Notification\",\n \"activitySubtitle\": \"Workflow Execution Finished With Errors\",\n \"markdown\": true\n }],\n \"potentialAction\": [\n {\n \"@type\": \"OpenUri\",\n \"name\": \"Kestra Workflow\",\n \"targets\": [\n {\n \"os\": \"default\",\n \"uri\": \"{{ vars.systemUrl }}\"\n }\n ]\n }\n ]\n }\n\n```\n\n\u003E Send a Microsoft Teams notification message\n```yaml\nurl: \"https://microsoft.webhook.office.com/webhookb2/XXXXXXXXXX\"\npayload: |\n {\n \"@type\": \"MessageCard\",\n \"@context\": \"http://schema.org/extensions\",\n \"themeColor\": \"0076D7\",\n \"summary\": \"Notification message\",\n \"sections\": [{\n \"activityTitle\": \"Rolling Workflow started\",\n \"activitySubtitle\": \"Workflow Notification\",\n \"markdown\": true\n }],\n \"potentialAction\": [\n {\n \"@type\": \"OpenUri\",\n \"name\": \"Rolling Workflow\",\n \"targets\": [\n {\n \"os\": \"default\",\n \"uri\": \"{{ vars.systemUrl }}\"\n }\n ]\n }\n ]\n }\n```" + }, + "io.kestra.plugin.notifications.telegram.TelegramExecution": { + "type": "object", + "properties": { + "allowFailure": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "channel": { + "$dynamic": true, + "type": "string", + "title": "Telegram channel/user ID" + }, + "customFields": { + "$dynamic": true, + "type": "object", + "title": "Custom fields to be added on notification" + }, + "customMessage": { + "$dynamic": true, + "type": "string", + "title": "Custom message to be added on notification" + }, + "description": { + "type": "string" + }, + "disabled": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "endpointOverride": { + "$dynamic": false, + "type": "string", + "title": "Only to be used when testing locally" + }, + "executionId": { + "$dynamic": true, + "type": "string", + "title": "The execution id to use", + "default": "{{ execution.id }}", + "markdownDescription": "Default is the current execution, change it to {{ trigger.executionId }} if you use this task with a Flow trigger to use the original execution.\n\nDefault value is : `\"{{ execution.id }}\"`" + }, + "id": { + "type": "string", + "minLength": 1, + "pattern": "^[a-zA-Z0-9][a-zA-Z0-9_-]*" + }, + "logLevel": { + "type": "string", + "enum": ["ERROR", "WARN", "INFO", "DEBUG", "TRACE"] + }, + "payload": { + "$dynamic": true, + "type": "string", + "title": "Message payload" + }, + "retry": { + "oneOf": [ + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Constant-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Exponential-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Random-2" + } + ] + }, + "templateRenderMap": { + "$dynamic": true, + "type": "object", + "title": "Map of variables to use for the message template (Unused in the default template)" + }, + "timeout": { + "type": "string", + "format": "duration" + }, + "token": { + "$dynamic": true, + "type": "string", + "title": "Telegram Bot token" + }, + "type": { + "const": "io.kestra.plugin.notifications.telegram.TelegramExecution" + }, + "workerGroup": { + "$ref": "#/definitions/io.kestra.core.models.tasks.WorkerGroup" + } + }, + "required": ["channel", "id", "token", "type"], + "title": "Send a Telegram message with the execution information", + "markdownDescription": "The message will include a link to the execution page in the UI along with the execution ID, namespace, flow name, the start date, duration and the final status of the execution, and (if failed) the task that led to a failure.\n\nUse this notification task only in a flow that has a [Flow trigger](https://kestra.io/docs/administrator-guide/monitoring#alerting). Don't use this notification task in `errors` tasks. Instead, for `errors` tasks, use the [TelegramSend](https://kestra.io/plugins/plugin-notifications/tasks/telegram/io.kestra.plugin.notifications.telegram.telegramsend) task.##### Examples\n\u003E Send a Telegram notification on a failed flow execution\n```yaml\nid: failure_alert\nnamespace: company.team\n\ntasks:\n - id: send_alert\n type: io.kestra.plugin.notifications.telegram.TelegramExecution\n token: \"{{ secret('TELEGRAM_TOKEN') }}\" # format: 6090305634:xyz\n channel: \"2072728690\"\n executionId: \"{{ trigger.executionId }}\"\n\ntriggers:\n - id: failed_prod_workflows\n type: io.kestra.plugin.core.trigger.Flow\n conditions:\n - type: io.kestra.plugin.core.condition.ExecutionStatusCondition\n in:\n - FAILED\n - WARNING\n - type: io.kestra.plugin.core.condition.ExecutionNamespaceCondition\n namespace: prod\n prefix: true\n\n```" + }, + "io.kestra.plugin.notifications.telegram.TelegramSend": { + "type": "object", + "properties": { + "allowFailure": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "channel": { + "$dynamic": true, + "type": "string", + "title": "Telegram channel/user ID" + }, + "description": { + "type": "string" + }, + "disabled": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "endpointOverride": { + "$dynamic": false, + "type": "string", + "title": "Only to be used when testing locally" + }, + "id": { + "type": "string", + "minLength": 1, + "pattern": "^[a-zA-Z0-9][a-zA-Z0-9_-]*" + }, + "logLevel": { + "type": "string", + "enum": ["ERROR", "WARN", "INFO", "DEBUG", "TRACE"] + }, + "payload": { + "$dynamic": true, + "type": "string", + "title": "Message payload" + }, + "retry": { + "oneOf": [ + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Constant-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Exponential-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Random-2" + } + ] + }, + "timeout": { + "type": "string", + "format": "duration" + }, + "token": { + "$dynamic": true, + "type": "string", + "title": "Telegram Bot token" + }, + "type": { + "const": "io.kestra.plugin.notifications.telegram.TelegramSend" + }, + "workerGroup": { + "$ref": "#/definitions/io.kestra.core.models.tasks.WorkerGroup" + } + }, + "required": ["channel", "id", "token", "type"] + }, + "io.kestra.plugin.notifications.twilio.TwilioAlert": { + "type": "object", + "properties": { + "accountSID": { + "$dynamic": true, + "type": "string", + "title": "Twilio account SID", + "minLength": 1 + }, + "allowFailure": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "authToken": { + "$dynamic": true, + "type": "string", + "title": "Twilio authentication token", + "minLength": 1 + }, + "description": { + "type": "string" + }, + "disabled": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "id": { + "type": "string", + "minLength": 1, + "pattern": "^[a-zA-Z0-9][a-zA-Z0-9_-]*" + }, + "logLevel": { + "type": "string", + "enum": ["ERROR", "WARN", "INFO", "DEBUG", "TRACE"] + }, + "payload": { + "$dynamic": true, + "type": "string", + "title": "Twilio message payload" + }, + "retry": { + "oneOf": [ + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Constant-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Exponential-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Random-2" + } + ] + }, + "timeout": { + "type": "string", + "format": "duration" + }, + "type": { + "const": "io.kestra.plugin.notifications.twilio.TwilioAlert" + }, + "url": { + "$dynamic": true, + "type": "string", + "title": "Twilio notification URL", + "minLength": 1 + }, + "workerGroup": { + "$ref": "#/definitions/io.kestra.core.models.tasks.WorkerGroup" + } + }, + "required": ["accountSID", "authToken", "id", "type", "url"], + "title": "Send a Twilio message using an notification API", + "markdownDescription": "Add this task to a list of `errors` tasks to implement custom flow-level failure notifications. Check the \u003Ca href=\"https://www.twilio.com/docs/notify/send-notifications#sending-notifications\"\u003ETwilio documentation\u003C/a\u003E for more details..##### Examples\n\u003E Send a Twilio notification on a failed flow execution\n```yaml\nid: unreliable_flow\nnamespace: company.team\n\ntasks:\n - id: fail\n type: io.kestra.plugin.scripts.shell.Commands\n runner: PROCESS\n commands:\n - exit 1\n\nerrors:\n - id: alert_on_failure\n type: io.kestra.plugin.notifications.twilio.TwilioAlert\n url: \"{{ secret('TWILIO_ALERT') }}\" # https://notify.twilio.com/v1/Services/ISXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX/Notifications\n payload: |\n {\n \"identity\": \"0000001\"\n }\n\n```\n\n\u003E Send a Twilio message via incoming notification API\n```yaml\nid: twilio_alert\nnamespace: company.team\n\ntasks:\n - id: send_twilio_message\n type: io.kestra.plugin.notifications.twilio.TwilioAlert\n url: \"{{ secret('TWILIO_ALERT') }}\"\n payload: |\n {\n \"identity\": \"0000001\"\n }\n\n```" + }, + "io.kestra.plugin.notifications.twilio.TwilioExecution": { + "type": "object", + "properties": { + "accountSID": { + "$dynamic": true, + "type": "string", + "title": "Twilio account SID", + "minLength": 1 + }, + "allowFailure": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "authToken": { + "$dynamic": true, + "type": "string", + "title": "Twilio authentication token", + "minLength": 1 + }, + "body": { + "$dynamic": true, + "type": "string", + "title": "Alert message body" + }, + "customFields": { + "$dynamic": true, + "type": "object", + "title": "Custom fields to be added on notification" + }, + "customMessage": { + "$dynamic": true, + "type": "string", + "title": "Custom message to be added on notification" + }, + "description": { + "type": "string" + }, + "disabled": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "executionId": { + "$dynamic": true, + "type": "string", + "title": "The execution id to use", + "default": "{{ execution.id }}", + "markdownDescription": "Default is the current execution, change it to {{ trigger.executionId }} if you use this task with a Flow trigger to use the original execution.\n\nDefault value is : `\"{{ execution.id }}\"`" + }, + "id": { + "type": "string", + "minLength": 1, + "pattern": "^[a-zA-Z0-9][a-zA-Z0-9_-]*" + }, + "identity": { + "$dynamic": true, + "type": "string", + "title": "Identity which associated with devices" + }, + "logLevel": { + "type": "string", + "enum": ["ERROR", "WARN", "INFO", "DEBUG", "TRACE"] + }, + "payload": { + "$dynamic": true, + "type": "string", + "title": "Twilio message payload" + }, + "retry": { + "oneOf": [ + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Constant-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Exponential-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Random-2" + } + ] + }, + "tag": { + "$dynamic": true, + "type": "string", + "title": "Tag associated with users" + }, + "templateRenderMap": { + "$dynamic": true, + "type": "object", + "title": "Map of variables to use for the message template" + }, + "timeout": { + "type": "string", + "format": "duration" + }, + "type": { + "const": "io.kestra.plugin.notifications.twilio.TwilioExecution" + }, + "url": { + "$dynamic": true, + "type": "string", + "title": "Twilio notification URL", + "minLength": 1 + }, + "workerGroup": { + "$ref": "#/definitions/io.kestra.core.models.tasks.WorkerGroup" + } + }, + "required": ["accountSID", "authToken", "id", "type", "url"], + "title": "Send a Twilio message with the execution information", + "markdownDescription": "The message will include a link to the execution page in the UI along with the execution ID, namespace, flow name, the start date, duration and the final status of the execution, and (if failed) the task that led to a failure.\n\nUse this notification task only in a flow that has a [Flow trigger](https://kestra.io/docs/administrator-guide/monitoring#alerting). Don't use this notification task in `errors` tasks. Instead, for `errors` tasks, use the [TwilioAlert](https://kestra.io/plugins/plugin-notifications/tasks/twilio/io.kestra.plugin.notifications.twilio.twilioalert) task.##### Examples\n\u003E Send a Twilio notification on a failed flow execution\n```yaml\nid: failure_alert\nnamespace: company.team\n\ntasks:\n - id: send_alert\n type: io.kestra.plugin.notifications.twilio.TwilioExecution\n url: \"{{ secret('TWILIO_ALERT') }}\" # format: https://notify.twilio.com/v1/Services/ISXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX/Notifications\n identity: 0000001\n executionId: \"{{trigger.executionId}}\"\n\ntriggers:\n - id: failed_prod_workflows\n type: io.kestra.plugin.core.trigger.Flow\n conditions:\n - type: io.kestra.plugin.core.condition.ExecutionStatusCondition\n in:\n - FAILED\n - WARNING\n - type: io.kestra.plugin.core.condition.ExecutionNamespaceCondition\n namespace: prod\n prefix: true\n\n```" + }, + "io.kestra.plugin.notifications.whatsapp.WhatsAppExecution": { + "type": "object", + "properties": { + "allowFailure": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "customFields": { + "$dynamic": true, + "type": "object", + "title": "Custom fields to be added on notification" + }, + "customMessage": { + "$dynamic": true, + "type": "string", + "title": "Custom message to be added on notification" + }, + "description": { + "type": "string" + }, + "disabled": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "executionId": { + "$dynamic": true, + "type": "string", + "title": "The execution id to use", + "default": "{{ execution.id }}", + "markdownDescription": "Default is the current execution, change it to {{ trigger.executionId }} if you use this task with a Flow trigger to use the original execution.\n\nDefault value is : `\"{{ execution.id }}\"`" + }, + "from": { + "$dynamic": true, + "type": "string", + "title": "WhatsApp ID of the sender (Phone number)" + }, + "id": { + "type": "string", + "minLength": 1, + "pattern": "^[a-zA-Z0-9][a-zA-Z0-9_-]*" + }, + "logLevel": { + "type": "string", + "enum": ["ERROR", "WARN", "INFO", "DEBUG", "TRACE"] + }, + "messageId": { + "$dynamic": true, + "type": "string", + "title": "Message id" + }, + "payload": { + "$dynamic": true, + "type": "string", + "title": "WhatsApp message payload" + }, + "profileName": { + "$dynamic": true, + "type": "string", + "title": "Sender profile name" + }, + "recipientId": { + "$dynamic": true, + "type": "string", + "title": "WhatsApp recipient ID" + }, + "retry": { + "oneOf": [ + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Constant-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Exponential-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Random-2" + } + ] + }, + "templateRenderMap": { + "$dynamic": true, + "type": "object", + "title": "Map of variables to use for the message template" + }, + "textBody": { + "$dynamic": true, + "type": "string", + "title": "Message" + }, + "timeout": { + "type": "string", + "format": "duration" + }, + "type": { + "const": "io.kestra.plugin.notifications.whatsapp.WhatsAppExecution" + }, + "url": { + "$dynamic": true, + "type": "string", + "title": "Webhook URL which should be taken from whatsapp integrations tab", + "minLength": 1 + }, + "whatsAppIds": { + "$dynamic": false, + "title": "The WhatsApp ID of the contact", + "type": "array", + "items": { + "$dynamic": false, + "type": "string" + } + }, + "workerGroup": { + "$ref": "#/definitions/io.kestra.core.models.tasks.WorkerGroup" + } + }, + "required": ["id", "type", "url"], + "title": "Send a WhatsApp message with the execution information", + "markdownDescription": "The message will include a link to the execution page in the UI along with the execution ID, namespace, flow name, the start date, duration and the final status of the execution, and (if failed) the task that led to a failure.\n\nUse this notification task only in a flow that has a [Flow trigger](https://kestra.io/docs/administrator-guide/monitoring#alerting). Don't use this notification task in `errors` tasks. Instead, for `errors` tasks, use the [WhatsAppIncomingWebhook](https://kestra.io/plugins/plugin-notifications/tasks/discord/io.kestra.plugin.notifications.whatsapp.whatsappincomingwebhook) task.##### Examples\n\u003E Send a WhatsApp notification on a failed flow execution\n```yaml\nid: failure_alert\nnamespace: company.team\n\ntasks:\n - id: send_alert\n type: io.kestra.plugin.notifications.discord.WhatsAppExecution\n url: \"{{ secret('WHATSAPP_WEBHOOK') }}\" # format: https://hooks.discord.com/services/xzy/xyz/xyz\n profileName: \"MyProfile\"\n from: 380999999999\n whatsAppIds:\n - \"some waId\"\n - \"waId No2\"\n executionId: \"{{trigger.executionId}}\"\n\ntriggers:\n - id: failed_prod_workflows\n type: io.kestra.plugin.core.trigger.Flow\n conditions:\n - type: io.kestra.plugin.core.condition.ExecutionStatusCondition\n in:\n - FAILED\n - WARNING\n - type: io.kestra.plugin.core.condition.ExecutionNamespaceCondition\n namespace: prod\n prefix: true\n\n```" + }, + "io.kestra.plugin.notifications.whatsapp.WhatsAppIncomingWebhook": { + "type": "object", + "properties": { + "allowFailure": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "description": { + "type": "string" + }, + "disabled": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "id": { + "type": "string", + "minLength": 1, + "pattern": "^[a-zA-Z0-9][a-zA-Z0-9_-]*" + }, + "logLevel": { + "type": "string", + "enum": ["ERROR", "WARN", "INFO", "DEBUG", "TRACE"] + }, + "payload": { + "$dynamic": true, + "type": "string", + "title": "WhatsApp message payload" + }, + "retry": { + "oneOf": [ + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Constant-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Exponential-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Random-2" + } + ] + }, + "timeout": { + "type": "string", + "format": "duration" + }, + "type": { + "const": "io.kestra.plugin.notifications.whatsapp.WhatsAppIncomingWebhook" + }, + "url": { + "$dynamic": true, + "type": "string", + "title": "Webhook URL which should be taken from whatsapp integrations tab", + "minLength": 1 + }, + "workerGroup": { + "$ref": "#/definitions/io.kestra.core.models.tasks.WorkerGroup" + } + }, + "required": ["id", "type", "url"], + "title": "Send a WhatsApp message using an Incoming Webhook", + "markdownDescription": "Add this task to a list of `errors` tasks to implement custom flow-level failure notifications. Check the \u003Ca href=\"https://developers.facebook.com/docs/whatsapp/on-premises/guides/webhooks\"\u003EWhatsApp documentation\u003C/a\u003E for more details..##### Examples\n\u003E Send a WhatsApp notification on a failed flow execution\n```yaml\nid: unreliable_flow\nnamespace: company.team\n\ntasks:\n - id: fail\n type: io.kestra.plugin.scripts.shell.Commands\n runner: PROCESS\n commands:\n - exit 1\n\nerrors:\n - id: alert_on_failure\n type: io.kestra.plugin.notifications.whatsapp.WhatsAppIncomingWebhook\n url: \"{{ secret('WHATSAPP_WEBHOOK') }}\" # https://webhook.your-domain\n payload: |\n {\n \"profileName\": \"MyName\",\n \"whatsAppIds\": [\"IdNo1, IdNo2\"],\n \"from\": 380999999999\n }\n\n```\n\n\u003E Send a WhatsApp message via incoming webhook\n```yaml\nid: whatsapp_incoming_webhook\nnamespace: company.team\n\ntasks:\n - id: send_whatsapp_message\n type: io.kestra.plugin.notifications.whatsapp.WhatsAppIncomingWebhook\n url: \"{{ secret('WHATSAPP_WEBHOOK') }}\"\n payload: |\n {\n \"profileName\": \"MyName\",\n \"whatsAppIds\": [\"IdNo1, IdNo2\"],\n \"from\": 380999999999,\n \"messageId\": \"wamIdNo1\"\n }\n\n```" + }, + "io.kestra.plugin.notifications.zenduty.ZendutyAlert": { + "type": "object", + "properties": { + "allowFailure": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "description": { + "type": "string" + }, + "disabled": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "id": { + "type": "string", + "minLength": 1, + "pattern": "^[a-zA-Z0-9][a-zA-Z0-9_-]*" + }, + "logLevel": { + "type": "string", + "enum": ["ERROR", "WARN", "INFO", "DEBUG", "TRACE"] + }, + "payload": { + "$dynamic": true, + "type": "string", + "title": "Zenduty alert request payload" + }, + "retry": { + "oneOf": [ + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Constant-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Exponential-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Random-2" + } + ] + }, + "timeout": { + "type": "string", + "format": "duration" + }, + "type": { + "const": "io.kestra.plugin.notifications.zenduty.ZendutyAlert" + }, + "url": { + "$dynamic": true, + "type": "string", + "title": "Zenduty API endpoint", + "minLength": 1 + }, + "workerGroup": { + "$ref": "#/definitions/io.kestra.core.models.tasks.WorkerGroup" + } + }, + "required": ["id", "type", "url"], + "title": "Send a Zenduty alert", + "markdownDescription": "Add this task to a list of `errors` tasks to implement custom flow-level failure notifications. Check the [Zenduty integration documentation](https://docs.zenduty.com/docs/api) and the [Zenduty Events API specification](https://apidocs.zenduty.com/#tag/Events/paths/~1api~1events~1%7Bintegration_key%7D~1/post) for more details.##### Examples\n\u003E Send a Zenduty alert on a failed flow execution. Make sure that the payload follows the [Zenduty Events API specification](https://apidocs.zenduty.com/#tag/Events/paths/~1api~1events~1%7Bintegration_key%7D~1/post), including the `message` and `alert_type` payload properties, which are required.\n```yaml\nid: unreliable_flow\nnamespace: company.team\n\ntasks:\n - id: fail\n type: io.kestra.plugin.scripts.shell.Commands\n commands:\n - exit 1\n\nerrors:\n - id: alert_on_failure\n type: io.kestra.plugin.notifications.zenduty.ZendutyAlert\n url: \"https://www.zenduty.com/api/events/{{ secret('ZENDUTY_INTEGRATION_KEY') }}/\"\n payload: |\n {\n \"alert_type\": \"info\",\n \"message\": \"This is info alert\",\n \"summary\": \"This is the incident summary\",\n \"suppressed\": false,\n \"entity_id\": 12345,\n \"payload\": {\n \"status\": \"ACME Payments are failing\",\n \"severity\": \"1\",\n \"project\": \"kubeprod\"\n },\n \"urls\": [\n {\n \"link_url\": \"https://www.example.com/alerts/12345/\",\n \"link_text\": \"Alert URL\"\n }\n ]\n }\n\n```" + }, + "io.kestra.plugin.notifications.zenduty.ZendutyExecution": { + "type": "object", + "properties": { + "alertType": { + "$dynamic": false, + "type": "string", + "enum": [ + "CRITICAL", + "ACKNOWLEDGED", + "RESOLVED", + "ERROR", + "WARNING", + "INFO" + ], + "title": "Event alert type" + }, + "allowFailure": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "customFields": { + "$dynamic": true, + "type": "object", + "title": "Custom fields to be added on notification" + }, + "customMessage": { + "$dynamic": true, + "type": "string", + "title": "Custom message to be added on notification" + }, + "description": { + "type": "string" + }, + "disabled": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "entityId": { + "$dynamic": true, + "type": "string", + "title": "A unique id for the alert. If not provided, the Zenduty API will create one" + }, + "executionId": { + "$dynamic": true, + "type": "string", + "title": "The execution id to use", + "default": "{{ execution.id }}", + "markdownDescription": "Default is the current execution, change it to {{ trigger.executionId }} if you use this task with a Flow trigger to use the original execution.\n\nDefault value is : `\"{{ execution.id }}\"`" + }, + "id": { + "type": "string", + "minLength": 1, + "pattern": "^[a-zA-Z0-9][a-zA-Z0-9_-]*" + }, + "logLevel": { + "type": "string", + "enum": ["ERROR", "WARN", "INFO", "DEBUG", "TRACE"] + }, + "message": { + "$dynamic": true, + "type": "string", + "title": "Event title" + }, + "payload": { + "$dynamic": true, + "type": "string", + "title": "Zenduty alert request payload" + }, + "retry": { + "oneOf": [ + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Constant-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Exponential-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Random-2" + } + ] + }, + "summary": { + "$dynamic": true, + "type": "string", + "title": "Event message. Summary description" + }, + "templateRenderMap": { + "$dynamic": true, + "type": "object", + "title": "Map of variables to use for the message template" + }, + "timeout": { + "type": "string", + "format": "duration" + }, + "type": { + "const": "io.kestra.plugin.notifications.zenduty.ZendutyExecution" + }, + "url": { + "$dynamic": true, + "type": "string", + "title": "Zenduty API endpoint", + "minLength": 1 + }, + "urls": { + "$dynamic": true, + "title": "List of URLs related to the alert", + "type": "array", + "items": { + "$dynamic": true, + "type": "string" + } + }, + "workerGroup": { + "$ref": "#/definitions/io.kestra.core.models.tasks.WorkerGroup" + } + }, + "required": ["id", "type", "url"], + "title": "Send a Zenduty message with the execution information", + "markdownDescription": "The message will include a link to the execution page in the UI along with the execution ID, namespace, flow name, the start date, duration and the final status of the execution, and (if failed) the task that led to a failure.\n\nUse this notification task only in a flow that has a [Flow trigger](https://kestra.io/docs/administrator-guide/monitoring#alerting). Don't use this notification task in `errors` tasks. Instead, for `errors` tasks, use the [ZendutyAlert](https://kestra.io/plugins/plugin-notifications/tasks/zenduty/io.kestra.plugin.notifications.zenduty.zendutyalert) task.##### Examples\n\u003E Send a Zenduty notification on a failed flow execution\n```yaml\nid: zenduty_failure_alert\nnamespace: company.team\n\ntasks:\n - id: send_alert\n type: io.kestra.plugin.notifications.zenduty.ZendutyExecution\n url: \"https://www.zenduty.com/api/events/{{ secret('ZENDUTY_INTEGRATION_KEY') }}/\"\n executionId: \"{{ trigger.executionId }}\"\n message: Kestra workflow execution {{ trigger.executionId }} of a flow {{ trigger.flowId }} in the namespace {{ trigger.namespace }} changed status to {{ trigger.state }}\n\ntriggers:\n - id: failed_prod_workflows\n type: io.kestra.plugin.core.trigger.Flow\n conditions:\n - type: io.kestra.plugin.core.condition.ExecutionStatusCondition\n in:\n - FAILED\n - WARNING\n - type: io.kestra.plugin.core.condition.ExecutionNamespaceCondition\n namespace: prod\n prefix: true\n\n```" + }, + "io.kestra.plugin.openai.ChatCompletion": { + "type": "object", + "properties": { + "allowFailure": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "apiKey": { + "$dynamic": true, + "type": "string", + "title": "The OpenAI API key." + }, + "clientTimeout": { + "type": "integer", + "title": "The maximum number of seconds to wait for a response.", + "default": 10, + "markdownDescription": "Default value is : `10`" + }, + "description": { + "type": "string" + }, + "disabled": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "frequencyPenalty": { + "$dynamic": false, + "type": "number", + "title": "Number between -2.0 and 2.0. Positive values penalize new tokens based on their existing frequency in the text so far. Defaults to 0." + }, + "functionCall": { + "$dynamic": false, + "type": "string", + "title": "The name of the function OpenAI should generate a call for.", + "markdownDescription": "Enter a specific function name, or 'auto' to let the model decide. The default is auto." + }, + "functions": { + "title": "The function call(s) the API can use when generating completions.", + "type": "array", + "items": { + "$ref": "#/definitions/io.kestra.plugin.openai.ChatCompletion-PluginChatFunction" + } + }, + "id": { + "type": "string", + "minLength": 1, + "pattern": "^[a-zA-Z0-9][a-zA-Z0-9_-]*" + }, + "logLevel": { + "type": "string", + "enum": ["ERROR", "WARN", "INFO", "DEBUG", "TRACE"] + }, + "logitBias": { + "$dynamic": false, + "type": "object", + "title": "Modify the likelihood of specified tokens appearing in the completion. Defaults to null." + }, + "maxTokens": { + "$dynamic": false, + "type": "integer", + "title": "The maximum number of tokens to generate in the chat completion. No limits are set by default." + }, + "messages": { + "$dynamic": false, + "title": "A list of messages comprising the conversation so far.", + "markdownDescription": "Required if prompt is not set.", + "type": "array", + "items": { + "allOf": [ + { + "$ref": "#/definitions/com.theokanning.openai.completion.chat.ChatMessage" + }, + { + "$dynamic": false + } + ] + } + }, + "model": { + "$dynamic": true, + "type": "string", + "title": "ID of the model to use e.g. `'gpt-4'`", + "markdownDescription": "See the [OpenAI model's documentation page](https://platform.openai.com/docs/models/overview) for more details." + }, + "n": { + "type": "integer", + "title": "How many chat completion choices to generate for each input message. Defaults to 1." + }, + "presencePenalty": { + "$dynamic": false, + "type": "number", + "title": "Number between -2.0 and 2.0. Positive values penalize new tokens based on whether they appear in the text so far. Defaults to 0." + }, + "prompt": { + "$dynamic": false, + "type": "string", + "title": "The prompt(s) to generate completions for. By default, this prompt will be sent as a `user` role.", + "markdownDescription": "If not provided, make sure to set the `messages` property." + }, + "retry": { + "oneOf": [ + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Constant-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Exponential-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Random-2" + } + ] + }, + "stop": { + "$dynamic": false, + "title": "Up to 4 sequences where the API will stop generating further tokens. Defaults to null.", + "type": "array", + "items": { + "$dynamic": false, + "type": "string" + } + }, + "temperature": { + "$dynamic": false, + "type": "number", + "title": "What sampling temperature to use, between 0 and 2. Defaults to 1." + }, + "timeout": { + "type": "string", + "format": "duration" + }, + "topP": { + "$dynamic": false, + "type": "number", + "title": "An alternative to sampling with temperature, where the model considers the results of the tokens with top_p probability mass. Defaults to 1." + }, + "type": { + "const": "io.kestra.plugin.openai.ChatCompletion" + }, + "user": { + "$dynamic": true, + "type": "string", + "title": "A unique identifier representing your end-user." + }, + "workerGroup": { + "$ref": "#/definitions/io.kestra.core.models.tasks.WorkerGroup" + } + }, + "required": ["apiKey", "id", "model", "type"], + "title": "Given a prompt, get a response from an LLM using the [OpenAI’s Chat Completions API](https://platform.openai.com/docs/api-reference/chat/create).", + "markdownDescription": "For more information, refer to the [Chat Completions API docs](https://platform.openai.com/docs/guides/gpt/chat-completions-api).##### Examples\n\u003E Based on a prompt input, generate a completion response and pass it to a downstream task.\n```yaml\nid: openAI\nnamespace: company.team\n\ninputs:\n - id: prompt\n type: STRING\n defaults: What is data orchestration?\n\ntasks:\n - id: completion\n type: io.kestra.plugin.openai.ChatCompletion\n apiKey: \"yourOpenAIapiKey\"\n model: gpt-3.5-turbo-0613\n prompt: \"{{inputs.prompt}}\"\n\n - id: response\n type: io.kestra.plugin.core.debug.Return\n format: \"{{outputs.completion.choices[0].message.content}}\"\n```\n\n\u003E Based on a prompt input, ask OpenAI to call a function that determines whether you need to respond to a customer's review immediately or wait until later, and then comes up with a suggested response.\n```yaml\nid: openAI\nnamespace: company.team\n\ninputs:\n - id: prompt\n type: STRING\n defaults: I love your product and would purchase it again!\n\ntasks:\n - id: prioritize_response\n type: io.kestra.plugin.openai.ChatCompletion\n apiKey: \"yourOpenAIapiKey\"\n model: gpt-4\n messages:\n - role: user\n content: \"{{ inputs.prompt }}\"\n functions:\n - name: respond_to_review\n description: Given the customer product review provided as input, determines how urgently a reply is required and then provides suggested response text.\n parameters:\n - name: response_urgency\n type: string\n description: How urgently this customer review needs a reply. Bad reviews \n must be addressed immediately before anyone sees them. Good reviews can \n wait until later.\n required: true\n enumValues: \n - reply_immediately\n - reply_later\n - name: response_text\n type: string\n description: The text to post online in response to this review.\n required: true\n\n - id: response_urgency\n type: io.kestra.plugin.core.debug.Return\n format: \"{{ outputs.prioritize_response.choices[0].message.function_call.arguments.response_urgency }}\"\n\n - id: response_text\n type: io.kestra.plugin.core.debug.Return\n format: \"{{ outputs.prioritize_response.choices[0].message.function_call.arguments.response_text }}\"\n```" + }, + "io.kestra.plugin.openai.ChatCompletion-PluginChatFunction": { + "type": "object", + "properties": { + "description": { + "$dynamic": true, + "type": "string", + "title": "A description of what the function does." + }, + "name": { + "$dynamic": true, + "type": "string", + "title": "The name of the function." + }, + "parameters": { + "title": "The function's parameters.", + "type": "array", + "items": { + "$ref": "#/definitions/io.kestra.plugin.openai.ChatCompletion-PluginChatFunctionParameter" + } + } + } + }, + "io.kestra.plugin.openai.ChatCompletion-PluginChatFunctionParameter": { + "type": "object", + "properties": { + "description": { + "$dynamic": true, + "type": "string", + "title": "A description of the function parameter.", + "markdownDescription": "Provide as many details as possible to ensure the model returns an accurate parameter." + }, + "enumValues": { + "$dynamic": true, + "title": "A list of values that the model *must* choose from when setting this parameter.", + "markdownDescription": "Optional, but useful when for classification problems.", + "type": "array", + "items": { + "$dynamic": true, + "type": "string" + } + }, + "name": { + "$dynamic": true, + "type": "string", + "title": "The name of the function parameter." + }, + "required": { + "type": "boolean", + "title": "Whether or not the model is required to provide this parameter.", + "default": false, + "markdownDescription": "Defaults to false.\n\nDefault value is : `false`" + }, + "type": { + "$dynamic": true, + "type": "string", + "title": "The OpenAPI data type of the parameter.", + "markdownDescription": "Valid types are string, number, integer, boolean, array, object" + } + }, + "required": ["description", "name", "type"] + }, + "io.kestra.plugin.openai.CreateImage": { + "type": "object", + "properties": { + "allowFailure": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "apiKey": { + "$dynamic": true, + "type": "string", + "title": "The OpenAI API key." + }, + "clientTimeout": { + "type": "integer", + "title": "The maximum number of seconds to wait for a response.", + "default": 10, + "markdownDescription": "Default value is : `10`" + }, + "description": { + "type": "string" + }, + "disabled": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "download": { + "$dynamic": false, + "type": "boolean", + "title": "Whether to download the generated image", + "default": false, + "markdownDescription": "If enable, the generated image will be downloaded inside Kestra's internal storage. Else, the URL of the generated image will be available as task output.\n\nDefault value is : `false`" + }, + "id": { + "type": "string", + "minLength": 1, + "pattern": "^[a-zA-Z0-9][a-zA-Z0-9_-]*" + }, + "logLevel": { + "type": "string", + "enum": ["ERROR", "WARN", "INFO", "DEBUG", "TRACE"] + }, + "n": { + "type": "integer", + "title": "The number of images to generate. Must be between 1 and 10." + }, + "prompt": { + "$dynamic": true, + "type": "string", + "title": "Message to send to the API as prompt." + }, + "retry": { + "oneOf": [ + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Constant-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Exponential-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Random-2" + } + ] + }, + "size": { + "$dynamic": false, + "type": "string", + "enum": ["SMALL", "MEDIUM", "LARGE"], + "title": "The size of the generated images.", + "default": "LARGE", + "markdownDescription": "Default value is : `LARGE`" + }, + "timeout": { + "type": "string", + "format": "duration" + }, + "type": { + "const": "io.kestra.plugin.openai.CreateImage" + }, + "user": { + "$dynamic": true, + "type": "string", + "title": "A unique identifier representing your end-user." + }, + "workerGroup": { + "$ref": "#/definitions/io.kestra.core.models.tasks.WorkerGroup" + } + }, + "required": ["apiKey", "id", "prompt", "type"], + "title": "Given a prompt, create an image.", + "markdownDescription": "For more information, refer to the [OpenAI Image Generation API docs](https://platform.openai.com/docs/api-reference/images/create).##### Examples\n\u003E \n```yaml\nprompt: A funny cat in a black suit\napiKey: \u003Cyour-api-key\u003E\ndownload: true\nn: 5\n```" + }, + "io.kestra.plugin.powerbi.RefreshGroupDataset": { + "type": "object", + "properties": { + "allowFailure": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "clientId": { + "$dynamic": true, + "type": "string", + "title": "Azure client ID.", + "minLength": 1 + }, + "clientSecret": { + "$dynamic": true, + "type": "string", + "title": "Azure client secret.", + "minLength": 1 + }, + "datasetId": { + "$dynamic": true, + "type": "string", + "title": "The dataset ID." + }, + "description": { + "type": "string" + }, + "disabled": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "groupId": { + "$dynamic": true, + "type": "string", + "title": "The workspace ID." + }, + "id": { + "type": "string", + "minLength": 1, + "pattern": "^[a-zA-Z0-9][a-zA-Z0-9_-]*" + }, + "logLevel": { + "type": "string", + "enum": ["ERROR", "WARN", "INFO", "DEBUG", "TRACE"] + }, + "pollDuration": { + "$dynamic": false, + "type": "string", + "format": "duration", + "title": "The duration to wait between the polls.", + "default": 5, + "markdownDescription": "Default value is : `5.000000000`" + }, + "retry": { + "oneOf": [ + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Constant-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Exponential-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Random-2" + } + ] + }, + "tenantId": { + "$dynamic": true, + "type": "string", + "title": "Azure tenant ID.", + "minLength": 1 + }, + "timeout": { + "type": "string", + "format": "duration" + }, + "type": { + "const": "io.kestra.plugin.powerbi.RefreshGroupDataset" + }, + "wait": { + "$dynamic": false, + "type": "boolean", + "title": "Wait for refresh completion.", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "waitDuration": { + "$dynamic": false, + "type": "string", + "format": "duration", + "title": "The maximum duration to wait until the refresh completes.", + "default": 600, + "markdownDescription": "Default value is : `600.000000000`" + }, + "workerGroup": { + "$ref": "#/definitions/io.kestra.core.models.tasks.WorkerGroup" + } + }, + "required": ["clientId", "clientSecret", "id", "tenantId", "type"], + "title": "Triggers a refresh for the specified dataset from the specified workspace.", + "markdownDescription": "An [asynchronous refresh](https://docs.microsoft.com/en-us/power-bi/connect-data/asynchronous-refresh) would be triggered." + }, + "io.kestra.plugin.pulsar.AbstractPulsarConnection-TlsOptions": { + "type": "object", + "properties": { + "ca": { + "type": "string", + "title": "The ca certificate.", + "markdownDescription": "Must be a base64-encoded pem file." + }, + "cert": { + "type": "string", + "title": "The client certificate.", + "markdownDescription": "Must be a base64-encoded pem file." + }, + "key": { + "type": "string", + "title": "The key certificate.", + "markdownDescription": "Must be a base64-encoded pem file." + } + } + }, + "io.kestra.plugin.pulsar.Consume": { + "type": "object", + "properties": { + "allowFailure": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "authenticationToken": { + "$dynamic": true, + "type": "string", + "title": "Authentication token.", + "markdownDescription": "Authentication token that can be required by some providers such as Clever Cloud." + }, + "consumerName": { + "$dynamic": true, + "type": "string", + "title": "The consumer name." + }, + "consumerProperties": { + "$dynamic": true, + "type": "object", + "title": "Add all the properties in the provided map to the consumer.", + "additionalProperties": { + "type": "string" + } + }, + "description": { + "type": "string" + }, + "deserializer": { + "allOf": [ + { + "type": "string", + "enum": ["STRING", "JSON", "BYTES"], + "title": "Serializer / Deserializer used for the value." + }, + { + "$dynamic": true, + "title": "Deserializer used for the value.", + "default": "STRING", + "markdownDescription": "Default value is : `STRING`" + } + ] + }, + "disabled": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "encryptionKey": { + "$dynamic": true, + "type": "string", + "title": "Add a public encryption key to the producer/consumer." + }, + "id": { + "type": "string", + "minLength": 1, + "pattern": "^[a-zA-Z0-9][a-zA-Z0-9_-]*" + }, + "initialPosition": { + "$dynamic": false, + "type": "string", + "enum": ["Latest", "Earliest"], + "title": "The position of a subscription to the topic.", + "default": "Earliest", + "markdownDescription": "Default value is : `Earliest`" + }, + "logLevel": { + "type": "string", + "enum": ["ERROR", "WARN", "INFO", "DEBUG", "TRACE"] + }, + "maxDuration": { + "$dynamic": false, + "type": "string", + "format": "duration", + "title": "The maximum duration waiting for new record.", + "markdownDescription": "It's not a hard limit and is evaluated every second." + }, + "maxRecords": { + "$dynamic": false, + "type": "integer", + "title": "The maximum number of records to fetch before stopping.", + "markdownDescription": "It's not a hard limit and is evaluated every second." + }, + "pollDuration": { + "$dynamic": true, + "type": "string", + "format": "duration", + "title": "Duration waiting for record to be polled.", + "default": 2, + "markdownDescription": "If no records are available, the maximum wait to wait for a new record. \n\nDefault value is : `2.000000000`" + }, + "retry": { + "oneOf": [ + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Constant-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Exponential-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Random-2" + } + ] + }, + "schemaString": { + "$dynamic": true, + "type": "string", + "title": "JSON string of the topic's schema", + "markdownDescription": "Required for connecting with topics with a defined schema and strict schema checking" + }, + "schemaType": { + "$dynamic": true, + "type": "string", + "enum": ["NONE", "AVRO", "JSON"], + "title": "The schema type of the topic", + "default": "NONE", + "markdownDescription": "Can be one of NONE, AVRO or JSON. None means there will be no schema enforced.\n\nDefault value is : `NONE`" + }, + "subscriptionName": { + "$dynamic": true, + "type": "string", + "title": "The subscription name.", + "markdownDescription": "Using subscription name, we will fetch only records that haven't been consumed yet." + }, + "subscriptionType": { + "$dynamic": false, + "type": "string", + "enum": ["Exclusive", "Shared", "Failover", "Key_Shared"], + "title": "The subscription type.", + "default": "Exclusive", + "markdownDescription": "Default value is : `Exclusive`" + }, + "timeout": { + "type": "string", + "format": "duration" + }, + "tlsOptions": { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.pulsar.AbstractPulsarConnection-TlsOptions" + }, + { + "$dynamic": false, + "title": "TLS authentication options.", + "markdownDescription": "You need to use \"pulsar+ssl://\" in serviceUrl to enable TLS support." + } + ] + }, + "topic": { + "$dynamic": true, + "title": "Pulsar topic(s) where to consume messages from.", + "markdownDescription": "Can be a string or a list of strings to consume from multiple topics." + }, + "type": { + "const": "io.kestra.plugin.pulsar.Consume" + }, + "uri": { + "$dynamic": true, + "type": "string", + "title": "Connection URLs.", + "markdownDescription": "You need to specify a Pulsar protocol URL.\n- Example of localhost: `pulsar://localhost:6650`\n- If you have multiple brokers: `pulsar://localhost:6650,localhost:6651,localhost:6652`\n- If you use TLS authentication: `pulsar+ssl://pulsar.us-west.example.com:6651`" + }, + "workerGroup": { + "$ref": "#/definitions/io.kestra.core.models.tasks.WorkerGroup" + } + }, + "required": ["id", "subscriptionName", "topic", "type", "uri"], + "title": "Consume messages from Pulsar topic(s).", + "markdownDescription": "##### Examples\n\u003E \n```yaml\nuri: pulsar://localhost:26650\ntopic: test_kestra\ndeserializer: JSON\nsubscriptionName: kestra_flow\n```" + }, + "io.kestra.plugin.pulsar.Produce": { + "type": "object", + "properties": { + "accessMode": { + "$dynamic": false, + "type": "string", + "enum": [ + "Shared", + "Exclusive", + "ExclusiveWithFencing", + "WaitForExclusive" + ], + "title": "Configure the type of access mode that the producer requires on the topic.", + "markdownDescription": "Possible values are:\n* `Shared`: By default, multiple producers can publish to a topic.\n* `Exclusive`: Require exclusive access for producer. Fail immediately if there's already a producer connected.\n* `WaitForExclusive`: Producer creation is pending until it can acquire exclusive access." + }, + "allowFailure": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "authenticationToken": { + "$dynamic": true, + "type": "string", + "title": "Authentication token.", + "markdownDescription": "Authentication token that can be required by some providers such as Clever Cloud." + }, + "compressionType": { + "$dynamic": false, + "type": "string", + "enum": ["NONE", "LZ4", "ZLIB", "ZSTD", "SNAPPY"], + "title": "Set the compression type for the producer.", + "markdownDescription": "By default, message payloads are not compressed. Supported compression types are:\n* `NONE`: No compression (Default).\n* `LZ4`: Compress with LZ4 algorithm. Faster but lower compression than ZLib.\n* `ZLIB`: Standard ZLib compression.\n* `ZSTD` Compress with Zstandard codec. Since Pulsar 2.3.\n* `SNAPPY` Compress with Snappy codec. Since Pulsar 2.4." + }, + "description": { + "type": "string" + }, + "disabled": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "encryptionKey": { + "$dynamic": true, + "type": "string", + "title": "Add public encryption key, used by producer to encrypt the data key." + }, + "from": { + "$dynamic": true, + "title": "Source of the sent message.", + "markdownDescription": "Can be a Kestra internal storage URI, a map or a list in the following format: `key`, `value`, `eventTime`, `properties`, `deliverAt`, `deliverAfter` and `sequenceId`." + }, + "id": { + "type": "string", + "minLength": 1, + "pattern": "^[a-zA-Z0-9][a-zA-Z0-9_-]*" + }, + "logLevel": { + "type": "string", + "enum": ["ERROR", "WARN", "INFO", "DEBUG", "TRACE"] + }, + "producerName": { + "$dynamic": true, + "type": "string", + "title": "Specify a name for the producer." + }, + "producerProperties": { + "$dynamic": true, + "type": "object", + "title": "Add all the properties in the provided map to the producer.", + "additionalProperties": { + "type": "string" + } + }, + "retry": { + "oneOf": [ + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Constant-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Exponential-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Random-2" + } + ] + }, + "schemaString": { + "$dynamic": true, + "type": "string", + "title": "JSON string of the topic's schema", + "markdownDescription": "Required for connecting with topics with a defined schema and strict schema checking" + }, + "schemaType": { + "$dynamic": true, + "type": "string", + "enum": ["NONE", "AVRO", "JSON"], + "title": "The schema type of the topic", + "default": "NONE", + "markdownDescription": "Can be one of NONE, AVRO or JSON. None means there will be no schema enforced.\n\nDefault value is : `NONE`" + }, + "serializer": { + "allOf": [ + { + "type": "string", + "enum": ["STRING", "JSON", "BYTES"], + "title": "Serializer / Deserializer used for the value." + }, + { + "$dynamic": true, + "title": "Serializer used for the value.", + "default": "STRING", + "markdownDescription": "Default value is : `STRING`" + } + ] + }, + "timeout": { + "type": "string", + "format": "duration" + }, + "tlsOptions": { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.pulsar.AbstractPulsarConnection-TlsOptions" + }, + { + "$dynamic": false, + "title": "TLS authentication options.", + "markdownDescription": "You need to use \"pulsar+ssl://\" in serviceUrl to enable TLS support." + } + ] + }, + "topic": { + "$dynamic": true, + "type": "string", + "title": "Pulsar topic to send a message to." + }, + "type": { + "const": "io.kestra.plugin.pulsar.Produce" + }, + "uri": { + "$dynamic": true, + "type": "string", + "title": "Connection URLs.", + "markdownDescription": "You need to specify a Pulsar protocol URL.\n- Example of localhost: `pulsar://localhost:6650`\n- If you have multiple brokers: `pulsar://localhost:6650,localhost:6651,localhost:6652`\n- If you use TLS authentication: `pulsar+ssl://pulsar.us-west.example.com:6651`" + }, + "workerGroup": { + "$ref": "#/definitions/io.kestra.core.models.tasks.WorkerGroup" + } + }, + "required": ["from", "id", "topic", "type", "uri"], + "title": "Produce message to a Pulsar topic.", + "markdownDescription": "##### Examples\n\u003E Read a CSV file, transform it to the right format, and publish it to Pulsar topic.\n```yaml\nid: produce\nnamespace: company.team\ninputs:\n - type: FILE\n id: file\n\ntasks:\n - id: csvReader\n type: io.kestra.plugin.serdes.csv.CsvToIon\n from: \"{{ inputs.file }}\"\n - id: fileTransform\n type: io.kestra.plugin.scripts.nashorn.FileTransform\n from: \"{{ outputs.csvReader.uri }}\"\n script: |\n var result = {\n \"key\": row.id,\n \"value\": {\n \"username\": row.username,\n \"tweet\": row.tweet\n },\n \"eventTime\": row.timestamp,\n \"properties\": {\n \"key\": \"value\"\n }\n };\n row = result\n - id: produce\n type: io.kestra.plugin.pulsar.Produce\n from: \"{{ outputs.fileTransform.uri }}\"\n uri: pulsar://localhost:26650\n serializer: JSON\n topic: test_kestra\n```" + }, + "io.kestra.plugin.pulsar.Reader": { + "type": "object", + "properties": { + "allowFailure": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "authenticationToken": { + "$dynamic": true, + "type": "string", + "title": "Authentication token.", + "markdownDescription": "Authentication token that can be required by some providers such as Clever Cloud." + }, + "description": { + "type": "string" + }, + "deserializer": { + "allOf": [ + { + "type": "string", + "enum": ["STRING", "JSON", "BYTES"], + "title": "Serializer / Deserializer used for the value." + }, + { + "$dynamic": true, + "title": "Deserializer used for the value.", + "default": "STRING", + "markdownDescription": "Default value is : `STRING`" + } + ] + }, + "disabled": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "id": { + "type": "string", + "minLength": 1, + "pattern": "^[a-zA-Z0-9][a-zA-Z0-9_-]*" + }, + "logLevel": { + "type": "string", + "enum": ["ERROR", "WARN", "INFO", "DEBUG", "TRACE"] + }, + "maxDuration": { + "$dynamic": false, + "type": "string", + "format": "duration", + "title": "The maximum duration waiting for new record.", + "markdownDescription": "It's not a hard limit and is evaluated every second." + }, + "maxRecords": { + "$dynamic": false, + "type": "integer", + "title": "The maximum number of records to fetch before stopping.", + "markdownDescription": "It's not a hard limit and is evaluated every second." + }, + "messageId": { + "$dynamic": true, + "type": "string", + "title": "Position the reader on a particular message.", + "markdownDescription": "The first message read will be the one immediately *after* the specified message.\nIf no `since` or `messageId` are provided, we start at the beginning of the topic." + }, + "pollDuration": { + "$dynamic": true, + "type": "string", + "format": "duration", + "title": "Duration waiting for record to be polled.", + "default": 2, + "markdownDescription": "If no records are available, the maximum wait to wait for a new record. \n\nDefault value is : `2.000000000`" + }, + "retry": { + "oneOf": [ + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Constant-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Exponential-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Random-2" + } + ] + }, + "schemaString": { + "$dynamic": true, + "type": "string", + "title": "JSON string of the topic's schema", + "markdownDescription": "Required for connecting with topics with a defined schema and strict schema checking" + }, + "schemaType": { + "$dynamic": true, + "type": "string", + "enum": ["NONE", "AVRO", "JSON"], + "title": "The schema type of the topic", + "default": "NONE", + "markdownDescription": "Can be one of NONE, AVRO or JSON. None means there will be no schema enforced.\n\nDefault value is : `NONE`" + }, + "since": { + "$dynamic": true, + "type": "string", + "format": "duration", + "title": "The initial reader positioning can be set at specific timestamp by providing total rollback duration.", + "markdownDescription": "So, broker can find a latest message that was published before given duration. eg: `since` set to 5 minutes (`PT5M`) indicates that broker should find message published 5 minutes in the past, and set the initial position to that messageId." + }, + "timeout": { + "type": "string", + "format": "duration" + }, + "tlsOptions": { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.pulsar.AbstractPulsarConnection-TlsOptions" + }, + { + "$dynamic": false, + "title": "TLS authentication options.", + "markdownDescription": "You need to use \"pulsar+ssl://\" in serviceUrl to enable TLS support." + } + ] + }, + "topic": { + "$dynamic": true, + "title": "Pulsar topic(s) where to consume messages from.", + "markdownDescription": "Can be a string or a list of strings to consume from multiple topics." + }, + "type": { + "const": "io.kestra.plugin.pulsar.Reader" + }, + "uri": { + "$dynamic": true, + "type": "string", + "title": "Connection URLs.", + "markdownDescription": "You need to specify a Pulsar protocol URL.\n- Example of localhost: `pulsar://localhost:6650`\n- If you have multiple brokers: `pulsar://localhost:6650,localhost:6651,localhost:6652`\n- If you use TLS authentication: `pulsar+ssl://pulsar.us-west.example.com:6651`" + }, + "workerGroup": { + "$ref": "#/definitions/io.kestra.core.models.tasks.WorkerGroup" + } + }, + "required": ["id", "topic", "type", "uri"], + "title": "Read messages from Pulsar topic(s) without subscription.", + "markdownDescription": "##### Examples\n\u003E \n```yaml\nuri: pulsar://localhost:26650\ntopic: test_kestra\ndeserializer: JSON\n```" + }, + "io.kestra.plugin.pulsar.RealtimeTrigger": { + "type": "object", + "properties": { + "authenticationToken": { + "$dynamic": true, + "type": "string", + "title": "Authentication token.", + "markdownDescription": "Authentication token that can be required by some providers such as Clever Cloud." + }, + "conditions": { + "$dynamic": false, + "title": "List of conditions in order to limit the flow trigger.", + "type": "array", + "items": { + "oneOf": [ + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.DateTimeBetweenCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.DayWeekCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.DayWeekInMonthCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.ExecutionFlowCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.ExecutionLabelsCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.ExecutionNamespaceCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.ExecutionOutputsCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.ExecutionStatusCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.ExpressionCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.FlowCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.FlowNamespaceCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.HasRetryAttemptCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.MultipleCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.NotCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.OrCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.PublicHolidayCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.TimeBetweenCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.WeekendCondition" + }, + { + "$dynamic": false + } + ] + } + ] + } + }, + "consumerName": { + "$dynamic": true, + "type": "string", + "title": "The consumer name." + }, + "consumerProperties": { + "$dynamic": true, + "type": "object", + "title": "Add all the properties in the provided map to the consumer.", + "additionalProperties": { + "type": "string" + } + }, + "description": { + "type": "string" + }, + "deserializer": { + "allOf": [ + { + "type": "string", + "enum": ["STRING", "JSON", "BYTES"], + "title": "Serializer / Deserializer used for the value." + }, + { + "$dynamic": true, + "title": "Deserializer used for the value.", + "default": "STRING", + "markdownDescription": "Default value is : `STRING`" + } + ] + }, + "disabled": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "encryptionKey": { + "$dynamic": true, + "type": "string", + "title": "Add a public encryption key to the producer/consumer." + }, + "id": { + "type": "string", + "title": "A unique ID for the whole flow.", + "minLength": 1, + "pattern": "^[a-zA-Z0-9][a-zA-Z0-9_-]*" + }, + "initialPosition": { + "$dynamic": false, + "type": "string", + "enum": ["Latest", "Earliest"], + "title": "The position of a subscription to the topic.", + "default": "Earliest", + "markdownDescription": "Default value is : `Earliest`" + }, + "labels": { + "title": "The labels to pass to the execution created.", + "type": "array", + "items": { + "$ref": "#/definitions/io.kestra.core.models.Label" + } + }, + "logLevel": { + "type": "string", + "enum": ["ERROR", "WARN", "INFO", "DEBUG", "TRACE"] + }, + "schemaString": { + "$dynamic": true, + "type": "string", + "title": "JSON string of the topic's schema", + "markdownDescription": "Required for connecting with topics with a defined schema and strict schema checking" + }, + "schemaType": { + "$dynamic": true, + "type": "string", + "enum": ["NONE", "AVRO", "JSON"], + "title": "The schema type of the topic", + "default": "NONE", + "markdownDescription": "Can be one of NONE, AVRO or JSON. None means there will be no schema enforced.\n\nDefault value is : `NONE`" + }, + "stopAfter": { + "$dynamic": false, + "title": "List of execution states after which a trigger should be stopped (a.k.a. disabled).", + "type": "array", + "items": { + "$dynamic": false, + "type": "string", + "enum": [ + "CREATED", + "RUNNING", + "PAUSED", + "RESTARTED", + "KILLING", + "SUCCESS", + "WARNING", + "FAILED", + "KILLED", + "CANCELLED", + "QUEUED", + "RETRYING", + "RETRIED" + ] + } + }, + "subscriptionName": { + "$dynamic": true, + "type": "string", + "title": "The subscription name.", + "markdownDescription": "Using subscription name, we will fetch only records that haven't been consumed yet." + }, + "subscriptionType": { + "$dynamic": false, + "type": "string", + "enum": ["Exclusive", "Shared", "Failover", "Key_Shared"], + "title": "The subscription type.", + "default": "Exclusive", + "markdownDescription": "Default value is : `Exclusive`" + }, + "tlsOptions": { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.pulsar.AbstractPulsarConnection-TlsOptions" + }, + { + "$dynamic": false, + "title": "TLS authentication options.", + "markdownDescription": "You need to use \"pulsar+ssl://\" in serviceUrl to enable TLS support." + } + ] + }, + "topic": { + "$dynamic": true, + "title": "Pulsar topic(s) where to consume messages from.", + "markdownDescription": "Can be a string or a list of strings to consume from multiple topics." + }, + "type": { + "const": "io.kestra.plugin.pulsar.RealtimeTrigger" + }, + "uri": { + "$dynamic": true, + "type": "string", + "title": "Connection URLs.", + "markdownDescription": "You need to specify a Pulsar protocol URL.\n- Example of localhost: `pulsar://localhost:6650`\n- If you have multiple brokers: `pulsar://localhost:6650,localhost:6651,localhost:6652`\n- If you use TLS authentication: `pulsar+ssl://pulsar.us-west.example.com:6651`" + }, + "workerGroup": { + "$ref": "#/definitions/io.kestra.core.models.tasks.WorkerGroup" + } + }, + "required": ["id", "subscriptionName", "topic", "type", "uri"], + "title": "Consume a message in real-time from Pulsar topics and create one execution per message.", + "markdownDescription": "If you would like to consume multiple messages processed within a given time frame and process them in batch, you can use the [io.kestra.plugin.pulsar.Trigger](https://kestra.io/plugins/plugin-pulsar/triggers/io.kestra.plugin.pulsar.trigger) instead.##### Examples\n\u003E Consume a message from a Pulsar topic in real-time.\n```yaml\nid: pulsar\nnamespace: company.team\n\ntasks:\n- id: log\n type: io.kestra.plugin.core.log.Log\n message: \"{{ trigger.value }}\"\n\ntriggers:\n- id: realtime_trigger\n type: io.kestra.plugin.pulsar.RealtimeTrigger\n topic: kestra_trigger\n uri: pulsar://localhost:26650\n deserializer: JSON\n subscriptionName: kestra_trigger_sub\n```" + }, + "io.kestra.plugin.pulsar.Trigger": { + "type": "object", + "properties": { + "authenticationToken": { + "$dynamic": true, + "type": "string", + "title": "Authentication token.", + "markdownDescription": "Authentication token that can be required by some providers such as Clever Cloud." + }, + "conditions": { + "$dynamic": false, + "title": "List of conditions in order to limit the flow trigger.", + "type": "array", + "items": { + "oneOf": [ + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.DateTimeBetweenCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.DayWeekCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.DayWeekInMonthCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.ExecutionFlowCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.ExecutionLabelsCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.ExecutionNamespaceCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.ExecutionOutputsCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.ExecutionStatusCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.ExpressionCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.FlowCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.FlowNamespaceCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.HasRetryAttemptCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.MultipleCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.NotCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.OrCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.PublicHolidayCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.TimeBetweenCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.WeekendCondition" + }, + { + "$dynamic": false + } + ] + } + ] + } + }, + "consumerName": { + "$dynamic": true, + "type": "string", + "title": "The consumer name." + }, + "consumerProperties": { + "$dynamic": true, + "type": "object", + "title": "Add all the properties in the provided map to the consumer.", + "additionalProperties": { + "type": "string" + } + }, + "description": { + "type": "string" + }, + "deserializer": { + "allOf": [ + { + "type": "string", + "enum": ["STRING", "JSON", "BYTES"], + "title": "Serializer / Deserializer used for the value." + }, + { + "$dynamic": true, + "title": "Deserializer used for the value.", + "default": "STRING", + "markdownDescription": "Default value is : `STRING`" + } + ] + }, + "disabled": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "encryptionKey": { + "$dynamic": true, + "type": "string", + "title": "Add a public encryption key to the producer/consumer." + }, + "id": { + "type": "string", + "title": "A unique ID for the whole flow.", + "minLength": 1, + "pattern": "^[a-zA-Z0-9][a-zA-Z0-9_-]*" + }, + "initialPosition": { + "$dynamic": false, + "type": "string", + "enum": ["Latest", "Earliest"], + "title": "The position of a subscription to the topic.", + "default": "Earliest", + "markdownDescription": "Default value is : `Earliest`" + }, + "interval": { + "$dynamic": false, + "type": "string", + "format": "duration", + "title": "Interval between polling.", + "default": 60, + "markdownDescription": "The interval between 2 different polls of schedule, this can avoid to overload the remote system with too many calls. For most of the triggers that depend on external systems, a minimal interval must be at least PT30S.\nSee [ISO_8601 Durations](https://en.wikipedia.org/wiki/ISO_8601#Durations) for more information of available interval values.\n\nDefault value is : `60.000000000`" + }, + "labels": { + "title": "The labels to pass to the execution created.", + "type": "array", + "items": { + "$ref": "#/definitions/io.kestra.core.models.Label" + } + }, + "logLevel": { + "type": "string", + "enum": ["ERROR", "WARN", "INFO", "DEBUG", "TRACE"] + }, + "maxDuration": { + "$dynamic": false, + "type": "string", + "format": "duration", + "title": "The maximum duration waiting for new record.", + "markdownDescription": "It's not a hard limit and is evaluated every second." + }, + "maxRecords": { + "$dynamic": false, + "type": "integer", + "title": "The maximum number of records to fetch before stopping.", + "markdownDescription": "It's not a hard limit and is evaluated every second." + }, + "pollDuration": { + "$dynamic": true, + "type": "string", + "format": "duration", + "title": "Duration waiting for record to be polled.", + "default": 2, + "markdownDescription": "If no records are available, the maximum wait to wait for a new record. \n\nDefault value is : `2.000000000`" + }, + "schemaString": { + "$dynamic": true, + "type": "string", + "title": "JSON string of the topic's schema", + "markdownDescription": "Required for connecting with topics with a defined schema and strict schema checking" + }, + "schemaType": { + "$dynamic": true, + "type": "string", + "enum": ["NONE", "AVRO", "JSON"], + "title": "The schema type of the topic", + "default": "NONE", + "markdownDescription": "Can be one of NONE, AVRO or JSON. None means there will be no schema enforced.\n\nDefault value is : `NONE`" + }, + "stopAfter": { + "$dynamic": false, + "title": "List of execution states after which a trigger should be stopped (a.k.a. disabled).", + "type": "array", + "items": { + "$dynamic": false, + "type": "string", + "enum": [ + "CREATED", + "RUNNING", + "PAUSED", + "RESTARTED", + "KILLING", + "SUCCESS", + "WARNING", + "FAILED", + "KILLED", + "CANCELLED", + "QUEUED", + "RETRYING", + "RETRIED" + ] + } + }, + "subscriptionName": { + "$dynamic": true, + "type": "string", + "title": "The subscription name.", + "markdownDescription": "Using subscription name, we will fetch only records that haven't been consumed yet." + }, + "subscriptionType": { + "$dynamic": false, + "type": "string", + "enum": ["Exclusive", "Shared", "Failover", "Key_Shared"], + "title": "The subscription type.", + "default": "Exclusive", + "markdownDescription": "Default value is : `Exclusive`" + }, + "tlsOptions": { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.pulsar.AbstractPulsarConnection-TlsOptions" + }, + { + "$dynamic": false, + "title": "TLS authentication options.", + "markdownDescription": "You need to use \"pulsar+ssl://\" in serviceUrl to enable TLS support." + } + ] + }, + "topic": { + "$dynamic": true, + "title": "Pulsar topic(s) where to consume messages from.", + "markdownDescription": "Can be a string or a list of strings to consume from multiple topics." + }, + "type": { + "const": "io.kestra.plugin.pulsar.Trigger" + }, + "uri": { + "$dynamic": true, + "type": "string", + "title": "Connection URLs.", + "markdownDescription": "You need to specify a Pulsar protocol URL.\n- Example of localhost: `pulsar://localhost:6650`\n- If you have multiple brokers: `pulsar://localhost:6650,localhost:6651,localhost:6652`\n- If you use TLS authentication: `pulsar+ssl://pulsar.us-west.example.com:6651`" + }, + "workerGroup": { + "$ref": "#/definitions/io.kestra.core.models.tasks.WorkerGroup" + } + }, + "required": ["id", "subscriptionName", "topic", "type", "uri"], + "title": "Consume messages periodically from Pulsar topics and create one execution per batch.", + "markdownDescription": "Note that you don't need an extra task to consume the message from the event trigger. The trigger will automatically consume messages and you can retrieve their content in your flow using the `{{ trigger.uri }}` variable. If you would like to consume each message from a Pulsar topic in real-time and create one execution per message, you can use the [io.kestra.plugin.pulsar.RealtimeTrigger](https://kestra.io/plugins/plugin-pulsar/triggers/io.kestra.plugin.pulsar.realtimetrigger) instead.##### Examples\n\u003E \n```yaml\ninterval: PT30S\ntopic: kestra_trigger\nuri: pulsar://localhost:26650\ndeserializer: JSON\nsubscriptionName: kestra_trigger_sub\n```" + }, + "io.kestra.plugin.redis.list.ListPop": { + "type": "object", + "properties": { + "allowFailure": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "count": { + "$dynamic": false, + "type": "integer", + "title": "Number of elements that should be pop at once", + "default": 100, + "markdownDescription": "Default value is : `100`" + }, + "description": { + "type": "string" + }, + "disabled": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "id": { + "type": "string", + "minLength": 1, + "pattern": "^[a-zA-Z0-9][a-zA-Z0-9_-]*" + }, + "key": { + "$dynamic": true, + "type": "string", + "title": "The redis key for the list." + }, + "logLevel": { + "type": "string", + "enum": ["ERROR", "WARN", "INFO", "DEBUG", "TRACE"] + }, + "maxDuration": { + "$dynamic": false, + "type": "string", + "format": "duration", + "title": "The max duration waiting for new rows.", + "markdownDescription": "It's not an hard limit and is evaluated every second." + }, + "maxRecords": { + "$dynamic": false, + "type": "integer", + "title": "The max number of rows to fetch before stopping.", + "markdownDescription": "It's not an hard limit and is evaluated every second." + }, + "retry": { + "oneOf": [ + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Constant-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Exponential-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Random-2" + } + ] + }, + "serdeType": { + "allOf": [ + { + "type": "string", + "enum": ["STRING", "JSON"], + "title": "Serializer / Deserializer use for the value" + }, + { + "$dynamic": false, + "title": "Format of the data contained in Redis", + "default": "STRING", + "markdownDescription": "Default value is : `STRING`" + } + ] + }, + "timeout": { + "type": "string", + "format": "duration" + }, + "type": { + "const": "io.kestra.plugin.redis.list.ListPop" + }, + "url": { + "$dynamic": true, + "type": "string", + "title": "The connection string." + }, + "workerGroup": { + "$ref": "#/definitions/io.kestra.core.models.tasks.WorkerGroup" + } + }, + "required": ["id", "key", "type", "url"], + "title": "Removes and returns an element from the head of a list.", + "markdownDescription": "##### Examples\n\u003E \n```yaml\nurl: redis://:redis@localhost:6379/0\nkey: mypopkeyjson\nserdeType: JSON\nmaxRecords: 1\n```" + }, + "io.kestra.plugin.redis.list.ListPush": { + "type": "object", + "properties": { + "allowFailure": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "description": { + "type": "string" + }, + "disabled": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "from": { + "$dynamic": true, + "title": "The list of values to push at the head of the list.", + "oneOf": [ + { + "type": "string" + }, + { + "type": "array", + "items": {} + } + ] + }, + "id": { + "type": "string", + "minLength": 1, + "pattern": "^[a-zA-Z0-9][a-zA-Z0-9_-]*" + }, + "key": { + "$dynamic": true, + "type": "string", + "title": "The redis key for the list." + }, + "logLevel": { + "type": "string", + "enum": ["ERROR", "WARN", "INFO", "DEBUG", "TRACE"] + }, + "retry": { + "oneOf": [ + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Constant-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Exponential-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Random-2" + } + ] + }, + "serdeType": { + "allOf": [ + { + "type": "string", + "enum": ["STRING", "JSON"], + "title": "Serializer / Deserializer use for the value" + }, + { + "$dynamic": false, + "title": "Format of the data contained in Redis", + "default": "STRING", + "markdownDescription": "Default value is : `STRING`" + } + ] + }, + "timeout": { + "type": "string", + "format": "duration" + }, + "type": { + "const": "io.kestra.plugin.redis.list.ListPush" + }, + "url": { + "$dynamic": true, + "type": "string", + "title": "The connection string." + }, + "workerGroup": { + "$ref": "#/definitions/io.kestra.core.models.tasks.WorkerGroup" + } + }, + "required": ["from", "id", "key", "type", "url"], + "title": "Adds a new element to the head of a list.", + "markdownDescription": "##### Examples\n\u003E \n```yaml\nurl: redis://:redis@localhost:6379/0\nkey: mykey\nfrom:\n - value1\n - value2\n```" + }, + "io.kestra.plugin.redis.list.RealtimeTrigger": { + "type": "object", + "properties": { + "conditions": { + "$dynamic": false, + "title": "List of conditions in order to limit the flow trigger.", + "type": "array", + "items": { + "oneOf": [ + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.DateTimeBetweenCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.DayWeekCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.DayWeekInMonthCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.ExecutionFlowCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.ExecutionLabelsCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.ExecutionNamespaceCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.ExecutionOutputsCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.ExecutionStatusCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.ExpressionCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.FlowCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.FlowNamespaceCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.HasRetryAttemptCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.MultipleCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.NotCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.OrCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.PublicHolidayCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.TimeBetweenCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.WeekendCondition" + }, + { + "$dynamic": false + } + ] + } + ] + } + }, + "description": { + "type": "string" + }, + "disabled": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "id": { + "type": "string", + "title": "A unique ID for the whole flow.", + "minLength": 1, + "pattern": "^[a-zA-Z0-9][a-zA-Z0-9_-]*" + }, + "key": { + "$dynamic": true, + "type": "string", + "title": "The redis key for the list." + }, + "labels": { + "title": "The labels to pass to the execution created.", + "type": "array", + "items": { + "$ref": "#/definitions/io.kestra.core.models.Label" + } + }, + "logLevel": { + "type": "string", + "enum": ["ERROR", "WARN", "INFO", "DEBUG", "TRACE"] + }, + "serdeType": { + "allOf": [ + { + "type": "string", + "enum": ["STRING", "JSON"], + "title": "Serializer / Deserializer use for the value" + }, + { + "$dynamic": false, + "title": "Format of the data contained in Redis", + "default": "STRING", + "markdownDescription": "Default value is : `STRING`" + } + ] + }, + "stopAfter": { + "$dynamic": false, + "title": "List of execution states after which a trigger should be stopped (a.k.a. disabled).", + "type": "array", + "items": { + "$dynamic": false, + "type": "string", + "enum": [ + "CREATED", + "RUNNING", + "PAUSED", + "RESTARTED", + "KILLING", + "SUCCESS", + "WARNING", + "FAILED", + "KILLED", + "CANCELLED", + "QUEUED", + "RETRYING", + "RETRIED" + ] + } + }, + "type": { + "const": "io.kestra.plugin.redis.list.RealtimeTrigger" + }, + "url": { + "$dynamic": true, + "type": "string", + "title": "The connection string." + }, + "workerGroup": { + "$ref": "#/definitions/io.kestra.core.models.tasks.WorkerGroup" + } + }, + "required": ["id", "key", "type", "url"], + "title": "Removes and returns an element from the head of a list in real-time and create one execution per element.", + "markdownDescription": "If you would like to consume multiple elements processed within a given time frame and process them in batch, you can use the [io.kestra.plugin.redis.list.Trigger](https://kestra.io/plugins/plugin-redis/triggers/io.kestra.plugin.redis.list.trigger) instead.##### Examples\n\u003E Consume an element from the head of a list in real-time.\n```yaml\nid: list-listen\nnamespace: company.team\n\ntasks:\n - id: echo\n type: io.kestra.plugin.core.log.Log\n message: \"Received '{{ trigger.value }}'\" \n\ntriggers:\n - id: watch\n type: io.kestra.plugin.redis.RealtimeTrigger\n url: redis://localhost:6379/0\n key: mytriggerkey\n```" + }, + "io.kestra.plugin.redis.list.Trigger": { + "type": "object", + "properties": { + "conditions": { + "$dynamic": false, + "title": "List of conditions in order to limit the flow trigger.", + "type": "array", + "items": { + "oneOf": [ + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.DateTimeBetweenCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.DayWeekCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.DayWeekInMonthCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.ExecutionFlowCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.ExecutionLabelsCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.ExecutionNamespaceCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.ExecutionOutputsCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.ExecutionStatusCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.ExpressionCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.FlowCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.FlowNamespaceCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.HasRetryAttemptCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.MultipleCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.NotCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.OrCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.PublicHolidayCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.TimeBetweenCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.WeekendCondition" + }, + { + "$dynamic": false + } + ] + } + ] + } + }, + "count": { + "$dynamic": false, + "type": "integer", + "title": "Number of elements that should be pop at once", + "default": 100, + "markdownDescription": "Default value is : `100`" + }, + "description": { + "type": "string" + }, + "disabled": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "id": { + "type": "string", + "title": "A unique ID for the whole flow.", + "minLength": 1, + "pattern": "^[a-zA-Z0-9][a-zA-Z0-9_-]*" + }, + "interval": { + "$dynamic": false, + "type": "string", + "format": "duration", + "title": "Interval between polling.", + "default": 60, + "markdownDescription": "The interval between 2 different polls of schedule, this can avoid to overload the remote system with too many calls. For most of the triggers that depend on external systems, a minimal interval must be at least PT30S.\nSee [ISO_8601 Durations](https://en.wikipedia.org/wiki/ISO_8601#Durations) for more information of available interval values.\n\nDefault value is : `60.000000000`" + }, + "key": { + "$dynamic": true, + "type": "string", + "title": "The redis key for the list." + }, + "labels": { + "title": "The labels to pass to the execution created.", + "type": "array", + "items": { + "$ref": "#/definitions/io.kestra.core.models.Label" + } + }, + "logLevel": { + "type": "string", + "enum": ["ERROR", "WARN", "INFO", "DEBUG", "TRACE"] + }, + "maxDuration": { + "$dynamic": false, + "type": "string", + "format": "duration", + "title": "The max duration waiting for new rows.", + "markdownDescription": "It's not an hard limit and is evaluated every second." + }, + "maxRecords": { + "$dynamic": false, + "type": "integer", + "title": "The max number of rows to fetch before stopping.", + "markdownDescription": "It's not an hard limit and is evaluated every second." + }, + "serdeType": { + "allOf": [ + { + "type": "string", + "enum": ["STRING", "JSON"], + "title": "Serializer / Deserializer use for the value" + }, + { + "$dynamic": false, + "title": "Format of the data contained in Redis", + "default": "STRING", + "markdownDescription": "Default value is : `STRING`" + } + ] + }, + "stopAfter": { + "$dynamic": false, + "title": "List of execution states after which a trigger should be stopped (a.k.a. disabled).", + "type": "array", + "items": { + "$dynamic": false, + "type": "string", + "enum": [ + "CREATED", + "RUNNING", + "PAUSED", + "RESTARTED", + "KILLING", + "SUCCESS", + "WARNING", + "FAILED", + "KILLED", + "CANCELLED", + "QUEUED", + "RETRYING", + "RETRIED" + ] + } + }, + "type": { + "const": "io.kestra.plugin.redis.list.Trigger" + }, + "url": { + "$dynamic": true, + "type": "string", + "title": "The connection string." + }, + "workerGroup": { + "$ref": "#/definitions/io.kestra.core.models.tasks.WorkerGroup" + } + }, + "required": ["id", "key", "type", "url"], + "title": "Removes and returns an element from the head of a list periodically and create one execution per batch.", + "markdownDescription": "If you would like to consume each message from a list in real-time and create one execution per message, you can use the [io.kestra.plugin.redis.list.RealtimeTrigger](https://kestra.io/plugins/plugin-redis/triggers/io.kestra.plugin.redis.list.realtimetrigger) instead.##### Examples\n\u003E \n```yaml\nid: list-listen\nnamespace: company.team\n\ntasks:\n - id: echo\n type: io.kestra.plugin.core.log.Log\n message: \"{{ trigger.uri }} containing {{ trigger.count }} lines\" \n\ntriggers:\n - id: watch\n type: io.kestra.plugin.redis.list.Trigger\n url: redis://localhost:6379/0\n key: mytriggerkey\n maxRecords: 2\n```" + }, + "io.kestra.plugin.redis.pubsub.Publish": { + "type": "object", + "properties": { + "allowFailure": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "channel": { + "$dynamic": true, + "type": "string", + "title": "The redis channel to publish." + }, + "description": { + "type": "string" + }, + "disabled": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "from": { + "$dynamic": true, + "title": "The list of value to publish to the channel", + "oneOf": [ + { + "type": "string" + }, + { + "type": "array", + "items": {} + } + ] + }, + "id": { + "type": "string", + "minLength": 1, + "pattern": "^[a-zA-Z0-9][a-zA-Z0-9_-]*" + }, + "logLevel": { + "type": "string", + "enum": ["ERROR", "WARN", "INFO", "DEBUG", "TRACE"] + }, + "retry": { + "oneOf": [ + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Constant-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Exponential-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Random-2" + } + ] + }, + "serdeType": { + "allOf": [ + { + "type": "string", + "enum": ["STRING", "JSON"], + "title": "Serializer / Deserializer use for the value" + }, + { + "$dynamic": false, + "title": "Format of the data contained in Redis", + "default": "STRING", + "markdownDescription": "Default value is : `STRING`" + } + ] + }, + "timeout": { + "type": "string", + "format": "duration" + }, + "type": { + "const": "io.kestra.plugin.redis.pubsub.Publish" + }, + "url": { + "$dynamic": true, + "type": "string", + "title": "The connection string." + }, + "workerGroup": { + "$ref": "#/definitions/io.kestra.core.models.tasks.WorkerGroup" + } + }, + "required": ["channel", "from", "id", "type", "url"], + "title": "Publish one or multiple values to a channel.", + "markdownDescription": "##### Examples\n\u003E \n```yaml\nurl: redis://:redis@localhost:6379/0\nchannel: mych\nfrom:\n - value1\n - value2\n```" + }, + "io.kestra.plugin.redis.string.Delete": { + "type": "object", + "properties": { + "allowFailure": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "description": { + "type": "string" + }, + "disabled": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "failedOnMissing": { + "$dynamic": false, + "type": "boolean", + "title": "If some keys are not deleted, failed the task", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "id": { + "type": "string", + "minLength": 1, + "pattern": "^[a-zA-Z0-9][a-zA-Z0-9_-]*" + }, + "keys": { + "$dynamic": true, + "title": "The list of redis keys you want to delete", + "type": "array", + "items": { + "$dynamic": true, + "type": "string" + } + }, + "logLevel": { + "type": "string", + "enum": ["ERROR", "WARN", "INFO", "DEBUG", "TRACE"] + }, + "retry": { + "oneOf": [ + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Constant-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Exponential-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Random-2" + } + ] + }, + "timeout": { + "type": "string", + "format": "duration" + }, + "type": { + "const": "io.kestra.plugin.redis.string.Delete" + }, + "url": { + "$dynamic": true, + "type": "string", + "title": "The connection string." + }, + "workerGroup": { + "$ref": "#/definitions/io.kestra.core.models.tasks.WorkerGroup" + } + }, + "required": ["id", "keys", "type", "url"], + "title": "Delete one or more keys.", + "markdownDescription": "##### Examples\n\u003E \n```yaml\nurl: redis://:redis@localhost:6379/0\nkeys:\n - keyDelete1\n - keyDelete2\n```" + }, + "io.kestra.plugin.redis.string.Get": { + "type": "object", + "properties": { + "allowFailure": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "description": { + "type": "string" + }, + "disabled": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "id": { + "type": "string", + "minLength": 1, + "pattern": "^[a-zA-Z0-9][a-zA-Z0-9_-]*" + }, + "key": { + "$dynamic": true, + "type": "string", + "title": "The redis key you want to get" + }, + "logLevel": { + "type": "string", + "enum": ["ERROR", "WARN", "INFO", "DEBUG", "TRACE"] + }, + "retry": { + "oneOf": [ + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Constant-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Exponential-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Random-2" + } + ] + }, + "serdeType": { + "allOf": [ + { + "type": "string", + "enum": ["STRING", "JSON"], + "title": "Serializer / Deserializer use for the value" + }, + { + "$dynamic": false, + "title": "Format of the data contained in Redis", + "default": "STRING", + "markdownDescription": "Default value is : `STRING`" + } + ] + }, + "timeout": { + "type": "string", + "format": "duration" + }, + "type": { + "const": "io.kestra.plugin.redis.string.Get" + }, + "url": { + "$dynamic": true, + "type": "string", + "title": "The connection string." + }, + "workerGroup": { + "$ref": "#/definitions/io.kestra.core.models.tasks.WorkerGroup" + } + }, + "required": ["id", "key", "type", "url"], + "title": "Get a key.", + "markdownDescription": "##### Examples\n\u003E \n```yaml\nurl: redis://:redis@localhost:6379/0\nkey: mykey\n```" + }, + "io.kestra.plugin.redis.string.Set": { + "type": "object", + "properties": { + "allowFailure": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "description": { + "type": "string" + }, + "disabled": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "get": { + "$dynamic": false, + "type": "boolean", + "title": "Define if you get the older value in response, does not work with Redis 5.X", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "id": { + "type": "string", + "minLength": 1, + "pattern": "^[a-zA-Z0-9][a-zA-Z0-9_-]*" + }, + "key": { + "$dynamic": true, + "type": "string", + "title": "The redis key you want to set" + }, + "logLevel": { + "type": "string", + "enum": ["ERROR", "WARN", "INFO", "DEBUG", "TRACE"] + }, + "options": { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.redis.string.Set-Options" + }, + { + "$dynamic": false, + "title": "Options available when setting a key in Redis", + "default": {}, + "markdownDescription": "See [redis documentation](https://redis.io/commands/set/)\n\nDefault value is : `{}`" + } + ] + }, + "retry": { + "oneOf": [ + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Constant-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Exponential-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Random-2" + } + ] + }, + "serdeType": { + "allOf": [ + { + "type": "string", + "enum": ["STRING", "JSON"], + "title": "Serializer / Deserializer use for the value" + }, + { + "$dynamic": false, + "title": "Format of the data contained in Redis", + "default": "STRING", + "markdownDescription": "Default value is : `STRING`" + } + ] + }, + "timeout": { + "type": "string", + "format": "duration" + }, + "type": { + "const": "io.kestra.plugin.redis.string.Set" + }, + "url": { + "$dynamic": true, + "type": "string", + "title": "The connection string." + }, + "value": { + "$dynamic": true, + "type": "string", + "title": "The value you want to set" + }, + "workerGroup": { + "$ref": "#/definitions/io.kestra.core.models.tasks.WorkerGroup" + } + }, + "required": ["id", "key", "type", "url", "value"], + "title": "Set the string value of a key.", + "markdownDescription": "##### Examples\n\u003E \n```yaml\nurl: redis://:redis@localhost:6379/0\nkey: mykey\nvalue: myvalue\nserdeType: STRING\n```" + }, + "io.kestra.plugin.redis.string.Set-Options": { + "type": "object", + "properties": { + "expirationDate": { + "type": "string", + "format": "date-time", + "title": "Set the expiration date." + }, + "expirationDuration": { + "type": "string", + "format": "duration", + "title": "Set the expiration duration." + }, + "keepTtl": { + "type": "boolean", + "title": "Retain the time to live associated with the key." + }, + "mustExist": { + "type": "boolean", + "title": "Only set the key if it already exist." + }, + "mustNotExist": { + "type": "boolean", + "title": "Only set the key if it does not already exist." + } + } + }, + "io.kestra.plugin.scripts.exec.scripts.models.DockerOptions": { + "type": "object", + "properties": { + "config": { + "$dynamic": true, + "title": "Docker configuration file.", + "markdownDescription": "Docker configuration file that can set access credentials to private container registries. Usually located in `~/.docker/config.json`.", + "oneOf": [ + { + "type": "string" + }, + { + "type": "object" + } + ] + }, + "cpu": { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.scripts.runner.docker.Cpu" + }, + { + "$dynamic": false, + "title": "Limits the CPU usage to a given maximum threshold value.", + "markdownDescription": "By default, each container’s access to the host machine’s CPU cycles is unlimited. You can set various constraints to limit a given container’s access to the host machine’s CPU cycles." + } + ] + }, + "credentials": { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.scripts.runner.docker.Credentials" + }, + { + "$dynamic": true, + "title": "Credentials for a private container registry." + } + ] + }, + "deviceRequests": { + "$dynamic": false, + "title": "A list of device requests to be sent to device drivers.", + "type": "array", + "items": { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.scripts.runner.docker.DeviceRequest" + }, + { + "$dynamic": false + } + ] + } + }, + "entryPoint": { + "$dynamic": true, + "title": "Docker entrypoint to use.", + "type": "array", + "items": { + "$dynamic": true, + "type": "string" + } + }, + "extraHosts": { + "$dynamic": true, + "title": "Extra hostname mappings to the container network interface configuration.", + "type": "array", + "items": { + "$dynamic": true, + "type": "string" + } + }, + "host": { + "$dynamic": true, + "type": "string", + "title": "Docker API URI." + }, + "image": { + "$dynamic": true, + "type": "string", + "title": "Docker image to use.", + "minLength": 1 + }, + "memory": { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.scripts.runner.docker.Memory" + }, + { + "$dynamic": false, + "title": "Limits memory usage to a given maximum threshold value.", + "markdownDescription": "Docker can enforce hard memory limits, which allow the container to use no more than a given amount of user or system memory, or soft limits, which allow the container to use as much memory as it needs unless certain conditions are met, such as when the kernel detects low memory or contention on the host machine. Some of these options have different effects when used alone or when more than one option is set." + } + ] + }, + "networkMode": { + "$dynamic": true, + "type": "string", + "title": "Docker network mode to use e.g. `host`, `none`, etc." + }, + "pullPolicy": { + "$dynamic": false, + "type": "string", + "enum": ["IF_NOT_PRESENT", "ALWAYS", "NEVER"], + "title": "The image pull policy for a container image and the tag of the image, which affect when Docker attempts to pull (download) the specified image.", + "default": "ALWAYS", + "markdownDescription": "Default value is : `ALWAYS`" + }, + "shmSize": { + "$dynamic": true, + "type": "string", + "title": "Size of `/dev/shm` in bytes.", + "markdownDescription": "The size must be greater than 0. If omitted, the system uses 64MB." + }, + "user": { + "$dynamic": true, + "type": "string", + "title": "User in the Docker container." + }, + "volumes": { + "$dynamic": true, + "title": "List of volumes to mount.", + "markdownDescription": "Must be a valid mount expression as string, example : `/home/user:/app`.\n\nVolumes mount are disabled by default for security reasons; you must enable them on server configuration by setting `kestra.tasks.scripts.docker.volume-enabled` to `true`.", + "type": "array", + "items": { + "$dynamic": true, + "type": "string" + } + } + }, + "required": ["image"] + }, + "io.kestra.plugin.scripts.groovy.Eval": { + "type": "object", + "properties": { + "allowFailure": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "description": { + "type": "string" + }, + "disabled": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "id": { + "type": "string", + "minLength": 1, + "pattern": "^[a-zA-Z0-9][a-zA-Z0-9_-]*" + }, + "logLevel": { + "type": "string", + "enum": ["ERROR", "WARN", "INFO", "DEBUG", "TRACE"] + }, + "outputs": { + "$dynamic": false, + "title": "A list of output variables that will be usable in outputs.", + "type": "array", + "items": { + "$dynamic": false, + "type": "string" + } + }, + "retry": { + "oneOf": [ + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Constant-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Exponential-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Random-2" + } + ] + }, + "script": { + "$dynamic": true, + "type": "string", + "title": "A full script." + }, + "timeout": { + "type": "string", + "format": "duration" + }, + "type": { + "const": "io.kestra.plugin.scripts.groovy.Eval" + }, + "workerGroup": { + "$ref": "#/definitions/io.kestra.core.models.tasks.WorkerGroup" + } + }, + "required": ["id", "type"], + "title": "Execute a Groovy script.", + "markdownDescription": "##### Examples\n\u003E Make an API call and pass request body to a Groovy script.\n```yaml\nid: api-request-to-groovy\nnamespace: company.team\n\ntasks:\n - id: request\n type: io.kestra.plugin.core.http.Request\n uri: \"https://dummyjson.com/products/1\"\n\n - id: groovy\n type: io.kestra.plugin.scripts.groovy.Eval\n script: |\n logger.info('{{ outputs.request.body }}')\n\n - id: download\n type: io.kestra.plugin.core.http.Download\n uri: \"https://dummyjson.com/products/1\"\n\n - id: runContextGroovy\n type: io.kestra.plugin.scripts.groovy.Eval\n script: |\n // logger.info('Vars: {}', runContext.getVariables())\n URI uri = new URI(runContext.variables.outputs.download.uri)\n InputStream istream = runContext.storage().getFile(uri)\n logger.info('Content: {}', istream.text)\n\n```\n\n\u003E \n```yaml\noutputs:\n - out\n - map\nscript: |\n import io.kestra.core.models.executions.metrics.Counter\n \n logger.info('executionId: {}', runContext.render('{{ execution.id }}'))\n runContext.metric(Counter.of('total', 666, 'name', 'bla'))\n \n map = Map.of('test', 'here')\n File tempFile = runContext.workingDir().createTempFile().toFile()\n var output = new FileOutputStream(tempFile)\n output.write('555\\n666\\n'.getBytes())\n \n out = runContext.storage().putFile(tempFile)\n```" + }, + "io.kestra.plugin.scripts.groovy.FileTransform": { + "type": "object", + "properties": { + "allowFailure": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "concurrent": { + "$dynamic": false, + "type": "integer", + "title": "Number of concurrent parallel transformations to execute.", + "minimum": 2, + "markdownDescription": "Take care that the order is **not respected** if you use parallelism." + }, + "description": { + "type": "string" + }, + "disabled": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "from": { + "$dynamic": true, + "type": "string", + "title": "Source file containing rows to transform.", + "markdownDescription": "Can be Kestra's internal storage URI, a map or a list." + }, + "id": { + "type": "string", + "minLength": 1, + "pattern": "^[a-zA-Z0-9][a-zA-Z0-9_-]*" + }, + "logLevel": { + "type": "string", + "enum": ["ERROR", "WARN", "INFO", "DEBUG", "TRACE"] + }, + "retry": { + "oneOf": [ + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Constant-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Exponential-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Random-2" + } + ] + }, + "script": { + "$dynamic": true, + "type": "string", + "title": "A full script." + }, + "timeout": { + "type": "string", + "format": "duration" + }, + "type": { + "const": "io.kestra.plugin.scripts.groovy.FileTransform" + }, + "workerGroup": { + "$ref": "#/definitions/io.kestra.core.models.tasks.WorkerGroup" + } + }, + "required": ["from", "id", "type"], + "title": "Transform ion format file from Kestra with a groovy script.", + "markdownDescription": "This allows you to transform the data, previously loaded by Kestra, as you need.\n\nTake a ion format file from Kestra and iterate row per row.\nEach row will populate a `row` global variable. You need to alter this variable that will be saved on output file.\nIf you set the `row` to `null`, the row will be skipped.\nYou can create a variable `rows` to return multiple rows for a single `row`.\n##### Examples\n\u003E Convert row by row of a file from Kestra's internal storage.\n```yaml\nfrom: \"{{ outputs['avro-to-gcs'] }}\"\nscript: |\n logger.info('row: {}', row)\n\n if (row.get('name') == 'richard') {\n row = null\n } else {\n row.put('email', row.get('name') + '@kestra.io')\n }\n```\n\n\u003E Create multiple rows from one row.\n```yaml\nfrom: \"{{ outputs['avro-to-gcs'] }}\"\nscript: |\n logger.info('row: {}', row)\n rows = [[\"action\", \"insert\"], row]\n```\n\n\u003E Transform a JSON string to a file.\n```yaml\nfrom: \"[{\\\"name\\\":\\\"jane\\\"}, {\\\"name\\\":\\\"richard\\\"}]\"\nscript: |\n logger.info('row: {}', row)\n\n if (row.get('name') == 'richard') {\n row = null\n } else {\n row.put('email', row.get('name') + '@kestra.io')\n }\n```\n\n\u003E JSON transformations using jackson library\n```yaml\nid: json_transform_using_jackson\nnamespace: company.team\n\ntasks:\n - id: file_transform\n type: io.kestra.plugin.scripts.groovy.FileTransform\n from: \"[{\"name\":\"John Doe\", \"age\":99, \"embedded\":{\"foo\":\"bar\"}}]\"\n script: |\n import com.fasterxml.jackson.*\n\n def mapper = new databind.ObjectMapper();\n def jsonStr = mapper.writeValueAsString(row);\n logger.info('input in json str: {}', jsonStr)\n\n def typeRef = new core.type.TypeReference\u003CHashMap\u003CString,Object\u003E\u003E() {};\n\n data = mapper.readValue(jsonStr, typeRef);\n\n logger.info('json object: {}', data);\n logger.info('embedded field: {}', data.embedded.foo)\n\n```" + }, + "io.kestra.plugin.scripts.julia.Commands": { + "type": "object", + "properties": { + "allowFailure": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "beforeCommands": { + "$dynamic": true, + "title": "A list of commands that will run before the `commands`, allowing to set up the environment e.g. `pip install -r requirements.txt`.", + "type": "array", + "items": { + "$dynamic": true, + "type": "string" + } + }, + "commands": { + "$dynamic": true, + "title": "The commands to run.", + "minItems": 1, + "type": "array", + "items": { + "$dynamic": true, + "type": "string" + } + }, + "containerImage": { + "$dynamic": true, + "type": "string", + "title": "The task runner container image, only used if the task runner is container-based.", + "default": "julia", + "markdownDescription": "Default value is : `julia`" + }, + "description": { + "type": "string" + }, + "disabled": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "docker": { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.scripts.exec.scripts.models.DockerOptions" + }, + { + "$deprecated": true, + "title": "Deprecated - use the 'taskRunner' property instead.", + "markdownDescription": "Only used if the `taskRunner` property is not set" + } + ] + }, + "env": { + "$dynamic": true, + "type": "object", + "title": "Additional environment variables for the current process.", + "additionalProperties": { + "type": "string" + } + }, + "failFast": { + "$dynamic": false, + "type": "boolean", + "title": "Fail the task on the first command with a non-zero status.", + "default": true, + "markdownDescription": "If set to `false` all commands will be executed one after the other. The final state of task execution is determined by the last command. Note that this property maybe be ignored if a non compatible interpreter is specified.\nYou can also disable it if your interpreter does not support the `set -e`option.\n\nDefault value is : `true`" + }, + "id": { + "type": "string", + "minLength": 1, + "pattern": "^[a-zA-Z0-9][a-zA-Z0-9_-]*" + }, + "inputFiles": { + "$dynamic": true, + "title": "The files to create on the local filesystem. It can be a map or a JSON object.", + "oneOf": [ + { + "type": "object" + }, + { + "type": "string" + } + ] + }, + "interpreter": { + "$dynamic": false, + "title": "Which interpreter to use.", + "default": ["/bin/sh", "-c"], + "minItems": 1, + "markdownDescription": "Default value is : `- /bin/sh\n- -c`\n\nDefault value is : `- /bin/sh\n- -c`", + "type": "array", + "items": { + "$dynamic": false, + "type": "string" + } + }, + "logLevel": { + "type": "string", + "enum": ["ERROR", "WARN", "INFO", "DEBUG", "TRACE"] + }, + "namespaceFiles": { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.core.models.tasks.NamespaceFiles" + }, + { + "$dynamic": false, + "title": "Inject namespace files.", + "markdownDescription": "Inject namespace files to this task. When enabled, it will, by default, load all namespace files into the working directory. However, you can use the `include` or `exclude` properties to limit which namespace files will be injected." + } + ] + }, + "outputDirectory": { + "$deprecated": true, + "type": "boolean", + "title": "Whether to setup the output directory mechanism.", + "default": "false", + "markdownDescription": "Required to use the {{ outputDir }} expression. Note that it could increase the starting time. Deprecated, use the `outputFiles` property instead.\n\nDefault value is : `\"false\"`" + }, + "outputFiles": { + "$dynamic": true, + "title": "The files from the local filesystem to send to Kestra's internal storage.", + "markdownDescription": "Must be a list of [glob](https://en.wikipedia.org/wiki/Glob_(programming)) expressions relative to the current working directory, some examples: `my-dir/**`, `my-dir/*/**` or `my-dir/my-file.txt`.", + "type": "array", + "items": { + "$dynamic": true, + "type": "string" + } + }, + "retry": { + "oneOf": [ + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Constant-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Exponential-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Random-2" + } + ] + }, + "runner": { + "$deprecated": true, + "$dynamic": false, + "type": "string", + "enum": ["PROCESS", "DOCKER"], + "title": "Deprecated - use the 'taskRunner' property instead.", + "markdownDescription": "Only used if the `taskRunner` property is not set" + }, + "targetOS": { + "type": "string", + "enum": ["LINUX", "WINDOWS", "AUTO"], + "title": "The target operating system where the script will run.", + "default": "AUTO", + "markdownDescription": "Default value is : `AUTO`" + }, + "taskRunner": { + "oneOf": [ + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.scripts.runner.docker.Docker" + }, + { + "$dynamic": false, + "title": "The task runner to use.", + "markdownDescription": "Task runners are provided by plugins, each have their own properties." + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.runner.Process" + }, + { + "$dynamic": false, + "title": "The task runner to use.", + "markdownDescription": "Task runners are provided by plugins, each have their own properties." + } + ] + } + ] + }, + "timeout": { + "type": "string", + "format": "duration" + }, + "type": { + "const": "io.kestra.plugin.scripts.julia.Commands" + }, + "warningOnStdErr": { + "$dynamic": false, + "type": "boolean", + "title": "Whether to set the task state to `WARNING` if any `stdErr` is emitted.", + "default": true, + "markdownDescription": "Default value is : `true`" + }, + "workerGroup": { + "$ref": "#/definitions/io.kestra.core.models.tasks.WorkerGroup" + } + }, + "required": ["commands", "id", "type"], + "title": "Execute Julia scripts from the Command Line Interface.", + "markdownDescription": "##### Examples\n\u003E Create a Julia script, install required packages and execute it. Note that instead of defining the script inline, you could create the Julia script in the embedded VS Code editor and point to its location by path. If you do so, make sure to enable namespace files by setting the `enabled` flag of the `namespaceFiles` property to `true`.\n```yaml\nid: script\nnamespace: company.team\ntasks:\n - id: bash\n type: io.kestra.plugin.scripts.julia.Commands\n warningOnStdErr: false\n inputFiles:\n main.jl: |\n using DataFrames, CSV\n df = DataFrame(Name = [\"Alice\", \"Bob\", \"Charlie\"], Age = [25, 30, 35])\n CSV.write(\"output.csv\", df)\n outputFiles:\n - output.csv\n beforeCommands:\n - julia -e 'using Pkg; Pkg.add(\"DataFrames\"); Pkg.add(\"CSV\")'\n commands:\n - julia main.jl\n\n```" + }, + "io.kestra.plugin.scripts.julia.Script": { + "type": "object", + "properties": { + "allowFailure": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "beforeCommands": { + "$dynamic": true, + "title": "A list of commands that will run before the `commands`, allowing to set up the environment e.g. `pip install -r requirements.txt`.", + "type": "array", + "items": { + "$dynamic": true, + "type": "string" + } + }, + "containerImage": { + "$dynamic": true, + "type": "string", + "title": "The task runner container image, only used if the task runner is container-based.", + "default": "julia", + "markdownDescription": "Default value is : `julia`" + }, + "description": { + "type": "string" + }, + "disabled": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "docker": { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.scripts.exec.scripts.models.DockerOptions" + }, + { + "$deprecated": true, + "title": "Deprecated - use the 'taskRunner' property instead.", + "markdownDescription": "Only used if the `taskRunner` property is not set" + } + ] + }, + "env": { + "$dynamic": true, + "type": "object", + "title": "Additional environment variables for the current process.", + "additionalProperties": { + "type": "string" + } + }, + "failFast": { + "$dynamic": false, + "type": "boolean", + "title": "Fail the task on the first command with a non-zero status.", + "default": true, + "markdownDescription": "If set to `false` all commands will be executed one after the other. The final state of task execution is determined by the last command. Note that this property maybe be ignored if a non compatible interpreter is specified.\nYou can also disable it if your interpreter does not support the `set -e`option.\n\nDefault value is : `true`" + }, + "id": { + "type": "string", + "minLength": 1, + "pattern": "^[a-zA-Z0-9][a-zA-Z0-9_-]*" + }, + "inputFiles": { + "$dynamic": true, + "title": "The files to create on the local filesystem. It can be a map or a JSON object.", + "oneOf": [ + { + "type": "object" + }, + { + "type": "string" + } + ] + }, + "interpreter": { + "$dynamic": false, + "title": "Which interpreter to use.", + "default": ["/bin/sh", "-c"], + "minItems": 1, + "markdownDescription": "Default value is : `- /bin/sh\n- -c`\n\nDefault value is : `- /bin/sh\n- -c`", + "type": "array", + "items": { + "$dynamic": false, + "type": "string" + } + }, + "logLevel": { + "type": "string", + "enum": ["ERROR", "WARN", "INFO", "DEBUG", "TRACE"] + }, + "namespaceFiles": { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.core.models.tasks.NamespaceFiles" + }, + { + "$dynamic": false, + "title": "Inject namespace files.", + "markdownDescription": "Inject namespace files to this task. When enabled, it will, by default, load all namespace files into the working directory. However, you can use the `include` or `exclude` properties to limit which namespace files will be injected." + } + ] + }, + "outputDirectory": { + "$deprecated": true, + "type": "boolean", + "title": "Whether to setup the output directory mechanism.", + "default": "false", + "markdownDescription": "Required to use the {{ outputDir }} expression. Note that it could increase the starting time. Deprecated, use the `outputFiles` property instead.\n\nDefault value is : `\"false\"`" + }, + "outputFiles": { + "$dynamic": true, + "title": "The files from the local filesystem to send to Kestra's internal storage.", + "markdownDescription": "Must be a list of [glob](https://en.wikipedia.org/wiki/Glob_(programming)) expressions relative to the current working directory, some examples: `my-dir/**`, `my-dir/*/**` or `my-dir/my-file.txt`.", + "type": "array", + "items": { + "$dynamic": true, + "type": "string" + } + }, + "retry": { + "oneOf": [ + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Constant-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Exponential-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Random-2" + } + ] + }, + "runner": { + "$deprecated": true, + "$dynamic": false, + "type": "string", + "enum": ["PROCESS", "DOCKER"], + "title": "Deprecated - use the 'taskRunner' property instead.", + "markdownDescription": "Only used if the `taskRunner` property is not set" + }, + "script": { + "$dynamic": true, + "type": "string", + "title": "The inline script content. This property is intended for the script file's content as a (multiline) string, not a path to a file. To run a command such as `julia myscript.jl`, use the `Commands` task instead.", + "minLength": 1 + }, + "targetOS": { + "type": "string", + "enum": ["LINUX", "WINDOWS", "AUTO"], + "title": "The target operating system where the script will run.", + "default": "AUTO", + "markdownDescription": "Default value is : `AUTO`" + }, + "taskRunner": { + "oneOf": [ + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.scripts.runner.docker.Docker" + }, + { + "$dynamic": false, + "title": "The task runner to use.", + "markdownDescription": "Task runners are provided by plugins, each have their own properties." + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.runner.Process" + }, + { + "$dynamic": false, + "title": "The task runner to use.", + "markdownDescription": "Task runners are provided by plugins, each have their own properties." + } + ] + } + ] + }, + "timeout": { + "type": "string", + "format": "duration" + }, + "type": { + "const": "io.kestra.plugin.scripts.julia.Script" + }, + "warningOnStdErr": { + "$dynamic": false, + "type": "boolean", + "title": "Whether to set the task state to `WARNING` if any `stdErr` is emitted.", + "default": true, + "markdownDescription": "Default value is : `true`" + }, + "workerGroup": { + "$ref": "#/definitions/io.kestra.core.models.tasks.WorkerGroup" + } + }, + "required": ["id", "script", "type"], + "title": "Execute a Julia script.", + "markdownDescription": "##### Examples\n\u003E Create a Julia script, install required packages and execute it. Note that instead of defining the script inline, you could create the Julia script in the embedded VS Code editor and read its content using the `{{ read('your_script.jl') }}` function.\n```yaml\nid: script\nnamespace: company.team\ntasks:\n - id: bash\n type: io.kestra.plugin.scripts.julia.Script\n warningOnStdErr: false\n script: |\n using DataFrames, CSV\n df = DataFrame(Name = [\"Alice\", \"Bob\", \"Charlie\"], Age = [25, 30, 35])\n CSV.write(\"output.csv\", df)\n outputFiles:\n - output.csv\n beforeCommands:\n - julia -e 'using Pkg; Pkg.add(\"DataFrames\"); Pkg.add(\"CSV\")'\n\n```" + }, + "io.kestra.plugin.scripts.jython.Eval": { + "type": "object", + "properties": { + "allowFailure": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "description": { + "type": "string" + }, + "disabled": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "id": { + "type": "string", + "minLength": 1, + "pattern": "^[a-zA-Z0-9][a-zA-Z0-9_-]*" + }, + "logLevel": { + "type": "string", + "enum": ["ERROR", "WARN", "INFO", "DEBUG", "TRACE"] + }, + "outputs": { + "$dynamic": false, + "title": "A list of output variables that will be usable in outputs.", + "type": "array", + "items": { + "$dynamic": false, + "type": "string" + } + }, + "retry": { + "oneOf": [ + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Constant-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Exponential-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Random-2" + } + ] + }, + "script": { + "$dynamic": true, + "type": "string", + "title": "A full script." + }, + "timeout": { + "type": "string", + "format": "duration" + }, + "type": { + "const": "io.kestra.plugin.scripts.jython.Eval" + }, + "workerGroup": { + "$ref": "#/definitions/io.kestra.core.models.tasks.WorkerGroup" + } + }, + "required": ["id", "type"], + "title": "Execute a Jython script.", + "markdownDescription": "##### Examples\n\u003E \n```yaml\noutputs:\n - out\n - map\nscript: |\n from io.kestra.core.models.executions.metrics import Counter\n import tempfile\n from java.io import File\n \n logger.info('executionId: {}', runContext.render('{{ execution.id }}'))\n runContext.metric(Counter.of('total', 666, 'name', 'bla'))\n \n map = {'test': 'here'}\n tempFile = tempfile.NamedTemporaryFile()\n tempFile.write('555\\n666\\n')\n \n out = runContext.storage().putFile(File(tempFile.name))\n```" + }, + "io.kestra.plugin.scripts.jython.FileTransform": { + "type": "object", + "properties": { + "allowFailure": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "concurrent": { + "$dynamic": false, + "type": "integer", + "title": "Number of concurrent parallel transformations to execute.", + "minimum": 2, + "markdownDescription": "Take care that the order is **not respected** if you use parallelism." + }, + "description": { + "type": "string" + }, + "disabled": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "from": { + "$dynamic": true, + "type": "string", + "title": "Source file containing rows to transform.", + "markdownDescription": "Can be Kestra's internal storage URI, a map or a list." + }, + "id": { + "type": "string", + "minLength": 1, + "pattern": "^[a-zA-Z0-9][a-zA-Z0-9_-]*" + }, + "logLevel": { + "type": "string", + "enum": ["ERROR", "WARN", "INFO", "DEBUG", "TRACE"] + }, + "retry": { + "oneOf": [ + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Constant-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Exponential-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Random-2" + } + ] + }, + "script": { + "$dynamic": true, + "type": "string", + "title": "A full script." + }, + "timeout": { + "type": "string", + "format": "duration" + }, + "type": { + "const": "io.kestra.plugin.scripts.jython.FileTransform" + }, + "workerGroup": { + "$ref": "#/definitions/io.kestra.core.models.tasks.WorkerGroup" + } + }, + "required": ["from", "id", "type"], + "title": "Transform ion format file from Kestra with a groovy script.", + "markdownDescription": "This allows you to transform the data, previously loaded by Kestra, as you need.\n\nTake a ion format file from Kestra and iterate row per row.\nEach row will populate a `row` global variable. You need to alter this variable that will be saved on output file.\nIf you set the `row` to `null`, the row will be skipped.\nYou can create a variable `rows` to return multiple rows for a single `row`.\n##### Examples\n\u003E Extract data from an API, add a column, and store it as a downloadable CSV file.\n```yaml\nid: etl-api-to-csv\nnamespace: company.team\n\ntasks:\n - id: download\n type: io.kestra.plugin.fs.http.Download\n uri: https://gorest.co.in/public/v2/users\n\n - id: ionToJSON\n type: io.kestra.plugin.serdes.json.JsonToIon\n from: \"{{outputs.download.uri}}\"\n newLine: false\n\n - id: writeJSON\n type: io.kestra.plugin.serdes.json.IonToJson\n from: \"{{outputs.ionToJSON.uri}}\"\n\n - id: addColumn\n type: io.kestra.plugin.scripts.jython.FileTransform\n from: \"{{outputs.writeJSON.uri}}\"\n script: |\n from datetime import datetime\n logger.info('row: {}', row)\n row['inserted_at'] = datetime.utcnow()\n\n - id: csv\n type: io.kestra.plugin.serdes.csv.IonToCsv\n from: \"{{outputs.addColumn.uri}}\"\n\n```\n\n\u003E Transform with file from internal storage.\n```yaml\nfrom: \"{{ outputs['avro-to-gcs'] }}\"\nscript: |\n logger.info('row: {}', row)\n\n if row['name'] == 'richard': \n row = None\n else: \n row['email'] = row['name'] + '@kestra.io'\n\n```\n\n\u003E Transform with file from JSON string.\n```yaml\nfrom: \"[{\\\"name\\\":\\\"jane\\\"}, {\\\"name\\\":\\\"richard\\\"}]\"\nscript: |\n logger.info('row: {}', row)\n\n if row['name'] == 'richard': \n row = None\n else: \n row['email'] = row['name'] + '@kestra.io'\n\n```" + }, + "io.kestra.plugin.scripts.nashorn.Eval": { + "type": "object", + "properties": { + "allowFailure": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "description": { + "type": "string" + }, + "disabled": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "id": { + "type": "string", + "minLength": 1, + "pattern": "^[a-zA-Z0-9][a-zA-Z0-9_-]*" + }, + "logLevel": { + "type": "string", + "enum": ["ERROR", "WARN", "INFO", "DEBUG", "TRACE"] + }, + "outputs": { + "$dynamic": false, + "title": "A list of output variables that will be usable in outputs.", + "type": "array", + "items": { + "$dynamic": false, + "type": "string" + } + }, + "retry": { + "oneOf": [ + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Constant-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Exponential-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Random-2" + } + ] + }, + "script": { + "$dynamic": true, + "type": "string", + "title": "A full script." + }, + "timeout": { + "type": "string", + "format": "duration" + }, + "type": { + "const": "io.kestra.plugin.scripts.nashorn.Eval" + }, + "workerGroup": { + "$ref": "#/definitions/io.kestra.core.models.tasks.WorkerGroup" + } + }, + "required": ["id", "type"], + "title": "Execute a Nashorn (JavaScript) script.", + "markdownDescription": "##### Examples\n\u003E \n```yaml\noutputs:\n - out\n - map\nscript: |\n var Counter = Java.type('io.kestra.core.models.executions.metrics.Counter');\n var File = Java.type('java.io.File');\n var FileOutputStream = Java.type('java.io.FileOutputStream');\n \n logger.info('executionId: {}', runContext.render('{{ execution.id }}'));\n runContext.metric(Counter.of('total', 666, 'name', 'bla'));\n \n map = {'test': 'here'}\n var tempFile = runContext.workingDir().createTempFile().toFile()\n var output = new FileOutputStream(tempFile)\n output.write('555\\n666\\n'.getBytes())\n \n out = runContext.storage().putFile(tempFile)\n```" + }, + "io.kestra.plugin.scripts.nashorn.FileTransform": { + "type": "object", + "properties": { + "allowFailure": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "concurrent": { + "$dynamic": false, + "type": "integer", + "title": "Number of concurrent parallel transformations to execute.", + "minimum": 2, + "markdownDescription": "Take care that the order is **not respected** if you use parallelism." + }, + "description": { + "type": "string" + }, + "disabled": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "from": { + "$dynamic": true, + "type": "string", + "title": "Source file containing rows to transform.", + "markdownDescription": "Can be Kestra's internal storage URI, a map or a list." + }, + "id": { + "type": "string", + "minLength": 1, + "pattern": "^[a-zA-Z0-9][a-zA-Z0-9_-]*" + }, + "logLevel": { + "type": "string", + "enum": ["ERROR", "WARN", "INFO", "DEBUG", "TRACE"] + }, + "retry": { + "oneOf": [ + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Constant-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Exponential-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Random-2" + } + ] + }, + "script": { + "$dynamic": true, + "type": "string", + "title": "A full script." + }, + "timeout": { + "type": "string", + "format": "duration" + }, + "type": { + "const": "io.kestra.plugin.scripts.nashorn.FileTransform" + }, + "workerGroup": { + "$ref": "#/definitions/io.kestra.core.models.tasks.WorkerGroup" + } + }, + "required": ["from", "id", "type"], + "title": "Transform ion format file from Kestra's internal storage with a Nashorn (JavaScript) script.", + "markdownDescription": "##### Examples\n\u003E Transform with file from internal storage\n```yaml\nfrom: \"{{ outputs['avro-to-gcs'] }}\"\nscript: |\n logger.info('row: {}', row)\n\n if (row['name'] === 'richard') {\n row = null\n } else {\n row['email'] = row['name'] + '@kestra.io'\n }\n```\n\n\u003E Transform JSON string input with a Nashorn script.\n```yaml\nfrom: \"[{\\\"name\":\\\"jane\\\"}, {\\\"name\\\":\\\"richard\\\"}]\"\nscript: |\n logger.info('row: {}', row)\n\n if (row['name'] === 'richard') {\n row = null\n } else {\n row['email'] = row['name'] + '@kestra.io'\n }\n```" + }, + "io.kestra.plugin.scripts.node.Commands": { + "type": "object", + "properties": { + "allowFailure": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "beforeCommands": { + "$dynamic": true, + "title": "A list of commands that will run before the `commands`, allowing to set up the environment e.g. `pip install -r requirements.txt`.", + "type": "array", + "items": { + "$dynamic": true, + "type": "string" + } + }, + "commands": { + "$dynamic": true, + "title": "The commands to run.", + "minItems": 1, + "type": "array", + "items": { + "$dynamic": true, + "type": "string" + } + }, + "containerImage": { + "$dynamic": true, + "type": "string", + "title": "The task runner container image, only used if the task runner is container-based.", + "default": "node", + "markdownDescription": "Default value is : `node`" + }, + "description": { + "type": "string" + }, + "disabled": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "docker": { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.scripts.exec.scripts.models.DockerOptions" + }, + { + "$deprecated": true, + "title": "Deprecated - use the 'taskRunner' property instead.", + "markdownDescription": "Only used if the `taskRunner` property is not set" + } + ] + }, + "env": { + "$dynamic": true, + "type": "object", + "title": "Additional environment variables for the current process.", + "additionalProperties": { + "type": "string" + } + }, + "failFast": { + "$dynamic": false, + "type": "boolean", + "title": "Fail the task on the first command with a non-zero status.", + "default": true, + "markdownDescription": "If set to `false` all commands will be executed one after the other. The final state of task execution is determined by the last command. Note that this property maybe be ignored if a non compatible interpreter is specified.\nYou can also disable it if your interpreter does not support the `set -e`option.\n\nDefault value is : `true`" + }, + "id": { + "type": "string", + "minLength": 1, + "pattern": "^[a-zA-Z0-9][a-zA-Z0-9_-]*" + }, + "inputFiles": { + "$dynamic": true, + "title": "The files to create on the local filesystem. It can be a map or a JSON object.", + "oneOf": [ + { + "type": "object" + }, + { + "type": "string" + } + ] + }, + "interpreter": { + "$dynamic": false, + "title": "Which interpreter to use.", + "default": ["/bin/sh", "-c"], + "minItems": 1, + "markdownDescription": "Default value is : `- /bin/sh\n- -c`\n\nDefault value is : `- /bin/sh\n- -c`", + "type": "array", + "items": { + "$dynamic": false, + "type": "string" + } + }, + "logLevel": { + "type": "string", + "enum": ["ERROR", "WARN", "INFO", "DEBUG", "TRACE"] + }, + "namespaceFiles": { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.core.models.tasks.NamespaceFiles" + }, + { + "$dynamic": false, + "title": "Inject namespace files.", + "markdownDescription": "Inject namespace files to this task. When enabled, it will, by default, load all namespace files into the working directory. However, you can use the `include` or `exclude` properties to limit which namespace files will be injected." + } + ] + }, + "outputDirectory": { + "$deprecated": true, + "type": "boolean", + "title": "Whether to setup the output directory mechanism.", + "default": "false", + "markdownDescription": "Required to use the {{ outputDir }} expression. Note that it could increase the starting time. Deprecated, use the `outputFiles` property instead.\n\nDefault value is : `\"false\"`" + }, + "outputFiles": { + "$dynamic": true, + "title": "The files from the local filesystem to send to Kestra's internal storage.", + "markdownDescription": "Must be a list of [glob](https://en.wikipedia.org/wiki/Glob_(programming)) expressions relative to the current working directory, some examples: `my-dir/**`, `my-dir/*/**` or `my-dir/my-file.txt`.", + "type": "array", + "items": { + "$dynamic": true, + "type": "string" + } + }, + "retry": { + "oneOf": [ + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Constant-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Exponential-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Random-2" + } + ] + }, + "runner": { + "$deprecated": true, + "$dynamic": false, + "type": "string", + "enum": ["PROCESS", "DOCKER"], + "title": "Deprecated - use the 'taskRunner' property instead.", + "markdownDescription": "Only used if the `taskRunner` property is not set" + }, + "targetOS": { + "type": "string", + "enum": ["LINUX", "WINDOWS", "AUTO"], + "title": "The target operating system where the script will run.", + "default": "AUTO", + "markdownDescription": "Default value is : `AUTO`" + }, + "taskRunner": { + "oneOf": [ + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.scripts.runner.docker.Docker" + }, + { + "$dynamic": false, + "title": "The task runner to use.", + "markdownDescription": "Task runners are provided by plugins, each have their own properties." + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.runner.Process" + }, + { + "$dynamic": false, + "title": "The task runner to use.", + "markdownDescription": "Task runners are provided by plugins, each have their own properties." + } + ] + } + ] + }, + "timeout": { + "type": "string", + "format": "duration" + }, + "type": { + "const": "io.kestra.plugin.scripts.node.Commands" + }, + "warningOnStdErr": { + "$dynamic": false, + "type": "boolean", + "title": "Whether to set the task state to `WARNING` if any `stdErr` is emitted.", + "default": true, + "markdownDescription": "Default value is : `true`" + }, + "workerGroup": { + "$ref": "#/definitions/io.kestra.core.models.tasks.WorkerGroup" + } + }, + "required": ["commands", "id", "type"], + "title": "Execute one or more Node.js commands from the Command Line Interface. Note that instead of adding the script using the `inputFiles` property, you could also add the script from the embedded VS Code editor and point to its location by path. If you do so, make sure to enable Namespace Files by setting the `enabled` flag of the `namespaceFiles` property to `true`.", + "markdownDescription": "##### Examples\n\u003E Install required npm packages, create a Node.js script and execute it.\n```yaml\nid: node\nnamespace: company.team\ntasks:\n - id: node_script\n type: io.kestra.plugin.scripts.node.Commands\n inputFiles:\n main.js: |\n const colors = require(\"colors\");\n console.log(colors.red(\"Hello\"));\n beforeCommands:\n - npm install colors\n commands:\n - node main.js\n warningOnStdErr: false\n\n```" + }, + "io.kestra.plugin.scripts.node.Script": { + "type": "object", + "properties": { + "allowFailure": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "beforeCommands": { + "$dynamic": true, + "title": "A list of commands that will run before the `commands`, allowing to set up the environment e.g. `pip install -r requirements.txt`.", + "type": "array", + "items": { + "$dynamic": true, + "type": "string" + } + }, + "containerImage": { + "$dynamic": true, + "type": "string", + "title": "The task runner container image, only used if the task runner is container-based.", + "default": "node", + "markdownDescription": "Default value is : `node`" + }, + "description": { + "type": "string" + }, + "disabled": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "docker": { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.scripts.exec.scripts.models.DockerOptions" + }, + { + "$deprecated": true, + "title": "Deprecated - use the 'taskRunner' property instead.", + "markdownDescription": "Only used if the `taskRunner` property is not set" + } + ] + }, + "env": { + "$dynamic": true, + "type": "object", + "title": "Additional environment variables for the current process.", + "additionalProperties": { + "type": "string" + } + }, + "failFast": { + "$dynamic": false, + "type": "boolean", + "title": "Fail the task on the first command with a non-zero status.", + "default": true, + "markdownDescription": "If set to `false` all commands will be executed one after the other. The final state of task execution is determined by the last command. Note that this property maybe be ignored if a non compatible interpreter is specified.\nYou can also disable it if your interpreter does not support the `set -e`option.\n\nDefault value is : `true`" + }, + "id": { + "type": "string", + "minLength": 1, + "pattern": "^[a-zA-Z0-9][a-zA-Z0-9_-]*" + }, + "inputFiles": { + "$dynamic": true, + "title": "The files to create on the local filesystem. It can be a map or a JSON object.", + "oneOf": [ + { + "type": "object" + }, + { + "type": "string" + } + ] + }, + "interpreter": { + "$dynamic": false, + "title": "Which interpreter to use.", + "default": ["/bin/sh", "-c"], + "minItems": 1, + "markdownDescription": "Default value is : `- /bin/sh\n- -c`\n\nDefault value is : `- /bin/sh\n- -c`", + "type": "array", + "items": { + "$dynamic": false, + "type": "string" + } + }, + "logLevel": { + "type": "string", + "enum": ["ERROR", "WARN", "INFO", "DEBUG", "TRACE"] + }, + "namespaceFiles": { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.core.models.tasks.NamespaceFiles" + }, + { + "$dynamic": false, + "title": "Inject namespace files.", + "markdownDescription": "Inject namespace files to this task. When enabled, it will, by default, load all namespace files into the working directory. However, you can use the `include` or `exclude` properties to limit which namespace files will be injected." + } + ] + }, + "outputDirectory": { + "$deprecated": true, + "type": "boolean", + "title": "Whether to setup the output directory mechanism.", + "default": "false", + "markdownDescription": "Required to use the {{ outputDir }} expression. Note that it could increase the starting time. Deprecated, use the `outputFiles` property instead.\n\nDefault value is : `\"false\"`" + }, + "outputFiles": { + "$dynamic": true, + "title": "The files from the local filesystem to send to Kestra's internal storage.", + "markdownDescription": "Must be a list of [glob](https://en.wikipedia.org/wiki/Glob_(programming)) expressions relative to the current working directory, some examples: `my-dir/**`, `my-dir/*/**` or `my-dir/my-file.txt`.", + "type": "array", + "items": { + "$dynamic": true, + "type": "string" + } + }, + "retry": { + "oneOf": [ + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Constant-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Exponential-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Random-2" + } + ] + }, + "runner": { + "$deprecated": true, + "$dynamic": false, + "type": "string", + "enum": ["PROCESS", "DOCKER"], + "title": "Deprecated - use the 'taskRunner' property instead.", + "markdownDescription": "Only used if the `taskRunner` property is not set" + }, + "script": { + "$dynamic": true, + "type": "string", + "title": "The inline script content. This property is intended for the script file's content as a (multiline) string, not a path to a file. To run a command from a file such as `bash myscript.sh` or `python myscript.py`, use the `Commands` task instead.", + "minLength": 1 + }, + "targetOS": { + "type": "string", + "enum": ["LINUX", "WINDOWS", "AUTO"], + "title": "The target operating system where the script will run.", + "default": "AUTO", + "markdownDescription": "Default value is : `AUTO`" + }, + "taskRunner": { + "oneOf": [ + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.scripts.runner.docker.Docker" + }, + { + "$dynamic": false, + "title": "The task runner to use.", + "markdownDescription": "Task runners are provided by plugins, each have their own properties." + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.runner.Process" + }, + { + "$dynamic": false, + "title": "The task runner to use.", + "markdownDescription": "Task runners are provided by plugins, each have their own properties." + } + ] + } + ] + }, + "timeout": { + "type": "string", + "format": "duration" + }, + "type": { + "const": "io.kestra.plugin.scripts.node.Script" + }, + "warningOnStdErr": { + "$dynamic": false, + "type": "boolean", + "title": "Whether to set the task state to `WARNING` if any `stdErr` is emitted.", + "default": true, + "markdownDescription": "Default value is : `true`" + }, + "workerGroup": { + "$ref": "#/definitions/io.kestra.core.models.tasks.WorkerGroup" + } + }, + "required": ["id", "script", "type"], + "title": "Execute a Node.js script.", + "markdownDescription": "##### Examples\n\u003E Install package, create a Node.js script and execute it.\n```yaml\nbeforeCommands:\n - npm install colors\nscript: |\n const colors = require(\"colors\");\n console.log(colors.red(\"Hello\"));\nwarningOnStdErr: false\n```\n\n\u003E If you want to generate files in your script to make them available for download and use in downstream tasks, you can leverage the `{{ outputDir }}` variable. Files stored in that directory will be persisted in Kestra's internal storage. To access this output in downstream tasks, use the syntax `{{ outputs.yourTaskId.outputFiles['yourFileName.fileExtension'] }}`.\n\nAlternatively, instead of the `{{ outputDir }}` variable, you could use the `outputFiles` property to output files from your script. You can access those files in downstream tasks using the same syntax `{{ outputs.yourTaskId.outputFiles['yourFileName.fileExtension'] }}`, and you can download the files from the UI's Output tab.\n\n```yaml\nid: nodeJS\nnamespace: company.team\ntasks:\n - id: node\n type: io.kestra.plugin.scripts.node.Script\n warningOnStdErr: false\n beforeCommands:\n - npm install json2csv \u003E /dev/null 2\u003E&1\n script: |\n const fs = require('fs');\n const { Parser } = require('json2csv');\n\n // Product prices in our simulation\n const productPrices = {\n 'T-shirt': 20,\n 'Jeans': 75,\n 'Shoes': 80,\n 'Socks': 5,\n 'Hat': 25\n }\n\n const generateOrder = () =\u003E {\n const products = ['T-shirt', 'Jeans', 'Shoes', 'Socks', 'Hat'];\n const statuses = ['pending', 'shipped', 'delivered', 'cancelled'];\n\n const randomProduct = products[Math.floor(Math.random() * products.length)];\n const randomStatus = statuses[Math.floor(Math.random() * statuses.length)];\n const randomQuantity = Math.floor(Math.random() * 10) + 1;\n\n const order = {\n product: randomProduct,\n status: randomStatus,\n quantity: randomQuantity,\n total: randomQuantity * productPrices[randomProduct]\n };\n\n return order;\n }\n\n let totalSales = 0;\n let orders = [];\n\n for (let i = 0; i \u003C 100; i++) {\n const order = generateOrder();\n orders.push(order);\n totalSales += order.total;\n }\n\n console.log(`Total sales: $${totalSales}`);\n\n const fields = ['product', 'status', 'quantity', 'total'];\n const json2csvParser = new Parser({ fields });\n const csvData = json2csvParser.parse(orders);\n\n fs.writeFileSync('{{ outputDir }}/orders.csv', csvData);\n\n console.log('Orders saved to orders.csv');\n\n```" + }, + "io.kestra.plugin.scripts.powershell.Commands": { + "type": "object", + "properties": { + "allowFailure": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "beforeCommands": { + "$dynamic": true, + "title": "A list of commands that will run before the `commands`, allowing to set up the environment e.g. `pip install -r requirements.txt`.", + "type": "array", + "items": { + "$dynamic": true, + "type": "string" + } + }, + "commands": { + "$dynamic": true, + "title": "The commands to run.", + "minItems": 1, + "type": "array", + "items": { + "$dynamic": true, + "type": "string" + } + }, + "containerImage": { + "$dynamic": true, + "type": "string", + "title": "The task runner container image, only used if the task runner is container-based.", + "default": "ghcr.io/kestra-io/powershell:latest", + "markdownDescription": "Default value is : `ghcr.io/kestra-io/powershell:latest`" + }, + "description": { + "type": "string" + }, + "disabled": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "docker": { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.scripts.exec.scripts.models.DockerOptions" + }, + { + "$deprecated": true, + "title": "Deprecated - use the 'taskRunner' property instead.", + "markdownDescription": "Only used if the `taskRunner` property is not set" + } + ] + }, + "env": { + "$dynamic": true, + "type": "object", + "title": "Additional environment variables for the current process.", + "additionalProperties": { + "type": "string" + } + }, + "failFast": { + "$dynamic": false, + "type": "boolean", + "title": "Fail the task on the first command with a non-zero status.", + "default": true, + "markdownDescription": "If set to `false` all commands will be executed one after the other. The final state of task execution is determined by the last command. Note that this property maybe be ignored if a non compatible interpreter is specified.\nYou can also disable it if your interpreter does not support the `set -e`option.\n\nDefault value is : `true`" + }, + "id": { + "type": "string", + "minLength": 1, + "pattern": "^[a-zA-Z0-9][a-zA-Z0-9_-]*" + }, + "inputFiles": { + "$dynamic": true, + "title": "The files to create on the local filesystem. It can be a map or a JSON object.", + "oneOf": [ + { + "type": "object" + }, + { + "type": "string" + } + ] + }, + "interpreter": { + "$dynamic": false, + "title": "Which interpreter to use.", + "default": ["pwsh", "-NoProfile", "-NonInteractive", "-Command"], + "minItems": 1, + "markdownDescription": "Default value is : `- pwsh\n- -NoProfile\n- -NonInteractive\n- -Command`\n\nDefault value is : `- pwsh\n- -NoProfile\n- -NonInteractive\n- -Command`", + "type": "array", + "items": { + "$dynamic": false, + "type": "string" + } + }, + "logLevel": { + "type": "string", + "enum": ["ERROR", "WARN", "INFO", "DEBUG", "TRACE"] + }, + "namespaceFiles": { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.core.models.tasks.NamespaceFiles" + }, + { + "$dynamic": false, + "title": "Inject namespace files.", + "markdownDescription": "Inject namespace files to this task. When enabled, it will, by default, load all namespace files into the working directory. However, you can use the `include` or `exclude` properties to limit which namespace files will be injected." + } + ] + }, + "outputDirectory": { + "$deprecated": true, + "type": "boolean", + "title": "Whether to setup the output directory mechanism.", + "default": "false", + "markdownDescription": "Required to use the {{ outputDir }} expression. Note that it could increase the starting time. Deprecated, use the `outputFiles` property instead.\n\nDefault value is : `\"false\"`" + }, + "outputFiles": { + "$dynamic": true, + "title": "The files from the local filesystem to send to Kestra's internal storage.", + "markdownDescription": "Must be a list of [glob](https://en.wikipedia.org/wiki/Glob_(programming)) expressions relative to the current working directory, some examples: `my-dir/**`, `my-dir/*/**` or `my-dir/my-file.txt`.", + "type": "array", + "items": { + "$dynamic": true, + "type": "string" + } + }, + "retry": { + "oneOf": [ + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Constant-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Exponential-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Random-2" + } + ] + }, + "runner": { + "$deprecated": true, + "$dynamic": false, + "type": "string", + "enum": ["PROCESS", "DOCKER"], + "title": "Deprecated - use the 'taskRunner' property instead.", + "markdownDescription": "Only used if the `taskRunner` property is not set" + }, + "targetOS": { + "type": "string", + "enum": ["LINUX", "WINDOWS", "AUTO"], + "title": "The target operating system where the script will run.", + "default": "AUTO", + "markdownDescription": "Default value is : `AUTO`" + }, + "taskRunner": { + "oneOf": [ + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.scripts.runner.docker.Docker" + }, + { + "$dynamic": false, + "title": "The task runner to use.", + "markdownDescription": "Task runners are provided by plugins, each have their own properties." + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.runner.Process" + }, + { + "$dynamic": false, + "title": "The task runner to use.", + "markdownDescription": "Task runners are provided by plugins, each have their own properties." + } + ] + } + ] + }, + "timeout": { + "type": "string", + "format": "duration" + }, + "type": { + "const": "io.kestra.plugin.scripts.powershell.Commands" + }, + "warningOnStdErr": { + "$dynamic": false, + "type": "boolean", + "title": "Whether to set the task state to `WARNING` if any `stdErr` is emitted.", + "default": true, + "markdownDescription": "Default value is : `true`" + }, + "workerGroup": { + "$ref": "#/definitions/io.kestra.core.models.tasks.WorkerGroup" + } + }, + "required": ["commands", "id", "type"], + "title": "Execute one or more PowerShell commands. Note that instead of adding the script using the `inputFiles` property, you could also add the script from the embedded VS Code editor and point to its location by path. If you do so, make sure to enable namespace files by setting the `enabled` flag of the `namespaceFiles` property to `true`.", + "markdownDescription": "##### Examples\n\u003E Create a PowerShell script and execute it.\n```yaml\nid: powershell\nnamespace: company.team\ntasks:\n - id: powershell_script\n type: io.kestra.plugin.scripts.powershell.Commands\n inputFiles:\n main.ps1: |\n 'Hello, World!' | Write-Output\n commands:\n - ./main.ps1\n\n```" + }, + "io.kestra.plugin.scripts.powershell.Script": { + "type": "object", + "properties": { + "allowFailure": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "beforeCommands": { + "$dynamic": true, + "title": "A list of commands that will run before the `commands`, allowing to set up the environment e.g. `pip install -r requirements.txt`.", + "type": "array", + "items": { + "$dynamic": true, + "type": "string" + } + }, + "containerImage": { + "$dynamic": true, + "type": "string", + "title": "The task runner container image, only used if the task runner is container-based.", + "default": "ghcr.io/kestra-io/powershell:latest", + "markdownDescription": "Default value is : `ghcr.io/kestra-io/powershell:latest`" + }, + "description": { + "type": "string" + }, + "disabled": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "docker": { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.scripts.exec.scripts.models.DockerOptions" + }, + { + "$deprecated": true, + "title": "Deprecated - use the 'taskRunner' property instead.", + "markdownDescription": "Only used if the `taskRunner` property is not set" + } + ] + }, + "env": { + "$dynamic": true, + "type": "object", + "title": "Additional environment variables for the current process.", + "additionalProperties": { + "type": "string" + } + }, + "failFast": { + "$dynamic": false, + "type": "boolean", + "title": "Fail the task on the first command with a non-zero status.", + "default": true, + "markdownDescription": "If set to `false` all commands will be executed one after the other. The final state of task execution is determined by the last command. Note that this property maybe be ignored if a non compatible interpreter is specified.\nYou can also disable it if your interpreter does not support the `set -e`option.\n\nDefault value is : `true`" + }, + "id": { + "type": "string", + "minLength": 1, + "pattern": "^[a-zA-Z0-9][a-zA-Z0-9_-]*" + }, + "inputFiles": { + "$dynamic": true, + "title": "The files to create on the local filesystem. It can be a map or a JSON object.", + "oneOf": [ + { + "type": "object" + }, + { + "type": "string" + } + ] + }, + "interpreter": { + "$dynamic": false, + "title": "Which interpreter to use.", + "default": ["pwsh", "-NoProfile", "-NonInteractive", "-Command"], + "minItems": 1, + "markdownDescription": "Default value is : `- pwsh\n- -NoProfile\n- -NonInteractive\n- -Command`\n\nDefault value is : `- pwsh\n- -NoProfile\n- -NonInteractive\n- -Command`", + "type": "array", + "items": { + "$dynamic": false, + "type": "string" + } + }, + "logLevel": { + "type": "string", + "enum": ["ERROR", "WARN", "INFO", "DEBUG", "TRACE"] + }, + "namespaceFiles": { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.core.models.tasks.NamespaceFiles" + }, + { + "$dynamic": false, + "title": "Inject namespace files.", + "markdownDescription": "Inject namespace files to this task. When enabled, it will, by default, load all namespace files into the working directory. However, you can use the `include` or `exclude` properties to limit which namespace files will be injected." + } + ] + }, + "outputDirectory": { + "$deprecated": true, + "type": "boolean", + "title": "Whether to setup the output directory mechanism.", + "default": "false", + "markdownDescription": "Required to use the {{ outputDir }} expression. Note that it could increase the starting time. Deprecated, use the `outputFiles` property instead.\n\nDefault value is : `\"false\"`" + }, + "outputFiles": { + "$dynamic": true, + "title": "The files from the local filesystem to send to Kestra's internal storage.", + "markdownDescription": "Must be a list of [glob](https://en.wikipedia.org/wiki/Glob_(programming)) expressions relative to the current working directory, some examples: `my-dir/**`, `my-dir/*/**` or `my-dir/my-file.txt`.", + "type": "array", + "items": { + "$dynamic": true, + "type": "string" + } + }, + "retry": { + "oneOf": [ + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Constant-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Exponential-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Random-2" + } + ] + }, + "runner": { + "$deprecated": true, + "$dynamic": false, + "type": "string", + "enum": ["PROCESS", "DOCKER"], + "title": "Deprecated - use the 'taskRunner' property instead.", + "markdownDescription": "Only used if the `taskRunner` property is not set" + }, + "script": { + "$dynamic": true, + "type": "string", + "title": "The inline script content. This property is intended for the script file's content as a (multiline) string, not a path to a file. To run a command from a file such as `bash myscript.sh` or `python myscript.py`, use the `Commands` task instead.", + "minLength": 1 + }, + "targetOS": { + "type": "string", + "enum": ["LINUX", "WINDOWS", "AUTO"], + "title": "The target operating system where the script will run.", + "default": "AUTO", + "markdownDescription": "Default value is : `AUTO`" + }, + "taskRunner": { + "oneOf": [ + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.scripts.runner.docker.Docker" + }, + { + "$dynamic": false, + "title": "The task runner to use.", + "markdownDescription": "Task runners are provided by plugins, each have their own properties." + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.runner.Process" + }, + { + "$dynamic": false, + "title": "The task runner to use.", + "markdownDescription": "Task runners are provided by plugins, each have their own properties." + } + ] + } + ] + }, + "timeout": { + "type": "string", + "format": "duration" + }, + "type": { + "const": "io.kestra.plugin.scripts.powershell.Script" + }, + "warningOnStdErr": { + "$dynamic": false, + "type": "boolean", + "title": "Whether to set the task state to `WARNING` if any `stdErr` is emitted.", + "default": true, + "markdownDescription": "Default value is : `true`" + }, + "workerGroup": { + "$ref": "#/definitions/io.kestra.core.models.tasks.WorkerGroup" + } + }, + "required": ["id", "script", "type"], + "title": "Execute a PowerShell script.", + "markdownDescription": "##### Examples\n\u003E \n```yaml\nscript: |\n 'Hello, World!' | Write-Output\n```\n\n\u003E If you want to generate files in your script to make them available for download and use in downstream tasks, you can leverage the `{{ outputDir }}` variable. Files stored in that directory will be persisted in Kestra's internal storage. To access this output in downstream tasks, use the syntax `{{ outputs.yourTaskId.outputFiles['yourFileName.fileExtension'] }}`.\n\n```yaml\nid: powershell\nnamespace: company.team\ntasks:\n - id: hello\n type: io.kestra.plugin.scripts.powershell.Script\n script: |\n Set-Content -Path {{ outputDir }}\\hello.txt -Value \"Hello World\"\n\n```" + }, + "io.kestra.plugin.scripts.python.Commands": { + "type": "object", + "properties": { + "allowFailure": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "beforeCommands": { + "$dynamic": true, + "title": "A list of commands that will run before the `commands`, allowing to set up the environment e.g. `pip install -r requirements.txt`.", + "type": "array", + "items": { + "$dynamic": true, + "type": "string" + } + }, + "commands": { + "$dynamic": true, + "title": "The commands to run.", + "minItems": 1, + "type": "array", + "items": { + "$dynamic": true, + "type": "string" + } + }, + "containerImage": { + "$dynamic": true, + "type": "string", + "title": "The task runner container image, only used if the task runner is container-based.", + "default": "ghcr.io/kestra-io/kestrapy:latest", + "markdownDescription": "Default value is : `ghcr.io/kestra-io/kestrapy:latest`" + }, + "description": { + "type": "string" + }, + "disabled": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "docker": { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.scripts.exec.scripts.models.DockerOptions" + }, + { + "$deprecated": true, + "title": "Deprecated - use the 'taskRunner' property instead.", + "markdownDescription": "Only used if the `taskRunner` property is not set" + } + ] + }, + "env": { + "$dynamic": true, + "type": "object", + "title": "Additional environment variables for the current process.", + "additionalProperties": { + "type": "string" + } + }, + "failFast": { + "$dynamic": false, + "type": "boolean", + "title": "Fail the task on the first command with a non-zero status.", + "default": true, + "markdownDescription": "If set to `false` all commands will be executed one after the other. The final state of task execution is determined by the last command. Note that this property maybe be ignored if a non compatible interpreter is specified.\nYou can also disable it if your interpreter does not support the `set -e`option.\n\nDefault value is : `true`" + }, + "id": { + "type": "string", + "minLength": 1, + "pattern": "^[a-zA-Z0-9][a-zA-Z0-9_-]*" + }, + "inputFiles": { + "$dynamic": true, + "title": "The files to create on the local filesystem. It can be a map or a JSON object.", + "oneOf": [ + { + "type": "object" + }, + { + "type": "string" + } + ] + }, + "interpreter": { + "$dynamic": false, + "title": "Which interpreter to use.", + "default": ["/bin/sh", "-c"], + "minItems": 1, + "markdownDescription": "Default value is : `- /bin/sh\n- -c`\n\nDefault value is : `- /bin/sh\n- -c`", + "type": "array", + "items": { + "$dynamic": false, + "type": "string" + } + }, + "logLevel": { + "type": "string", + "enum": ["ERROR", "WARN", "INFO", "DEBUG", "TRACE"] + }, + "namespaceFiles": { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.core.models.tasks.NamespaceFiles" + }, + { + "$dynamic": false, + "title": "Inject namespace files.", + "markdownDescription": "Inject namespace files to this task. When enabled, it will, by default, load all namespace files into the working directory. However, you can use the `include` or `exclude` properties to limit which namespace files will be injected." + } + ] + }, + "outputDirectory": { + "$deprecated": true, + "type": "boolean", + "title": "Whether to setup the output directory mechanism.", + "default": "false", + "markdownDescription": "Required to use the {{ outputDir }} expression. Note that it could increase the starting time. Deprecated, use the `outputFiles` property instead.\n\nDefault value is : `\"false\"`" + }, + "outputFiles": { + "$dynamic": true, + "title": "The files from the local filesystem to send to Kestra's internal storage.", + "markdownDescription": "Must be a list of [glob](https://en.wikipedia.org/wiki/Glob_(programming)) expressions relative to the current working directory, some examples: `my-dir/**`, `my-dir/*/**` or `my-dir/my-file.txt`.", + "type": "array", + "items": { + "$dynamic": true, + "type": "string" + } + }, + "retry": { + "oneOf": [ + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Constant-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Exponential-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Random-2" + } + ] + }, + "runner": { + "$deprecated": true, + "$dynamic": false, + "type": "string", + "enum": ["PROCESS", "DOCKER"], + "title": "Deprecated - use the 'taskRunner' property instead.", + "markdownDescription": "Only used if the `taskRunner` property is not set" + }, + "targetOS": { + "type": "string", + "enum": ["LINUX", "WINDOWS", "AUTO"], + "title": "The target operating system where the script will run.", + "default": "AUTO", + "markdownDescription": "Default value is : `AUTO`" + }, + "taskRunner": { + "oneOf": [ + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.scripts.runner.docker.Docker" + }, + { + "$dynamic": false, + "title": "The task runner to use.", + "markdownDescription": "Task runners are provided by plugins, each have their own properties." + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.runner.Process" + }, + { + "$dynamic": false, + "title": "The task runner to use.", + "markdownDescription": "Task runners are provided by plugins, each have their own properties." + } + ] + } + ] + }, + "timeout": { + "type": "string", + "format": "duration" + }, + "type": { + "const": "io.kestra.plugin.scripts.python.Commands" + }, + "warningOnStdErr": { + "$dynamic": false, + "type": "boolean", + "title": "Whether to set the task state to `WARNING` if any `stdErr` is emitted.", + "default": true, + "markdownDescription": "Default value is : `true`" + }, + "workerGroup": { + "$ref": "#/definitions/io.kestra.core.models.tasks.WorkerGroup" + } + }, + "required": ["commands", "id", "type"], + "title": "Execute one or more Python scripts from a Command Line Interface.", + "markdownDescription": "##### Examples\n\u003E Execute a Python script in a Conda virtual environment. First, add the following script in the embedded VS Code editor and name it `etl_script.py`:\n\n```python\nimport argparse\n\nparser = argparse.ArgumentParser()\n\nparser.add_argument(\"--num\", type=int, default=42, help=\"Enter an integer\")\n\nargs = parser.parse_args()\nresult = args.num * 2\nprint(result)\n```\n\nThen, make sure to set the `enabled` flag of the `namespaceFiles` property to `true` to enable [namespace files](https://kestra.io/docs/developer-guide/namespace-files).\n\nThis flow uses a `PROCESS` runner and Conda virtual environment for process isolation and dependency management. However, note that, by default, Kestra runs tasks in a Docker container (i.e. a `DOCKER` runner), and you can use the `docker` property to customize many options, such as the Docker image to use.\n\n```yaml\nid: python_venv\nnamespace: company.team\n\ntasks:\n - id: hello\n type: io.kestra.plugin.scripts.python.Commands\n namespaceFiles:\n enabled: true\n taskRunner:\n type: io.kestra.plugin.core.runner.Process\n beforeCommands:\n - conda activate myCondaEnv\n commands:\n - python etl_script.py\n\n```\n\n\u003E Execute a Python script from Git in a Docker container and output a file\n```yaml\nid: pythonCommandsExample\nnamespace: company.team\n\ntasks:\n - id: wdir\n type: io.kestra.plugin.core.flow.WorkingDirectory\n tasks:\n - id: cloneRepository\n type: io.kestra.plugin.git.Clone\n url: https://github.com/kestra-io/examples\n branch: main\n\n - id: gitPythonScripts\n type: io.kestra.plugin.scripts.python.Commands\n warningOnStdErr: false\n containerImage: ghcr.io/kestra-io/pydata:latest\n beforeCommands:\n - pip install faker \u003E /dev/null\n commands:\n - python examples/scripts/etl_script.py\n - python examples/scripts/generate_orders.py\n outputFiles:\n - orders.csv\n\n - id: loadCsvToS3\n type: io.kestra.plugin.aws.s3.Upload\n accessKeyId: \"{{ secret('AWS_ACCESS_KEY_ID') }}\"\n secretKeyId: \"{{ secret('AWS_SECRET_ACCESS_KEY') }}\"\n region: eu-central-1\n bucket: kestraio\n key: stage/orders.csv\n from: \"{{ outputs.gitPythonScripts.outputFiles['orders.csv'] }}\"\n\n```\n\n\u003E Execute a Python script on a remote worker with a GPU\n```yaml\nid: gpuTask\nnamespace: company.team\n\ntasks:\n - id: hello\n type: io.kestra.plugin.scripts.python.Commands\n taskRunner:\n type: io.kestra.plugin.core.runner.Process\n commands:\n - python ml_on_gpu.py\n workerGroup:\n key: gpu\n\n```\n\n\u003E Pass detected S3 objects from the event trigger to a Python script\n```yaml\nid: s3TriggerCommands\nnamespace: company.team\ndescription: process CSV file from S3 trigger\n\ntasks:\n - id: wdir\n type: io.kestra.plugin.core.flow.WorkingDirectory\n tasks:\n - id: cloneRepo\n type: io.kestra.plugin.git.Clone\n url: https://github.com/kestra-io/examples\n branch: main\n\n - id: python\n type: io.kestra.plugin.scripts.python.Commands\n inputFiles:\n data.csv: \"{{ trigger.objects | jq('.[].uri') | first }}\"\n description: this script reads a file `data.csv` from S3 trigger\n containerImage: ghcr.io/kestra-io/pydata:latest\n warningOnStdErr: false\n commands:\n - python examples/scripts/clean_messy_dataset.py\n outputFiles:\n - \"*.csv\"\n - \"*.parquet\"\n\ntriggers:\n - id: waitForS3object\n type: io.kestra.plugin.aws.s3.Trigger\n bucket: declarative-orchestration\n maxKeys: 1\n interval: PT1S\n filter: FILES\n action: MOVE\n prefix: raw/\n moveTo:\n key: archive/raw/\n accessKeyId: \"{{ secret('AWS_ACCESS_KEY_ID') }}\"\n secretKeyId: \"{{ secret('AWS_SECRET_ACCESS_KEY') }}\"\n region: \"{{ secret('AWS_DEFAULT_REGION') }}\"\n\n```\n\n\u003E Execute a Python script from Git using a private Docker container image\n```yaml\nid: pythonInContainer\nnamespace: company.team\n\ntasks:\n - id: wdir\n type: io.kestra.plugin.core.flow.WorkingDirectory\n tasks:\n - id: cloneRepository\n type: io.kestra.plugin.git.Clone\n url: https://github.com/kestra-io/examples\n branch: main\n\n - id: gitPythonScripts\n type: io.kestra.plugin.scripts.python.Commands\n warningOnStdErr: false\n commands:\n - python examples/scripts/etl_script.py\n outputFiles:\n - \"*.csv\"\n - \"*.parquet\"\n containerImage: annageller/kestra:latest\n taskRunner:\n type: io.kestra.plugin.scripts.runner.docker.Docker\n config: |\n {\n \"auths\": {\n \"https://index.docker.io/v1/\": {\n \"username\": \"annageller\",\n \"password\": \"{{ secret('DOCKER_PAT') }}\"\n }\n }\n }\n```\n\n\u003E Create a python script and execute it in a virtual environment\n```yaml\nid: script_in_venv\nnamespace: company.team\ntasks:\n - id: bash\n type: io.kestra.plugin.scripts.python.Commands\n inputFiles:\n main.py: |\n import requests\n from kestra import Kestra\n\n response = requests.get('https://google.com')\n print(response.status_code)\n Kestra.outputs({'status': response.status_code, 'text': response.text})\n beforeCommands:\n - python -m venv venv\n - . venv/bin/activate\n - pip install requests kestra \u003E /dev/null\n commands:\n - python main.py\n\n```" + }, + "io.kestra.plugin.scripts.python.Script": { + "type": "object", + "properties": { + "allowFailure": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "beforeCommands": { + "$dynamic": true, + "title": "A list of commands that will run before the `commands`, allowing to set up the environment e.g. `pip install -r requirements.txt`.", + "type": "array", + "items": { + "$dynamic": true, + "type": "string" + } + }, + "containerImage": { + "$dynamic": true, + "type": "string", + "title": "The task runner container image, only used if the task runner is container-based.", + "default": "ghcr.io/kestra-io/kestrapy:latest", + "markdownDescription": "Default value is : `ghcr.io/kestra-io/kestrapy:latest`" + }, + "description": { + "type": "string" + }, + "disabled": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "docker": { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.scripts.exec.scripts.models.DockerOptions" + }, + { + "$deprecated": true, + "title": "Deprecated - use the 'taskRunner' property instead.", + "markdownDescription": "Only used if the `taskRunner` property is not set" + } + ] + }, + "env": { + "$dynamic": true, + "type": "object", + "title": "Additional environment variables for the current process.", + "additionalProperties": { + "type": "string" + } + }, + "failFast": { + "$dynamic": false, + "type": "boolean", + "title": "Fail the task on the first command with a non-zero status.", + "default": true, + "markdownDescription": "If set to `false` all commands will be executed one after the other. The final state of task execution is determined by the last command. Note that this property maybe be ignored if a non compatible interpreter is specified.\nYou can also disable it if your interpreter does not support the `set -e`option.\n\nDefault value is : `true`" + }, + "id": { + "type": "string", + "minLength": 1, + "pattern": "^[a-zA-Z0-9][a-zA-Z0-9_-]*" + }, + "inputFiles": { + "$dynamic": true, + "title": "The files to create on the local filesystem. It can be a map or a JSON object.", + "oneOf": [ + { + "type": "object" + }, + { + "type": "string" + } + ] + }, + "interpreter": { + "$dynamic": false, + "title": "Which interpreter to use.", + "default": ["/bin/sh", "-c"], + "minItems": 1, + "markdownDescription": "Default value is : `- /bin/sh\n- -c`\n\nDefault value is : `- /bin/sh\n- -c`", + "type": "array", + "items": { + "$dynamic": false, + "type": "string" + } + }, + "logLevel": { + "type": "string", + "enum": ["ERROR", "WARN", "INFO", "DEBUG", "TRACE"] + }, + "namespaceFiles": { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.core.models.tasks.NamespaceFiles" + }, + { + "$dynamic": false, + "title": "Inject namespace files.", + "markdownDescription": "Inject namespace files to this task. When enabled, it will, by default, load all namespace files into the working directory. However, you can use the `include` or `exclude` properties to limit which namespace files will be injected." + } + ] + }, + "outputDirectory": { + "$deprecated": true, + "type": "boolean", + "title": "Whether to setup the output directory mechanism.", + "default": "false", + "markdownDescription": "Required to use the {{ outputDir }} expression. Note that it could increase the starting time. Deprecated, use the `outputFiles` property instead.\n\nDefault value is : `\"false\"`" + }, + "outputFiles": { + "$dynamic": true, + "title": "The files from the local filesystem to send to Kestra's internal storage.", + "markdownDescription": "Must be a list of [glob](https://en.wikipedia.org/wiki/Glob_(programming)) expressions relative to the current working directory, some examples: `my-dir/**`, `my-dir/*/**` or `my-dir/my-file.txt`.", + "type": "array", + "items": { + "$dynamic": true, + "type": "string" + } + }, + "retry": { + "oneOf": [ + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Constant-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Exponential-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Random-2" + } + ] + }, + "runner": { + "$deprecated": true, + "$dynamic": false, + "type": "string", + "enum": ["PROCESS", "DOCKER"], + "title": "Deprecated - use the 'taskRunner' property instead.", + "markdownDescription": "Only used if the `taskRunner` property is not set" + }, + "script": { + "$dynamic": true, + "type": "string", + "title": "The inline script content. This property is intended for the script file's content as a (multiline) string, not a path to a file. To run a command from a file such as `bash myscript.sh` or `python myscript.py`, use the `Commands` task instead.", + "minLength": 1 + }, + "targetOS": { + "type": "string", + "enum": ["LINUX", "WINDOWS", "AUTO"], + "title": "The target operating system where the script will run.", + "default": "AUTO", + "markdownDescription": "Default value is : `AUTO`" + }, + "taskRunner": { + "oneOf": [ + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.scripts.runner.docker.Docker" + }, + { + "$dynamic": false, + "title": "The task runner to use.", + "markdownDescription": "Task runners are provided by plugins, each have their own properties." + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.runner.Process" + }, + { + "$dynamic": false, + "title": "The task runner to use.", + "markdownDescription": "Task runners are provided by plugins, each have their own properties." + } + ] + } + ] + }, + "timeout": { + "type": "string", + "format": "duration" + }, + "type": { + "const": "io.kestra.plugin.scripts.python.Script" + }, + "warningOnStdErr": { + "$dynamic": false, + "type": "boolean", + "title": "Whether to set the task state to `WARNING` if any `stdErr` is emitted.", + "default": true, + "markdownDescription": "Default value is : `true`" + }, + "workerGroup": { + "$ref": "#/definitions/io.kestra.core.models.tasks.WorkerGroup" + } + }, + "required": ["id", "script", "type"], + "title": "Execute a Python script.", + "markdownDescription": "##### Examples\n\u003E Execute a Python script.\n```yaml\nscript: |\n from kestra import Kestra\n import requests\n\n response = requests.get('https://google.com')\n print(response.status_code)\n\n Kestra.outputs({'status': response.status_code, 'text': response.text})\nbeforeCommands:\n - pip install requests kestra\n```\n\n\u003E Execute a Python script with an input file from Kestra's local storage created by a previous task.\n```yaml\nscript: |\n with open('{{ outputs.previousTaskId.uri }}', 'r') as f:\n print(f.read())\n```\n\n\u003E Execute a Python script that outputs a file.\n```yaml\nscript: |\n f = open(\"{{outputDir}}/myfile.txt\", \"a\")\n f.write(\"Hello from a Kestra task!\")\n f.close()\n```\n\n\u003E If you want to generate files in your script to make them available for download and use in downstream tasks, you can leverage the `{{outputDir}}` expression. Files stored in that directory will be persisted in Kestra's internal storage. The first task in this example creates a file `'myfile.txt'` and the next task can access it by leveraging the syntax `{{outputs.yourTaskId.outputFiles['yourFileName.fileExtension']}}`.\n\n```yaml\nid: outputsPython\nnamespace: company.team\ntasks:\n - id: cleanDataset\n type: io.kestra.plugin.scripts.python.Script\n containerImage: ghcr.io/kestra-io/pydata:latest\n script: |\n import pandas as pd\n df = pd.read_csv(\"https://huggingface.co/datasets/kestra/datasets/raw/main/csv/messy_dataset.csv\")\n\n # Replace non-numeric age values with NaN\n df[\"Age\"] = pd.to_numeric(df[\"Age\"], errors=\"coerce\")\n\n # mean imputation: fill NaN values with the mean age\n mean_age = int(df[\"Age\"].mean())\n print(f\"Filling NULL values with mean: {mean_age}\")\n df[\"Age\"] = df[\"Age\"].fillna(mean_age)\n df.to_csv(\"{{outputDir}}/clean_dataset.csv\", index=False)\n\n - id: readFileFromPython\n type: io.kestra.plugin.scripts.shell.Commands\n taskRunner:\n type: io.kestra.plugin.core.runner.Process\n commands:\n - head -n 10 {{outputs.cleanDataset.outputFiles['clean_dataset.csv']}}\n\n```" + }, + "io.kestra.plugin.scripts.r.Commands": { + "type": "object", + "properties": { + "allowFailure": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "beforeCommands": { + "$dynamic": true, + "title": "A list of commands that will run before the `commands`, allowing to set up the environment e.g. `pip install -r requirements.txt`.", + "type": "array", + "items": { + "$dynamic": true, + "type": "string" + } + }, + "commands": { + "$dynamic": true, + "title": "The commands to run", + "minItems": 1, + "type": "array", + "items": { + "$dynamic": true, + "type": "string" + } + }, + "containerImage": { + "$dynamic": true, + "type": "string", + "title": "The task runner container image, only used if the task runner is container-based.", + "default": "r-base", + "markdownDescription": "Default value is : `r-base`" + }, + "description": { + "type": "string" + }, + "disabled": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "docker": { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.scripts.exec.scripts.models.DockerOptions" + }, + { + "$deprecated": true, + "title": "Deprecated - use the 'taskRunner' property instead.", + "markdownDescription": "Only used if the `taskRunner` property is not set" + } + ] + }, + "env": { + "$dynamic": true, + "type": "object", + "title": "Additional environment variables for the current process.", + "additionalProperties": { + "type": "string" + } + }, + "failFast": { + "$dynamic": false, + "type": "boolean", + "title": "Fail the task on the first command with a non-zero status.", + "default": true, + "markdownDescription": "If set to `false` all commands will be executed one after the other. The final state of task execution is determined by the last command. Note that this property maybe be ignored if a non compatible interpreter is specified.\nYou can also disable it if your interpreter does not support the `set -e`option.\n\nDefault value is : `true`" + }, + "id": { + "type": "string", + "minLength": 1, + "pattern": "^[a-zA-Z0-9][a-zA-Z0-9_-]*" + }, + "inputFiles": { + "$dynamic": true, + "title": "The files to create on the local filesystem. It can be a map or a JSON object.", + "oneOf": [ + { + "type": "object" + }, + { + "type": "string" + } + ] + }, + "interpreter": { + "$dynamic": false, + "title": "Which interpreter to use.", + "default": ["/bin/sh", "-c"], + "minItems": 1, + "markdownDescription": "Default value is : `- /bin/sh\n- -c`\n\nDefault value is : `- /bin/sh\n- -c`", + "type": "array", + "items": { + "$dynamic": false, + "type": "string" + } + }, + "logLevel": { + "type": "string", + "enum": ["ERROR", "WARN", "INFO", "DEBUG", "TRACE"] + }, + "namespaceFiles": { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.core.models.tasks.NamespaceFiles" + }, + { + "$dynamic": false, + "title": "Inject namespace files.", + "markdownDescription": "Inject namespace files to this task. When enabled, it will, by default, load all namespace files into the working directory. However, you can use the `include` or `exclude` properties to limit which namespace files will be injected." + } + ] + }, + "outputDirectory": { + "$deprecated": true, + "type": "boolean", + "title": "Whether to setup the output directory mechanism.", + "default": "false", + "markdownDescription": "Required to use the {{ outputDir }} expression. Note that it could increase the starting time. Deprecated, use the `outputFiles` property instead.\n\nDefault value is : `\"false\"`" + }, + "outputFiles": { + "$dynamic": true, + "title": "The files from the local filesystem to send to Kestra's internal storage.", + "markdownDescription": "Must be a list of [glob](https://en.wikipedia.org/wiki/Glob_(programming)) expressions relative to the current working directory, some examples: `my-dir/**`, `my-dir/*/**` or `my-dir/my-file.txt`.", + "type": "array", + "items": { + "$dynamic": true, + "type": "string" + } + }, + "retry": { + "oneOf": [ + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Constant-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Exponential-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Random-2" + } + ] + }, + "runner": { + "$deprecated": true, + "$dynamic": false, + "type": "string", + "enum": ["PROCESS", "DOCKER"], + "title": "Deprecated - use the 'taskRunner' property instead.", + "markdownDescription": "Only used if the `taskRunner` property is not set" + }, + "targetOS": { + "type": "string", + "enum": ["LINUX", "WINDOWS", "AUTO"], + "title": "The target operating system where the script will run.", + "default": "AUTO", + "markdownDescription": "Default value is : `AUTO`" + }, + "taskRunner": { + "oneOf": [ + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.scripts.runner.docker.Docker" + }, + { + "$dynamic": false, + "title": "The task runner to use.", + "markdownDescription": "Task runners are provided by plugins, each have their own properties." + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.runner.Process" + }, + { + "$dynamic": false, + "title": "The task runner to use.", + "markdownDescription": "Task runners are provided by plugins, each have their own properties." + } + ] + } + ] + }, + "timeout": { + "type": "string", + "format": "duration" + }, + "type": { + "const": "io.kestra.plugin.scripts.r.Commands" + }, + "warningOnStdErr": { + "$dynamic": false, + "type": "boolean", + "title": "Whether to set the task state to `WARNING` if any `stdErr` is emitted.", + "default": true, + "markdownDescription": "Default value is : `true`" + }, + "workerGroup": { + "$ref": "#/definitions/io.kestra.core.models.tasks.WorkerGroup" + } + }, + "required": ["commands", "id", "type"], + "title": "Execute R scripts from the Command Line Interface.", + "markdownDescription": "##### Examples\n\u003E Create an R script, install required packages and execute it. Note that instead of defining the script inline, you could create the script as a dedicated R script in the embedded VS Code editor and point to its location by path. If you do so, make sure to enable namespace files by setting the `enabled` flag of the `namespaceFiles` property to `true`.\n```yaml\nid: script\nnamespace: company.team\ntasks:\n - id: bash\n type: io.kestra.plugin.scripts.r.Commands\n inputFiles:\n main.R: |\n library(lubridate)\n ymd(\"20100604\");\n mdy(\"06-04-2011\");\n dmy(\"04/06/2012\")\n beforeCommands:\n - Rscript -e 'install.packages(\"lubridate\")'\n commands:\n - Rscript main.R\n\n```" + }, + "io.kestra.plugin.scripts.r.Script": { + "type": "object", + "properties": { + "allowFailure": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "beforeCommands": { + "$dynamic": true, + "title": "A list of commands that will run before the `commands`, allowing to set up the environment e.g. `pip install -r requirements.txt`.", + "type": "array", + "items": { + "$dynamic": true, + "type": "string" + } + }, + "containerImage": { + "$dynamic": true, + "type": "string", + "title": "The task runner container image, only used if the task runner is container-based.", + "default": "r-base", + "markdownDescription": "Default value is : `r-base`" + }, + "description": { + "type": "string" + }, + "disabled": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "docker": { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.scripts.exec.scripts.models.DockerOptions" + }, + { + "$deprecated": true, + "title": "Deprecated - use the 'taskRunner' property instead.", + "markdownDescription": "Only used if the `taskRunner` property is not set" + } + ] + }, + "env": { + "$dynamic": true, + "type": "object", + "title": "Additional environment variables for the current process.", + "additionalProperties": { + "type": "string" + } + }, + "failFast": { + "$dynamic": false, + "type": "boolean", + "title": "Fail the task on the first command with a non-zero status.", + "default": true, + "markdownDescription": "If set to `false` all commands will be executed one after the other. The final state of task execution is determined by the last command. Note that this property maybe be ignored if a non compatible interpreter is specified.\nYou can also disable it if your interpreter does not support the `set -e`option.\n\nDefault value is : `true`" + }, + "id": { + "type": "string", + "minLength": 1, + "pattern": "^[a-zA-Z0-9][a-zA-Z0-9_-]*" + }, + "inputFiles": { + "$dynamic": true, + "title": "The files to create on the local filesystem. It can be a map or a JSON object.", + "oneOf": [ + { + "type": "object" + }, + { + "type": "string" + } + ] + }, + "interpreter": { + "$dynamic": false, + "title": "Which interpreter to use.", + "default": ["/bin/sh", "-c"], + "minItems": 1, + "markdownDescription": "Default value is : `- /bin/sh\n- -c`\n\nDefault value is : `- /bin/sh\n- -c`", + "type": "array", + "items": { + "$dynamic": false, + "type": "string" + } + }, + "logLevel": { + "type": "string", + "enum": ["ERROR", "WARN", "INFO", "DEBUG", "TRACE"] + }, + "namespaceFiles": { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.core.models.tasks.NamespaceFiles" + }, + { + "$dynamic": false, + "title": "Inject namespace files.", + "markdownDescription": "Inject namespace files to this task. When enabled, it will, by default, load all namespace files into the working directory. However, you can use the `include` or `exclude` properties to limit which namespace files will be injected." + } + ] + }, + "outputDirectory": { + "$deprecated": true, + "type": "boolean", + "title": "Whether to setup the output directory mechanism.", + "default": "false", + "markdownDescription": "Required to use the {{ outputDir }} expression. Note that it could increase the starting time. Deprecated, use the `outputFiles` property instead.\n\nDefault value is : `\"false\"`" + }, + "outputFiles": { + "$dynamic": true, + "title": "The files from the local filesystem to send to Kestra's internal storage.", + "markdownDescription": "Must be a list of [glob](https://en.wikipedia.org/wiki/Glob_(programming)) expressions relative to the current working directory, some examples: `my-dir/**`, `my-dir/*/**` or `my-dir/my-file.txt`.", + "type": "array", + "items": { + "$dynamic": true, + "type": "string" + } + }, + "retry": { + "oneOf": [ + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Constant-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Exponential-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Random-2" + } + ] + }, + "runner": { + "$deprecated": true, + "$dynamic": false, + "type": "string", + "enum": ["PROCESS", "DOCKER"], + "title": "Deprecated - use the 'taskRunner' property instead.", + "markdownDescription": "Only used if the `taskRunner` property is not set" + }, + "script": { + "$dynamic": true, + "type": "string", + "title": "The inline script content. This property is intended for the script file's content as a (multiline) string, not a path to a file. To run a command from a file such as `Rscript main.R` or `python main.py`, use the corresponding `Commands` task for a given language instead.", + "minLength": 1 + }, + "targetOS": { + "type": "string", + "enum": ["LINUX", "WINDOWS", "AUTO"], + "title": "The target operating system where the script will run.", + "default": "AUTO", + "markdownDescription": "Default value is : `AUTO`" + }, + "taskRunner": { + "oneOf": [ + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.scripts.runner.docker.Docker" + }, + { + "$dynamic": false, + "title": "The task runner to use.", + "markdownDescription": "Task runners are provided by plugins, each have their own properties." + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.runner.Process" + }, + { + "$dynamic": false, + "title": "The task runner to use.", + "markdownDescription": "Task runners are provided by plugins, each have their own properties." + } + ] + } + ] + }, + "timeout": { + "type": "string", + "format": "duration" + }, + "type": { + "const": "io.kestra.plugin.scripts.r.Script" + }, + "warningOnStdErr": { + "$dynamic": false, + "type": "boolean", + "title": "Whether to set the task state to `WARNING` if any `stdErr` is emitted.", + "default": true, + "markdownDescription": "Default value is : `true`" + }, + "workerGroup": { + "$ref": "#/definitions/io.kestra.core.models.tasks.WorkerGroup" + } + }, + "required": ["id", "script", "type"], + "title": "Execute an R script.", + "markdownDescription": "##### Examples\n\u003E Install a package and execute an R script\n```yaml\nscript: |\n library(lubridate)\n ymd(\"20100604\");\n mdy(\"06-04-2011\");\n dmy(\"04/06/2012\")\nbeforeCommands:\n - Rscript -e 'install.packages(\"lubridate\")'\n```\n\n\u003E Add an R script in the embedded VS Code editor, install required packages and execute it.\n\nHere is an example R script that you can add in the embedded VS Code editor. You can name the script file `main.R`:\n\n```r\nlibrary(dplyr)\nlibrary(arrow)\n\ndata(mtcars) # load mtcars data\nprint(head(mtcars))\n\nfinal \u003C- mtcars %\u003E%\n summarise(\n avg_mpg = mean(mpg),\n avg_disp = mean(disp),\n avg_hp = mean(hp),\n avg_drat = mean(drat),\n avg_wt = mean(wt),\n avg_qsec = mean(qsec),\n avg_vs = mean(vs),\n avg_am = mean(am),\n avg_gear = mean(gear),\n avg_carb = mean(carb)\n )\nfinal %\u003E% print()\nwrite.csv(final, \"final.csv\")\n\nmtcars_clean \u003C- na.omit(mtcars) # this line removes rows with NA values\nwrite_parquet(mtcars_clean, \"mtcars_clean.parquet\")\n```\n\nNote that tasks in Kestra are stateless. Therefore, the files generated by a task, such as the CSV and Parquet files in the example above, are not persisted in Kestra's internal storage, unless you explicitly tell Kestra to do so. Make sure to add the `outputFiles` property to your task as shown below to persist the generated Parquet file (or any other file) in Kestra's internal storage and make them visible in the **Outputs** tab.\n\nTo access this output in downstream tasks, use the syntax `{{outputs.yourTaskId.outputFiles['yourFileName.fileExtension']}}`. Alternatively, you can wrap your tasks that need to pass data between each other in a `WorkingDirectory` task — this way, those tasks will share the same working directory and will be able to access the same files.\n\nNote how we use the `read` function to read the content of the R script stored as a [Namespace File](https://kestra.io/docs/developer-guide/namespace-files).\n\nFinally, note that the `docker` property is optional. If you don't specify it, Kestra will use the default R image. If you want to use a different image, you can specify it in the `docker` property as shown below.\n\n```yaml\nid: rCars\nnamespace: company.team\ntasks:\n - id: r\n type: io.kestra.plugin.scripts.r.Script\n warningOnStdErr: false\n containerImage: ghcr.io/kestra-io/rdata:latest\n script: \"{{ read('main.R') }}\"\n outputFiles:\n - \"*.csv\"\n - \"*.parquet\"\n\n```" + }, + "io.kestra.plugin.scripts.ruby.Commands": { + "type": "object", + "properties": { + "allowFailure": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "beforeCommands": { + "$dynamic": true, + "title": "A list of commands that will run before the `commands`, allowing to set up the environment e.g. `pip install -r requirements.txt`.", + "type": "array", + "items": { + "$dynamic": true, + "type": "string" + } + }, + "commands": { + "$dynamic": true, + "title": "The commands to run", + "minItems": 1, + "type": "array", + "items": { + "$dynamic": true, + "type": "string" + } + }, + "containerImage": { + "$dynamic": true, + "type": "string", + "title": "The task runner container image, only used if the task runner is container-based.", + "default": "ruby", + "markdownDescription": "Default value is : `ruby`" + }, + "description": { + "type": "string" + }, + "disabled": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "docker": { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.scripts.exec.scripts.models.DockerOptions" + }, + { + "$deprecated": true, + "title": "Deprecated - use the 'taskRunner' property instead.", + "markdownDescription": "Only used if the `taskRunner` property is not set" + } + ] + }, + "env": { + "$dynamic": true, + "type": "object", + "title": "Additional environment variables for the current process.", + "additionalProperties": { + "type": "string" + } + }, + "failFast": { + "$dynamic": false, + "type": "boolean", + "title": "Fail the task on the first command with a non-zero status.", + "default": true, + "markdownDescription": "If set to `false` all commands will be executed one after the other. The final state of task execution is determined by the last command. Note that this property maybe be ignored if a non compatible interpreter is specified.\nYou can also disable it if your interpreter does not support the `set -e`option.\n\nDefault value is : `true`" + }, + "id": { + "type": "string", + "minLength": 1, + "pattern": "^[a-zA-Z0-9][a-zA-Z0-9_-]*" + }, + "inputFiles": { + "$dynamic": true, + "title": "The files to create on the local filesystem. It can be a map or a JSON object.", + "oneOf": [ + { + "type": "object" + }, + { + "type": "string" + } + ] + }, + "interpreter": { + "$dynamic": false, + "title": "Which interpreter to use.", + "default": ["/bin/sh", "-c"], + "minItems": 1, + "markdownDescription": "Default value is : `- /bin/sh\n- -c`\n\nDefault value is : `- /bin/sh\n- -c`", + "type": "array", + "items": { + "$dynamic": false, + "type": "string" + } + }, + "logLevel": { + "type": "string", + "enum": ["ERROR", "WARN", "INFO", "DEBUG", "TRACE"] + }, + "namespaceFiles": { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.core.models.tasks.NamespaceFiles" + }, + { + "$dynamic": false, + "title": "Inject namespace files.", + "markdownDescription": "Inject namespace files to this task. When enabled, it will, by default, load all namespace files into the working directory. However, you can use the `include` or `exclude` properties to limit which namespace files will be injected." + } + ] + }, + "outputDirectory": { + "$deprecated": true, + "type": "boolean", + "title": "Whether to setup the output directory mechanism.", + "default": "false", + "markdownDescription": "Required to use the {{ outputDir }} expression. Note that it could increase the starting time. Deprecated, use the `outputFiles` property instead.\n\nDefault value is : `\"false\"`" + }, + "outputFiles": { + "$dynamic": true, + "title": "The files from the local filesystem to send to Kestra's internal storage.", + "markdownDescription": "Must be a list of [glob](https://en.wikipedia.org/wiki/Glob_(programming)) expressions relative to the current working directory, some examples: `my-dir/**`, `my-dir/*/**` or `my-dir/my-file.txt`.", + "type": "array", + "items": { + "$dynamic": true, + "type": "string" + } + }, + "retry": { + "oneOf": [ + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Constant-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Exponential-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Random-2" + } + ] + }, + "runner": { + "$deprecated": true, + "$dynamic": false, + "type": "string", + "enum": ["PROCESS", "DOCKER"], + "title": "Deprecated - use the 'taskRunner' property instead.", + "markdownDescription": "Only used if the `taskRunner` property is not set" + }, + "targetOS": { + "type": "string", + "enum": ["LINUX", "WINDOWS", "AUTO"], + "title": "The target operating system where the script will run.", + "default": "AUTO", + "markdownDescription": "Default value is : `AUTO`" + }, + "taskRunner": { + "oneOf": [ + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.scripts.runner.docker.Docker" + }, + { + "$dynamic": false, + "title": "The task runner to use.", + "markdownDescription": "Task runners are provided by plugins, each have their own properties." + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.runner.Process" + }, + { + "$dynamic": false, + "title": "The task runner to use.", + "markdownDescription": "Task runners are provided by plugins, each have their own properties." + } + ] + } + ] + }, + "timeout": { + "type": "string", + "format": "duration" + }, + "type": { + "const": "io.kestra.plugin.scripts.ruby.Commands" + }, + "warningOnStdErr": { + "$dynamic": false, + "type": "boolean", + "title": "Whether to set the task state to `WARNING` if any `stdErr` is emitted.", + "default": true, + "markdownDescription": "Default value is : `true`" + }, + "workerGroup": { + "$ref": "#/definitions/io.kestra.core.models.tasks.WorkerGroup" + } + }, + "required": ["commands", "id", "type"], + "title": "Execute a Ruby script from the Command Line Interface.", + "markdownDescription": "##### Examples\n\u003E Create a Ruby script and execute it. The easiest way to create a Ruby script is to use the embedded VS Code editor. Create a file named `main.rb` and paste the following code:\n\n```ruby\nrequire 'csv'\nrequire 'json'\n\nfile = File.read('data.json')\ndata_hash = JSON.parse(file)\n\n# Extract headers\nheaders = data_hash.first.keys\n\n# Convert hashes to arrays\ndata = data_hash.map(&:values)\n\n# Prepend headers to data\ndata.unshift(headers)\n\n# Create and write data to CSV file\nCSV.open('output.csv', 'wb') do |csv|\ndata.each { |row| csv \u003C\u003C row }\nend\n```\n\nIn order to read that script from the [Namespace File](https://kestra.io/docs/developer-guide/namespace-files) called `main.rb`, you need to enable the `namespaceFiles` property.\n\nAlso, note how we use the `inputFiles` option to read additional files into the script's working directory. In this case, we read the `data.json` file, which contains the data that we want to convert to CSV.\n\nFinally, we use the `outputFiles` option to specify that we want to output the `output.csv` file that is generated by the script. This allows us to access the file in the UI's Output tab and download it, or pass it to other tasks.\n\n```yaml\nid: generate_csv\nnamespace: company.team\ntasks:\n - id: bash\n type: io.kestra.plugin.scripts.ruby.Commands\n namespaceFiles:\n enabled: true\n inputFiles:\n data.json: |\n [\n {\"Name\": \"Alice\", \"Age\": 30, \"City\": \"New York\"},\n {\"Name\": \"Bob\", \"Age\": 22, \"City\": \"Los Angeles\"},\n {\"Name\": \"Charlie\", \"Age\": 35, \"City\": \"Chicago\"}\n ]\n beforeCommands:\n - ruby -v\n commands:\n - ruby main.rb\n outputFiles:\n - \"*.csv\"\n\n```" + }, + "io.kestra.plugin.scripts.ruby.Script": { + "type": "object", + "properties": { + "allowFailure": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "beforeCommands": { + "$dynamic": true, + "title": "A list of commands that will run before the `commands`, allowing to set up the environment e.g. `pip install -r requirements.txt`.", + "type": "array", + "items": { + "$dynamic": true, + "type": "string" + } + }, + "containerImage": { + "$dynamic": true, + "type": "string", + "title": "The task runner container image, only used if the task runner is container-based.", + "default": "ruby", + "markdownDescription": "Default value is : `ruby`" + }, + "description": { + "type": "string" + }, + "disabled": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "docker": { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.scripts.exec.scripts.models.DockerOptions" + }, + { + "$deprecated": true, + "title": "Deprecated - use the 'taskRunner' property instead.", + "markdownDescription": "Only used if the `taskRunner` property is not set" + } + ] + }, + "env": { + "$dynamic": true, + "type": "object", + "title": "Additional environment variables for the current process.", + "additionalProperties": { + "type": "string" + } + }, + "failFast": { + "$dynamic": false, + "type": "boolean", + "title": "Fail the task on the first command with a non-zero status.", + "default": true, + "markdownDescription": "If set to `false` all commands will be executed one after the other. The final state of task execution is determined by the last command. Note that this property maybe be ignored if a non compatible interpreter is specified.\nYou can also disable it if your interpreter does not support the `set -e`option.\n\nDefault value is : `true`" + }, + "id": { + "type": "string", + "minLength": 1, + "pattern": "^[a-zA-Z0-9][a-zA-Z0-9_-]*" + }, + "inputFiles": { + "$dynamic": true, + "title": "The files to create on the local filesystem. It can be a map or a JSON object.", + "oneOf": [ + { + "type": "object" + }, + { + "type": "string" + } + ] + }, + "interpreter": { + "$dynamic": false, + "title": "Which interpreter to use.", + "default": ["/bin/sh", "-c"], + "minItems": 1, + "markdownDescription": "Default value is : `- /bin/sh\n- -c`\n\nDefault value is : `- /bin/sh\n- -c`", + "type": "array", + "items": { + "$dynamic": false, + "type": "string" + } + }, + "logLevel": { + "type": "string", + "enum": ["ERROR", "WARN", "INFO", "DEBUG", "TRACE"] + }, + "namespaceFiles": { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.core.models.tasks.NamespaceFiles" + }, + { + "$dynamic": false, + "title": "Inject namespace files.", + "markdownDescription": "Inject namespace files to this task. When enabled, it will, by default, load all namespace files into the working directory. However, you can use the `include` or `exclude` properties to limit which namespace files will be injected." + } + ] + }, + "outputDirectory": { + "$deprecated": true, + "type": "boolean", + "title": "Whether to setup the output directory mechanism.", + "default": "false", + "markdownDescription": "Required to use the {{ outputDir }} expression. Note that it could increase the starting time. Deprecated, use the `outputFiles` property instead.\n\nDefault value is : `\"false\"`" + }, + "outputFiles": { + "$dynamic": true, + "title": "The files from the local filesystem to send to Kestra's internal storage.", + "markdownDescription": "Must be a list of [glob](https://en.wikipedia.org/wiki/Glob_(programming)) expressions relative to the current working directory, some examples: `my-dir/**`, `my-dir/*/**` or `my-dir/my-file.txt`.", + "type": "array", + "items": { + "$dynamic": true, + "type": "string" + } + }, + "retry": { + "oneOf": [ + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Constant-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Exponential-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Random-2" + } + ] + }, + "runner": { + "$deprecated": true, + "$dynamic": false, + "type": "string", + "enum": ["PROCESS", "DOCKER"], + "title": "Deprecated - use the 'taskRunner' property instead.", + "markdownDescription": "Only used if the `taskRunner` property is not set" + }, + "script": { + "$dynamic": true, + "type": "string", + "title": "The inline script content. This property is intended for the script file's content as a (multiline) string, not a path to a file. To run a command from a file such as `bash myscript.sh` or `python myscript.py`, use the `Commands` task instead.", + "minLength": 1 + }, + "targetOS": { + "type": "string", + "enum": ["LINUX", "WINDOWS", "AUTO"], + "title": "The target operating system where the script will run.", + "default": "AUTO", + "markdownDescription": "Default value is : `AUTO`" + }, + "taskRunner": { + "oneOf": [ + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.scripts.runner.docker.Docker" + }, + { + "$dynamic": false, + "title": "The task runner to use.", + "markdownDescription": "Task runners are provided by plugins, each have their own properties." + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.runner.Process" + }, + { + "$dynamic": false, + "title": "The task runner to use.", + "markdownDescription": "Task runners are provided by plugins, each have their own properties." + } + ] + } + ] + }, + "timeout": { + "type": "string", + "format": "duration" + }, + "type": { + "const": "io.kestra.plugin.scripts.ruby.Script" + }, + "warningOnStdErr": { + "$dynamic": false, + "type": "boolean", + "title": "Whether to set the task state to `WARNING` if any `stdErr` is emitted.", + "default": true, + "markdownDescription": "Default value is : `true`" + }, + "workerGroup": { + "$ref": "#/definitions/io.kestra.core.models.tasks.WorkerGroup" + } + }, + "required": ["id", "script", "type"], + "title": "Execute a Ruby script.", + "markdownDescription": "##### Examples\n\u003E Create a Ruby script and execute it. The easiest way to create a Ruby script is to use the embedded VS Code editor. Create a file named `main.rb` and paste the following code:\n\n```ruby\nrequire 'csv'\nrequire 'json'\n\nfile = File.read('data.json')\ndata_hash = JSON.parse(file)\n\n# Extract headers\nheaders = data_hash.first.keys\n\n# Convert hashes to arrays\ndata = data_hash.map(&:values)\n\n# Prepend headers to data\ndata.unshift(headers)\n\n# Create and write data to CSV file\nCSV.open('output.csv', 'wb') do |csv|\ndata.each { |row| csv \u003C\u003C row }\nend\n```\n\nIn order to read that script from the [Namespace File](https://kestra.io/docs/developer-guide/namespace-files) called `main.rb`, you can leverage the `{{ read('main.rb') }}` function.\n\nAlso, note how we use the `inputFiles` option to read additional files into the script's working directory. In this case, we read the `data.json` file, which contains the data that we want to convert to CSV.\n\nFinally, we use the `outputFiles` option to specify that we want to output the `output.csv` file that is generated by the script. This allows us to access the file in the UI's Output tab and download it, or pass it to other tasks.\n\n```yaml\nid: generate_csv\nnamespace: company.team\ntasks:\n - id: bash\n type: io.kestra.plugin.scripts.ruby.Script\n inputFiles:\n data.json: |\n [\n {\"Name\": \"Alice\", \"Age\": 30, \"City\": \"New York\"},\n {\"Name\": \"Bob\", \"Age\": 22, \"City\": \"Los Angeles\"},\n {\"Name\": \"Charlie\", \"Age\": 35, \"City\": \"Chicago\"}\n ]\n beforeCommands:\n - ruby -v\n script: \"{{ read('main.rb') }}\"\n outputFiles:\n - \"*.csv\"\n\n```" + }, + "io.kestra.plugin.scripts.runner.docker.Cpu": { + "type": "object", + "properties": { + "cpus": { + "$dynamic": false, + "type": "integer", + "title": "The maximum amount of CPU resources a container can use.", + "markdownDescription": "Make sure to set that to a numeric value e.g. `cpus: \"1.5\"` or `cpus: \"4\"` or For instance, if the host machine has two CPUs and you set `cpus: \"1.5\"`, the container is guaranteed **at most** one and a half of the CPUs." + } + } + }, + "io.kestra.plugin.scripts.runner.docker.Credentials": { + "type": "object", + "properties": { + "auth": { + "$dynamic": true, + "type": "string", + "title": "The registry authentication.", + "markdownDescription": "The `auth` field is a base64-encoded authentication string of `username:password` or a token." + }, + "identityToken": { + "$dynamic": true, + "type": "string", + "title": "The identity token." + }, + "password": { + "$dynamic": true, + "type": "string", + "title": "The registry password." + }, + "registry": { + "$dynamic": true, + "type": "string", + "title": "The registry URL.", + "markdownDescription": "If not defined, the registry will be extracted from the image name." + }, + "registryToken": { + "$dynamic": true, + "type": "string", + "title": "The registry token." + }, + "username": { + "$dynamic": true, + "type": "string", + "title": "The registry username." + } + }, + "title": "Credentials for a private container registry." + }, + "io.kestra.plugin.scripts.runner.docker.DeviceRequest": { + "type": "object", + "properties": { + "capabilities": { + "$dynamic": false, + "title": "A list of capabilities; an OR list of AND lists of capabilities.", + "type": "array", + "items": { + "$dynamic": false, + "type": "array", + "items": { + "type": "string" + } + } + }, + "count": { + "$dynamic": false, + "type": "integer" + }, + "deviceIds": { + "$dynamic": true, + "type": "array", + "items": { + "$dynamic": true, + "type": "string" + } + }, + "driver": { + "$dynamic": true, + "type": "string" + }, + "options": { + "$dynamic": false, + "type": "object", + "title": "Driver-specific options, specified as key/value pairs.", + "markdownDescription": "These options are passed directly to the driver." + } + }, + "title": "A request for devices to be sent to device drivers." + }, + "io.kestra.plugin.scripts.runner.docker.Docker": { + "type": "object", + "properties": { + "config": { + "$dynamic": true, + "title": "Docker configuration file.", + "markdownDescription": "Docker configuration file that can set access credentials to private container registries. Usually located in `~/.docker/config.json`.", + "oneOf": [ + { + "type": "string" + }, + { + "type": "object" + } + ] + }, + "cpu": { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.scripts.runner.docker.Cpu" + }, + { + "$dynamic": false, + "title": "Limits the CPU usage to a given maximum threshold value.", + "markdownDescription": "By default, each container’s access to the host machine’s CPU cycles is unlimited. You can set various constraints to limit a given container’s access to the host machine’s CPU cycles." + } + ] + }, + "credentials": { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.scripts.runner.docker.Credentials" + }, + { + "$dynamic": true, + "title": "Credentials for a private container registry." + } + ] + }, + "delete": { + "$dynamic": false, + "type": "boolean", + "title": "Whether the container should be deleted upon completion.", + "default": true, + "markdownDescription": "Default value is : `true`" + }, + "deviceRequests": { + "$dynamic": false, + "title": "A list of device requests to be sent to device drivers.", + "type": "array", + "items": { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.scripts.runner.docker.DeviceRequest" + }, + { + "$dynamic": false + } + ] + } + }, + "entryPoint": { + "$dynamic": true, + "title": "Docker entrypoint to use.", + "default": [""], + "markdownDescription": "Default value is : `- \"\"`\n\nDefault value is : `- \"\"`", + "type": "array", + "items": { + "$dynamic": true, + "type": "string" + } + }, + "extraHosts": { + "$dynamic": true, + "title": "Extra hostname mappings to the container network interface configuration.", + "type": "array", + "items": { + "$dynamic": true, + "type": "string" + } + }, + "fileHandlingStrategy": { + "$dynamic": false, + "type": "string", + "enum": ["MOUNT", "VOLUME"], + "title": "File handling strategy.", + "default": "VOLUME", + "markdownDescription": "How to handle local files (input files, output files, namespace files, ...).\nBy default, we create a volume and copy the file into the volume bind path.\nConfiguring it to `MOUNT` will mount the working directory instead.\n\nDefault value is : `VOLUME`" + }, + "host": { + "$dynamic": true, + "type": "string", + "title": "Docker API URI." + }, + "memory": { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.scripts.runner.docker.Memory" + }, + { + "$dynamic": false, + "title": "Limits memory usage to a given maximum threshold value.", + "markdownDescription": "Docker can enforce hard memory limits, which allow the container to use no more than a given amount of user or system memory, or soft limits, which allow the container to use as much memory as it needs unless certain conditions are met, such as when the kernel detects low memory or contention on the host machine. Some of these options have different effects when used alone or when more than one option is set." + } + ] + }, + "networkMode": { + "$dynamic": true, + "type": "string", + "title": "Docker network mode to use e.g. `host`, `none`, etc." + }, + "pullPolicy": { + "allOf": [ + { + "type": "string", + "enum": ["IF_NOT_PRESENT", "ALWAYS", "NEVER"], + "title": "The image pull policy for a container image and the tag of the image, which affect when Docker attempts to pull (download) the specified image." + }, + { + "$dynamic": false, + "title": "The pull policy for a container image.", + "default": "ALWAYS", + "markdownDescription": "Use the `IF_NOT_PRESENT` pull policy to avoid pulling already existing images.\nUse the `ALWAYS` pull policy to pull the latest version of an image\neven if an image with the same tag already exists.\n\nDefault value is : `ALWAYS`" + } + ] + }, + "shmSize": { + "$dynamic": true, + "type": "string", + "title": "Size of `/dev/shm` in bytes.", + "markdownDescription": "The size must be greater than 0. If omitted, the system uses 64MB." + }, + "type": { + "const": "io.kestra.plugin.scripts.runner.docker.Docker" + }, + "user": { + "$dynamic": true, + "type": "string", + "title": "User in the Docker container." + }, + "volumes": { + "$dynamic": true, + "title": "List of volumes to mount.", + "markdownDescription": "Make sure to provide a map of a local path to a container path in the format: `/home/local/path:/app/container/path`.\nVolume mounts are disabled by default for security reasons — if you are sure you want to use them,\nenable that feature in the [plugin configuration](https://kestra.io/docs/configuration-guide/plugins)\nby setting `volume-enabled` to `true`.\n\nHere is how you can add that setting to your kestra configuration:\n```yaml\nkestra:\n plugins:\n configurations:\n - type: io.kestra.plugin.scripts.runner.docker.Docker\n values:\n volume-enabled: true\n```", + "type": "array", + "items": { + "$dynamic": true, + "type": "string" + } + } + }, + "required": ["type"], + "title": "Run a task in a Docker container.", + "markdownDescription": "This task runner executes tasks in a container-based Docker-compatible engine.\nUse the `containerImage` property to configure the image for the task.\n\nTo access the task's working directory, use the `{{workingDir}}` Pebble expression\nor the `WORKING_DIR` environment variable.\nInput files and namespace files added to the task will be accessible from that directory.\n\nTo generate output files, we recommend using the `outputFiles` task's property.\nThis allows you to explicitly define which files from the task's working directory\nshould be saved as output files.\n\nAlternatively, when writing files in your task, you can leverage\nthe `{{outputDir}}` Pebble expression or the `OUTPUT_DIR` environment variable.\nAll files written to that directory will be saved as output files automatically.##### Examples\n\u003E Execute a Shell command.\n```yaml\nid: simple_shell_example\nnamespace: company.team\n\ntasks:\n - id: shell\n type: io.kestra.plugin.scripts.shell.Commands\n taskRunner:\n type: io.kestra.plugin.scripts.runner.docker.Docker\n commands:\n - echo \"Hello World\"\n```\n\n\u003E Pass input files to the task, execute a Shell command, then retrieve output files.\n```yaml\nid: shell_example_with_files\nnamespace: company.team\n\ninputs:\n - id: file\n type: FILE\n\ntasks:\n - id: shell\n type: io.kestra.plugin.scripts.shell.Commands\n inputFiles:\n data.txt: \"{{ inputs.file }}\"\n outputFiles:\n - \"*.txt\"\n containerImage: centos\n taskRunner:\n type: io.kestra.plugin.scripts.runner.docker.Docker\n commands:\n - cp {{ workingDir }}/data.txt {{ workingDir }}/out.txt\n```\n\n\u003E Run a Python script in Docker and allocate a specific amount of memory.\n```yaml\nid: allocate_memory_to_python_script\nnamespace: company.team\n\ntasks:\n - id: script\n type: io.kestra.plugin.scripts.python.Script\n taskRunner:\n type: io.kestra.plugin.scripts.runner.docker.Docker\n pullPolicy: IF_NOT_PRESENT\n cpu:\n cpus: 1\n memory: \n memory: \"512Mb\"\n containerImage: ghcr.io/kestra-io/kestrapy:latest\n script: |\n from kestra import Kestra\n \n data = dict(message=\"Hello from Kestra!\"\")\n Kestra.outputs(data)\n```" + }, + "io.kestra.plugin.scripts.runner.docker.Memory": { + "type": "object", + "properties": { + "kernelMemory": { + "$dynamic": true, + "type": "string", + "title": "The maximum amount of kernel memory the container can use.", + "markdownDescription": "The minimum allowed value is `4MB`. Because kernel memory cannot be swapped out, a container which is starved of kernel memory may block host machine resources, which can have side effects on the host machine and on other containers. See the [kernel-memory docs](https://docs.docker.com/config/containers/resource_constraints/#--kernel-memory-details) for more details." + }, + "memory": { + "$dynamic": true, + "type": "string", + "title": "The maximum amount of memory resources the container can use.", + "markdownDescription": "Make sure to use the format `number` + `unit` (regardless of the case) without any spaces.\nThe unit can be KB (kilobytes), MB (megabytes), GB (gigabytes), etc.\n\nGiven that it's case-insensitive, the following values are equivalent:\n- `\"512MB\"`\n- `\"512Mb\"`\n- `\"512mb\"`\n- `\"512000KB\"`\n- `\"0.5GB\"`\n\nIt is recommended that you allocate at least `6MB`." + }, + "memoryReservation": { + "$dynamic": true, + "type": "string", + "title": "Allows you to specify a soft limit smaller than `memory` which is activated when Docker detects contention or low memory on the host machine.", + "markdownDescription": "If you use `memoryReservation`, it must be set lower than `memory` for it to take precedence. Because it is a soft limit, it does not guarantee that the container doesn’t exceed the limit." + }, + "memorySwap": { + "$dynamic": true, + "type": "string", + "title": "The total amount of `memory` and `swap` that can be used by a container.", + "markdownDescription": "If `memory` and `memorySwap` are set to the same value, this prevents containers from using any swap. This is because `memorySwap` includes both the physical memory and swap space, while `memory` is only the amount of physical memory that can be used." + }, + "memorySwappiness": { + "$dynamic": true, + "type": "string", + "title": "A setting which controls the likelihood of the kernel to swap memory pages.", + "markdownDescription": "By default, the host kernel can swap out a percentage of anonymous pages used by a container. You can set `memorySwappiness` to a value between 0 and 100 to tune this percentage." + }, + "oomKillDisable": { + "$dynamic": false, + "type": "boolean", + "title": "By default, if an out-of-memory (OOM) error occurs, the kernel kills processes in a container.", + "markdownDescription": "To change this behavior, use the `oomKillDisable` option. Only disable the OOM killer on containers where you have also set the `memory` option. If the `memory` flag is not set, the host can run out of memory, and the kernel may need to kill the host system’s processes to free the memory." + } + } + }, + "io.kestra.plugin.scripts.shell.Commands": { + "type": "object", + "properties": { + "allowFailure": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "beforeCommands": { + "$dynamic": true, + "title": "A list of commands that will run before the `commands`, allowing to set up the environment e.g. `pip install -r requirements.txt`.", + "type": "array", + "items": { + "$dynamic": true, + "type": "string" + } + }, + "commands": { + "$dynamic": true, + "title": "Shell commands to run.", + "minItems": 1, + "type": "array", + "items": { + "$dynamic": true, + "type": "string" + } + }, + "containerImage": { + "$dynamic": true, + "type": "string", + "title": "The task runner container image, only used if the task runner is container-based.", + "default": "ubuntu", + "markdownDescription": "Default value is : `ubuntu`" + }, + "description": { + "type": "string" + }, + "disabled": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "docker": { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.scripts.exec.scripts.models.DockerOptions" + }, + { + "$deprecated": true, + "title": "Deprecated - use the 'taskRunner' property instead.", + "markdownDescription": "Only used if the `taskRunner` property is not set" + } + ] + }, + "env": { + "$dynamic": true, + "type": "object", + "title": "Additional environment variables for the current process.", + "additionalProperties": { + "type": "string" + } + }, + "failFast": { + "$dynamic": false, + "type": "boolean", + "title": "Fail the task on the first command with a non-zero status.", + "default": true, + "markdownDescription": "If set to `false` all commands will be executed one after the other. The final state of task execution is determined by the last command. Note that this property maybe be ignored if a non compatible interpreter is specified.\nYou can also disable it if your interpreter does not support the `set -e`option.\n\nDefault value is : `true`" + }, + "id": { + "type": "string", + "minLength": 1, + "pattern": "^[a-zA-Z0-9][a-zA-Z0-9_-]*" + }, + "inputFiles": { + "$dynamic": true, + "title": "The files to create on the local filesystem. It can be a map or a JSON object.", + "oneOf": [ + { + "type": "object" + }, + { + "type": "string" + } + ] + }, + "interpreter": { + "$dynamic": false, + "title": "Which interpreter to use.", + "default": ["/bin/sh", "-c"], + "minItems": 1, + "markdownDescription": "Default value is : `- /bin/sh\n- -c`\n\nDefault value is : `- /bin/sh\n- -c`", + "type": "array", + "items": { + "$dynamic": false, + "type": "string" + } + }, + "logLevel": { + "type": "string", + "enum": ["ERROR", "WARN", "INFO", "DEBUG", "TRACE"] + }, + "namespaceFiles": { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.core.models.tasks.NamespaceFiles" + }, + { + "$dynamic": false, + "title": "Inject namespace files.", + "markdownDescription": "Inject namespace files to this task. When enabled, it will, by default, load all namespace files into the working directory. However, you can use the `include` or `exclude` properties to limit which namespace files will be injected." + } + ] + }, + "outputDirectory": { + "$deprecated": true, + "type": "boolean", + "title": "Whether to setup the output directory mechanism.", + "default": "false", + "markdownDescription": "Required to use the {{ outputDir }} expression. Note that it could increase the starting time. Deprecated, use the `outputFiles` property instead.\n\nDefault value is : `\"false\"`" + }, + "outputFiles": { + "$dynamic": true, + "title": "The files from the local filesystem to send to Kestra's internal storage.", + "markdownDescription": "Must be a list of [glob](https://en.wikipedia.org/wiki/Glob_(programming)) expressions relative to the current working directory, some examples: `my-dir/**`, `my-dir/*/**` or `my-dir/my-file.txt`.", + "type": "array", + "items": { + "$dynamic": true, + "type": "string" + } + }, + "retry": { + "oneOf": [ + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Constant-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Exponential-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Random-2" + } + ] + }, + "runner": { + "$deprecated": true, + "$dynamic": false, + "type": "string", + "enum": ["PROCESS", "DOCKER"], + "title": "Deprecated - use the 'taskRunner' property instead.", + "markdownDescription": "Only used if the `taskRunner` property is not set" + }, + "targetOS": { + "type": "string", + "enum": ["LINUX", "WINDOWS", "AUTO"], + "title": "The target operating system where the script will run.", + "default": "AUTO", + "markdownDescription": "Default value is : `AUTO`" + }, + "taskRunner": { + "oneOf": [ + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.scripts.runner.docker.Docker" + }, + { + "$dynamic": false, + "title": "The task runner to use.", + "markdownDescription": "Task runners are provided by plugins, each have their own properties." + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.runner.Process" + }, + { + "$dynamic": false, + "title": "The task runner to use.", + "markdownDescription": "Task runners are provided by plugins, each have their own properties." + } + ] + } + ] + }, + "timeout": { + "type": "string", + "format": "duration" + }, + "type": { + "const": "io.kestra.plugin.scripts.shell.Commands" + }, + "warningOnStdErr": { + "$dynamic": false, + "type": "boolean", + "title": "Whether to set the task state to `WARNING` if any `stdErr` is emitted.", + "default": true, + "markdownDescription": "Default value is : `true`" + }, + "workerGroup": { + "$ref": "#/definitions/io.kestra.core.models.tasks.WorkerGroup" + } + }, + "required": ["commands", "id", "type"], + "title": "Execute one or more Shell commands.", + "markdownDescription": "##### Examples\n\u003E Execute ETL in Rust in a Docker container and output CSV files generated as a result of the script.\n```yaml\nid: rust_flow\nnamespace: company.team\ntasks:\n - id: rust\n type: io.kestra.plugin.scripts.shell.Commands\n commands:\n - etl\n containerImage: ghcr.io/kestra-io/rust:latest\n outputFiles:\n - \"*.csv\"\n\n```\n\n\u003E Execute a single Shell command.\n```yaml\ncommands:\n - 'echo \"The current execution is: {{ execution.id }}\"'\n```\n\n\u003E Execute Shell commands that generate files accessible by other tasks and available for download in the UI's Output tab.\n```yaml\noutputFiles:\n - first.txt\n - second.txt\ncommands:\n - echo \"1\" \u003E\u003E first.txt\n - echo \"2\" \u003E\u003E second.txt\n```\n\n\u003E Execute a Shell command using an input file generated in a previous task.\n```yaml\ncommands:\n - cat {{ outputs.previousTaskId.uri }}\n```\n\n\u003E Run a PHP Docker container and execute a command.\n```yaml\ntaskRunner:\n type: io.kestra.plugin.scripts.runner.docker.Docker\ncontainerImage: php\ncommands:\n - php -r 'print(phpversion());'\n```\n\n\u003E Create output variables from a standard output.\n```yaml\ncommands:\n - echo '::{\"outputs\":{\"test\":\"value\",\"int\":2,\"bool\":true,\"float\":3.65}}::'\n```\n\n\u003E Send a counter metric from a standard output.\n```yaml\ncommands:\n - echo '::{\"metrics\":[{\"name\":\"count\",\"type\":\"counter\",\"value\":1,\"tags\":{\"tag1\":\"i\",\"tag2\":\"win\"}}]}::'\n```" + }, + "io.kestra.plugin.scripts.shell.Script": { + "type": "object", + "properties": { + "allowFailure": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "beforeCommands": { + "$dynamic": true, + "title": "A list of commands that will run before the `commands`, allowing to set up the environment e.g. `pip install -r requirements.txt`.", + "type": "array", + "items": { + "$dynamic": true, + "type": "string" + } + }, + "containerImage": { + "$dynamic": true, + "type": "string", + "title": "The task runner container image, only used if the task runner is container-based.", + "default": "ubuntu", + "markdownDescription": "Default value is : `ubuntu`" + }, + "description": { + "type": "string" + }, + "disabled": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "docker": { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.scripts.exec.scripts.models.DockerOptions" + }, + { + "$deprecated": true, + "title": "Deprecated - use the 'taskRunner' property instead.", + "markdownDescription": "Only used if the `taskRunner` property is not set" + } + ] + }, + "env": { + "$dynamic": true, + "type": "object", + "title": "Additional environment variables for the current process.", + "additionalProperties": { + "type": "string" + } + }, + "failFast": { + "$dynamic": false, + "type": "boolean", + "title": "Fail the task on the first command with a non-zero status.", + "default": true, + "markdownDescription": "If set to `false` all commands will be executed one after the other. The final state of task execution is determined by the last command. Note that this property maybe be ignored if a non compatible interpreter is specified.\nYou can also disable it if your interpreter does not support the `set -e`option.\n\nDefault value is : `true`" + }, + "id": { + "type": "string", + "minLength": 1, + "pattern": "^[a-zA-Z0-9][a-zA-Z0-9_-]*" + }, + "inputFiles": { + "$dynamic": true, + "title": "The files to create on the local filesystem. It can be a map or a JSON object.", + "oneOf": [ + { + "type": "object" + }, + { + "type": "string" + } + ] + }, + "interpreter": { + "$dynamic": false, + "title": "Which interpreter to use.", + "default": ["/bin/sh", "-c"], + "minItems": 1, + "markdownDescription": "Default value is : `- /bin/sh\n- -c`\n\nDefault value is : `- /bin/sh\n- -c`", + "type": "array", + "items": { + "$dynamic": false, + "type": "string" + } + }, + "logLevel": { + "type": "string", + "enum": ["ERROR", "WARN", "INFO", "DEBUG", "TRACE"] + }, + "namespaceFiles": { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.core.models.tasks.NamespaceFiles" + }, + { + "$dynamic": false, + "title": "Inject namespace files.", + "markdownDescription": "Inject namespace files to this task. When enabled, it will, by default, load all namespace files into the working directory. However, you can use the `include` or `exclude` properties to limit which namespace files will be injected." + } + ] + }, + "outputDirectory": { + "$deprecated": true, + "type": "boolean", + "title": "Whether to setup the output directory mechanism.", + "default": "false", + "markdownDescription": "Required to use the {{ outputDir }} expression. Note that it could increase the starting time. Deprecated, use the `outputFiles` property instead.\n\nDefault value is : `\"false\"`" + }, + "outputFiles": { + "$dynamic": true, + "title": "The files from the local filesystem to send to Kestra's internal storage.", + "markdownDescription": "Must be a list of [glob](https://en.wikipedia.org/wiki/Glob_(programming)) expressions relative to the current working directory, some examples: `my-dir/**`, `my-dir/*/**` or `my-dir/my-file.txt`.", + "type": "array", + "items": { + "$dynamic": true, + "type": "string" + } + }, + "retry": { + "oneOf": [ + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Constant-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Exponential-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Random-2" + } + ] + }, + "runner": { + "$deprecated": true, + "$dynamic": false, + "type": "string", + "enum": ["PROCESS", "DOCKER"], + "title": "Deprecated - use the 'taskRunner' property instead.", + "markdownDescription": "Only used if the `taskRunner` property is not set" + }, + "script": { + "$dynamic": true, + "type": "string", + "title": "The inline script content. This property is intended for the script file's content as a (multiline) string, not a path to a file. To run a command from a file such as `bash myscript.sh` or `python myscript.py`, use the `Commands` task instead.", + "minLength": 1 + }, + "targetOS": { + "type": "string", + "enum": ["LINUX", "WINDOWS", "AUTO"], + "title": "The target operating system where the script will run.", + "default": "AUTO", + "markdownDescription": "Default value is : `AUTO`" + }, + "taskRunner": { + "oneOf": [ + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.scripts.runner.docker.Docker" + }, + { + "$dynamic": false, + "title": "The task runner to use.", + "markdownDescription": "Task runners are provided by plugins, each have their own properties." + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.runner.Process" + }, + { + "$dynamic": false, + "title": "The task runner to use.", + "markdownDescription": "Task runners are provided by plugins, each have their own properties." + } + ] + } + ] + }, + "timeout": { + "type": "string", + "format": "duration" + }, + "type": { + "const": "io.kestra.plugin.scripts.shell.Script" + }, + "warningOnStdErr": { + "$dynamic": false, + "type": "boolean", + "title": "Whether to set the task state to `WARNING` if any `stdErr` is emitted.", + "default": true, + "markdownDescription": "Default value is : `true`" + }, + "workerGroup": { + "$ref": "#/definitions/io.kestra.core.models.tasks.WorkerGroup" + } + }, + "required": ["id", "script", "type"], + "title": "Execute a Shell script.", + "markdownDescription": "##### Examples\n\u003E Create an inline Shell script and execute it.\n```yaml\nid: shell_script_example\nnamespace: company.team\ntasks:\n - id: http_download\n type: io.kestra.plugin.core.http.Download\n uri: https://huggingface.co/datasets/kestra/datasets/raw/main/csv/orders.csv\n - id: shell_script_task\n type: io.kestra.plugin.scripts.shell.Script\n outputFiles:\n - first.txt\n script: |\n echo \"The current execution is : {{ execution.id }}\"\n echo \"1\" \u003E\u003E first.txt\n cat {{ outputs.http_download.uri }}\n```\n\n\u003E If you want to generate files in your script to make them available for download and use in downstream tasks, you can leverage the `{{ outputDir }}` variable. Files stored in that directory will be persisted in Kestra's internal storage. To access this output in downstream tasks, use the syntax `{{ outputs.yourTaskId.outputFiles['yourFileName.fileExtension'] }}`.\n\n```yaml\nid: shell_script_example\nnamespace: company.team\ntasks:\n - id: hello\n type: io.kestra.plugin.scripts.shell.Script\n taskRunner:\n type: io.kestra.plugin.core.runner.Process\n outputFiles:\n - hello.txt\n script: |\n echo \"Hello world!\" \u003E hello.txt\n```" + }, + "io.kestra.plugin.serdes.avro.AvroToIon": { + "type": "object", + "properties": { + "allowFailure": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "description": { + "type": "string" + }, + "disabled": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "from": { + "$dynamic": true, + "type": "string", + "title": "Source file URI" + }, + "id": { + "type": "string", + "minLength": 1, + "pattern": "^[a-zA-Z0-9][a-zA-Z0-9_-]*" + }, + "logLevel": { + "type": "string", + "enum": ["ERROR", "WARN", "INFO", "DEBUG", "TRACE"] + }, + "retry": { + "oneOf": [ + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Constant-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Exponential-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Random-2" + } + ] + }, + "timeout": { + "type": "string", + "format": "duration" + }, + "type": { + "const": "io.kestra.plugin.serdes.avro.AvroToIon" + }, + "workerGroup": { + "$ref": "#/definitions/io.kestra.core.models.tasks.WorkerGroup" + } + }, + "required": ["from", "id", "type"], + "title": "Read a provided avro file and convert it to ion serialized data file.", + "markdownDescription": "##### Examples\n\u003E Convert an Avro file to the Amazon Ion format.\n```yaml\nid: avro_to_ion\nnamespace: company.team\n\ntasks:\n - id: http_download\n type: io.kestra.plugin.core.http.Download\n uri: https://huggingface.co/datasets/kestra/datasets/raw/main/avro/products.avro\n\n - id: to_ion\n type: io.kestra.plugin.serdes.avro.AvroToIon\n from: \"{{ outputs.http_download.uri }}\"\n\n```" + }, + "io.kestra.plugin.serdes.avro.IonToAvro": { + "type": "object", + "properties": { + "allowFailure": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "dateFormat": { + "$dynamic": true, + "type": "string", + "title": "Format to use when parsing date", + "default": "yyyy-MM-dd[XXX]", + "markdownDescription": "Default value is : `\"yyyy-MM-dd[XXX]\"`" + }, + "datetimeFormat": { + "$dynamic": true, + "type": "string", + "title": "Format to use when parsing datetime", + "default": "yyyy-MM-dd'T'HH:mm[:ss][.SSSSSS][XXX]", + "markdownDescription": "Default value is yyyy-MM-dd'T'HH:mm[:ss][.SSSSSS][XXX]\n\nDefault value is : `\"yyyy-MM-dd'T'HH:mm[:ss][.SSSSSS][XXX]\"`" + }, + "decimalSeparator": { + "$dynamic": true, + "type": "string", + "title": "Character to recognize as decimal point (e.g. use ‘,’ for European data).", + "default": ".", + "markdownDescription": "Default value is '.'\n\nDefault value is : `.`" + }, + "description": { + "type": "string" + }, + "disabled": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "falseValues": { + "$dynamic": true, + "title": "Values to consider as False", + "default": ["f", "false", "disabled", "0", "off", "no", ""], + "markdownDescription": "Default value is : `- f\n- \"false\"\n- disabled\n- 0\n- \"off\"\n- \"no\"\n- \"\"`\n\nDefault value is : `- f\n- \"false\"\n- disabled\n- 0\n- \"off\"\n- \"no\"\n- \"\"`", + "type": "array", + "items": { + "$dynamic": true, + "type": "string" + } + }, + "from": { + "$dynamic": true, + "type": "string", + "title": "Source file URI" + }, + "id": { + "type": "string", + "minLength": 1, + "pattern": "^[a-zA-Z0-9][a-zA-Z0-9_-]*" + }, + "inferAllFields": { + "$dynamic": false, + "type": "boolean", + "title": "Try to infer all fields", + "default": false, + "markdownDescription": "If true, we try to infer all fields with `trueValues`, `trueValues` & `nullValues`.If false, we will infer bool & null only on field declared on schema as `null` and `bool`.\n\nDefault value is : `false`" + }, + "logLevel": { + "type": "string", + "enum": ["ERROR", "WARN", "INFO", "DEBUG", "TRACE"] + }, + "nullValues": { + "$dynamic": true, + "title": "Values to consider as null", + "default": [ + "", + "#N/A", + "#N/A N/A", + "#NA", + "-1.#IND", + "-1.#QNAN", + "-NaN", + "1.#IND", + "1.#QNAN", + "NA", + "n/a", + "nan", + "null" + ], + "markdownDescription": "Default value is : `- \"\"\n- \"#N/A\"\n- \"#N/A N/A\"\n- \"#NA\"\n- -1.#IND\n- -1.#QNAN\n- -NaN\n- 1.#IND\n- 1.#QNAN\n- NA\n- n/a\n- nan\n- \"null\"`\n\nDefault value is : `- \"\"\n- \"#N/A\"\n- \"#N/A N/A\"\n- \"#NA\"\n- -1.#IND\n- -1.#QNAN\n- -NaN\n- 1.#IND\n- 1.#QNAN\n- NA\n- n/a\n- nan\n- \"null\"`", + "type": "array", + "items": { + "$dynamic": true, + "type": "string" + } + }, + "retry": { + "oneOf": [ + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Constant-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Exponential-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Random-2" + } + ] + }, + "schema": { + "$dynamic": true, + "type": "string", + "title": "The avro schema associated to the data" + }, + "strictSchema": { + "$dynamic": false, + "type": "boolean", + "title": "Whether to consider a field present in the data but not declared in the schema as an error", + "default": false, + "markdownDescription": "Default value is false\n\nDefault value is : `false`" + }, + "timeFormat": { + "$dynamic": true, + "type": "string", + "title": "Format to use when parsing time", + "default": "HH:mm[:ss][.SSSSSS][XXX]", + "markdownDescription": "Default value is : `\"HH:mm[:ss][.SSSSSS][XXX]\"`" + }, + "timeZoneId": { + "$dynamic": false, + "type": "string", + "title": "Timezone to use when no timezone can be parsed on the source.", + "default": "Etc/UTC", + "markdownDescription": "If null, the timezone will be `UTC` Default value is system timezone\n\nDefault value is : `Etc/UTC`" + }, + "timeout": { + "type": "string", + "format": "duration" + }, + "trueValues": { + "$dynamic": true, + "title": "Values to consider as True", + "default": ["t", "true", "enabled", "1", "on", "yes"], + "markdownDescription": "Default value is : `- t\n- \"true\"\n- enabled\n- 1\n- \"on\"\n- \"yes\"`\n\nDefault value is : `- t\n- \"true\"\n- enabled\n- 1\n- \"on\"\n- \"yes\"`", + "type": "array", + "items": { + "$dynamic": true, + "type": "string" + } + }, + "type": { + "const": "io.kestra.plugin.serdes.avro.IonToAvro" + }, + "workerGroup": { + "$ref": "#/definitions/io.kestra.core.models.tasks.WorkerGroup" + } + }, + "required": ["from", "id", "schema", "type"], + "title": "Read a provided file containing ion serialized data and convert it to avro.", + "markdownDescription": "##### Examples\n\u003E Convert a CSV file to the Avro format.\n```yaml\nid: divvy_tripdata\nnamespace: company.team\n\nvariables:\n file_id: \"{{ execution.startDate | dateAdd(-3, 'MONTHS') | date('yyyyMM') }}\"\n\ntasks:\n - id: get_zipfile\n type: io.kestra.plugin.core.http.Download\n uri: \"https://divvy-tripdata.s3.amazonaws.com/{{ render(vars.file_id) }}-divvy-tripdata.zip\"\n\n - id: unzip\n type: io.kestra.plugin.compress.ArchiveDecompress\n algorithm: ZIP\n from: \"{{ outputs.get_zipfile.uri }}\"\n\n - id: convert\n type: io.kestra.plugin.serdes.csv.CsvToIon\n from: \"{{ outputs.unzip.files[render(vars.file_id) ~ '-divvy-tripdata.csv'] }}\"\n\n - id: to_avro\n type: io.kestra.plugin.serdes.avro.IonToAvro\n from: \"{{ outputs.convert.uri }}\"\n datetimeFormat: \"yyyy-MM-dd' 'HH:mm:ss\"\n schema: |\n {\n \"type\": \"record\",\n \"name\": \"Ride\",\n \"namespace\": \"com.example.bikeshare\",\n \"fields\": [\n {\"name\": \"ride_id\", \"type\": \"string\"},\n {\"name\": \"rideable_type\", \"type\": \"string\"},\n {\"name\": \"started_at\", \"type\": {\"type\": \"long\", \"logicalType\": \"timestamp-millis\"}},\n {\"name\": \"ended_at\", \"type\": {\"type\": \"long\", \"logicalType\": \"timestamp-millis\"}},\n {\"name\": \"start_station_name\", \"type\": \"string\"},\n {\"name\": \"start_station_id\", \"type\": \"string\"},\n {\"name\": \"end_station_name\", \"type\": \"string\"},\n {\"name\": \"end_station_id\", \"type\": \"string\"},\n {\"name\": \"start_lat\", \"type\": \"double\"},\n {\"name\": \"start_lng\", \"type\": \"double\"},\n {\n \"name\": \"end_lat\",\n \"type\": [\"null\", \"double\"],\n \"default\": null\n },\n {\n \"name\": \"end_lng\",\n \"type\": [\"null\", \"double\"],\n \"default\": null\n },\n {\"name\": \"member_casual\", \"type\": \"string\"}\n ]\n }\n```" + }, + "io.kestra.plugin.serdes.csv.CsvToIon": { + "type": "object", + "properties": { + "allowFailure": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "charset": { + "type": "string", + "title": "The name of a supported charset", + "default": "UTF-8", + "markdownDescription": "Default value is : `UTF-8`" + }, + "description": { + "type": "string" + }, + "disabled": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "errorOnDifferentFieldCount": { + "type": "boolean", + "title": "Specifies if an exception should be thrown, if CSV data contains different field count", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "fieldSeparator": { + "type": "string", + "title": "The field separator character", + "default": ",", + "markdownDescription": "Default value is : `\",\"`" + }, + "from": { + "$dynamic": true, + "type": "string", + "title": "Source file URI" + }, + "header": { + "type": "boolean", + "title": "Specifies if the first line should be the header", + "default": true, + "markdownDescription": "Default value is : `true`" + }, + "id": { + "type": "string", + "minLength": 1, + "pattern": "^[a-zA-Z0-9][a-zA-Z0-9_-]*" + }, + "logLevel": { + "type": "string", + "enum": ["ERROR", "WARN", "INFO", "DEBUG", "TRACE"] + }, + "retry": { + "oneOf": [ + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Constant-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Exponential-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Random-2" + } + ] + }, + "skipEmptyRows": { + "type": "boolean", + "title": "Specifies if empty rows should be skipped", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "skipRows": { + "type": "integer", + "title": "Number of lines to skip at the start of the file", + "default": 0, + "markdownDescription": "Default value is : `0`" + }, + "textDelimiter": { + "type": "string", + "title": "The text delimiter character", + "default": "\"", + "markdownDescription": "Default value is : `'\"'`" + }, + "timeout": { + "type": "string", + "format": "duration" + }, + "type": { + "const": "io.kestra.plugin.serdes.csv.CsvToIon" + }, + "workerGroup": { + "$ref": "#/definitions/io.kestra.core.models.tasks.WorkerGroup" + } + }, + "required": ["from", "id", "type"], + "title": "Read a csv file and write it to an ion serialized data file.", + "markdownDescription": "##### Examples\n\u003E Convert a CSV file to the Amazon Ion format.\n```yaml\nid: csv_to_ion\nnamespace: company.team\n\ntasks:\n - id: http_download\n type: io.kestra.plugin.core.http.Download\n uri: https://huggingface.co/datasets/kestra/datasets/raw/main/csv/products.csv\n\n - id: to_ion\n type: io.kestra.plugin.serdes.csv.CsvToIon\n from: \"{{ outputs.http_download.uri }}\"\n\n```" + }, + "io.kestra.plugin.serdes.csv.IonToCsv": { + "type": "object", + "properties": { + "allowFailure": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "alwaysDelimitText": { + "type": "boolean", + "title": "Whether fields should always be delimited using the textDelimiter option.", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "charset": { + "type": "string", + "title": "The name of a supported charset", + "default": "UTF-8", + "markdownDescription": "Default value is : `UTF-8`" + }, + "dateFormat": { + "$dynamic": true, + "type": "string", + "title": "Format to use for date", + "default": "yyyy-MM-dd", + "markdownDescription": "Default value is : `yyyy-MM-dd`" + }, + "dateTimeFormat": { + "$dynamic": true, + "type": "string", + "title": "Format to use for zoned datetime", + "default": "yyyy-MM-dd'T'HH:mm:ss.SSS[XXX]", + "markdownDescription": "Default value is : `\"yyyy-MM-dd'T'HH:mm:ss.SSS[XXX]\"`" + }, + "description": { + "type": "string" + }, + "disabled": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "fieldSeparator": { + "type": "string", + "title": "The field separator character", + "default": ",", + "markdownDescription": "Default value is : `\",\"`" + }, + "from": { + "$dynamic": true, + "type": "string", + "title": "Source file URI" + }, + "header": { + "type": "boolean", + "title": "Specifies if the first line should be the header", + "default": true, + "markdownDescription": "Default value is : `true`" + }, + "id": { + "type": "string", + "minLength": 1, + "pattern": "^[a-zA-Z0-9][a-zA-Z0-9_-]*" + }, + "lineDelimiter": { + "type": "string", + "title": "The character used to separate rows", + "default": "\n", + "markdownDescription": "Default value is : `|2+`" + }, + "logLevel": { + "type": "string", + "enum": ["ERROR", "WARN", "INFO", "DEBUG", "TRACE"] + }, + "retry": { + "oneOf": [ + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Constant-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Exponential-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Random-2" + } + ] + }, + "textDelimiter": { + "type": "string", + "title": "The text delimiter character", + "default": "\"", + "markdownDescription": "Default value is : `'\"'`" + }, + "timeFormat": { + "$dynamic": true, + "type": "string", + "title": "Format to use for time", + "default": "HH:mm:ss[XXX]", + "markdownDescription": "Default value is : `\"HH:mm:ss[XXX]\"`" + }, + "timeZoneId": { + "$dynamic": true, + "type": "string", + "title": "Timezone to use when no timezone can be parsed on the source.", + "default": "Etc/UTC", + "markdownDescription": "Default value is : `Etc/UTC`" + }, + "timeout": { + "type": "string", + "format": "duration" + }, + "type": { + "const": "io.kestra.plugin.serdes.csv.IonToCsv" + }, + "workerGroup": { + "$ref": "#/definitions/io.kestra.core.models.tasks.WorkerGroup" + } + }, + "required": ["from", "id", "type"], + "title": "Read an ion serialized data file and write it to a csv file.", + "markdownDescription": "##### Examples\n\u003E Download a CSV file, transform it in SQL and store the transformed data as a CSV file.\n```yaml\nid: ion_to_csv\nnamespace: company.team\n\ntasks:\n - id: download_csv\n type: io.kestra.plugin.core.http.Download\n description: salaries of data professionals from 2020 to 2023 (source ai-jobs.net)\n uri: https://huggingface.co/datasets/kestra/datasets/raw/main/csv/salaries.csv\n\n - id: avg_salary_by_job_title\n type: io.kestra.plugin.jdbc.duckdb.Query\n inputFiles:\n data.csv: \"{{ outputs.download_csv.uri }}\"\n sql: |\n SELECT\n job_title,\n ROUND(AVG(salary),2) AS avg_salary\n FROM read_csv_auto('{{ workingDir }}/data.csv', header=True)\n GROUP BY job_title\n HAVING COUNT(job_title) \u003E 10\n ORDER BY avg_salary DESC;\n store: true\n\n - id: result\n type: io.kestra.plugin.serdes.csv.IonToCsv\n from: \"{{ outputs.avg_salary_by_job_title.uri }}\"\n\n```" + }, + "io.kestra.plugin.serdes.excel.ExcelToIon": { + "type": "object", + "properties": { + "allowFailure": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "charset": { + "$dynamic": false, + "type": "string", + "title": "The name of a supported character set", + "default": "UTF-8", + "markdownDescription": "Default value is : `UTF-8`" + }, + "dateTimeRender": { + "$dynamic": false, + "type": "string", + "enum": ["SERIAL_NUMBER", "FORMATTED_STRING", "UNFORMATTED_VALUE"], + "title": "How dates, times, and durations should be represented in the output", + "default": "UNFORMATTED_VALUE", + "markdownDescription": "Possible values: SERIAL_NUMBER, FORMATTED_STRING\n\nDefault value is : `UNFORMATTED_VALUE`" + }, + "description": { + "type": "string" + }, + "disabled": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "from": { + "$dynamic": true, + "type": "string", + "title": "Source file URI", + "minLength": 1 + }, + "header": { + "$dynamic": false, + "type": "boolean", + "title": "Whether the first row should be treated as the header", + "default": true, + "markdownDescription": "Default value is : `true`" + }, + "id": { + "type": "string", + "minLength": 1, + "pattern": "^[a-zA-Z0-9][a-zA-Z0-9_-]*" + }, + "logLevel": { + "type": "string", + "enum": ["ERROR", "WARN", "INFO", "DEBUG", "TRACE"] + }, + "retry": { + "oneOf": [ + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Constant-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Exponential-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Random-2" + } + ] + }, + "sheetsTitle": { + "$dynamic": false, + "title": "The sheets title to be included", + "type": "array", + "items": { + "$dynamic": false, + "type": "string" + } + }, + "skipEmptyRows": { + "$dynamic": false, + "type": "boolean", + "title": "Specifies if empty rows should be skipped", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "skipRows": { + "$dynamic": false, + "type": "integer", + "title": "Number of lines to skip at the start of the file. Useful if a table has a title and explanation in the first few rows", + "default": 0, + "minimum": 0, + "markdownDescription": "Default value is : `0`" + }, + "timeout": { + "type": "string", + "format": "duration" + }, + "type": { + "const": "io.kestra.plugin.serdes.excel.ExcelToIon" + }, + "valueRender": { + "$dynamic": false, + "type": "string", + "enum": ["FORMATTED_VALUE", "UNFORMATTED_VALUE", "FORMULA"], + "title": "Determines how values should be rendered in the output", + "default": "UNFORMATTED_VALUE", + "markdownDescription": "Possible values: FORMATTED_VALUE, UNFORMATTED_VALUE, FORMULA\n\nDefault value is : `UNFORMATTED_VALUE`" + }, + "workerGroup": { + "$ref": "#/definitions/io.kestra.core.models.tasks.WorkerGroup" + } + }, + "required": ["from", "id", "type"], + "title": "Read data from Excel into a row-wise ION-serialized format", + "markdownDescription": "##### Examples\n\u003E Convert an Excel file to the Ion format.\n```yaml\nid: excel_to_ion\nnamespace: company.team\n\ntasks:\n - id: http_download\n type: io.kestra.plugin.core.http.Download\n uri: https://huggingface.co/datasets/kestra/datasets/raw/main/excel/Products.xlsx\n\n - id: to_ion\n type: io.kestra.plugin.serdes.excel.ExcelToIon\n from: \"{{ outputs.http_download.uri }}\"\n\n```" + }, + "io.kestra.plugin.serdes.excel.IonToExcel": { + "type": "object", + "properties": { + "allowFailure": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "charset": { + "$dynamic": false, + "type": "string", + "title": "The name of a supported character set", + "default": "UTF-8", + "markdownDescription": "Default value is : `UTF-8`" + }, + "dateFormat": { + "$dynamic": true, + "type": "string", + "title": "Format to use for date", + "default": "yyyy-MM-dd", + "markdownDescription": "Default value is : `yyyy-MM-dd`" + }, + "dateTimeFormat": { + "$dynamic": true, + "type": "string", + "title": "Format to use for zoned datetime", + "default": "yyyy-MM-dd'T'HH:mm:ss.SSS[XXX]", + "markdownDescription": "Default value is : `\"yyyy-MM-dd'T'HH:mm:ss.SSS[XXX]\"`" + }, + "description": { + "type": "string" + }, + "disabled": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "from": { + "$dynamic": true, + "title": "Source file URI", + "oneOf": [ + { + "type": "string" + }, + { + "type": "object" + } + ] + }, + "header": { + "$dynamic": false, + "type": "boolean", + "title": "Whether header should be written as the first line", + "default": true, + "markdownDescription": "Default value is : `true`" + }, + "id": { + "type": "string", + "minLength": 1, + "pattern": "^[a-zA-Z0-9][a-zA-Z0-9_-]*" + }, + "logLevel": { + "type": "string", + "enum": ["ERROR", "WARN", "INFO", "DEBUG", "TRACE"] + }, + "retry": { + "oneOf": [ + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Constant-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Exponential-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Random-2" + } + ] + }, + "sheetsTitle": { + "$dynamic": false, + "type": "string", + "title": "The sheet title to be used when writing data to an Excel spreadsheet", + "default": "Sheet", + "markdownDescription": "Default value is : `Sheet`" + }, + "styles": { + "$dynamic": false, + "type": "boolean", + "title": "Whether styles should be applied to format values", + "default": true, + "markdownDescription": "Excel is limited to 64000 styles per document, and styles are applied on every date, removed this options when you have a lots of values.\n\nDefault value is : `true`" + }, + "timeFormat": { + "$dynamic": true, + "type": "string", + "title": "Format to use for time", + "default": "HH:mm:ss[XXX]", + "markdownDescription": "Default value is : `\"HH:mm:ss[XXX]\"`" + }, + "timeZoneId": { + "$dynamic": true, + "type": "string", + "title": "Timezone to use when no timezone can be parsed on the source.", + "default": "Etc/UTC", + "markdownDescription": "Default value is : `Etc/UTC`" + }, + "timeout": { + "type": "string", + "format": "duration" + }, + "type": { + "const": "io.kestra.plugin.serdes.excel.IonToExcel" + }, + "workerGroup": { + "$ref": "#/definitions/io.kestra.core.models.tasks.WorkerGroup" + } + }, + "required": ["from", "id", "type"], + "title": "Read an ION-serialized file and transform it to an Excel file", + "markdownDescription": "##### Examples\n\u003E Download a CSV file and convert it to the Excel file format.\n```yaml\nid: ion_to_excel\nnamespace: company.team\n\ntasks:\n - id: http_download\n type: io.kestra.plugin.core.http.Download\n uri: https://huggingface.co/datasets/kestra/datasets/raw/main/csv/products.csv\n\n - id: convert\n type: io.kestra.plugin.serdes.csv.CsvToIon\n from: \"{{ outputs.http_download.uri }}\"\n\n - id: to_excel\n type: io.kestra.plugin.serdes.excel.IonToExcel\n from: \"{{ outputs.convert.uri }}\"\n\n```" + }, + "io.kestra.plugin.serdes.json.IonToJson": { + "type": "object", + "properties": { + "allowFailure": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "charset": { + "$dynamic": true, + "type": "string", + "title": "The name of a supported charset", + "default": "UTF-8", + "markdownDescription": "Default value is UTF-8.\n\nDefault value is : `UTF-8`" + }, + "description": { + "type": "string" + }, + "disabled": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "from": { + "$dynamic": true, + "type": "string", + "title": "Source file URI" + }, + "id": { + "type": "string", + "minLength": 1, + "pattern": "^[a-zA-Z0-9][a-zA-Z0-9_-]*" + }, + "logLevel": { + "type": "string", + "enum": ["ERROR", "WARN", "INFO", "DEBUG", "TRACE"] + }, + "newLine": { + "$dynamic": false, + "type": "boolean", + "title": "Is the file is a json new line (JSON-NL)", + "default": true, + "markdownDescription": "Is the file is a json with new line separator\nWarning, if not, the whole file will loaded in memory and can lead to out of memory!\n\nDefault value is : `true`" + }, + "retry": { + "oneOf": [ + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Constant-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Exponential-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Random-2" + } + ] + }, + "timeZoneId": { + "$dynamic": true, + "type": "string", + "title": "Timezone to use when no timezone can be parsed on the source.", + "default": "Etc/UTC", + "markdownDescription": "Default value is : `Etc/UTC`" + }, + "timeout": { + "type": "string", + "format": "duration" + }, + "type": { + "const": "io.kestra.plugin.serdes.json.IonToJson" + }, + "workerGroup": { + "$ref": "#/definitions/io.kestra.core.models.tasks.WorkerGroup" + } + }, + "required": ["from", "id", "type"], + "title": "Read an ion serialized data file and write it to a new line delimited json file.", + "markdownDescription": "##### Examples\n\u003E Download a CSV file and convert it to a JSON format.\n```yaml\nid: ion_to_json\nnamespace: company.team\n\ntasks:\n - id: http_download\n type: io.kestra.plugin.core.http.Download\n uri: https://huggingface.co/datasets/kestra/datasets/raw/main/csv/products.csv\n\n - id: convert\n type: io.kestra.plugin.serdes.csv.CsvToIon\n from: \"{{ outputs.http_download.uri }}\"\n\n - id: to_json\n type: io.kestra.plugin.serdes.json.IonToJson\n from: \"{{ outputs.convert.uri }}\"\n\n```" + }, + "io.kestra.plugin.serdes.json.JsonToIon": { + "type": "object", + "properties": { + "allowFailure": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "charset": { + "type": "string", + "title": "The name of a supported charset", + "default": "UTF-8", + "markdownDescription": "Default value is UTF-8.\n\nDefault value is : `UTF-8`" + }, + "description": { + "type": "string" + }, + "disabled": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "from": { + "$dynamic": true, + "type": "string", + "title": "Source file URI" + }, + "id": { + "type": "string", + "minLength": 1, + "pattern": "^[a-zA-Z0-9][a-zA-Z0-9_-]*" + }, + "logLevel": { + "type": "string", + "enum": ["ERROR", "WARN", "INFO", "DEBUG", "TRACE"] + }, + "newLine": { + "type": "boolean", + "title": "Is the file is a json new line (JSON-NL)", + "default": true, + "markdownDescription": "Is the file is a json with new line separator\nWarning, if not, the whole file will loaded in memory and can lead to out of memory!\n\nDefault value is : `true`" + }, + "retry": { + "oneOf": [ + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Constant-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Exponential-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Random-2" + } + ] + }, + "timeout": { + "type": "string", + "format": "duration" + }, + "type": { + "const": "io.kestra.plugin.serdes.json.JsonToIon" + }, + "workerGroup": { + "$ref": "#/definitions/io.kestra.core.models.tasks.WorkerGroup" + } + }, + "required": ["from", "id", "type"], + "title": "Read a JSON file and write it to an ION serialized data file.", + "markdownDescription": "Please note that we support JSONL format only, i.e. one JSON dictionary/map per line.\n\nHere is how a sample JSON file content might look like:\n```\n{\"product_id\":\"1\",\"product_name\":\"streamline turn-key systems\",\"product_category\":\"Electronics\",\"brand\":\"gomez\"},\n{\"product_id\":\"2\",\"product_name\":\"morph viral applications\",\"product_category\":\"Household\",\"brand\":\"wolfe\"},\n{\"product_id\":\"3\",\"product_name\":\"expedite front-end schemas\",\"product_category\":\"Household\",\"brand\":\"davis-martinez\"}\n```\n\nWe do NOT support an array of JSON objects. A JSON file in the following array format is not supported:\n```\n[\n {\"product_id\":\"1\",\"product_name\":\"streamline turn-key systems\",\"product_category\":\"Electronics\",\"brand\":\"gomez\"},\n {\"product_id\":\"2\",\"product_name\":\"morph viral applications\",\"product_category\":\"Household\",\"brand\":\"wolfe\"},\n {\"product_id\":\"3\",\"product_name\":\"expedite front-end schemas\",\"product_category\":\"Household\",\"brand\":\"davis-martinez\"}\n]\n```\n##### Examples\n\u003E Convert a JSON file to the Amazon Ion format.\n```yaml\nid: json_to_ion\nnamespace: company.team\n\ntasks:\n - id: http_download\n type: io.kestra.plugin.core.http.Download\n uri: https://huggingface.co/datasets/kestra/datasets/raw/main/json/products.json\n\n - id: to_ion\n type: io.kestra.plugin.serdes.json.JsonToIon\n from: \"{{ outputs.http_download.uri }}\"\n\n```" + }, + "io.kestra.plugin.serdes.parquet.IonToParquet": { + "type": "object", + "properties": { + "allowFailure": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "compressionCodec": { + "$dynamic": false, + "type": "string", + "enum": ["UNCOMPRESSED", "SNAPPY", "GZIP", "ZSTD"], + "title": "The compression to used", + "default": "GZIP", + "markdownDescription": "Default value is : `GZIP`" + }, + "dateFormat": { + "$dynamic": true, + "type": "string", + "title": "Format to use when parsing date", + "default": "yyyy-MM-dd[XXX]", + "markdownDescription": "Default value is : `\"yyyy-MM-dd[XXX]\"`" + }, + "datetimeFormat": { + "$dynamic": true, + "type": "string", + "title": "Format to use when parsing datetime", + "default": "yyyy-MM-dd'T'HH:mm[:ss][.SSSSSS][XXX]", + "markdownDescription": "Default value is yyyy-MM-dd'T'HH:mm[:ss][.SSSSSS][XXX]\n\nDefault value is : `\"yyyy-MM-dd'T'HH:mm[:ss][.SSSSSS][XXX]\"`" + }, + "decimalSeparator": { + "$dynamic": true, + "type": "string", + "title": "Character to recognize as decimal point (e.g. use ‘,’ for European data).", + "default": ".", + "markdownDescription": "Default value is '.'\n\nDefault value is : `.`" + }, + "description": { + "type": "string" + }, + "dictionaryPageSize": { + "$dynamic": false, + "type": "integer", + "title": "Max dictionary page size", + "default": 1048576, + "markdownDescription": "Default value is : `1048576`" + }, + "disabled": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "falseValues": { + "$dynamic": true, + "title": "Values to consider as False", + "default": ["f", "false", "disabled", "0", "off", "no", ""], + "markdownDescription": "Default value is : `- f\n- \"false\"\n- disabled\n- 0\n- \"off\"\n- \"no\"\n- \"\"`\n\nDefault value is : `- f\n- \"false\"\n- disabled\n- 0\n- \"off\"\n- \"no\"\n- \"\"`", + "type": "array", + "items": { + "$dynamic": true, + "type": "string" + } + }, + "from": { + "$dynamic": true, + "type": "string", + "title": "Source file URI" + }, + "id": { + "type": "string", + "minLength": 1, + "pattern": "^[a-zA-Z0-9][a-zA-Z0-9_-]*" + }, + "inferAllFields": { + "$dynamic": false, + "type": "boolean", + "title": "Try to infer all fields", + "default": false, + "markdownDescription": "If true, we try to infer all fields with `trueValues`, `trueValues` & `nullValues`.If false, we will infer bool & null only on field declared on schema as `null` and `bool`.\n\nDefault value is : `false`" + }, + "logLevel": { + "type": "string", + "enum": ["ERROR", "WARN", "INFO", "DEBUG", "TRACE"] + }, + "nullValues": { + "$dynamic": true, + "title": "Values to consider as null", + "default": [ + "", + "#N/A", + "#N/A N/A", + "#NA", + "-1.#IND", + "-1.#QNAN", + "-NaN", + "1.#IND", + "1.#QNAN", + "NA", + "n/a", + "nan", + "null" + ], + "markdownDescription": "Default value is : `- \"\"\n- \"#N/A\"\n- \"#N/A N/A\"\n- \"#NA\"\n- -1.#IND\n- -1.#QNAN\n- -NaN\n- 1.#IND\n- 1.#QNAN\n- NA\n- n/a\n- nan\n- \"null\"`\n\nDefault value is : `- \"\"\n- \"#N/A\"\n- \"#N/A N/A\"\n- \"#NA\"\n- -1.#IND\n- -1.#QNAN\n- -NaN\n- 1.#IND\n- 1.#QNAN\n- NA\n- n/a\n- nan\n- \"null\"`", + "type": "array", + "items": { + "$dynamic": true, + "type": "string" + } + }, + "pageSize": { + "$dynamic": false, + "type": "integer", + "title": "Target page size", + "default": 1048576, + "markdownDescription": "Default value is : `1048576`" + }, + "retry": { + "oneOf": [ + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Constant-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Exponential-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Random-2" + } + ] + }, + "rowGroupSize": { + "$dynamic": false, + "type": "integer", + "title": "Target row group size", + "default": 134217728, + "markdownDescription": "Default value is : `134217728`" + }, + "schema": { + "$dynamic": true, + "type": "string", + "title": "The avro schema associated to the data" + }, + "strictSchema": { + "$dynamic": false, + "type": "boolean", + "title": "Whether to consider a field present in the data but not declared in the schema as an error", + "default": false, + "markdownDescription": "Default value is false\n\nDefault value is : `false`" + }, + "timeFormat": { + "$dynamic": true, + "type": "string", + "title": "Format to use when parsing time", + "default": "HH:mm[:ss][.SSSSSS][XXX]", + "markdownDescription": "Default value is : `\"HH:mm[:ss][.SSSSSS][XXX]\"`" + }, + "timeZoneId": { + "$dynamic": false, + "type": "string", + "title": "Timezone to use when no timezone can be parsed on the source.", + "default": "Etc/UTC", + "markdownDescription": "If null, the timezone will be `UTC` Default value is system timezone\n\nDefault value is : `Etc/UTC`" + }, + "timeout": { + "type": "string", + "format": "duration" + }, + "trueValues": { + "$dynamic": true, + "title": "Values to consider as True", + "default": ["t", "true", "enabled", "1", "on", "yes"], + "markdownDescription": "Default value is : `- t\n- \"true\"\n- enabled\n- 1\n- \"on\"\n- \"yes\"`\n\nDefault value is : `- t\n- \"true\"\n- enabled\n- 1\n- \"on\"\n- \"yes\"`", + "type": "array", + "items": { + "$dynamic": true, + "type": "string" + } + }, + "type": { + "const": "io.kestra.plugin.serdes.parquet.IonToParquet" + }, + "version": { + "$dynamic": false, + "type": "string", + "enum": ["V1", "V2"], + "title": "Target row group size", + "default": "V2", + "markdownDescription": "Default value is : `V2`" + }, + "workerGroup": { + "$ref": "#/definitions/io.kestra.core.models.tasks.WorkerGroup" + } + }, + "required": ["from", "id", "schema", "type"], + "title": "Read a provided file containing ion serialized data and convert it to parquet.", + "markdownDescription": "##### Examples\n\u003E Read a CSV file, transform it and store the transformed data as a parquet file.\n```yaml\nid: ion_to_parquet\nnamespace: company.team\n\ntasks:\n - id: download_csv\n type: io.kestra.plugin.core.http.Download\n description: salaries of data professionals from 2020 to 2023 (source ai-jobs.net)\n uri: https://huggingface.co/datasets/kestra/datasets/raw/main/csv/salaries.csv\n\n - id: avg_salary_by_job_title\n type: io.kestra.plugin.jdbc.duckdb.Query\n inputFiles:\n data.csv: \"{{ outputs.download_csv.uri }}\"\n sql: |\n SELECT\n job_title,\n ROUND(AVG(salary),2) AS avg_salary\n FROM read_csv_auto('{{ workingDir }}/data.csv', header=True)\n GROUP BY job_title\n HAVING COUNT(job_title) \u003E 10\n ORDER BY avg_salary DESC;\n store: true\n\n - id: result\n type: io.kestra.plugin.serdes.parquet.IonToParquet\n from: \"{{ outputs.avg_salary_by_job_title.uri }}\"\n schema: |\n {\n \"type\": \"record\",\n \"name\": \"Salary\",\n \"namespace\": \"com.example.salary\",\n \"fields\": [\n {\"name\": \"job_title\", \"type\": \"string\"},\n {\"name\": \"avg_salary\", \"type\": \"double\"}\n ]\n }\n\n```" + }, + "io.kestra.plugin.serdes.parquet.ParquetToIon": { + "type": "object", + "properties": { + "allowFailure": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "description": { + "type": "string" + }, + "disabled": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "from": { + "$dynamic": true, + "type": "string", + "title": "Source file URI" + }, + "id": { + "type": "string", + "minLength": 1, + "pattern": "^[a-zA-Z0-9][a-zA-Z0-9_-]*" + }, + "logLevel": { + "type": "string", + "enum": ["ERROR", "WARN", "INFO", "DEBUG", "TRACE"] + }, + "retry": { + "oneOf": [ + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Constant-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Exponential-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Random-2" + } + ] + }, + "timeout": { + "type": "string", + "format": "duration" + }, + "type": { + "const": "io.kestra.plugin.serdes.parquet.ParquetToIon" + }, + "workerGroup": { + "$ref": "#/definitions/io.kestra.core.models.tasks.WorkerGroup" + } + }, + "required": ["from", "id", "type"], + "title": "Read a provided parquet file and convert it to ion serialized data file.", + "markdownDescription": "##### Examples\n\u003E Convert a parquet file to the Amazon Ion format.\n```yaml\nid: parquet_to_ion\nnamespace: company.team\n\ntasks:\n - id: http_download\n type: io.kestra.plugin.core.http.Download\n uri: https://huggingface.co/datasets/kestra/datasets/raw/main/parquet/products.parquet\n\n - id: to_ion\n type: io.kestra.plugin.serdes.parquet.ParquetToIon\n from: \"{{ outputs.http_download.uri }}\"\n\n```" + }, + "io.kestra.plugin.serdes.xml.IonToXml": { + "type": "object", + "properties": { + "allowFailure": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "charset": { + "$dynamic": true, + "type": "string", + "title": "The name of a supported charset", + "default": "UTF-8", + "markdownDescription": "Default value is UTF-8.\n\nDefault value is : `UTF-8`" + }, + "description": { + "type": "string" + }, + "disabled": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "from": { + "$dynamic": true, + "type": "string", + "title": "Source file URI" + }, + "id": { + "type": "string", + "minLength": 1, + "pattern": "^[a-zA-Z0-9][a-zA-Z0-9_-]*" + }, + "logLevel": { + "type": "string", + "enum": ["ERROR", "WARN", "INFO", "DEBUG", "TRACE"] + }, + "retry": { + "oneOf": [ + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Constant-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Exponential-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Random-2" + } + ] + }, + "rootName": { + "$dynamic": true, + "type": "string", + "title": "Xml root name", + "default": "items", + "markdownDescription": "Default value is : `items`" + }, + "timeZoneId": { + "$dynamic": true, + "type": "string", + "title": "Timezone to use when no timezone can be parsed on the source.", + "default": "Etc/UTC", + "markdownDescription": "Default value is : `Etc/UTC`" + }, + "timeout": { + "type": "string", + "format": "duration" + }, + "type": { + "const": "io.kestra.plugin.serdes.xml.IonToXml" + }, + "workerGroup": { + "$ref": "#/definitions/io.kestra.core.models.tasks.WorkerGroup" + } + }, + "required": ["from", "id", "type"], + "title": "Read an ion serialized data file and write it to a XML file.", + "markdownDescription": "##### Examples\n\u003E Read a CSV file, transform it and store the transformed data as an XML file.\n```yaml\nid: ion_to_xml\nnamespace: company.team\n\ntasks:\n - id: download_csv\n type: io.kestra.plugin.core.http.Download\n description: salaries of data professionals from 2020 to 2023 (source ai-jobs.net)\n uri: https://huggingface.co/datasets/kestra/datasets/raw/main/csv/salaries.csv\n\n - id: avg_salary_by_job_title\n type: io.kestra.plugin.jdbc.duckdb.Query\n inputFiles:\n data.csv: \"{{ outputs.download_csv.uri }}\"\n sql: |\n SELECT\n job_title,\n ROUND(AVG(salary),2) AS avg_salary\n FROM read_csv_auto('{{ workingDir }}/data.csv', header=True)\n GROUP BY job_title\n HAVING COUNT(job_title) \u003E 10\n ORDER BY avg_salary DESC;\n store: true\n\n - id: result\n type: io.kestra.plugin.serdes.xml.IonToXml\n from: \"{{ outputs.avg_salary_by_job_title.uri }}\"\n\n```" + }, + "io.kestra.plugin.serdes.xml.XmlToIon": { + "type": "object", + "properties": { + "allowFailure": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "charset": { + "$dynamic": false, + "type": "string", + "title": "The name of a supported charset", + "default": "UTF-8", + "markdownDescription": "Default value is UTF-8.\n\nDefault value is : `UTF-8`" + }, + "description": { + "type": "string" + }, + "disabled": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "from": { + "$dynamic": true, + "type": "string", + "title": "Source file URI" + }, + "id": { + "type": "string", + "minLength": 1, + "pattern": "^[a-zA-Z0-9][a-zA-Z0-9_-]*" + }, + "logLevel": { + "type": "string", + "enum": ["ERROR", "WARN", "INFO", "DEBUG", "TRACE"] + }, + "parserConfiguration": { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.serdes.xml.XmlToIon-ParserConfiguration" + }, + { + "$dynamic": false, + "title": "XML parser configuration." + } + ] + }, + "query": { + "$dynamic": false, + "type": "string", + "title": "XPath use to query in the XML file." + }, + "retry": { + "oneOf": [ + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Constant-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Exponential-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Random-2" + } + ] + }, + "timeout": { + "type": "string", + "format": "duration" + }, + "type": { + "const": "io.kestra.plugin.serdes.xml.XmlToIon" + }, + "workerGroup": { + "$ref": "#/definitions/io.kestra.core.models.tasks.WorkerGroup" + } + }, + "required": ["from", "id", "type"], + "title": "Read a XML file and write it to an ion serialized data file.", + "markdownDescription": "##### Examples\n\u003E Convert an XML file to the Amazon Ion format.\n```yaml\nid: xml_to_ion\nnamespace: company.team\n\ntasks:\n - id: http_download\n type: io.kestra.plugin.core.http.Download\n uri: https://huggingface.co/datasets/kestra/datasets/raw/main/xml/products.xml\n\n - id: to_ion\n type: io.kestra.plugin.serdes.xml.XmlToIon\n from: \"{{ outputs.http_download.uri }}\"\n\n```" + }, + "io.kestra.plugin.serdes.xml.XmlToIon-ParserConfiguration": { + "type": "object", + "properties": { + "forceList": { + "$dynamic": false, + "title": "List of XML tags that must be parsed as lists.", + "type": "array", + "items": { + "$dynamic": false, + "type": "string" + } + } + }, + "title": "XML parser configuration." + }, + "io.kestra.plugin.servicenow.Post": { + "type": "object", + "properties": { + "allowFailure": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "clientId": { + "$dynamic": true, + "type": "string", + "title": "ServiceNow client ID.", + "minLength": 1 + }, + "clientSecret": { + "$dynamic": true, + "type": "string", + "title": "ServiceNow client secret.", + "minLength": 1 + }, + "data": { + "$dynamic": true, + "type": "object", + "title": "The data to insert.", + "minProperties": 1 + }, + "description": { + "type": "string" + }, + "disabled": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "domain": { + "$dynamic": true, + "type": "string", + "title": "ServiceNow domain.", + "minLength": 1, + "markdownDescription": "Will be used to generate the url: `https://[[DOMAIN]].service-now.com/`" + }, + "headers": { + "$dynamic": true, + "type": "object", + "title": "The headers to pass to the request" + }, + "id": { + "type": "string", + "minLength": 1, + "pattern": "^[a-zA-Z0-9][a-zA-Z0-9_-]*" + }, + "logLevel": { + "type": "string", + "enum": ["ERROR", "WARN", "INFO", "DEBUG", "TRACE"] + }, + "password": { + "$dynamic": true, + "type": "string", + "title": "ServiceNow password.", + "minLength": 1 + }, + "retry": { + "oneOf": [ + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Constant-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Exponential-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Random-2" + } + ] + }, + "table": { + "$dynamic": true, + "type": "string", + "title": "ServiceNow table.", + "minLength": 1 + }, + "timeout": { + "type": "string", + "format": "duration" + }, + "type": { + "const": "io.kestra.plugin.servicenow.Post" + }, + "username": { + "$dynamic": true, + "type": "string", + "title": "ServiceNow username.", + "minLength": 1 + }, + "workerGroup": { + "$ref": "#/definitions/io.kestra.core.models.tasks.WorkerGroup" + } + }, + "required": [ + "clientId", + "clientSecret", + "data", + "domain", + "id", + "password", + "table", + "type", + "username" + ], + "title": "Insert data inside a ServiceNow table.", + "markdownDescription": "##### Examples\n\u003E Create an incident.\n```yaml\ndomain: \"[[YOUR_SNOW_DOMAIN]]\"\nusername: \"[[YOUR_SNOW_CLIENTID]]\"\npassword: \"[[YOUR_SNOW_CLIENTID]]\"\nclientId: \"[[YOUR_SNOW_CLIENTID]]\"\nclientSecret: \"[[YOUR_SNOW_CLIENTID]]\"\ntable: incident\ndata:\n short_description: API Create Incident...\n requester_id: f8266e2adb16fb00fa638a3a489619d2\n requester_for_id: a7ec77cbdefac300d322d182689619dc\n product_id: 01a2e3c1db15f340d329d18c689ed922\n\n```" + }, + "io.kestra.plugin.singer.models.StreamsConfiguration": { + "type": "object", + "properties": { + "propertiesPattern": { + "type": "array", + "items": { + "type": "string" + } + }, + "replicationKeys": { + "type": "string" + }, + "replicationMethod": { + "type": "string", + "enum": ["FULL_TABLE", "INCREMENTAL", "LOG_BASED"] + }, + "selected": { + "type": "boolean", + "default": true, + "markdownDescription": "Default value is : `true`" + }, + "stream": { + "type": "string" + } + } + }, + "io.kestra.plugin.singer.taps.BigQuery": { + "type": "object", + "properties": { + "allowFailure": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "command": { + "$dynamic": true, + "type": "string", + "title": "Override default singer command." + }, + "containerImage": { + "$dynamic": true, + "type": "string", + "title": "The task runner container image, only used if the task runner is container-based.", + "default": "python:3.10.12", + "markdownDescription": "Default value is : `python:3.10.12`" + }, + "description": { + "type": "string" + }, + "disabled": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "docker": { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.scripts.exec.scripts.models.DockerOptions" + }, + { + "$dynamic": false, + "title": "Deprecated, use 'taskRunner' instead" + } + ] + }, + "endDateTime": { + "$dynamic": true, + "type": "string", + "format": "date-time", + "title": "Date up to when historical data will be extracted." + }, + "id": { + "type": "string", + "minLength": 1, + "pattern": "^[a-zA-Z0-9][a-zA-Z0-9_-]*" + }, + "limit": { + "$dynamic": false, + "type": "integer", + "title": "Limits the number of records returned in each stream, applied as a limit in the query." + }, + "logLevel": { + "type": "string", + "enum": ["ERROR", "WARN", "INFO", "DEBUG", "TRACE"] + }, + "pipPackages": { + "$dynamic": true, + "title": "Override default pip packages to use a specific version.", + "type": "array", + "items": { + "$dynamic": true, + "type": "string" + } + }, + "retry": { + "oneOf": [ + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Constant-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Exponential-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Random-2" + } + ] + }, + "serviceAccount": { + "$dynamic": true, + "type": "string", + "title": "The JSON service account key as string." + }, + "startAlwaysInclusive": { + "$dynamic": false, + "type": "boolean", + "title": "When replicating incrementally, disable to only select records whose `datetime_key` is greater than the maximum value replicated in the last run, by excluding records whose timestamps match exactly.", + "default": true, + "markdownDescription": "This could cause records to be missed that were created after the last run finished, but during the same second and with the same timestamp.\n\nDefault value is : `true`" + }, + "startDateTime": { + "$dynamic": true, + "type": "string", + "format": "date-time", + "title": "Determines how much historical data will be extracted.", + "markdownDescription": "Please be aware that the larger the time period and amount of data, the longer the initial extraction can be expected to take." + }, + "stateName": { + "$dynamic": true, + "type": "string", + "title": "The name of Singer state file.", + "default": "singer-state", + "markdownDescription": "Default value is : `singer-state`" + }, + "streams": { + "$dynamic": false, + "title": "Array holding objects describing streams (tables) to extract, with `name`, `table`, `columns`, `datetime_key`, and `filters` keys.", + "minItems": 1, + "type": "array", + "items": { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.BigQuery-Stream" + }, + { + "$dynamic": false + } + ] + } + }, + "streamsConfigurations": { + "$dynamic": false, + "title": "The list of stream configurations", + "minItems": 1, + "type": "array", + "items": { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.models.StreamsConfiguration" + }, + { + "$dynamic": false + } + ] + } + }, + "taskRunner": { + "oneOf": [ + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.scripts.runner.docker.Docker" + }, + { + "$dynamic": false, + "title": "The task runner to use.", + "markdownDescription": "Task runners are provided by plugins, each have their own properties." + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.runner.Process" + }, + { + "$dynamic": false, + "title": "The task runner to use.", + "markdownDescription": "Task runners are provided by plugins, each have their own properties." + } + ] + } + ] + }, + "timeout": { + "type": "string", + "format": "duration" + }, + "type": { + "const": "io.kestra.plugin.singer.taps.BigQuery" + }, + "workerGroup": { + "$ref": "#/definitions/io.kestra.core.models.tasks.WorkerGroup" + } + }, + "required": [ + "id", + "limit", + "startDateTime", + "streams", + "streamsConfigurations", + "type" + ], + "title": "A Singer tap to fetch data from a BigQuery.", + "markdownDescription": "Full documentation can be found [here](https://github.com/anelendata/tap-bigquery)" + }, + "io.kestra.plugin.singer.taps.BigQuery-Stream": { + "type": "object", + "properties": { + "columns": { + "type": "array", + "items": { + "type": "string" + } + }, + "datetime_key": { + "type": "string" + }, + "filters": { + "title": "these are parsed in `WHERE` clause", + "markdownDescription": "filters are optional but we strongly recommend using this over a large partitioned table to control the cost.", + "type": "array", + "items": { + "type": "string" + } + }, + "name": { + "type": "string" + }, + "table": { + "type": "string" + } + } + }, + "io.kestra.plugin.singer.taps.BingAds": { + "type": "object", + "properties": { + "accountIds": { + "$dynamic": true, + "title": "Your accounts IDs.", + "minItems": 1, + "type": "array", + "items": { + "$dynamic": true, + "type": "string" + } + }, + "allowFailure": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "command": { + "$dynamic": true, + "type": "string", + "title": "Override default singer command." + }, + "containerImage": { + "$dynamic": true, + "type": "string", + "title": "The task runner container image, only used if the task runner is container-based.", + "default": "python:3.10.12", + "markdownDescription": "Default value is : `python:3.10.12`" + }, + "customerId": { + "$dynamic": true, + "type": "string", + "title": "Your Customer ID.", + "minLength": 1 + }, + "description": { + "type": "string" + }, + "developerToken": { + "$dynamic": true, + "type": "string", + "title": "Your developer token for Bing Ads application.", + "minLength": 1 + }, + "disabled": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "docker": { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.scripts.exec.scripts.models.DockerOptions" + }, + { + "$dynamic": false, + "title": "Deprecated, use 'taskRunner' instead" + } + ] + }, + "id": { + "type": "string", + "minLength": 1, + "pattern": "^[a-zA-Z0-9][a-zA-Z0-9_-]*" + }, + "logLevel": { + "type": "string", + "enum": ["ERROR", "WARN", "INFO", "DEBUG", "TRACE"] + }, + "oauthClientId": { + "$dynamic": true, + "type": "string", + "title": "Your OAuth Client ID.", + "minLength": 1 + }, + "oauthClientSecret": { + "$dynamic": true, + "type": "string", + "title": "Your OAuth Client Secret.", + "minLength": 1 + }, + "pipPackages": { + "$dynamic": true, + "title": "Override default pip packages to use a specific version.", + "type": "array", + "items": { + "$dynamic": true, + "type": "string" + } + }, + "refreshToken": { + "$dynamic": true, + "type": "string", + "title": "The Refresh Token generated through the OAuth flow run using your OAuth Client and your Developer Token.", + "minLength": 1 + }, + "retry": { + "oneOf": [ + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Constant-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Exponential-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Random-2" + } + ] + }, + "startDate": { + "$dynamic": true, + "type": "string", + "format": "date", + "title": "Determines how much historical data will be extracted.", + "markdownDescription": "Please be aware that the larger the time period and amount of data, the longer the initial extraction can be expected to take." + }, + "stateName": { + "$dynamic": true, + "type": "string", + "title": "The name of Singer state file.", + "default": "singer-state", + "markdownDescription": "Default value is : `singer-state`" + }, + "streamsConfigurations": { + "$dynamic": false, + "title": "The list of stream configurations", + "minItems": 1, + "type": "array", + "items": { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.models.StreamsConfiguration" + }, + { + "$dynamic": false + } + ] + } + }, + "taskRunner": { + "oneOf": [ + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.scripts.runner.docker.Docker" + }, + { + "$dynamic": false, + "title": "The task runner to use.", + "markdownDescription": "Task runners are provided by plugins, each have their own properties." + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.runner.Process" + }, + { + "$dynamic": false, + "title": "The task runner to use.", + "markdownDescription": "Task runners are provided by plugins, each have their own properties." + } + ] + } + ] + }, + "timeout": { + "type": "string", + "format": "duration" + }, + "type": { + "const": "io.kestra.plugin.singer.taps.BingAds" + }, + "workerGroup": { + "$ref": "#/definitions/io.kestra.core.models.tasks.WorkerGroup" + } + }, + "required": [ + "accountIds", + "customerId", + "developerToken", + "id", + "oauthClientId", + "oauthClientSecret", + "refreshToken", + "startDate", + "streamsConfigurations", + "type" + ], + "title": "A Singer tap to fetch data from Bing Ads.", + "markdownDescription": "Full documentation can be found [here](https://github.com/singer-io/tap-bing-ads)" + }, + "io.kestra.plugin.singer.taps.ChargeBee": { + "type": "object", + "properties": { + "allowFailure": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "apiKey": { + "$dynamic": true, + "type": "string", + "title": "Your API Key.", + "minLength": 1 + }, + "command": { + "$dynamic": true, + "type": "string", + "title": "Override default singer command." + }, + "containerImage": { + "$dynamic": true, + "type": "string", + "title": "The task runner container image, only used if the task runner is container-based.", + "default": "python:3.10.12", + "markdownDescription": "Default value is : `python:3.10.12`" + }, + "description": { + "type": "string" + }, + "disabled": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "docker": { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.scripts.exec.scripts.models.DockerOptions" + }, + { + "$dynamic": false, + "title": "Deprecated, use 'taskRunner' instead" + } + ] + }, + "id": { + "type": "string", + "minLength": 1, + "pattern": "^[a-zA-Z0-9][a-zA-Z0-9_-]*" + }, + "logLevel": { + "type": "string", + "enum": ["ERROR", "WARN", "INFO", "DEBUG", "TRACE"] + }, + "pipPackages": { + "$dynamic": true, + "title": "Override default pip packages to use a specific version.", + "type": "array", + "items": { + "$dynamic": true, + "type": "string" + } + }, + "productCatalog": { + "$dynamic": true, + "type": "string", + "title": "The version of product catalog wanted.", + "default": "1.0", + "minLength": 1, + "markdownDescription": "Default value is : `1.0`" + }, + "retry": { + "oneOf": [ + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Constant-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Exponential-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Random-2" + } + ] + }, + "site": { + "$dynamic": true, + "type": "string", + "title": "Your site URL.", + "minLength": 1, + "markdownDescription": "mostly in the form {site}.chargebee.com" + }, + "startDate": { + "$dynamic": true, + "type": "string", + "format": "date", + "title": "Determines how much historical data will be extracted.", + "markdownDescription": "Please be aware that the larger the time period and amount of data, the longer the initial extraction can be expected to take." + }, + "stateName": { + "$dynamic": true, + "type": "string", + "title": "The name of Singer state file.", + "default": "singer-state", + "markdownDescription": "Default value is : `singer-state`" + }, + "streamsConfigurations": { + "$dynamic": false, + "title": "The list of stream configurations", + "minItems": 1, + "type": "array", + "items": { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.models.StreamsConfiguration" + }, + { + "$dynamic": false + } + ] + } + }, + "taskRunner": { + "oneOf": [ + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.scripts.runner.docker.Docker" + }, + { + "$dynamic": false, + "title": "The task runner to use.", + "markdownDescription": "Task runners are provided by plugins, each have their own properties." + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.runner.Process" + }, + { + "$dynamic": false, + "title": "The task runner to use.", + "markdownDescription": "Task runners are provided by plugins, each have their own properties." + } + ] + } + ] + }, + "timeout": { + "type": "string", + "format": "duration" + }, + "type": { + "const": "io.kestra.plugin.singer.taps.ChargeBee" + }, + "workerGroup": { + "$ref": "#/definitions/io.kestra.core.models.tasks.WorkerGroup" + } + }, + "required": [ + "apiKey", + "id", + "site", + "startDate", + "streamsConfigurations", + "type" + ], + "title": "A Singer tap to fetch data from a ChargeBee account.", + "markdownDescription": "Full documentation can be found [here](https://github.com/hotgluexyz/tap-chargebee)" + }, + "io.kestra.plugin.singer.taps.ExchangeRateHost": { + "type": "object", + "properties": { + "allowFailure": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "base": { + "$dynamic": true, + "type": "string", + "title": "The exchange rates currency used for conversion.", + "default": "EUR", + "minLength": 1, + "markdownDescription": "Default value is : `EUR`" + }, + "command": { + "$dynamic": true, + "type": "string", + "title": "Override default singer command." + }, + "containerImage": { + "$dynamic": true, + "type": "string", + "title": "The task runner container image, only used if the task runner is container-based.", + "default": "python:3.10.12", + "markdownDescription": "Default value is : `python:3.10.12`" + }, + "description": { + "type": "string" + }, + "disabled": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "docker": { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.scripts.exec.scripts.models.DockerOptions" + }, + { + "$dynamic": false, + "title": "Deprecated, use 'taskRunner' instead" + } + ] + }, + "endDate": { + "$dynamic": true, + "type": "string", + "format": "date", + "title": "Date up to when historical data will be extracted." + }, + "id": { + "type": "string", + "minLength": 1, + "pattern": "^[a-zA-Z0-9][a-zA-Z0-9_-]*" + }, + "logLevel": { + "type": "string", + "enum": ["ERROR", "WARN", "INFO", "DEBUG", "TRACE"] + }, + "pipPackages": { + "$dynamic": true, + "title": "Override default pip packages to use a specific version.", + "type": "array", + "items": { + "$dynamic": true, + "type": "string" + } + }, + "retry": { + "oneOf": [ + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Constant-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Exponential-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Random-2" + } + ] + }, + "startDate": { + "$dynamic": true, + "type": "string", + "format": "date", + "title": "Determines how much historical data will be extracted.", + "markdownDescription": "Please be aware that the larger the time period and amount of data, the longer the initial extraction can be expected to take." + }, + "stateName": { + "$dynamic": true, + "type": "string", + "title": "The name of Singer state file.", + "default": "singer-state", + "markdownDescription": "Default value is : `singer-state`" + }, + "streamsConfigurations": { + "$dynamic": false, + "title": "The list of stream configurations", + "minItems": 1, + "type": "array", + "items": { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.models.StreamsConfiguration" + }, + { + "$dynamic": false + } + ] + } + }, + "taskRunner": { + "oneOf": [ + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.scripts.runner.docker.Docker" + }, + { + "$dynamic": false, + "title": "The task runner to use.", + "markdownDescription": "Task runners are provided by plugins, each have their own properties." + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.runner.Process" + }, + { + "$dynamic": false, + "title": "The task runner to use.", + "markdownDescription": "Task runners are provided by plugins, each have their own properties." + } + ] + } + ] + }, + "timeout": { + "type": "string", + "format": "duration" + }, + "type": { + "const": "io.kestra.plugin.singer.taps.ExchangeRateHost" + }, + "workerGroup": { + "$ref": "#/definitions/io.kestra.core.models.tasks.WorkerGroup" + } + }, + "required": ["id", "startDate", "streamsConfigurations", "type"], + "title": "A Singer tap to fetch data from a exchangerate.host API.", + "markdownDescription": "Full documentation can be found [here](https://github.com/anelendata/tap-exchangeratehost)" + }, + "io.kestra.plugin.singer.taps.FacebookAds": { + "type": "object", + "properties": { + "accessToken": { + "$dynamic": true, + "type": "string", + "title": "User Token generated by Facebook OAuth handshake.", + "minLength": 1 + }, + "accountId": { + "$dynamic": true, + "type": "string", + "title": "Your Facebook Ads Account ID.", + "minLength": 1 + }, + "allowFailure": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "command": { + "$dynamic": true, + "type": "string", + "title": "Override default singer command." + }, + "containerImage": { + "$dynamic": true, + "type": "string", + "title": "The task runner container image, only used if the task runner is container-based.", + "default": "python:3.10.12", + "markdownDescription": "Default value is : `python:3.10.12`" + }, + "description": { + "type": "string" + }, + "disabled": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "docker": { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.scripts.exec.scripts.models.DockerOptions" + }, + { + "$dynamic": false, + "title": "Deprecated, use 'taskRunner' instead" + } + ] + }, + "endDate": { + "$dynamic": true, + "type": "string", + "format": "date", + "title": "Date up to when historical data will be extracted." + }, + "id": { + "type": "string", + "minLength": 1, + "pattern": "^[a-zA-Z0-9][a-zA-Z0-9_-]*" + }, + "insightsBufferDays": { + "$dynamic": true, + "type": "integer", + "title": "How many Days before the Start Date to fetch Ads Insights for.", + "default": 0, + "markdownDescription": "Default value is : `0`" + }, + "logLevel": { + "type": "string", + "enum": ["ERROR", "WARN", "INFO", "DEBUG", "TRACE"] + }, + "pipPackages": { + "$dynamic": true, + "title": "Override default pip packages to use a specific version.", + "type": "array", + "items": { + "$dynamic": true, + "type": "string" + } + }, + "retry": { + "oneOf": [ + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Constant-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Exponential-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Random-2" + } + ] + }, + "startDate": { + "$dynamic": true, + "type": "string", + "format": "date", + "title": "Determines how much historical data will be extracted.", + "markdownDescription": "Please be aware that the larger the time period and amount of data, the longer the initial extraction can be expected to take." + }, + "stateName": { + "$dynamic": true, + "type": "string", + "title": "The name of Singer state file.", + "default": "singer-state", + "markdownDescription": "Default value is : `singer-state`" + }, + "streamsConfigurations": { + "$dynamic": false, + "title": "The list of stream configurations", + "minItems": 1, + "type": "array", + "items": { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.models.StreamsConfiguration" + }, + { + "$dynamic": false + } + ] + } + }, + "taskRunner": { + "oneOf": [ + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.scripts.runner.docker.Docker" + }, + { + "$dynamic": false, + "title": "The task runner to use.", + "markdownDescription": "Task runners are provided by plugins, each have their own properties." + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.runner.Process" + }, + { + "$dynamic": false, + "title": "The task runner to use.", + "markdownDescription": "Task runners are provided by plugins, each have their own properties." + } + ] + } + ] + }, + "timeout": { + "type": "string", + "format": "duration" + }, + "type": { + "const": "io.kestra.plugin.singer.taps.FacebookAds" + }, + "workerGroup": { + "$ref": "#/definitions/io.kestra.core.models.tasks.WorkerGroup" + } + }, + "required": [ + "accessToken", + "accountId", + "id", + "startDate", + "streamsConfigurations", + "type" + ], + "title": "A Singer tap to fetch data from a Facebook Ads.", + "markdownDescription": "Full documentation can be found [here](https://github.com/singer-io/tap-facebook)" + }, + "io.kestra.plugin.singer.taps.Fastly": { + "type": "object", + "properties": { + "allowFailure": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "apiToken": { + "$dynamic": true, + "type": "string", + "title": "Your API Token.", + "minLength": 1 + }, + "command": { + "$dynamic": true, + "type": "string", + "title": "Override default singer command." + }, + "containerImage": { + "$dynamic": true, + "type": "string", + "title": "The task runner container image, only used if the task runner is container-based.", + "default": "python:3.10.12", + "markdownDescription": "Default value is : `python:3.10.12`" + }, + "description": { + "type": "string" + }, + "disabled": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "docker": { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.scripts.exec.scripts.models.DockerOptions" + }, + { + "$dynamic": false, + "title": "Deprecated, use 'taskRunner' instead" + } + ] + }, + "id": { + "type": "string", + "minLength": 1, + "pattern": "^[a-zA-Z0-9][a-zA-Z0-9_-]*" + }, + "logLevel": { + "type": "string", + "enum": ["ERROR", "WARN", "INFO", "DEBUG", "TRACE"] + }, + "pipPackages": { + "$dynamic": true, + "title": "Override default pip packages to use a specific version.", + "type": "array", + "items": { + "$dynamic": true, + "type": "string" + } + }, + "retry": { + "oneOf": [ + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Constant-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Exponential-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Random-2" + } + ] + }, + "startDate": { + "$dynamic": true, + "type": "string", + "format": "date", + "title": "Determines how much historical data will be extracted.", + "markdownDescription": "Please be aware that the larger the time period and amount of data, the longer the initial extraction can be expected to take." + }, + "stateName": { + "$dynamic": true, + "type": "string", + "title": "The name of Singer state file.", + "default": "singer-state", + "markdownDescription": "Default value is : `singer-state`" + }, + "streamsConfigurations": { + "$dynamic": false, + "title": "The list of stream configurations", + "minItems": 1, + "type": "array", + "items": { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.models.StreamsConfiguration" + }, + { + "$dynamic": false + } + ] + } + }, + "taskRunner": { + "oneOf": [ + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.scripts.runner.docker.Docker" + }, + { + "$dynamic": false, + "title": "The task runner to use.", + "markdownDescription": "Task runners are provided by plugins, each have their own properties." + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.runner.Process" + }, + { + "$dynamic": false, + "title": "The task runner to use.", + "markdownDescription": "Task runners are provided by plugins, each have their own properties." + } + ] + } + ] + }, + "timeout": { + "type": "string", + "format": "duration" + }, + "type": { + "const": "io.kestra.plugin.singer.taps.Fastly" + }, + "workerGroup": { + "$ref": "#/definitions/io.kestra.core.models.tasks.WorkerGroup" + } + }, + "required": [ + "apiToken", + "id", + "startDate", + "streamsConfigurations", + "type" + ], + "title": "A Singer tap to fetch data from a Fastly account.", + "markdownDescription": "Full documentation can be found [here](https://gitlab.com/meltano/tap-fastly)" + }, + "io.kestra.plugin.singer.taps.GenericTap": { + "type": "object", + "properties": { + "allowFailure": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "command": { + "$dynamic": false, + "type": "string", + "title": "The command to start." + }, + "configs": { + "$dynamic": true, + "type": "object", + "title": "The configuration to use", + "markdownDescription": "Will be save on config.json and used as arguments" + }, + "containerImage": { + "$dynamic": true, + "type": "string", + "title": "The task runner container image, only used if the task runner is container-based.", + "default": "python:3.10.12", + "markdownDescription": "Default value is : `python:3.10.12`" + }, + "description": { + "type": "string" + }, + "disabled": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "docker": { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.scripts.exec.scripts.models.DockerOptions" + }, + { + "$dynamic": false, + "title": "Deprecated, use 'taskRunner' instead" + } + ] + }, + "features": { + "title": "The list of feature the connector supports.", + "default": ["PROPERTIES", "DISCOVER", "STATE"], + "markdownDescription": "Default value is : `- PROPERTIES\n- DISCOVER\n- STATE`\n\nDefault value is : `- PROPERTIES\n- DISCOVER\n- STATE`", + "type": "array", + "items": { + "type": "string", + "enum": ["CATALOG", "PROPERTIES", "DISCOVER", "STATE"] + } + }, + "id": { + "type": "string", + "minLength": 1, + "pattern": "^[a-zA-Z0-9][a-zA-Z0-9_-]*" + }, + "logLevel": { + "type": "string", + "enum": ["ERROR", "WARN", "INFO", "DEBUG", "TRACE"] + }, + "pipPackages": { + "$dynamic": false, + "title": "The list of pip package to install.", + "type": "array", + "items": { + "$dynamic": false, + "type": "string" + } + }, + "retry": { + "oneOf": [ + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Constant-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Exponential-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Random-2" + } + ] + }, + "stateName": { + "$dynamic": true, + "type": "string", + "title": "The name of Singer state file.", + "default": "singer-state", + "markdownDescription": "Default value is : `singer-state`" + }, + "streamsConfigurations": { + "$dynamic": false, + "title": "The list of stream configurations", + "minItems": 1, + "type": "array", + "items": { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.models.StreamsConfiguration" + }, + { + "$dynamic": false + } + ] + } + }, + "taskRunner": { + "oneOf": [ + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.scripts.runner.docker.Docker" + }, + { + "$dynamic": false, + "title": "The task runner to use.", + "markdownDescription": "Task runners are provided by plugins, each have their own properties." + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.runner.Process" + }, + { + "$dynamic": false, + "title": "The task runner to use.", + "markdownDescription": "Task runners are provided by plugins, each have their own properties." + } + ] + } + ] + }, + "timeout": { + "type": "string", + "format": "duration" + }, + "type": { + "const": "io.kestra.plugin.singer.taps.GenericTap" + }, + "workerGroup": { + "$ref": "#/definitions/io.kestra.core.models.tasks.WorkerGroup" + } + }, + "required": [ + "command", + "configs", + "id", + "pipPackages", + "streamsConfigurations", + "type" + ], + "title": "A Generic Singer tap." + }, + "io.kestra.plugin.singer.taps.GitHub": { + "type": "object", + "properties": { + "accessToken": { + "$dynamic": true, + "type": "string", + "title": "A GitHub personal access token.", + "minLength": 1, + "markdownDescription": "Login to your GitHub account, go to the [Personal Access Tokens](https://github.com/settings/tokens) settings page, and generate a new token with at least the `repo` scope." + }, + "allowFailure": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "command": { + "$dynamic": true, + "type": "string", + "title": "Override default singer command." + }, + "containerImage": { + "$dynamic": true, + "type": "string", + "title": "The task runner container image, only used if the task runner is container-based.", + "default": "python:3.10.12", + "markdownDescription": "Default value is : `python:3.10.12`" + }, + "description": { + "type": "string" + }, + "disabled": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "docker": { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.scripts.exec.scripts.models.DockerOptions" + }, + { + "$dynamic": false, + "title": "Deprecated, use 'taskRunner' instead" + } + ] + }, + "id": { + "type": "string", + "minLength": 1, + "pattern": "^[a-zA-Z0-9][a-zA-Z0-9_-]*" + }, + "logLevel": { + "type": "string", + "enum": ["ERROR", "WARN", "INFO", "DEBUG", "TRACE"] + }, + "pipPackages": { + "$dynamic": true, + "title": "Override default pip packages to use a specific version.", + "type": "array", + "items": { + "$dynamic": true, + "type": "string" + } + }, + "repositories": { + "$dynamic": true, + "title": "List of GitHub repositories.", + "markdownDescription": "The repo path is relative to https://github.com/. \nFor example the path for [this repository](https://github.com/kestra-io/kestra) is `kestra-io/kestra`." + }, + "requestTimeout": { + "$dynamic": false, + "type": "integer", + "title": "Timeout for each request on github API.", + "default": 300, + "markdownDescription": "Default value is : `300`" + }, + "retry": { + "oneOf": [ + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Constant-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Exponential-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Random-2" + } + ] + }, + "startDate": { + "$dynamic": true, + "type": "string", + "format": "date", + "title": "Determines how much historical data will be extracted.", + "markdownDescription": "Please be aware that the larger the time period and amount of data, the longer the initial extraction can be expected to take." + }, + "stateName": { + "$dynamic": true, + "type": "string", + "title": "The name of Singer state file.", + "default": "singer-state", + "markdownDescription": "Default value is : `singer-state`" + }, + "streamsConfigurations": { + "$dynamic": false, + "title": "The list of stream configurations", + "minItems": 1, + "type": "array", + "items": { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.models.StreamsConfiguration" + }, + { + "$dynamic": false + } + ] + } + }, + "taskRunner": { + "oneOf": [ + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.scripts.runner.docker.Docker" + }, + { + "$dynamic": false, + "title": "The task runner to use.", + "markdownDescription": "Task runners are provided by plugins, each have their own properties." + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.runner.Process" + }, + { + "$dynamic": false, + "title": "The task runner to use.", + "markdownDescription": "Task runners are provided by plugins, each have their own properties." + } + ] + } + ] + }, + "timeout": { + "type": "string", + "format": "duration" + }, + "type": { + "const": "io.kestra.plugin.singer.taps.GitHub" + }, + "workerGroup": { + "$ref": "#/definitions/io.kestra.core.models.tasks.WorkerGroup" + } + }, + "required": [ + "accessToken", + "id", + "repositories", + "startDate", + "streamsConfigurations", + "type" + ], + "title": "A Singer tap to fetch data from a GitHub API.", + "markdownDescription": "Full documentation can be found [here](https://github.com/singer-io/tap-github)" + }, + "io.kestra.plugin.singer.taps.Gitlab": { + "type": "object", + "properties": { + "allowFailure": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "apiUrl": { + "$dynamic": true, + "type": "string", + "title": "GitLab API/instance URL.", + "default": "https://gitlab.com", + "minLength": 1, + "markdownDescription": "When an API path is omitted, `/api/v4/` is assumed.\n\nDefault value is : `https://gitlab.com`" + }, + "command": { + "$dynamic": true, + "type": "string", + "title": "Override default singer command." + }, + "containerImage": { + "$dynamic": true, + "type": "string", + "title": "The task runner container image, only used if the task runner is container-based.", + "default": "python:3.10.12", + "markdownDescription": "Default value is : `python:3.10.12`" + }, + "description": { + "type": "string" + }, + "disabled": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "docker": { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.scripts.exec.scripts.models.DockerOptions" + }, + { + "$dynamic": false, + "title": "Deprecated, use 'taskRunner' instead" + } + ] + }, + "fetchMergeRequestCommits": { + "$dynamic": true, + "type": "boolean", + "title": "For each Merge Request, also fetch the MR's commits and create the join table `merge_request_commits` with the Merge Request and related Commit IDs.", + "default": false, + "markdownDescription": "This can slow down extraction considerably because of the many API calls required.\n\nDefault value is : `false`" + }, + "fetchPipelinesExtended": { + "$dynamic": true, + "type": "boolean", + "title": "For every Pipeline, also fetch extended details of each of these pipelines.", + "default": false, + "markdownDescription": "This can slow down extraction considerably because of the many API calls required.\n\nDefault value is : `false`" + }, + "groups": { + "$dynamic": true, + "title": "Names of groups to extract data from.", + "markdownDescription": "Leave empty and provide a project name if you'd like to pull data from a project in a personal user namespace.", + "type": "array", + "items": { + "$dynamic": true, + "type": "string" + } + }, + "id": { + "type": "string", + "minLength": 1, + "pattern": "^[a-zA-Z0-9][a-zA-Z0-9_-]*" + }, + "logLevel": { + "type": "string", + "enum": ["ERROR", "WARN", "INFO", "DEBUG", "TRACE"] + }, + "pipPackages": { + "$dynamic": true, + "title": "Override default pip packages to use a specific version.", + "type": "array", + "items": { + "$dynamic": true, + "type": "string" + } + }, + "private_token": { + "$dynamic": true, + "type": "string", + "title": "GitLab personal access token or other API token.", + "minLength": 1 + }, + "projects": { + "$dynamic": true, + "title": "`namespace/project` paths of projects to extract data from.", + "markdownDescription": "Leave empty and provide a group name to extract data from all group projects.", + "type": "array", + "items": { + "$dynamic": true, + "type": "string" + } + }, + "retry": { + "oneOf": [ + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Constant-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Exponential-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Random-2" + } + ] + }, + "startDate": { + "$dynamic": true, + "type": "string", + "format": "date", + "title": "Determines how much historical data will be extracted.", + "markdownDescription": "Please be aware that the larger the time period and amount of data, the longer the initial extraction can be expected to take." + }, + "stateName": { + "$dynamic": true, + "type": "string", + "title": "The name of Singer state file.", + "default": "singer-state", + "markdownDescription": "Default value is : `singer-state`" + }, + "streamsConfigurations": { + "$dynamic": false, + "title": "The list of stream configurations", + "minItems": 1, + "type": "array", + "items": { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.models.StreamsConfiguration" + }, + { + "$dynamic": false + } + ] + } + }, + "taskRunner": { + "oneOf": [ + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.scripts.runner.docker.Docker" + }, + { + "$dynamic": false, + "title": "The task runner to use.", + "markdownDescription": "Task runners are provided by plugins, each have their own properties." + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.runner.Process" + }, + { + "$dynamic": false, + "title": "The task runner to use.", + "markdownDescription": "Task runners are provided by plugins, each have their own properties." + } + ] + } + ] + }, + "timeout": { + "type": "string", + "format": "duration" + }, + "type": { + "const": "io.kestra.plugin.singer.taps.Gitlab" + }, + "ultimateLicense": { + "$dynamic": true, + "type": "boolean", + "title": "Enable to pull in extra data (like Epics, Epic Issues and other entities) only available to GitLab Ultimate and GitLab.com Gold accounts.", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "workerGroup": { + "$ref": "#/definitions/io.kestra.core.models.tasks.WorkerGroup" + } + }, + "required": [ + "id", + "private_token", + "startDate", + "streamsConfigurations", + "type" + ], + "title": "A Singer tap to fetch data from a GitLab account.", + "markdownDescription": "Full documentation can be found [here](https://gitlab.com/meltano/tap-gitlab.git)" + }, + "io.kestra.plugin.singer.taps.GoogleAdwords": { + "type": "object", + "properties": { + "allowFailure": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "command": { + "$dynamic": true, + "type": "string", + "title": "Override default singer command." + }, + "containerImage": { + "$dynamic": true, + "type": "string", + "title": "The task runner container image, only used if the task runner is container-based.", + "default": "python:3.10.12", + "markdownDescription": "Default value is : `python:3.10.12`" + }, + "conversionWindowDays": { + "$dynamic": false, + "type": "integer", + "title": "How many Days before the Start Date to fetch data for Performance Reports.", + "default": 0, + "markdownDescription": "Default value is : `0`" + }, + "customerIds": { + "$dynamic": true, + "title": "A list of Ad Account IDs to replicate data from.", + "minItems": 1, + "type": "array", + "items": { + "$dynamic": true, + "type": "string" + } + }, + "description": { + "type": "string" + }, + "developerToken": { + "$dynamic": true, + "type": "string", + "title": "Your developer token for Google AdWord application.", + "minLength": 1 + }, + "disabled": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "docker": { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.scripts.exec.scripts.models.DockerOptions" + }, + { + "$dynamic": false, + "title": "Deprecated, use 'taskRunner' instead" + } + ] + }, + "endDate": { + "$dynamic": true, + "type": "string", + "format": "date", + "title": "Date up to when historical data will be extracted." + }, + "id": { + "type": "string", + "minLength": 1, + "pattern": "^[a-zA-Z0-9][a-zA-Z0-9_-]*" + }, + "logLevel": { + "type": "string", + "enum": ["ERROR", "WARN", "INFO", "DEBUG", "TRACE"] + }, + "oauthClientId": { + "$dynamic": true, + "type": "string", + "title": "Your Google OAuth Client ID.", + "minLength": 1 + }, + "oauthClientSecret": { + "$dynamic": true, + "type": "string", + "title": "Your Google OAuth Client Secret.", + "minLength": 1 + }, + "pipPackages": { + "$dynamic": true, + "title": "Override default pip packages to use a specific version.", + "type": "array", + "items": { + "$dynamic": true, + "type": "string" + } + }, + "primaryKeys": { + "$dynamic": false, + "type": "object", + "title": "Primary Keys for the selected Entities (Streams)." + }, + "refreshToken": { + "$dynamic": true, + "type": "string", + "title": "The Refresh Token generated through the OAuth flow run using your OAuth Client and your developer token.", + "minLength": 1 + }, + "retry": { + "oneOf": [ + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Constant-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Exponential-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Random-2" + } + ] + }, + "startDate": { + "$dynamic": true, + "type": "string", + "format": "date", + "title": "Determines how much historical data will be extracted.", + "markdownDescription": "Please be aware that the larger the time period and amount of data, the longer the initial extraction can be expected to take." + }, + "stateName": { + "$dynamic": true, + "type": "string", + "title": "The name of Singer state file.", + "default": "singer-state", + "markdownDescription": "Default value is : `singer-state`" + }, + "streamsConfigurations": { + "$dynamic": false, + "title": "The list of stream configurations", + "minItems": 1, + "type": "array", + "items": { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.models.StreamsConfiguration" + }, + { + "$dynamic": false + } + ] + } + }, + "taskRunner": { + "oneOf": [ + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.scripts.runner.docker.Docker" + }, + { + "$dynamic": false, + "title": "The task runner to use.", + "markdownDescription": "Task runners are provided by plugins, each have their own properties." + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.runner.Process" + }, + { + "$dynamic": false, + "title": "The task runner to use.", + "markdownDescription": "Task runners are provided by plugins, each have their own properties." + } + ] + } + ] + }, + "timeout": { + "type": "string", + "format": "duration" + }, + "type": { + "const": "io.kestra.plugin.singer.taps.GoogleAdwords" + }, + "userAgent": { + "$dynamic": true, + "type": "string", + "title": "User Agent for your OAuth Client.", + "default": "tap-adwords via Kestra", + "markdownDescription": "Default value is : `tap-adwords via Kestra`" + }, + "workerGroup": { + "$ref": "#/definitions/io.kestra.core.models.tasks.WorkerGroup" + } + }, + "required": [ + "customerIds", + "developerToken", + "id", + "oauthClientId", + "oauthClientSecret", + "refreshToken", + "startDate", + "streamsConfigurations", + "type" + ], + "title": "A Singer tap to fetch data from Google Adwords.", + "markdownDescription": "Full documentation can be found [here](https://gitlab.com/meltano/tap-adwords)" + }, + "io.kestra.plugin.singer.taps.GoogleAnalytics": { + "type": "object", + "properties": { + "allowFailure": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "command": { + "$dynamic": true, + "type": "string", + "title": "Override default singer command." + }, + "containerImage": { + "$dynamic": true, + "type": "string", + "title": "The task runner container image, only used if the task runner is container-based.", + "default": "python:3.10.12", + "markdownDescription": "Default value is : `python:3.10.12`" + }, + "description": { + "type": "string" + }, + "disabled": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "docker": { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.scripts.exec.scripts.models.DockerOptions" + }, + { + "$dynamic": false, + "title": "Deprecated, use 'taskRunner' instead" + } + ] + }, + "endDate": { + "$dynamic": true, + "type": "string", + "format": "date", + "title": "Date up to when historical data will be extracted." + }, + "id": { + "type": "string", + "minLength": 1, + "pattern": "^[a-zA-Z0-9][a-zA-Z0-9_-]*" + }, + "logLevel": { + "type": "string", + "enum": ["ERROR", "WARN", "INFO", "DEBUG", "TRACE"] + }, + "oauthAccessToken": { + "$dynamic": true, + "type": "string", + "title": "OAuth Access Token." + }, + "oauthClientId": { + "$dynamic": true, + "type": "string", + "title": "OAuth Client ID" + }, + "oauthClientSecret": { + "$dynamic": true, + "type": "string", + "title": "OAuth Client Secret." + }, + "oauthRefreshToken": { + "$dynamic": true, + "type": "string", + "title": "OAuth Refresh Token." + }, + "pipPackages": { + "$dynamic": true, + "title": "Override default pip packages to use a specific version.", + "type": "array", + "items": { + "$dynamic": true, + "type": "string" + } + }, + "reports": { + "$dynamic": true, + "title": "Reports.", + "type": "array", + "items": { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.taps.GoogleAnalytics-Report" + }, + { + "$dynamic": true + } + ] + } + }, + "retry": { + "oneOf": [ + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Constant-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Exponential-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Random-2" + } + ] + }, + "serviceAccount": { + "$dynamic": true, + "type": "string", + "title": "Service account as json." + }, + "startDate": { + "$dynamic": true, + "type": "string", + "format": "date", + "title": "Determines how much historical data will be extracted.", + "markdownDescription": "Please be aware that the larger the time period and amount of data, the longer the initial extraction can be expected to take." + }, + "stateName": { + "$dynamic": true, + "type": "string", + "title": "The name of Singer state file.", + "default": "singer-state", + "markdownDescription": "Default value is : `singer-state`" + }, + "streamsConfigurations": { + "$dynamic": false, + "title": "The list of stream configurations", + "minItems": 1, + "type": "array", + "items": { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.models.StreamsConfiguration" + }, + { + "$dynamic": false + } + ] + } + }, + "taskRunner": { + "oneOf": [ + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.scripts.runner.docker.Docker" + }, + { + "$dynamic": false, + "title": "The task runner to use.", + "markdownDescription": "Task runners are provided by plugins, each have their own properties." + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.runner.Process" + }, + { + "$dynamic": false, + "title": "The task runner to use.", + "markdownDescription": "Task runners are provided by plugins, each have their own properties." + } + ] + } + ] + }, + "timeout": { + "type": "string", + "format": "duration" + }, + "type": { + "const": "io.kestra.plugin.singer.taps.GoogleAnalytics" + }, + "view_id": { + "$dynamic": true, + "type": "string", + "title": "OAuth Refresh Token." + }, + "workerGroup": { + "$ref": "#/definitions/io.kestra.core.models.tasks.WorkerGroup" + } + }, + "required": ["id", "startDate", "streamsConfigurations", "type"], + "title": "A Singer tap to fetch data from from the Google Analytics Reporting API.", + "markdownDescription": "Full documentation can be found [here](https://gitlab.com/meltano/tap-google-analytics)" + }, + "io.kestra.plugin.singer.taps.GoogleAnalytics-Report": { + "type": "object", + "properties": { + "dimensions": { + "type": "array", + "items": { + "type": "string" + } + }, + "metrics": { + "type": "array", + "items": { + "type": "string" + } + }, + "name": { + "type": "string" + } + } + }, + "io.kestra.plugin.singer.taps.GoogleSearchConsole": { + "type": "object", + "properties": { + "allowFailure": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "clientId": { + "$dynamic": true, + "type": "string", + "title": "Your Google OAuth Client ID.", + "minLength": 1 + }, + "clientSecret": { + "$dynamic": true, + "type": "string", + "title": "Your Google OAuth Client Secret.", + "minLength": 1 + }, + "command": { + "$dynamic": true, + "type": "string", + "title": "Override default singer command." + }, + "containerImage": { + "$dynamic": true, + "type": "string", + "title": "The task runner container image, only used if the task runner is container-based.", + "default": "python:3.10.12", + "markdownDescription": "Default value is : `python:3.10.12`" + }, + "description": { + "type": "string" + }, + "disabled": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "docker": { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.scripts.exec.scripts.models.DockerOptions" + }, + { + "$dynamic": false, + "title": "Deprecated, use 'taskRunner' instead" + } + ] + }, + "id": { + "type": "string", + "minLength": 1, + "pattern": "^[a-zA-Z0-9][a-zA-Z0-9_-]*" + }, + "logLevel": { + "type": "string", + "enum": ["ERROR", "WARN", "INFO", "DEBUG", "TRACE"] + }, + "pipPackages": { + "$dynamic": true, + "title": "Override default pip packages to use a specific version.", + "type": "array", + "items": { + "$dynamic": true, + "type": "string" + } + }, + "refreshToken": { + "$dynamic": true, + "type": "string", + "title": "The Refresh Token generated through the OAuth flow run using your OAuth Client and your developer token.", + "minLength": 1 + }, + "retry": { + "oneOf": [ + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Constant-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Exponential-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Random-2" + } + ] + }, + "siteUrls": { + "$dynamic": true, + "title": "Website URL properties.", + "minItems": 1, + "markdownDescription": "Do not include the domain-level property in the list.", + "type": "array", + "items": { + "$dynamic": true, + "type": "string" + } + }, + "startDate": { + "$dynamic": true, + "type": "string", + "format": "date", + "title": "Determines how much historical data will be extracted.", + "markdownDescription": "Please be aware that the larger the time period and amount of data, the longer the initial extraction can be expected to take." + }, + "stateName": { + "$dynamic": true, + "type": "string", + "title": "The name of Singer state file.", + "default": "singer-state", + "markdownDescription": "Default value is : `singer-state`" + }, + "streamsConfigurations": { + "$dynamic": false, + "title": "The list of stream configurations", + "minItems": 1, + "type": "array", + "items": { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.models.StreamsConfiguration" + }, + { + "$dynamic": false + } + ] + } + }, + "taskRunner": { + "oneOf": [ + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.scripts.runner.docker.Docker" + }, + { + "$dynamic": false, + "title": "The task runner to use.", + "markdownDescription": "Task runners are provided by plugins, each have their own properties." + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.runner.Process" + }, + { + "$dynamic": false, + "title": "The task runner to use.", + "markdownDescription": "Task runners are provided by plugins, each have their own properties." + } + ] + } + ] + }, + "timeout": { + "type": "string", + "format": "duration" + }, + "type": { + "const": "io.kestra.plugin.singer.taps.GoogleSearchConsole" + }, + "userAgent": { + "$dynamic": true, + "type": "string", + "title": "User Agent for your OAuth Client.", + "default": "tap-google-search-console via Kestra", + "markdownDescription": "Default value is : `tap-google-search-console via Kestra`" + }, + "workerGroup": { + "$ref": "#/definitions/io.kestra.core.models.tasks.WorkerGroup" + } + }, + "required": [ + "clientId", + "clientSecret", + "id", + "refreshToken", + "siteUrls", + "startDate", + "streamsConfigurations", + "type" + ], + "title": "A Singer tap to fetch data from the Google Search console.", + "markdownDescription": "Full documentation can be found [here](https://github.com/singer-io/tap-google-search-console)" + }, + "io.kestra.plugin.singer.taps.HubSpot": { + "type": "object", + "properties": { + "accessToken": { + "$dynamic": true, + "type": "string", + "title": "API Access Token", + "minLength": 1 + }, + "allowFailure": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "command": { + "$dynamic": true, + "type": "string", + "title": "Override default singer command." + }, + "containerImage": { + "$dynamic": true, + "type": "string", + "title": "The task runner container image, only used if the task runner is container-based.", + "default": "python:3.10.12", + "markdownDescription": "Default value is : `python:3.10.12`" + }, + "description": { + "type": "string" + }, + "disabled": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "docker": { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.scripts.exec.scripts.models.DockerOptions" + }, + { + "$dynamic": false, + "title": "Deprecated, use 'taskRunner' instead" + } + ] + }, + "flatteningEnabled": { + "$dynamic": true, + "type": "boolean", + "title": "To enable schema flattening and automatically expand nested properties.", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "flatteningMaxDepth": { + "$dynamic": true, + "type": "integer", + "title": "The max depth to flatten schemas." + }, + "id": { + "type": "string", + "minLength": 1, + "pattern": "^[a-zA-Z0-9][a-zA-Z0-9_-]*" + }, + "logLevel": { + "type": "string", + "enum": ["ERROR", "WARN", "INFO", "DEBUG", "TRACE"] + }, + "pipPackages": { + "$dynamic": true, + "title": "Override default pip packages to use a specific version.", + "type": "array", + "items": { + "$dynamic": true, + "type": "string" + } + }, + "retry": { + "oneOf": [ + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Constant-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Exponential-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Random-2" + } + ] + }, + "startDate": { + "$dynamic": true, + "type": "string", + "format": "date", + "title": "Determines how much historical data will be extracted.", + "markdownDescription": "Please be aware that the larger the time period and amount of data, the longer the initial extraction can be expected to take." + }, + "stateName": { + "$dynamic": true, + "type": "string", + "title": "The name of Singer state file.", + "default": "singer-state", + "markdownDescription": "Default value is : `singer-state`" + }, + "streamMapConfig": { + "$dynamic": true, + "type": "object", + "title": "User-defined config values to be used within map expressions." + }, + "streamMaps": { + "$dynamic": true, + "type": "object", + "title": "List Config object for stream maps capability.", + "markdownDescription": "For more information check out [Stream Maps](https://sdk.meltano.com/en/latest/stream_maps.html)." + }, + "streamsConfigurations": { + "$dynamic": false, + "title": "The list of stream configurations", + "minItems": 1, + "type": "array", + "items": { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.models.StreamsConfiguration" + }, + { + "$dynamic": false + } + ] + } + }, + "taskRunner": { + "oneOf": [ + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.scripts.runner.docker.Docker" + }, + { + "$dynamic": false, + "title": "The task runner to use.", + "markdownDescription": "Task runners are provided by plugins, each have their own properties." + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.runner.Process" + }, + { + "$dynamic": false, + "title": "The task runner to use.", + "markdownDescription": "Task runners are provided by plugins, each have their own properties." + } + ] + } + ] + }, + "timeout": { + "type": "string", + "format": "duration" + }, + "type": { + "const": "io.kestra.plugin.singer.taps.HubSpot" + }, + "workerGroup": { + "$ref": "#/definitions/io.kestra.core.models.tasks.WorkerGroup" + } + }, + "required": [ + "accessToken", + "id", + "startDate", + "streamsConfigurations", + "type" + ], + "title": "A Singer tap to fetch data from a HubSpot API.", + "markdownDescription": "Full documentation can be found [here](https://github.com/potloc/tap-hubspot)" + }, + "io.kestra.plugin.singer.taps.Marketo": { + "type": "object", + "properties": { + "allowFailure": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "clientId": { + "$dynamic": true, + "type": "string", + "title": "Marketo client ID.", + "minLength": 1 + }, + "clientSecret": { + "$dynamic": true, + "type": "string", + "title": "Marketo client secret.", + "minLength": 1 + }, + "command": { + "$dynamic": true, + "type": "string", + "title": "Override default singer command." + }, + "containerImage": { + "$dynamic": true, + "type": "string", + "title": "The task runner container image, only used if the task runner is container-based.", + "default": "python:3.10.12", + "markdownDescription": "Default value is : `python:3.10.12`" + }, + "description": { + "type": "string" + }, + "disabled": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "docker": { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.scripts.exec.scripts.models.DockerOptions" + }, + { + "$dynamic": false, + "title": "Deprecated, use 'taskRunner' instead" + } + ] + }, + "endpoint": { + "$dynamic": true, + "type": "string", + "title": "Endpoint URL.", + "minLength": 1, + "markdownDescription": "The base URL contains the account id (a.k.a. Munchkin id) and is therefore unique for each Marketo subscription. Your base URL is found by logging into Marketo and navigating to the Admin \u003E Integration \u003E Web Services menu. It is labeled as “Endpoint:” underneath the “REST API” section as shown in the following screenshots." + }, + "id": { + "type": "string", + "minLength": 1, + "pattern": "^[a-zA-Z0-9][a-zA-Z0-9_-]*" + }, + "identity": { + "$dynamic": true, + "type": "string", + "title": "Identity.", + "minLength": 1, + "markdownDescription": "Identity is found directly below the endpoint entry.https://developers.marketo.com/rest-api/base-url/" + }, + "logLevel": { + "type": "string", + "enum": ["ERROR", "WARN", "INFO", "DEBUG", "TRACE"] + }, + "pipPackages": { + "$dynamic": true, + "title": "Override default pip packages to use a specific version.", + "type": "array", + "items": { + "$dynamic": true, + "type": "string" + } + }, + "retry": { + "oneOf": [ + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Constant-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Exponential-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Random-2" + } + ] + }, + "startDate": { + "$dynamic": true, + "type": "string", + "format": "date", + "title": "Determines how much historical data will be extracted.", + "markdownDescription": "Please be aware that the larger the time period and amount of data, the longer the initial extraction can be expected to take." + }, + "stateName": { + "$dynamic": true, + "type": "string", + "title": "The name of Singer state file.", + "default": "singer-state", + "markdownDescription": "Default value is : `singer-state`" + }, + "streamsConfigurations": { + "$dynamic": false, + "title": "The list of stream configurations", + "minItems": 1, + "type": "array", + "items": { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.models.StreamsConfiguration" + }, + { + "$dynamic": false + } + ] + } + }, + "taskRunner": { + "oneOf": [ + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.scripts.runner.docker.Docker" + }, + { + "$dynamic": false, + "title": "The task runner to use.", + "markdownDescription": "Task runners are provided by plugins, each have their own properties." + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.runner.Process" + }, + { + "$dynamic": false, + "title": "The task runner to use.", + "markdownDescription": "Task runners are provided by plugins, each have their own properties." + } + ] + } + ] + }, + "timeout": { + "type": "string", + "format": "duration" + }, + "type": { + "const": "io.kestra.plugin.singer.taps.Marketo" + }, + "workerGroup": { + "$ref": "#/definitions/io.kestra.core.models.tasks.WorkerGroup" + } + }, + "required": [ + "clientId", + "clientSecret", + "endpoint", + "id", + "identity", + "startDate", + "streamsConfigurations", + "type" + ], + "title": "A Singer tap to fetch data from a Marketo account.", + "markdownDescription": "Full documentation can be found [here](https://gitlab.com/meltano/tap-marketo.git)" + }, + "io.kestra.plugin.singer.taps.Netsuite": { + "type": "object", + "properties": { + "accountId": { + "$dynamic": true, + "type": "string", + "title": "Your account ID.", + "minLength": 1, + "markdownDescription": "This can be found under Setup -\u003E Company -\u003E Company Information. Look for Account Id. Note `_SB` is for Sandbox account." + }, + "allowFailure": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "command": { + "$dynamic": true, + "type": "string", + "title": "Override default singer command." + }, + "consumerKey": { + "$dynamic": true, + "type": "string", + "title": "Your consumer key for token based authentication consumer key for SOAP connection.", + "minLength": 1, + "markdownDescription": "Visit [this page](https://support.cazoomi.com/hc/en-us/articles/360010093392-How-to-Setup-NetSuite-Token-Based-Authentication-as-Authentication-Type) for details." + }, + "consumerSecret": { + "$dynamic": true, + "type": "string", + "title": "Your consumer secret for token based authentication consumer key for SOAP connection.", + "minLength": 1, + "markdownDescription": "Visit [this page](https://support.cazoomi.com/hc/en-us/articles/360010093392-How-to-Setup-NetSuite-Token-Based-Authentication-as-Authentication-Type) for details." + }, + "containerImage": { + "$dynamic": true, + "type": "string", + "title": "The task runner container image, only used if the task runner is container-based.", + "default": "python:3.10.12", + "markdownDescription": "Default value is : `python:3.10.12`" + }, + "description": { + "type": "string" + }, + "disabled": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "docker": { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.scripts.exec.scripts.models.DockerOptions" + }, + { + "$dynamic": false, + "title": "Deprecated, use 'taskRunner' instead" + } + ] + }, + "id": { + "type": "string", + "minLength": 1, + "pattern": "^[a-zA-Z0-9][a-zA-Z0-9_-]*" + }, + "isSandbox": { + "$dynamic": true, + "type": "boolean", + "title": "Is this sandbox account.", + "markdownDescription": "This should always be set to `true` if you are connecting Production account of NetSuite. Set it to `false` if you want to connect to SandBox account." + }, + "logLevel": { + "type": "string", + "enum": ["ERROR", "WARN", "INFO", "DEBUG", "TRACE"] + }, + "pipPackages": { + "$dynamic": true, + "title": "Override default pip packages to use a specific version.", + "type": "array", + "items": { + "$dynamic": true, + "type": "string" + } + }, + "retry": { + "oneOf": [ + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Constant-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Exponential-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Random-2" + } + ] + }, + "selectFieldsByDefault": { + "$dynamic": true, + "type": "boolean", + "title": "Behaviour when new fields are discovered.", + "markdownDescription": "When new fields are discovered in NetSuite objects, the select_fields_by_default key describes whether or not the tap will select those fields by default." + }, + "startDate": { + "$dynamic": true, + "type": "string", + "format": "date", + "title": "Determines how much historical data will be extracted.", + "markdownDescription": "Please be aware that the larger the time period and amount of data, the longer the initial extraction can be expected to take." + }, + "stateName": { + "$dynamic": true, + "type": "string", + "title": "The name of Singer state file.", + "default": "singer-state", + "markdownDescription": "Default value is : `singer-state`" + }, + "streamsConfigurations": { + "$dynamic": false, + "title": "The list of stream configurations", + "minItems": 1, + "type": "array", + "items": { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.models.StreamsConfiguration" + }, + { + "$dynamic": false + } + ] + } + }, + "taskRunner": { + "oneOf": [ + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.scripts.runner.docker.Docker" + }, + { + "$dynamic": false, + "title": "The task runner to use.", + "markdownDescription": "Task runners are provided by plugins, each have their own properties." + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.runner.Process" + }, + { + "$dynamic": false, + "title": "The task runner to use.", + "markdownDescription": "Task runners are provided by plugins, each have their own properties." + } + ] + } + ] + }, + "timeout": { + "type": "string", + "format": "duration" + }, + "tokenKey": { + "$dynamic": true, + "type": "string", + "title": "Your token key for token based authentication consumer key for SOAP connection.", + "minLength": 1, + "markdownDescription": "Visit [this page](https://support.cazoomi.com/hc/en-us/articles/360010093392-How-to-Setup-NetSuite-Token-Based-Authentication-as-Authentication-Type) for details." + }, + "tokenSecret": { + "$dynamic": true, + "type": "string", + "title": "our token secret for token based authentication consumer key for SOAP connection.", + "minLength": 1, + "markdownDescription": "Visit [this page](https://support.cazoomi.com/hc/en-us/articles/360010093392-How-to-Setup-NetSuite-Token-Based-Authentication-as-Authentication-Type) for details." + }, + "type": { + "const": "io.kestra.plugin.singer.taps.Netsuite" + }, + "workerGroup": { + "$ref": "#/definitions/io.kestra.core.models.tasks.WorkerGroup" + } + }, + "required": [ + "accountId", + "consumerKey", + "consumerSecret", + "id", + "isSandbox", + "selectFieldsByDefault", + "startDate", + "streamsConfigurations", + "tokenKey", + "tokenSecret", + "type" + ], + "title": "A Singer tap to fetch data from a Netsuite account.", + "markdownDescription": "Full documentation can be found [here](https://github.com/hotgluexyz/tap-netsuite)" + }, + "io.kestra.plugin.singer.taps.PipelinewiseMongoDb": { + "type": "object", + "properties": { + "allowFailure": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "authDatabase": { + "$dynamic": true, + "type": "string", + "title": "The database name to authenticate on." + }, + "awaitTimeMs": { + "$dynamic": false, + "type": "integer", + "title": "The maximum amount of time in milliseconds waits for new data changes before exiting.", + "default": 1000, + "markdownDescription": "For LOG_BASED only.\n\nDefault value is : `1000`" + }, + "command": { + "$dynamic": true, + "type": "string", + "title": "Override default singer command." + }, + "containerImage": { + "$dynamic": true, + "type": "string", + "title": "The task runner container image, only used if the task runner is container-based.", + "default": "python:3.10.12", + "markdownDescription": "Default value is : `python:3.10.12`" + }, + "database": { + "$dynamic": true, + "type": "string", + "title": "The database name." + }, + "description": { + "type": "string" + }, + "disabled": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "docker": { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.scripts.exec.scripts.models.DockerOptions" + }, + { + "$dynamic": false, + "title": "Deprecated, use 'taskRunner' instead" + } + ] + }, + "host": { + "$dynamic": true, + "type": "string", + "title": "The database hostname.", + "minLength": 1 + }, + "id": { + "type": "string", + "minLength": 1, + "pattern": "^[a-zA-Z0-9][a-zA-Z0-9_-]*" + }, + "includeSchemaInStream": { + "$dynamic": false, + "type": "boolean", + "title": "Forces the stream names to take the form `\u003Cdatabase_name\u003E_\u003Ccollection_name\u003E` instead of `\u003Ccollection_name\u003E`.", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "logLevel": { + "type": "string", + "enum": ["ERROR", "WARN", "INFO", "DEBUG", "TRACE"] + }, + "password": { + "$dynamic": true, + "type": "string", + "title": "The database user's password." + }, + "pipPackages": { + "$dynamic": true, + "title": "Override default pip packages to use a specific version.", + "type": "array", + "items": { + "$dynamic": true, + "type": "string" + } + }, + "port": { + "$dynamic": false, + "type": "integer", + "title": "The database port." + }, + "replicaSet": { + "$dynamic": true, + "type": "string", + "title": "The name of replica set." + }, + "retry": { + "oneOf": [ + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Constant-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Exponential-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Random-2" + } + ] + }, + "ssl": { + "$dynamic": false, + "type": "boolean", + "title": "If ssl is enabled.", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "sslVerify": { + "$dynamic": false, + "type": "boolean", + "title": "Default SSL verify mode.", + "default": true, + "markdownDescription": "Default value is : `true`" + }, + "stateName": { + "$dynamic": true, + "type": "string", + "title": "The name of Singer state file.", + "default": "singer-state", + "markdownDescription": "Default value is : `singer-state`" + }, + "streamsConfigurations": { + "$dynamic": false, + "title": "The list of stream configurations", + "minItems": 1, + "type": "array", + "items": { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.models.StreamsConfiguration" + }, + { + "$dynamic": false + } + ] + } + }, + "taskRunner": { + "oneOf": [ + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.scripts.runner.docker.Docker" + }, + { + "$dynamic": false, + "title": "The task runner to use.", + "markdownDescription": "Task runners are provided by plugins, each have their own properties." + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.runner.Process" + }, + { + "$dynamic": false, + "title": "The task runner to use.", + "markdownDescription": "Task runners are provided by plugins, each have their own properties." + } + ] + } + ] + }, + "timeout": { + "type": "string", + "format": "duration" + }, + "type": { + "const": "io.kestra.plugin.singer.taps.PipelinewiseMongoDb" + }, + "updateBufferSize": { + "$dynamic": false, + "type": "integer", + "title": "The size of the buffer that holds detected update operations in memory.", + "default": 1, + "markdownDescription": "For LOG_BASED only, the buffer is flushed once the size is reached.\n\nDefault value is : `1`" + }, + "username": { + "$dynamic": true, + "type": "string", + "title": "The database user.", + "minLength": 1 + }, + "workerGroup": { + "$ref": "#/definitions/io.kestra.core.models.tasks.WorkerGroup" + } + }, + "required": [ + "authDatabase", + "database", + "host", + "id", + "port", + "streamsConfigurations", + "type", + "username" + ], + "title": "A Singer tap to fetch data from a MongoDB database.", + "markdownDescription": "Full documentation can be found [here](https://transferwise.github.io/pipelinewise/connectors/taps/mongodb.html)" + }, + "io.kestra.plugin.singer.taps.PipelinewiseMysql": { + "type": "object", + "properties": { + "allowFailure": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "command": { + "$dynamic": true, + "type": "string", + "title": "Override default singer command." + }, + "containerImage": { + "$dynamic": true, + "type": "string", + "title": "The task runner container image, only used if the task runner is container-based.", + "default": "python:3.10.12", + "markdownDescription": "Default value is : `python:3.10.12`" + }, + "description": { + "type": "string" + }, + "disabled": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "docker": { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.scripts.exec.scripts.models.DockerOptions" + }, + { + "$dynamic": false, + "title": "Deprecated, use 'taskRunner' instead" + } + ] + }, + "exportBatchRows": { + "$dynamic": false, + "type": "integer", + "title": "Number of rows to export from MySQL in one batch.", + "default": 50000, + "markdownDescription": "Default value is : `50000`" + }, + "filterDbs": { + "$dynamic": true, + "title": "The list of schemas to extract tables only from particular schemas and to improve data extraction performance.", + "type": "array", + "items": { + "$dynamic": true, + "type": "string" + } + }, + "host": { + "$dynamic": true, + "type": "string", + "title": "The database hostname.", + "minLength": 1 + }, + "id": { + "type": "string", + "minLength": 1, + "pattern": "^[a-zA-Z0-9][a-zA-Z0-9_-]*" + }, + "logLevel": { + "type": "string", + "enum": ["ERROR", "WARN", "INFO", "DEBUG", "TRACE"] + }, + "password": { + "$dynamic": true, + "type": "string", + "title": "The database user's password." + }, + "pipPackages": { + "$dynamic": true, + "title": "Override default pip packages to use a specific version.", + "type": "array", + "items": { + "$dynamic": true, + "type": "string" + } + }, + "port": { + "$dynamic": false, + "type": "integer", + "title": "The database port." + }, + "retry": { + "oneOf": [ + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Constant-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Exponential-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Random-2" + } + ] + }, + "sessionSqls": { + "$dynamic": true, + "title": "List of SQL commands to run when a connection made. This allows to set session variables dynamically, like timeouts or charsets.", + "default": [ + "SET @@session.time_zone=\"+0:00\"", + "SET @@session.wait_timeout=28800", + "SET @@session.net_read_timeout=3600", + "SET @@session.innodb_lock_wait_timeout=3600" + ], + "markdownDescription": "Default value is : `- SET @@session.time_zone=\"+0:00\"\n- SET @@session.wait_timeout=28800\n- SET @@session.net_read_timeout=3600\n- SET @@session.innodb_lock_wait_timeout=3600`\n\nDefault value is : `- SET @@session.time_zone=\"+0:00\"\n- SET @@session.wait_timeout=28800\n- SET @@session.net_read_timeout=3600\n- SET @@session.innodb_lock_wait_timeout=3600`", + "type": "array", + "items": { + "$dynamic": true, + "type": "string" + } + }, + "ssl": { + "$dynamic": false, + "type": "boolean", + "title": "If ssl is enabled.", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "stateName": { + "$dynamic": true, + "type": "string", + "title": "The name of Singer state file.", + "default": "singer-state", + "markdownDescription": "Default value is : `singer-state`" + }, + "streamsConfigurations": { + "$dynamic": false, + "title": "The list of stream configurations", + "minItems": 1, + "type": "array", + "items": { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.models.StreamsConfiguration" + }, + { + "$dynamic": false + } + ] + } + }, + "taskRunner": { + "oneOf": [ + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.scripts.runner.docker.Docker" + }, + { + "$dynamic": false, + "title": "The task runner to use.", + "markdownDescription": "Task runners are provided by plugins, each have their own properties." + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.runner.Process" + }, + { + "$dynamic": false, + "title": "The task runner to use.", + "markdownDescription": "Task runners are provided by plugins, each have their own properties." + } + ] + } + ] + }, + "timeout": { + "type": "string", + "format": "duration" + }, + "type": { + "const": "io.kestra.plugin.singer.taps.PipelinewiseMysql" + }, + "username": { + "$dynamic": true, + "type": "string", + "title": "The database user.", + "minLength": 1 + }, + "workerGroup": { + "$ref": "#/definitions/io.kestra.core.models.tasks.WorkerGroup" + } + }, + "required": [ + "host", + "id", + "port", + "streamsConfigurations", + "type", + "username" + ], + "title": "A Singer tap to fetch data from a MySQL database.", + "markdownDescription": "Full documentation can be found [here](https://transferwise.github.io/pipelinewise/connectors/taps/mysql.html)##### Examples\n\u003E \n```yaml\nhost: 127.0.0.1\nusername: root\npassword: mysql_passwd\nport: 63306\nstreamsConfigurations:\n - stream: Category\n replicationMethod: INCREMENTAL\n replicationKeys: categoryId\n selected: true\n - propertiesPattern:\n - description\n selected: false\n```" + }, + "io.kestra.plugin.singer.taps.PipelinewiseOracle": { + "type": "object", + "properties": { + "allowFailure": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "command": { + "$dynamic": true, + "type": "string", + "title": "Override default singer command." + }, + "containerImage": { + "$dynamic": true, + "type": "string", + "title": "The task runner container image, only used if the task runner is container-based.", + "default": "python:3.10.12", + "markdownDescription": "Default value is : `python:3.10.12`" + }, + "description": { + "type": "string" + }, + "disabled": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "docker": { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.scripts.exec.scripts.models.DockerOptions" + }, + { + "$dynamic": false, + "title": "Deprecated, use 'taskRunner' instead" + } + ] + }, + "filterSchemas": { + "$dynamic": true, + "type": "string", + "title": "The schemas to filter." + }, + "host": { + "$dynamic": true, + "type": "string", + "title": "The database hostname.", + "minLength": 1 + }, + "id": { + "type": "string", + "minLength": 1, + "pattern": "^[a-zA-Z0-9][a-zA-Z0-9_-]*" + }, + "logLevel": { + "type": "string", + "enum": ["ERROR", "WARN", "INFO", "DEBUG", "TRACE"] + }, + "password": { + "$dynamic": true, + "type": "string", + "title": "The database user's password." + }, + "pipPackages": { + "$dynamic": true, + "title": "Override default pip packages to use a specific version.", + "type": "array", + "items": { + "$dynamic": true, + "type": "string" + } + }, + "port": { + "$dynamic": false, + "type": "integer", + "title": "The database port." + }, + "retry": { + "oneOf": [ + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Constant-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Exponential-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Random-2" + } + ] + }, + "sid": { + "$dynamic": true, + "type": "string", + "title": "The database SID." + }, + "stateName": { + "$dynamic": true, + "type": "string", + "title": "The name of Singer state file.", + "default": "singer-state", + "markdownDescription": "Default value is : `singer-state`" + }, + "streamsConfigurations": { + "$dynamic": false, + "title": "The list of stream configurations", + "minItems": 1, + "type": "array", + "items": { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.models.StreamsConfiguration" + }, + { + "$dynamic": false + } + ] + } + }, + "taskRunner": { + "oneOf": [ + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.scripts.runner.docker.Docker" + }, + { + "$dynamic": false, + "title": "The task runner to use.", + "markdownDescription": "Task runners are provided by plugins, each have their own properties." + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.runner.Process" + }, + { + "$dynamic": false, + "title": "The task runner to use.", + "markdownDescription": "Task runners are provided by plugins, each have their own properties." + } + ] + } + ] + }, + "timeout": { + "type": "string", + "format": "duration" + }, + "type": { + "const": "io.kestra.plugin.singer.taps.PipelinewiseOracle" + }, + "username": { + "$dynamic": true, + "type": "string", + "title": "The database user.", + "minLength": 1 + }, + "workerGroup": { + "$ref": "#/definitions/io.kestra.core.models.tasks.WorkerGroup" + } + }, + "required": [ + "host", + "id", + "port", + "sid", + "streamsConfigurations", + "type", + "username" + ], + "title": "A Singer tap to fetch data from a Oracle database.", + "markdownDescription": "Full documentation can be found [here](https://github.com/transferwise/pipelinewise-tap-oracle)##### Examples\n\u003E \n```yaml\nhost: 127.0.0.1\nusername: oracle\npassword: oracle_passwd\nport: 63306\nsid: ORCL\nstreamsConfigurations:\n - stream: Category\n replicationMethod: INCREMENTAL\n replicationKeys: categoryId\n selected: true\n - propertiesPattern:\n - description\n selected: false\n```" + }, + "io.kestra.plugin.singer.taps.PipelinewisePostgres": { + "type": "object", + "properties": { + "allowFailure": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "breakAtEndLsn": { + "$dynamic": false, + "type": "boolean", + "title": "Stop running the tap if the newly received lsn is after the max lsn that was detected when the tap started.", + "default": true, + "markdownDescription": "Default value is : `true`" + }, + "command": { + "$dynamic": true, + "type": "string", + "title": "Override default singer command." + }, + "containerImage": { + "$dynamic": true, + "type": "string", + "title": "The task runner container image, only used if the task runner is container-based.", + "default": "python:3.10.12", + "markdownDescription": "Default value is : `python:3.10.12`" + }, + "dbName": { + "$dynamic": true, + "type": "string", + "title": "The database name." + }, + "debugLsn": { + "$dynamic": false, + "type": "boolean", + "title": "If set to \"true\" then add _sdc_lsn property to the singer messages to debug postgres LSN position in the WAL stream.", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "description": { + "type": "string" + }, + "disabled": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "docker": { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.scripts.exec.scripts.models.DockerOptions" + }, + { + "$dynamic": false, + "title": "Deprecated, use 'taskRunner' instead" + } + ] + }, + "filterSchemas": { + "$dynamic": true, + "title": "The list of schemas to extract tables only from particular schemas and to improve data extraction performance", + "type": "array", + "items": { + "$dynamic": true, + "type": "string" + } + }, + "host": { + "$dynamic": true, + "type": "string", + "title": "The database hostname", + "minLength": 1 + }, + "id": { + "type": "string", + "minLength": 1, + "pattern": "^[a-zA-Z0-9][a-zA-Z0-9_-]*" + }, + "logLevel": { + "type": "string", + "enum": ["ERROR", "WARN", "INFO", "DEBUG", "TRACE"] + }, + "logicalPollSeconds": { + "$dynamic": false, + "type": "integer", + "title": "Stop running the tap when no data received from wal after certain number of seconds.", + "default": 10800, + "markdownDescription": "Default value is : `10800`" + }, + "maxRunSeconds": { + "$dynamic": false, + "type": "integer", + "title": "Stop running the tap after certain number of seconds.", + "default": 43200, + "markdownDescription": "Default value is : `43200`" + }, + "password": { + "$dynamic": true, + "type": "string", + "title": "The database user's password." + }, + "pipPackages": { + "$dynamic": true, + "title": "Override default pip packages to use a specific version.", + "type": "array", + "items": { + "$dynamic": true, + "type": "string" + } + }, + "port": { + "$dynamic": false, + "type": "integer", + "title": "The database port." + }, + "retry": { + "oneOf": [ + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Constant-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Exponential-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Random-2" + } + ] + }, + "ssl": { + "$dynamic": false, + "type": "boolean", + "title": "If ssl is enabled.", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "stateName": { + "$dynamic": true, + "type": "string", + "title": "The name of Singer state file.", + "default": "singer-state", + "markdownDescription": "Default value is : `singer-state`" + }, + "streamsConfigurations": { + "$dynamic": false, + "title": "The list of stream configurations", + "minItems": 1, + "type": "array", + "items": { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.models.StreamsConfiguration" + }, + { + "$dynamic": false + } + ] + } + }, + "taskRunner": { + "oneOf": [ + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.scripts.runner.docker.Docker" + }, + { + "$dynamic": false, + "title": "The task runner to use.", + "markdownDescription": "Task runners are provided by plugins, each have their own properties." + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.runner.Process" + }, + { + "$dynamic": false, + "title": "The task runner to use.", + "markdownDescription": "Task runners are provided by plugins, each have their own properties." + } + ] + } + ] + }, + "timeout": { + "type": "string", + "format": "duration" + }, + "type": { + "const": "io.kestra.plugin.singer.taps.PipelinewisePostgres" + }, + "username": { + "$dynamic": true, + "type": "string", + "title": "The database user.", + "minLength": 1 + }, + "workerGroup": { + "$ref": "#/definitions/io.kestra.core.models.tasks.WorkerGroup" + } + }, + "required": [ + "host", + "id", + "port", + "streamsConfigurations", + "type", + "username" + ], + "title": "A Singer tap to fetch data from a Postgres database.", + "markdownDescription": "Full documentation can be found [here](https://github.com/transferwise/pipelinewise-tap-postgres)" + }, + "io.kestra.plugin.singer.taps.PipelinewiseSqlServer": { + "type": "object", + "properties": { + "allowFailure": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "characterSet": { + "$dynamic": true, + "type": "string", + "title": "The characterset for the database / source system. The default is utf8, however older databases might use a charactersets like cp1252 for the encoding." + }, + "command": { + "$dynamic": true, + "type": "string", + "title": "Override default singer command." + }, + "containerImage": { + "$dynamic": true, + "type": "string", + "title": "The task runner container image, only used if the task runner is container-based.", + "default": "python:3.10.12", + "markdownDescription": "Default value is : `python:3.10.12`" + }, + "cursorArraySize": { + "$dynamic": false, + "type": "integer", + "title": "A numeric setting adjusting the internal buffersize for the tap (default 10000).", + "markdownDescription": "The common query tuning scenario is for SELECT statements that return a large number of rows over a slow network. Increasing arraysize can improve performance by reducing the number of round-trips to the database. However increasing this value increases the amount of memory required." + }, + "database": { + "$dynamic": true, + "type": "string", + "title": "The database name.", + "minLength": 1 + }, + "description": { + "type": "string" + }, + "disabled": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "docker": { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.scripts.exec.scripts.models.DockerOptions" + }, + { + "$dynamic": false, + "title": "Deprecated, use 'taskRunner' instead" + } + ] + }, + "filterDbs": { + "$dynamic": true, + "title": "The list of schemas to extract tables only from particular schemas and to improve data extraction performance.", + "type": "array", + "items": { + "$dynamic": true, + "type": "string" + } + }, + "host": { + "$dynamic": true, + "type": "string", + "title": "The database hostname.", + "minLength": 1 + }, + "id": { + "type": "string", + "minLength": 1, + "pattern": "^[a-zA-Z0-9][a-zA-Z0-9_-]*" + }, + "logLevel": { + "type": "string", + "enum": ["ERROR", "WARN", "INFO", "DEBUG", "TRACE"] + }, + "password": { + "$dynamic": true, + "type": "string", + "title": "The database user's password.", + "minLength": 1 + }, + "pipPackages": { + "$dynamic": true, + "title": "Override default pip packages to use a specific version.", + "type": "array", + "items": { + "$dynamic": true, + "type": "string" + } + }, + "port": { + "$dynamic": false, + "type": "integer", + "title": "The database port." + }, + "retry": { + "oneOf": [ + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Constant-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Exponential-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Random-2" + } + ] + }, + "stateName": { + "$dynamic": true, + "type": "string", + "title": "The name of Singer state file.", + "default": "singer-state", + "markdownDescription": "Default value is : `singer-state`" + }, + "streamsConfigurations": { + "$dynamic": false, + "title": "The list of stream configurations", + "minItems": 1, + "type": "array", + "items": { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.models.StreamsConfiguration" + }, + { + "$dynamic": false + } + ] + } + }, + "taskRunner": { + "oneOf": [ + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.scripts.runner.docker.Docker" + }, + { + "$dynamic": false, + "title": "The task runner to use.", + "markdownDescription": "Task runners are provided by plugins, each have their own properties." + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.runner.Process" + }, + { + "$dynamic": false, + "title": "The task runner to use.", + "markdownDescription": "Task runners are provided by plugins, each have their own properties." + } + ] + } + ] + }, + "tdsVersion": { + "$dynamic": true, + "type": "string", + "title": "TDS version to use when communicating with SQL Server (default is 7.3)." + }, + "timeout": { + "type": "string", + "format": "duration" + }, + "type": { + "const": "io.kestra.plugin.singer.taps.PipelinewiseSqlServer" + }, + "useDateDatatype": { + "$dynamic": false, + "type": "boolean", + "title": "Emit Date datatypes as-is without converting them to datetime.", + "default": true, + "markdownDescription": "Default value is : `true`" + }, + "useSingerDecimal": { + "$dynamic": false, + "type": "boolean", + "title": "Emit all numeric values as strings and treat floats as string data types for the target (default false).", + "markdownDescription": "When true, the resulting SCHEMA message will contain an attribute in additionalProperties containing the scale and precision of the discovered property." + }, + "username": { + "$dynamic": true, + "type": "string", + "title": "The database user.", + "minLength": 1 + }, + "workerGroup": { + "$ref": "#/definitions/io.kestra.core.models.tasks.WorkerGroup" + } + }, + "required": [ + "database", + "host", + "id", + "password", + "port", + "streamsConfigurations", + "type", + "username" + ], + "title": "A Singer tap to fetch data from a Microsoft SQL Server database.", + "markdownDescription": "Full documentation can be found [here](https://github.com/BuzzCutNorman/tap-mssql/blob/main/README.md)##### Examples\n\u003E \n```yaml\nhost: 127.0.0.1\nusername: SA\npassword: sqlserver_passwd\nport: 57037\nfilterDbs: dbo\nstreamsConfigurations:\n - stream: Categories\n replicationMethod: INCREMENTAL\n replicationKeys: CategoryID\n selected: true\n - propertiesPattern:\n - Description\n selected: false\n```" + }, + "io.kestra.plugin.singer.taps.Quickbooks": { + "type": "object", + "properties": { + "allowFailure": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "clientId": { + "$dynamic": true, + "type": "string", + "title": "Quickbooks' client ID.", + "minLength": 1 + }, + "clientSecret": { + "$dynamic": true, + "type": "string", + "title": "Quickbooks' client secret.", + "minLength": 1 + }, + "command": { + "$dynamic": true, + "type": "string", + "title": "Override default singer command." + }, + "containerImage": { + "$dynamic": true, + "type": "string", + "title": "The task runner container image, only used if the task runner is container-based.", + "default": "python:3.10.12", + "markdownDescription": "Default value is : `python:3.10.12`" + }, + "description": { + "type": "string" + }, + "disabled": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "docker": { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.scripts.exec.scripts.models.DockerOptions" + }, + { + "$dynamic": false, + "title": "Deprecated, use 'taskRunner' instead" + } + ] + }, + "id": { + "type": "string", + "minLength": 1, + "pattern": "^[a-zA-Z0-9][a-zA-Z0-9_-]*" + }, + "isSandbox": { + "$dynamic": false, + "type": "boolean", + "title": "Select by default any new fields discovered in Quickbooks objects.", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "logLevel": { + "type": "string", + "enum": ["ERROR", "WARN", "INFO", "DEBUG", "TRACE"] + }, + "maxWorkers": { + "$dynamic": false, + "type": "integer", + "title": "Maximum number of threads to use.", + "default": 8, + "markdownDescription": "Default value is : `8`" + }, + "pipPackages": { + "$dynamic": true, + "title": "Override default pip packages to use a specific version.", + "type": "array", + "items": { + "$dynamic": true, + "type": "string" + } + }, + "realmId": { + "$dynamic": true, + "type": "string", + "title": "Quickbooks' username.", + "minLength": 1 + }, + "refreshToken": { + "$dynamic": true, + "type": "string", + "title": "Quickbooks' refresh token.", + "minLength": 1 + }, + "retry": { + "oneOf": [ + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Constant-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Exponential-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Random-2" + } + ] + }, + "selectFieldsByDefault": { + "$dynamic": false, + "type": "boolean", + "title": "Select by default any new fields discovered in Quickbooks objects.", + "default": true, + "markdownDescription": "Default value is : `true`" + }, + "startDate": { + "$dynamic": true, + "type": "string", + "format": "date", + "title": "Determines how much historical data will be extracted.", + "markdownDescription": "Please be aware that the larger the time period and amount of data, the longer the initial extraction can be expected to take." + }, + "stateMessageThreshold": { + "$dynamic": false, + "type": "integer", + "title": "Generate a STATE message every N records.", + "default": 1000, + "markdownDescription": "Default value is : `1000`" + }, + "stateName": { + "$dynamic": true, + "type": "string", + "title": "The name of Singer state file.", + "default": "singer-state", + "markdownDescription": "Default value is : `singer-state`" + }, + "streamsConfigurations": { + "$dynamic": false, + "title": "The list of stream configurations", + "minItems": 1, + "type": "array", + "items": { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.models.StreamsConfiguration" + }, + { + "$dynamic": false + } + ] + } + }, + "taskRunner": { + "oneOf": [ + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.scripts.runner.docker.Docker" + }, + { + "$dynamic": false, + "title": "The task runner to use.", + "markdownDescription": "Task runners are provided by plugins, each have their own properties." + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.runner.Process" + }, + { + "$dynamic": false, + "title": "The task runner to use.", + "markdownDescription": "Task runners are provided by plugins, each have their own properties." + } + ] + } + ] + }, + "timeout": { + "type": "string", + "format": "duration" + }, + "type": { + "const": "io.kestra.plugin.singer.taps.Quickbooks" + }, + "workerGroup": { + "$ref": "#/definitions/io.kestra.core.models.tasks.WorkerGroup" + } + }, + "required": [ + "clientId", + "clientSecret", + "id", + "realmId", + "refreshToken", + "startDate", + "streamsConfigurations", + "type" + ], + "title": "A Singer tap to fetch data from a Quickbooks account.", + "markdownDescription": "Full documentation can be found [here](https://github.com/hotgluexyz/tap-quickbooks.git)" + }, + "io.kestra.plugin.singer.taps.Recharge": { + "type": "object", + "properties": { + "accessToken": { + "$dynamic": true, + "type": "string", + "title": "Private API Token.", + "minLength": 1 + }, + "allowFailure": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "command": { + "$dynamic": true, + "type": "string", + "title": "Override default singer command." + }, + "containerImage": { + "$dynamic": true, + "type": "string", + "title": "The task runner container image, only used if the task runner is container-based.", + "default": "python:3.10.12", + "markdownDescription": "Default value is : `python:3.10.12`" + }, + "description": { + "type": "string" + }, + "disabled": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "docker": { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.scripts.exec.scripts.models.DockerOptions" + }, + { + "$dynamic": false, + "title": "Deprecated, use 'taskRunner' instead" + } + ] + }, + "id": { + "type": "string", + "minLength": 1, + "pattern": "^[a-zA-Z0-9][a-zA-Z0-9_-]*" + }, + "logLevel": { + "type": "string", + "enum": ["ERROR", "WARN", "INFO", "DEBUG", "TRACE"] + }, + "pipPackages": { + "$dynamic": true, + "title": "Override default pip packages to use a specific version.", + "type": "array", + "items": { + "$dynamic": true, + "type": "string" + } + }, + "retry": { + "oneOf": [ + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Constant-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Exponential-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Random-2" + } + ] + }, + "startDate": { + "$dynamic": true, + "type": "string", + "format": "date", + "title": "Determines how much historical data will be extracted.", + "markdownDescription": "Please be aware that the larger the time period and amount of data, the longer the initial extraction can be expected to take." + }, + "stateName": { + "$dynamic": true, + "type": "string", + "title": "The name of Singer state file.", + "default": "singer-state", + "markdownDescription": "Default value is : `singer-state`" + }, + "streamsConfigurations": { + "$dynamic": false, + "title": "The list of stream configurations", + "minItems": 1, + "type": "array", + "items": { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.models.StreamsConfiguration" + }, + { + "$dynamic": false + } + ] + } + }, + "taskRunner": { + "oneOf": [ + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.scripts.runner.docker.Docker" + }, + { + "$dynamic": false, + "title": "The task runner to use.", + "markdownDescription": "Task runners are provided by plugins, each have their own properties." + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.runner.Process" + }, + { + "$dynamic": false, + "title": "The task runner to use.", + "markdownDescription": "Task runners are provided by plugins, each have their own properties." + } + ] + } + ] + }, + "timeout": { + "type": "string", + "format": "duration" + }, + "type": { + "const": "io.kestra.plugin.singer.taps.Recharge" + }, + "userAgent": { + "$dynamic": true, + "type": "string", + "title": "User agent.", + "markdownDescription": "User agent to send to ReCharge along with API requests. Typically includes name of integration and an email address you can be reached at." + }, + "workerGroup": { + "$ref": "#/definitions/io.kestra.core.models.tasks.WorkerGroup" + } + }, + "required": [ + "accessToken", + "id", + "startDate", + "streamsConfigurations", + "type" + ], + "title": "A Singer tap to fetch data from a Recharge account.", + "markdownDescription": "Full documentation can be found [here](https://github.com/singer-io/tap-recharge)" + }, + "io.kestra.plugin.singer.taps.SageIntacct": { + "type": "object", + "properties": { + "allowFailure": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "command": { + "$dynamic": true, + "type": "string", + "title": "Override default singer command." + }, + "companyId": { + "$dynamic": true, + "type": "string", + "title": "Company Id.", + "minLength": 1 + }, + "containerImage": { + "$dynamic": true, + "type": "string", + "title": "The task runner container image, only used if the task runner is container-based.", + "default": "python:3.10.12", + "markdownDescription": "Default value is : `python:3.10.12`" + }, + "description": { + "type": "string" + }, + "disabled": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "docker": { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.scripts.exec.scripts.models.DockerOptions" + }, + { + "$dynamic": false, + "title": "Deprecated, use 'taskRunner' instead" + } + ] + }, + "id": { + "type": "string", + "minLength": 1, + "pattern": "^[a-zA-Z0-9][a-zA-Z0-9_-]*" + }, + "logLevel": { + "type": "string", + "enum": ["ERROR", "WARN", "INFO", "DEBUG", "TRACE"] + }, + "pipPackages": { + "$dynamic": true, + "title": "Override default pip packages to use a specific version.", + "type": "array", + "items": { + "$dynamic": true, + "type": "string" + } + }, + "retry": { + "oneOf": [ + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Constant-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Exponential-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Random-2" + } + ] + }, + "senderId": { + "$dynamic": true, + "type": "string", + "title": "Intacct Sender ID.", + "minLength": 1 + }, + "senderPassword": { + "$dynamic": true, + "type": "string", + "title": "Intacct Sender Password.", + "minLength": 1 + }, + "startDate": { + "$dynamic": true, + "type": "string", + "format": "date", + "title": "Determines how much historical data will be extracted.", + "markdownDescription": "Please be aware that the larger the time period and amount of data, the longer the initial extraction can be expected to take." + }, + "stateName": { + "$dynamic": true, + "type": "string", + "title": "The name of Singer state file.", + "default": "singer-state", + "markdownDescription": "Default value is : `singer-state`" + }, + "streamsConfigurations": { + "$dynamic": false, + "title": "The list of stream configurations", + "minItems": 1, + "type": "array", + "items": { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.models.StreamsConfiguration" + }, + { + "$dynamic": false + } + ] + } + }, + "taskRunner": { + "oneOf": [ + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.scripts.runner.docker.Docker" + }, + { + "$dynamic": false, + "title": "The task runner to use.", + "markdownDescription": "Task runners are provided by plugins, each have their own properties." + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.runner.Process" + }, + { + "$dynamic": false, + "title": "The task runner to use.", + "markdownDescription": "Task runners are provided by plugins, each have their own properties." + } + ] + } + ] + }, + "timeout": { + "type": "string", + "format": "duration" + }, + "type": { + "const": "io.kestra.plugin.singer.taps.SageIntacct" + }, + "userId": { + "$dynamic": true, + "type": "string", + "title": "Intacct User ID.", + "minLength": 1 + }, + "userPassword": { + "$dynamic": true, + "type": "string", + "title": "Intacct User Password.", + "minLength": 1 + }, + "workerGroup": { + "$ref": "#/definitions/io.kestra.core.models.tasks.WorkerGroup" + } + }, + "required": [ + "companyId", + "id", + "senderId", + "senderPassword", + "startDate", + "streamsConfigurations", + "type", + "userId", + "userPassword" + ], + "title": "A Singer tap to fetch data from a Sage Intacct account.", + "markdownDescription": "Full documentation can be found [here](https://github.com/hotgluexyz/tap-intacct)" + }, + "io.kestra.plugin.singer.taps.Salesforce": { + "type": "object", + "properties": { + "allowFailure": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "apiType": { + "$dynamic": false, + "type": "string", + "enum": ["REST", "BULK"], + "title": "This is used to switch the behavior of the tap between using Salesforce's `REST` and `BULK` APIs.", + "default": "BULK", + "markdownDescription": "Default value is : `BULK`" + }, + "clientId": { + "$dynamic": true, + "type": "string", + "title": "Salesforce client ID." + }, + "clientSecret": { + "$dynamic": true, + "type": "string", + "title": "Salesforce client secret." + }, + "command": { + "$dynamic": true, + "type": "string", + "title": "Override default singer command." + }, + "containerImage": { + "$dynamic": true, + "type": "string", + "title": "The task runner container image, only used if the task runner is container-based.", + "default": "python:3.10.12", + "markdownDescription": "Default value is : `python:3.10.12`" + }, + "description": { + "type": "string" + }, + "disabled": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "docker": { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.scripts.exec.scripts.models.DockerOptions" + }, + { + "$dynamic": false, + "title": "Deprecated, use 'taskRunner' instead" + } + ] + }, + "id": { + "type": "string", + "minLength": 1, + "pattern": "^[a-zA-Z0-9][a-zA-Z0-9_-]*" + }, + "isSandbox": { + "$dynamic": false, + "type": "boolean", + "title": "Select by default any new fields discovered in Salesforce objects.", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "logLevel": { + "type": "string", + "enum": ["ERROR", "WARN", "INFO", "DEBUG", "TRACE"] + }, + "maxWorkers": { + "$dynamic": false, + "type": "integer", + "title": "Maximum number of threads to use.", + "default": 8, + "markdownDescription": "Default value is : `8`" + }, + "password": { + "$dynamic": true, + "type": "string", + "title": "Salesforce password." + }, + "pipPackages": { + "$dynamic": true, + "title": "Override default pip packages to use a specific version.", + "type": "array", + "items": { + "$dynamic": true, + "type": "string" + } + }, + "refreshToken": { + "$dynamic": true, + "type": "string", + "title": "Salesforce refresh token." + }, + "retry": { + "oneOf": [ + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Constant-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Exponential-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Random-2" + } + ] + }, + "securityToken": { + "$dynamic": true, + "type": "string", + "title": "Your Salesforce Account access token." + }, + "selectFieldsByDefault": { + "$dynamic": false, + "type": "boolean", + "title": "Select by default any new fields discovered in Salesforce objects.", + "default": true, + "markdownDescription": "Default value is : `true`" + }, + "startDate": { + "$dynamic": true, + "type": "string", + "format": "date", + "title": "Determines how much historical data will be extracted.", + "markdownDescription": "Please be aware that the larger the time period and amount of data, the longer the initial extraction can be expected to take." + }, + "stateMessageThreshold": { + "$dynamic": false, + "type": "integer", + "title": "Generate a STATE message every N records.", + "default": 1000, + "markdownDescription": "Default value is : `1000`" + }, + "stateName": { + "$dynamic": true, + "type": "string", + "title": "The name of Singer state file.", + "default": "singer-state", + "markdownDescription": "Default value is : `singer-state`" + }, + "streamsConfigurations": { + "$dynamic": false, + "title": "The list of stream configurations", + "minItems": 1, + "type": "array", + "items": { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.models.StreamsConfiguration" + }, + { + "$dynamic": false + } + ] + } + }, + "taskRunner": { + "oneOf": [ + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.scripts.runner.docker.Docker" + }, + { + "$dynamic": false, + "title": "The task runner to use.", + "markdownDescription": "Task runners are provided by plugins, each have their own properties." + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.runner.Process" + }, + { + "$dynamic": false, + "title": "The task runner to use.", + "markdownDescription": "Task runners are provided by plugins, each have their own properties." + } + ] + } + ] + }, + "timeout": { + "type": "string", + "format": "duration" + }, + "type": { + "const": "io.kestra.plugin.singer.taps.Salesforce" + }, + "username": { + "$dynamic": true, + "type": "string", + "title": "Salesforce username." + }, + "workerGroup": { + "$ref": "#/definitions/io.kestra.core.models.tasks.WorkerGroup" + } + }, + "required": ["id", "startDate", "streamsConfigurations", "type"], + "title": "A Singer tap to fetch data from a Salesforce account.", + "markdownDescription": "Full documentation can be found [here](https://gitlab.com/meltano/tap-salesforce.git)" + }, + "io.kestra.plugin.singer.taps.Shopify": { + "type": "object", + "properties": { + "allowFailure": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "apiKey": { + "$dynamic": true, + "type": "string", + "title": "Shopify password.", + "minLength": 1 + }, + "command": { + "$dynamic": true, + "type": "string", + "title": "Override default singer command." + }, + "containerImage": { + "$dynamic": true, + "type": "string", + "title": "The task runner container image, only used if the task runner is container-based.", + "default": "python:3.10.12", + "markdownDescription": "Default value is : `python:3.10.12`" + }, + "description": { + "type": "string" + }, + "disabled": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "docker": { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.scripts.exec.scripts.models.DockerOptions" + }, + { + "$dynamic": false, + "title": "Deprecated, use 'taskRunner' instead" + } + ] + }, + "id": { + "type": "string", + "minLength": 1, + "pattern": "^[a-zA-Z0-9][a-zA-Z0-9_-]*" + }, + "logLevel": { + "type": "string", + "enum": ["ERROR", "WARN", "INFO", "DEBUG", "TRACE"] + }, + "pipPackages": { + "$dynamic": true, + "title": "Override default pip packages to use a specific version.", + "type": "array", + "items": { + "$dynamic": true, + "type": "string" + } + }, + "retry": { + "oneOf": [ + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Constant-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Exponential-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Random-2" + } + ] + }, + "shop": { + "$dynamic": true, + "type": "string", + "title": "Shopify shop.", + "minLength": 1, + "markdownDescription": "Ex. my-first-store" + }, + "startDate": { + "$dynamic": true, + "type": "string", + "format": "date", + "title": "Determines how much historical data will be extracted.", + "markdownDescription": "Please be aware that the larger the time period and amount of data, the longer the initial extraction can be expected to take." + }, + "stateName": { + "$dynamic": true, + "type": "string", + "title": "The name of Singer state file.", + "default": "singer-state", + "markdownDescription": "Default value is : `singer-state`" + }, + "streamsConfigurations": { + "$dynamic": false, + "title": "The list of stream configurations", + "minItems": 1, + "type": "array", + "items": { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.models.StreamsConfiguration" + }, + { + "$dynamic": false + } + ] + } + }, + "taskRunner": { + "oneOf": [ + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.scripts.runner.docker.Docker" + }, + { + "$dynamic": false, + "title": "The task runner to use.", + "markdownDescription": "Task runners are provided by plugins, each have their own properties." + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.runner.Process" + }, + { + "$dynamic": false, + "title": "The task runner to use.", + "markdownDescription": "Task runners are provided by plugins, each have their own properties." + } + ] + } + ] + }, + "timeout": { + "type": "string", + "format": "duration" + }, + "type": { + "const": "io.kestra.plugin.singer.taps.Shopify" + }, + "workerGroup": { + "$ref": "#/definitions/io.kestra.core.models.tasks.WorkerGroup" + } + }, + "required": [ + "apiKey", + "id", + "shop", + "startDate", + "streamsConfigurations", + "type" + ], + "title": "A Singer tap to fetch data from a Shopify account.", + "markdownDescription": "Full documentation can be found [here](https://github.com/singer-io/tap-shopify)" + }, + "io.kestra.plugin.singer.taps.Slack": { + "type": "object", + "properties": { + "allowFailure": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "apiToken": { + "$dynamic": true, + "type": "string", + "title": "Slack Access Token.", + "minLength": 1, + "markdownDescription": "More details on Slack Access Tokens can be found [here](https://slack.dev/python-slack-sdk/installation/)." + }, + "archivedChannels": { + "$dynamic": false, + "type": "boolean", + "title": "Sync Archived Channels.", + "default": false, + "markdownDescription": "Specifies whether the tap will sync archived channels or not. Note that a bot cannot join an archived channel, so unless the bot was added to the channel prior to it being archived it will not be able to sync the data from that channel.\n\nDefault value is : `false`" + }, + "channels": { + "$dynamic": true, + "title": "Channels to Sync.", + "markdownDescription": "By default the tap will sync all channels it has been invited to, but this can be overridden to limit it to specific channels. Note this needs to be channel ID, not the name, as recommended by the Slack API. To get the ID for a channel, either use the Slack API or find it in the URL.", + "type": "array", + "items": { + "$dynamic": true, + "type": "string" + } + }, + "command": { + "$dynamic": true, + "type": "string", + "title": "Override default singer command." + }, + "containerImage": { + "$dynamic": true, + "type": "string", + "title": "The task runner container image, only used if the task runner is container-based.", + "default": "python:3.10.12", + "markdownDescription": "Default value is : `python:3.10.12`" + }, + "dateWindowSize": { + "$dynamic": false, + "type": "integer", + "title": "Channels to Sync.", + "default": 7, + "markdownDescription": "Due to the potentially high volume of data when syncing certain streams (messages, files, threads) this tap implements date windowing based on a configuration parameter.5 means the tap to sync 5 days of data per request, for applicable streams.\n\nDefault value is : `7`" + }, + "description": { + "type": "string" + }, + "disabled": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "docker": { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.scripts.exec.scripts.models.DockerOptions" + }, + { + "$dynamic": false, + "title": "Deprecated, use 'taskRunner' instead" + } + ] + }, + "id": { + "type": "string", + "minLength": 1, + "pattern": "^[a-zA-Z0-9][a-zA-Z0-9_-]*" + }, + "logLevel": { + "type": "string", + "enum": ["ERROR", "WARN", "INFO", "DEBUG", "TRACE"] + }, + "pipPackages": { + "$dynamic": true, + "title": "Override default pip packages to use a specific version.", + "type": "array", + "items": { + "$dynamic": true, + "type": "string" + } + }, + "privateChannels": { + "$dynamic": false, + "type": "boolean", + "title": "Join Private Channels.", + "default": true, + "markdownDescription": "Specifies whether to sync private channels or not.\n\nDefault value is : `true`" + }, + "publicChannels": { + "$dynamic": false, + "type": "boolean", + "title": "Join Public Channels.", + "default": false, + "markdownDescription": "Specifies whether to have the tap auto-join all public channels in your ogranziation.\n\nDefault value is : `false`" + }, + "retry": { + "oneOf": [ + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Constant-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Exponential-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Random-2" + } + ] + }, + "startDate": { + "$dynamic": true, + "type": "string", + "format": "date", + "title": "Determines how much historical data will be extracted.", + "markdownDescription": "Please be aware that the larger the time period and amount of data, the longer the initial extraction can be expected to take." + }, + "stateName": { + "$dynamic": true, + "type": "string", + "title": "The name of Singer state file.", + "default": "singer-state", + "markdownDescription": "Default value is : `singer-state`" + }, + "streamsConfigurations": { + "$dynamic": false, + "title": "The list of stream configurations", + "minItems": 1, + "type": "array", + "items": { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.models.StreamsConfiguration" + }, + { + "$dynamic": false + } + ] + } + }, + "taskRunner": { + "oneOf": [ + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.scripts.runner.docker.Docker" + }, + { + "$dynamic": false, + "title": "The task runner to use.", + "markdownDescription": "Task runners are provided by plugins, each have their own properties." + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.runner.Process" + }, + { + "$dynamic": false, + "title": "The task runner to use.", + "markdownDescription": "Task runners are provided by plugins, each have their own properties." + } + ] + } + ] + }, + "timeout": { + "type": "string", + "format": "duration" + }, + "type": { + "const": "io.kestra.plugin.singer.taps.Slack" + }, + "workerGroup": { + "$ref": "#/definitions/io.kestra.core.models.tasks.WorkerGroup" + } + }, + "required": [ + "apiToken", + "id", + "startDate", + "streamsConfigurations", + "type" + ], + "title": "A Singer tap to fetch data from Slack.", + "markdownDescription": "Full documentation can be found [here](https://github.com/Mashey/tap-slack)" + }, + "io.kestra.plugin.singer.taps.Stripe": { + "type": "object", + "properties": { + "accountId": { + "$dynamic": true, + "type": "string", + "title": "Stripe account ID.", + "minLength": 1, + "markdownDescription": "Ex. acct_1a2b3c4d5e" + }, + "allowFailure": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "clientSecret": { + "$dynamic": true, + "type": "string", + "title": "Stripe secret API key.", + "minLength": 1 + }, + "command": { + "$dynamic": true, + "type": "string", + "title": "Override default singer command." + }, + "containerImage": { + "$dynamic": true, + "type": "string", + "title": "The task runner container image, only used if the task runner is container-based.", + "default": "python:3.10.12", + "markdownDescription": "Default value is : `python:3.10.12`" + }, + "description": { + "type": "string" + }, + "disabled": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "docker": { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.scripts.exec.scripts.models.DockerOptions" + }, + { + "$dynamic": false, + "title": "Deprecated, use 'taskRunner' instead" + } + ] + }, + "id": { + "type": "string", + "minLength": 1, + "pattern": "^[a-zA-Z0-9][a-zA-Z0-9_-]*" + }, + "logLevel": { + "type": "string", + "enum": ["ERROR", "WARN", "INFO", "DEBUG", "TRACE"] + }, + "pipPackages": { + "$dynamic": true, + "title": "Override default pip packages to use a specific version.", + "type": "array", + "items": { + "$dynamic": true, + "type": "string" + } + }, + "retry": { + "oneOf": [ + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Constant-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Exponential-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Random-2" + } + ] + }, + "startDate": { + "$dynamic": true, + "type": "string", + "format": "date", + "title": "Determines how much historical data will be extracted.", + "markdownDescription": "Please be aware that the larger the time period and amount of data, the longer the initial extraction can be expected to take." + }, + "stateName": { + "$dynamic": true, + "type": "string", + "title": "The name of Singer state file.", + "default": "singer-state", + "markdownDescription": "Default value is : `singer-state`" + }, + "streamsConfigurations": { + "$dynamic": false, + "title": "The list of stream configurations", + "minItems": 1, + "type": "array", + "items": { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.models.StreamsConfiguration" + }, + { + "$dynamic": false + } + ] + } + }, + "taskRunner": { + "oneOf": [ + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.scripts.runner.docker.Docker" + }, + { + "$dynamic": false, + "title": "The task runner to use.", + "markdownDescription": "Task runners are provided by plugins, each have their own properties." + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.runner.Process" + }, + { + "$dynamic": false, + "title": "The task runner to use.", + "markdownDescription": "Task runners are provided by plugins, each have their own properties." + } + ] + } + ] + }, + "timeout": { + "type": "string", + "format": "duration" + }, + "type": { + "const": "io.kestra.plugin.singer.taps.Stripe" + }, + "workerGroup": { + "$ref": "#/definitions/io.kestra.core.models.tasks.WorkerGroup" + } + }, + "required": [ + "accountId", + "clientSecret", + "id", + "startDate", + "streamsConfigurations", + "type" + ], + "title": "A Singer tap to fetch data from a Stripe account.", + "markdownDescription": "Full documentation can be found [here](https://github.com/meltano/tap-stripe.git)" + }, + "io.kestra.plugin.singer.taps.Zendesk": { + "type": "object", + "properties": { + "accessToken": { + "$dynamic": true, + "type": "string", + "title": "Zendesk access token.", + "markdownDescription": "See [Zendesk Documentation](https://support.zendesk.com/hc/en-us/articles/203663836)" + }, + "allowFailure": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "apiToken": { + "$dynamic": true, + "type": "string", + "title": "Zendesk API token." + }, + "command": { + "$dynamic": true, + "type": "string", + "title": "Override default singer command." + }, + "containerImage": { + "$dynamic": true, + "type": "string", + "title": "The task runner container image, only used if the task runner is container-based.", + "default": "python:3.10.12", + "markdownDescription": "Default value is : `python:3.10.12`" + }, + "description": { + "type": "string" + }, + "disabled": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "docker": { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.scripts.exec.scripts.models.DockerOptions" + }, + { + "$dynamic": false, + "title": "Deprecated, use 'taskRunner' instead" + } + ] + }, + "email": { + "$dynamic": true, + "type": "string", + "title": "Zendesk email." + }, + "id": { + "type": "string", + "minLength": 1, + "pattern": "^[a-zA-Z0-9][a-zA-Z0-9_-]*" + }, + "logLevel": { + "type": "string", + "enum": ["ERROR", "WARN", "INFO", "DEBUG", "TRACE"] + }, + "pipPackages": { + "$dynamic": true, + "title": "Override default pip packages to use a specific version.", + "type": "array", + "items": { + "$dynamic": true, + "type": "string" + } + }, + "retry": { + "oneOf": [ + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Constant-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Exponential-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Random-2" + } + ] + }, + "startDate": { + "$dynamic": true, + "type": "string", + "format": "date", + "title": "Determines how much historical data will be extracted.", + "markdownDescription": "Please be aware that the larger the time period and amount of data, the longer the initial extraction can be expected to take." + }, + "stateName": { + "$dynamic": true, + "type": "string", + "title": "The name of Singer state file.", + "default": "singer-state", + "markdownDescription": "Default value is : `singer-state`" + }, + "streamsConfigurations": { + "$dynamic": false, + "title": "The list of stream configurations", + "minItems": 1, + "type": "array", + "items": { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.models.StreamsConfiguration" + }, + { + "$dynamic": false + } + ] + } + }, + "subdomain": { + "$dynamic": true, + "type": "string", + "title": "Zendesk Subdomain.", + "minLength": 1, + "markdownDescription": "See [Zendesk Documentation](https://support.zendesk.com/hc/en-us/articles/4409381383578-Where-can-I-find-my-Zendesk-subdomain)" + }, + "taskRunner": { + "oneOf": [ + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.scripts.runner.docker.Docker" + }, + { + "$dynamic": false, + "title": "The task runner to use.", + "markdownDescription": "Task runners are provided by plugins, each have their own properties." + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.runner.Process" + }, + { + "$dynamic": false, + "title": "The task runner to use.", + "markdownDescription": "Task runners are provided by plugins, each have their own properties." + } + ] + } + ] + }, + "timeout": { + "type": "string", + "format": "duration" + }, + "type": { + "const": "io.kestra.plugin.singer.taps.Zendesk" + }, + "workerGroup": { + "$ref": "#/definitions/io.kestra.core.models.tasks.WorkerGroup" + } + }, + "required": [ + "id", + "startDate", + "streamsConfigurations", + "subdomain", + "type" + ], + "title": "A Singer tap to fetch data from a Zendesk account.", + "markdownDescription": "Full documentation can be found [here](https://github.com/singer-io/tap-zendesk)" + }, + "io.kestra.plugin.singer.taps.Zoom": { + "type": "object", + "properties": { + "allowFailure": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "clientId": { + "$dynamic": true, + "type": "string", + "title": "Zoom client id." + }, + "clientSecret": { + "$dynamic": true, + "type": "string", + "title": "Zoom Client secret." + }, + "command": { + "$dynamic": true, + "type": "string", + "title": "Override default singer command." + }, + "containerImage": { + "$dynamic": true, + "type": "string", + "title": "The task runner container image, only used if the task runner is container-based.", + "default": "python:3.10.12", + "markdownDescription": "Default value is : `python:3.10.12`" + }, + "description": { + "type": "string" + }, + "disabled": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "docker": { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.scripts.exec.scripts.models.DockerOptions" + }, + { + "$dynamic": false, + "title": "Deprecated, use 'taskRunner' instead" + } + ] + }, + "id": { + "type": "string", + "minLength": 1, + "pattern": "^[a-zA-Z0-9][a-zA-Z0-9_-]*" + }, + "jwt": { + "$dynamic": true, + "type": "string", + "title": "Zoom JSON Web Token." + }, + "logLevel": { + "type": "string", + "enum": ["ERROR", "WARN", "INFO", "DEBUG", "TRACE"] + }, + "pipPackages": { + "$dynamic": true, + "title": "Override default pip packages to use a specific version.", + "type": "array", + "items": { + "$dynamic": true, + "type": "string" + } + }, + "refreshToken": { + "$dynamic": true, + "type": "string", + "title": "Zoom refresh token." + }, + "retry": { + "oneOf": [ + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Constant-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Exponential-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Random-2" + } + ] + }, + "stateName": { + "$dynamic": true, + "type": "string", + "title": "The name of Singer state file.", + "default": "singer-state", + "markdownDescription": "Default value is : `singer-state`" + }, + "streamsConfigurations": { + "$dynamic": false, + "title": "The list of stream configurations", + "minItems": 1, + "type": "array", + "items": { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.singer.models.StreamsConfiguration" + }, + { + "$dynamic": false + } + ] + } + }, + "taskRunner": { + "oneOf": [ + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.scripts.runner.docker.Docker" + }, + { + "$dynamic": false, + "title": "The task runner to use.", + "markdownDescription": "Task runners are provided by plugins, each have their own properties." + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.runner.Process" + }, + { + "$dynamic": false, + "title": "The task runner to use.", + "markdownDescription": "Task runners are provided by plugins, each have their own properties." + } + ] + } + ] + }, + "timeout": { + "type": "string", + "format": "duration" + }, + "type": { + "const": "io.kestra.plugin.singer.taps.Zoom" + }, + "workerGroup": { + "$ref": "#/definitions/io.kestra.core.models.tasks.WorkerGroup" + } + }, + "required": ["id", "streamsConfigurations", "type"], + "title": "A Singer tap to fetch data from a Zoom account.", + "markdownDescription": "Full documentation can be found [here](https://github.com/mashey/tap-zoom)" + }, + "io.kestra.plugin.singer.targets.AdswerveBigQuery": { + "type": "object", + "properties": { + "addMetadataColumns": { + "$dynamic": false, + "type": "boolean", + "title": "Add singer Metadata columns.", + "default": false, + "markdownDescription": "Add `_time_extracted` and `_time_loaded` metadata columns.\n\nDefault value is : `false`" + }, + "allowFailure": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "command": { + "$dynamic": true, + "type": "string", + "title": "Override default singer command." + }, + "containerImage": { + "$dynamic": true, + "type": "string", + "title": "The task runner container image, only used if the task runner is container-based.", + "default": "python:3.10.12", + "markdownDescription": "Default value is : `python:3.10.12`" + }, + "datasetId": { + "$dynamic": true, + "type": "string", + "title": "The BigQuery dataset.", + "minLength": 1 + }, + "description": { + "type": "string" + }, + "disabled": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "docker": { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.scripts.exec.scripts.models.DockerOptions" + }, + { + "$dynamic": false, + "title": "Deprecated, use 'taskRunner' instead" + } + ] + }, + "from": { + "type": "string", + "title": "The raw data from a tap." + }, + "id": { + "type": "string", + "minLength": 1, + "pattern": "^[a-zA-Z0-9][a-zA-Z0-9_-]*" + }, + "location": { + "$dynamic": true, + "type": "string", + "title": "The Dataset location." + }, + "logLevel": { + "type": "string", + "enum": ["ERROR", "WARN", "INFO", "DEBUG", "TRACE"] + }, + "maxCache": { + "$dynamic": false, + "type": "integer", + "title": "Maximum cache size in MB.", + "default": 50, + "markdownDescription": "Default value is : `50`" + }, + "mergeStateMessages": { + "$dynamic": false, + "type": "boolean", + "title": "Enable control state flush.", + "default": false, + "markdownDescription": "default: merges multiple state messages from the tap into the state file, if true : uses the last state message as the state file.\n\nDefault value is : `false`" + }, + "pipPackages": { + "$dynamic": true, + "title": "Override default pip packages to use a specific version.", + "type": "array", + "items": { + "$dynamic": true, + "type": "string" + } + }, + "projectId": { + "$dynamic": true, + "type": "string", + "title": "The BigQuery project.", + "minLength": 1 + }, + "replicationMethod": { + "$dynamic": false, + "type": "string", + "enum": ["append", "truncate"], + "title": "The replication method, `append` or `truncate`.", + "default": "append", + "markdownDescription": "Default value is : `append`" + }, + "retry": { + "oneOf": [ + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Constant-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Exponential-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Random-2" + } + ] + }, + "serviceAccount": { + "$dynamic": true, + "type": "string", + "title": "The JSON service account key as string." + }, + "stateName": { + "$dynamic": true, + "type": "string", + "title": "The name of Singer state file.", + "default": "singer-state", + "markdownDescription": "Default value is : `singer-state`" + }, + "tableConfigs": { + "$dynamic": false, + "type": "object", + "title": "Table configs." + }, + "tablePrefix": { + "$dynamic": true, + "type": "string", + "title": "Add prefix to table name." + }, + "tableSuffix": { + "$dynamic": true, + "type": "string", + "title": "Add suffix to table name." + }, + "taskRunner": { + "oneOf": [ + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.scripts.runner.docker.Docker" + }, + { + "$dynamic": false, + "title": "The task runner to use.", + "markdownDescription": "Task runners are provided by plugins, each have their own properties." + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.runner.Process" + }, + { + "$dynamic": false, + "title": "The task runner to use.", + "markdownDescription": "Task runners are provided by plugins, each have their own properties." + } + ] + } + ] + }, + "timeout": { + "type": "string", + "format": "duration" + }, + "type": { + "const": "io.kestra.plugin.singer.targets.AdswerveBigQuery" + }, + "validateRecords": { + "$dynamic": false, + "type": "boolean", + "title": "Validate every single record message to the corresponding JSON schema.", + "default": false, + "markdownDescription": "This option is disabled by default and invalid RECORD messages will fail only at load time by Postgres. Enabling this option will detect invalid records earlier but could cause performance degradation..\n\nDefault value is : `false`" + }, + "workerGroup": { + "$ref": "#/definitions/io.kestra.core.models.tasks.WorkerGroup" + } + }, + "required": ["datasetId", "from", "id", "projectId", "type"], + "title": "A Singer target loads data into a BigQuery.", + "markdownDescription": "Full documentation can be found [here](https://github.com/adswerve/target-bigquery)" + }, + "io.kestra.plugin.singer.targets.Csv": { + "type": "object", + "properties": { + "allowFailure": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "command": { + "$dynamic": true, + "type": "string", + "title": "Override default singer command." + }, + "containerImage": { + "$dynamic": true, + "type": "string", + "title": "The task runner container image, only used if the task runner is container-based.", + "default": "python:3.10.12", + "markdownDescription": "Default value is : `python:3.10.12`" + }, + "delimiter": { + "$dynamic": true, + "type": "string", + "title": "A one-character string used to separate fields.", + "default": ",", + "minLength": 1, + "markdownDescription": "Default value is : `\",\"`" + }, + "description": { + "type": "string" + }, + "disabled": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "docker": { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.scripts.exec.scripts.models.DockerOptions" + }, + { + "$dynamic": false, + "title": "Deprecated, use 'taskRunner' instead" + } + ] + }, + "from": { + "type": "string", + "title": "The raw data from a tap." + }, + "id": { + "type": "string", + "minLength": 1, + "pattern": "^[a-zA-Z0-9][a-zA-Z0-9_-]*" + }, + "logLevel": { + "type": "string", + "enum": ["ERROR", "WARN", "INFO", "DEBUG", "TRACE"] + }, + "pipPackages": { + "$dynamic": true, + "title": "Override default pip packages to use a specific version.", + "type": "array", + "items": { + "$dynamic": true, + "type": "string" + } + }, + "quoteCharacters": { + "$dynamic": true, + "type": "string", + "title": "A one-character string used to quote fields containing special characters, such as the delimiter or quotechar, or which contain new-line characters.", + "default": "\"", + "minLength": 1, + "markdownDescription": "Default value is : `'\"'`" + }, + "retry": { + "oneOf": [ + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Constant-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Exponential-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Random-2" + } + ] + }, + "stateName": { + "$dynamic": true, + "type": "string", + "title": "The name of Singer state file.", + "default": "singer-state", + "markdownDescription": "Default value is : `singer-state`" + }, + "taskRunner": { + "oneOf": [ + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.scripts.runner.docker.Docker" + }, + { + "$dynamic": false, + "title": "The task runner to use.", + "markdownDescription": "Task runners are provided by plugins, each have their own properties." + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.runner.Process" + }, + { + "$dynamic": false, + "title": "The task runner to use.", + "markdownDescription": "Task runners are provided by plugins, each have their own properties." + } + ] + } + ] + }, + "timeout": { + "type": "string", + "format": "duration" + }, + "type": { + "const": "io.kestra.plugin.singer.targets.Csv" + }, + "workerGroup": { + "$ref": "#/definitions/io.kestra.core.models.tasks.WorkerGroup" + } + }, + "required": ["from", "id", "type"], + "title": "A Singer target loads data into a CSV Files.", + "markdownDescription": "Full documentation can be found [here](https://github.com/adswerve/target-bigquery)" + }, + "io.kestra.plugin.singer.targets.DatamillCoPostgres": { + "type": "object", + "properties": { + "addUpsertIndexes": { + "$dynamic": false, + "type": "boolean", + "title": "Whether the Target should create column indexes on the important columns used during data loading.", + "default": true, + "markdownDescription": "These indexes will make data loading slightly slower but the deduplication phase much faster. Defaults to on for better baseline performance.\n\nDefault value is : `true`" + }, + "afterRunSql": { + "$dynamic": false, + "type": "string", + "title": "Raw SQL statement(s) to before closing the connection to Postgres." + }, + "allowFailure": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "batchDetectionThreshold": { + "$dynamic": false, + "type": "integer", + "title": "How often, in rows received, to count the buffered rows and bytes to check if a flush is necessary.", + "markdownDescription": "There's a slight performance penalty to checking the buffered records count or bytesize, so this controls how often this is polled in order to mitigate the penalty. This value is usually not necessary to set as the default is dynamically adjusted to check reasonably often. \n\nDefault is 5000, or 1/40th `maxBatchRows`" + }, + "beforeRunSql": { + "$dynamic": false, + "type": "string", + "title": "Raw SQL statement(s) to execute as soon as the connection to Postgres is opened by the target.", + "markdownDescription": "Useful for setup like SET ROLE or other connection state that is important." + }, + "command": { + "$dynamic": true, + "type": "string", + "title": "Override default singer command." + }, + "containerImage": { + "$dynamic": true, + "type": "string", + "title": "The task runner container image, only used if the task runner is container-based.", + "default": "python:3.10.12", + "markdownDescription": "Default value is : `python:3.10.12`" + }, + "dbName": { + "$dynamic": true, + "type": "string", + "title": "The database name." + }, + "description": { + "type": "string" + }, + "disabled": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "docker": { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.scripts.exec.scripts.models.DockerOptions" + }, + { + "$dynamic": false, + "title": "Deprecated, use 'taskRunner' instead" + } + ] + }, + "from": { + "type": "string", + "title": "The raw data from a tap." + }, + "host": { + "$dynamic": true, + "type": "string", + "title": "The database hostname.", + "minLength": 1 + }, + "id": { + "type": "string", + "minLength": 1, + "pattern": "^[a-zA-Z0-9][a-zA-Z0-9_-]*" + }, + "invalidRecordsDetect": { + "$dynamic": false, + "type": "boolean", + "title": "Crash on invalid records.", + "default": true, + "markdownDescription": "Default value is : `true`" + }, + "invalidRecordsThreshold": { + "$dynamic": false, + "type": "integer", + "title": "Include a positive value n in your config to allow to encounter at most n invalid records per stream before giving up.", + "default": 0, + "markdownDescription": "Default value is : `0`" + }, + "logLevel": { + "type": "string", + "enum": ["ERROR", "WARN", "INFO", "DEBUG", "TRACE"] + }, + "loggingLevel": { + "$dynamic": true, + "type": "string", + "title": "The level for logging.", + "default": "INFO", + "markdownDescription": "Set to DEBUG to get things like queries executed, timing of those queries, etc. See Python's Logger Levels for information about valid values.\n\nDefault value is : `INFO`" + }, + "maxBatchRows": { + "$dynamic": false, + "type": "integer", + "title": "The maximum number of rows to buffer in memory before writing to the destination table in Postgres.", + "default": 200000, + "markdownDescription": "Default value is : `200000`" + }, + "maxBufferSize": { + "$dynamic": false, + "type": "integer", + "title": "The maximum number of bytes to buffer in memory before writing to the destination table in Postgres.", + "default": 104857600, + "markdownDescription": "Default value is : `104857600`" + }, + "password": { + "$dynamic": true, + "type": "string", + "title": "The database user's password." + }, + "persistEmptyTables": { + "$dynamic": false, + "type": "boolean", + "title": "Whether the Target should create tables which have no records present in Remote.", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "pipPackages": { + "$dynamic": true, + "title": "Override default pip packages to use a specific version.", + "type": "array", + "items": { + "$dynamic": true, + "type": "string" + } + }, + "port": { + "$dynamic": false, + "type": "integer", + "title": "The database port" + }, + "retry": { + "oneOf": [ + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Constant-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Exponential-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Random-2" + } + ] + }, + "schema": { + "$dynamic": true, + "type": "string", + "title": "The database schema.", + "default": "public", + "markdownDescription": "Default value is : `public`" + }, + "sslMode": { + "$dynamic": true, + "type": "string", + "title": "Refer to the [libpq](https://www.postgresql.org/docs/current/libpq-connect.html#LIBPQ-PARAMKEYWORDS) docs for more information about SSL.", + "default": "prefer", + "markdownDescription": "Default value is : `prefer`" + }, + "stateName": { + "$dynamic": true, + "type": "string", + "title": "The name of Singer state file.", + "default": "singer-state", + "markdownDescription": "Default value is : `singer-state`" + }, + "taskRunner": { + "oneOf": [ + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.scripts.runner.docker.Docker" + }, + { + "$dynamic": false, + "title": "The task runner to use.", + "markdownDescription": "Task runners are provided by plugins, each have their own properties." + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.runner.Process" + }, + { + "$dynamic": false, + "title": "The task runner to use.", + "markdownDescription": "Task runners are provided by plugins, each have their own properties." + } + ] + } + ] + }, + "timeout": { + "type": "string", + "format": "duration" + }, + "type": { + "const": "io.kestra.plugin.singer.targets.DatamillCoPostgres" + }, + "username": { + "$dynamic": true, + "type": "string", + "title": "The database user.", + "minLength": 1 + }, + "workerGroup": { + "$ref": "#/definitions/io.kestra.core.models.tasks.WorkerGroup" + } + }, + "required": ["from", "host", "id", "port", "type", "username"], + "title": "A Singer target loads data into a Postgres database.", + "markdownDescription": "Full documentation can be found [here](https://github.com/datamill-co/target-postgres)" + }, + "io.kestra.plugin.singer.targets.GenericTarget": { + "type": "object", + "properties": { + "allowFailure": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "command": { + "$dynamic": false, + "type": "string", + "title": "The command to start." + }, + "configs": { + "$dynamic": true, + "type": "object", + "title": "The configuration to use", + "markdownDescription": "Will be save on config.json and used as arguments" + }, + "containerImage": { + "$dynamic": true, + "type": "string", + "title": "The task runner container image, only used if the task runner is container-based.", + "default": "python:3.10.12", + "markdownDescription": "Default value is : `python:3.10.12`" + }, + "description": { + "type": "string" + }, + "disabled": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "docker": { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.scripts.exec.scripts.models.DockerOptions" + }, + { + "$dynamic": false, + "title": "Deprecated, use 'taskRunner' instead" + } + ] + }, + "from": { + "type": "string", + "title": "The raw data from a tap." + }, + "id": { + "type": "string", + "minLength": 1, + "pattern": "^[a-zA-Z0-9][a-zA-Z0-9_-]*" + }, + "logLevel": { + "type": "string", + "enum": ["ERROR", "WARN", "INFO", "DEBUG", "TRACE"] + }, + "pipPackages": { + "$dynamic": false, + "title": "The list of pip package to install.", + "type": "array", + "items": { + "$dynamic": false, + "type": "string" + } + }, + "retry": { + "oneOf": [ + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Constant-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Exponential-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Random-2" + } + ] + }, + "stateName": { + "$dynamic": true, + "type": "string", + "title": "The name of Singer state file.", + "default": "singer-state", + "markdownDescription": "Default value is : `singer-state`" + }, + "taskRunner": { + "oneOf": [ + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.scripts.runner.docker.Docker" + }, + { + "$dynamic": false, + "title": "The task runner to use.", + "markdownDescription": "Task runners are provided by plugins, each have their own properties." + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.runner.Process" + }, + { + "$dynamic": false, + "title": "The task runner to use.", + "markdownDescription": "Task runners are provided by plugins, each have their own properties." + } + ] + } + ] + }, + "timeout": { + "type": "string", + "format": "duration" + }, + "type": { + "const": "io.kestra.plugin.singer.targets.GenericTarget" + }, + "workerGroup": { + "$ref": "#/definitions/io.kestra.core.models.tasks.WorkerGroup" + } + }, + "required": ["command", "configs", "from", "id", "pipPackages", "type"], + "title": "A Generic Singer target." + }, + "io.kestra.plugin.singer.targets.Json": { + "type": "object", + "properties": { + "allowFailure": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "command": { + "$dynamic": true, + "type": "string", + "title": "Override default singer command." + }, + "containerImage": { + "$dynamic": true, + "type": "string", + "title": "The task runner container image, only used if the task runner is container-based.", + "default": "python:3.10.12", + "markdownDescription": "Default value is : `python:3.10.12`" + }, + "description": { + "type": "string" + }, + "disabled": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "docker": { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.scripts.exec.scripts.models.DockerOptions" + }, + { + "$dynamic": false, + "title": "Deprecated, use 'taskRunner' instead" + } + ] + }, + "from": { + "type": "string", + "title": "The raw data from a tap." + }, + "id": { + "type": "string", + "minLength": 1, + "pattern": "^[a-zA-Z0-9][a-zA-Z0-9_-]*" + }, + "logLevel": { + "type": "string", + "enum": ["ERROR", "WARN", "INFO", "DEBUG", "TRACE"] + }, + "pipPackages": { + "$dynamic": true, + "title": "Override default pip packages to use a specific version.", + "type": "array", + "items": { + "$dynamic": true, + "type": "string" + } + }, + "retry": { + "oneOf": [ + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Constant-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Exponential-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Random-2" + } + ] + }, + "stateName": { + "$dynamic": true, + "type": "string", + "title": "The name of Singer state file.", + "default": "singer-state", + "markdownDescription": "Default value is : `singer-state`" + }, + "taskRunner": { + "oneOf": [ + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.scripts.runner.docker.Docker" + }, + { + "$dynamic": false, + "title": "The task runner to use.", + "markdownDescription": "Task runners are provided by plugins, each have their own properties." + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.runner.Process" + }, + { + "$dynamic": false, + "title": "The task runner to use.", + "markdownDescription": "Task runners are provided by plugins, each have their own properties." + } + ] + } + ] + }, + "timeout": { + "type": "string", + "format": "duration" + }, + "type": { + "const": "io.kestra.plugin.singer.targets.Json" + }, + "workerGroup": { + "$ref": "#/definitions/io.kestra.core.models.tasks.WorkerGroup" + } + }, + "required": ["from", "id", "type"], + "title": "A Singer target loads data into JSON files.", + "markdownDescription": "Full documentation can be found [here](https://github.com/andyh1203/target-jsonl)" + }, + "io.kestra.plugin.singer.targets.MeltanoSnowflake": { + "type": "object", + "properties": { + "account": { + "$dynamic": true, + "type": "string", + "title": "Snowflake account name.", + "minLength": 1, + "markdownDescription": "(i.e. rtXXXXX.eu-central-1)" + }, + "addRecordMetadata": { + "$dynamic": false, + "type": "boolean", + "title": "Whether to add metadata columns.", + "default": true, + "markdownDescription": "Default value is : `true`" + }, + "allowFailure": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "command": { + "$dynamic": true, + "type": "string", + "title": "Override default singer command." + }, + "containerImage": { + "$dynamic": true, + "type": "string", + "title": "The task runner container image, only used if the task runner is container-based.", + "default": "python:3.10.12", + "markdownDescription": "Default value is : `python:3.10.12`" + }, + "database": { + "$dynamic": true, + "type": "string", + "title": "The database name.", + "minLength": 1 + }, + "defaultTargetSchema": { + "$dynamic": true, + "type": "string", + "title": "The default target database schema name to use for all streams." + }, + "description": { + "type": "string" + }, + "disabled": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "docker": { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.scripts.exec.scripts.models.DockerOptions" + }, + { + "$dynamic": false, + "title": "Deprecated, use 'taskRunner' instead" + } + ] + }, + "flatteningEnabled": { + "$dynamic": false, + "type": "boolean", + "title": "'True' to enable schema flattening and automatically expand nested properties." + }, + "flatteningMaxDepth": { + "$dynamic": false, + "type": "integer", + "title": "The max depth to flatten schemas." + }, + "from": { + "type": "string", + "title": "The raw data from a tap." + }, + "id": { + "type": "string", + "minLength": 1, + "pattern": "^[a-zA-Z0-9][a-zA-Z0-9_-]*" + }, + "logLevel": { + "type": "string", + "enum": ["ERROR", "WARN", "INFO", "DEBUG", "TRACE"] + }, + "password": { + "$dynamic": true, + "type": "string", + "title": "The database user's password." + }, + "pipPackages": { + "$dynamic": true, + "title": "Override default pip packages to use a specific version.", + "type": "array", + "items": { + "$dynamic": true, + "type": "string" + } + }, + "retry": { + "oneOf": [ + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Constant-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Exponential-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Random-2" + } + ] + }, + "role": { + "$dynamic": true, + "type": "string", + "title": "The initial role for the session." + }, + "schema": { + "$dynamic": true, + "type": "string", + "title": "The database schema.", + "minLength": 1 + }, + "stateName": { + "$dynamic": true, + "type": "string", + "title": "The name of Singer state file.", + "default": "singer-state", + "markdownDescription": "Default value is : `singer-state`" + }, + "taskRunner": { + "oneOf": [ + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.scripts.runner.docker.Docker" + }, + { + "$dynamic": false, + "title": "The task runner to use.", + "markdownDescription": "Task runners are provided by plugins, each have their own properties." + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.runner.Process" + }, + { + "$dynamic": false, + "title": "The task runner to use.", + "markdownDescription": "Task runners are provided by plugins, each have their own properties." + } + ] + } + ] + }, + "timeout": { + "type": "string", + "format": "duration" + }, + "type": { + "const": "io.kestra.plugin.singer.targets.MeltanoSnowflake" + }, + "username": { + "$dynamic": true, + "type": "string", + "title": "The database user.", + "minLength": 1 + }, + "warehouse": { + "$dynamic": true, + "type": "string", + "title": "Snowflake virtual warehouse name.", + "minLength": 1 + }, + "workerGroup": { + "$ref": "#/definitions/io.kestra.core.models.tasks.WorkerGroup" + } + }, + "required": [ + "account", + "database", + "from", + "id", + "schema", + "type", + "username", + "warehouse" + ], + "title": "A Singer target loads data into a Snowflake database.", + "markdownDescription": "Full documentation can be found [here](https://github.com/MeltanoLabs/target-snowflake)" + }, + "io.kestra.plugin.singer.targets.Oracle": { + "type": "object", + "properties": { + "allowFailure": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "command": { + "$dynamic": true, + "type": "string", + "title": "Override default singer command." + }, + "containerImage": { + "$dynamic": true, + "type": "string", + "title": "The task runner container image, only used if the task runner is container-based.", + "default": "python:3.10.12", + "markdownDescription": "Default value is : `python:3.10.12`" + }, + "database": { + "$dynamic": true, + "type": "string", + "title": "The database name." + }, + "description": { + "type": "string" + }, + "disabled": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "docker": { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.scripts.exec.scripts.models.DockerOptions" + }, + { + "$dynamic": false, + "title": "Deprecated, use 'taskRunner' instead" + } + ] + }, + "driverName": { + "$dynamic": true, + "type": "string", + "title": "SQLAlchemy driver name." + }, + "flatteningEnabled": { + "$dynamic": false, + "type": "boolean", + "title": "Enable schema flattening and automatically expand nested properties." + }, + "flatteningMaxDepth": { + "$dynamic": false, + "type": "integer", + "title": "The max depth to flatten schemas." + }, + "from": { + "type": "string", + "title": "The raw data from a tap." + }, + "host": { + "$dynamic": true, + "type": "string", + "title": "The database hostname.", + "minLength": 1 + }, + "id": { + "type": "string", + "minLength": 1, + "pattern": "^[a-zA-Z0-9][a-zA-Z0-9_-]*" + }, + "logLevel": { + "type": "string", + "enum": ["ERROR", "WARN", "INFO", "DEBUG", "TRACE"] + }, + "password": { + "$dynamic": true, + "type": "string", + "title": "The database user's password.", + "minLength": 1 + }, + "pipPackages": { + "$dynamic": true, + "title": "Override default pip packages to use a specific version.", + "type": "array", + "items": { + "$dynamic": true, + "type": "string" + } + }, + "port": { + "$dynamic": false, + "type": "integer", + "title": "The database port." + }, + "preferFloatOverNumeric": { + "$dynamic": false, + "type": "boolean", + "title": "Use float data type for numbers (otherwise number type is used)." + }, + "retry": { + "oneOf": [ + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Constant-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Exponential-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Random-2" + } + ] + }, + "stateName": { + "$dynamic": true, + "type": "string", + "title": "The name of Singer state file.", + "default": "singer-state", + "markdownDescription": "Default value is : `singer-state`" + }, + "streamMapConfig": { + "$dynamic": true, + "type": "string", + "title": "User-defined config values to be used within map expressions." + }, + "streamMaps": { + "$dynamic": true, + "type": "string", + "title": "Config object for stream maps capability." + }, + "taskRunner": { + "oneOf": [ + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.scripts.runner.docker.Docker" + }, + { + "$dynamic": false, + "title": "The task runner to use.", + "markdownDescription": "Task runners are provided by plugins, each have their own properties." + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.runner.Process" + }, + { + "$dynamic": false, + "title": "The task runner to use.", + "markdownDescription": "Task runners are provided by plugins, each have their own properties." + } + ] + } + ] + }, + "timeout": { + "type": "string", + "format": "duration" + }, + "type": { + "const": "io.kestra.plugin.singer.targets.Oracle" + }, + "username": { + "$dynamic": true, + "type": "string", + "title": "The database user.", + "minLength": 1 + }, + "workerGroup": { + "$ref": "#/definitions/io.kestra.core.models.tasks.WorkerGroup" + } + }, + "required": [ + "from", + "host", + "id", + "password", + "port", + "type", + "username" + ], + "title": "A Singer target that loads data into an Oracle database.", + "markdownDescription": "Full documentation can be found [here](https://hub.meltano.com/loaders/target-oracle/)" + }, + "io.kestra.plugin.singer.targets.PipelinewisePostgres": { + "type": "object", + "properties": { + "addMetadataColumns": { + "$dynamic": false, + "type": "boolean", + "title": "Add singer Metadata columns.", + "default": false, + "markdownDescription": "Metadata columns add extra row level information about data ingestions, (i.e. when was the row read in source, when was inserted or deleted in postgres etc.) Metadata columns are creating automatically by adding extra columns to the tables with a column prefix `_SDC_`. The column names are following the [stitch naming conventions](https://www.stitchdata.com/docs/data-structure/integration-schemas#sdc-columns). Enabling metadata columns will flag the deleted rows by setting the `_SDC_DELETED_AT` metadata column. Without the `add_metadata_columns` option the deleted rows from singer taps will not be recognisable in Postgres.\n\nDefault value is : `false`" + }, + "allowFailure": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "batchSizeRows": { + "$dynamic": false, + "type": "integer", + "title": "Maximum number of rows in each batch.", + "default": 100000, + "markdownDescription": "At the end of each batch, the rows in the batch are loaded into Postgres.\n\nDefault value is : `100000`" + }, + "command": { + "$dynamic": true, + "type": "string", + "title": "Override default singer command." + }, + "containerImage": { + "$dynamic": true, + "type": "string", + "title": "The task runner container image, only used if the task runner is container-based.", + "default": "python:3.10.12", + "markdownDescription": "Default value is : `python:3.10.12`" + }, + "dataFlatteningMaxLevel": { + "$dynamic": false, + "type": "integer", + "title": "Object type RECORD items from taps can be transformed to flattened columns by creating columns automatically.", + "default": 0, + "markdownDescription": "When value is 0 (default) then flattening functionality is turned off.\n\nDefault value is : `0`" + }, + "dbName": { + "$dynamic": true, + "type": "string", + "title": "The database name." + }, + "defaultTargetSchema": { + "$dynamic": true, + "type": "string", + "title": "Name of the schema where the tables will be created.", + "markdownDescription": "If `schemaMapping` is not defined then every stream sent by the tap is loaded into this schema." + }, + "defaultTargetSchemaSelectPermission": { + "$dynamic": true, + "type": "string", + "title": "Grant USAGE privilege on newly created schemas and grant SELECT privilege on newly created." + }, + "description": { + "type": "string" + }, + "disabled": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "docker": { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.scripts.exec.scripts.models.DockerOptions" + }, + { + "$dynamic": false, + "title": "Deprecated, use 'taskRunner' instead" + } + ] + }, + "flushAllStreams": { + "$dynamic": false, + "type": "boolean", + "title": "Flush and load every stream into Postgres when one batch is full.", + "default": false, + "markdownDescription": "Warning: This may trigger the COPY command to use files with low number of records..\n\nDefault value is : `false`" + }, + "from": { + "type": "string", + "title": "The raw data from a tap." + }, + "hardDelete": { + "$dynamic": false, + "type": "boolean", + "title": "Delete rows on Postgres.", + "default": false, + "markdownDescription": "When hard_delete option is true then DELETE SQL commands will be performed in Postgres to delete rows in tables. It's achieved by continuously checking the `_SDC_DELETED_AT` metadata column sent by the singer tap. Due to deleting rows requires metadata columns, hard_delete option automatically enables the add_metadata_columns option as well.\n\nDefault value is : `false`" + }, + "host": { + "$dynamic": true, + "type": "string", + "title": "The database hostname.", + "minLength": 1 + }, + "id": { + "type": "string", + "minLength": 1, + "pattern": "^[a-zA-Z0-9][a-zA-Z0-9_-]*" + }, + "logLevel": { + "type": "string", + "enum": ["ERROR", "WARN", "INFO", "DEBUG", "TRACE"] + }, + "maxParallelism": { + "$dynamic": false, + "type": "integer", + "title": "Max number of parallel threads to use when flushing tables.", + "default": 16, + "markdownDescription": "Default value is : `16`" + }, + "parallelism": { + "$dynamic": false, + "type": "integer", + "title": "The number of threads used to flush tables.", + "default": 0, + "markdownDescription": "0 will create a thread for each stream, up to parallelism_max. -1 will create a thread for each CPU core. Any other positive number will create that number of threads, up to parallelism_max.\n\nDefault value is : `0`" + }, + "password": { + "$dynamic": true, + "type": "string", + "title": "The database user's password." + }, + "pipPackages": { + "$dynamic": true, + "title": "Override default pip packages to use a specific version.", + "type": "array", + "items": { + "$dynamic": true, + "type": "string" + } + }, + "port": { + "$dynamic": false, + "type": "integer", + "title": "The database port." + }, + "primaryKeyRequired": { + "$dynamic": false, + "type": "boolean", + "title": "Log based and Incremental replications on tables with no Primary Key cause duplicates when merging UPDATE events.", + "default": true, + "markdownDescription": "When set to true, stop loading data if no Primary Key is defined.\n\nDefault value is : `true`" + }, + "retry": { + "oneOf": [ + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Constant-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Exponential-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Random-2" + } + ] + }, + "stateName": { + "$dynamic": true, + "type": "string", + "title": "The name of Singer state file.", + "default": "singer-state", + "markdownDescription": "Default value is : `singer-state`" + }, + "taskRunner": { + "oneOf": [ + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.scripts.runner.docker.Docker" + }, + { + "$dynamic": false, + "title": "The task runner to use.", + "markdownDescription": "Task runners are provided by plugins, each have their own properties." + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.runner.Process" + }, + { + "$dynamic": false, + "title": "The task runner to use.", + "markdownDescription": "Task runners are provided by plugins, each have their own properties." + } + ] + } + ] + }, + "timeout": { + "type": "string", + "format": "duration" + }, + "type": { + "const": "io.kestra.plugin.singer.targets.PipelinewisePostgres" + }, + "username": { + "$dynamic": true, + "type": "string", + "title": "The database user.", + "minLength": 1 + }, + "validateRecords": { + "$dynamic": false, + "type": "boolean", + "title": "Validate every single record message to the corresponding JSON schema.", + "default": false, + "markdownDescription": "This option is disabled by default and invalid RECORD messages will fail only at load time by Postgres. Enabling this option will detect invalid records earlier but could cause performance degradation..\n\nDefault value is : `false`" + }, + "workerGroup": { + "$ref": "#/definitions/io.kestra.core.models.tasks.WorkerGroup" + } + }, + "required": ["from", "host", "id", "port", "type", "username"], + "title": "A Singer target loads data into a Postgres database.", + "markdownDescription": "Full documentation can be found [here](https://github.com/transferwise/pipelinewise-target-postgres)" + }, + "io.kestra.plugin.singer.targets.PipelinewiseRedshift": { + "type": "object", + "properties": { + "accessKeyId": { + "$dynamic": true, + "type": "string", + "title": "S3 Access Key ID.", + "markdownDescription": "Used for S3 and Redshift copy operations." + }, + "addMetadataColumns": { + "$dynamic": false, + "type": "boolean", + "title": "Add metadata columns.", + "default": false, + "markdownDescription": "Metadata columns add extra row level information about data ingestions, (i.e. when was the row read in source, when was inserted or deleted in redshift etc.) Metadata columns are creating automatically by adding extra columns to the tables with a column prefix _SDC_. The metadata columns are documented at [here](https://transferwise.github.io/pipelinewise/index.html). Enabling metadata columns will flag the deleted rows by setting the _SDC_DELETED_AT metadata column. Without the `addMetadataColumns` option the deleted rows from singer taps will not be recongisable in Redshift.\n\nDefault value is : `false`" + }, + "allowFailure": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "batchSizeRows": { + "$dynamic": false, + "type": "integer", + "title": "Maximum number of rows in each batch.", + "default": 100000, + "markdownDescription": "At the end of each batch, the rows in the batch are loaded into Redshift.\n\nDefault value is : `100000`" + }, + "command": { + "$dynamic": true, + "type": "string", + "title": "Override default singer command." + }, + "compression": { + "$dynamic": false, + "type": "string", + "enum": ["gzip", "bzip2"], + "title": "The compression method to use when writing files to S3 and running Redshift COPY.", + "default": "bzip2", + "markdownDescription": "Default value is : `bzip2`" + }, + "containerImage": { + "$dynamic": true, + "type": "string", + "title": "The task runner container image, only used if the task runner is container-based.", + "default": "python:3.10.12", + "markdownDescription": "Default value is : `python:3.10.12`" + }, + "copyOptions": { + "$dynamic": true, + "type": "string", + "title": "COPY options.", + "markdownDescription": "Parameters to use in the COPY command when loading data to Redshift. Some basic file formatting parameters are fixed values and not recommended overriding them by custom values. They are like: `CSV GZIP DELIMITER ',' REMOVEQUOTES ESCAPE`." + }, + "dataFlatteningMaxLevel": { + "$dynamic": false, + "type": "integer", + "title": "Object type RECORD items from taps can be transformed to flattened columns by creating columns automatically.", + "default": 0, + "markdownDescription": "When `hardDelete` option is true then DELETE SQL commands will be performed in Redshift to delete rows in tables. It's achieved by continuously checking the _SDC_DELETED_AT metadata column sent by the singer tap. Due to deleting rows requires metadata columns, `hardDelete` option automatically enables the `addMetadataColumns` option as well..\n\nDefault value is : `0`" + }, + "dbName": { + "$dynamic": true, + "type": "string", + "title": "The database name." + }, + "defaultTargetSchema": { + "$dynamic": true, + "type": "string", + "title": "Name of the schema where the tables will be created.", + "minLength": 1, + "markdownDescription": "If schema_mapping is not defined then every stream sent by the tap is loaded into this schema." + }, + "defaultTargetSchemaSelectPermissions": { + "$dynamic": true, + "type": "string", + "title": "Grant USAGE privilege on newly created schemas and grant SELECT privilege on newly created tables to a specific list of users or groups.", + "markdownDescription": "If `schemaMapping` is not defined then every stream sent by the tap is granted accordingly." + }, + "description": { + "type": "string" + }, + "disableTableCache": { + "$dynamic": false, + "type": "boolean", + "title": "Disable table cache.", + "default": false, + "markdownDescription": "By default the connector caches the available table structures in Redshift at startup. In this way it doesn't need to run additional queries when ingesting data to check if altering the target tables is required. With disable_table_cache option you can turn off this caching. You will always see the most recent table structures but will cause an extra query runtime.\n\nDefault value is : `false`" + }, + "disabled": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "docker": { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.scripts.exec.scripts.models.DockerOptions" + }, + { + "$dynamic": false, + "title": "Deprecated, use 'taskRunner' instead" + } + ] + }, + "flushAllStreams": { + "$dynamic": false, + "type": "boolean", + "title": "Flush and load every stream into Redshift when one batch is full.", + "default": false, + "markdownDescription": "Warning: This may trigger the COPY command to use files with low number of records..\n\nDefault value is : `false`" + }, + "from": { + "type": "string", + "title": "The raw data from a tap." + }, + "hardDelete": { + "$dynamic": false, + "type": "boolean", + "title": "Delete rows on Redshift.", + "default": false, + "markdownDescription": "When `hardDelete` option is true then DELETE SQL commands will be performed in Redshift to delete rows in tables. It's achieved by continuously checking the _SDC_DELETED_AT metadata column sent by the singer tap. Due to deleting rows requires metadata columns, `hardDelete` option automatically enables the `addMetadataColumns` option as well.\n\nDefault value is : `false`" + }, + "host": { + "$dynamic": true, + "type": "string", + "title": "The database hostname.", + "minLength": 1 + }, + "id": { + "type": "string", + "minLength": 1, + "pattern": "^[a-zA-Z0-9][a-zA-Z0-9_-]*" + }, + "logLevel": { + "type": "string", + "enum": ["ERROR", "WARN", "INFO", "DEBUG", "TRACE"] + }, + "maxParallelism": { + "$dynamic": false, + "type": "integer", + "title": "Max number of parallel threads to use when flushing tables.", + "default": 16, + "markdownDescription": "Default value is : `16`" + }, + "parallelism": { + "$dynamic": false, + "type": "integer", + "title": "The number of threads used to flush tables.", + "default": 0, + "markdownDescription": "0 will create a thread for each stream, up to parallelism_max. -1 will create a thread for each CPU core. Any other positive number will create that number of threads, up to parallelism_max.\n\nDefault value is : `0`" + }, + "password": { + "$dynamic": true, + "type": "string", + "title": "The database user's password." + }, + "pipPackages": { + "$dynamic": true, + "title": "Override default pip packages to use a specific version.", + "type": "array", + "items": { + "$dynamic": true, + "type": "string" + } + }, + "port": { + "$dynamic": false, + "type": "integer", + "title": "The database port." + }, + "primaryKeyRequired": { + "$dynamic": false, + "type": "boolean", + "title": "Log based and Incremental replications on tables with no Primary Key cause duplicates when merging UPDATE events.", + "default": true, + "markdownDescription": "When set to true, stop loading data if no Primary Key is defined..\n\nDefault value is : `true`" + }, + "redshiftCopyRoleArn": { + "$dynamic": true, + "type": "string", + "title": "AWS Redshift COPY role ARN.", + "markdownDescription": "AWS Role ARN to be used for the Redshift COPY operation. Used instead of the given AWS keys for the COPY operation if provided - the keys are still used for other S3 operations." + }, + "retry": { + "oneOf": [ + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Constant-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Exponential-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Random-2" + } + ] + }, + "s3Acl": { + "$dynamic": true, + "type": "string", + "title": "AWS S3 ACL.", + "markdownDescription": "S3 Object ACL." + }, + "s3Bucket": { + "$dynamic": true, + "type": "string", + "title": "The S3 bucket name.", + "minLength": 1 + }, + "s3KeyPrefix": { + "$dynamic": true, + "type": "string", + "title": "S3 Key Prefix.", + "markdownDescription": "A static prefix before the generated S3 key names. Using prefixes you can upload files into specific directories in the S3 bucket. Default(None)." + }, + "schema_mapping": { + "$dynamic": false, + "type": "string", + "title": "Schema mapping.", + "markdownDescription": "Useful if you want to load multiple streams from one tap to multiple Redshift schemas. If the tap sends the stream_id in \u003Cschema_name\u003E-\u003Ctable_name\u003E format then this option overwrites the `default_target_schema` value. Note, that using schema_mapping you can overwrite the `default_target_schema_select_permissions` value to grant SELECT permissions to different groups per schemas or optionally you can create indices automatically for the replicated tables." + }, + "secretAccessKey": { + "$dynamic": true, + "type": "string", + "title": "S3 Secret Access Key.", + "markdownDescription": "Used for S3 and Redshift copy operations." + }, + "sessionToken": { + "$dynamic": true, + "type": "string", + "title": "AWS S3 Session Token.", + "markdownDescription": "S3 AWS STS token for temporary credentials." + }, + "skipUpdates": { + "$dynamic": false, + "type": "boolean", + "title": "Do not update existing records when Primary Key is defined. ", + "default": false, + "markdownDescription": "Useful to improve performance when records are immutable, e.g. events.\n\nDefault value is : `false`" + }, + "slices": { + "$dynamic": false, + "type": "integer", + "title": "number of slices to split files into prior to running COPY on Redshift.", + "default": 1, + "markdownDescription": "This should be set to the number of Redshift slices. The number of slices per node depends on the node size of the cluster - run SELECT COUNT(DISTINCT slice) slices FROM stv_slices to calculate this.\n\nDefault value is : `1`" + }, + "stateName": { + "$dynamic": true, + "type": "string", + "title": "The name of Singer state file.", + "default": "singer-state", + "markdownDescription": "Default value is : `singer-state`" + }, + "taskRunner": { + "oneOf": [ + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.scripts.runner.docker.Docker" + }, + { + "$dynamic": false, + "title": "The task runner to use.", + "markdownDescription": "Task runners are provided by plugins, each have their own properties." + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.runner.Process" + }, + { + "$dynamic": false, + "title": "The task runner to use.", + "markdownDescription": "Task runners are provided by plugins, each have their own properties." + } + ] + } + ] + }, + "timeout": { + "type": "string", + "format": "duration" + }, + "type": { + "const": "io.kestra.plugin.singer.targets.PipelinewiseRedshift" + }, + "username": { + "$dynamic": true, + "type": "string", + "title": "The database user.", + "minLength": 1 + }, + "validateRecords": { + "$dynamic": false, + "type": "boolean", + "title": "Validate every single record message to the corresponding JSON schema.", + "default": false, + "markdownDescription": "This option is disabled by default and invalid RECORD messages will fail only at load time by Redshift. Enabling this option will detect invalid records earlier but could cause performance degradation..\n\nDefault value is : `false`" + }, + "workerGroup": { + "$ref": "#/definitions/io.kestra.core.models.tasks.WorkerGroup" + } + }, + "required": [ + "defaultTargetSchema", + "from", + "host", + "id", + "port", + "s3Bucket", + "type", + "username" + ], + "title": "A Singer target loads data into a Redshift database.", + "markdownDescription": "Full documentation can be found [here](https://github.com/transferwise/pipelinewise-target-redshift)" + }, + "io.kestra.plugin.singer.targets.PipelinewiseSnowflake": { + "type": "object", + "properties": { + "account": { + "$dynamic": true, + "type": "string", + "title": "Snowflake account name.", + "minLength": 1, + "markdownDescription": "(i.e. rtXXXXX.eu-central-1)" + }, + "addMetadataColumns": { + "$dynamic": false, + "type": "boolean", + "title": "Metadata columns add extra row level information about data ingestions, (i.e. when was the row read in source, when was inserted or deleted in snowflake etc.) Metadata columns are creating automatically by adding extra columns to the tables with a column prefix `_SDC_`. The column names are following the stitch naming conventions documented at https://www.stitchdata.com/docs/data-structure/integration-schemas#sdc-columns. Enabling metadata columns will flag the deleted rows by setting the `_SDC_DELETED_AT` metadata column. Without the `add_metadata_columns` option the deleted rows from singer taps will not be recongisable in Snowflake. ", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "allowFailure": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "archiveLoadFiles": { + "$dynamic": false, + "type": "boolean", + "title": "When enabled, the files loaded to Snowflake will also be stored in `archive_load_files_s3_bucket` under the key `/{archive_load_files_s3_prefix}/{schema_name}/{table_name}/`. All archived files will have `tap`, `schema`, `table` and `archived-by` as S3 metadata keys. When incremental replication is used, the archived files will also have the following S3 metadata keys: `incremental-key`, `incremental-key-min` and `incremental-key-max`", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "archiveLoadFilesS3Bucket": { + "$dynamic": true, + "type": "string", + "title": "(Default: Value of `s3_bucket`) When `archive_load_files` is enabled, the archived files will be placed in this bucket." + }, + "archiveLoadFilesS3Prefix": { + "$dynamic": true, + "type": "string", + "title": "(Default: `archive`) When `archive_load_files` is enabled, the archived files will be placed in the archive S3 bucket under this prefix." + }, + "awsAccessKeyId": { + "$dynamic": true, + "type": "string", + "title": "S3 Access Key ID. If not provided, `AWS_ACCESS_KEY_ID` environment variable or IAM role will be used." + }, + "awsProfile": { + "$dynamic": true, + "type": "string", + "title": "AWS profile name for profile based authentication. If not provided, `AWS_PROFILE` environment variable will be used." + }, + "awsSecretAccessKey": { + "$dynamic": true, + "type": "string", + "title": "S3 Secret Access Key. If not provided, `AWS_SECRET_ACCESS_KEY` environment variable or IAM role will be used." + }, + "awsSessionToken": { + "$dynamic": true, + "type": "string", + "title": "AWS Session token. If not provided, `AWS_SESSION_TOKEN` environment variable will be used." + }, + "batchSizeRows": { + "$dynamic": false, + "type": "integer", + "title": "Maximum number of rows in each batch. At the end of each batch, the rows in the batch are loaded into Snowflake. ", + "default": 100000, + "markdownDescription": "Default value is : `100000`" + }, + "batchWaitLimit": { + "$dynamic": false, + "type": "string", + "format": "duration", + "title": "Maximum time to wait for batch to reach `batch_size_rows`. " + }, + "clientSideEncryptionMasterKey": { + "$dynamic": true, + "type": "string", + "title": "When this is defined, Client-Side Encryption is enabled. The data in S3 will be encrypted. No third parties, including Amazon AWS and any ISPs, can see data in the clear. Snowflake COPY command will decrypt the data once it is in Snowflake. The master key must be 256-bit length and must be encoded as base64 string." + }, + "command": { + "$dynamic": true, + "type": "string", + "title": "Override default singer command." + }, + "containerImage": { + "$dynamic": true, + "type": "string", + "title": "The task runner container image, only used if the task runner is container-based.", + "default": "python:3.10.12", + "markdownDescription": "Default value is : `python:3.10.12`" + }, + "dataFlatteningMaxLevel": { + "$dynamic": false, + "type": "integer", + "title": "(Default: 0) Object type RECORD items from taps can be loaded into VARIANT columns as JSON (default) or we can flatten the schema by creating columns automatically.\u003Cbr\u003E\u003Cbr\u003EWhen value is 0 (default) then flattening functionality is turned off.", + "default": 0, + "markdownDescription": "Default value is : `0`" + }, + "database": { + "$dynamic": true, + "type": "string", + "title": "The database name.", + "minLength": 1 + }, + "defaultTargetSchema": { + "$dynamic": true, + "type": "string", + "title": "Name of the schema where the tables will be created, **without** database prefix. If `schema_mapping` is not defined then every stream sent by the tap is loaded into this schema. " + }, + "defaultTargetSchemaSelectPermission": { + "$dynamic": true, + "type": "string", + "title": "Grant USAGE privilege on newly created schemas and grant SELECT privilege on newly created tables to a specific role or a list of roles. If `schema_mapping` is not defined then every stream sent by the tap is granted accordingly. " + }, + "description": { + "type": "string" + }, + "disableTableCache": { + "$dynamic": true, + "type": "boolean", + "title": "By default the connector caches the available table structures in Snowflake at startup. In this way it doesn't need to run additional queries when ingesting data to check if altering the target tables is required. With `disable_table_cache` option you can turn off this caching. You will always see the most recent table structures but will cause an extra query runtime.", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "disabled": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "docker": { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.scripts.exec.scripts.models.DockerOptions" + }, + { + "$dynamic": false, + "title": "Deprecated, use 'taskRunner' instead" + } + ] + }, + "fileFormat": { + "$dynamic": true, + "type": "string", + "title": "Named file format name created at pre-requirements section. Has to be a fully qualified name including the schema name. " + }, + "flushAllStreams": { + "$dynamic": true, + "type": "boolean", + "title": "Flush and load every stream into Snowflake when one batch is full. Warning: This may trigger the COPY command to use files with low number of records, and may cause performance problems. ", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "from": { + "type": "string", + "title": "The raw data from a tap." + }, + "hardDelete": { + "$dynamic": false, + "type": "boolean", + "title": "When `hardDelete` option is true, then DELETE SQL commands will be performed in Snowflake to delete rows in tables. It is achieved by continuously checking the `_SDC_DELETED_AT` metadata column sent by the singer tap. Due to deleting rows requiring metadata columns, `hard_delete` option automatically enables the `add_metadata_columns` option as well.", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "id": { + "type": "string", + "minLength": 1, + "pattern": "^[a-zA-Z0-9][a-zA-Z0-9_-]*" + }, + "logLevel": { + "type": "string", + "enum": ["ERROR", "WARN", "INFO", "DEBUG", "TRACE"] + }, + "noCompression": { + "$dynamic": false, + "type": "boolean", + "title": "Generate uncompressed files when loading to Snowflake. Normally, by default GZIP compressed files are generated. ", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "parallelism": { + "$dynamic": false, + "type": "integer", + "title": "The number of threads used to flush tables. 0 will create a thread for each stream, up to parallelism_max. -1 will create a thread for each CPU core. Any other positive number will create that number of threads, up to parallelism_max. ", + "default": 0, + "markdownDescription": "Default value is : `0`" + }, + "parallelismMax": { + "$dynamic": false, + "type": "integer", + "title": "Max number of parallel threads to use when flushing tables. ", + "default": 16, + "markdownDescription": "Default value is : `16`" + }, + "password": { + "$dynamic": true, + "type": "string", + "title": "The database user's password." + }, + "pipPackages": { + "$dynamic": true, + "title": "Override default pip packages to use a specific version.", + "type": "array", + "items": { + "$dynamic": true, + "type": "string" + } + }, + "primaryKeyRequired": { + "$dynamic": false, + "type": "boolean", + "title": "Log based and Incremental replications on tables with no Primary Key cause duplicates when merging UPDATE events. When set to true, stop loading data if no Primary Key is defined.", + "default": true, + "markdownDescription": "Default value is : `true`" + }, + "queryTag": { + "$dynamic": true, + "type": "string", + "title": "Optional string to tag executed queries in Snowflake. Replaces tokens `{{database}}`, `{{schema}}` and `{{table}}` with the appropriate values. The tags are displayed in the output of the Snowflake `QUERY_HISTORY`, `QUERY_HISTORY_BY_*` functions. " + }, + "retry": { + "oneOf": [ + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Constant-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Exponential-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Random-2" + } + ] + }, + "role": { + "$dynamic": true, + "type": "string", + "title": "Snowflake role to use. If not defined then the user's default role will be used." + }, + "s3Acl": { + "$dynamic": true, + "type": "string", + "title": "S3 ACL name to set on the uploaded files." + }, + "s3Bucket": { + "$dynamic": true, + "type": "string", + "title": "S3 Bucket name. Required if to use S3 External stage. When this is defined then `stage` has to be defined as well." + }, + "s3EndpointUrl": { + "$dynamic": true, + "type": "string", + "title": "The complete URL to use for the constructed client. This is allowing to use non-native s3 account. " + }, + "s3KeyPrefix": { + "$dynamic": true, + "type": "string", + "title": "A static prefix before the generated S3 key names. Using prefixes you can upload files into specific directories in the S3 bucket." + }, + "s3RegionName": { + "$dynamic": true, + "type": "string", + "title": "Default region when creating new connections." + }, + "schemaMapping": { + "$dynamic": true, + "type": "string", + "title": "Useful if you want to load multiple streams from one tap to multiple Snowflake schemas.\u003Cbr\u003E\u003Cbr\u003EIf the tap sends the `stream_id` in `\u003Cschema_name\u003E-\u003Ctable_name\u003E` format then this option overwrites the `default_target_schema` value. Note, that using `schema_mapping` you can overwrite the `default_target_schema_select_permission` value to grant SELECT permissions to different groups per schemas or optionally you can create indices automatically for the replicated tables.\u003Cbr\u003E\u003Cbr\u003E **Note**: This is an experimental feature and recommended to use via PipelineWise YAML files that will generate the object mapping in the right JSON format. For further info check a PipelineWise YAML Example" + }, + "stage": { + "$dynamic": true, + "type": "string", + "title": "Named external stage name created at pre-requirements section. Has to be a fully qualified name including the schema name. If not specified, table internal stage are used. When this is defined then `s3_bucket` has to be defined as well. " + }, + "stateName": { + "$dynamic": true, + "type": "string", + "title": "The name of Singer state file.", + "default": "singer-state", + "markdownDescription": "Default value is : `singer-state`" + }, + "taskRunner": { + "oneOf": [ + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.scripts.runner.docker.Docker" + }, + { + "$dynamic": false, + "title": "The task runner to use.", + "markdownDescription": "Task runners are provided by plugins, each have their own properties." + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.runner.Process" + }, + { + "$dynamic": false, + "title": "The task runner to use.", + "markdownDescription": "Task runners are provided by plugins, each have their own properties." + } + ] + } + ] + }, + "timeout": { + "type": "string", + "format": "duration" + }, + "type": { + "const": "io.kestra.plugin.singer.targets.PipelinewiseSnowflake" + }, + "username": { + "$dynamic": true, + "type": "string", + "title": "The database user.", + "minLength": 1 + }, + "validateRecords": { + "$dynamic": true, + "type": "boolean", + "title": "Validate every single record message to the corresponding JSON schema. This option is disabled by default and invalid RECORD messages will fail only at load time by Snowflake. Enabling this option will detect invalid records earlier but could cause performance degradation.", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "warehouse": { + "$dynamic": true, + "type": "string", + "title": "Snowflake virtual warehouse name.", + "minLength": 1 + }, + "workerGroup": { + "$ref": "#/definitions/io.kestra.core.models.tasks.WorkerGroup" + } + }, + "required": [ + "account", + "database", + "from", + "id", + "type", + "username", + "warehouse" + ], + "title": "A Singer target loads data into a Snowflake database.", + "markdownDescription": "Full documentation can be found [here](https://github.com/transferwise/pipelinewise-target-snowflake)" + }, + "io.kestra.plugin.singer.targets.SqlServer": { + "type": "object", + "properties": { + "allowFailure": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "command": { + "$dynamic": true, + "type": "string", + "title": "Override default singer command." + }, + "containerImage": { + "$dynamic": true, + "type": "string", + "title": "The task runner container image, only used if the task runner is container-based.", + "default": "python:3.10.12", + "markdownDescription": "Default value is : `python:3.10.12`" + }, + "database": { + "$dynamic": true, + "type": "string", + "title": "The database name.", + "minLength": 1 + }, + "defaultTargetSchema": { + "$dynamic": true, + "type": "string", + "title": "Default target schema to write to." + }, + "description": { + "type": "string" + }, + "disabled": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "docker": { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.scripts.exec.scripts.models.DockerOptions" + }, + { + "$dynamic": false, + "title": "Deprecated, use 'taskRunner' instead" + } + ] + }, + "flatteningEnabled": { + "$dynamic": false, + "type": "boolean", + "title": "Enable schema flattening and automatically expand nested properties" + }, + "flatteningMaxDepth": { + "$dynamic": false, + "type": "integer", + "title": "The max depth to flatten schemas." + }, + "from": { + "type": "string", + "title": "The raw data from a tap." + }, + "host": { + "$dynamic": true, + "type": "string", + "title": "The database hostname.", + "minLength": 1 + }, + "id": { + "type": "string", + "minLength": 1, + "pattern": "^[a-zA-Z0-9][a-zA-Z0-9_-]*" + }, + "logLevel": { + "type": "string", + "enum": ["ERROR", "WARN", "INFO", "DEBUG", "TRACE"] + }, + "password": { + "$dynamic": true, + "type": "string", + "title": "The database user's password.", + "minLength": 1 + }, + "pipPackages": { + "$dynamic": true, + "title": "Override default pip packages to use a specific version.", + "type": "array", + "items": { + "$dynamic": true, + "type": "string" + } + }, + "port": { + "$dynamic": false, + "type": "integer", + "title": "The database port." + }, + "preferFloatOverNumeric": { + "$dynamic": false, + "type": "boolean", + "title": "Use float data type for numbers (otherwise number type is used)." + }, + "retry": { + "oneOf": [ + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Constant-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Exponential-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Random-2" + } + ] + }, + "stateName": { + "$dynamic": true, + "type": "string", + "title": "The name of Singer state file.", + "default": "singer-state", + "markdownDescription": "Default value is : `singer-state`" + }, + "streamMapConfig": { + "$dynamic": true, + "type": "string", + "title": "User-defined config values to be used within map expressions." + }, + "streamMaps": { + "$dynamic": true, + "type": "string", + "title": "Config object for stream maps capability." + }, + "tablePrefix": { + "$dynamic": true, + "type": "string", + "title": "Prefix to add to table name. Useful if retrieving data from multiple taps for easier filtering." + }, + "taskRunner": { + "oneOf": [ + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.scripts.runner.docker.Docker" + }, + { + "$dynamic": false, + "title": "The task runner to use.", + "markdownDescription": "Task runners are provided by plugins, each have their own properties." + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.runner.Process" + }, + { + "$dynamic": false, + "title": "The task runner to use.", + "markdownDescription": "Task runners are provided by plugins, each have their own properties." + } + ] + } + ] + }, + "timeout": { + "type": "string", + "format": "duration" + }, + "type": { + "const": "io.kestra.plugin.singer.targets.SqlServer" + }, + "username": { + "$dynamic": true, + "type": "string", + "title": "The database user.", + "minLength": 1 + }, + "workerGroup": { + "$ref": "#/definitions/io.kestra.core.models.tasks.WorkerGroup" + } + }, + "required": [ + "database", + "from", + "host", + "id", + "password", + "port", + "type", + "username" + ], + "title": "A Singer target that loads data into a Microsoft SQL Server database.", + "markdownDescription": "Full documentation can be found [here](https://github.com/storebrand/target-mssql/blob/main/README.md)" + }, + "io.kestra.plugin.soda.Scan": { + "type": "object", + "properties": { + "allowFailure": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "checks": { + "$dynamic": true, + "type": "object", + "title": "The checks file", + "minProperties": 1 + }, + "configuration": { + "$dynamic": true, + "type": "object", + "title": "The configuration file", + "minProperties": 1 + }, + "containerImage": { + "$dynamic": true, + "type": "string", + "title": "The task runner container image, only used if the task runner is container-based.", + "default": "sodadata/soda-core", + "markdownDescription": "Default value is : `sodadata/soda-core`" + }, + "description": { + "type": "string" + }, + "disabled": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "docker": { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.scripts.exec.scripts.models.DockerOptions" + }, + { + "$deprecated": true, + "$dynamic": false, + "title": "Deprecated, use 'taskRunner' instead" + } + ] + }, + "dockerOptions": { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.scripts.exec.scripts.models.DockerOptions" + }, + { + "$deprecated": true, + "$dynamic": false, + "title": "Deprecated, use the `docker` property instead" + } + ] + }, + "env": { + "$dynamic": true, + "type": "object", + "title": "Additional environment variables for the current process.", + "additionalProperties": { + "type": "string" + } + }, + "id": { + "type": "string", + "minLength": 1, + "pattern": "^[a-zA-Z0-9][a-zA-Z0-9_-]*" + }, + "inputFiles": { + "$dynamic": true, + "title": "Input files are extra files that will be available in the dbt working directory.", + "additionalProperties": { + "type": "string" + }, + "markdownDescription": "You can define the files as map or a JSON string. Each file can be defined inlined or can reference a file from Kestra's internal storage." + }, + "logLevel": { + "type": "string", + "enum": ["ERROR", "WARN", "INFO", "DEBUG", "TRACE"] + }, + "requirements": { + "$dynamic": true, + "title": "List of python dependencies to add to the python execution process", + "markdownDescription": "Python dependencies list to setup in the virtualenv, in the same format than requirements.txt. It must at least provides dbt.", + "type": "array", + "items": { + "$dynamic": true, + "type": "string" + } + }, + "retry": { + "oneOf": [ + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Constant-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Exponential-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Random-2" + } + ] + }, + "runner": { + "$deprecated": true, + "$dynamic": false, + "type": "string", + "enum": ["PROCESS", "DOCKER"], + "title": "Runner to use", + "markdownDescription": "Deprecated, use 'taskRunner' instead" + }, + "taskRunner": { + "oneOf": [ + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.scripts.runner.docker.Docker" + }, + { + "$dynamic": false, + "title": "The task runner to use.", + "markdownDescription": "Task runners are provided by plugins, each have their own properties." + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.runner.Process" + }, + { + "$dynamic": false, + "title": "The task runner to use.", + "markdownDescription": "Task runners are provided by plugins, each have their own properties." + } + ] + } + ] + }, + "timeout": { + "type": "string", + "format": "duration" + }, + "type": { + "const": "io.kestra.plugin.soda.Scan" + }, + "variables": { + "$dynamic": true, + "type": "object", + "title": "The variables to pass" + }, + "verbose": { + "$dynamic": false, + "type": "boolean", + "title": "Whether to enable verbose logging", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "workerGroup": { + "$ref": "#/definitions/io.kestra.core.models.tasks.WorkerGroup" + } + }, + "required": ["checks", "configuration", "id", "requirements", "type"], + "title": "Run a Soda scan", + "markdownDescription": "##### Examples\n\u003E Run a scan on BigQuery\n```yaml\nconfiguration:\n data_source kestra:\n type: bigquery\n connection:\n project_id: kestra-unit-test\n dataset: demo\n account_info_json: |\n {{ secret('GCP_CREDS') }}\nchecks:\n checks for orderDetail:\n - row_count \u003E 0\n - max(unitPrice):\n warn: when between 1 and 250\n fail: when \u003E 250\n checks for territory:\n - row_count \u003E 0\n - failed rows:\n name: Failed rows query test\n fail condition: regionId = 4\nrequirements:\n - soda-core-bigquery\n```" + }, + "io.kestra.plugin.solace.Consume": { + "type": "object", + "properties": { + "allowFailure": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "description": { + "type": "string" + }, + "disabled": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "host": { + "$dynamic": true, + "type": "string", + "title": "The Solace hostname to connect with." + }, + "id": { + "type": "string", + "minLength": 1, + "pattern": "^[a-zA-Z0-9][a-zA-Z0-9_-]*" + }, + "logLevel": { + "type": "string", + "enum": ["ERROR", "WARN", "INFO", "DEBUG", "TRACE"] + }, + "maxDuration": { + "$dynamic": false, + "type": "string", + "format": "duration", + "title": "The maximum time to wait for receiving a number of messages up to `maxMessages`.", + "default": 10, + "markdownDescription": "Default value is : `10.000000000`" + }, + "maxMessages": { + "$dynamic": false, + "type": "integer", + "title": "The maximum number of messages to be received per poll.", + "default": 100, + "markdownDescription": "Default value is : `100`" + }, + "messageDeserializer": { + "$dynamic": false, + "type": "string", + "enum": ["STRING", "BINARY", "ION", "JSON"], + "title": "The Deserializer to be used for deserializing messages.", + "default": "STRING", + "markdownDescription": "Default value is : `STRING`" + }, + "messageDeserializerProperties": { + "$dynamic": false, + "type": "object", + "title": "The config properties to be passed to the Deserializer.", + "default": {}, + "markdownDescription": "Configs in key/value pairs.\n\nDefault value is : `{}`" + }, + "messageSelector": { + "$dynamic": false, + "type": "string", + "title": "The message selector to be used for receiving messages.", + "markdownDescription": "Enables support for message selection based on message header parameter and message properties values." + }, + "password": { + "$dynamic": true, + "type": "string", + "title": "The Solace password." + }, + "properties": { + "$dynamic": true, + "type": "object", + "title": "The Solace properties to be used for connecting to the broker.", + "default": {}, + "markdownDescription": "Default value is : `{}`" + }, + "queueName": { + "$dynamic": true, + "type": "string", + "title": "The name of the solace queue to consume from." + }, + "queueType": { + "$dynamic": false, + "type": "string", + "enum": [ + "DURABLE_EXCLUSIVE", + "DURABLE_NON_EXCLUSIVE", + "NON_DURABLE_EXCLUSIVE" + ], + "title": "The type of the queue to be consumed." + }, + "retry": { + "oneOf": [ + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Constant-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Exponential-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Random-2" + } + ] + }, + "timeout": { + "type": "string", + "format": "duration" + }, + "type": { + "const": "io.kestra.plugin.solace.Consume" + }, + "username": { + "$dynamic": true, + "type": "string", + "title": "The Solace username." + }, + "vpn": { + "$dynamic": true, + "type": "string", + "title": "The Solace VPN to connect with.", + "default": "default", + "markdownDescription": "Default value is : `default`" + }, + "workerGroup": { + "$ref": "#/definitions/io.kestra.core.models.tasks.WorkerGroup" + } + }, + "required": ["host", "id", "queueName", "queueType", "type"], + "title": "Consume messages from a Solace broker.", + "markdownDescription": "##### Examples\n\u003E Consume messages from a Solace queue.\n```yaml\nid: ConsumeMessageFromSolaceQueue\nnamespace: company.team\ntasks:\n- id: consumeFomSolace\n type: io.kestra.plugin.solace.Consume\n host: localhost:55555\n username: admin\n password: admin\n vpn: default\n messageDeserializer: JSON\n queueName: test_queue\n queueType: DURABLE_EXCLUSIVE\n\n```" + }, + "io.kestra.plugin.solace.Produce": { + "type": "object", + "properties": { + "allowFailure": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "awaitAcknowledgementTimeout": { + "$dynamic": false, + "type": "string", + "format": "duration", + "title": "The maximum time to wait for the message acknowledgement (in milliseconds) when configuring `deliveryMode` to `PERSISTENT`.", + "default": 60, + "markdownDescription": "Default value is : `60.000000000`" + }, + "deliveryMode": { + "$dynamic": false, + "type": "string", + "enum": ["DIRECT", "PERSISTENT"], + "title": "The delivery mode to be used for publishing messages messages.", + "default": "PERSISTENT", + "markdownDescription": "Default value is : `PERSISTENT`" + }, + "description": { + "type": "string" + }, + "disabled": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "from": { + "$dynamic": true, + "title": "The content of the message to be published to Solace", + "markdownDescription": "Can be an internal storage URI, a map (i.e. a list of key-value pairs) or a list of maps. The following keys are supported: `payload`, `properties`.", + "oneOf": [ + { + "type": "string" + }, + { + "type": "array", + "items": {} + }, + { + "type": "object" + } + ] + }, + "host": { + "$dynamic": true, + "type": "string", + "title": "The Solace hostname to connect with." + }, + "id": { + "type": "string", + "minLength": 1, + "pattern": "^[a-zA-Z0-9][a-zA-Z0-9_-]*" + }, + "logLevel": { + "type": "string", + "enum": ["ERROR", "WARN", "INFO", "DEBUG", "TRACE"] + }, + "messageProperties": { + "$dynamic": false, + "type": "object", + "title": "Additional properties to customize all messages to be published.", + "default": {}, + "markdownDescription": "Additional properties must be provided with Key of type String and Value of type String.\nEach key can be customer provided, or it can be a Solace message properties.\n\n\nDefault value is : `{}`" + }, + "messageSerializer": { + "$dynamic": false, + "type": "string", + "enum": ["STRING", "BINARY", "ION", "JSON"], + "title": "The Serializer to be used for serializing messages.", + "default": "STRING", + "markdownDescription": "Default value is : `STRING`" + }, + "messageSerializerProperties": { + "$dynamic": false, + "type": "object", + "title": "The config properties to be passed to the Serializer.", + "default": {}, + "markdownDescription": "Configs in key/value pairs.\n\nDefault value is : `{}`" + }, + "password": { + "$dynamic": true, + "type": "string", + "title": "The Solace password." + }, + "properties": { + "$dynamic": true, + "type": "object", + "title": "The Solace properties to be used for connecting to the broker.", + "default": {}, + "markdownDescription": "Default value is : `{}`" + }, + "retry": { + "oneOf": [ + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Constant-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Exponential-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Random-2" + } + ] + }, + "timeout": { + "type": "string", + "format": "duration" + }, + "topicDestination": { + "$dynamic": true, + "type": "string", + "title": "The topic destination to publish messages." + }, + "type": { + "const": "io.kestra.plugin.solace.Produce" + }, + "username": { + "$dynamic": true, + "type": "string", + "title": "The Solace username." + }, + "vpn": { + "$dynamic": true, + "type": "string", + "title": "The Solace VPN to connect with.", + "default": "default", + "markdownDescription": "Default value is : `default`" + }, + "workerGroup": { + "$ref": "#/definitions/io.kestra.core.models.tasks.WorkerGroup" + } + }, + "required": ["from", "host", "id", "topicDestination", "type"], + "title": "Publish messages to a Solace Broker.", + "markdownDescription": "##### Examples\n\u003E Publish a file as messages into a Solace Broker.\n```yaml\nid: SendMessagesIntoSolaceBroker\nnamespace: company.team\ninputs:\n - id: file\n type: FILE\n description: a CSV file with columns id, username, tweet, and timestamp\ntasks:\n - id: readCsvFile\n type: io.kestra.plugin.serdes.csv.CsvToIon\n from: \"{{ inputs.file }}\"\n - id: transformRowToJson\n type: io.kestra.plugin.scripts.nashorn.FileTransform\n from: \"{{ outputs.readCsvFile.uri }}\"\n script: |\n var result = {\n \"payload\": {\n \"username\": row.username,\n \"tweet\": row.tweet\n },\n \"properties\": {\n \"correlationId\": \"42\"\n }\n };\n row = result\n - id: sendMessageToSolace\n type: io.kestra.plugin.solace.Produce\n from: \"{{ outputs.transformRowToJson.uri }}\"\n topicDestination: test/tweets\n host: localhost:55555\n username: admin\n password: admin\n vpn: default\n messageSerializer: \"JSON\"\n\n```" + }, + "io.kestra.plugin.solace.Trigger": { + "type": "object", + "properties": { + "conditions": { + "$dynamic": false, + "title": "List of conditions in order to limit the flow trigger.", + "type": "array", + "items": { + "oneOf": [ + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.DateTimeBetweenCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.DayWeekCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.DayWeekInMonthCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.ExecutionFlowCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.ExecutionLabelsCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.ExecutionNamespaceCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.ExecutionOutputsCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.ExecutionStatusCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.ExpressionCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.FlowCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.FlowNamespaceCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.HasRetryAttemptCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.MultipleCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.NotCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.OrCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.PublicHolidayCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.TimeBetweenCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.WeekendCondition" + }, + { + "$dynamic": false + } + ] + } + ] + } + }, + "description": { + "type": "string" + }, + "disabled": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "host": { + "$dynamic": true, + "type": "string", + "title": "The Solace hostname to connect with." + }, + "id": { + "type": "string", + "title": "A unique ID for the whole flow.", + "minLength": 1, + "pattern": "^[a-zA-Z0-9][a-zA-Z0-9_-]*" + }, + "interval": { + "$dynamic": false, + "type": "string", + "format": "duration", + "title": "Interval between polling.", + "default": 60, + "markdownDescription": "The interval between 2 different polls of schedule, this can avoid to overload the remote system with too many calls. For most of the triggers that depend on external systems, a minimal interval must be at least PT30S.\nSee [ISO_8601 Durations](https://en.wikipedia.org/wiki/ISO_8601#Durations) for more information of available interval values.\n\nDefault value is : `60.000000000`" + }, + "labels": { + "title": "The labels to pass to the execution created.", + "type": "array", + "items": { + "$ref": "#/definitions/io.kestra.core.models.Label" + } + }, + "logLevel": { + "type": "string", + "enum": ["ERROR", "WARN", "INFO", "DEBUG", "TRACE"] + }, + "maxDuration": { + "$dynamic": false, + "type": "string", + "format": "duration", + "title": "The maximum time to wait for receiving a number of messages up to `maxMessages`.", + "default": 10, + "markdownDescription": "Default value is : `10.000000000`" + }, + "maxMessages": { + "$dynamic": false, + "type": "integer", + "title": "The maximum number of messages to be received per poll.", + "default": 100, + "markdownDescription": "Default value is : `100`" + }, + "messageDeserializer": { + "$dynamic": false, + "type": "string", + "enum": ["STRING", "BINARY", "ION", "JSON"], + "title": "The Deserializer to be used for deserializing messages.", + "default": "STRING", + "markdownDescription": "Default value is : `STRING`" + }, + "messageDeserializerProperties": { + "$dynamic": false, + "type": "object", + "title": "The config properties to be passed to the Deserializer.", + "default": {}, + "markdownDescription": "Configs in key/value pairs.\n\nDefault value is : `{}`" + }, + "messageSelector": { + "$dynamic": false, + "type": "string", + "title": "The message selector to be used for receiving messages.", + "markdownDescription": "Enables support for message selection based on message header parameter and message properties values." + }, + "password": { + "$dynamic": true, + "type": "string", + "title": "The Solace password." + }, + "properties": { + "$dynamic": true, + "type": "object", + "title": "The Solace properties to be used for connecting to the broker.", + "default": {}, + "markdownDescription": "Default value is : `{}`" + }, + "queueName": { + "$dynamic": true, + "type": "string", + "title": "The name of the solace queue to consume from." + }, + "queueType": { + "$dynamic": false, + "type": "string", + "enum": [ + "DURABLE_EXCLUSIVE", + "DURABLE_NON_EXCLUSIVE", + "NON_DURABLE_EXCLUSIVE" + ], + "title": "The type of the queue to be consumed." + }, + "stopAfter": { + "$dynamic": false, + "title": "List of execution states after which a trigger should be stopped (a.k.a. disabled).", + "type": "array", + "items": { + "$dynamic": false, + "type": "string", + "enum": [ + "CREATED", + "RUNNING", + "PAUSED", + "RESTARTED", + "KILLING", + "SUCCESS", + "WARNING", + "FAILED", + "KILLED", + "CANCELLED", + "QUEUED", + "RETRYING", + "RETRIED" + ] + } + }, + "type": { + "const": "io.kestra.plugin.solace.Trigger" + }, + "username": { + "$dynamic": true, + "type": "string", + "title": "The Solace username." + }, + "vpn": { + "$dynamic": true, + "type": "string", + "title": "The Solace VPN to connect with.", + "default": "default", + "markdownDescription": "Default value is : `default`" + }, + "workerGroup": { + "$ref": "#/definitions/io.kestra.core.models.tasks.WorkerGroup" + } + }, + "required": ["host", "id", "queueName", "queueType", "type"], + "title": "Trigger flow based on messages received from a Solace broker.", + "markdownDescription": "##### Examples\n\u003E Trigger flow based on messages received from a Solace broker.\n```yaml\nid: TriggerFromSolaceQueue\nnamespace: company.team\ntasks:\n - id: hello\n type: io.kestra.plugin.core.log.Log\n message: Hello there! I received {{trigger.messagesCount}} from Solace!\ntriggers:\n - id: readFromSolace\n type: \"io.kestra.plugin.solace.Trigger\"\n interval: PT30S\n host: localhost:55555\n username: admin\n password: admin\n vpn: default\n messageDeserializer: JSON\n queueName: test_queue\n queueType: DURABLE_EXCLUSIVE\n\n```" + }, + "io.kestra.plugin.spark.JarSubmit": { + "type": "object", + "properties": { + "allowFailure": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "appFiles": { + "$dynamic": true, + "type": "object", + "title": "Adds a file to be submitted with the application.", + "additionalProperties": { + "type": "string" + }, + "markdownDescription": "Must be an internal storage URI." + }, + "args": { + "$dynamic": true, + "title": "Command line arguments for the application.", + "type": "array", + "items": { + "$dynamic": true, + "type": "string" + } + }, + "configurations": { + "$dynamic": true, + "type": "object", + "title": "Configuration properties for the application.", + "additionalProperties": { + "type": "string" + } + }, + "containerImage": { + "$dynamic": true, + "type": "string", + "title": "The task runner container image, only used if the task runner is container-based.", + "default": "bitnami/spark", + "markdownDescription": "Default value is : `bitnami/spark`" + }, + "deployMode": { + "$dynamic": true, + "type": "string", + "enum": ["CLIENT", "CLUSTER"], + "title": "Deploy mode for the application." + }, + "description": { + "type": "string" + }, + "disabled": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "docker": { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.scripts.exec.scripts.models.DockerOptions" + }, + { + "$deprecated": true, + "$dynamic": false, + "title": "Deprecated, use 'taskRunner' instead" + } + ] + }, + "env": { + "$dynamic": true, + "type": "object", + "title": "Additional environment variables for the current process.", + "additionalProperties": { + "type": "string" + } + }, + "id": { + "type": "string", + "minLength": 1, + "pattern": "^[a-zA-Z0-9][a-zA-Z0-9_-]*" + }, + "jars": { + "$dynamic": true, + "type": "object", + "title": "Additional JAR files to be submitted with the application.", + "additionalProperties": { + "type": "string" + }, + "markdownDescription": "Must be an internal storage URI." + }, + "logLevel": { + "type": "string", + "enum": ["ERROR", "WARN", "INFO", "DEBUG", "TRACE"] + }, + "mainClass": { + "$dynamic": true, + "type": "string", + "title": "The application class name for Java/Scala applications." + }, + "mainResource": { + "$dynamic": true, + "type": "string", + "title": "The main application resource.", + "markdownDescription": "This should be the location of a JAR file for Scala/Java applications, or a Python script for PySpark applications.\nMust be an internal storage URI." + }, + "master": { + "$dynamic": true, + "type": "string", + "title": "Spark master hostname for the application.", + "markdownDescription": "Spark master URL [formats](https://spark.apache.org/docs/latest/submitting-applications.html#master-urls)." + }, + "name": { + "$dynamic": true, + "type": "string", + "title": "Spark application name." + }, + "retry": { + "oneOf": [ + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Constant-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Exponential-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Random-2" + } + ] + }, + "runner": { + "$dynamic": false, + "type": "string", + "enum": ["PROCESS", "DOCKER"], + "title": "Script runner to use.", + "markdownDescription": "Deprecated - use 'taskRunner' instead." + }, + "sparkSubmitPath": { + "$dynamic": true, + "type": "string", + "title": "The `spark-submit` binary path.", + "default": "spark-submit", + "markdownDescription": "Default value is : `spark-submit`" + }, + "taskRunner": { + "oneOf": [ + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.scripts.runner.docker.Docker" + }, + { + "$dynamic": false, + "title": "The task runner to use.", + "markdownDescription": "Task runners are provided by plugins, each have their own properties." + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.runner.Process" + }, + { + "$dynamic": false, + "title": "The task runner to use.", + "markdownDescription": "Task runners are provided by plugins, each have their own properties." + } + ] + } + ] + }, + "timeout": { + "type": "string", + "format": "duration" + }, + "type": { + "const": "io.kestra.plugin.spark.JarSubmit" + }, + "verbose": { + "$dynamic": false, + "type": "boolean", + "title": "Enables verbose reporting.", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "workerGroup": { + "$ref": "#/definitions/io.kestra.core.models.tasks.WorkerGroup" + } + }, + "required": ["id", "mainClass", "mainResource", "master", "type"], + "title": "Submit a Spark job to a remote cluster using a JAR file.", + "markdownDescription": "##### Examples\n\u003E \n```yaml\nrunner: DOCKER\nmaster: spark://localhost:7077\nmainResource: {{ inputs.file }}\nmainClass: spark.samples.App\n```" + }, + "io.kestra.plugin.spark.PythonSubmit": { + "type": "object", + "properties": { + "allowFailure": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "appFiles": { + "$dynamic": true, + "type": "object", + "title": "Adds a file to be submitted with the application.", + "additionalProperties": { + "type": "string" + }, + "markdownDescription": "Must be an internal storage URI." + }, + "args": { + "$dynamic": true, + "title": "Command line arguments for the application.", + "type": "array", + "items": { + "$dynamic": true, + "type": "string" + } + }, + "configurations": { + "$dynamic": true, + "type": "object", + "title": "Configuration properties for the application.", + "additionalProperties": { + "type": "string" + } + }, + "containerImage": { + "$dynamic": true, + "type": "string", + "title": "The task runner container image, only used if the task runner is container-based.", + "default": "bitnami/spark", + "markdownDescription": "Default value is : `bitnami/spark`" + }, + "deployMode": { + "$dynamic": true, + "type": "string", + "enum": ["CLIENT", "CLUSTER"], + "title": "Deploy mode for the application." + }, + "description": { + "type": "string" + }, + "disabled": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "docker": { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.scripts.exec.scripts.models.DockerOptions" + }, + { + "$deprecated": true, + "$dynamic": false, + "title": "Deprecated, use 'taskRunner' instead" + } + ] + }, + "env": { + "$dynamic": true, + "type": "object", + "title": "Additional environment variables for the current process.", + "additionalProperties": { + "type": "string" + } + }, + "id": { + "type": "string", + "minLength": 1, + "pattern": "^[a-zA-Z0-9][a-zA-Z0-9_-]*" + }, + "logLevel": { + "type": "string", + "enum": ["ERROR", "WARN", "INFO", "DEBUG", "TRACE"] + }, + "mainScript": { + "$dynamic": true, + "type": "string", + "title": "The main Python script." + }, + "master": { + "$dynamic": true, + "type": "string", + "title": "Spark master hostname for the application.", + "markdownDescription": "Spark master URL [formats](https://spark.apache.org/docs/latest/submitting-applications.html#master-urls)." + }, + "name": { + "$dynamic": true, + "type": "string", + "title": "Spark application name." + }, + "pythonFiles": { + "$dynamic": true, + "type": "object", + "title": "Adds a Python file/zip/egg package to be submitted with the application.", + "additionalProperties": { + "type": "string" + }, + "markdownDescription": "Must be an internal storage URI." + }, + "retry": { + "oneOf": [ + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Constant-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Exponential-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Random-2" + } + ] + }, + "runner": { + "$dynamic": false, + "type": "string", + "enum": ["PROCESS", "DOCKER"], + "title": "Script runner to use.", + "markdownDescription": "Deprecated - use 'taskRunner' instead." + }, + "sparkSubmitPath": { + "$dynamic": true, + "type": "string", + "title": "The `spark-submit` binary path.", + "default": "spark-submit", + "markdownDescription": "Default value is : `spark-submit`" + }, + "taskRunner": { + "oneOf": [ + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.scripts.runner.docker.Docker" + }, + { + "$dynamic": false, + "title": "The task runner to use.", + "markdownDescription": "Task runners are provided by plugins, each have their own properties." + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.runner.Process" + }, + { + "$dynamic": false, + "title": "The task runner to use.", + "markdownDescription": "Task runners are provided by plugins, each have their own properties." + } + ] + } + ] + }, + "timeout": { + "type": "string", + "format": "duration" + }, + "type": { + "const": "io.kestra.plugin.spark.PythonSubmit" + }, + "verbose": { + "$dynamic": false, + "type": "boolean", + "title": "Enables verbose reporting.", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "workerGroup": { + "$ref": "#/definitions/io.kestra.core.models.tasks.WorkerGroup" + } + }, + "required": ["id", "mainScript", "master", "type"], + "title": "Submit a PySpark job to a remote cluster.", + "markdownDescription": "##### Examples\n\u003E \n```yaml\nrunner: DOCKER\ndocker:\n networkMode: host\n user: root\nmaster: spark://localhost:7077\nargs:\n- \"10\"\nmainScript: |\n import sys\n from random import random\n from operator import add\n from pyspark.sql import SparkSession\n\n\n if __name__ == \"__main__\":\n spark = SparkSession \\\n .builder \\\n .appName(\"PythonPi\") \\\n .getOrCreate()\n\n partitions = int(sys.argv[1]) if len(sys.argv) \u003E 1 else 2\n n = 100000 * partitions\n\n def f(_: int) -\u003E float:\n x = random() * 2 - 1\n y = random() * 2 - 1\n return 1 if x ** 2 + y ** 2 \u003C= 1 else 0\n\n count = spark.sparkContext.parallelize(range(1, n + 1), partitions).map(f).reduce(add)\n print(\"Pi is roughly %f\" % (4.0 * count / n))\n\n spark.stop()\n```" + }, + "io.kestra.plugin.spark.RSubmit": { + "type": "object", + "properties": { + "allowFailure": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "appFiles": { + "$dynamic": true, + "type": "object", + "title": "Adds a file to be submitted with the application.", + "additionalProperties": { + "type": "string" + }, + "markdownDescription": "Must be an internal storage URI." + }, + "args": { + "$dynamic": true, + "title": "Command line arguments for the application.", + "type": "array", + "items": { + "$dynamic": true, + "type": "string" + } + }, + "configurations": { + "$dynamic": true, + "type": "object", + "title": "Configuration properties for the application.", + "additionalProperties": { + "type": "string" + } + }, + "containerImage": { + "$dynamic": true, + "type": "string", + "title": "The task runner container image, only used if the task runner is container-based.", + "default": "bitnami/spark", + "markdownDescription": "Default value is : `bitnami/spark`" + }, + "deployMode": { + "$dynamic": true, + "type": "string", + "enum": ["CLIENT", "CLUSTER"], + "title": "Deploy mode for the application." + }, + "description": { + "type": "string" + }, + "disabled": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "docker": { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.scripts.exec.scripts.models.DockerOptions" + }, + { + "$deprecated": true, + "$dynamic": false, + "title": "Deprecated, use 'taskRunner' instead" + } + ] + }, + "env": { + "$dynamic": true, + "type": "object", + "title": "Additional environment variables for the current process.", + "additionalProperties": { + "type": "string" + } + }, + "id": { + "type": "string", + "minLength": 1, + "pattern": "^[a-zA-Z0-9][a-zA-Z0-9_-]*" + }, + "logLevel": { + "type": "string", + "enum": ["ERROR", "WARN", "INFO", "DEBUG", "TRACE"] + }, + "mainScript": { + "$dynamic": true, + "type": "string", + "title": "The main R script." + }, + "master": { + "$dynamic": true, + "type": "string", + "title": "Spark master hostname for the application.", + "markdownDescription": "Spark master URL [formats](https://spark.apache.org/docs/latest/submitting-applications.html#master-urls)." + }, + "name": { + "$dynamic": true, + "type": "string", + "title": "Spark application name." + }, + "retry": { + "oneOf": [ + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Constant-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Exponential-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Random-2" + } + ] + }, + "runner": { + "$dynamic": false, + "type": "string", + "enum": ["PROCESS", "DOCKER"], + "title": "Script runner to use.", + "markdownDescription": "Deprecated - use 'taskRunner' instead." + }, + "sparkSubmitPath": { + "$dynamic": true, + "type": "string", + "title": "The `spark-submit` binary path.", + "default": "spark-submit", + "markdownDescription": "Default value is : `spark-submit`" + }, + "taskRunner": { + "oneOf": [ + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.scripts.runner.docker.Docker" + }, + { + "$dynamic": false, + "title": "The task runner to use.", + "markdownDescription": "Task runners are provided by plugins, each have their own properties." + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.runner.Process" + }, + { + "$dynamic": false, + "title": "The task runner to use.", + "markdownDescription": "Task runners are provided by plugins, each have their own properties." + } + ] + } + ] + }, + "timeout": { + "type": "string", + "format": "duration" + }, + "type": { + "const": "io.kestra.plugin.spark.RSubmit" + }, + "verbose": { + "$dynamic": false, + "type": "boolean", + "title": "Enables verbose reporting.", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "workerGroup": { + "$ref": "#/definitions/io.kestra.core.models.tasks.WorkerGroup" + } + }, + "required": ["id", "mainScript", "master", "type"], + "title": "Submit an R job to a remote cluster.", + "markdownDescription": "##### Examples\n\u003E \n```yaml\nrunner: DOCKER\ndocker:\n networkMode: host\n user: root\nmaster: spark://localhost:7077\nmainScript: |\n library(SparkR, lib.loc = c(file.path(Sys.getenv(\"SPARK_HOME\"), \"R\", \"lib\")))\n sparkR.session()\n \n print(\"The SparkR session has initialized successfully.\")\n \n sparkR.stop()\n```" + }, + "io.kestra.plugin.spark.SparkCLI": { + "type": "object", + "properties": { + "allowFailure": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "beforeCommands": { + "$dynamic": true, + "title": "A list of commands that will run before the `commands`, allowing to set up the environment e.g. `pip install -r requirements.txt`.", + "type": "array", + "items": { + "$dynamic": true, + "type": "string" + } + }, + "commands": { + "$dynamic": true, + "title": "The list of Spark CLI commands to run.", + "minItems": 1, + "type": "array", + "items": { + "$dynamic": true, + "type": "string" + } + }, + "containerImage": { + "$dynamic": true, + "type": "string", + "title": "The task runner container image, only used if the task runner is container-based.", + "default": "bitnami/spark", + "markdownDescription": "Default value is : `bitnami/spark`" + }, + "description": { + "type": "string" + }, + "disabled": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "docker": { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.scripts.exec.scripts.models.DockerOptions" + }, + { + "$deprecated": true, + "title": "Deprecated - use the 'taskRunner' property instead.", + "markdownDescription": "Only used if the `taskRunner` property is not set" + } + ] + }, + "env": { + "$dynamic": true, + "type": "object", + "title": "Additional environment variables for the current process.", + "additionalProperties": { + "type": "string" + } + }, + "failFast": { + "$dynamic": false, + "type": "boolean", + "title": "Fail the task on the first command with a non-zero status.", + "default": true, + "markdownDescription": "If set to `false` all commands will be executed one after the other. The final state of task execution is determined by the last command. Note that this property maybe be ignored if a non compatible interpreter is specified.\nYou can also disable it if your interpreter does not support the `set -e`option.\n\nDefault value is : `true`" + }, + "id": { + "type": "string", + "minLength": 1, + "pattern": "^[a-zA-Z0-9][a-zA-Z0-9_-]*" + }, + "inputFiles": { + "$dynamic": true, + "title": "The files to create on the local filesystem. It can be a map or a JSON object.", + "oneOf": [ + { + "type": "object" + }, + { + "type": "string" + } + ] + }, + "interpreter": { + "$dynamic": false, + "title": "Which interpreter to use.", + "default": ["/bin/sh", "-c"], + "minItems": 1, + "markdownDescription": "Default value is : `- /bin/sh\n- -c`\n\nDefault value is : `- /bin/sh\n- -c`", + "type": "array", + "items": { + "$dynamic": false, + "type": "string" + } + }, + "logLevel": { + "type": "string", + "enum": ["ERROR", "WARN", "INFO", "DEBUG", "TRACE"] + }, + "namespaceFiles": { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.core.models.tasks.NamespaceFiles" + }, + { + "$dynamic": false, + "title": "Inject namespace files.", + "markdownDescription": "Inject namespace files to this task. When enabled, it will, by default, load all namespace files into the working directory. However, you can use the `include` or `exclude` properties to limit which namespace files will be injected." + } + ] + }, + "outputDirectory": { + "$deprecated": true, + "type": "boolean", + "title": "Whether to setup the output directory mechanism.", + "default": "false", + "markdownDescription": "Required to use the {{ outputDir }} expression. Note that it could increase the starting time. Deprecated, use the `outputFiles` property instead.\n\nDefault value is : `\"false\"`" + }, + "outputFiles": { + "$dynamic": true, + "title": "The files from the local filesystem to send to Kestra's internal storage.", + "markdownDescription": "Must be a list of [glob](https://en.wikipedia.org/wiki/Glob_(programming)) expressions relative to the current working directory, some examples: `my-dir/**`, `my-dir/*/**` or `my-dir/my-file.txt`.", + "type": "array", + "items": { + "$dynamic": true, + "type": "string" + } + }, + "retry": { + "oneOf": [ + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Constant-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Exponential-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Random-2" + } + ] + }, + "runner": { + "$deprecated": true, + "$dynamic": false, + "type": "string", + "enum": ["PROCESS", "DOCKER"], + "title": "Deprecated - use the 'taskRunner' property instead.", + "markdownDescription": "Only used if the `taskRunner` property is not set" + }, + "targetOS": { + "type": "string", + "enum": ["LINUX", "WINDOWS", "AUTO"], + "title": "The target operating system where the script will run.", + "default": "AUTO", + "markdownDescription": "Default value is : `AUTO`" + }, + "taskRunner": { + "oneOf": [ + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.scripts.runner.docker.Docker" + }, + { + "$dynamic": false, + "title": "The task runner to use.", + "markdownDescription": "Task runners are provided by plugins, each have their own properties." + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.runner.Process" + }, + { + "$dynamic": false, + "title": "The task runner to use.", + "markdownDescription": "Task runners are provided by plugins, each have their own properties." + } + ] + } + ] + }, + "timeout": { + "type": "string", + "format": "duration" + }, + "type": { + "const": "io.kestra.plugin.spark.SparkCLI" + }, + "warningOnStdErr": { + "$dynamic": false, + "type": "boolean", + "title": "Whether to set the task state to `WARNING` if any `stdErr` is emitted.", + "default": true, + "markdownDescription": "Default value is : `true`" + }, + "workerGroup": { + "$ref": "#/definitions/io.kestra.core.models.tasks.WorkerGroup" + } + }, + "required": ["commands", "id", "type"], + "title": "Execute Spark CLI commands.", + "markdownDescription": "##### Examples\n\u003E Submit a PySpark job to a master node.\n```yaml\nid: spark-cli\nnamespace: company.team\ntasks:\n - id: hello\n type: io.kestra.plugin.spark.SparkCLI\n inputFiles:\n pi.py: |\n import sys\n from random import random\n from operator import add\n from pyspark.sql import SparkSession\n\n if __name__ == \"__main__\":\n spark = SparkSession .builder .appName(\"PythonPi\") .getOrCreate()\n\n partitions = int(sys.argv[1]) if len(sys.argv) \u003E 1 else 2\n n = 100000 * partitions\n\n def f(_: int) -\u003E float:\n x = random() * 2 - 1\n y = random() * 2 - 1\n return 1 if x ** 2 + y ** 2 \u003C= 1 else 0\n\n count = spark.sparkContext.parallelize(range(1, n + 1), partitions).map(f).reduce(add)\n print(\"Pi is roughly %f\" % (4.0 * count / n))\n\n spark.stop()\n docker:\n image: bitnami/spark\n networkMode: host\n commands:\n - spark-submit --name Pi --master spark://localhost:7077 pi.py\n```" + }, + "io.kestra.plugin.sqlmesh.cli.SQLMeshCLI": { + "type": "object", + "properties": { + "allowFailure": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "beforeCommands": { + "$dynamic": true, + "title": "The commands to execute before the main list of commands, e.g. to initialize or prepare the environment", + "type": "array", + "items": { + "$dynamic": true, + "type": "string" + } + }, + "commands": { + "$dynamic": true, + "title": "The commands to run in the container.", + "minItems": 1, + "type": "array", + "items": { + "$dynamic": true, + "type": "string" + } + }, + "containerImage": { + "$dynamic": true, + "type": "string", + "title": "The task runner container image, only used if the task runner is container-based.", + "default": "ghcr.io/kestra-io/sqlmesh", + "markdownDescription": "Default value is : `ghcr.io/kestra-io/sqlmesh`" + }, + "description": { + "type": "string" + }, + "disabled": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "docker": { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.scripts.exec.scripts.models.DockerOptions" + }, + { + "$deprecated": true, + "$dynamic": false, + "title": "Deprecated, use 'taskRunner' instead" + } + ] + }, + "env": { + "$dynamic": true, + "type": "object", + "title": "Additional environment variables for the current process.", + "additionalProperties": { + "type": "string" + } + }, + "id": { + "type": "string", + "minLength": 1, + "pattern": "^[a-zA-Z0-9][a-zA-Z0-9_-]*" + }, + "inputFiles": { + "$dynamic": true, + "title": "The files to create on the local filesystem. It can be a map or a JSON object.", + "oneOf": [ + { + "type": "object" + }, + { + "type": "string" + } + ] + }, + "logLevel": { + "type": "string", + "enum": ["ERROR", "WARN", "INFO", "DEBUG", "TRACE"] + }, + "namespaceFiles": { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.core.models.tasks.NamespaceFiles" + }, + { + "$dynamic": false, + "title": "Inject namespace files.", + "markdownDescription": "Inject namespace files to this task. When enabled, it will, by default, load all namespace files into the working directory. However, you can use the `include` or `exclude` properties to limit which namespace files will be injected." + } + ] + }, + "outputFiles": { + "$dynamic": true, + "title": "The files from the local filesystem to send to Kestra's internal storage.", + "markdownDescription": "Must be a list of [glob](https://en.wikipedia.org/wiki/Glob_(programming)) expressions relative to the current working directory, some examples: `my-dir/**`, `my-dir/*/**` or `my-dir/my-file.txt`.", + "type": "array", + "items": { + "$dynamic": true, + "type": "string" + } + }, + "retry": { + "oneOf": [ + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Constant-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Exponential-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Random-2" + } + ] + }, + "taskRunner": { + "oneOf": [ + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.scripts.runner.docker.Docker" + }, + { + "$dynamic": false, + "title": "The task runner to use.", + "markdownDescription": "Task runners are provided by plugins, each have their own properties." + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.runner.Process" + }, + { + "$dynamic": false, + "title": "The task runner to use.", + "markdownDescription": "Task runners are provided by plugins, each have their own properties." + } + ] + } + ] + }, + "timeout": { + "type": "string", + "format": "duration" + }, + "type": { + "const": "io.kestra.plugin.sqlmesh.cli.SQLMeshCLI" + }, + "workerGroup": { + "$ref": "#/definitions/io.kestra.core.models.tasks.WorkerGroup" + } + }, + "required": ["commands", "id", "type"], + "title": "Orchestrate a SQLMesh project from the Command Line Interface", + "markdownDescription": "##### Examples\n\u003E Orchestrate a SQLMesh project by automatically applying the plan\n```yaml\nid: transform\nnamespace: company.team\ntasks:\n - id: sqlmesh\n type: io.kestra.plugin.sqlmesh.cli.SQLMeshCLI\n beforeCommands:\n - sqlmesh init duckdb\n commands:\n - sqlmesh plan --auto-apply\n```" + }, + "io.kestra.plugin.surrealdb.Query": { + "type": "object", + "properties": { + "allowFailure": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "connection": { + "$ref": "#/definitions/com.surrealdb.connection.SurrealConnection" + }, + "connectionTimeout": { + "$dynamic": false, + "type": "integer", + "title": "Connection timeout. Default is `60` seconds.", + "default": 60, + "exclusiveMinimum": 0, + "markdownDescription": "Default value is : `60`" + }, + "database": { + "$dynamic": true, + "type": "string", + "title": "Connection database.", + "minLength": 1 + }, + "description": { + "type": "string" + }, + "disabled": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "fetchType": { + "$dynamic": false, + "type": "string", + "enum": ["STORE", "FETCH", "FETCH_ONE", "NONE"], + "title": "The way you want to store data.", + "default": "STORE", + "markdownDescription": "FETCH_ONE - output the first row.\nFETCH - output all rows as output variable.\nSTORE - store all rows to a file.\nNONE - do nothing.\n\nDefault value is : `STORE`" + }, + "host": { + "$dynamic": true, + "type": "string", + "title": "Connection host.", + "minLength": 1 + }, + "id": { + "type": "string", + "minLength": 1, + "pattern": "^[a-zA-Z0-9][a-zA-Z0-9_-]*" + }, + "logLevel": { + "type": "string", + "enum": ["ERROR", "WARN", "INFO", "DEBUG", "TRACE"] + }, + "namespace": { + "$dynamic": true, + "type": "string", + "title": "Connection namespace.", + "minLength": 1 + }, + "parameters": { + "$dynamic": true, + "type": "object", + "title": "Query parameters, can be named parameters.", + "default": {}, + "markdownDescription": "See SurrealDB documentation about SurrealQL Prepared Statements for query syntax.This should be supplied with a parameter map using named parameters.\n\nDefault value is : `{}`" + }, + "password": { + "$dynamic": true, + "type": "string", + "title": "Plaintext authentication password." + }, + "port": { + "$dynamic": false, + "type": "integer", + "title": "Connection port. Default value is `8000`.", + "default": 8000, + "exclusiveMinimum": 0, + "markdownDescription": "Default value is : `8000`" + }, + "query": { + "$dynamic": true, + "type": "string", + "title": "SurrealQL query to execute.", + "minLength": 1 + }, + "retry": { + "oneOf": [ + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Constant-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Exponential-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Random-2" + } + ] + }, + "timeout": { + "type": "string", + "format": "duration" + }, + "type": { + "const": "io.kestra.plugin.surrealdb.Query" + }, + "useTls": { + "$dynamic": false, + "type": "boolean", + "title": "Specify whether to use TLS for connection. Default is `false`.", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "username": { + "$dynamic": true, + "type": "string", + "title": "Plaintext authentication username." + }, + "workerGroup": { + "$ref": "#/definitions/io.kestra.core.models.tasks.WorkerGroup" + } + }, + "required": ["database", "host", "id", "namespace", "query", "type"], + "title": "Query a SurrealDB database with SurrealQL.", + "markdownDescription": "##### Examples\n\u003E Send a SurrealQL query to a SurrealDB database.\n```yaml\nuseTls: true\nport: 8000\nhost: localhost\nusername: surreal_user\npassword: surreal_passwd\ndatabase: surreal_db\nnamespace: surreal_namespace\nquery: SELECT * FROM SURREAL_TABLE\nfetchType: STORE\n```" + }, + "io.kestra.plugin.surrealdb.Trigger": { + "type": "object", + "properties": { + "conditions": { + "$dynamic": false, + "title": "List of conditions in order to limit the flow trigger.", + "type": "array", + "items": { + "oneOf": [ + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.DateTimeBetweenCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.DayWeekCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.DayWeekInMonthCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.ExecutionFlowCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.ExecutionLabelsCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.ExecutionNamespaceCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.ExecutionOutputsCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.ExecutionStatusCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.ExpressionCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.FlowCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.FlowNamespaceCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.HasRetryAttemptCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.MultipleCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.NotCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.OrCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.PublicHolidayCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.TimeBetweenCondition" + }, + { + "$dynamic": false + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.condition.WeekendCondition" + }, + { + "$dynamic": false + } + ] + } + ] + } + }, + "connectionTimeout": { + "$dynamic": false, + "type": "integer", + "title": "Connection timeout. Default is `60` seconds.", + "default": 60, + "exclusiveMinimum": 0, + "markdownDescription": "Default value is : `60`" + }, + "database": { + "$dynamic": true, + "type": "string", + "title": "Connection database.", + "minLength": 1 + }, + "description": { + "type": "string" + }, + "disabled": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "fetchType": { + "$dynamic": false, + "type": "string", + "enum": ["STORE", "FETCH", "FETCH_ONE", "NONE"], + "title": "The way you want to store data.", + "default": "STORE", + "markdownDescription": "FETCH_ONE - output the first row.\nFETCH - output all rows as output variable.\nSTORE - store all rows to a file.\nNONE - do nothing.\n\nDefault value is : `STORE`" + }, + "host": { + "$dynamic": true, + "type": "string", + "title": "Connection host.", + "minLength": 1 + }, + "id": { + "type": "string", + "title": "A unique ID for the whole flow.", + "minLength": 1, + "pattern": "^[a-zA-Z0-9][a-zA-Z0-9_-]*" + }, + "interval": { + "$dynamic": false, + "type": "string", + "format": "duration", + "title": "Interval between polling.", + "default": 60, + "markdownDescription": "The interval between 2 different polls of schedule, this can avoid to overload the remote system with too many calls. For most of the triggers that depend on external systems, a minimal interval must be at least PT30S.\nSee [ISO_8601 Durations](https://en.wikipedia.org/wiki/ISO_8601#Durations) for more information of available interval values.\n\nDefault value is : `60.000000000`" + }, + "labels": { + "title": "The labels to pass to the execution created.", + "type": "array", + "items": { + "$ref": "#/definitions/io.kestra.core.models.Label" + } + }, + "logLevel": { + "type": "string", + "enum": ["ERROR", "WARN", "INFO", "DEBUG", "TRACE"] + }, + "namespace": { + "$dynamic": true, + "type": "string", + "title": "Connection namespace.", + "minLength": 1 + }, + "parameters": { + "$dynamic": true, + "type": "object", + "title": "Query parameters, can be named parameters.", + "default": {}, + "markdownDescription": "See SurrealDB documentation about SurrealQL Prepared Statements for query syntax.This should be supplied with a parameter map using named parameters.\n\nDefault value is : `{}`" + }, + "password": { + "$dynamic": true, + "type": "string", + "title": "Plaintext authentication password." + }, + "port": { + "$dynamic": false, + "type": "integer", + "title": "Connection port. Default value is `8000`.", + "default": 8000, + "exclusiveMinimum": 0, + "markdownDescription": "Default value is : `8000`" + }, + "query": { + "$dynamic": true, + "type": "string", + "title": "SurrealQL query to execute.", + "minLength": 1 + }, + "stopAfter": { + "$dynamic": false, + "title": "List of execution states after which a trigger should be stopped (a.k.a. disabled).", + "type": "array", + "items": { + "$dynamic": false, + "type": "string", + "enum": [ + "CREATED", + "RUNNING", + "PAUSED", + "RESTARTED", + "KILLING", + "SUCCESS", + "WARNING", + "FAILED", + "KILLED", + "CANCELLED", + "QUEUED", + "RETRYING", + "RETRIED" + ] + } + }, + "type": { + "const": "io.kestra.plugin.surrealdb.Trigger" + }, + "useTls": { + "$dynamic": false, + "type": "boolean", + "title": "Specify whether to use TLS for connection. Default is `false`.", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "username": { + "$dynamic": true, + "type": "string", + "title": "Plaintext authentication username." + }, + "workerGroup": { + "$ref": "#/definitions/io.kestra.core.models.tasks.WorkerGroup" + } + }, + "required": ["database", "host", "id", "namespace", "query", "type"], + "title": "Query a SurrealDB database on a regular interval to trigger flow on results.", + "markdownDescription": "##### Examples\n\u003E Wait for SurrealQL query to return results, and then iterate through rows.\n```yaml\nid: surrealdb-trigger\nnamespace: company.team\n\ntasks:\n - id: each\n type: io.kestra.plugin.core.flow.EachSequential\n tasks:\n - id: return\n type: io.kestra.plugin.core.debug.Return\n format: \"{{ json(taskrun.value) }}\"\n value: \"{{ trigger.rows }}\"\n\ntriggers:\n - id: watch\n type: io.kestra.plugin.surrealdb.Trigger\n interval: \"PT5M\"\n host: localhost\n port: 8000\n username: surreal_user\n password: surreal_passwd\n namespace: surreal_namespace\n database: surreal_db\n fetchType: FETCH\n query: SELECT * FROM SURREAL_TABLE\n```" + }, + "io.kestra.plugin.terraform.cli.TerraformCLI": { + "type": "object", + "properties": { + "allowFailure": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "beforeCommands": { + "$dynamic": true, + "title": "The setup commands to initialize the environment before executing the main list of commands such as `terraform init`.", + "type": "array", + "items": { + "$dynamic": true, + "type": "string" + } + }, + "commands": { + "$dynamic": true, + "title": "The commands to run such as `terraform apply -auto-approve`.", + "minItems": 1, + "type": "array", + "items": { + "$dynamic": true, + "type": "string" + } + }, + "containerImage": { + "$dynamic": true, + "type": "string", + "title": "The task runner container image, only used if the task runner is container-based.", + "default": "hashicorp/terraform", + "markdownDescription": "Default value is : `hashicorp/terraform`" + }, + "description": { + "type": "string" + }, + "disabled": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "docker": { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.scripts.exec.scripts.models.DockerOptions" + }, + { + "$deprecated": true, + "$dynamic": false, + "title": "Deprecated, use 'taskRunner' instead" + } + ] + }, + "env": { + "$dynamic": true, + "type": "object", + "title": "Additional environment variables such as credentials and configuration for the Terraform provider.", + "additionalProperties": { + "type": "string" + } + }, + "id": { + "type": "string", + "minLength": 1, + "pattern": "^[a-zA-Z0-9][a-zA-Z0-9_-]*" + }, + "inputFiles": { + "$dynamic": true, + "title": "The files to create on the local filesystem. It can be a map or a JSON object.", + "oneOf": [ + { + "type": "object" + }, + { + "type": "string" + } + ] + }, + "logLevel": { + "type": "string", + "enum": ["ERROR", "WARN", "INFO", "DEBUG", "TRACE"] + }, + "namespaceFiles": { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.core.models.tasks.NamespaceFiles" + }, + { + "$dynamic": false, + "title": "Inject namespace files.", + "markdownDescription": "Inject namespace files to this task. When enabled, it will, by default, load all namespace files into the working directory. However, you can use the `include` or `exclude` properties to limit which namespace files will be injected." + } + ] + }, + "outputFiles": { + "$dynamic": true, + "title": "The files from the local filesystem to send to Kestra's internal storage.", + "markdownDescription": "Must be a list of [glob](https://en.wikipedia.org/wiki/Glob_(programming)) expressions relative to the current working directory, some examples: `my-dir/**`, `my-dir/*/**` or `my-dir/my-file.txt`.", + "type": "array", + "items": { + "$dynamic": true, + "type": "string" + } + }, + "retry": { + "oneOf": [ + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Constant-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Exponential-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Random-2" + } + ] + }, + "taskRunner": { + "oneOf": [ + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.scripts.runner.docker.Docker" + }, + { + "$dynamic": false, + "title": "The task runner to use.", + "markdownDescription": "Task runners are provided by plugins, each have their own properties." + } + ] + }, + { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.core.runner.Process" + }, + { + "$dynamic": false, + "title": "The task runner to use.", + "markdownDescription": "Task runners are provided by plugins, each have their own properties." + } + ] + } + ] + }, + "timeout": { + "type": "string", + "format": "duration" + }, + "type": { + "const": "io.kestra.plugin.terraform.cli.TerraformCLI" + }, + "workerGroup": { + "$ref": "#/definitions/io.kestra.core.models.tasks.WorkerGroup" + } + }, + "required": ["commands", "id", "type"], + "title": "Orchestrate Infrastructure as Code by executing Terraform CLI commands in a Docker container. This task assumes that you use a remote backend for storing Terraform state files, such as AWS S3, GCS, or Terraform Cloud.", + "markdownDescription": "##### Examples\n\u003E Initialize Terraform, then create and apply the Terraform plan\n```yaml\nid: git_terraform\nnamespace: company.team\n\ntasks:\n - id: git\n type: io.kestra.plugin.core.flow.WorkingDirectory\n tasks:\n - id: clone_repository\n type: io.kestra.plugin.git.Clone\n url: https://github.com/anna-geller/kestra-ci-cd\n branch: main\n\n - id: terraform\n type: io.kestra.plugin.terraform.cli.TerraformCLI\n beforeCommands:\n - terraform init\n inputFiles:\n terraform.tfvars: |\n username = \"cicd\"\n password = \"{{ secret('CI_CD_PASSWORD') }}\"\n hostname = \"https://demo.kestra.io\"\n outputFiles:\n - \"*.txt\"\n commands:\n - terraform plan 2\u003E&1 | tee plan_output.txt\n - terraform apply -auto-approve 2\u003E&1 | tee apply_output.txt\n env:\n AWS_ACCESS_KEY_ID: \"{{ secret('AWS_ACCESS_KEY_ID') }}\"\n AWS_SECRET_ACCESS_KEY: \"{{ secret('AWS_SECRET_ACCESS_KEY') }}\"\n AWS_DEFAULT_REGION: \"{{ secret('AWS_DEFAULT_REGION') }}\"\n\n```" + }, + "io.kestra.plugin.tika.Parse": { + "type": "object", + "properties": { + "allowFailure": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "contentType": { + "$dynamic": false, + "type": "string", + "enum": ["TEXT", "XHTML", "XHTML_NO_HEADER"], + "title": "The content type of the extracted text.", + "default": "XHTML", + "markdownDescription": "Default value is : `XHTML`" + }, + "description": { + "type": "string" + }, + "disabled": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "extractEmbedded": { + "$dynamic": false, + "type": "boolean", + "title": "Whether to extract the embedded document.", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "from": { + "$dynamic": true, + "type": "string", + "title": "The file to parse.", + "markdownDescription": "Must be an internal storage URI." + }, + "id": { + "type": "string", + "minLength": 1, + "pattern": "^[a-zA-Z0-9][a-zA-Z0-9_-]*" + }, + "logLevel": { + "type": "string", + "enum": ["ERROR", "WARN", "INFO", "DEBUG", "TRACE"] + }, + "ocrOptions": { + "allOf": [ + { + "$ref": "#/definitions/io.kestra.plugin.tika.Parse-OcrOptions" + }, + { + "$dynamic": false, + "title": "Custom options for OCR processing.", + "default": { + "strategy": "NO_OCR" + }, + "markdownDescription": "You need to install [Tesseract](https://cwiki.apache.org/confluence/display/TIKA/TikaOCR) to enable OCR processing.\n\nDefault value is : `strategy: NO_OCR`" + } + ] + }, + "retry": { + "oneOf": [ + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Constant-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Exponential-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Random-2" + } + ] + }, + "store": { + "$dynamic": false, + "type": "boolean", + "title": "Whether to store the data from the query result into an ion serialized data file in Kestra internal storage.", + "default": true, + "markdownDescription": "Default value is : `true`" + }, + "timeout": { + "type": "string", + "format": "duration" + }, + "type": { + "const": "io.kestra.plugin.tika.Parse" + }, + "workerGroup": { + "$ref": "#/definitions/io.kestra.core.models.tasks.WorkerGroup" + } + }, + "required": ["id", "type"], + "title": "Parse a document and extract its content and metadata.", + "markdownDescription": "##### Examples\n\u003E Extract text from a file.\n```yaml\nfrom: '{{ inputs.file }}'\nextractEmbedded: true\nstore: false\n```\n\n\u003E Extract text from an image using OCR.\n```yaml\nfrom: '{{ inputs.file }}'\nocrOptions:\n strategy: OCR_AND_TEXT_EXTRACTION\nstore: true\n```" + }, + "io.kestra.plugin.tika.Parse-OcrOptions": { + "type": "object", + "properties": { + "enableImagePreprocessing": { + "$dynamic": false, + "type": "boolean", + "title": "Whether to enable image preprocessing.", + "markdownDescription": "Apache Tika will run preprocessing of images (rotation detection and image normalizing with ImageMagick) before sending the image to Tesseract if the user has included dependencies (listed below) and if the user opts to include these preprocessing steps." + }, + "language": { + "$dynamic": true, + "type": "string", + "title": "Language used for OCR." + }, + "strategy": { + "$dynamic": false, + "type": "string", + "enum": ["AUTO", "NO_OCR", "OCR_ONLY", "OCR_AND_TEXT_EXTRACTION"], + "title": "OCR strategy to use for OCR processing.", + "default": "NO_OCR", + "markdownDescription": "You need to install [Tesseract](https://cwiki.apache.org/confluence/display/TIKA/TikaOCR) to enable OCR processing, along with Tesseract language pack.\n\nDefault value is : `NO_OCR`" + } + } + }, + "io.kestra.plugin.transform.grok.TransformItems": { + "type": "object", + "properties": { + "allowFailure": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "breakOnFirstMatch": { + "$dynamic": false, + "type": "boolean", + "title": "If `true`, break on first match.", + "default": true, + "markdownDescription": "The first successful match by grok will result in the task being finished. Set to `false` if you want the task to try all configured patterns.\n\nDefault value is : `true`" + }, + "description": { + "type": "string" + }, + "disabled": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "from": { + "$dynamic": true, + "type": "string", + "title": "The file to be transformed.", + "markdownDescription": "Must be a `kestra://` internal storage URI." + }, + "id": { + "type": "string", + "minLength": 1, + "pattern": "^[a-zA-Z0-9][a-zA-Z0-9_-]*" + }, + "logLevel": { + "type": "string", + "enum": ["ERROR", "WARN", "INFO", "DEBUG", "TRACE"] + }, + "namedCapturesOnly": { + "$dynamic": false, + "type": "boolean", + "title": "If `true`, only store named captures from grok.", + "default": true, + "markdownDescription": "Default value is : `true`" + }, + "pattern": { + "$dynamic": false, + "type": "string", + "title": "The Grok pattern to match." + }, + "patternDefinitions": { + "$dynamic": false, + "type": "object", + "title": "Custom pattern definitions.", + "markdownDescription": "A map of pattern-name and pattern pairs defining custom patterns to be used by the current tasks. Patterns matching existing names will override the pre-existing definition. " + }, + "patterns": { + "$dynamic": false, + "title": "The list of Grok patterns to match.", + "type": "array", + "items": { + "$dynamic": false, + "type": "string" + } + }, + "patternsDir": { + "$dynamic": false, + "title": "List of user-defined pattern directories.", + "markdownDescription": "Directories must be paths relative to the working directory.", + "type": "array", + "items": { + "$dynamic": false, + "type": "string" + } + }, + "retry": { + "oneOf": [ + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Constant-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Exponential-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Random-2" + } + ] + }, + "timeout": { + "type": "string", + "format": "duration" + }, + "type": { + "const": "io.kestra.plugin.transform.grok.TransformItems" + }, + "workerGroup": { + "$ref": "#/definitions/io.kestra.core.models.tasks.WorkerGroup" + } + }, + "required": ["from", "id", "type"], + "title": "Parse arbitrary text and structure it using Grok expressions.", + "markdownDescription": "The `TransformItems` task is similar to the famous Logstash Grok filter from the ELK stack.\nIt is particularly useful for transforming unstructured data such as logs into a structured, indexable, and queryable data structure.\n\nThe `TransformItems` ships with all the default patterns as defined You can find them here: https://github.com/kestra-io/plugin-transform/tree/main/plugin-transform-grok/src/main/resources/patterns.\n##### Examples\n\u003E Consume, parse, and structure logs events from Kafka topic.\n```yaml\nid: grok\nnamespace: myteam\n\ntasks:\n- id: grok\n type: io.kestra.plugin.transform.grok.TransformItems\n pattern: \"%{TIMESTAMP_ISO8601:logdate} %{LOGLEVEL:loglevel} %{GREEDYDATA:message}\"\n from: \"{{ trigger.uri }}\"\n\ntriggers:\n- id: trigger\n type: io.kestra.plugin.kafka.Trigger\n topic: test_kestra\n properties:\n bootstrap.servers: localhost:9092\n serdeProperties:\n schema.registry.url: http://localhost:8085\n keyDeserializer: STRING\n valueDeserializer: STRING\n groupId: kafkaConsumerGroupId\n interval: PT30S\n maxRecords: 5\n\n```" + }, + "io.kestra.plugin.transform.grok.TransformValue": { + "type": "object", + "properties": { + "allowFailure": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "breakOnFirstMatch": { + "$dynamic": false, + "type": "boolean", + "title": "If `true`, break on first match.", + "default": true, + "markdownDescription": "The first successful match by grok will result in the task being finished. Set to `false` if you want the task to try all configured patterns.\n\nDefault value is : `true`" + }, + "description": { + "type": "string" + }, + "disabled": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "from": { + "$dynamic": true, + "type": "string", + "title": "The value to parse." + }, + "id": { + "type": "string", + "minLength": 1, + "pattern": "^[a-zA-Z0-9][a-zA-Z0-9_-]*" + }, + "logLevel": { + "type": "string", + "enum": ["ERROR", "WARN", "INFO", "DEBUG", "TRACE"] + }, + "namedCapturesOnly": { + "$dynamic": false, + "type": "boolean", + "title": "If `true`, only store named captures from grok.", + "default": true, + "markdownDescription": "Default value is : `true`" + }, + "pattern": { + "$dynamic": false, + "type": "string", + "title": "The Grok pattern to match." + }, + "patternDefinitions": { + "$dynamic": false, + "type": "object", + "title": "Custom pattern definitions.", + "markdownDescription": "A map of pattern-name and pattern pairs defining custom patterns to be used by the current tasks. Patterns matching existing names will override the pre-existing definition. " + }, + "patterns": { + "$dynamic": false, + "title": "The list of Grok patterns to match.", + "type": "array", + "items": { + "$dynamic": false, + "type": "string" + } + }, + "patternsDir": { + "$dynamic": false, + "title": "List of user-defined pattern directories.", + "markdownDescription": "Directories must be paths relative to the working directory.", + "type": "array", + "items": { + "$dynamic": false, + "type": "string" + } + }, + "retry": { + "oneOf": [ + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Constant-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Exponential-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Random-2" + } + ] + }, + "timeout": { + "type": "string", + "format": "duration" + }, + "type": { + "const": "io.kestra.plugin.transform.grok.TransformValue" + }, + "workerGroup": { + "$ref": "#/definitions/io.kestra.core.models.tasks.WorkerGroup" + } + }, + "required": ["from", "id", "type"], + "title": "Parse arbitrary text and structure it using Grok expressions.", + "markdownDescription": "The `TransformValue` task is similar to the famous Logstash Grok filter from the ELK stack.\nIt is particularly useful for transforming unstructured data such as logs into a structured, indexable, and queryable data structure.\n\nThe `TransformValue` ships with all the default patterns as defined You can find them here: https://github.com/kestra-io/plugin-transform/tree/main/plugin-transform-grok/src/main/resources/patterns.\n##### Examples\n\u003E Consume, parse, and structure logs events from Kafka topic.\n```yaml\nid: grok\nnamespace: myteam\n\ntasks:\n- id: grok\n type: io.kestra.plugin.transform.grok.TransformValue\n pattern: \"%{TIMESTAMP_ISO8601:logdate} %{LOGLEVEL:loglevel} %{GREEDYDATA:message}\"\n from: \"{{ trigger.value }}\"\n\n- id: log_on_warn\n type: io.kestra.plugin.core.flow.If\n condition: \"{{ grok.value['LOGLEVEL'] == 'ERROR' }}\"\n then:\n - id: when_true\n type: io.kestra.plugin.core.log.Log\n message: \"{{ outputs.grok.value }}\"\n\ntriggers:\n- id: realtime_trigger\n type: io.kestra.plugin.kafka.RealtimeTrigger\n topic: test_kestra\n properties:\n bootstrap.servers: localhost:9092\n serdeProperties:\n schema.registry.url: http://localhost:8085\n keyDeserializer: STRING\n valueDeserializer: STRING\n groupId: kafkaConsumerGroupId\n\n```" + }, + "io.kestra.plugin.transform.jsonata.TransformItems": { + "type": "object", + "properties": { + "allowFailure": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "description": { + "type": "string" + }, + "disabled": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "expression": { + "$dynamic": true, + "type": "string", + "title": "The JSONata expression to apply on the JSON object." + }, + "from": { + "$dynamic": true, + "type": "string", + "title": "The file to be transformed.", + "markdownDescription": "Must be a `kestra://` internal storage URI." + }, + "id": { + "type": "string", + "minLength": 1, + "pattern": "^[a-zA-Z0-9][a-zA-Z0-9_-]*" + }, + "logLevel": { + "type": "string", + "enum": ["ERROR", "WARN", "INFO", "DEBUG", "TRACE"] + }, + "maxDepth": { + "$dynamic": true, + "type": "integer", + "title": "The maximum number of recursive calls allowed for the JSONata transformation.", + "default": 1000, + "markdownDescription": "Default value is : `1000`" + }, + "retry": { + "oneOf": [ + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Constant-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Exponential-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Random-2" + } + ] + }, + "timeout": { + "type": "string", + "format": "duration" + }, + "type": { + "const": "io.kestra.plugin.transform.jsonata.TransformItems" + }, + "workerGroup": { + "$ref": "#/definitions/io.kestra.core.models.tasks.WorkerGroup" + } + }, + "required": ["expression", "from", "id", "type"], + "title": "Transform or query a JSON data using JSONata language.", + "markdownDescription": "[JSONata](https://jsonata.org/) is a sophisticated query and transformation language for JSON data.##### Examples\n\u003E Transform JSON payload using JSONata expression.\n```yaml\nid: jsonata\nnamespace: example\ntasks:\n- id: transformJson\n type: io.kestra.plugin.transform.jsonata.TransformItems\n from: {{ previousTask.outputs.uri }}\n expression: |\n {\n \"order_id\": order_id,\n \"customer_name\": customer_name,\n \"total_price\": $sum(items.(quantity * price_per_unit))\n }\n\n```" + }, + "io.kestra.plugin.transform.jsonata.TransformValue": { + "type": "object", + "properties": { + "allowFailure": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "description": { + "type": "string" + }, + "disabled": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "expression": { + "$dynamic": true, + "type": "string", + "title": "The JSONata expression to apply on the JSON object." + }, + "from": { + "$dynamic": true, + "type": "string", + "title": "The value to be transformed.", + "markdownDescription": "Must be a valid JSON string." + }, + "id": { + "type": "string", + "minLength": 1, + "pattern": "^[a-zA-Z0-9][a-zA-Z0-9_-]*" + }, + "logLevel": { + "type": "string", + "enum": ["ERROR", "WARN", "INFO", "DEBUG", "TRACE"] + }, + "maxDepth": { + "$dynamic": true, + "type": "integer", + "title": "The maximum number of recursive calls allowed for the JSONata transformation.", + "default": 1000, + "markdownDescription": "Default value is : `1000`" + }, + "retry": { + "oneOf": [ + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Constant-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Exponential-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Random-2" + } + ] + }, + "timeout": { + "type": "string", + "format": "duration" + }, + "type": { + "const": "io.kestra.plugin.transform.jsonata.TransformValue" + }, + "workerGroup": { + "$ref": "#/definitions/io.kestra.core.models.tasks.WorkerGroup" + } + }, + "required": ["expression", "from", "id", "type"], + "title": "Transform or query a JSON data using JSONata language.", + "markdownDescription": "[JSONata](https://jsonata.org/) is a sophisticated query and transformation language for JSON data.##### Examples\n\u003E Transform JSON data using JSONata expression\n```yaml\nid: jsonata\nnamespace: example\ntasks:\n - id: transformJson\n type: io.kestra.plugin.transform.jsonata.TransformValue\n from: |\n {\n \"order_id\": \"ABC123\",\n \"customer_name\": \"John Doe\",\n \"items\": [\n {\n \"product_id\": \"001\",\n \"name\": \"Apple\",\n \"quantity\": 5,\n \"price_per_unit\": 0.5\n },\n {\n \"product_id\": \"002\",\n \"name\": \"Banana\",\n \"quantity\": 3,\n \"price_per_unit\": 0.3\n },\n {\n \"product_id\": \"003\",\n \"name\": \"Orange\",\n \"quantity\": 2,\n \"price_per_unit\": 0.4\n }\n ]\n }\n expression: |\n {\n \"order_id\": order_id,\n \"customer_name\": customer_name,\n \"total_price\": $sum(items.(quantity * price_per_unit))\n }\n\n```" + }, + "io.kestra.plugin.weaviate.BatchCreate": { + "type": "object", + "properties": { + "allowFailure": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "apiKey": { + "$dynamic": true, + "type": "string", + "title": "API key to authenticate with a managed Weaviate cluster", + "markdownDescription": "If not provided, the anonymous authentication scheme will be used." + }, + "className": { + "$dynamic": true, + "type": "string", + "title": "Class name where you want to insert data" + }, + "description": { + "type": "string" + }, + "disabled": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "headers": { + "$dynamic": true, + "type": "object", + "title": "Additional headers to add to the request e.g. to authenticate with OpenAI API", + "default": {}, + "markdownDescription": "Default value is : `{}`" + }, + "id": { + "type": "string", + "minLength": 1, + "pattern": "^[a-zA-Z0-9][a-zA-Z0-9_-]*" + }, + "logLevel": { + "type": "string", + "enum": ["ERROR", "WARN", "INFO", "DEBUG", "TRACE"] + }, + "objects": { + "title": "Objects to create with their properties", + "markdownDescription": "ION File URI or the list of objects to insert", + "oneOf": [ + { + "type": "string" + }, + { + "type": "array", + "items": { + "type": "object" + } + } + ] + }, + "retry": { + "oneOf": [ + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Constant-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Exponential-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Random-2" + } + ] + }, + "timeout": { + "type": "string", + "format": "duration" + }, + "type": { + "const": "io.kestra.plugin.weaviate.BatchCreate" + }, + "url": { + "$dynamic": true, + "type": "string", + "title": "Connection URL", + "minLength": 1, + "markdownDescription": "Example: localhost:8080 or https://cluster-id.weaviate.network" + }, + "workerGroup": { + "$ref": "#/definitions/io.kestra.core.models.tasks.WorkerGroup" + } + }, + "required": ["id", "objects", "type", "url"], + "title": "Batch-insert data to a Weaviate database.", + "markdownDescription": "Data can be either in an ION-serialized file format or as a list of key-value pairs. If the schema doesn't exist yet, it will be created automatically.##### Examples\n\u003E Send batch object creation request to a Weaviate database\n```yaml\nid: weaviate_batch_load\nnamespace: company.team\n\ntasks:\n - id: batch_load\n type: io.kestra.plugin.weaviate.BatchCreate\n url: \"https://demo-cluster-id.weaviate.network\"\n apiKey: \"{{ secret('WEAVIATE_API_KEY') }}\"\n className: WeaviateDemo\n objects:\n - textField: \"some text\"\n numField: 24\n - textField: \"another text\"\n numField: 42\n\n```\n\n\u003E Send batch object creation request to a Weaviate database using an ION input file e.g. passed from output of another task\n```yaml\nid: weaviate_batch_insert\nnamespace: company.team\n\ntasks:\n - id: extract\n type: io.kestra.plugin.core.http.Download\n uri: https://huggingface.co/datasets/kestra/datasets/raw/main/ion/ingest.ion\n\n - id: batch_insert\n type: io.kestra.plugin.weaviate.BatchCreate\n url: \"https://demo-cluster-id.weaviate.network\"\n apiKey: \"{{ secret('WEAVIATE_API_KEY') }}\"\n className: Titles\n objects: \"{{ outputs.extract.uri }}\"\n\n```" + }, + "io.kestra.plugin.weaviate.Delete": { + "type": "object", + "properties": { + "allowFailure": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "apiKey": { + "$dynamic": true, + "type": "string", + "title": "API key to authenticate with a managed Weaviate cluster", + "markdownDescription": "If not provided, the anonymous authentication scheme will be used." + }, + "className": { + "$dynamic": true, + "type": "string", + "title": "Class name for which you want to delete data", + "minLength": 1 + }, + "description": { + "type": "string" + }, + "disabled": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "filter": { + "$dynamic": true, + "type": "object", + "title": "Attributes to filter by for deletion" + }, + "headers": { + "$dynamic": true, + "type": "object", + "title": "Additional headers to add to the request e.g. to authenticate with OpenAI API", + "default": {}, + "markdownDescription": "Default value is : `{}`" + }, + "id": { + "$dynamic": true, + "type": "string", + "title": "Id of the object to delete", + "minLength": 1, + "pattern": "^[a-zA-Z0-9][a-zA-Z0-9_-]*" + }, + "logLevel": { + "type": "string", + "enum": ["ERROR", "WARN", "INFO", "DEBUG", "TRACE"] + }, + "retry": { + "oneOf": [ + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Constant-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Exponential-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Random-2" + } + ] + }, + "timeout": { + "type": "string", + "format": "duration" + }, + "type": { + "const": "io.kestra.plugin.weaviate.Delete" + }, + "url": { + "$dynamic": true, + "type": "string", + "title": "Connection URL", + "minLength": 1, + "markdownDescription": "Example: localhost:8080 or https://cluster-id.weaviate.network" + }, + "workerGroup": { + "$ref": "#/definitions/io.kestra.core.models.tasks.WorkerGroup" + } + }, + "required": ["className", "id", "type", "url"], + "title": "Delete specific objects in a Weaviate database.", + "markdownDescription": "##### Examples\n\u003E Send delete request to a Weaviate database. Use object ID or other properties.\n```yaml\nurl: https://demo-cluster-id.weaviate.network\nclassName: WeaviateObject\nfilter:\n fieldName: field value to be deleted by\n```" + }, + "io.kestra.plugin.weaviate.Query": { + "type": "object", + "properties": { + "allowFailure": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "apiKey": { + "$dynamic": true, + "type": "string", + "title": "API key to authenticate with a managed Weaviate cluster", + "markdownDescription": "If not provided, the anonymous authentication scheme will be used." + }, + "description": { + "type": "string" + }, + "disabled": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "fetchType": { + "$dynamic": false, + "type": "string", + "enum": ["STORE", "FETCH", "FETCH_ONE", "NONE"], + "title": "How you want to store the output data", + "default": "STORE", + "markdownDescription": "FETCH_ONE outputs only the first row\nFETCH outputs all rows\nSTORE stores all rows in a file\nNONE doesn't store any data. It's particularly useful when you execute DDL statements or run queries that insert data into another table e.g. using `SELECT ... INSERT INTO` statements.\n\nDefault value is : `STORE`" + }, + "headers": { + "$dynamic": true, + "type": "object", + "title": "Additional headers to add to the request e.g. to authenticate with OpenAI API", + "default": {}, + "markdownDescription": "Default value is : `{}`" + }, + "id": { + "type": "string", + "minLength": 1, + "pattern": "^[a-zA-Z0-9][a-zA-Z0-9_-]*" + }, + "logLevel": { + "type": "string", + "enum": ["ERROR", "WARN", "INFO", "DEBUG", "TRACE"] + }, + "query": { + "$dynamic": true, + "type": "string", + "title": "GraphQL query" + }, + "retry": { + "oneOf": [ + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Constant-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Exponential-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Random-2" + } + ] + }, + "timeout": { + "type": "string", + "format": "duration" + }, + "type": { + "const": "io.kestra.plugin.weaviate.Query" + }, + "url": { + "$dynamic": true, + "type": "string", + "title": "Connection URL", + "minLength": 1, + "markdownDescription": "Example: localhost:8080 or https://cluster-id.weaviate.network" + }, + "workerGroup": { + "$ref": "#/definitions/io.kestra.core.models.tasks.WorkerGroup" + } + }, + "required": ["id", "type", "url"], + "title": "Query Weaviate database with GraphQL.", + "markdownDescription": "##### Examples\n\u003E Execute a GraphQL query to fetch data from a Weaviate database\n```yaml\nid: weaviate_query\nnamespace: company.team\n\ntasks:\n - id: query\n type: io.kestra.plugin.weaviate.Query\n url: https://demo-cluster-id.weaviate.network\n apiKey: \"{{ secret('WEAVIATE_API_KEY') }}\"\n query: |\n {\n Get {\n Question(limit: 5) {\n question\n answer\n category\n }\n }\n }\n\n\n```\n\n\u003E Query data from a Weaviate database using Generative Search with OpenAI\n```yaml\nid: weaviate_generative_search\nnamespace: company.team\n\ntasks:\n - id: query\n type: io.kestra.plugin.weaviate.Query\n url: https://demo-cluster-id.weaviate.network\n apiKey: \"{{ secret('WEAVIATE_API_KEY') }}\"\n headers:\n X-OpenAI-Api-Key: \"{{ secret('OPENAI_API_KEY') }}\"\n query: |\n {\n Get {\n Question(limit: 5, nearText: {concepts: [\"biology\"]}) {\n question\n answer\n category\n }\n }\n }\n\n```" + }, + "io.kestra.plugin.weaviate.SchemaCreate": { + "type": "object", + "properties": { + "allowFailure": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "apiKey": { + "$dynamic": true, + "type": "string", + "title": "API key to authenticate with a managed Weaviate cluster", + "markdownDescription": "If not provided, the anonymous authentication scheme will be used." + }, + "className": { + "$dynamic": true, + "type": "string", + "title": "Class name where your data will be stored", + "minLength": 1 + }, + "description": { + "type": "string" + }, + "disabled": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "fields": { + "$dynamic": true, + "type": "object", + "title": "Fields to add to the class", + "markdownDescription": "Requires specified field name and a list of data types that will be stored in this field" + }, + "headers": { + "$dynamic": true, + "type": "object", + "title": "Additional headers to add to the request e.g. to authenticate with OpenAI API", + "default": {}, + "markdownDescription": "Default value is : `{}`" + }, + "id": { + "type": "string", + "minLength": 1, + "pattern": "^[a-zA-Z0-9][a-zA-Z0-9_-]*" + }, + "logLevel": { + "type": "string", + "enum": ["ERROR", "WARN", "INFO", "DEBUG", "TRACE"] + }, + "retry": { + "oneOf": [ + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Constant-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Exponential-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Random-2" + } + ] + }, + "timeout": { + "type": "string", + "format": "duration" + }, + "type": { + "const": "io.kestra.plugin.weaviate.SchemaCreate" + }, + "url": { + "$dynamic": true, + "type": "string", + "title": "Connection URL", + "minLength": 1, + "markdownDescription": "Example: localhost:8080 or https://cluster-id.weaviate.network" + }, + "workerGroup": { + "$ref": "#/definitions/io.kestra.core.models.tasks.WorkerGroup" + } + }, + "required": ["className", "id", "type", "url"], + "title": "Create a class schema in a Weaviate database.", + "markdownDescription": "##### Examples\n\u003E Send schema creation request to a Weaviate database\n```yaml\nid: create_weaviate_schema\nnamespace: company.team\n\ntasks:\n - id: schema\n type: io.kestra.plugin.weaviate.SchemaCreate\n url: \"https://demo-cluster-id.weaviate.network\"\n apiKey: \"{{ secret('WEAVIATE_API_KEY') }}\"\n className: Movies\n fields:\n name:\n - string\n description:\n - string\n category:\n - string\n```" + }, + "io.kestra.plugin.zendesk.tickets.Create": { + "type": "object", + "properties": { + "allowFailure": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "assigneeId": { + "$dynamic": false, + "type": "integer", + "title": "Id of assignee" + }, + "description": { + "$dynamic": true, + "type": "string", + "title": "Ticket description" + }, + "disabled": { + "type": "boolean", + "default": false, + "markdownDescription": "Default value is : `false`" + }, + "domain": { + "$dynamic": true, + "type": "string", + "title": "Zendesk domain url" + }, + "id": { + "type": "string", + "minLength": 1, + "pattern": "^[a-zA-Z0-9][a-zA-Z0-9_-]*" + }, + "logLevel": { + "type": "string", + "enum": ["ERROR", "WARN", "INFO", "DEBUG", "TRACE"] + }, + "oauthToken": { + "$dynamic": true, + "type": "string", + "title": "Zendesk oauth token, if api token and username is not provided" + }, + "priority": { + "$dynamic": false, + "type": "string", + "enum": ["URGENT", "HIGH", "NORMAL", "LOW"], + "title": "Priority", + "markdownDescription": "Available values:\n - URGENT\n - HIGH\n - NORMAL\n - LOW\n" + }, + "retry": { + "oneOf": [ + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Constant-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Exponential-2" + }, + { + "$ref": "#/definitions/io.kestra.core.models.tasks.retrys.Random-2" + } + ] + }, + "subject": { + "$dynamic": true, + "type": "string", + "title": "Ticket subject" + }, + "tags": { + "$dynamic": true, + "title": "List of tags for ticket", + "type": "array", + "items": { + "$dynamic": true, + "type": "string" + } + }, + "ticketType": { + "$dynamic": false, + "type": "string", + "enum": ["PROBLEM", "INCIDENT", "QUESTION", "TASK"], + "title": "Ticket type", + "markdownDescription": "Available values:\n - PROBLEM\n - INCIDENT\n - QUESTION\n - TASK\n" + }, + "timeout": { + "type": "string", + "format": "duration" + }, + "token": { + "$dynamic": true, + "type": "string", + "title": "Zendesk api token" + }, + "type": { + "const": "io.kestra.plugin.zendesk.tickets.Create" + }, + "username": { + "$dynamic": true, + "type": "string", + "title": "Zendesk username" + }, + "workerGroup": { + "$ref": "#/definitions/io.kestra.core.models.tasks.WorkerGroup" + } + }, + "required": ["domain", "id", "type"], + "title": "Opens new ticket at Zendesk", + "markdownDescription": "##### Examples\n\u003E Using username and token\n```yaml\n- id: hello\n type: io.kestra.plugin.zendesk.tickets.Create\n domain: mycompany.zendesk.com\n username: my_email@example.com\n token: zendesk_api_token\n subject: Workflow failed\n description: |\n \"{{ execution.id }} has failed on {{ taskrun.startDate }}.\n See the link below for more details.\"\n priority: NORMAL\n ticketType: INCIDENT\n assigneeId: 1\n tags:\n - bug\n - workflow\n\n```\n\n\u003E Using OAuth token\n```yaml\n- id: hello\n type: io.kestra.plugin.zendesk.tickets.Create\n domain: mycompany.zendesk.com\n oauthToken: zendesk_oauth_token\n subject: Workflow failed\n description: |\n \"{{ execution.id }} has failed on {{ taskrun.startDate }}.\n See the link below for more details.\"\n priority: NORMAL\n ticketType: INCIDENT\n assigneeId: 1\n tags:\n - bug\n - workflow\n\n```" + }, + "java.nio.charset.Charset": { + "type": "object" + } + } +} diff --git a/src/test/kestra-0.18/hello_world.yaml b/src/test/kestra-0.18/hello_world.yaml new file mode 100644 index 00000000000..e27d8832ef1 --- /dev/null +++ b/src/test/kestra-0.18/hello_world.yaml @@ -0,0 +1,30 @@ +id: hello-world +namespace: company.team + +description: flow **documentation** in *Markdown* + +labels: + env: prod + team: engineering + +inputs: + - id: my-value + type: STRING + required: false + defaults: 'default value' + description: This is a not required my-value + +variables: + first: '1' + second: '{{vars.first}} > 2' + +tasks: + - id: date + type: io.kestra.plugin.core.debug.Return + description: 'Some tasks **documentation** in *Markdown*' + format: 'A log line content with a contextual date variable {{taskrun.startDate}}' + +pluginDefaults: + - type: io.kestra.plugin.core.log.Log + values: + level: ERROR