diff --git a/docs/data-sources/job.md b/docs/data-sources/job.md index c251ea2..7c46bcd 100644 --- a/docs/data-sources/job.md +++ b/docs/data-sources/job.md @@ -10,7 +10,21 @@ description: |- Neosync Job data source +## Example Usage +```terraform +data "neosync_job" "my_job" { + id = "3b83d1d3-5ffe-48c6-ac11-7a2e60802864" +} + +output "job_name" { + value = data.neosync_job.my_job.name +} + +output "job_id" { + value = data.neosync_job.my_job.id +} +``` ## Schema diff --git a/docs/data-sources/system_transformer.md b/docs/data-sources/system_transformer.md index ad212e3..7a0e746 100644 --- a/docs/data-sources/system_transformer.md +++ b/docs/data-sources/system_transformer.md @@ -10,7 +10,17 @@ description: |- Neosync System Transformer data source +## Example Usage +```terraform +data "neosync_system_transformer" "generate_cc" { + source = "generate_card_number" +} + +output "cc_config" { + value = data.neosync_system_transformer.generate_cc.config +} +``` ## Schema diff --git a/docs/data-sources/user_defined_transformer.md b/docs/data-sources/user_defined_transformer.md index 27bbe19..e56631c 100644 --- a/docs/data-sources/user_defined_transformer.md +++ b/docs/data-sources/user_defined_transformer.md @@ -10,7 +10,17 @@ description: |- Neosync User Defined Transformer data source +## Example Usage +```terraform +data "neosync_user_defined_transformer" "my_transformer" { + id = "3b83d1d3-5ffe-48c6-ac11-7a2e60802864" +} + +output "my_id" { + value = data.neosync_user_defined_transformer.my_transformer.id +} +``` ## Schema diff --git a/docs/resources/job.md b/docs/resources/job.md index ef10a7b..4880eb6 100644 --- a/docs/resources/job.md +++ b/docs/resources/job.md @@ -10,24 +10,63 @@ description: |- Job resource - +## Example Usage + +```terraform +resource "neosync_job" "prod_to_stage" { + name = "prod-to-stage" + + source = { + postgres = { + halt_on_new_column_additon = false + connection_id = var.prod_connection_id + } + } + destinations = [ + { + connection_id = var.stage_connection_id + postgres = { + init_table_schema = false + truncate_table = { + truncate_before_insert = true + cascade = true + } + } + } + ] + + mappings = [ + { + schema = "public" + table = "users" + column = "id" + transformer = { + source = "passthrough" + config = { + passthrough = {} + } + } + } + ] +} +``` ## Schema ### Required -- `destinations` (Attributes List) (see [below for nested schema](#nestedatt--destinations)) +- `destinations` (Attributes List) A list of destination connections and any relevant configurations that are available to them dependent on type (see [below for nested schema](#nestedatt--destinations)) - `name` (String) The unique friendly name of the job -- `source` (Attributes) (see [below for nested schema](#nestedatt--source)) +- `source` (Attributes) Configuration details about the source data connection (see [below for nested schema](#nestedatt--source)) ### Optional - `account_id` (String) The unique identifier of the account. Can be pulled from the API Key if present, or must be specified if using a user access token - `cron_schedule` (String) A cron string for how often it's desired to schedule the job to run -- `mappings` (Attributes List) (see [below for nested schema](#nestedatt--mappings)) -- `sync_options` (Attributes) (see [below for nested schema](#nestedatt--sync_options)) -- `workflow_options` (Attributes) (see [below for nested schema](#nestedatt--workflow_options)) +- `mappings` (Attributes List) Details each schema,table,column along with the transformation that will be executed (see [below for nested schema](#nestedatt--mappings)) +- `sync_options` (Attributes) Advanced settings and other options specific to a table sync (see [below for nested schema](#nestedatt--sync_options)) +- `workflow_options` (Attributes) Advanced settings and other options specific to a job run (see [below for nested schema](#nestedatt--workflow_options)) ### Read-Only @@ -38,11 +77,11 @@ Job resource Optional: -- `aws_s3` (Attributes) (see [below for nested schema](#nestedatt--destinations--aws_s3)) -- `connection_id` (String) -- `id` (String) -- `mysql` (Attributes) (see [below for nested schema](#nestedatt--destinations--mysql)) -- `postgres` (Attributes) (see [below for nested schema](#nestedatt--destinations--postgres)) +- `aws_s3` (Attributes) AWS S3 connection specific options (see [below for nested schema](#nestedatt--destinations--aws_s3)) +- `connection_id` (String) The unique identifier of the connection that will be used during the synchronization process +- `id` (String) The unique identifier of the destination resource. This is set after creation +- `mysql` (Attributes) Mysql connection specific options (see [below for nested schema](#nestedatt--destinations--mysql)) +- `postgres` (Attributes) Postgres connection specific options (see [below for nested schema](#nestedatt--destinations--postgres)) ### Nested Schema for `destinations.aws_s3` @@ -53,18 +92,18 @@ Optional: Required: -- `init_table_schema` (Boolean) +- `init_table_schema` (Boolean) Whether or not to have neosync init the table schema and constraints it pulled from the source connection Optional: -- `truncate_table` (Attributes) (see [below for nested schema](#nestedatt--destinations--mysql--truncate_table)) +- `truncate_table` (Attributes) Details about what truncation should occur (see [below for nested schema](#nestedatt--destinations--mysql--truncate_table)) ### Nested Schema for `destinations.mysql.truncate_table` Optional: -- `truncate_before_insert` (Boolean) +- `truncate_before_insert` (Boolean) Will truncate the table prior to insertion of any records @@ -73,19 +112,19 @@ Optional: Required: -- `init_table_schema` (Boolean) +- `init_table_schema` (Boolean) Whether or not to have neosync init the table schema and constraints it pulled from the source connection Optional: -- `truncate_table` (Attributes) (see [below for nested schema](#nestedatt--destinations--postgres--truncate_table)) +- `truncate_table` (Attributes) Details about what truncation should occur (see [below for nested schema](#nestedatt--destinations--postgres--truncate_table)) ### Nested Schema for `destinations.postgres.truncate_table` Optional: -- `cascade` (Boolean) -- `truncate_before_insert` (Boolean) +- `cascade` (Boolean) Will truncate cascade. This is required if the table holds any foreign key constraints. If this is true, truncate_before_insert must also be true +- `truncate_before_insert` (Boolean) Will truncate the table prior to insertion of any records @@ -95,17 +134,17 @@ Optional: Optional: -- `aws_s3` (Attributes) (see [below for nested schema](#nestedatt--source--aws_s3)) -- `generate` (Attributes) (see [below for nested schema](#nestedatt--source--generate)) -- `mysql` (Attributes) (see [below for nested schema](#nestedatt--source--mysql)) -- `postgres` (Attributes) (see [below for nested schema](#nestedatt--source--postgres)) +- `aws_s3` (Attributes) AWS S3 specific connection configurations (see [below for nested schema](#nestedatt--source--aws_s3)) +- `generate` (Attributes) Generate specific connection configurations. Currently only supports single table generation (see [below for nested schema](#nestedatt--source--generate)) +- `mysql` (Attributes) Mysql specific connection configurations (see [below for nested schema](#nestedatt--source--mysql)) +- `postgres` (Attributes) Postgres specific connection configurations (see [below for nested schema](#nestedatt--source--postgres)) ### Nested Schema for `source.aws_s3` Required: -- `connection_id` (String) +- `connection_id` (String) The unique identifier of the connection that is to be used as the source @@ -113,27 +152,27 @@ Required: Required: -- `fk_source_connection_id` (String) -- `schemas` (Attributes List) (see [below for nested schema](#nestedatt--source--generate--schemas)) +- `fk_source_connection_id` (String) The unique connection identifier that is used to generate schema specific details. This is usually set to the destination connectio id if it has been upserted with the schema already +- `schemas` (Attributes List) A list of schemas and table specific options (see [below for nested schema](#nestedatt--source--generate--schemas)) ### Nested Schema for `source.generate.schemas` Required: -- `schema` (String) -- `tables` (Attributes List) (see [below for nested schema](#nestedatt--source--generate--schemas--tables)) +- `schema` (String) The name of the schema +- `tables` (Attributes List) A list of tables and their specific options within the defined schema (see [below for nested schema](#nestedatt--source--generate--schemas--tables)) ### Nested Schema for `source.generate.schemas.tables` Required: -- `table` (String) +- `table` (String) The name of the table Optional: -- `row_count` (Number) +- `row_count` (Number) The number of rows to generate into the table @@ -143,31 +182,31 @@ Optional: Required: -- `connection_id` (String) -- `halt_on_new_column_addition` (Boolean) +- `connection_id` (String) The unique identifier of the connection that is to be used as the source +- `halt_on_new_column_addition` (Boolean) Whether or not to halt the job if it detects a new column that has been added in the source that has not been defined in the mappings schema Optional: -- `schemas` (Attributes List) (see [below for nested schema](#nestedatt--source--mysql--schemas)) +- `schemas` (Attributes List) A list of schemas and table specific options (see [below for nested schema](#nestedatt--source--mysql--schemas)) ### Nested Schema for `source.mysql.schemas` Required: -- `schema` (String) -- `tables` (Attributes List) (see [below for nested schema](#nestedatt--source--mysql--schemas--tables)) +- `schema` (String) The name of the schema +- `tables` (Attributes List) A list of tables and their specific options within the defined schema (see [below for nested schema](#nestedatt--source--mysql--schemas--tables)) ### Nested Schema for `source.mysql.schemas.tables` Required: -- `table` (String) +- `table` (String) The name of the table Optional: -- `where_clause` (String) +- `where_clause` (String) A where clause that will be used to subset the table during sync @@ -177,31 +216,31 @@ Optional: Required: -- `connection_id` (String) -- `halt_on_new_column_addition` (Boolean) +- `connection_id` (String) The unique identifier of the connection that is to be used as the source +- `halt_on_new_column_addition` (Boolean) Whether or not to halt the job if it detects a new column that has been added in the source that has not been defined in the mappings schema Optional: -- `schemas` (Attributes List) (see [below for nested schema](#nestedatt--source--postgres--schemas)) +- `schemas` (Attributes List) A list of schemas and table specific options (see [below for nested schema](#nestedatt--source--postgres--schemas)) ### Nested Schema for `source.postgres.schemas` Required: -- `schema` (String) -- `tables` (Attributes List) (see [below for nested schema](#nestedatt--source--postgres--schemas--tables)) +- `schema` (String) The name of the schema +- `tables` (Attributes List) A list of tables and their specific options within the defined schema (see [below for nested schema](#nestedatt--source--postgres--schemas--tables)) ### Nested Schema for `source.postgres.schemas.tables` Required: -- `table` (String) +- `table` (String) The name of the table Optional: -- `where_clause` (String) +- `where_clause` (String) A where clause that will be used to subset the table during sync @@ -212,10 +251,10 @@ Optional: Required: -- `column` (String) -- `schema` (String) -- `table` (String) -- `transformer` (Attributes) (see [below for nested schema](#nestedatt--mappings--transformer)) +- `column` (String) The column in the specified table +- `schema` (String) The database schema +- `table` (String) The database table +- `transformer` (Attributes) The transformer that will be performed on the column (see [below for nested schema](#nestedatt--mappings--transformer)) ### Nested Schema for `mappings.transformer` @@ -223,7 +262,7 @@ Required: Required: - `config` (Attributes) This config object consists of the matching configuration defined with the source specified. (see [below for nested schema](#nestedatt--mappings--transformer--config)) -- `source` (String) +- `source` (String) The source of the transformer that will be used ### Nested Schema for `mappings.transformer.config` @@ -539,16 +578,16 @@ Required: Optional: -- `retry_policy` (Attributes) (see [below for nested schema](#nestedatt--sync_options--retry_policy)) -- `schedule_to_close_timeout` (Number) -- `start_to_close_timeout` (Number) +- `retry_policy` (Attributes) The table sync retry policy (see [below for nested schema](#nestedatt--sync_options--retry_policy)) +- `schedule_to_close_timeout` (Number) The maximum amount of time allotted for a table sync with retries +- `start_to_close_timeout` (Number) The amount of time allotted for a table sync ### Nested Schema for `sync_options.retry_policy` Optional: -- `maximum_attempts` (Number) +- `maximum_attempts` (Number) The maximum number of times to retry if there is a failure or timeout @@ -557,4 +596,4 @@ Optional: Optional: -- `run_timeout` (Number) +- `run_timeout` (Number) The max amount of time a job run is allotted diff --git a/docs/resources/user_defined_transformer.md b/docs/resources/user_defined_transformer.md index 6445de5..2c6ff75 100644 --- a/docs/resources/user_defined_transformer.md +++ b/docs/resources/user_defined_transformer.md @@ -10,7 +10,39 @@ description: |- Neosync User Defined Transformer resource - +## Example Usage + +```terraform +# Pre-configure a system transformer with settings defined. +resource "neosync_user_defined_transformer" "my_transformer" { + name = "custom-gen-cc" + description = "Generate CC with valid luhn turned off" + datatype = "int64" + source = "generate_card_number" + config = { + "generate_card_number" = { + valid_luhn = false + } + } +} + +# Utilize a system transformer to ensure values are properly set and exist +data "neosync_system_transformer" "generate_cc" { + source = "generate_card_number" +} + +resource "neosync_user_defined_transformer" "my_transformer" { + name = "custom-gen-cc" + description = "Generate CC with valid luhn turned off" + datatype = data.neosync_system_transformer.generate_cc.datatype + source = data.neosync_system_transformer.generate_cc.source + config = { + [data.neosync_system_transformer.generate_cc.source] = { + valid_luhn = false + } + } +} +``` ## Schema diff --git a/examples/data-sources/neosync_job/data-source.tf b/examples/data-sources/neosync_job/data-source.tf new file mode 100644 index 0000000..2a44f69 --- /dev/null +++ b/examples/data-sources/neosync_job/data-source.tf @@ -0,0 +1,11 @@ +data "neosync_job" "my_job" { + id = "3b83d1d3-5ffe-48c6-ac11-7a2e60802864" +} + +output "job_name" { + value = data.neosync_job.my_job.name +} + +output "job_id" { + value = data.neosync_job.my_job.id +} diff --git a/examples/data-sources/neosync_system_transformer/data-source.tf b/examples/data-sources/neosync_system_transformer/data-source.tf new file mode 100644 index 0000000..48dc88f --- /dev/null +++ b/examples/data-sources/neosync_system_transformer/data-source.tf @@ -0,0 +1,7 @@ +data "neosync_system_transformer" "generate_cc" { + source = "generate_card_number" +} + +output "cc_config" { + value = data.neosync_system_transformer.generate_cc.config +} diff --git a/examples/data-sources/neosync_user_defined_transformer/data-source.tf b/examples/data-sources/neosync_user_defined_transformer/data-source.tf new file mode 100644 index 0000000..34a723f --- /dev/null +++ b/examples/data-sources/neosync_user_defined_transformer/data-source.tf @@ -0,0 +1,7 @@ +data "neosync_user_defined_transformer" "my_transformer" { + id = "3b83d1d3-5ffe-48c6-ac11-7a2e60802864" +} + +output "my_id" { + value = data.neosync_user_defined_transformer.my_transformer.id +} diff --git a/examples/resources/neosync_job/resource.tf b/examples/resources/neosync_job/resource.tf new file mode 100644 index 0000000..b98ecbf --- /dev/null +++ b/examples/resources/neosync_job/resource.tf @@ -0,0 +1,36 @@ +resource "neosync_job" "prod_to_stage" { + name = "prod-to-stage" + + source = { + postgres = { + halt_on_new_column_additon = false + connection_id = var.prod_connection_id + } + } + destinations = [ + { + connection_id = var.stage_connection_id + postgres = { + init_table_schema = false + truncate_table = { + truncate_before_insert = true + cascade = true + } + } + } + ] + + mappings = [ + { + schema = "public" + table = "users" + column = "id" + transformer = { + source = "passthrough" + config = { + passthrough = {} + } + } + } + ] +} diff --git a/examples/resources/neosync_user_defined_transformer/resource.tf b/examples/resources/neosync_user_defined_transformer/resource.tf new file mode 100644 index 0000000..3394bd4 --- /dev/null +++ b/examples/resources/neosync_user_defined_transformer/resource.tf @@ -0,0 +1,29 @@ +# Pre-configure a system transformer with settings defined. +resource "neosync_user_defined_transformer" "my_transformer" { + name = "custom-gen-cc" + description = "Generate CC with valid luhn turned off" + datatype = "int64" + source = "generate_card_number" + config = { + "generate_card_number" = { + valid_luhn = false + } + } +} + +# Utilize a system transformer to ensure values are properly set and exist +data "neosync_system_transformer" "generate_cc" { + source = "generate_card_number" +} + +resource "neosync_user_defined_transformer" "my_transformer" { + name = "custom-gen-cc" + description = "Generate CC with valid luhn turned off" + datatype = data.neosync_system_transformer.generate_cc.datatype + source = data.neosync_system_transformer.generate_cc.source + config = { + [data.neosync_system_transformer.generate_cc.source] = { + valid_luhn = false + } + } +} diff --git a/internal/provider/job_resource.go b/internal/provider/job_resource.go index 3a0b2a6..91e77cd 100644 --- a/internal/provider/job_resource.go +++ b/internal/provider/job_resource.go @@ -1076,41 +1076,41 @@ func (r *JobResource) Schema(ctx context.Context, req resource.SchemaRequest, re }, "source": schema.SingleNestedAttribute{ - Description: "", + Description: "Configuration details about the source data connection", Required: true, Attributes: map[string]schema.Attribute{ "postgres": schema.SingleNestedAttribute{ - Description: "", + Description: "Postgres specific connection configurations", Optional: true, Attributes: map[string]schema.Attribute{ "halt_on_new_column_addition": schema.BoolAttribute{ - Description: "", + Description: "Whether or not to halt the job if it detects a new column that has been added in the source that has not been defined in the mappings schema", Required: true, }, "connection_id": schema.StringAttribute{ - Description: "", + Description: "The unique identifier of the connection that is to be used as the source", Required: true, }, "schemas": schema.ListNestedAttribute{ - Description: "", + Description: "A list of schemas and table specific options", Optional: true, NestedObject: schema.NestedAttributeObject{ Attributes: map[string]schema.Attribute{ "schema": schema.StringAttribute{ - Description: "", + Description: "The name of the schema", Required: true, }, "tables": schema.ListNestedAttribute{ - Description: "", + Description: "A list of tables and their specific options within the defined schema", Required: true, NestedObject: schema.NestedAttributeObject{ Attributes: map[string]schema.Attribute{ "table": schema.StringAttribute{ - Description: "", + Description: "The name of the table", Required: true, }, "where_clause": schema.StringAttribute{ - Description: "", + Description: "A where clause that will be used to subset the table during sync", Optional: true, }, }, @@ -1122,37 +1122,37 @@ func (r *JobResource) Schema(ctx context.Context, req resource.SchemaRequest, re }, }, "mysql": schema.SingleNestedAttribute{ - Description: "", + Description: "Mysql specific connection configurations", Optional: true, Attributes: map[string]schema.Attribute{ "halt_on_new_column_addition": schema.BoolAttribute{ - Description: "", + Description: "Whether or not to halt the job if it detects a new column that has been added in the source that has not been defined in the mappings schema", Required: true, }, "connection_id": schema.StringAttribute{ - Description: "", + Description: "The unique identifier of the connection that is to be used as the source", Required: true, }, "schemas": schema.ListNestedAttribute{ - Description: "", + Description: "A list of schemas and table specific options", Optional: true, NestedObject: schema.NestedAttributeObject{ Attributes: map[string]schema.Attribute{ "schema": schema.StringAttribute{ - Description: "", + Description: "The name of the schema", Required: true, }, "tables": schema.ListNestedAttribute{ - Description: "", + Description: "A list of tables and their specific options within the defined schema", Required: true, NestedObject: schema.NestedAttributeObject{ Attributes: map[string]schema.Attribute{ "table": schema.StringAttribute{ - Description: "", + Description: "The name of the table", Required: true, }, "where_clause": schema.StringAttribute{ - Description: "", + Description: "A where clause that will be used to subset the table during sync", Optional: true, }, }, @@ -1164,43 +1164,43 @@ func (r *JobResource) Schema(ctx context.Context, req resource.SchemaRequest, re }, }, "aws_s3": schema.SingleNestedAttribute{ - Description: "", + Description: "AWS S3 specific connection configurations", Optional: true, Attributes: map[string]schema.Attribute{ "connection_id": schema.StringAttribute{ - Description: "", + Description: "The unique identifier of the connection that is to be used as the source", Required: true, }, }, }, "generate": schema.SingleNestedAttribute{ - Description: "", + Description: "Generate specific connection configurations. Currently only supports single table generation", Optional: true, Attributes: map[string]schema.Attribute{ "fk_source_connection_id": schema.StringAttribute{ - Description: "", + Description: "The unique connection identifier that is used to generate schema specific details. This is usually set to the destination connectio id if it has been upserted with the schema already", Required: true, }, "schemas": schema.ListNestedAttribute{ - Description: "", + Description: "A list of schemas and table specific options", Required: true, NestedObject: schema.NestedAttributeObject{ Attributes: map[string]schema.Attribute{ "schema": schema.StringAttribute{ - Description: "", + Description: "The name of the schema", Required: true, }, "tables": schema.ListNestedAttribute{ - Description: "", + Description: "A list of tables and their specific options within the defined schema", Required: true, NestedObject: schema.NestedAttributeObject{ Attributes: map[string]schema.Attribute{ "table": schema.StringAttribute{ - Description: "", + Description: "The name of the table", Required: true, }, "row_count": schema.Int64Attribute{ - Description: "", + Description: "The number of rows to generate into the table", Optional: true, }, }, @@ -1214,65 +1214,65 @@ func (r *JobResource) Schema(ctx context.Context, req resource.SchemaRequest, re }, }, "destinations": schema.ListNestedAttribute{ - Description: "", + Description: "A list of destination connections and any relevant configurations that are available to them dependent on type", Required: true, NestedObject: schema.NestedAttributeObject{ Attributes: map[string]schema.Attribute{ "id": schema.StringAttribute{ - Description: "", + Description: "The unique identifier of the destination resource. This is set after creation", Optional: true, Computed: true, }, "connection_id": schema.StringAttribute{ - Description: "", + Description: "The unique identifier of the connection that will be used during the synchronization process", Optional: true, // required if id is not set }, "postgres": schema.SingleNestedAttribute{ - Description: "", + Description: "Postgres connection specific options", Optional: true, Attributes: map[string]schema.Attribute{ "truncate_table": schema.SingleNestedAttribute{ - Description: "", + Description: "Details about what truncation should occur", Optional: true, Attributes: map[string]schema.Attribute{ "truncate_before_insert": schema.BoolAttribute{ - Description: "", + Description: "Will truncate the table prior to insertion of any records", Optional: true, }, "cascade": schema.BoolAttribute{ - Description: "", + Description: "Will truncate cascade. This is required if the table holds any foreign key constraints. If this is true, truncate_before_insert must also be true", Optional: true, }, }, }, "init_table_schema": schema.BoolAttribute{ - Description: "", + Description: "Whether or not to have neosync init the table schema and constraints it pulled from the source connection", Required: true, }, }, }, "mysql": schema.SingleNestedAttribute{ - Description: "", + Description: "Mysql connection specific options", Optional: true, Attributes: map[string]schema.Attribute{ "truncate_table": schema.SingleNestedAttribute{ - Description: "", + Description: "Details about what truncation should occur", Optional: true, Attributes: map[string]schema.Attribute{ "truncate_before_insert": schema.BoolAttribute{ - Description: "", + Description: "Will truncate the table prior to insertion of any records", Optional: true, }, }, }, "init_table_schema": schema.BoolAttribute{ - Description: "", + Description: "Whether or not to have neosync init the table schema and constraints it pulled from the source connection", Required: true, }, }, }, "aws_s3": schema.SingleNestedAttribute{ - Description: "", + Description: "AWS S3 connection specific options", Optional: true, Attributes: map[string]schema.Attribute{}, }, @@ -1280,28 +1280,28 @@ func (r *JobResource) Schema(ctx context.Context, req resource.SchemaRequest, re }, }, "mappings": schema.ListNestedAttribute{ - Description: "", + Description: "Details each schema,table,column along with the transformation that will be executed", Optional: true, NestedObject: schema.NestedAttributeObject{ Attributes: map[string]schema.Attribute{ "schema": schema.StringAttribute{ - Description: "", + Description: "The database schema", Required: true, }, "table": schema.StringAttribute{ - Description: "", + Description: "The database table", Required: true, }, "column": schema.StringAttribute{ - Description: "", + Description: "The column in the specified table", Required: true, }, "transformer": schema.SingleNestedAttribute{ - Description: "", + Description: "The transformer that will be performed on the column", Required: true, Attributes: map[string]schema.Attribute{ "source": schema.StringAttribute{ - Description: "", + Description: "The source of the transformer that will be used", Required: true, }, "config": transformerSchema, @@ -1317,23 +1317,23 @@ func (r *JobResource) Schema(ctx context.Context, req resource.SchemaRequest, re }, "sync_options": schema.SingleNestedAttribute{ - Description: "", + Description: "Advanced settings and other options specific to a table sync", Optional: true, Attributes: map[string]schema.Attribute{ "schedule_to_close_timeout": schema.Int64Attribute{ - Description: "", + Description: "The maximum amount of time allotted for a table sync with retries", Optional: true, }, "start_to_close_timeout": schema.Int64Attribute{ - Description: "", + Description: "The amount of time allotted for a table sync", Optional: true, }, "retry_policy": schema.SingleNestedAttribute{ - Description: "", + Description: "The table sync retry policy", Optional: true, Attributes: map[string]schema.Attribute{ "maximum_attempts": schema.Int64Attribute{ - Description: "", + Description: "The maximum number of times to retry if there is a failure or timeout", Optional: true, }, }, @@ -1341,11 +1341,11 @@ func (r *JobResource) Schema(ctx context.Context, req resource.SchemaRequest, re }, }, "workflow_options": schema.SingleNestedAttribute{ - Description: "", + Description: "Advanced settings and other options specific to a job run", Optional: true, Attributes: map[string]schema.Attribute{ "run_timeout": schema.Int64Attribute{ - Description: "", + Description: "The max amount of time a job run is allotted", Optional: true, }, },