com.google.api.services.pubsub.model.BigQueryConfig Maven / Gradle / Ivy
/*
* Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
* in compliance with the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software distributed under the License
* is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
* or implied. See the License for the specific language governing permissions and limitations under
* the License.
*/
/*
* This code was generated by https://github.com/googleapis/google-api-java-client-services/
* Modify at your own risk.
*/
package com.google.api.services.pubsub.model;
/**
* Configuration for a BigQuery subscription.
*
* This is the Java data model class that specifies how to parse/serialize into the JSON that is
* transmitted over HTTP when working with the Cloud Pub/Sub API. For a detailed explanation see:
* https://developers.google.com/api-client-library/java/google-http-java-client/json
*
*
* @author Google, Inc.
*/
@SuppressWarnings("javadoc")
public final class BigQueryConfig extends com.google.api.client.json.GenericJson {
/**
* Optional. When true and use_topic_schema is true, any fields that are a part of the topic
* schema that are not part of the BigQuery table schema are dropped when writing to BigQuery.
* Otherwise, the schemas must be kept in sync and any messages with extra fields are not written
* and remain in the subscription's backlog.
* The value may be {@code null}.
*/
@com.google.api.client.util.Key
private java.lang.Boolean dropUnknownFields;
/**
* Optional. The service account to use to write to BigQuery. The subscription creator or updater
* that specifies this field must have `iam.serviceAccounts.actAs` permission on the service
* account. If not specified, the Pub/Sub [service
* agent](https://cloud.google.com/iam/docs/service-agents), service-{project_number}@gcp-sa-
* pubsub.iam.gserviceaccount.com, is used.
* The value may be {@code null}.
*/
@com.google.api.client.util.Key
private java.lang.String serviceAccountEmail;
/**
* Output only. An output-only field that indicates whether or not the subscription can receive
* messages.
* The value may be {@code null}.
*/
@com.google.api.client.util.Key
private java.lang.String state;
/**
* Optional. The name of the table to which to write data, of the form
* {projectId}.{datasetId}.{tableId}
* The value may be {@code null}.
*/
@com.google.api.client.util.Key
private java.lang.String table;
/**
* Optional. When true, use the BigQuery table's schema as the columns to write to in BigQuery.
* `use_table_schema` and `use_topic_schema` cannot be enabled at the same time.
* The value may be {@code null}.
*/
@com.google.api.client.util.Key
private java.lang.Boolean useTableSchema;
/**
* Optional. When true, use the topic's schema as the columns to write to in BigQuery, if it
* exists. `use_topic_schema` and `use_table_schema` cannot be enabled at the same time.
* The value may be {@code null}.
*/
@com.google.api.client.util.Key
private java.lang.Boolean useTopicSchema;
/**
* Optional. When true, write the subscription name, message_id, publish_time, attributes, and
* ordering_key to additional columns in the table. The subscription name, message_id, and
* publish_time fields are put in their own columns while all other message properties (other than
* data) are written to a JSON object in the attributes column.
* The value may be {@code null}.
*/
@com.google.api.client.util.Key
private java.lang.Boolean writeMetadata;
/**
* Optional. When true and use_topic_schema is true, any fields that are a part of the topic
* schema that are not part of the BigQuery table schema are dropped when writing to BigQuery.
* Otherwise, the schemas must be kept in sync and any messages with extra fields are not written
* and remain in the subscription's backlog.
* @return value or {@code null} for none
*/
public java.lang.Boolean getDropUnknownFields() {
return dropUnknownFields;
}
/**
* Optional. When true and use_topic_schema is true, any fields that are a part of the topic
* schema that are not part of the BigQuery table schema are dropped when writing to BigQuery.
* Otherwise, the schemas must be kept in sync and any messages with extra fields are not written
* and remain in the subscription's backlog.
* @param dropUnknownFields dropUnknownFields or {@code null} for none
*/
public BigQueryConfig setDropUnknownFields(java.lang.Boolean dropUnknownFields) {
this.dropUnknownFields = dropUnknownFields;
return this;
}
/**
* Optional. The service account to use to write to BigQuery. The subscription creator or updater
* that specifies this field must have `iam.serviceAccounts.actAs` permission on the service
* account. If not specified, the Pub/Sub [service
* agent](https://cloud.google.com/iam/docs/service-agents), service-{project_number}@gcp-sa-
* pubsub.iam.gserviceaccount.com, is used.
* @return value or {@code null} for none
*/
public java.lang.String getServiceAccountEmail() {
return serviceAccountEmail;
}
/**
* Optional. The service account to use to write to BigQuery. The subscription creator or updater
* that specifies this field must have `iam.serviceAccounts.actAs` permission on the service
* account. If not specified, the Pub/Sub [service
* agent](https://cloud.google.com/iam/docs/service-agents), service-{project_number}@gcp-sa-
* pubsub.iam.gserviceaccount.com, is used.
* @param serviceAccountEmail serviceAccountEmail or {@code null} for none
*/
public BigQueryConfig setServiceAccountEmail(java.lang.String serviceAccountEmail) {
this.serviceAccountEmail = serviceAccountEmail;
return this;
}
/**
* Output only. An output-only field that indicates whether or not the subscription can receive
* messages.
* @return value or {@code null} for none
*/
public java.lang.String getState() {
return state;
}
/**
* Output only. An output-only field that indicates whether or not the subscription can receive
* messages.
* @param state state or {@code null} for none
*/
public BigQueryConfig setState(java.lang.String state) {
this.state = state;
return this;
}
/**
* Optional. The name of the table to which to write data, of the form
* {projectId}.{datasetId}.{tableId}
* @return value or {@code null} for none
*/
public java.lang.String getTable() {
return table;
}
/**
* Optional. The name of the table to which to write data, of the form
* {projectId}.{datasetId}.{tableId}
* @param table table or {@code null} for none
*/
public BigQueryConfig setTable(java.lang.String table) {
this.table = table;
return this;
}
/**
* Optional. When true, use the BigQuery table's schema as the columns to write to in BigQuery.
* `use_table_schema` and `use_topic_schema` cannot be enabled at the same time.
* @return value or {@code null} for none
*/
public java.lang.Boolean getUseTableSchema() {
return useTableSchema;
}
/**
* Optional. When true, use the BigQuery table's schema as the columns to write to in BigQuery.
* `use_table_schema` and `use_topic_schema` cannot be enabled at the same time.
* @param useTableSchema useTableSchema or {@code null} for none
*/
public BigQueryConfig setUseTableSchema(java.lang.Boolean useTableSchema) {
this.useTableSchema = useTableSchema;
return this;
}
/**
* Optional. When true, use the topic's schema as the columns to write to in BigQuery, if it
* exists. `use_topic_schema` and `use_table_schema` cannot be enabled at the same time.
* @return value or {@code null} for none
*/
public java.lang.Boolean getUseTopicSchema() {
return useTopicSchema;
}
/**
* Optional. When true, use the topic's schema as the columns to write to in BigQuery, if it
* exists. `use_topic_schema` and `use_table_schema` cannot be enabled at the same time.
* @param useTopicSchema useTopicSchema or {@code null} for none
*/
public BigQueryConfig setUseTopicSchema(java.lang.Boolean useTopicSchema) {
this.useTopicSchema = useTopicSchema;
return this;
}
/**
* Optional. When true, write the subscription name, message_id, publish_time, attributes, and
* ordering_key to additional columns in the table. The subscription name, message_id, and
* publish_time fields are put in their own columns while all other message properties (other than
* data) are written to a JSON object in the attributes column.
* @return value or {@code null} for none
*/
public java.lang.Boolean getWriteMetadata() {
return writeMetadata;
}
/**
* Optional. When true, write the subscription name, message_id, publish_time, attributes, and
* ordering_key to additional columns in the table. The subscription name, message_id, and
* publish_time fields are put in their own columns while all other message properties (other than
* data) are written to a JSON object in the attributes column.
* @param writeMetadata writeMetadata or {@code null} for none
*/
public BigQueryConfig setWriteMetadata(java.lang.Boolean writeMetadata) {
this.writeMetadata = writeMetadata;
return this;
}
@Override
public BigQueryConfig set(String fieldName, Object value) {
return (BigQueryConfig) super.set(fieldName, value);
}
@Override
public BigQueryConfig clone() {
return (BigQueryConfig) super.clone();
}
}