# Copyright 2015 Google Inc. # # 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. require 'date' require 'google/apis/core/base_service' require 'google/apis/core/json_representation' require 'google/apis/core/hashable' require 'google/apis/errors' module Google module Apis module BigquerydatatransferV1 # A request to determine whether the user has valid credentials. This method is # used to limit the number of OAuth popups in the user interface. The user id is # inferred from the API call context. If the data source has the Google+ # authorization type, this method returns false, as it cannot be determined # whether the credentials are already valid merely based on the user id. class CheckValidCredsRequest include Google::Apis::Core::Hashable def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) end end # A response indicating whether the credentials exist and are valid. class CheckValidCredsResponse include Google::Apis::Core::Hashable # If set to `true`, the credentials exist and are valid. # Corresponds to the JSON property `hasValidCreds` # @return [Boolean] attr_accessor :has_valid_creds alias_method :has_valid_creds?, :has_valid_creds def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @has_valid_creds = args[:has_valid_creds] if args.key?(:has_valid_creds) end end # Represents data source metadata. Metadata is sufficient to render UI and # request proper OAuth tokens. class DataSource include Google::Apis::Core::Hashable # Indicates the type of authorization. # Corresponds to the JSON property `authorizationType` # @return [String] attr_accessor :authorization_type # Data source client id which should be used to receive refresh token. # Corresponds to the JSON property `clientId` # @return [String] attr_accessor :client_id # Specifies whether the data source supports automatic data refresh for the past # few days, and how it's supported. For some data sources, data might not be # complete until a few days later, so it's useful to refresh data automatically. # Corresponds to the JSON property `dataRefreshType` # @return [String] attr_accessor :data_refresh_type # Data source id. # Corresponds to the JSON property `dataSourceId` # @return [String] attr_accessor :data_source_id # Default data refresh window on days. Only meaningful when `data_refresh_type` = # `SLIDING_WINDOW`. # Corresponds to the JSON property `defaultDataRefreshWindowDays` # @return [Fixnum] attr_accessor :default_data_refresh_window_days # Default data transfer schedule. Examples of valid schedules include: `1st,3rd # monday of month 15:30`, `every wed,fri of jan,jun 13:15`, and `first sunday of # quarter 00:00`. # Corresponds to the JSON property `defaultSchedule` # @return [String] attr_accessor :default_schedule # User friendly data source description string. # Corresponds to the JSON property `description` # @return [String] attr_accessor :description # User friendly data source name. # Corresponds to the JSON property `displayName` # @return [String] attr_accessor :display_name # Url for the help document for this data source. # Corresponds to the JSON property `helpUrl` # @return [String] attr_accessor :help_url # Disables backfilling and manual run scheduling for the data source. # Corresponds to the JSON property `manualRunsDisabled` # @return [Boolean] attr_accessor :manual_runs_disabled alias_method :manual_runs_disabled?, :manual_runs_disabled # The minimum interval for scheduler to schedule runs. # Corresponds to the JSON property `minimumScheduleInterval` # @return [String] attr_accessor :minimum_schedule_interval # Output only. Data source resource name. # Corresponds to the JSON property `name` # @return [String] attr_accessor :name # Data source parameters. # Corresponds to the JSON property `parameters` # @return [Array] attr_accessor :parameters # Api auth scopes for which refresh token needs to be obtained. These are scopes # needed by a data source to prepare data and ingest them into BigQuery, e.g., # https://www.googleapis.com/auth/bigquery # Corresponds to the JSON property `scopes` # @return [Array] attr_accessor :scopes # Specifies whether the data source supports a user defined schedule, or # operates on the default schedule. When set to `true`, user can override # default schedule. # Corresponds to the JSON property `supportsCustomSchedule` # @return [Boolean] attr_accessor :supports_custom_schedule alias_method :supports_custom_schedule?, :supports_custom_schedule # Deprecated. This field has no effect. # Corresponds to the JSON property `supportsMultipleTransfers` # @return [Boolean] attr_accessor :supports_multiple_transfers alias_method :supports_multiple_transfers?, :supports_multiple_transfers # Deprecated. This field has no effect. # Corresponds to the JSON property `transferType` # @return [String] attr_accessor :transfer_type # The number of seconds to wait for an update from the data source before the # Data Transfer Service marks the transfer as FAILED. # Corresponds to the JSON property `updateDeadlineSeconds` # @return [Fixnum] attr_accessor :update_deadline_seconds def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @authorization_type = args[:authorization_type] if args.key?(:authorization_type) @client_id = args[:client_id] if args.key?(:client_id) @data_refresh_type = args[:data_refresh_type] if args.key?(:data_refresh_type) @data_source_id = args[:data_source_id] if args.key?(:data_source_id) @default_data_refresh_window_days = args[:default_data_refresh_window_days] if args.key?(:default_data_refresh_window_days) @default_schedule = args[:default_schedule] if args.key?(:default_schedule) @description = args[:description] if args.key?(:description) @display_name = args[:display_name] if args.key?(:display_name) @help_url = args[:help_url] if args.key?(:help_url) @manual_runs_disabled = args[:manual_runs_disabled] if args.key?(:manual_runs_disabled) @minimum_schedule_interval = args[:minimum_schedule_interval] if args.key?(:minimum_schedule_interval) @name = args[:name] if args.key?(:name) @parameters = args[:parameters] if args.key?(:parameters) @scopes = args[:scopes] if args.key?(:scopes) @supports_custom_schedule = args[:supports_custom_schedule] if args.key?(:supports_custom_schedule) @supports_multiple_transfers = args[:supports_multiple_transfers] if args.key?(:supports_multiple_transfers) @transfer_type = args[:transfer_type] if args.key?(:transfer_type) @update_deadline_seconds = args[:update_deadline_seconds] if args.key?(:update_deadline_seconds) end end # Represents a data source parameter with validation rules, so that parameters # can be rendered in the UI. These parameters are given to us by supported data # sources, and include all needed information for rendering and validation. Thus, # whoever uses this api can decide to generate either generic ui, or custom # data source specific forms. class DataSourceParameter include Google::Apis::Core::Hashable # All possible values for the parameter. # Corresponds to the JSON property `allowedValues` # @return [Array] attr_accessor :allowed_values # If true, it should not be used in new transfers, and it should not be visible # to users. # Corresponds to the JSON property `deprecated` # @return [Boolean] attr_accessor :deprecated alias_method :deprecated?, :deprecated # Parameter description. # Corresponds to the JSON property `description` # @return [String] attr_accessor :description # Parameter display name in the user interface. # Corresponds to the JSON property `displayName` # @return [String] attr_accessor :display_name # Deprecated. This field has no effect. # Corresponds to the JSON property `fields` # @return [Array] attr_accessor :fields # Cannot be changed after initial creation. # Corresponds to the JSON property `immutable` # @return [Boolean] attr_accessor :immutable alias_method :immutable?, :immutable # For integer and double values specifies maxminum allowed value. # Corresponds to the JSON property `maxValue` # @return [Float] attr_accessor :max_value # For integer and double values specifies minimum allowed value. # Corresponds to the JSON property `minValue` # @return [Float] attr_accessor :min_value # Parameter identifier. # Corresponds to the JSON property `paramId` # @return [String] attr_accessor :param_id # Deprecated. This field has no effect. # Corresponds to the JSON property `recurse` # @return [Boolean] attr_accessor :recurse alias_method :recurse?, :recurse # Deprecated. This field has no effect. # Corresponds to the JSON property `repeated` # @return [Boolean] attr_accessor :repeated alias_method :repeated?, :repeated # Is parameter required. # Corresponds to the JSON property `required` # @return [Boolean] attr_accessor :required alias_method :required?, :required # Parameter type. # Corresponds to the JSON property `type` # @return [String] attr_accessor :type # Description of the requirements for this field, in case the user input does # not fulfill the regex pattern or min/max values. # Corresponds to the JSON property `validationDescription` # @return [String] attr_accessor :validation_description # URL to a help document to further explain the naming requirements. # Corresponds to the JSON property `validationHelpUrl` # @return [String] attr_accessor :validation_help_url # Regular expression which can be used for parameter validation. # Corresponds to the JSON property `validationRegex` # @return [String] attr_accessor :validation_regex def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @allowed_values = args[:allowed_values] if args.key?(:allowed_values) @deprecated = args[:deprecated] if args.key?(:deprecated) @description = args[:description] if args.key?(:description) @display_name = args[:display_name] if args.key?(:display_name) @fields = args[:fields] if args.key?(:fields) @immutable = args[:immutable] if args.key?(:immutable) @max_value = args[:max_value] if args.key?(:max_value) @min_value = args[:min_value] if args.key?(:min_value) @param_id = args[:param_id] if args.key?(:param_id) @recurse = args[:recurse] if args.key?(:recurse) @repeated = args[:repeated] if args.key?(:repeated) @required = args[:required] if args.key?(:required) @type = args[:type] if args.key?(:type) @validation_description = args[:validation_description] if args.key?(:validation_description) @validation_help_url = args[:validation_help_url] if args.key?(:validation_help_url) @validation_regex = args[:validation_regex] if args.key?(:validation_regex) end end # Represents preferences for sending email notifications for transfer run events. class EmailPreferences include Google::Apis::Core::Hashable # If true, email notifications will be sent on transfer run failures. # Corresponds to the JSON property `enableFailureEmail` # @return [Boolean] attr_accessor :enable_failure_email alias_method :enable_failure_email?, :enable_failure_email def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @enable_failure_email = args[:enable_failure_email] if args.key?(:enable_failure_email) end end # A generic empty message that you can re-use to avoid defining duplicated empty # messages in your APIs. A typical example is to use it as the request or the # response type of an API method. For instance: service Foo ` rpc Bar(google. # protobuf.Empty) returns (google.protobuf.Empty); ` The JSON representation for # `Empty` is empty JSON object ````. class Empty include Google::Apis::Core::Hashable def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) end end # Returns list of supported data sources and their metadata. class ListDataSourcesResponse include Google::Apis::Core::Hashable # List of supported data sources and their transfer settings. # Corresponds to the JSON property `dataSources` # @return [Array] attr_accessor :data_sources # Output only. The next-pagination token. For multiple-page list results, this # token can be used as the `ListDataSourcesRequest.page_token` to request the # next page of list results. # Corresponds to the JSON property `nextPageToken` # @return [String] attr_accessor :next_page_token def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @data_sources = args[:data_sources] if args.key?(:data_sources) @next_page_token = args[:next_page_token] if args.key?(:next_page_token) end end # The response message for Locations.ListLocations. class ListLocationsResponse include Google::Apis::Core::Hashable # A list of locations that matches the specified filter in the request. # Corresponds to the JSON property `locations` # @return [Array] attr_accessor :locations # The standard List next-page token. # Corresponds to the JSON property `nextPageToken` # @return [String] attr_accessor :next_page_token def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @locations = args[:locations] if args.key?(:locations) @next_page_token = args[:next_page_token] if args.key?(:next_page_token) end end # The returned list of pipelines in the project. class ListTransferConfigsResponse include Google::Apis::Core::Hashable # Output only. The next-pagination token. For multiple-page list results, this # token can be used as the `ListTransferConfigsRequest.page_token` to request # the next page of list results. # Corresponds to the JSON property `nextPageToken` # @return [String] attr_accessor :next_page_token # Output only. The stored pipeline transfer configurations. # Corresponds to the JSON property `transferConfigs` # @return [Array] attr_accessor :transfer_configs def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @next_page_token = args[:next_page_token] if args.key?(:next_page_token) @transfer_configs = args[:transfer_configs] if args.key?(:transfer_configs) end end # The returned list transfer run messages. class ListTransferLogsResponse include Google::Apis::Core::Hashable # Output only. The next-pagination token. For multiple-page list results, this # token can be used as the `GetTransferRunLogRequest.page_token` to request the # next page of list results. # Corresponds to the JSON property `nextPageToken` # @return [String] attr_accessor :next_page_token # Output only. The stored pipeline transfer messages. # Corresponds to the JSON property `transferMessages` # @return [Array] attr_accessor :transfer_messages def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @next_page_token = args[:next_page_token] if args.key?(:next_page_token) @transfer_messages = args[:transfer_messages] if args.key?(:transfer_messages) end end # The returned list of pipelines in the project. class ListTransferRunsResponse include Google::Apis::Core::Hashable # Output only. The next-pagination token. For multiple-page list results, this # token can be used as the `ListTransferRunsRequest.page_token` to request the # next page of list results. # Corresponds to the JSON property `nextPageToken` # @return [String] attr_accessor :next_page_token # Output only. The stored pipeline transfer runs. # Corresponds to the JSON property `transferRuns` # @return [Array] attr_accessor :transfer_runs def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @next_page_token = args[:next_page_token] if args.key?(:next_page_token) @transfer_runs = args[:transfer_runs] if args.key?(:transfer_runs) end end # A resource that represents Google Cloud Platform location. class Location include Google::Apis::Core::Hashable # The friendly name for this location, typically a nearby city name. For example, # "Tokyo". # Corresponds to the JSON property `displayName` # @return [String] attr_accessor :display_name # Cross-service attributes for the location. For example `"cloud.googleapis.com/ # region": "us-east1"` # Corresponds to the JSON property `labels` # @return [Hash] attr_accessor :labels # The canonical id for this location. For example: `"us-east1"`. # Corresponds to the JSON property `locationId` # @return [String] attr_accessor :location_id # Service-specific metadata. For example the available capacity at the given # location. # Corresponds to the JSON property `metadata` # @return [Hash] attr_accessor :metadata # Resource name for the location, which may vary between implementations. For # example: `"projects/example-project/locations/us-east1"` # Corresponds to the JSON property `name` # @return [String] attr_accessor :name def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @display_name = args[:display_name] if args.key?(:display_name) @labels = args[:labels] if args.key?(:labels) @location_id = args[:location_id] if args.key?(:location_id) @metadata = args[:metadata] if args.key?(:metadata) @name = args[:name] if args.key?(:name) end end # Options customizing the data transfer schedule. class ScheduleOptions include Google::Apis::Core::Hashable # If true, automatic scheduling of data transfer runs for this configuration # will be disabled. The runs can be started on ad-hoc basis using # StartManualTransferRuns API. When automatic scheduling is disabled, the # TransferConfig.schedule field will be ignored. # Corresponds to the JSON property `disableAutoScheduling` # @return [Boolean] attr_accessor :disable_auto_scheduling alias_method :disable_auto_scheduling?, :disable_auto_scheduling # Defines time to stop scheduling transfer runs. A transfer run cannot be # scheduled at or after the end time. The end time can be changed at any moment. # The time when a data transfer can be trigerred manually is not limited by this # option. # Corresponds to the JSON property `endTime` # @return [String] attr_accessor :end_time # Specifies time to start scheduling transfer runs. The first run will be # scheduled at or after the start time according to a recurrence pattern defined # in the schedule string. The start time can be changed at any moment. The time # when a data transfer can be trigerred manually is not limited by this option. # Corresponds to the JSON property `startTime` # @return [String] attr_accessor :start_time def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @disable_auto_scheduling = args[:disable_auto_scheduling] if args.key?(:disable_auto_scheduling) @end_time = args[:end_time] if args.key?(:end_time) @start_time = args[:start_time] if args.key?(:start_time) end end # A request to schedule transfer runs for a time range. class ScheduleTransferRunsRequest include Google::Apis::Core::Hashable # Required. End time of the range of transfer runs. For example, `"2017-05-30T00: # 00:00+00:00"`. # Corresponds to the JSON property `endTime` # @return [String] attr_accessor :end_time # Required. Start time of the range of transfer runs. For example, `"2017-05- # 25T00:00:00+00:00"`. # Corresponds to the JSON property `startTime` # @return [String] attr_accessor :start_time def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @end_time = args[:end_time] if args.key?(:end_time) @start_time = args[:start_time] if args.key?(:start_time) end end # A response to schedule transfer runs for a time range. class ScheduleTransferRunsResponse include Google::Apis::Core::Hashable # The transfer runs that were scheduled. # Corresponds to the JSON property `runs` # @return [Array] attr_accessor :runs def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @runs = args[:runs] if args.key?(:runs) end end # A request to start manual transfer runs. class StartManualTransferRunsRequest include Google::Apis::Core::Hashable # Specific run_time for a transfer run to be started. The requested_run_time # must not be in the future. # Corresponds to the JSON property `requestedRunTime` # @return [String] attr_accessor :requested_run_time # A specification for a time range, this will request transfer runs with # run_time between start_time (inclusive) and end_time (exclusive). # Corresponds to the JSON property `requestedTimeRange` # @return [Google::Apis::BigquerydatatransferV1::TimeRange] attr_accessor :requested_time_range def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @requested_run_time = args[:requested_run_time] if args.key?(:requested_run_time) @requested_time_range = args[:requested_time_range] if args.key?(:requested_time_range) end end # A response to start manual transfer runs. class StartManualTransferRunsResponse include Google::Apis::Core::Hashable # The transfer runs that were created. # Corresponds to the JSON property `runs` # @return [Array] attr_accessor :runs def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @runs = args[:runs] if args.key?(:runs) end end # The `Status` type defines a logical error model that is suitable for different # programming environments, including REST APIs and RPC APIs. It is used by [ # gRPC](https://github.com/grpc). Each `Status` message contains three pieces of # data: error code, error message, and error details. You can find out more # about this error model and how to work with it in the [API Design Guide](https: # //cloud.google.com/apis/design/errors). class Status include Google::Apis::Core::Hashable # The status code, which should be an enum value of google.rpc.Code. # Corresponds to the JSON property `code` # @return [Fixnum] attr_accessor :code # A list of messages that carry the error details. There is a common set of # message types for APIs to use. # Corresponds to the JSON property `details` # @return [Array>] attr_accessor :details # A developer-facing error message, which should be in English. Any user-facing # error message should be localized and sent in the google.rpc.Status.details # field, or localized by the client. # Corresponds to the JSON property `message` # @return [String] attr_accessor :message def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @code = args[:code] if args.key?(:code) @details = args[:details] if args.key?(:details) @message = args[:message] if args.key?(:message) end end # A specification for a time range, this will request transfer runs with # run_time between start_time (inclusive) and end_time (exclusive). class TimeRange include Google::Apis::Core::Hashable # End time of the range of transfer runs. For example, `"2017-05-30T00:00:00+00: # 00"`. The end_time must not be in the future. Creates transfer runs where # run_time is in the range between start_time (inclusive) and end_time ( # exclusive). # Corresponds to the JSON property `endTime` # @return [String] attr_accessor :end_time # Start time of the range of transfer runs. For example, `"2017-05-25T00:00:00+ # 00:00"`. The start_time must be strictly less than the end_time. Creates # transfer runs where run_time is in the range between start_time (inclusive) # and end_time (exclusive). # Corresponds to the JSON property `startTime` # @return [String] attr_accessor :start_time def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @end_time = args[:end_time] if args.key?(:end_time) @start_time = args[:start_time] if args.key?(:start_time) end end # Represents a data transfer configuration. A transfer configuration contains # all metadata needed to perform a data transfer. For example, ` # destination_dataset_id` specifies where data should be stored. When a new # transfer configuration is created, the specified `destination_dataset_id` is # created when needed and shared with the appropriate data source service # account. class TransferConfig include Google::Apis::Core::Hashable # The number of days to look back to automatically refresh the data. For example, # if `data_refresh_window_days = 10`, then every day BigQuery reingests data # for [today-10, today-1], rather than ingesting data for just [today-1]. Only # valid if the data source supports the feature. Set the value to 0 to use the # default value. # Corresponds to the JSON property `dataRefreshWindowDays` # @return [Fixnum] attr_accessor :data_refresh_window_days # Data source id. Cannot be changed once data transfer is created. # Corresponds to the JSON property `dataSourceId` # @return [String] attr_accessor :data_source_id # Output only. Region in which BigQuery dataset is located. # Corresponds to the JSON property `datasetRegion` # @return [String] attr_accessor :dataset_region # The BigQuery target dataset id. # Corresponds to the JSON property `destinationDatasetId` # @return [String] attr_accessor :destination_dataset_id # Is this config disabled. When set to true, no runs are scheduled for a given # transfer. # Corresponds to the JSON property `disabled` # @return [Boolean] attr_accessor :disabled alias_method :disabled?, :disabled # User specified display name for the data transfer. # Corresponds to the JSON property `displayName` # @return [String] attr_accessor :display_name # Represents preferences for sending email notifications for transfer run events. # Corresponds to the JSON property `emailPreferences` # @return [Google::Apis::BigquerydatatransferV1::EmailPreferences] attr_accessor :email_preferences # The resource name of the transfer config. Transfer config names have the form # of `projects/`project_id`/locations/`region`/transferConfigs/`config_id``. The # name is automatically generated based on the config_id specified in # CreateTransferConfigRequest along with project_id and region. If config_id is # not provided, usually a uuid, even though it is not guaranteed or required, # will be generated for config_id. # Corresponds to the JSON property `name` # @return [String] attr_accessor :name # Output only. Next time when data transfer will run. # Corresponds to the JSON property `nextRunTime` # @return [String] attr_accessor :next_run_time # Pub/Sub topic where notifications will be sent after transfer runs associated # with this transfer config finish. # Corresponds to the JSON property `notificationPubsubTopic` # @return [String] attr_accessor :notification_pubsub_topic # Data transfer specific parameters. # Corresponds to the JSON property `params` # @return [Hash] attr_accessor :params # Data transfer schedule. If the data source does not support a custom schedule, # this should be empty. If it is empty, the default value for the data source # will be used. The specified times are in UTC. Examples of valid format: `1st, # 3rd monday of month 15:30`, `every wed,fri of jan,jun 13:15`, and `first # sunday of quarter 00:00`. See more explanation about the format here: https:// # cloud.google.com/appengine/docs/flexible/python/scheduling-jobs-with-cron-yaml# # the_schedule_format NOTE: the granularity should be at least 8 hours, or less # frequent. # Corresponds to the JSON property `schedule` # @return [String] attr_accessor :schedule # Options customizing the data transfer schedule. # Corresponds to the JSON property `scheduleOptions` # @return [Google::Apis::BigquerydatatransferV1::ScheduleOptions] attr_accessor :schedule_options # Output only. State of the most recently updated transfer run. # Corresponds to the JSON property `state` # @return [String] attr_accessor :state # Output only. Data transfer modification time. Ignored by server on input. # Corresponds to the JSON property `updateTime` # @return [String] attr_accessor :update_time # Deprecated. Unique ID of the user on whose behalf transfer is done. # Corresponds to the JSON property `userId` # @return [Fixnum] attr_accessor :user_id def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @data_refresh_window_days = args[:data_refresh_window_days] if args.key?(:data_refresh_window_days) @data_source_id = args[:data_source_id] if args.key?(:data_source_id) @dataset_region = args[:dataset_region] if args.key?(:dataset_region) @destination_dataset_id = args[:destination_dataset_id] if args.key?(:destination_dataset_id) @disabled = args[:disabled] if args.key?(:disabled) @display_name = args[:display_name] if args.key?(:display_name) @email_preferences = args[:email_preferences] if args.key?(:email_preferences) @name = args[:name] if args.key?(:name) @next_run_time = args[:next_run_time] if args.key?(:next_run_time) @notification_pubsub_topic = args[:notification_pubsub_topic] if args.key?(:notification_pubsub_topic) @params = args[:params] if args.key?(:params) @schedule = args[:schedule] if args.key?(:schedule) @schedule_options = args[:schedule_options] if args.key?(:schedule_options) @state = args[:state] if args.key?(:state) @update_time = args[:update_time] if args.key?(:update_time) @user_id = args[:user_id] if args.key?(:user_id) end end # Represents a user facing message for a particular data transfer run. class TransferMessage include Google::Apis::Core::Hashable # Message text. # Corresponds to the JSON property `messageText` # @return [String] attr_accessor :message_text # Time when message was logged. # Corresponds to the JSON property `messageTime` # @return [String] attr_accessor :message_time # Message severity. # Corresponds to the JSON property `severity` # @return [String] attr_accessor :severity def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @message_text = args[:message_text] if args.key?(:message_text) @message_time = args[:message_time] if args.key?(:message_time) @severity = args[:severity] if args.key?(:severity) end end # Represents a data transfer run. class TransferRun include Google::Apis::Core::Hashable # Output only. Data source id. # Corresponds to the JSON property `dataSourceId` # @return [String] attr_accessor :data_source_id # Output only. The BigQuery target dataset id. # Corresponds to the JSON property `destinationDatasetId` # @return [String] attr_accessor :destination_dataset_id # Represents preferences for sending email notifications for transfer run events. # Corresponds to the JSON property `emailPreferences` # @return [Google::Apis::BigquerydatatransferV1::EmailPreferences] attr_accessor :email_preferences # Output only. Time when transfer run ended. Parameter ignored by server for # input requests. # Corresponds to the JSON property `endTime` # @return [String] attr_accessor :end_time # The `Status` type defines a logical error model that is suitable for different # programming environments, including REST APIs and RPC APIs. It is used by [ # gRPC](https://github.com/grpc). Each `Status` message contains three pieces of # data: error code, error message, and error details. You can find out more # about this error model and how to work with it in the [API Design Guide](https: # //cloud.google.com/apis/design/errors). # Corresponds to the JSON property `errorStatus` # @return [Google::Apis::BigquerydatatransferV1::Status] attr_accessor :error_status # The resource name of the transfer run. Transfer run names have the form ` # projects/`project_id`/locations/`location`/transferConfigs/`config_id`/runs/` # run_id``. The name is ignored when creating a transfer run. # Corresponds to the JSON property `name` # @return [String] attr_accessor :name # Output only. Pub/Sub topic where a notification will be sent after this # transfer run finishes # Corresponds to the JSON property `notificationPubsubTopic` # @return [String] attr_accessor :notification_pubsub_topic # Output only. Data transfer specific parameters. # Corresponds to the JSON property `params` # @return [Hash] attr_accessor :params # For batch transfer runs, specifies the date and time of the data should be # ingested. # Corresponds to the JSON property `runTime` # @return [String] attr_accessor :run_time # Output only. Describes the schedule of this transfer run if it was created as # part of a regular schedule. For batch transfer runs that are scheduled # manually, this is empty. NOTE: the system might choose to delay the schedule # depending on the current load, so `schedule_time` doesn't always match this. # Corresponds to the JSON property `schedule` # @return [String] attr_accessor :schedule # Minimum time after which a transfer run can be started. # Corresponds to the JSON property `scheduleTime` # @return [String] attr_accessor :schedule_time # Output only. Time when transfer run was started. Parameter ignored by server # for input requests. # Corresponds to the JSON property `startTime` # @return [String] attr_accessor :start_time # Data transfer run state. Ignored for input requests. # Corresponds to the JSON property `state` # @return [String] attr_accessor :state # Output only. Last time the data transfer run state was updated. # Corresponds to the JSON property `updateTime` # @return [String] attr_accessor :update_time # Deprecated. Unique ID of the user on whose behalf transfer is done. # Corresponds to the JSON property `userId` # @return [Fixnum] attr_accessor :user_id def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @data_source_id = args[:data_source_id] if args.key?(:data_source_id) @destination_dataset_id = args[:destination_dataset_id] if args.key?(:destination_dataset_id) @email_preferences = args[:email_preferences] if args.key?(:email_preferences) @end_time = args[:end_time] if args.key?(:end_time) @error_status = args[:error_status] if args.key?(:error_status) @name = args[:name] if args.key?(:name) @notification_pubsub_topic = args[:notification_pubsub_topic] if args.key?(:notification_pubsub_topic) @params = args[:params] if args.key?(:params) @run_time = args[:run_time] if args.key?(:run_time) @schedule = args[:schedule] if args.key?(:schedule) @schedule_time = args[:schedule_time] if args.key?(:schedule_time) @start_time = args[:start_time] if args.key?(:start_time) @state = args[:state] if args.key?(:state) @update_time = args[:update_time] if args.key?(:update_time) @user_id = args[:user_id] if args.key?(:user_id) end end end end end