diff --git a/v1/src/main/java/com/google/cloud/teleport/bigtable/BigtableToJson.java b/v1/src/main/java/com/google/cloud/teleport/bigtable/BigtableToJson.java index 9badc44245..7c787ce4ff 100644 --- a/v1/src/main/java/com/google/cloud/teleport/bigtable/BigtableToJson.java +++ b/v1/src/main/java/com/google/cloud/teleport/bigtable/BigtableToJson.java @@ -76,8 +76,7 @@ public interface Options extends PipelineOptions { order = 1, description = "Project ID", helpText = - "The ID of the Google Cloud project of the Cloud Bigtable instance that you want to" - + " read data from") + "The ID for the Google Cloud project that contains the Bigtable instance that you want to read data from.") ValueProvider getBigtableProjectId(); @SuppressWarnings("unused") @@ -87,7 +86,7 @@ public interface Options extends PipelineOptions { order = 2, regexes = {"[a-z][a-z0-9\\-]+[a-z0-9]"}, description = "Instance ID", - helpText = "The ID of the Cloud Bigtable instance that contains the table") + helpText = "The ID of the Bigtable instance that contains the table.") ValueProvider getBigtableInstanceId(); @SuppressWarnings("unused") @@ -97,7 +96,7 @@ public interface Options extends PipelineOptions { order = 3, regexes = {"[_a-zA-Z0-9][-_.a-zA-Z0-9]*"}, description = "Table ID", - helpText = "The ID of the Cloud Bigtable table to read") + helpText = "The ID of the Bigtable table to read from.") ValueProvider getBigtableTableId(); @SuppressWarnings("unused") @@ -107,7 +106,7 @@ public interface Options extends PipelineOptions { order = 4, optional = true, description = "Cloud Storage directory for storing JSON files", - helpText = "The Cloud Storage path where the output JSON files can be stored.", + helpText = "The Cloud Storage path where the output JSON files are stored.", example = "gs://your-bucket/your-path/") ValueProvider getOutputDirectory(); @@ -117,7 +116,8 @@ public interface Options extends PipelineOptions { @TemplateParameter.Text( order = 5, description = "JSON file prefix", - helpText = "The prefix of the JSON file name. For example, \"table1-\"") + helpText = + "The prefix of the JSON file name. For example, \"table1-\". If no value is provided, defaults to `part`.") @Default.String("part") ValueProvider getFilenamePrefix(); @@ -130,7 +130,7 @@ public interface Options extends PipelineOptions { enumOptions = {@TemplateEnumOption("FLATTEN"), @TemplateEnumOption("NONE")}, description = "User option", helpText = - "User option: `FLATTEN` or `NONE`. `FLATTEN` flattens the row to the single level. `NONE` stores the whole row as a JSON string.") + "Possible values are `FLATTEN` or `NONE`. `FLATTEN` flattens the row to the single level. `NONE` stores the whole row as a JSON string. Defaults to `NONE`.") @Default.String("NONE") String getUserOption(); @@ -144,12 +144,11 @@ public interface Options extends PipelineOptions { parentTriggerValues = {"FLATTEN"}, description = "Columns aliases", helpText = - "Comma separated list of columns which are required for Vertex AI Vector Search Index." - + " The `id` & `embedding` are required columns for Vertex Vector Search." - + " You can use the notation `fromfamily:fromcolumn;to`. For example, if the columns are" - + " `rowkey` and `cf:my_embedding`, in which `rowkey` and the embedding column is named differently," - + " `cf:my_embedding;embedding` and `rowkey;id` should be specified." - + " Only used when FLATTEN user option is specified.") + "A comma-separated list of columns that are required for the Vertex AI Vector Search index. The" + + " columns `id` and `embedding` are required for Vertex AI Vector Search. You can use the notation" + + " `fromfamily:fromcolumn;to`. For example, if the columns are `rowkey` and `cf:my_embedding`, where" + + " `rowkey` has a different name than the embedding column, specify `cf:my_embedding;embedding` and," + + " `rowkey;id`. Only use this option when the value for `userOption` is `FLATTEN`.") ValueProvider getColumnsAliases(); @SuppressWarnings("unused") diff --git a/v1/src/main/java/com/google/cloud/teleport/templates/CSVToBigQuery.java b/v1/src/main/java/com/google/cloud/teleport/templates/CSVToBigQuery.java index 8175f474df..cd3d809acc 100644 --- a/v1/src/main/java/com/google/cloud/teleport/templates/CSVToBigQuery.java +++ b/v1/src/main/java/com/google/cloud/teleport/templates/CSVToBigQuery.java @@ -102,7 +102,7 @@ public interface Options extends DataflowPipelineOptions, CsvPipelineOptions { @TemplateParameter.Text( order = 1, description = "Cloud Storage Input File(s)", - helpText = "Path of the file pattern glob to read from.", + helpText = "The Cloud Storage path to the CSV file that contains the text to process.", regexes = {"^gs:\\/\\/[^\\n\\r]+$"}, example = "gs://your-bucket/path/*.csv") ValueProvider getInputFilePattern(); @@ -112,31 +112,7 @@ public interface Options extends DataflowPipelineOptions, CsvPipelineOptions { @TemplateParameter.GcsReadFile( order = 2, description = "Cloud Storage location of your BigQuery schema file, described as a JSON", - helpText = - "JSON file with BigQuery Schema description. JSON Example: {\n" - + "\t\"BigQuery Schema\": [\n" - + "\t\t{\n" - + "\t\t\t\"name\": \"location\",\n" - + "\t\t\t\"type\": \"STRING\"\n" - + "\t\t},\n" - + "\t\t{\n" - + "\t\t\t\"name\": \"name\",\n" - + "\t\t\t\"type\": \"STRING\"\n" - + "\t\t},\n" - + "\t\t{\n" - + "\t\t\t\"name\": \"age\",\n" - + "\t\t\t\"type\": \"STRING\"\n" - + "\t\t},\n" - + "\t\t{\n" - + "\t\t\t\"name\": \"color\",\n" - + "\t\t\t\"type\": \"STRING\"\n" - + "\t\t},\n" - + "\t\t{\n" - + "\t\t\t\"name\": \"coffee\",\n" - + "\t\t\t\"type\": \"STRING\"\n" - + "\t\t}\n" - + "\t]\n" - + "}") + helpText = "The Cloud Storage path to the JSON file that defines your BigQuery schema.") ValueProvider getSchemaJSONPath(); void setSchemaJSONPath(ValueProvider value); @@ -145,8 +121,8 @@ public interface Options extends DataflowPipelineOptions, CsvPipelineOptions { order = 3, description = "BigQuery output table", helpText = - "BigQuery table location to write the output to. The table's schema must match the " - + "input objects.") + "The name of the BigQuery table that stores your processed data. If you reuse an existing " + + "BigQuery table, the data is appended to the destination table.") ValueProvider getOutputTable(); void setOutputTable(ValueProvider value); @@ -154,7 +130,7 @@ public interface Options extends DataflowPipelineOptions, CsvPipelineOptions { @TemplateParameter.GcsWriteFolder( order = 4, description = "Temporary directory for BigQuery loading process", - helpText = "Temporary directory for BigQuery loading process", + helpText = "The temporary directory to use during the BigQuery loading process.", example = "gs://your-bucket/your-files/temp_dir") @Validation.Required ValueProvider getBigQueryLoadingTemporaryDirectory(); @@ -165,7 +141,10 @@ public interface Options extends DataflowPipelineOptions, CsvPipelineOptions { order = 5, description = "BigQuery output table for bad records", helpText = - "BigQuery table location to write the bad record. The table's schema must match the {RawContent: STRING, ErrorMsg:STRING}") + "The name of the BigQuery table to use to store the rejected data when processing the" + + " CSV files. If you reuse an existing BigQuery table, the data is appended to the" + + " destination table. The schema of this table must match the" + + " error table schema (https://cloud.google.com/dataflow/docs/guides/templates/provided/cloud-storage-csv-to-bigquery#GcsCSVToBigQueryBadRecordsSchema).") ValueProvider getBadRecordsOutputTable(); void setBadRecordsOutputTable(ValueProvider value); diff --git a/v1/src/main/java/com/google/cloud/teleport/templates/PubsubToAvro.java b/v1/src/main/java/com/google/cloud/teleport/templates/PubsubToAvro.java index 1a66a4166d..78f94d1dce 100644 --- a/v1/src/main/java/com/google/cloud/teleport/templates/PubsubToAvro.java +++ b/v1/src/main/java/com/google/cloud/teleport/templates/PubsubToAvro.java @@ -108,8 +108,7 @@ public interface Options order = 2, description = "Pub/Sub input topic", helpText = - "Pub/Sub topic to read the input from, in the format of " - + "'projects/your-project-id/topics/your-topic-name'") + "The Pub/Sub topic to subscribe to for message consumption. The topic name must be in the format projects//topics/.") ValueProvider getInputTopic(); void setInputTopic(ValueProvider value); @@ -126,8 +125,7 @@ public interface Options order = 4, description = "Output file directory in Cloud Storage", helpText = - "The path and filename prefix for writing output files. Must end with a slash. DateTime" - + " formatting is used to parse directory path for date & time formatters.") + "The output directory where output Avro files are archived. Must contain / at the end. For example: gs://example-bucket/example-directory/") @Required ValueProvider getOutputDirectory(); @@ -137,7 +135,7 @@ public interface Options order = 5, optional = true, description = "Output filename prefix of the files to write", - helpText = "The prefix to place on each windowed file.", + helpText = "The output filename prefix for the Avro files.", regexes = "^[a-zA-Z\\-]+$") @Default.String("output") ValueProvider getOutputFilenamePrefix(); @@ -148,9 +146,7 @@ public interface Options order = 6, optional = true, description = "Output filename suffix of the files to write", - helpText = - "The suffix to place on each windowed file. Typically a file extension such " - + "as .txt or .csv.") + helpText = "The output filename suffix for the Avro files.") @Default.String("") ValueProvider getOutputFilenameSuffix(); @@ -159,7 +155,8 @@ public interface Options @TemplateParameter.GcsWriteFolder( order = 7, description = "Temporary Avro write directory", - helpText = "Directory for temporary Avro files.") + helpText = + "The directory for temporary Avro files. Must contain / at the end. For example: gs://example-bucket/example-directory/.") @Required ValueProvider getAvroTempDirectory(); diff --git a/v1/src/main/java/com/google/cloud/teleport/templates/SpannerToText.java b/v1/src/main/java/com/google/cloud/teleport/templates/SpannerToText.java index 475ec9f88e..98c7642651 100644 --- a/v1/src/main/java/com/google/cloud/teleport/templates/SpannerToText.java +++ b/v1/src/main/java/com/google/cloud/teleport/templates/SpannerToText.java @@ -88,7 +88,7 @@ public interface SpannerToTextOptions order = 1, optional = true, description = "Cloud Storage temp directory for storing CSV files", - helpText = "The Cloud Storage path where the temporary CSV files can be stored.", + helpText = "The Cloud Storage path where temporary CSV files are written.", example = "gs://your-bucket/your-path") ValueProvider getCsvTempDirectory(); @@ -105,8 +105,8 @@ public interface SpannerToTextOptions optional = true, description = "Priority for Spanner RPC invocations", helpText = - "The request priority for Cloud Spanner calls. The value must be one of:" - + " [HIGH,MEDIUM,LOW].") + "The request priority (https://cloud.google.com/spanner/docs/reference/rest/v1/RequestOptions)" + + " for Spanner calls. Possible values are `HIGH`, `MEDIUM`, `LOW`. The default value is `MEDIUM`.") ValueProvider getSpannerPriority(); void setSpannerPriority(ValueProvider value); diff --git a/v1/src/main/java/com/google/cloud/teleport/templates/common/CsvConverters.java b/v1/src/main/java/com/google/cloud/teleport/templates/common/CsvConverters.java index d5bbb2e172..04739b3f60 100644 --- a/v1/src/main/java/com/google/cloud/teleport/templates/common/CsvConverters.java +++ b/v1/src/main/java/com/google/cloud/teleport/templates/common/CsvConverters.java @@ -75,7 +75,7 @@ public interface CsvPipelineOptions extends PipelineOptions { order = 1, optional = true, description = "Whether input CSV files contain a header record.", - helpText = "Input CSV files contain a header record (true/false).") + helpText = "Whether headers are included in the CSV file. Defaults to: false.") @Default.Boolean(false) ValueProvider getContainsHeaders(); @@ -84,8 +84,7 @@ public interface CsvPipelineOptions extends PipelineOptions { @TemplateParameter.Text( order = 2, description = "Column delimiter of the data files.", - helpText = - "The column delimiter of the input text files. Default: use delimiter provided in csvFormat", + helpText = "The column delimiter that the CSV file uses.", example = ",") ValueProvider getDelimiter(); @@ -94,9 +93,7 @@ public interface CsvPipelineOptions extends PipelineOptions { @TemplateParameter.Text( order = 3, description = "CSV Format to use for parsing records.", - helpText = - "CSV format specification to use for parsing records. See https://commons.apache.org/proper/commons-csv/apidocs/org/apache/commons/csv/CSVFormat.html for more details. Must match format names exactly found at: " - + "https://commons.apache.org/proper/commons-csv/apidocs/org/apache/commons/csv/CSVFormat.Predefined.html") + helpText = "The CSV format according to Apache Commons CSV format. Defaults to: Default.") ValueProvider getCsvFormat(); void setCsvFormat(ValueProvider csvFormat); @@ -107,8 +104,7 @@ public interface CsvPipelineOptions extends PipelineOptions { regexes = {"^(US-ASCII|ISO-8859-1|UTF-8|UTF-16)$"}, description = "CSV file encoding", helpText = - "CSV file character encoding format. Allowed Values are US-ASCII" - + ", ISO-8859-1, UTF-8, UTF-16") + "The CSV file character encoding format. Allowed Values are US-ASCII, ISO-8859-1, UTF-8, and UTF-16.") @Default.String("UTF-8") ValueProvider getCsvFileEncoding(); diff --git a/v1/src/main/java/com/google/cloud/teleport/templates/common/SpannerConverters.java b/v1/src/main/java/com/google/cloud/teleport/templates/common/SpannerConverters.java index 9336bd972b..c90eaaee93 100644 --- a/v1/src/main/java/com/google/cloud/teleport/templates/common/SpannerConverters.java +++ b/v1/src/main/java/com/google/cloud/teleport/templates/common/SpannerConverters.java @@ -85,7 +85,7 @@ public interface SpannerReadOptions extends PipelineOptions { order = 1, regexes = {"^.+$"}, description = "Spanner Table", - helpText = "Spanner Table to read from") + helpText = "The Spanner table to read the data from.") ValueProvider getSpannerTable(); @SuppressWarnings("unused") @@ -95,7 +95,7 @@ public interface SpannerReadOptions extends PipelineOptions { order = 2, description = "Read data from Cloud Spanner Project Id", helpText = - "The Google Cloud Project Id of the Cloud Spanner database that you want to read data from") + "The ID of the Google Cloud project that contains the Spanner database to read data from.") ValueProvider getSpannerProjectId(); @SuppressWarnings("unused") @@ -105,7 +105,7 @@ public interface SpannerReadOptions extends PipelineOptions { order = 3, regexes = {".+"}, description = "Read data from Cloud Spanner Instance", - helpText = "Instance of requested table.") + helpText = "The instance ID of the requested table.") ValueProvider getSpannerInstanceId(); @SuppressWarnings("unused") @@ -115,7 +115,7 @@ public interface SpannerReadOptions extends PipelineOptions { order = 4, regexes = {".+"}, description = "Read data from Cloud Spanner Database ", - helpText = "Database of requested table.") + helpText = "The database ID of the requested table.") ValueProvider getSpannerDatabaseId(); @SuppressWarnings("unused") @@ -141,10 +141,10 @@ public interface SpannerReadOptions extends PipelineOptions { }, description = "Snapshot time", helpText = - "If set, specifies the time when the snapshot must be taken." - + " String is in the RFC 3339 format in UTC time. " - + " Timestamp must be in the past and Maximum timestamp staleness applies." - + "https://cloud.google.com/spanner/docs/timestamp-bounds#maximum_timestamp_staleness", + "The timestamp that corresponds to the version of the Spanner database that you want to read from." + + " The timestamp must be specified in the RFC 3339 (https://tools.ietf.org/html/rfc3339) UTC \"Zulu\" format." + + " The timestamp must be in the past and" + + " maximum timestamp staleness (https://cloud.google.com/spanner/docs/timestamp-bounds#maximum_timestamp_staleness) applies.", example = "1990-12-31T23:59:60Z") @Default.String(value = "") ValueProvider getSpannerSnapshotTime(); @@ -157,9 +157,10 @@ public interface SpannerReadOptions extends PipelineOptions { optional = true, description = "Use independent compute resource (Spanner DataBoost).", helpText = - "Use Spanner on-demand compute so the export job will run on independent compute" - + " resources and have no impact to current Spanner workloads. This will incur" - + " additional charges in Spanner.") + "Set to `true` to use the compute resources of Spanner Data Boost to run the job with near-zero" + + " impact on Spanner OLTP workflows. When true, requires the `spanner.databases.useDataBoost` Identity and" + + " Access Management (IAM) permission. For more information, see" + + " Data Boost overview (https://cloud.google.com/spanner/docs/databoost/databoost-overview).") @Default.Boolean(false) ValueProvider getDataBoostEnabled(); diff --git a/v2/bigquery-to-bigtable/src/main/java/com/google/cloud/teleport/v2/templates/BigQueryToBigtable.java b/v2/bigquery-to-bigtable/src/main/java/com/google/cloud/teleport/v2/templates/BigQueryToBigtable.java index 18f09d0390..87575af0d2 100644 --- a/v2/bigquery-to-bigtable/src/main/java/com/google/cloud/teleport/v2/templates/BigQueryToBigtable.java +++ b/v2/bigquery-to-bigtable/src/main/java/com/google/cloud/teleport/v2/templates/BigQueryToBigtable.java @@ -81,7 +81,7 @@ public interface BigQueryToBigtableOptions order = 1, regexes = {"[A-Za-z_][A-Za-z_0-9]*"}, description = "Unique identifier column", - helpText = "Name of the BigQuery column storing the unique identifier of the row") + helpText = "The name of the BigQuery column storing the unique identifier of the row.") @Required String getReadIdColumn(); diff --git a/v2/bigtable-common/src/main/java/com/google/cloud/teleport/v2/bigtable/options/BigtableCommonOptions.java b/v2/bigtable-common/src/main/java/com/google/cloud/teleport/v2/bigtable/options/BigtableCommonOptions.java index 9992072298..949543c75a 100644 --- a/v2/bigtable-common/src/main/java/com/google/cloud/teleport/v2/bigtable/options/BigtableCommonOptions.java +++ b/v2/bigtable-common/src/main/java/com/google/cloud/teleport/v2/bigtable/options/BigtableCommonOptions.java @@ -31,7 +31,7 @@ public interface BigtableCommonOptions extends GcpOptions { order = 1, optional = true, description = "The timeout for an RPC attempt in milliseconds", - helpText = "This sets the timeout for an RPC attempt in milliseconds") + helpText = "The timeout for each Bigtable RPC attempt in milliseconds.") Integer getBigtableRpcAttemptTimeoutMs(); void setBigtableRpcAttemptTimeoutMs(Integer value); @@ -40,7 +40,7 @@ public interface BigtableCommonOptions extends GcpOptions { order = 2, optional = true, description = "The total timeout for an RPC operation in milliseconds", - helpText = "This sets the total timeout for an RPC operation in milliseconds") + helpText = "The total timeout for a Bigtable RPC operation in milliseconds.") Integer getBigtableRpcTimeoutMs(); void setBigtableRpcTimeoutMs(Integer value); @@ -49,7 +49,7 @@ public interface BigtableCommonOptions extends GcpOptions { order = 3, optional = true, description = "The additional retry codes", - helpText = "This sets the additional retry codes, separated by ','", + helpText = "The additional retry codes.", example = "RESOURCE_EXHAUSTED,DEADLINE_EXCEEDED") String getBigtableAdditionalRetryCodes(); @@ -62,7 +62,7 @@ interface WriteOptions extends BigtableCommonOptions { order = 1, regexes = {"[a-z][a-z0-9\\-]+[a-z0-9]"}, description = "Bigtable Instance ID", - helpText = "The ID of the Cloud Bigtable instance that contains the table") + helpText = "The ID of the Bigtable instance that contains the table.") @Validation.Required String getBigtableWriteInstanceId(); @@ -72,7 +72,7 @@ interface WriteOptions extends BigtableCommonOptions { order = 2, regexes = {"[_a-zA-Z0-9][-_.a-zA-Z0-9]*"}, description = "Bigtable Table ID", - helpText = "The ID of the Cloud Bigtable table to write") + helpText = "The ID of the Bigtable table to write to.") @Validation.Required String getBigtableWriteTableId(); @@ -82,7 +82,7 @@ interface WriteOptions extends BigtableCommonOptions { order = 3, regexes = {"[-_.a-zA-Z0-9]+"}, description = "The Bigtable Column Family", - helpText = "This specifies the column family to write data into") + helpText = "The name of the column family of the Bigtable table to write data into.") @Validation.Required String getBigtableWriteColumnFamily(); @@ -94,8 +94,10 @@ interface WriteOptions extends BigtableCommonOptions { regexes = {"[a-z][a-z0-9\\-]+[a-z0-9]"}, description = "Bigtable App Profile", helpText = - "Bigtable App Profile to use for the export. The default for this parameter " - + "is the Bigtable instance's default app profile") + "The ID of the Bigtable application profile to use for the export. If you" + + " do not specify an app profile, Bigtable uses the" + + " default app profile (https://cloud.google.com/bigtable/docs/app-profiles#default-app-profile)" + + " of the instance.") @Default.String("default") String getBigtableWriteAppProfile(); @@ -106,7 +108,7 @@ interface WriteOptions extends BigtableCommonOptions { optional = true, description = "Bigtable Project ID", helpText = - "The ID of the Google Cloud project of the Cloud Bigtable instance that you want " + "The ID of the Google Cloud project that contains the Bigtable instance" + "to write data to.") String getBigtableWriteProjectId(); @@ -116,7 +118,7 @@ interface WriteOptions extends BigtableCommonOptions { order = 6, optional = true, description = "Bigtable's latency target in milliseconds for latency-based throttling", - helpText = "This enables latency-based throttling and specifies the target latency") + helpText = "The latency target of Bigtable in milliseconds for latency-based throttling.") Integer getBigtableBulkWriteLatencyTargetMs(); void setBigtableBulkWriteLatencyTargetMs(Integer value); @@ -125,7 +127,7 @@ interface WriteOptions extends BigtableCommonOptions { order = 7, optional = true, description = "The max number of row keys in a Bigtable batch write operation", - helpText = "This sets the max number of row keys in a Bigtable batch write operation") + helpText = "The maximum number of row keys in a Bigtable batch write operation.") Integer getBigtableBulkWriteMaxRowKeyCount(); void setBigtableBulkWriteMaxRowKeyCount(Integer value); @@ -134,7 +136,7 @@ interface WriteOptions extends BigtableCommonOptions { order = 8, optional = true, description = "The max amount of bytes in a Bigtable batch write operation", - helpText = "This sets the max amount of bytes in a Bigtable batch write operation") + helpText = "The maximum bytes to include per Bigtable batch write operation.") Integer getBigtableBulkWriteMaxRequestSizeBytes(); void setBigtableBulkWriteMaxRequestSizeBytes(Integer value); diff --git a/v2/common/src/main/java/com/google/cloud/teleport/v2/transforms/BigQueryConverters.java b/v2/common/src/main/java/com/google/cloud/teleport/v2/transforms/BigQueryConverters.java index 1d9d7d738a..53de64259c 100644 --- a/v2/common/src/main/java/com/google/cloud/teleport/v2/transforms/BigQueryConverters.java +++ b/v2/common/src/main/java/com/google/cloud/teleport/v2/transforms/BigQueryConverters.java @@ -166,7 +166,12 @@ public interface BigQueryReadOptions extends PipelineOptions { order = 1, optional = true, description = "BigQuery source table", - helpText = "BigQuery source table spec.", + helpText = + "The BigQuery table to read from. Format: `projectId:datasetId.tablename`. If you specify `inputTableSpec`, the template reads the data directly from BigQuery storage by using the" + + " BigQuery Storage Read API (https://cloud.google.com/bigquery/docs/reference/storage)." + + " For information about limitations in the Storage Read API, see" + + " https://cloud.google.com/bigquery/docs/reference/storage#limitations." + + " You must specify either `inputTableSpec` or `query`. If you set both parameters, the template uses the `query` parameter.", example = "bigquery-project:dataset.input_table") String getInputTableSpec(); @@ -177,9 +182,10 @@ public interface BigQueryReadOptions extends PipelineOptions { optional = true, description = "The dead-letter table name to output failed messages to BigQuery", helpText = - "Messages failed to reach the output table for all kind of reasons (e.g., mismatched " - + "schema, malformed json) are written to this table. If it doesn't exist, it will be " - + "created during pipeline execution.", + "The BigQuery table for messages that failed to reach the output" + + " table, in the format :.." + + " If a table doesn't exist, is is created during pipeline execution. If" + + " not specified, `_error_records` is used.", example = "your-project-id:your-dataset.your-table-name") String getOutputDeadletterTable(); @@ -190,7 +196,11 @@ public interface BigQueryReadOptions extends PipelineOptions { optional = true, regexes = {"^.+$"}, description = "Input SQL query.", - helpText = "Query to be executed on the source to extract the data.", + helpText = + "The SQL query to use to read data from BigQuery. If the BigQuery dataset is in a different project than the Dataflow job," + + " specify the full dataset name in the SQL query, for example: ... By default, the `query` parameter uses" + + " GoogleSQL (https://cloud.google.com/bigquery/docs/introduction-sql), unless `useLegacySql` is `true`." + + " You must specify either `inputTableSpec` or `query`. If you set both parameters, the template uses the `query` parameter.", example = "select * from sampledb.sample_table") String getQuery(); @@ -200,7 +210,9 @@ public interface BigQueryReadOptions extends PipelineOptions { order = 4, optional = true, description = "Set to true to use legacy SQL", - helpText = "Set to true to use legacy SQL (only applicable if supplying query).") + helpText = + "Set to true to use legacy SQL. This parameter only applies when using" + + " the `query` parameter. Defaults to: false.") @Default.Boolean(false) Boolean getUseLegacySql(); diff --git a/v2/common/src/main/java/com/google/cloud/teleport/v2/transforms/CsvConverters.java b/v2/common/src/main/java/com/google/cloud/teleport/v2/transforms/CsvConverters.java index ddb5e00c56..7440101d41 100644 --- a/v2/common/src/main/java/com/google/cloud/teleport/v2/transforms/CsvConverters.java +++ b/v2/common/src/main/java/com/google/cloud/teleport/v2/transforms/CsvConverters.java @@ -183,7 +183,8 @@ public interface CsvPipelineOptions extends PipelineOptions { @TemplateParameter.GcsReadFile( order = 1, description = "The input filepattern to read from.", - helpText = "Cloud storage file pattern glob to read from. ex: gs://your-bucket/path/*.csv") + helpText = + "The Cloud Storage file pattern to search for CSV files. Example: gs://mybucket/test-*.csv.") String getInputFileSpec(); void setInputFileSpec(String inputFileSpec); @@ -237,7 +238,7 @@ public interface CsvPipelineOptions extends PipelineOptions { order = 6, optional = true, description = "Path to JSON schema", - helpText = "Path to JSON schema. Default: null.", + helpText = "The path to the JSON schema. Defaults to: null.", example = "gs://path/to/schema") String getJsonSchemaPath(); @@ -247,7 +248,8 @@ public interface CsvPipelineOptions extends PipelineOptions { order = 7, optional = true, description = "Set to true if number of files is in the tens of thousands", - helpText = "Set to true if number of files is in the tens of thousands.") + helpText = + "Set to true if number of files is in the tens of thousands. Defaults to: false.") @Default.Boolean(false) Boolean getLargeNumFiles(); @@ -259,8 +261,7 @@ public interface CsvPipelineOptions extends PipelineOptions { regexes = {"^(US-ASCII|ISO-8859-1|UTF-8|UTF-16)$"}, description = "CSV file encoding", helpText = - "CSV file character encoding format. Allowed Values are US-ASCII" - + ", ISO-8859-1, UTF-8, UTF-16") + "The CSV file character encoding format. Allowed Values are US-ASCII, ISO-8859-1, UTF-8, and UTF-16.") @Default.String("UTF-8") String getCsvFileEncoding(); diff --git a/v2/elasticsearch-common/src/main/java/com/google/cloud/teleport/v2/elasticsearch/options/ElasticsearchWriteOptions.java b/v2/elasticsearch-common/src/main/java/com/google/cloud/teleport/v2/elasticsearch/options/ElasticsearchWriteOptions.java index baf9bfe94a..94fe210e07 100644 --- a/v2/elasticsearch-common/src/main/java/com/google/cloud/teleport/v2/elasticsearch/options/ElasticsearchWriteOptions.java +++ b/v2/elasticsearch-common/src/main/java/com/google/cloud/teleport/v2/elasticsearch/options/ElasticsearchWriteOptions.java @@ -29,7 +29,7 @@ public interface ElasticsearchWriteOptions extends PipelineOptions { order = 1, description = "Elasticsearch URL or CloudID if using Elastic Cloud", helpText = - "Elasticsearch URL in the format 'https://hostname:[port]' or specify CloudID if using Elastic Cloud", + "The Elasticsearch URL in the format https://hostname:[port]. If using Elastic Cloud, specify the CloudID.", example = "https://elasticsearch-host:9200") @Validation.Required String getConnectionUrl(); @@ -39,8 +39,7 @@ public interface ElasticsearchWriteOptions extends PipelineOptions { @TemplateParameter.Text( order = 2, description = "Base64 Encoded API Key for access without requiring basic authentication", - helpText = - "Base64 Encoded API key used for authentication. Refer to: https://www.elastic.co/guide/en/elasticsearch/reference/current/security-api-create-api-key.html#security-api-create-api-key-request") + helpText = "The Base64-encoded API key to use for authentication.") @Validation.Required String getApiKey(); @@ -71,7 +70,7 @@ public interface ElasticsearchWriteOptions extends PipelineOptions { optional = false, regexes = {"[a-zA-Z0-9._-]+"}, description = "Elasticsearch index", - helpText = "The index toward which the requests will be issued", + helpText = "The Elasticsearch index that the requests are issued to, such as `my-index.`", example = "my-index") String getIndex(); @@ -81,7 +80,7 @@ public interface ElasticsearchWriteOptions extends PipelineOptions { order = 6, optional = true, description = "Batch Size", - helpText = "Batch size in number of documents. Default: '1000'.") + helpText = "The batch size in number of documents. Defaults to: 1000.") @Default.Long(1000) Long getBatchSize(); @@ -91,8 +90,7 @@ public interface ElasticsearchWriteOptions extends PipelineOptions { order = 7, optional = true, description = "Batch Size in Bytes", - helpText = - "Batch Size in bytes used for batch insertion of messages into elasticsearch. Default: '5242880 (5mb)'") + helpText = "The batch size in number of bytes. Defaults to: 5242880 (5mb).") @Default.Long(5242880) Long getBatchSizeBytes(); @@ -102,7 +100,8 @@ public interface ElasticsearchWriteOptions extends PipelineOptions { order = 8, optional = true, description = "Max retry attempts.", - helpText = "Max retry attempts, must be > 0. Default: 'no retries'") + helpText = + "The maximum number of retry attempts. Must be greater than zero. Defaults to: no retries.") Integer getMaxRetryAttempts(); void setMaxRetryAttempts(Integer maxRetryAttempts); @@ -111,7 +110,8 @@ public interface ElasticsearchWriteOptions extends PipelineOptions { order = 9, optional = true, description = "Max retry duration.", - helpText = "Max retry duration in milliseconds, must be > 0. Default: 'no retries'") + helpText = + "The maximum retry duration in milliseconds. Must be greater than zero. Defaults to: no retries.") Long getMaxRetryDuration(); void setMaxRetryDuration(Long maxRetryDuration); @@ -121,7 +121,7 @@ public interface ElasticsearchWriteOptions extends PipelineOptions { optional = true, description = "Document property to specify _index metadata", helpText = - "A property in the document being indexed whose value will specify '_index' metadata to be included with document in bulk request (takes precedence over an '_index' UDF). Default: none") + "The property in the document being indexed whose value specifies `_index` metadata to include with the document in bulk requests. Takes precedence over an `_index` UDF. Defaults to: none.") String getPropertyAsIndex(); void setPropertyAsIndex(String propertyAsIndex); @@ -131,7 +131,7 @@ public interface ElasticsearchWriteOptions extends PipelineOptions { optional = true, description = "Cloud Storage path to JavaScript UDF source for _index metadata", helpText = - "The Cloud Storage path to the JavaScript UDF source for a function that will specify '_index' metadata to be included with document in bulk request. Default: none") + "The Cloud Storage path to the JavaScript UDF source for a function that specifies `_index` metadata to include with the document in bulk requests. Defaults to: none.") String getJavaScriptIndexFnGcsPath(); void setJavaScriptIndexFnGcsPath(String javaScriptTextTransformGcsPath); @@ -141,7 +141,7 @@ public interface ElasticsearchWriteOptions extends PipelineOptions { optional = true, description = "UDF JavaScript Function Name for _index metadata", helpText = - "UDF JavaScript function Name for function that will specify _index metadata to be included with document in bulk request. Default: none") + "The name of the UDF JavaScript function that specifies `_index` metadata to include with the document in bulk requests. Defaults to: none.") String getJavaScriptIndexFnName(); void setJavaScriptIndexFnName(String javaScriptTextTransformFunctionName); @@ -151,7 +151,7 @@ public interface ElasticsearchWriteOptions extends PipelineOptions { optional = true, description = "Document property to specify _id metadata", helpText = - "A property in the document being indexed whose value will specify '_id' metadata to be included with document in bulk request (takes precedence over an '_id' UDF). Default: none") + "A property in the document being indexed whose value specifies `_id` metadata to include with the document in bulk requests. Takes precedence over an `_id` UDF. Defaults to: none.") String getPropertyAsId(); void setPropertyAsId(String propertyAsId); @@ -161,7 +161,7 @@ public interface ElasticsearchWriteOptions extends PipelineOptions { optional = true, description = "Cloud Storage path to JavaScript UDF source for _id metadata", helpText = - "The Cloud Storage path to the JavaScript UDF source for a function that will specify '_id' metadata to be included with document in bulk request.Default: none") + "The Cloud Storage path to the JavaScript UDF source for the function that specifies `_id` metadata to include with the document in bulk requests. Defaults to: none.") String getJavaScriptIdFnGcsPath(); void setJavaScriptIdFnGcsPath(String javaScriptTextTransformGcsPath); @@ -171,7 +171,7 @@ public interface ElasticsearchWriteOptions extends PipelineOptions { optional = true, description = "UDF JavaScript Function Name for _id metadata", helpText = - "UDF JavaScript Function Name for function that will specify _id metadata to be included with document in bulk request. Default: none") + "The name of the UDF JavaScript function that specifies the `_id` metadata to include with the document in bulk requests. Defaults to: none.") String getJavaScriptIdFnName(); void setJavaScriptIdFnName(String javaScriptTextTransformFunctionName); @@ -181,7 +181,7 @@ public interface ElasticsearchWriteOptions extends PipelineOptions { optional = true, description = "Cloud Storage path to JavaScript UDF source for _type metadata", helpText = - "The Cloud Storage path to the JavaScript UDF source for function that will specify '_type' metadata to be included with document in bulk request. Default: none") + "The Cloud Storage path to the JavaScript UDF source for a function that specifies `_type` metadata to include with documents in bulk requests. Default: none.") String getJavaScriptTypeFnGcsPath(); void setJavaScriptTypeFnGcsPath(String javaScriptTextTransformGcsPath); @@ -191,7 +191,7 @@ public interface ElasticsearchWriteOptions extends PipelineOptions { optional = true, description = "UDF JavaScript Function Name for _type metadata", helpText = - "UDF JavaScript function Name for function that will specify '_type' metadata to be included with document in bulk request. Default: none") + "The name of the UDF JavaScript function that specifies the `_type` metadata to include with the document in bulk requests. Defaults to: none.") String getJavaScriptTypeFnName(); void setJavaScriptTypeFnName(String javaScriptTextTransformFunctionName); @@ -201,7 +201,7 @@ public interface ElasticsearchWriteOptions extends PipelineOptions { optional = true, description = "Cloud Storage path to JavaScript UDF source for isDelete function", helpText = - "The Cloud Storage path to JavaScript UDF source for function that will determine if document should be deleted rather than inserted or updated. The function should return string value \"true\" or \"false\". Default: none") + "The Cloud Storage path to the JavaScript UDF source for the function that determines whether to delete the document instead of inserting or updating it. The function returns a string value of `true` or `false`. Defaults to: none.") String getJavaScriptIsDeleteFnGcsPath(); void setJavaScriptIsDeleteFnGcsPath(String javaScriptTextTransformGcsPath); @@ -211,7 +211,7 @@ public interface ElasticsearchWriteOptions extends PipelineOptions { optional = true, description = "UDF JavaScript Function Name for isDelete", helpText = - "UDF JavaScript function Name for function that will determine if document should be deleted rather than inserted or updated. The function should return string value \"true\" or \"false\". Default: none") + "The name of the UDF JavaScript function that determines whether to delete the document instead of inserting or updating it. The function returns a string value of `true` or `false`. Defaults to: none.") String getJavaScriptIsDeleteFnName(); void setJavaScriptIsDeleteFnName(String javaScriptTextTransformFunctionName); @@ -221,7 +221,7 @@ public interface ElasticsearchWriteOptions extends PipelineOptions { optional = true, description = "Use partial updates", helpText = - "Whether to use partial updates (update rather than create or index, allowing partial docs) with Elasticsearch requests. Default: 'false'") + "Whether to use partial updates (update rather than create or index, allowing partial documents) with Elasticsearch requests. Defaults to: false.") @Default.Boolean(false) Boolean getUsePartialUpdate(); @@ -233,7 +233,7 @@ public interface ElasticsearchWriteOptions extends PipelineOptions { optional = true, description = "Build insert method", helpText = - "Whether to use 'INDEX' (index, allows upsert) or 'CREATE' (create, errors on duplicate _id) with Elasticsearch bulk requests. Default: 'CREATE'") + "Whether to use `INDEX` (index, allows upserts) or `CREATE` (create, errors on duplicate _id) with Elasticsearch bulk requests. Defaults to: CREATE.") @Default.Enum("CREATE") BulkInsertMethodOptions getBulkInsertMethod(); diff --git a/v2/googlecloud-to-elasticsearch/src/main/java/com/google/cloud/teleport/v2/elasticsearch/options/GCSToElasticsearchOptions.java b/v2/googlecloud-to-elasticsearch/src/main/java/com/google/cloud/teleport/v2/elasticsearch/options/GCSToElasticsearchOptions.java index 6ead499f1a..b5d1e728db 100644 --- a/v2/googlecloud-to-elasticsearch/src/main/java/com/google/cloud/teleport/v2/elasticsearch/options/GCSToElasticsearchOptions.java +++ b/v2/googlecloud-to-elasticsearch/src/main/java/com/google/cloud/teleport/v2/elasticsearch/options/GCSToElasticsearchOptions.java @@ -33,8 +33,7 @@ public interface GCSToElasticsearchOptions @TemplateParameter.BigQueryTable( order = 1, description = "BigQuery Deadletter table to send failed inserts.", - helpText = - "Messages failed to reach the target for all kind of reasons (e.g., mismatched schema, malformed json) are written to this table.", + helpText = "The BigQuery dead-letter table to send failed inserts to.", example = "your-project:your-dataset.your-table-name") @Validation.Required String getDeadletterTable(); diff --git a/v2/googlecloud-to-googlecloud/src/main/java/com/google/cloud/teleport/v2/options/SpannerChangeStreamsToPubSubOptions.java b/v2/googlecloud-to-googlecloud/src/main/java/com/google/cloud/teleport/v2/options/SpannerChangeStreamsToPubSubOptions.java index 2bc7b84b38..41f2dc7591 100644 --- a/v2/googlecloud-to-googlecloud/src/main/java/com/google/cloud/teleport/v2/options/SpannerChangeStreamsToPubSubOptions.java +++ b/v2/googlecloud-to-googlecloud/src/main/java/com/google/cloud/teleport/v2/options/SpannerChangeStreamsToPubSubOptions.java @@ -33,8 +33,8 @@ public interface SpannerChangeStreamsToPubSubOptions extends DataflowPipelineOpt optional = true, description = "Spanner Project ID", helpText = - "Project to read change streams from. The default for this parameter is the project " - + "where the Dataflow pipeline is running.") + "The project to read change streams from. This project is also where the change " + + "streams connector metadata table is created. The default for this parameter is the project where the Dataflow pipeline is running.") @Default.String("") String getSpannerProjectId(); @@ -63,10 +63,10 @@ public interface SpannerChangeStreamsToPubSubOptions extends DataflowPipelineOpt optional = true, description = "Spanner database role", helpText = - "Database role user assumes while reading from the change stream. The database role" - + " should have required privileges to read from change stream. If a database role is" - + " not specified, the user should have required IAM permissions to read from the" - + " database.") + "The Spanner database role to use when running the template. This parameter is required" + + " only when the IAM principal who is running the template is a fine-grained access control user. The" + + " database role must have the `SELECT` privilege on the change stream and the `EXECUTE` privilege on" + + " the change stream's read function. For more information, see Fine-grained access control for change streams (https://cloud.google.com/spanner/docs/fgac-change-streams).") String getSpannerDatabaseRole(); void setSpannerDatabaseRole(String spannerDatabaseRole); @@ -83,10 +83,7 @@ public interface SpannerChangeStreamsToPubSubOptions extends DataflowPipelineOpt @TemplateParameter.Text( order = 6, description = "Spanner metadata database", - helpText = - "The Spanner database to use for the change streams connector metadata table. For change" - + " streams tracking all tables in a database, we recommend putting the metadata" - + " table in a separate database.") + helpText = "The Spanner database to use for the change streams connector metadata table.") @Validation.Required String getSpannerMetadataDatabase(); @@ -97,10 +94,10 @@ public interface SpannerChangeStreamsToPubSubOptions extends DataflowPipelineOpt optional = true, description = "Cloud Spanner metadata table name", helpText = - "The Cloud Spanner change streams connector metadata table name to use. If not provided," - + " a Cloud Spanner change streams connector metadata table will automatically be" - + " created during the pipeline flow. This parameter must be provided when updating" - + " an existing pipeline and should not be provided otherwise.") + "The Spanner change streams connector metadata table name to use. If not provided," + + " Spanner automatically creates the streams connector metadata table during the pipeline flow" + + " change. You must provide this parameter when updating an existing pipeline. Don't use this" + + " parameter for other cases.") String getSpannerMetadataTableName(); void setSpannerMetadataTableName(String value); @@ -119,9 +116,9 @@ public interface SpannerChangeStreamsToPubSubOptions extends DataflowPipelineOpt optional = true, description = "The timestamp to read change streams from", helpText = - "The starting DateTime, inclusive, to use for reading change streams" - + " (https://tools.ietf.org/html/rfc3339). For example, 2022-05-05T07:59:59Z." - + " Defaults to the timestamp when the pipeline starts.") + "The starting DateTime (https://tools.ietf.org/html/rfc3339), inclusive, to use for reading change streams. For example, ex-" + + " 2021-10-12T07:20:50.52Z. Defaults to the timestamp when the pipeline starts, that is, the current" + + " time.") @Default.String("") String getStartTimestamp(); @@ -132,9 +129,8 @@ public interface SpannerChangeStreamsToPubSubOptions extends DataflowPipelineOpt optional = true, description = "The timestamp to read change streams to", helpText = - "The ending DateTime, inclusive, to use for reading change streams" - + " (https://tools.ietf.org/html/rfc3339). Ex-2022-05-05T07:59:59Z. Defaults to an" - + " infinite time in the future.") + "The ending DateTime (https://tools.ietf.org/html/rfc3339), inclusive, to use for reading change streams. For example, ex-" + + " 2021-10-12T07:20:50.52Z. Defaults to an infinite time in the future.") @Default.String("") String getEndTimestamp(); @@ -157,7 +153,7 @@ public interface SpannerChangeStreamsToPubSubOptions extends DataflowPipelineOpt optional = true, description = "Output data format", helpText = - "The format of the output to Pub/Sub. Allowed formats are JSON, AVRO. Default is JSON.") + "The format of the output. Output is wrapped in many PubsubMessages and sent to a Pub/Sub topic. Allowed formats are JSON and AVRO. Default is JSON.") @Default.String("JSON") String getOutputDataFormat(); @@ -168,9 +164,9 @@ public interface SpannerChangeStreamsToPubSubOptions extends DataflowPipelineOpt optional = true, description = "Pub/Sub API", helpText = - "Pub/Sub API used to implement the pipeline. Allowed APIs are pubsubio and native_client." - + " Default is pubsubio. For a small QPS, native_client can achieve a smaller latency" - + " than pubsubio. For a large QPS, pubsubio has better and more stable performance.") + "The Pub/Sub API used to implement the pipeline. Allowed APIs are `pubsubio` and `native_client`." + + " For a small number of queries per second (QPS), `native_client` has less latency. For a" + + " large number of QPS, `pubsubio` provides better and more stable performance. The default is `pubsubio`.") @Default.String("pubsubio") String getPubsubAPI(); @@ -191,7 +187,7 @@ public interface SpannerChangeStreamsToPubSubOptions extends DataflowPipelineOpt @TemplateParameter.Text( order = 15, description = "The output Pub/Sub topic", - helpText = "The Pub/Sub topic to publish PubsubMessage.") + helpText = "The Pub/Sub topic for change streams output.") @Validation.Required String getPubsubTopic(); @@ -207,8 +203,7 @@ public interface SpannerChangeStreamsToPubSubOptions extends DataflowPipelineOpt optional = true, description = "Priority for Spanner RPC invocations", helpText = - "The request priority for Cloud Spanner calls. The value must be one of:" - + " [HIGH,MEDIUM,LOW].") + "The request priority for Spanner calls. Allowed values are HIGH, MEDIUM, and LOW. Defaults to: HIGH)") @Default.Enum("HIGH") RpcPriority getRpcPriority(); diff --git a/v2/jdbc-to-googlecloud/src/main/java/com/google/cloud/teleport/v2/options/JdbcToPubsubOptions.java b/v2/jdbc-to-googlecloud/src/main/java/com/google/cloud/teleport/v2/options/JdbcToPubsubOptions.java index 98514b5cfa..cca5c761b2 100644 --- a/v2/jdbc-to-googlecloud/src/main/java/com/google/cloud/teleport/v2/options/JdbcToPubsubOptions.java +++ b/v2/jdbc-to-googlecloud/src/main/java/com/google/cloud/teleport/v2/options/JdbcToPubsubOptions.java @@ -28,7 +28,7 @@ public interface JdbcToPubsubOptions extends CommonTemplateOptions { optional = false, regexes = {"^.+$"}, description = "JDBC driver class name.", - helpText = "JDBC driver class name to use.", + helpText = "The JDBC driver class name.", example = "com.mysql.jdbc.Driver") String getDriverClassName(); @@ -42,8 +42,7 @@ public interface JdbcToPubsubOptions extends CommonTemplateOptions { }, description = "JDBC connection URL string.", helpText = - "Url connection string to connect to the JDBC source. Connection string can " - + "be passed in as plaintext or as a base64 encoded string encrypted by Google Cloud KMS.", + "The JDBC connection URL string. You can pass in this value as a string that's encrypted with a Cloud KMS key and then Base64-encoded. Remove whitespace characters from the Base64-encoded string. ", example = "jdbc:mysql://some-host:3306/sampledb") String getConnectionUrl(); @@ -55,8 +54,7 @@ public interface JdbcToPubsubOptions extends CommonTemplateOptions { regexes = {"^.+$"}, description = "JDBC connection username.", helpText = - "User name to be used for the JDBC connection. User name can be passed in as plaintext " - + "or as a base64 encoded string encrypted by Google Cloud KMS.") + "The username to use for the JDBC connection. You can pass in this value as a string that's encrypted with a Cloud KMS key and then Base64-encoded. For example, `echo -n 'some_username' | glcloud kms encrypt --location=my_location --keyring=mykeyring --key=mykey --plaintext-file=- --ciphertext-file=- | base64`") String getUsername(); void setUsername(String username); @@ -66,8 +64,7 @@ public interface JdbcToPubsubOptions extends CommonTemplateOptions { optional = true, description = "JDBC connection password.", helpText = - "Password to be used for the JDBC connection. Password can be passed in as plaintext " - + "or as a base64 encoded string encrypted by Google Cloud KMS.") + "The password to use for the JDBC connection. You can pass in this value as a string that's encrypted with a Cloud KMS key and then Base64-encoded. For example, `echo -n 'some_password' | glcloud kms encrypt --location=my_location --keyring=mykeyring --key=mykey --plaintext-file=- --ciphertext-file=- | base64`") String getPassword(); void setPassword(String password); @@ -77,7 +74,7 @@ public interface JdbcToPubsubOptions extends CommonTemplateOptions { optional = false, regexes = {"^.+$"}, description = "Cloud Storage paths for JDBC drivers", - helpText = "Comma separate Cloud Storage paths for JDBC drivers.", + helpText = "Comma-separated Cloud Storage paths for JDBC drivers.", example = "gs://your-bucket/driver_jar1.jar,gs://your-bucket/driver_jar2.jar") String getDriverJars(); @@ -89,7 +86,7 @@ public interface JdbcToPubsubOptions extends CommonTemplateOptions { regexes = {"^[a-zA-Z0-9_;!*&=@#-:\\/]+$"}, description = "JDBC connection property string.", helpText = - "Properties string to use for the JDBC connection. Format of the string must be [propertyName=property;]*.", + "The properties string to use for the JDBC connection. The format of the string must be `[propertyName=property;]*`. ", example = "unicode=true;characterEncoding=UTF-8") String getConnectionProperties(); @@ -100,7 +97,7 @@ public interface JdbcToPubsubOptions extends CommonTemplateOptions { optional = false, regexes = {"^.+$"}, description = "JDBC source SQL query.", - helpText = "Query to be executed on the source to extract the data.", + helpText = "The query to run on the source to extract the data.", example = "select * from sampledb.sample_table") String getQuery(); @@ -110,7 +107,7 @@ public interface JdbcToPubsubOptions extends CommonTemplateOptions { order = 8, description = "Output Pub/Sub topic", helpText = - "The name of the topic to which data should published, in the format of 'projects/your-project-id/topics/your-topic-name'", + "The Pub/Sub topic to publish to, in the format projects//topics/.", example = "projects/your-project-id/topics/your-topic-name") @Validation.Required String getOutputTopic(); @@ -122,7 +119,7 @@ public interface JdbcToPubsubOptions extends CommonTemplateOptions { optional = true, description = "Google Cloud KMS key", helpText = - "If this parameter is provided, password, user name and connection string should all be passed in encrypted. Encrypt parameters using the KMS API encrypt endpoint. See: https://cloud.google.com/kms/docs/reference/rest/v1/projects.locations.keyRings.cryptoKeys/encrypt", + "The Cloud KMS Encryption Key to use to decrypt the username, password, and connection string. If a Cloud KMS key is passed in, the username, password, and connection string must all be passed in encrypted and base64 encoded.", example = "projects/your-project/locations/global/keyRings/your-keyring/cryptoKeys/your-key") String getKMSEncryptionKey(); diff --git a/v2/kafka-to-bigquery/src/main/java/com/google/cloud/teleport/v2/templates/KafkaToBigQuery.java b/v2/kafka-to-bigquery/src/main/java/com/google/cloud/teleport/v2/templates/KafkaToBigQuery.java index c7acae1d31..0eb08e59e4 100644 --- a/v2/kafka-to-bigquery/src/main/java/com/google/cloud/teleport/v2/templates/KafkaToBigQuery.java +++ b/v2/kafka-to-bigquery/src/main/java/com/google/cloud/teleport/v2/templates/KafkaToBigQuery.java @@ -174,7 +174,8 @@ public interface KafkaToBQOptions optional = true, regexes = {"[,:a-zA-Z0-9._-]+"}, description = "Kafka Bootstrap Server list", - helpText = "Kafka Bootstrap Server list, separated by commas.", + helpText = + "The host address of the running Apache Kafka broker servers in a comma-separated list. Each host address must be in the format `35.70.252.199:9092`.", example = "localhost:9092,127.0.0.1:9093") @Deprecated String getBootstrapServers(); @@ -200,7 +201,7 @@ public interface KafkaToBQOptions optional = true, regexes = {"[,a-zA-Z0-9._-]+"}, description = "Kafka topic(s) to read the input from", - helpText = "Kafka topic(s) to read the input from.", + helpText = "The Apache Kafka input topics to read from in a comma-separated list. ", example = "topic1,topic2") String getInputTopics(); diff --git a/v2/mongodb-to-googlecloud/src/main/java/com/google/cloud/teleport/v2/mongodb/options/MongoDbToBigQueryOptions.java b/v2/mongodb-to-googlecloud/src/main/java/com/google/cloud/teleport/v2/mongodb/options/MongoDbToBigQueryOptions.java index 0fc05b577a..69d5f853ae 100644 --- a/v2/mongodb-to-googlecloud/src/main/java/com/google/cloud/teleport/v2/mongodb/options/MongoDbToBigQueryOptions.java +++ b/v2/mongodb-to-googlecloud/src/main/java/com/google/cloud/teleport/v2/mongodb/options/MongoDbToBigQueryOptions.java @@ -86,9 +86,7 @@ public interface PubSubOptions extends PipelineOptions, DataflowPipelineOptions order = 1, description = "Pub/Sub input topic", helpText = - "Pub/Sub topic to read the input from, in the format of " - + "'projects/your-project-id/topics/your-topic-name'", - example = "projects/your-project-id/topics/your-topic-name") + "The Pub/Sub input topic to read from, in the format of projects//topics/.") String getInputTopic(); void setInputTopic(String inputTopic); diff --git a/v2/mongodb-to-googlecloud/src/main/java/com/google/cloud/teleport/v2/mongodb/templates/MongoDbToBigQueryCdc.java b/v2/mongodb-to-googlecloud/src/main/java/com/google/cloud/teleport/v2/mongodb/templates/MongoDbToBigQueryCdc.java index 7c42a9644b..dd8e83f0e0 100644 --- a/v2/mongodb-to-googlecloud/src/main/java/com/google/cloud/teleport/v2/mongodb/templates/MongoDbToBigQueryCdc.java +++ b/v2/mongodb-to-googlecloud/src/main/java/com/google/cloud/teleport/v2/mongodb/templates/MongoDbToBigQueryCdc.java @@ -95,9 +95,10 @@ public interface Options parentTriggerValues = {"true"}, description = "Use at at-least-once semantics in BigQuery Storage Write API", helpText = - "This parameter takes effect only if \"Use BigQuery Storage Write API\" is enabled. If" - + " enabled the at-least-once semantics will be used for Storage Write API, otherwise" - + " exactly-once semantics will be used.", + "When using the Storage Write API, specifies the write semantics. To" + + " use at-least-once semantics (https://beam.apache.org/documentation/io/built-in/google-bigquery/#at-least-once-semantics), set this parameter to `true`. To use exactly-" + + " once semantics, set the parameter to `false`. This parameter applies only when" + + " `useStorageWriteApi` is `true`. The default value is `false`.", hiddenUi = true) @Default.Boolean(false) @Override diff --git a/v2/pubsub-to-redis/src/main/java/com/google/cloud/teleport/v2/templates/PubSubToRedis.java b/v2/pubsub-to-redis/src/main/java/com/google/cloud/teleport/v2/templates/PubSubToRedis.java index 79f56fc4b4..b2b14f3c2c 100644 --- a/v2/pubsub-to-redis/src/main/java/com/google/cloud/teleport/v2/templates/PubSubToRedis.java +++ b/v2/pubsub-to-redis/src/main/java/com/google/cloud/teleport/v2/templates/PubSubToRedis.java @@ -135,8 +135,8 @@ public interface PubSubToRedisOptions order = 1, description = "Pub/Sub input subscription", helpText = - "Pub/Sub subscription to read the input from, in the format of" - + " 'projects/your-project-id/subscriptions/your-subscription-name'", + "The Pub/Sub subscription to read the input from, in the format" + + " projects//subscriptions/.", example = "projects/your-project-id/subscriptions/your-subscription-name") String getInputSubscription(); @@ -145,7 +145,7 @@ public interface PubSubToRedisOptions @TemplateParameter.Text( order = 2, description = "Redis DB Host", - helpText = "Redis database host.", + helpText = "The Redis database host.", example = "your.cloud.db.redislabs.com") @Default.String("127.0.0.1") @Validation.Required @@ -156,7 +156,7 @@ public interface PubSubToRedisOptions @TemplateParameter.Integer( order = 3, description = "Redis DB Port", - helpText = "Redis database port.", + helpText = "The Redis database port.", example = "12345") @Default.Integer(6379) @Validation.Required @@ -167,7 +167,7 @@ public interface PubSubToRedisOptions @TemplateParameter.Password( order = 4, description = "Redis DB Password", - helpText = "Redis database password.") + helpText = "The Redis database password. Defaults to empty.") @Default.String("") @Validation.Required String getRedisPassword(); @@ -178,7 +178,7 @@ public interface PubSubToRedisOptions order = 5, optional = true, description = "Redis ssl enabled", - helpText = "Redis database ssl parameter.") + helpText = "The Redis database SSL parameter.") @Default.Boolean(false) @UnknownKeyFor @NonNull @@ -198,7 +198,7 @@ public interface PubSubToRedisOptions }, description = "Redis sink to write", helpText = - "Supported Redis sinks are STRING_SINK, HASH_SINK, STREAMS_SINK and LOGGING_SINK", + "The Redis sink. Supported values are `STRING_SINK, HASH_SINK, STREAMS_SINK, and LOGGING_SINK`.", example = "STRING_SINK") @Default.Enum("STRING_SINK") RedisSinkType getRedisSinkType(); @@ -209,7 +209,7 @@ public interface PubSubToRedisOptions order = 7, optional = true, description = "Redis connection timeout in milliseconds", - helpText = "Redis connection timeout in milliseconds.", + helpText = "The Redis connection timeout in milliseconds. ", example = "2000") @Default.Integer(2000) int getConnectionTimeout(); @@ -224,7 +224,7 @@ public interface PubSubToRedisOptions description = "Hash key expiration time in sec (ttl), supported only for HASH_SINK and LOGGING_SINK", helpText = - "Key expiration time in sec (ttl, default for HASH_SINK is -1 i.e. no expiration)") + "The key expiration time in seconds. The `ttl` default for `HASH_SINK` is -1, which means it never expires.") @Default.Long(-1L) Long getTtl();