google-api-client 0.14.5 → 0.15.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (84) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +34 -0
  3. data/generated/google/apis/adexchangebuyer2_v2beta1.rb +1 -1
  4. data/generated/google/apis/adexchangebuyer2_v2beta1/classes.rb +11 -0
  5. data/generated/google/apis/adexchangebuyer2_v2beta1/representations.rb +1 -0
  6. data/generated/google/apis/androidenterprise_v1.rb +1 -1
  7. data/generated/google/apis/androidenterprise_v1/classes.rb +63 -0
  8. data/generated/google/apis/androidenterprise_v1/representations.rb +18 -0
  9. data/generated/google/apis/bigquery_v2.rb +1 -1
  10. data/generated/google/apis/bigquery_v2/classes.rb +14 -0
  11. data/generated/google/apis/bigquery_v2/representations.rb +2 -0
  12. data/generated/google/apis/bigquerydatatransfer_v1.rb +1 -1
  13. data/generated/google/apis/bigquerydatatransfer_v1/classes.rb +28 -50
  14. data/generated/google/apis/classroom_v1.rb +1 -1
  15. data/generated/google/apis/cloudtasks_v2beta2.rb +1 -1
  16. data/generated/google/apis/cloudtasks_v2beta2/classes.rb +116 -111
  17. data/generated/google/apis/cloudtasks_v2beta2/representations.rb +17 -17
  18. data/generated/google/apis/cloudtasks_v2beta2/service.rb +8 -0
  19. data/generated/google/apis/cloudtrace_v2.rb +1 -1
  20. data/generated/google/apis/cloudtrace_v2/classes.rb +51 -58
  21. data/generated/google/apis/cloudtrace_v2/representations.rb +14 -15
  22. data/generated/google/apis/compute_alpha.rb +1 -1
  23. data/generated/google/apis/compute_alpha/classes.rb +157 -17
  24. data/generated/google/apis/compute_alpha/representations.rb +52 -0
  25. data/generated/google/apis/compute_alpha/service.rb +57 -0
  26. data/generated/google/apis/compute_beta.rb +1 -1
  27. data/generated/google/apis/compute_beta/classes.rb +46 -17
  28. data/generated/google/apis/compute_beta/representations.rb +2 -0
  29. data/generated/google/apis/compute_beta/service.rb +10 -1
  30. data/generated/google/apis/compute_v1.rb +1 -1
  31. data/generated/google/apis/compute_v1/classes.rb +4767 -337
  32. data/generated/google/apis/compute_v1/representations.rb +2044 -27
  33. data/generated/google/apis/compute_v1/service.rb +111 -0
  34. data/generated/google/apis/container_v1.rb +1 -1
  35. data/generated/google/apis/container_v1/classes.rb +1 -1
  36. data/generated/google/apis/container_v1beta1.rb +1 -1
  37. data/generated/google/apis/container_v1beta1/classes.rb +34 -1
  38. data/generated/google/apis/container_v1beta1/representations.rb +17 -0
  39. data/generated/google/apis/dataflow_v1b3.rb +1 -1
  40. data/generated/google/apis/dataflow_v1b3/classes.rb +0 -2
  41. data/generated/google/apis/dataproc_v1beta2.rb +1 -1
  42. data/generated/google/apis/dataproc_v1beta2/service.rb +5 -1
  43. data/generated/google/apis/{ml_v1beta1.rb → firestore_v1beta1.rb} +11 -8
  44. data/generated/google/apis/firestore_v1beta1/classes.rb +2115 -0
  45. data/generated/google/apis/firestore_v1beta1/representations.rb +899 -0
  46. data/generated/google/apis/firestore_v1beta1/service.rb +734 -0
  47. data/generated/google/apis/identitytoolkit_v3.rb +1 -1
  48. data/generated/google/apis/identitytoolkit_v3/classes.rb +93 -0
  49. data/generated/google/apis/identitytoolkit_v3/representations.rb +35 -0
  50. data/generated/google/apis/identitytoolkit_v3/service.rb +35 -0
  51. data/generated/google/apis/logging_v2.rb +1 -1
  52. data/generated/google/apis/logging_v2/classes.rb +4 -9
  53. data/generated/google/apis/logging_v2beta1.rb +1 -1
  54. data/generated/google/apis/logging_v2beta1/classes.rb +4 -9
  55. data/generated/google/apis/ml_v1.rb +1 -1
  56. data/generated/google/apis/ml_v1/service.rb +102 -0
  57. data/generated/google/apis/monitoring_v3.rb +1 -1
  58. data/generated/google/apis/monitoring_v3/classes.rb +4 -9
  59. data/generated/google/apis/proximitybeacon_v1beta1.rb +1 -1
  60. data/generated/google/apis/proximitybeacon_v1beta1/classes.rb +17 -0
  61. data/generated/google/apis/proximitybeacon_v1beta1/representations.rb +1 -0
  62. data/generated/google/apis/servicecontrol_v1.rb +1 -1
  63. data/generated/google/apis/servicecontrol_v1/classes.rb +5 -11
  64. data/generated/google/apis/servicecontrol_v1/representations.rb +1 -1
  65. data/generated/google/apis/servicemanagement_v1.rb +1 -1
  66. data/generated/google/apis/serviceuser_v1.rb +1 -1
  67. data/generated/google/apis/sheets_v4.rb +1 -1
  68. data/generated/google/apis/sheets_v4/classes.rb +81 -26
  69. data/generated/google/apis/sheets_v4/representations.rb +23 -0
  70. data/generated/google/apis/sheets_v4/service.rb +5 -5
  71. data/generated/google/apis/streetviewpublish_v1.rb +1 -1
  72. data/generated/google/apis/streetviewpublish_v1/classes.rb +97 -0
  73. data/generated/google/apis/streetviewpublish_v1/representations.rb +18 -0
  74. data/generated/google/apis/toolresults_v1beta3.rb +1 -1
  75. data/generated/google/apis/toolresults_v1beta3/classes.rb +121 -0
  76. data/generated/google/apis/toolresults_v1beta3/representations.rb +41 -0
  77. data/generated/google/apis/vision_v1.rb +1 -1
  78. data/generated/google/apis/vision_v1/classes.rb +4 -2
  79. data/generated/google/apis/youtube_partner_v1.rb +1 -1
  80. data/lib/google/apis/version.rb +1 -1
  81. metadata +6 -6
  82. data/generated/google/apis/ml_v1beta1/classes.rb +0 -2396
  83. data/generated/google/apis/ml_v1beta1/representations.rb +0 -755
  84. data/generated/google/apis/ml_v1beta1/service.rb +0 -975
@@ -7627,6 +7627,64 @@ module Google
7627
7627
  execute_or_queue_command(command, &block)
7628
7628
  end
7629
7629
 
7630
+ # Changes the minimum CPU platform that this instance should use. This method
7631
+ # can only be called on a stopped instance. For more information, read
7632
+ # Specifying a Minimum CPU Platform.
7633
+ # @param [String] project
7634
+ # Project ID for this request.
7635
+ # @param [String] zone
7636
+ # The name of the zone for this request.
7637
+ # @param [String] instance
7638
+ # Name of the instance scoping this request.
7639
+ # @param [Google::Apis::ComputeV1::InstancesSetMinCpuPlatformRequest] instances_set_min_cpu_platform_request_object
7640
+ # @param [String] request_id
7641
+ # An optional request ID to identify requests. Specify a unique request ID so
7642
+ # that if you must retry your request, the server will know to ignore the
7643
+ # request if it has already been completed.
7644
+ # For example, consider a situation where you make an initial request and the
7645
+ # request times out. If you make the request again with the same request ID, the
7646
+ # server can check if original operation with the same request ID was received,
7647
+ # and if so, will ignore the second request. This prevents clients from
7648
+ # accidentally creating duplicate commitments.
7649
+ # The request ID must be a valid UUID with the exception that zero UUID is not
7650
+ # supported (00000000-0000-0000-0000-000000000000).
7651
+ # @param [String] fields
7652
+ # Selector specifying which fields to include in a partial response.
7653
+ # @param [String] quota_user
7654
+ # Available to use for quota purposes for server-side applications. Can be any
7655
+ # arbitrary string assigned to a user, but should not exceed 40 characters.
7656
+ # Overrides userIp if both are provided.
7657
+ # @param [String] user_ip
7658
+ # IP address of the site where the request originates. Use this if you want to
7659
+ # enforce per-user limits.
7660
+ # @param [Google::Apis::RequestOptions] options
7661
+ # Request-specific options
7662
+ #
7663
+ # @yield [result, err] Result & error if block supplied
7664
+ # @yieldparam result [Google::Apis::ComputeV1::Operation] parsed result object
7665
+ # @yieldparam err [StandardError] error object if request failed
7666
+ #
7667
+ # @return [Google::Apis::ComputeV1::Operation]
7668
+ #
7669
+ # @raise [Google::Apis::ServerError] An error occurred on the server and the request can be retried
7670
+ # @raise [Google::Apis::ClientError] The request is invalid and should not be retried without modification
7671
+ # @raise [Google::Apis::AuthorizationError] Authorization is required
7672
+ def set_instance_min_cpu_platform(project, zone, instance, instances_set_min_cpu_platform_request_object = nil, request_id: nil, fields: nil, quota_user: nil, user_ip: nil, options: nil, &block)
7673
+ command = make_simple_command(:post, '{project}/zones/{zone}/instances/{instance}/setMinCpuPlatform', options)
7674
+ command.request_representation = Google::Apis::ComputeV1::InstancesSetMinCpuPlatformRequest::Representation
7675
+ command.request_object = instances_set_min_cpu_platform_request_object
7676
+ command.response_representation = Google::Apis::ComputeV1::Operation::Representation
7677
+ command.response_class = Google::Apis::ComputeV1::Operation
7678
+ command.params['project'] = project unless project.nil?
7679
+ command.params['zone'] = zone unless zone.nil?
7680
+ command.params['instance'] = instance unless instance.nil?
7681
+ command.query['requestId'] = request_id unless request_id.nil?
7682
+ command.query['fields'] = fields unless fields.nil?
7683
+ command.query['quotaUser'] = quota_user unless quota_user.nil?
7684
+ command.query['userIp'] = user_ip unless user_ip.nil?
7685
+ execute_or_queue_command(command, &block)
7686
+ end
7687
+
7630
7688
  # Sets an instance's scheduling options.
7631
7689
  # @param [String] project
7632
7690
  # Project ID for this request.
@@ -8469,6 +8527,59 @@ module Google
8469
8527
  execute_or_queue_command(command, &block)
8470
8528
  end
8471
8529
 
8530
+ # Patches the specified network with the data included in the request.
8531
+ # @param [String] project
8532
+ # Project ID for this request.
8533
+ # @param [String] network
8534
+ # Name of the network to update.
8535
+ # @param [Google::Apis::ComputeV1::Network] network_object
8536
+ # @param [String] request_id
8537
+ # An optional request ID to identify requests. Specify a unique request ID so
8538
+ # that if you must retry your request, the server will know to ignore the
8539
+ # request if it has already been completed.
8540
+ # For example, consider a situation where you make an initial request and the
8541
+ # request times out. If you make the request again with the same request ID, the
8542
+ # server can check if original operation with the same request ID was received,
8543
+ # and if so, will ignore the second request. This prevents clients from
8544
+ # accidentally creating duplicate commitments.
8545
+ # The request ID must be a valid UUID with the exception that zero UUID is not
8546
+ # supported (00000000-0000-0000-0000-000000000000).
8547
+ # @param [String] fields
8548
+ # Selector specifying which fields to include in a partial response.
8549
+ # @param [String] quota_user
8550
+ # Available to use for quota purposes for server-side applications. Can be any
8551
+ # arbitrary string assigned to a user, but should not exceed 40 characters.
8552
+ # Overrides userIp if both are provided.
8553
+ # @param [String] user_ip
8554
+ # IP address of the site where the request originates. Use this if you want to
8555
+ # enforce per-user limits.
8556
+ # @param [Google::Apis::RequestOptions] options
8557
+ # Request-specific options
8558
+ #
8559
+ # @yield [result, err] Result & error if block supplied
8560
+ # @yieldparam result [Google::Apis::ComputeV1::Operation] parsed result object
8561
+ # @yieldparam err [StandardError] error object if request failed
8562
+ #
8563
+ # @return [Google::Apis::ComputeV1::Operation]
8564
+ #
8565
+ # @raise [Google::Apis::ServerError] An error occurred on the server and the request can be retried
8566
+ # @raise [Google::Apis::ClientError] The request is invalid and should not be retried without modification
8567
+ # @raise [Google::Apis::AuthorizationError] Authorization is required
8568
+ def patch_network(project, network, network_object = nil, request_id: nil, fields: nil, quota_user: nil, user_ip: nil, options: nil, &block)
8569
+ command = make_simple_command(:patch, '{project}/global/networks/{network}', options)
8570
+ command.request_representation = Google::Apis::ComputeV1::Network::Representation
8571
+ command.request_object = network_object
8572
+ command.response_representation = Google::Apis::ComputeV1::Operation::Representation
8573
+ command.response_class = Google::Apis::ComputeV1::Operation
8574
+ command.params['project'] = project unless project.nil?
8575
+ command.params['network'] = network unless network.nil?
8576
+ command.query['requestId'] = request_id unless request_id.nil?
8577
+ command.query['fields'] = fields unless fields.nil?
8578
+ command.query['quotaUser'] = quota_user unless quota_user.nil?
8579
+ command.query['userIp'] = user_ip unless user_ip.nil?
8580
+ execute_or_queue_command(command, &block)
8581
+ end
8582
+
8472
8583
  # Removes a peering from the specified network.
8473
8584
  # @param [String] project
8474
8585
  # Project ID for this request.
@@ -26,7 +26,7 @@ module Google
26
26
  # @see https://cloud.google.com/container-engine/
27
27
  module ContainerV1
28
28
  VERSION = 'V1'
29
- REVISION = '20170915'
29
+ REVISION = '20170922'
30
30
 
31
31
  # View and manage your data across Google Cloud Platform services
32
32
  AUTH_CLOUD_PLATFORM = 'https://www.googleapis.com/auth/cloud-platform'
@@ -1705,7 +1705,7 @@ module Google
1705
1705
  class SetMasterAuthRequest
1706
1706
  include Google::Apis::Core::Hashable
1707
1707
 
1708
- # The exact form of action to be taken on the master auth
1708
+ # The exact form of action to be taken on the master auth.
1709
1709
  # Corresponds to the JSON property `action`
1710
1710
  # @return [String]
1711
1711
  attr_accessor :action
@@ -26,7 +26,7 @@ module Google
26
26
  # @see https://cloud.google.com/container-engine/
27
27
  module ContainerV1beta1
28
28
  VERSION = 'V1beta1'
29
- REVISION = '20170915'
29
+ REVISION = '20170922'
30
30
 
31
31
  # View and manage your data across Google Cloud Platform services
32
32
  AUTH_CLOUD_PLATFORM = 'https://www.googleapis.com/auth/cloud-platform'
@@ -407,6 +407,11 @@ module Google
407
407
  # @return [Array<Google::Apis::ContainerV1beta1::NodePool>]
408
408
  attr_accessor :node_pools
409
409
 
410
+ # Configuration for the PodSecurityPolicy feature.
411
+ # Corresponds to the JSON property `podSecurityPolicyConfig`
412
+ # @return [Google::Apis::ContainerV1beta1::PodSecurityPolicyConfig]
413
+ attr_accessor :pod_security_policy_config
414
+
410
415
  # [Output only] Server-defined URL for the resource.
411
416
  # Corresponds to the JSON property `selfLink`
412
417
  # @return [String]
@@ -480,6 +485,7 @@ module Google
480
485
  @node_config = args[:node_config] if args.key?(:node_config)
481
486
  @node_ipv4_cidr_size = args[:node_ipv4_cidr_size] if args.key?(:node_ipv4_cidr_size)
482
487
  @node_pools = args[:node_pools] if args.key?(:node_pools)
488
+ @pod_security_policy_config = args[:pod_security_policy_config] if args.key?(:pod_security_policy_config)
483
489
  @self_link = args[:self_link] if args.key?(:self_link)
484
490
  @services_ipv4_cidr = args[:services_ipv4_cidr] if args.key?(:services_ipv4_cidr)
485
491
  @status = args[:status] if args.key?(:status)
@@ -561,6 +567,11 @@ module Google
561
567
  # @return [String]
562
568
  attr_accessor :desired_node_version
563
569
 
570
+ # Configuration for the PodSecurityPolicy feature.
571
+ # Corresponds to the JSON property `desiredPodSecurityPolicyConfig`
572
+ # @return [Google::Apis::ContainerV1beta1::PodSecurityPolicyConfig]
573
+ attr_accessor :desired_pod_security_policy_config
574
+
564
575
  def initialize(**args)
565
576
  update!(**args)
566
577
  end
@@ -576,6 +587,7 @@ module Google
576
587
  @desired_node_pool_autoscaling = args[:desired_node_pool_autoscaling] if args.key?(:desired_node_pool_autoscaling)
577
588
  @desired_node_pool_id = args[:desired_node_pool_id] if args.key?(:desired_node_pool_id)
578
589
  @desired_node_version = args[:desired_node_version] if args.key?(:desired_node_version)
590
+ @desired_pod_security_policy_config = args[:desired_pod_security_policy_config] if args.key?(:desired_pod_security_policy_config)
579
591
  end
580
592
  end
581
593
 
@@ -1629,6 +1641,27 @@ module Google
1629
1641
  end
1630
1642
  end
1631
1643
 
1644
+ # Configuration for the PodSecurityPolicy feature.
1645
+ class PodSecurityPolicyConfig
1646
+ include Google::Apis::Core::Hashable
1647
+
1648
+ # Enable the PodSecurityPolicy controller for this cluster. If enabled, pods
1649
+ # must be valid under a PodSecurityPolicy to be created.
1650
+ # Corresponds to the JSON property `enabled`
1651
+ # @return [Boolean]
1652
+ attr_accessor :enabled
1653
+ alias_method :enabled?, :enabled
1654
+
1655
+ def initialize(**args)
1656
+ update!(**args)
1657
+ end
1658
+
1659
+ # Update properties of this object
1660
+ def update!(**args)
1661
+ @enabled = args[:enabled] if args.key?(:enabled)
1662
+ end
1663
+ end
1664
+
1632
1665
  # RollbackNodePoolUpgradeRequest rollbacks the previously Aborted or Failed
1633
1666
  # NodePool upgrade. This will be an no-op if the last upgrade successfully
1634
1667
  # completed.
@@ -1893,7 +1926,7 @@ module Google
1893
1926
  class SetMasterAuthRequest
1894
1927
  include Google::Apis::Core::Hashable
1895
1928
 
1896
- # The exact form of action to be taken on the master auth
1929
+ # The exact form of action to be taken on the master auth.
1897
1930
  # Corresponds to the JSON property `action`
1898
1931
  # @return [String]
1899
1932
  attr_accessor :action
@@ -214,6 +214,12 @@ module Google
214
214
  include Google::Apis::Core::JsonObjectSupport
215
215
  end
216
216
 
217
+ class PodSecurityPolicyConfig
218
+ class Representation < Google::Apis::Core::JsonRepresentation; end
219
+
220
+ include Google::Apis::Core::JsonObjectSupport
221
+ end
222
+
217
223
  class RollbackNodePoolUpgradeRequest
218
224
  class Representation < Google::Apis::Core::JsonRepresentation; end
219
225
 
@@ -367,6 +373,8 @@ module Google
367
373
  property :node_ipv4_cidr_size, as: 'nodeIpv4CidrSize'
368
374
  collection :node_pools, as: 'nodePools', class: Google::Apis::ContainerV1beta1::NodePool, decorator: Google::Apis::ContainerV1beta1::NodePool::Representation
369
375
 
376
+ property :pod_security_policy_config, as: 'podSecurityPolicyConfig', class: Google::Apis::ContainerV1beta1::PodSecurityPolicyConfig, decorator: Google::Apis::ContainerV1beta1::PodSecurityPolicyConfig::Representation
377
+
370
378
  property :self_link, as: 'selfLink'
371
379
  property :services_ipv4_cidr, as: 'servicesIpv4Cidr'
372
380
  property :status, as: 'status'
@@ -391,6 +399,8 @@ module Google
391
399
 
392
400
  property :desired_node_pool_id, as: 'desiredNodePoolId'
393
401
  property :desired_node_version, as: 'desiredNodeVersion'
402
+ property :desired_pod_security_policy_config, as: 'desiredPodSecurityPolicyConfig', class: Google::Apis::ContainerV1beta1::PodSecurityPolicyConfig, decorator: Google::Apis::ContainerV1beta1::PodSecurityPolicyConfig::Representation
403
+
394
404
  end
395
405
  end
396
406
 
@@ -643,6 +653,13 @@ module Google
643
653
  end
644
654
  end
645
655
 
656
+ class PodSecurityPolicyConfig
657
+ # @private
658
+ class Representation < Google::Apis::Core::JsonRepresentation
659
+ property :enabled, as: 'enabled'
660
+ end
661
+ end
662
+
646
663
  class RollbackNodePoolUpgradeRequest
647
664
  # @private
648
665
  class Representation < Google::Apis::Core::JsonRepresentation
@@ -25,7 +25,7 @@ module Google
25
25
  # @see https://cloud.google.com/dataflow
26
26
  module DataflowV1b3
27
27
  VERSION = 'V1b3'
28
- REVISION = '20170918'
28
+ REVISION = '20170930'
29
29
 
30
30
  # View and manage your data across Google Cloud Platform services
31
31
  AUTH_CLOUD_PLATFORM = 'https://www.googleapis.com/auth/cloud-platform'
@@ -5210,8 +5210,6 @@ module Google
5210
5210
  # "UNKNOWN": shutdown reason is unknown.
5211
5211
  # "PREEMPTION": shutdown reason is preemption.
5212
5212
  # Other possible reasons may be added in the future.
5213
- # Note that this must match the names of the enum specified in
5214
- # google3/cloud/dataflow/router/protos/cloud_worker_messages_service.proto.
5215
5213
  # Corresponds to the JSON property `reason`
5216
5214
  # @return [String]
5217
5215
  attr_accessor :reason
@@ -25,7 +25,7 @@ module Google
25
25
  # @see https://cloud.google.com/dataproc/
26
26
  module DataprocV1beta2
27
27
  VERSION = 'V1beta2'
28
- REVISION = '20170926'
28
+ REVISION = '20171003'
29
29
 
30
30
  # View and manage your data across Google Cloud Platform services
31
31
  AUTH_CLOUD_PLATFORM = 'https://www.googleapis.com/auth/cloud-platform'
@@ -318,6 +318,9 @@ module Google
318
318
  # Required. The Cloud Dataproc region in which to handle the request.
319
319
  # @param [String] cluster_name
320
320
  # Required. The cluster name.
321
+ # @param [String] cluster_uuid
322
+ # Optional. Specifying the cluster_uuid means the RPC should fail (with error
323
+ # NOT_FOUND) if cluster with specified UUID does not exist.
321
324
  # @param [String] fields
322
325
  # Selector specifying which fields to include in a partial response.
323
326
  # @param [String] quota_user
@@ -335,13 +338,14 @@ module Google
335
338
  # @raise [Google::Apis::ServerError] An error occurred on the server and the request can be retried
336
339
  # @raise [Google::Apis::ClientError] The request is invalid and should not be retried without modification
337
340
  # @raise [Google::Apis::AuthorizationError] Authorization is required
338
- def delete_project_region_cluster(project_id, region, cluster_name, fields: nil, quota_user: nil, options: nil, &block)
341
+ def delete_project_region_cluster(project_id, region, cluster_name, cluster_uuid: nil, fields: nil, quota_user: nil, options: nil, &block)
339
342
  command = make_simple_command(:delete, 'v1beta2/projects/{projectId}/regions/{region}/clusters/{clusterName}', options)
340
343
  command.response_representation = Google::Apis::DataprocV1beta2::Operation::Representation
341
344
  command.response_class = Google::Apis::DataprocV1beta2::Operation
342
345
  command.params['projectId'] = project_id unless project_id.nil?
343
346
  command.params['region'] = region unless region.nil?
344
347
  command.params['clusterName'] = cluster_name unless cluster_name.nil?
348
+ command.query['clusterUuid'] = cluster_uuid unless cluster_uuid.nil?
345
349
  command.query['fields'] = fields unless fields.nil?
346
350
  command.query['quotaUser'] = quota_user unless quota_user.nil?
347
351
  execute_or_queue_command(command, &block)
@@ -12,23 +12,26 @@
12
12
  # See the License for the specific language governing permissions and
13
13
  # limitations under the License.
14
14
 
15
- require 'google/apis/ml_v1beta1/service.rb'
16
- require 'google/apis/ml_v1beta1/classes.rb'
17
- require 'google/apis/ml_v1beta1/representations.rb'
15
+ require 'google/apis/firestore_v1beta1/service.rb'
16
+ require 'google/apis/firestore_v1beta1/classes.rb'
17
+ require 'google/apis/firestore_v1beta1/representations.rb'
18
18
 
19
19
  module Google
20
20
  module Apis
21
- # Google Cloud Machine Learning Engine
21
+ # Google Cloud Firestore API
22
22
  #
23
- # An API to enable creating and using machine learning models.
23
+ #
24
24
  #
25
- # @see https://cloud.google.com/ml/
26
- module MlV1beta1
25
+ # @see https://cloud.google.com/firestore
26
+ module FirestoreV1beta1
27
27
  VERSION = 'V1beta1'
28
- REVISION = '20170812'
28
+ REVISION = '0'
29
29
 
30
30
  # View and manage your data across Google Cloud Platform services
31
31
  AUTH_CLOUD_PLATFORM = 'https://www.googleapis.com/auth/cloud-platform'
32
+
33
+ # View and manage your Google Cloud Datastore data
34
+ AUTH_DATASTORE = 'https://www.googleapis.com/auth/datastore'
32
35
  end
33
36
  end
34
37
  end
@@ -0,0 +1,2115 @@
1
+ # Copyright 2015 Google Inc.
2
+ #
3
+ # Licensed under the Apache License, Version 2.0 (the "License");
4
+ # you may not use this file except in compliance with the License.
5
+ # You may obtain a copy of the License at
6
+ #
7
+ # http://www.apache.org/licenses/LICENSE-2.0
8
+ #
9
+ # Unless required by applicable law or agreed to in writing, software
10
+ # distributed under the License is distributed on an "AS IS" BASIS,
11
+ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12
+ # See the License for the specific language governing permissions and
13
+ # limitations under the License.
14
+
15
+ require 'date'
16
+ require 'google/apis/core/base_service'
17
+ require 'google/apis/core/json_representation'
18
+ require 'google/apis/core/hashable'
19
+ require 'google/apis/errors'
20
+
21
+ module Google
22
+ module Apis
23
+ module FirestoreV1beta1
24
+
25
+ # An array value.
26
+ class ArrayValue
27
+ include Google::Apis::Core::Hashable
28
+
29
+ # Values in the array.
30
+ # Corresponds to the JSON property `values`
31
+ # @return [Array<Google::Apis::FirestoreV1beta1::Value>]
32
+ attr_accessor :values
33
+
34
+ def initialize(**args)
35
+ update!(**args)
36
+ end
37
+
38
+ # Update properties of this object
39
+ def update!(**args)
40
+ @values = args[:values] if args.key?(:values)
41
+ end
42
+ end
43
+
44
+ # The request for Firestore.BatchGetDocuments.
45
+ class BatchGetDocumentsRequest
46
+ include Google::Apis::Core::Hashable
47
+
48
+ # The names of the documents to retrieve. In the format:
49
+ # `projects/`project_id`/databases/`database_id`/documents/`document_path``.
50
+ # The request will fail if any of the document is not a child resource of the
51
+ # given `database`. Duplicate names will be elided.
52
+ # Corresponds to the JSON property `documents`
53
+ # @return [Array<String>]
54
+ attr_accessor :documents
55
+
56
+ # A set of field paths on a document.
57
+ # Used to restrict a get or update operation on a document to a subset of its
58
+ # fields.
59
+ # This is different from standard field masks, as this is always scoped to a
60
+ # Document, and takes in account the dynamic nature of Value.
61
+ # Corresponds to the JSON property `mask`
62
+ # @return [Google::Apis::FirestoreV1beta1::DocumentMask]
63
+ attr_accessor :mask
64
+
65
+ # Options for creating a new transaction.
66
+ # Corresponds to the JSON property `newTransaction`
67
+ # @return [Google::Apis::FirestoreV1beta1::TransactionOptions]
68
+ attr_accessor :new_transaction
69
+
70
+ # Reads documents as they were at the given time.
71
+ # This may not be older than 60 seconds.
72
+ # Corresponds to the JSON property `readTime`
73
+ # @return [String]
74
+ attr_accessor :read_time
75
+
76
+ # Reads documents in a transaction.
77
+ # Corresponds to the JSON property `transaction`
78
+ # NOTE: Values are automatically base64 encoded/decoded in the client library.
79
+ # @return [String]
80
+ attr_accessor :transaction
81
+
82
+ def initialize(**args)
83
+ update!(**args)
84
+ end
85
+
86
+ # Update properties of this object
87
+ def update!(**args)
88
+ @documents = args[:documents] if args.key?(:documents)
89
+ @mask = args[:mask] if args.key?(:mask)
90
+ @new_transaction = args[:new_transaction] if args.key?(:new_transaction)
91
+ @read_time = args[:read_time] if args.key?(:read_time)
92
+ @transaction = args[:transaction] if args.key?(:transaction)
93
+ end
94
+ end
95
+
96
+ # The streamed response for Firestore.BatchGetDocuments.
97
+ class BatchGetDocumentsResponse
98
+ include Google::Apis::Core::Hashable
99
+
100
+ # A Firestore document.
101
+ # Must not exceed 1 MiB - 4 bytes.
102
+ # Corresponds to the JSON property `found`
103
+ # @return [Google::Apis::FirestoreV1beta1::Document]
104
+ attr_accessor :found
105
+
106
+ # A document name that was requested but does not exist. In the format:
107
+ # `projects/`project_id`/databases/`database_id`/documents/`document_path``.
108
+ # Corresponds to the JSON property `missing`
109
+ # @return [String]
110
+ attr_accessor :missing
111
+
112
+ # The time at which the document was read.
113
+ # This may be monotically increasing, in this case the previous documents in
114
+ # the result stream are guaranteed not to have changed between their
115
+ # read_time and this one.
116
+ # Corresponds to the JSON property `readTime`
117
+ # @return [String]
118
+ attr_accessor :read_time
119
+
120
+ # The transaction that was started as part of this request.
121
+ # Will only be set in the first response, and only if
122
+ # BatchGetDocumentsRequest.new_transaction was set in the request.
123
+ # Corresponds to the JSON property `transaction`
124
+ # NOTE: Values are automatically base64 encoded/decoded in the client library.
125
+ # @return [String]
126
+ attr_accessor :transaction
127
+
128
+ def initialize(**args)
129
+ update!(**args)
130
+ end
131
+
132
+ # Update properties of this object
133
+ def update!(**args)
134
+ @found = args[:found] if args.key?(:found)
135
+ @missing = args[:missing] if args.key?(:missing)
136
+ @read_time = args[:read_time] if args.key?(:read_time)
137
+ @transaction = args[:transaction] if args.key?(:transaction)
138
+ end
139
+ end
140
+
141
+ # The request for Firestore.BeginTransaction.
142
+ class BeginTransactionRequest
143
+ include Google::Apis::Core::Hashable
144
+
145
+ # Options for creating a new transaction.
146
+ # Corresponds to the JSON property `options`
147
+ # @return [Google::Apis::FirestoreV1beta1::TransactionOptions]
148
+ attr_accessor :options
149
+
150
+ def initialize(**args)
151
+ update!(**args)
152
+ end
153
+
154
+ # Update properties of this object
155
+ def update!(**args)
156
+ @options = args[:options] if args.key?(:options)
157
+ end
158
+ end
159
+
160
+ # The response for Firestore.BeginTransaction.
161
+ class BeginTransactionResponse
162
+ include Google::Apis::Core::Hashable
163
+
164
+ # The transaction that was started.
165
+ # Corresponds to the JSON property `transaction`
166
+ # NOTE: Values are automatically base64 encoded/decoded in the client library.
167
+ # @return [String]
168
+ attr_accessor :transaction
169
+
170
+ def initialize(**args)
171
+ update!(**args)
172
+ end
173
+
174
+ # Update properties of this object
175
+ def update!(**args)
176
+ @transaction = args[:transaction] if args.key?(:transaction)
177
+ end
178
+ end
179
+
180
+ # A selection of a collection, such as `messages as m1`.
181
+ class CollectionSelector
182
+ include Google::Apis::Core::Hashable
183
+
184
+ # When false, selects only collections that are immediate children of
185
+ # the `parent` specified in the containing `RunQueryRequest`.
186
+ # When true, selects all descendant collections.
187
+ # Corresponds to the JSON property `allDescendants`
188
+ # @return [Boolean]
189
+ attr_accessor :all_descendants
190
+ alias_method :all_descendants?, :all_descendants
191
+
192
+ # The collection ID.
193
+ # When set, selects only collections with this ID.
194
+ # Corresponds to the JSON property `collectionId`
195
+ # @return [String]
196
+ attr_accessor :collection_id
197
+
198
+ def initialize(**args)
199
+ update!(**args)
200
+ end
201
+
202
+ # Update properties of this object
203
+ def update!(**args)
204
+ @all_descendants = args[:all_descendants] if args.key?(:all_descendants)
205
+ @collection_id = args[:collection_id] if args.key?(:collection_id)
206
+ end
207
+ end
208
+
209
+ # The request for Firestore.Commit.
210
+ class CommitRequest
211
+ include Google::Apis::Core::Hashable
212
+
213
+ # If non-empty, applies all writes in this transaction, and commits it.
214
+ # Otherwise, applies the writes as if they were in their own transaction.
215
+ # Corresponds to the JSON property `transaction`
216
+ # NOTE: Values are automatically base64 encoded/decoded in the client library.
217
+ # @return [String]
218
+ attr_accessor :transaction
219
+
220
+ # The writes to apply.
221
+ # Always executed atomically and in order.
222
+ # Corresponds to the JSON property `writes`
223
+ # @return [Array<Google::Apis::FirestoreV1beta1::Write>]
224
+ attr_accessor :writes
225
+
226
+ def initialize(**args)
227
+ update!(**args)
228
+ end
229
+
230
+ # Update properties of this object
231
+ def update!(**args)
232
+ @transaction = args[:transaction] if args.key?(:transaction)
233
+ @writes = args[:writes] if args.key?(:writes)
234
+ end
235
+ end
236
+
237
+ # The response for Firestore.Commit.
238
+ class CommitResponse
239
+ include Google::Apis::Core::Hashable
240
+
241
+ # The time at which the commit occurred.
242
+ # Corresponds to the JSON property `commitTime`
243
+ # @return [String]
244
+ attr_accessor :commit_time
245
+
246
+ # The result of applying the writes.
247
+ # This i-th write result corresponds to the i-th write in the
248
+ # request.
249
+ # Corresponds to the JSON property `writeResults`
250
+ # @return [Array<Google::Apis::FirestoreV1beta1::WriteResult>]
251
+ attr_accessor :write_results
252
+
253
+ def initialize(**args)
254
+ update!(**args)
255
+ end
256
+
257
+ # Update properties of this object
258
+ def update!(**args)
259
+ @commit_time = args[:commit_time] if args.key?(:commit_time)
260
+ @write_results = args[:write_results] if args.key?(:write_results)
261
+ end
262
+ end
263
+
264
+ # A filter that merges multiple other filters using the given operator.
265
+ class CompositeFilter
266
+ include Google::Apis::Core::Hashable
267
+
268
+ # The list of filters to combine.
269
+ # Must contain at least one filter.
270
+ # Corresponds to the JSON property `filters`
271
+ # @return [Array<Google::Apis::FirestoreV1beta1::Filter>]
272
+ attr_accessor :filters
273
+
274
+ # The operator for combining multiple filters.
275
+ # Corresponds to the JSON property `op`
276
+ # @return [String]
277
+ attr_accessor :op
278
+
279
+ def initialize(**args)
280
+ update!(**args)
281
+ end
282
+
283
+ # Update properties of this object
284
+ def update!(**args)
285
+ @filters = args[:filters] if args.key?(:filters)
286
+ @op = args[:op] if args.key?(:op)
287
+ end
288
+ end
289
+
290
+ # A position in a query result set.
291
+ class Cursor
292
+ include Google::Apis::Core::Hashable
293
+
294
+ # If the position is just before or just after the given values, relative
295
+ # to the sort order defined by the query.
296
+ # Corresponds to the JSON property `before`
297
+ # @return [Boolean]
298
+ attr_accessor :before
299
+ alias_method :before?, :before
300
+
301
+ # The values that represent a position, in the order they appear in
302
+ # the order by clause of a query.
303
+ # Can contain fewer values than specified in the order by clause.
304
+ # Corresponds to the JSON property `values`
305
+ # @return [Array<Google::Apis::FirestoreV1beta1::Value>]
306
+ attr_accessor :values
307
+
308
+ def initialize(**args)
309
+ update!(**args)
310
+ end
311
+
312
+ # Update properties of this object
313
+ def update!(**args)
314
+ @before = args[:before] if args.key?(:before)
315
+ @values = args[:values] if args.key?(:values)
316
+ end
317
+ end
318
+
319
+ # A Firestore document.
320
+ # Must not exceed 1 MiB - 4 bytes.
321
+ class Document
322
+ include Google::Apis::Core::Hashable
323
+
324
+ # Output only. The time at which the document was created.
325
+ # This value increases monotonically when a document is deleted then
326
+ # recreated. It can also be compared to values from other documents and
327
+ # the `read_time` of a query.
328
+ # Corresponds to the JSON property `createTime`
329
+ # @return [String]
330
+ attr_accessor :create_time
331
+
332
+ # The document's fields.
333
+ # The map keys represent field names.
334
+ # A simple field name contains only characters `a` to `z`, `A` to `Z`,
335
+ # `0` to `9`, or `_`, and must not start with `0` to `9` or `_`. For example,
336
+ # `foo_bar_17`.
337
+ # Field names matching the regular expression `__.*__` are reserved. Reserved
338
+ # field names are forbidden except in certain documented contexts. The map
339
+ # keys, represented as UTF-8, must not exceed 1,500 bytes and cannot be
340
+ # empty.
341
+ # Field paths may be used in other contexts to refer to structured fields
342
+ # defined here. For `map_value`, the field path is represented by the simple
343
+ # or quoted field names of the containing fields, delimited by `.`. For
344
+ # example, the structured field
345
+ # `"foo" : ` map_value: ` "x&y" : ` string_value: "hello" ```` would be
346
+ # represented by the field path `foo.x&y`.
347
+ # Within a field path, a quoted field name starts and ends with `` ` `` and
348
+ # may contain any character. Some characters, including `` ` ``, must be
349
+ # escaped using a `\`. For example, `` `x&y` `` represents `x&y` and
350
+ # `` `bak\`tik` `` represents `` bak`tik ``.
351
+ # Corresponds to the JSON property `fields`
352
+ # @return [Hash<String,Google::Apis::FirestoreV1beta1::Value>]
353
+ attr_accessor :fields
354
+
355
+ # The resource name of the document, for example
356
+ # `projects/`project_id`/databases/`database_id`/documents/`document_path``.
357
+ # Corresponds to the JSON property `name`
358
+ # @return [String]
359
+ attr_accessor :name
360
+
361
+ # Output only. The time at which the document was last changed.
362
+ # This value is initally set to the `create_time` then increases
363
+ # monotonically with each change to the document. It can also be
364
+ # compared to values from other documents and the `read_time` of a query.
365
+ # Corresponds to the JSON property `updateTime`
366
+ # @return [String]
367
+ attr_accessor :update_time
368
+
369
+ def initialize(**args)
370
+ update!(**args)
371
+ end
372
+
373
+ # Update properties of this object
374
+ def update!(**args)
375
+ @create_time = args[:create_time] if args.key?(:create_time)
376
+ @fields = args[:fields] if args.key?(:fields)
377
+ @name = args[:name] if args.key?(:name)
378
+ @update_time = args[:update_time] if args.key?(:update_time)
379
+ end
380
+ end
381
+
382
+ # A Document has changed.
383
+ # May be the result of multiple writes, including deletes, that
384
+ # ultimately resulted in a new value for the Document.
385
+ # Multiple DocumentChange messages may be returned for the same logical
386
+ # change, if multiple targets are affected.
387
+ class DocumentChange
388
+ include Google::Apis::Core::Hashable
389
+
390
+ # A Firestore document.
391
+ # Must not exceed 1 MiB - 4 bytes.
392
+ # Corresponds to the JSON property `document`
393
+ # @return [Google::Apis::FirestoreV1beta1::Document]
394
+ attr_accessor :document
395
+
396
+ # A set of target IDs for targets that no longer match this document.
397
+ # Corresponds to the JSON property `removedTargetIds`
398
+ # @return [Array<Fixnum>]
399
+ attr_accessor :removed_target_ids
400
+
401
+ # A set of target IDs of targets that match this document.
402
+ # Corresponds to the JSON property `targetIds`
403
+ # @return [Array<Fixnum>]
404
+ attr_accessor :target_ids
405
+
406
+ def initialize(**args)
407
+ update!(**args)
408
+ end
409
+
410
+ # Update properties of this object
411
+ def update!(**args)
412
+ @document = args[:document] if args.key?(:document)
413
+ @removed_target_ids = args[:removed_target_ids] if args.key?(:removed_target_ids)
414
+ @target_ids = args[:target_ids] if args.key?(:target_ids)
415
+ end
416
+ end
417
+
418
+ # A Document has been deleted.
419
+ # May be the result of multiple writes, including updates, the
420
+ # last of which deleted the Document.
421
+ # Multiple DocumentDelete messages may be returned for the same logical
422
+ # delete, if multiple targets are affected.
423
+ class DocumentDelete
424
+ include Google::Apis::Core::Hashable
425
+
426
+ # The resource name of the Document that was deleted.
427
+ # Corresponds to the JSON property `document`
428
+ # @return [String]
429
+ attr_accessor :document
430
+
431
+ # The read timestamp at which the delete was observed.
432
+ # Greater or equal to the `commit_time` of the delete.
433
+ # Corresponds to the JSON property `readTime`
434
+ # @return [String]
435
+ attr_accessor :read_time
436
+
437
+ # A set of target IDs for targets that previously matched this entity.
438
+ # Corresponds to the JSON property `removedTargetIds`
439
+ # @return [Array<Fixnum>]
440
+ attr_accessor :removed_target_ids
441
+
442
+ def initialize(**args)
443
+ update!(**args)
444
+ end
445
+
446
+ # Update properties of this object
447
+ def update!(**args)
448
+ @document = args[:document] if args.key?(:document)
449
+ @read_time = args[:read_time] if args.key?(:read_time)
450
+ @removed_target_ids = args[:removed_target_ids] if args.key?(:removed_target_ids)
451
+ end
452
+ end
453
+
454
+ # A set of field paths on a document.
455
+ # Used to restrict a get or update operation on a document to a subset of its
456
+ # fields.
457
+ # This is different from standard field masks, as this is always scoped to a
458
+ # Document, and takes in account the dynamic nature of Value.
459
+ class DocumentMask
460
+ include Google::Apis::Core::Hashable
461
+
462
+ # The list of field paths in the mask. See Document.fields for a field
463
+ # path syntax reference.
464
+ # Corresponds to the JSON property `fieldPaths`
465
+ # @return [Array<String>]
466
+ attr_accessor :field_paths
467
+
468
+ def initialize(**args)
469
+ update!(**args)
470
+ end
471
+
472
+ # Update properties of this object
473
+ def update!(**args)
474
+ @field_paths = args[:field_paths] if args.key?(:field_paths)
475
+ end
476
+ end
477
+
478
+ # A Document has been removed from the view of the targets.
479
+ # Sent if the document is no longer relevant to a target and is out of view.
480
+ # Can be sent instead of a DocumentDelete or a DocumentChange if the server
481
+ # can not send the new value of the document.
482
+ # Multiple DocumentRemove messages may be returned for the same logical
483
+ # write or delete, if multiple targets are affected.
484
+ class DocumentRemove
485
+ include Google::Apis::Core::Hashable
486
+
487
+ # The resource name of the Document that has gone out of view.
488
+ # Corresponds to the JSON property `document`
489
+ # @return [String]
490
+ attr_accessor :document
491
+
492
+ # The read timestamp at which the remove was observed.
493
+ # Greater or equal to the `commit_time` of the change/delete/remove.
494
+ # Corresponds to the JSON property `readTime`
495
+ # @return [String]
496
+ attr_accessor :read_time
497
+
498
+ # A set of target IDs for targets that previously matched this document.
499
+ # Corresponds to the JSON property `removedTargetIds`
500
+ # @return [Array<Fixnum>]
501
+ attr_accessor :removed_target_ids
502
+
503
+ def initialize(**args)
504
+ update!(**args)
505
+ end
506
+
507
+ # Update properties of this object
508
+ def update!(**args)
509
+ @document = args[:document] if args.key?(:document)
510
+ @read_time = args[:read_time] if args.key?(:read_time)
511
+ @removed_target_ids = args[:removed_target_ids] if args.key?(:removed_target_ids)
512
+ end
513
+ end
514
+
515
+ # A transformation of a document.
516
+ class DocumentTransform
517
+ include Google::Apis::Core::Hashable
518
+
519
+ # The name of the document to transform.
520
+ # Corresponds to the JSON property `document`
521
+ # @return [String]
522
+ attr_accessor :document
523
+
524
+ # The list of transformations to apply to the fields of the document, in
525
+ # order.
526
+ # Corresponds to the JSON property `fieldTransforms`
527
+ # @return [Array<Google::Apis::FirestoreV1beta1::FieldTransform>]
528
+ attr_accessor :field_transforms
529
+
530
+ def initialize(**args)
531
+ update!(**args)
532
+ end
533
+
534
+ # Update properties of this object
535
+ def update!(**args)
536
+ @document = args[:document] if args.key?(:document)
537
+ @field_transforms = args[:field_transforms] if args.key?(:field_transforms)
538
+ end
539
+ end
540
+
541
+ # A target specified by a set of documents names.
542
+ class DocumentsTarget
543
+ include Google::Apis::Core::Hashable
544
+
545
+ # The names of the documents to retrieve. In the format:
546
+ # `projects/`project_id`/databases/`database_id`/documents/`document_path``.
547
+ # The request will fail if any of the document is not a child resource of
548
+ # the given `database`. Duplicate names will be elided.
549
+ # Corresponds to the JSON property `documents`
550
+ # @return [Array<String>]
551
+ attr_accessor :documents
552
+
553
+ def initialize(**args)
554
+ update!(**args)
555
+ end
556
+
557
+ # Update properties of this object
558
+ def update!(**args)
559
+ @documents = args[:documents] if args.key?(:documents)
560
+ end
561
+ end
562
+
563
+ # A generic empty message that you can re-use to avoid defining duplicated
564
+ # empty messages in your APIs. A typical example is to use it as the request
565
+ # or the response type of an API method. For instance:
566
+ # service Foo `
567
+ # rpc Bar(google.protobuf.Empty) returns (google.protobuf.Empty);
568
+ # `
569
+ # The JSON representation for `Empty` is empty JSON object ````.
570
+ class Empty
571
+ include Google::Apis::Core::Hashable
572
+
573
+ def initialize(**args)
574
+ update!(**args)
575
+ end
576
+
577
+ # Update properties of this object
578
+ def update!(**args)
579
+ end
580
+ end
581
+
582
+ # A digest of all the documents that match a given target.
583
+ class ExistenceFilter
584
+ include Google::Apis::Core::Hashable
585
+
586
+ # The total count of documents that match target_id.
587
+ # If different from the count of documents in the client that match, the
588
+ # client must manually determine which documents no longer match the target.
589
+ # Corresponds to the JSON property `count`
590
+ # @return [Fixnum]
591
+ attr_accessor :count
592
+
593
+ # The target ID to which this filter applies.
594
+ # Corresponds to the JSON property `targetId`
595
+ # @return [Fixnum]
596
+ attr_accessor :target_id
597
+
598
+ def initialize(**args)
599
+ update!(**args)
600
+ end
601
+
602
+ # Update properties of this object
603
+ def update!(**args)
604
+ @count = args[:count] if args.key?(:count)
605
+ @target_id = args[:target_id] if args.key?(:target_id)
606
+ end
607
+ end
608
+
609
+ # A filter on a specific field.
610
+ class FieldFilter
611
+ include Google::Apis::Core::Hashable
612
+
613
+ # A reference to a field, such as `max(messages.time) as max_time`.
614
+ # Corresponds to the JSON property `field`
615
+ # @return [Google::Apis::FirestoreV1beta1::FieldReference]
616
+ attr_accessor :field
617
+
618
+ # The operator to filter by.
619
+ # Corresponds to the JSON property `op`
620
+ # @return [String]
621
+ attr_accessor :op
622
+
623
+ # A message that can hold any of the supported value types.
624
+ # Corresponds to the JSON property `value`
625
+ # @return [Google::Apis::FirestoreV1beta1::Value]
626
+ attr_accessor :value
627
+
628
+ def initialize(**args)
629
+ update!(**args)
630
+ end
631
+
632
+ # Update properties of this object
633
+ def update!(**args)
634
+ @field = args[:field] if args.key?(:field)
635
+ @op = args[:op] if args.key?(:op)
636
+ @value = args[:value] if args.key?(:value)
637
+ end
638
+ end
639
+
640
+ # A reference to a field, such as `max(messages.time) as max_time`.
641
+ class FieldReference
642
+ include Google::Apis::Core::Hashable
643
+
644
+ #
645
+ # Corresponds to the JSON property `fieldPath`
646
+ # @return [String]
647
+ attr_accessor :field_path
648
+
649
+ def initialize(**args)
650
+ update!(**args)
651
+ end
652
+
653
+ # Update properties of this object
654
+ def update!(**args)
655
+ @field_path = args[:field_path] if args.key?(:field_path)
656
+ end
657
+ end
658
+
659
+ # A transformation of a field of the document.
660
+ class FieldTransform
661
+ include Google::Apis::Core::Hashable
662
+
663
+ # The path of the field. See Document.fields for the field path syntax
664
+ # reference.
665
+ # Corresponds to the JSON property `fieldPath`
666
+ # @return [String]
667
+ attr_accessor :field_path
668
+
669
+ # Sets the field to the given server value.
670
+ # Corresponds to the JSON property `setToServerValue`
671
+ # @return [String]
672
+ attr_accessor :set_to_server_value
673
+
674
+ def initialize(**args)
675
+ update!(**args)
676
+ end
677
+
678
+ # Update properties of this object
679
+ def update!(**args)
680
+ @field_path = args[:field_path] if args.key?(:field_path)
681
+ @set_to_server_value = args[:set_to_server_value] if args.key?(:set_to_server_value)
682
+ end
683
+ end
684
+
685
+ # A filter.
686
+ class Filter
687
+ include Google::Apis::Core::Hashable
688
+
689
+ # A filter that merges multiple other filters using the given operator.
690
+ # Corresponds to the JSON property `compositeFilter`
691
+ # @return [Google::Apis::FirestoreV1beta1::CompositeFilter]
692
+ attr_accessor :composite_filter
693
+
694
+ # A filter on a specific field.
695
+ # Corresponds to the JSON property `fieldFilter`
696
+ # @return [Google::Apis::FirestoreV1beta1::FieldFilter]
697
+ attr_accessor :field_filter
698
+
699
+ # A filter with a single operand.
700
+ # Corresponds to the JSON property `unaryFilter`
701
+ # @return [Google::Apis::FirestoreV1beta1::UnaryFilter]
702
+ attr_accessor :unary_filter
703
+
704
+ def initialize(**args)
705
+ update!(**args)
706
+ end
707
+
708
+ # Update properties of this object
709
+ def update!(**args)
710
+ @composite_filter = args[:composite_filter] if args.key?(:composite_filter)
711
+ @field_filter = args[:field_filter] if args.key?(:field_filter)
712
+ @unary_filter = args[:unary_filter] if args.key?(:unary_filter)
713
+ end
714
+ end
715
+
716
+ # An index definition.
717
+ class Index
718
+ include Google::Apis::Core::Hashable
719
+
720
+ # The collection ID to which this index applies. Required.
721
+ # Corresponds to the JSON property `collectionId`
722
+ # @return [String]
723
+ attr_accessor :collection_id
724
+
725
+ # The fields to index.
726
+ # Corresponds to the JSON property `fields`
727
+ # @return [Array<Google::Apis::FirestoreV1beta1::IndexField>]
728
+ attr_accessor :fields
729
+
730
+ # The resource name of the index.
731
+ # Corresponds to the JSON property `name`
732
+ # @return [String]
733
+ attr_accessor :name
734
+
735
+ # The state of the index.
736
+ # The state is read-only.
737
+ # @OutputOnly
738
+ # Corresponds to the JSON property `state`
739
+ # @return [String]
740
+ attr_accessor :state
741
+
742
+ def initialize(**args)
743
+ update!(**args)
744
+ end
745
+
746
+ # Update properties of this object
747
+ def update!(**args)
748
+ @collection_id = args[:collection_id] if args.key?(:collection_id)
749
+ @fields = args[:fields] if args.key?(:fields)
750
+ @name = args[:name] if args.key?(:name)
751
+ @state = args[:state] if args.key?(:state)
752
+ end
753
+ end
754
+
755
+ # A field of an index.
756
+ class IndexField
757
+ include Google::Apis::Core::Hashable
758
+
759
+ # The path of the field. Must match the field path specification described
760
+ # by google.firestore.v1beta1.Document.fields.
761
+ # Special field path `__name__` may be used by itself or at the end of a
762
+ # path. `__type__` may be used only at the end of path.
763
+ # Corresponds to the JSON property `fieldPath`
764
+ # @return [String]
765
+ attr_accessor :field_path
766
+
767
+ # The field's mode.
768
+ # Corresponds to the JSON property `mode`
769
+ # @return [String]
770
+ attr_accessor :mode
771
+
772
+ def initialize(**args)
773
+ update!(**args)
774
+ end
775
+
776
+ # Update properties of this object
777
+ def update!(**args)
778
+ @field_path = args[:field_path] if args.key?(:field_path)
779
+ @mode = args[:mode] if args.key?(:mode)
780
+ end
781
+ end
782
+
783
+ # Metadata for index operations. This metadata populates
784
+ # the metadata field of google.longrunning.Operation.
785
+ class IndexOperationMetadata
786
+ include Google::Apis::Core::Hashable
787
+
788
+ # True if the [google.longrunning.Operation] was cancelled. If the
789
+ # cancellation is in progress, cancelled will be true but
790
+ # google.longrunning.Operation.done will be false.
791
+ # Corresponds to the JSON property `cancelled`
792
+ # @return [Boolean]
793
+ attr_accessor :cancelled
794
+ alias_method :cancelled?, :cancelled
795
+
796
+ # Measures the progress of a particular metric.
797
+ # Corresponds to the JSON property `documentProgress`
798
+ # @return [Google::Apis::FirestoreV1beta1::Progress]
799
+ attr_accessor :document_progress
800
+
801
+ # The time the operation ended, either successfully or otherwise. Unset if
802
+ # the operation is still active.
803
+ # Corresponds to the JSON property `endTime`
804
+ # @return [String]
805
+ attr_accessor :end_time
806
+
807
+ # The index resource that this operation is acting on. For example:
808
+ # `projects/`project_id`/databases/`database_id`/indexes/`index_id``
809
+ # Corresponds to the JSON property `index`
810
+ # @return [String]
811
+ attr_accessor :index
812
+
813
+ # The type of index operation.
814
+ # Corresponds to the JSON property `operationType`
815
+ # @return [String]
816
+ attr_accessor :operation_type
817
+
818
+ # The time that work began on the operation.
819
+ # Corresponds to the JSON property `startTime`
820
+ # @return [String]
821
+ attr_accessor :start_time
822
+
823
+ def initialize(**args)
824
+ update!(**args)
825
+ end
826
+
827
+ # Update properties of this object
828
+ def update!(**args)
829
+ @cancelled = args[:cancelled] if args.key?(:cancelled)
830
+ @document_progress = args[:document_progress] if args.key?(:document_progress)
831
+ @end_time = args[:end_time] if args.key?(:end_time)
832
+ @index = args[:index] if args.key?(:index)
833
+ @operation_type = args[:operation_type] if args.key?(:operation_type)
834
+ @start_time = args[:start_time] if args.key?(:start_time)
835
+ end
836
+ end
837
+
838
+ # An object representing a latitude/longitude pair. This is expressed as a pair
839
+ # of doubles representing degrees latitude and degrees longitude. Unless
840
+ # specified otherwise, this must conform to the
841
+ # <a href="http://www.unoosa.org/pdf/icg/2012/template/WGS_84.pdf">WGS84
842
+ # standard</a>. Values must be within normalized ranges.
843
+ # Example of normalization code in Python:
844
+ # def NormalizeLongitude(longitude):
845
+ # """Wraps decimal degrees longitude to [-180.0, 180.0]."""
846
+ # q, r = divmod(longitude, 360.0)
847
+ # if r > 180.0 or (r == 180.0 and q <= -1.0):
848
+ # return r - 360.0
849
+ # return r
850
+ # def NormalizeLatLng(latitude, longitude):
851
+ # """Wraps decimal degrees latitude and longitude to
852
+ # [-90.0, 90.0] and [-180.0, 180.0], respectively."""
853
+ # r = latitude % 360.0
854
+ # if r <= 90.0:
855
+ # return r, NormalizeLongitude(longitude)
856
+ # elif r >= 270.0:
857
+ # return r - 360, NormalizeLongitude(longitude)
858
+ # else:
859
+ # return 180 - r, NormalizeLongitude(longitude + 180.0)
860
+ # assert 180.0 == NormalizeLongitude(180.0)
861
+ # assert -180.0 == NormalizeLongitude(-180.0)
862
+ # assert -179.0 == NormalizeLongitude(181.0)
863
+ # assert (0.0, 0.0) == NormalizeLatLng(360.0, 0.0)
864
+ # assert (0.0, 0.0) == NormalizeLatLng(-360.0, 0.0)
865
+ # assert (85.0, 180.0) == NormalizeLatLng(95.0, 0.0)
866
+ # assert (-85.0, -170.0) == NormalizeLatLng(-95.0, 10.0)
867
+ # assert (90.0, 10.0) == NormalizeLatLng(90.0, 10.0)
868
+ # assert (-90.0, -10.0) == NormalizeLatLng(-90.0, -10.0)
869
+ # assert (0.0, -170.0) == NormalizeLatLng(-180.0, 10.0)
870
+ # assert (0.0, -170.0) == NormalizeLatLng(180.0, 10.0)
871
+ # assert (-90.0, 10.0) == NormalizeLatLng(270.0, 10.0)
872
+ # assert (90.0, 10.0) == NormalizeLatLng(-270.0, 10.0)
873
+ class LatLng
874
+ include Google::Apis::Core::Hashable
875
+
876
+ # The latitude in degrees. It must be in the range [-90.0, +90.0].
877
+ # Corresponds to the JSON property `latitude`
878
+ # @return [Float]
879
+ attr_accessor :latitude
880
+
881
+ # The longitude in degrees. It must be in the range [-180.0, +180.0].
882
+ # Corresponds to the JSON property `longitude`
883
+ # @return [Float]
884
+ attr_accessor :longitude
885
+
886
+ def initialize(**args)
887
+ update!(**args)
888
+ end
889
+
890
+ # Update properties of this object
891
+ def update!(**args)
892
+ @latitude = args[:latitude] if args.key?(:latitude)
893
+ @longitude = args[:longitude] if args.key?(:longitude)
894
+ end
895
+ end
896
+
897
+ # The response from Firestore.ListCollectionIds.
898
+ class ListCollectionIdsResponse
899
+ include Google::Apis::Core::Hashable
900
+
901
+ # The collection ids.
902
+ # Corresponds to the JSON property `collectionIds`
903
+ # @return [Array<String>]
904
+ attr_accessor :collection_ids
905
+
906
+ # A page token that may be used to continue the list.
907
+ # Corresponds to the JSON property `nextPageToken`
908
+ # @return [String]
909
+ attr_accessor :next_page_token
910
+
911
+ def initialize(**args)
912
+ update!(**args)
913
+ end
914
+
915
+ # Update properties of this object
916
+ def update!(**args)
917
+ @collection_ids = args[:collection_ids] if args.key?(:collection_ids)
918
+ @next_page_token = args[:next_page_token] if args.key?(:next_page_token)
919
+ end
920
+ end
921
+
922
+ # The response for Firestore.ListDocuments.
923
+ class ListDocumentsResponse
924
+ include Google::Apis::Core::Hashable
925
+
926
+ # The Documents found.
927
+ # Corresponds to the JSON property `documents`
928
+ # @return [Array<Google::Apis::FirestoreV1beta1::Document>]
929
+ attr_accessor :documents
930
+
931
+ # The next page token.
932
+ # Corresponds to the JSON property `nextPageToken`
933
+ # @return [String]
934
+ attr_accessor :next_page_token
935
+
936
+ def initialize(**args)
937
+ update!(**args)
938
+ end
939
+
940
+ # Update properties of this object
941
+ def update!(**args)
942
+ @documents = args[:documents] if args.key?(:documents)
943
+ @next_page_token = args[:next_page_token] if args.key?(:next_page_token)
944
+ end
945
+ end
946
+
947
+ # The response for FirestoreAdmin.ListIndexes.
948
+ class ListIndexesResponse
949
+ include Google::Apis::Core::Hashable
950
+
951
+ # The indexes.
952
+ # Corresponds to the JSON property `indexes`
953
+ # @return [Array<Google::Apis::FirestoreV1beta1::Index>]
954
+ attr_accessor :indexes
955
+
956
+ # The standard List next-page token.
957
+ # Corresponds to the JSON property `nextPageToken`
958
+ # @return [String]
959
+ attr_accessor :next_page_token
960
+
961
+ def initialize(**args)
962
+ update!(**args)
963
+ end
964
+
965
+ # Update properties of this object
966
+ def update!(**args)
967
+ @indexes = args[:indexes] if args.key?(:indexes)
968
+ @next_page_token = args[:next_page_token] if args.key?(:next_page_token)
969
+ end
970
+ end
971
+
972
+ # A request for Firestore.Listen
973
+ class ListenRequest
974
+ include Google::Apis::Core::Hashable
975
+
976
+ # A specification of a set of documents to listen to.
977
+ # Corresponds to the JSON property `addTarget`
978
+ # @return [Google::Apis::FirestoreV1beta1::Target]
979
+ attr_accessor :add_target
980
+
981
+ # Labels associated with this target change.
982
+ # Corresponds to the JSON property `labels`
983
+ # @return [Hash<String,String>]
984
+ attr_accessor :labels
985
+
986
+ # The ID of a target to remove from this stream.
987
+ # Corresponds to the JSON property `removeTarget`
988
+ # @return [Fixnum]
989
+ attr_accessor :remove_target
990
+
991
+ def initialize(**args)
992
+ update!(**args)
993
+ end
994
+
995
+ # Update properties of this object
996
+ def update!(**args)
997
+ @add_target = args[:add_target] if args.key?(:add_target)
998
+ @labels = args[:labels] if args.key?(:labels)
999
+ @remove_target = args[:remove_target] if args.key?(:remove_target)
1000
+ end
1001
+ end
1002
+
1003
+ # The response for Firestore.Listen.
1004
+ class ListenResponse
1005
+ include Google::Apis::Core::Hashable
1006
+
1007
+ # A Document has changed.
1008
+ # May be the result of multiple writes, including deletes, that
1009
+ # ultimately resulted in a new value for the Document.
1010
+ # Multiple DocumentChange messages may be returned for the same logical
1011
+ # change, if multiple targets are affected.
1012
+ # Corresponds to the JSON property `documentChange`
1013
+ # @return [Google::Apis::FirestoreV1beta1::DocumentChange]
1014
+ attr_accessor :document_change
1015
+
1016
+ # A Document has been deleted.
1017
+ # May be the result of multiple writes, including updates, the
1018
+ # last of which deleted the Document.
1019
+ # Multiple DocumentDelete messages may be returned for the same logical
1020
+ # delete, if multiple targets are affected.
1021
+ # Corresponds to the JSON property `documentDelete`
1022
+ # @return [Google::Apis::FirestoreV1beta1::DocumentDelete]
1023
+ attr_accessor :document_delete
1024
+
1025
+ # A Document has been removed from the view of the targets.
1026
+ # Sent if the document is no longer relevant to a target and is out of view.
1027
+ # Can be sent instead of a DocumentDelete or a DocumentChange if the server
1028
+ # can not send the new value of the document.
1029
+ # Multiple DocumentRemove messages may be returned for the same logical
1030
+ # write or delete, if multiple targets are affected.
1031
+ # Corresponds to the JSON property `documentRemove`
1032
+ # @return [Google::Apis::FirestoreV1beta1::DocumentRemove]
1033
+ attr_accessor :document_remove
1034
+
1035
+ # A digest of all the documents that match a given target.
1036
+ # Corresponds to the JSON property `filter`
1037
+ # @return [Google::Apis::FirestoreV1beta1::ExistenceFilter]
1038
+ attr_accessor :filter
1039
+
1040
+ # Targets being watched have changed.
1041
+ # Corresponds to the JSON property `targetChange`
1042
+ # @return [Google::Apis::FirestoreV1beta1::TargetChange]
1043
+ attr_accessor :target_change
1044
+
1045
+ def initialize(**args)
1046
+ update!(**args)
1047
+ end
1048
+
1049
+ # Update properties of this object
1050
+ def update!(**args)
1051
+ @document_change = args[:document_change] if args.key?(:document_change)
1052
+ @document_delete = args[:document_delete] if args.key?(:document_delete)
1053
+ @document_remove = args[:document_remove] if args.key?(:document_remove)
1054
+ @filter = args[:filter] if args.key?(:filter)
1055
+ @target_change = args[:target_change] if args.key?(:target_change)
1056
+ end
1057
+ end
1058
+
1059
+ # A map value.
1060
+ class MapValue
1061
+ include Google::Apis::Core::Hashable
1062
+
1063
+ # The map's fields.
1064
+ # The map keys represent field names. Field names matching the regular
1065
+ # expression `__.*__` are reserved. Reserved field names are forbidden except
1066
+ # in certain documented contexts. The map keys, represented as UTF-8, must
1067
+ # not exceed 1,500 bytes and cannot be empty.
1068
+ # Corresponds to the JSON property `fields`
1069
+ # @return [Hash<String,Google::Apis::FirestoreV1beta1::Value>]
1070
+ attr_accessor :fields
1071
+
1072
+ def initialize(**args)
1073
+ update!(**args)
1074
+ end
1075
+
1076
+ # Update properties of this object
1077
+ def update!(**args)
1078
+ @fields = args[:fields] if args.key?(:fields)
1079
+ end
1080
+ end
1081
+
1082
+ # This resource represents a long-running operation that is the result of a
1083
+ # network API call.
1084
+ class Operation
1085
+ include Google::Apis::Core::Hashable
1086
+
1087
+ # If the value is `false`, it means the operation is still in progress.
1088
+ # If `true`, the operation is completed, and either `error` or `response` is
1089
+ # available.
1090
+ # Corresponds to the JSON property `done`
1091
+ # @return [Boolean]
1092
+ attr_accessor :done
1093
+ alias_method :done?, :done
1094
+
1095
+ # The `Status` type defines a logical error model that is suitable for different
1096
+ # programming environments, including REST APIs and RPC APIs. It is used by
1097
+ # [gRPC](https://github.com/grpc). The error model is designed to be:
1098
+ # - Simple to use and understand for most users
1099
+ # - Flexible enough to meet unexpected needs
1100
+ # # Overview
1101
+ # The `Status` message contains three pieces of data: error code, error message,
1102
+ # and error details. The error code should be an enum value of
1103
+ # google.rpc.Code, but it may accept additional error codes if needed. The
1104
+ # error message should be a developer-facing English message that helps
1105
+ # developers *understand* and *resolve* the error. If a localized user-facing
1106
+ # error message is needed, put the localized message in the error details or
1107
+ # localize it in the client. The optional error details may contain arbitrary
1108
+ # information about the error. There is a predefined set of error detail types
1109
+ # in the package `google.rpc` that can be used for common error conditions.
1110
+ # # Language mapping
1111
+ # The `Status` message is the logical representation of the error model, but it
1112
+ # is not necessarily the actual wire format. When the `Status` message is
1113
+ # exposed in different client libraries and different wire protocols, it can be
1114
+ # mapped differently. For example, it will likely be mapped to some exceptions
1115
+ # in Java, but more likely mapped to some error codes in C.
1116
+ # # Other uses
1117
+ # The error model and the `Status` message can be used in a variety of
1118
+ # environments, either with or without APIs, to provide a
1119
+ # consistent developer experience across different environments.
1120
+ # Example uses of this error model include:
1121
+ # - Partial errors. If a service needs to return partial errors to the client,
1122
+ # it may embed the `Status` in the normal response to indicate the partial
1123
+ # errors.
1124
+ # - Workflow errors. A typical workflow has multiple steps. Each step may
1125
+ # have a `Status` message for error reporting.
1126
+ # - Batch operations. If a client uses batch request and batch response, the
1127
+ # `Status` message should be used directly inside batch response, one for
1128
+ # each error sub-response.
1129
+ # - Asynchronous operations. If an API call embeds asynchronous operation
1130
+ # results in its response, the status of those operations should be
1131
+ # represented directly using the `Status` message.
1132
+ # - Logging. If some API errors are stored in logs, the message `Status` could
1133
+ # be used directly after any stripping needed for security/privacy reasons.
1134
+ # Corresponds to the JSON property `error`
1135
+ # @return [Google::Apis::FirestoreV1beta1::Status]
1136
+ attr_accessor :error
1137
+
1138
+ # Service-specific metadata associated with the operation. It typically
1139
+ # contains progress information and common metadata such as create time.
1140
+ # Some services might not provide such metadata. Any method that returns a
1141
+ # long-running operation should document the metadata type, if any.
1142
+ # Corresponds to the JSON property `metadata`
1143
+ # @return [Hash<String,Object>]
1144
+ attr_accessor :metadata
1145
+
1146
+ # The server-assigned name, which is only unique within the same service that
1147
+ # originally returns it. If you use the default HTTP mapping, the
1148
+ # `name` should have the format of `operations/some/unique/name`.
1149
+ # Corresponds to the JSON property `name`
1150
+ # @return [String]
1151
+ attr_accessor :name
1152
+
1153
+ # The normal response of the operation in case of success. If the original
1154
+ # method returns no data on success, such as `Delete`, the response is
1155
+ # `google.protobuf.Empty`. If the original method is standard
1156
+ # `Get`/`Create`/`Update`, the response should be the resource. For other
1157
+ # methods, the response should have the type `XxxResponse`, where `Xxx`
1158
+ # is the original method name. For example, if the original method name
1159
+ # is `TakeSnapshot()`, the inferred response type is
1160
+ # `TakeSnapshotResponse`.
1161
+ # Corresponds to the JSON property `response`
1162
+ # @return [Hash<String,Object>]
1163
+ attr_accessor :response
1164
+
1165
+ def initialize(**args)
1166
+ update!(**args)
1167
+ end
1168
+
1169
+ # Update properties of this object
1170
+ def update!(**args)
1171
+ @done = args[:done] if args.key?(:done)
1172
+ @error = args[:error] if args.key?(:error)
1173
+ @metadata = args[:metadata] if args.key?(:metadata)
1174
+ @name = args[:name] if args.key?(:name)
1175
+ @response = args[:response] if args.key?(:response)
1176
+ end
1177
+ end
1178
+
1179
+ # An order on a field.
1180
+ class Order
1181
+ include Google::Apis::Core::Hashable
1182
+
1183
+ # The direction to order by. Defaults to `ASCENDING`.
1184
+ # Corresponds to the JSON property `direction`
1185
+ # @return [String]
1186
+ attr_accessor :direction
1187
+
1188
+ # A reference to a field, such as `max(messages.time) as max_time`.
1189
+ # Corresponds to the JSON property `field`
1190
+ # @return [Google::Apis::FirestoreV1beta1::FieldReference]
1191
+ attr_accessor :field
1192
+
1193
+ def initialize(**args)
1194
+ update!(**args)
1195
+ end
1196
+
1197
+ # Update properties of this object
1198
+ def update!(**args)
1199
+ @direction = args[:direction] if args.key?(:direction)
1200
+ @field = args[:field] if args.key?(:field)
1201
+ end
1202
+ end
1203
+
1204
+ # A precondition on a document, used for conditional operations.
1205
+ class Precondition
1206
+ include Google::Apis::Core::Hashable
1207
+
1208
+ # When set to `true`, the target document must exist.
1209
+ # When set to `false`, the target document must not exist.
1210
+ # Corresponds to the JSON property `exists`
1211
+ # @return [Boolean]
1212
+ attr_accessor :exists
1213
+ alias_method :exists?, :exists
1214
+
1215
+ # When set, the target document must exist and have been last updated at
1216
+ # that time.
1217
+ # Corresponds to the JSON property `updateTime`
1218
+ # @return [String]
1219
+ attr_accessor :update_time
1220
+
1221
+ def initialize(**args)
1222
+ update!(**args)
1223
+ end
1224
+
1225
+ # Update properties of this object
1226
+ def update!(**args)
1227
+ @exists = args[:exists] if args.key?(:exists)
1228
+ @update_time = args[:update_time] if args.key?(:update_time)
1229
+ end
1230
+ end
1231
+
1232
+ # Measures the progress of a particular metric.
1233
+ class Progress
1234
+ include Google::Apis::Core::Hashable
1235
+
1236
+ # An estimate of how much work has been completed. Note that this may be
1237
+ # greater than `work_estimated`.
1238
+ # Corresponds to the JSON property `workCompleted`
1239
+ # @return [Fixnum]
1240
+ attr_accessor :work_completed
1241
+
1242
+ # An estimate of how much work needs to be performed. Zero if the
1243
+ # work estimate is unavailable. May change as work progresses.
1244
+ # Corresponds to the JSON property `workEstimated`
1245
+ # @return [Fixnum]
1246
+ attr_accessor :work_estimated
1247
+
1248
+ def initialize(**args)
1249
+ update!(**args)
1250
+ end
1251
+
1252
+ # Update properties of this object
1253
+ def update!(**args)
1254
+ @work_completed = args[:work_completed] if args.key?(:work_completed)
1255
+ @work_estimated = args[:work_estimated] if args.key?(:work_estimated)
1256
+ end
1257
+ end
1258
+
1259
+ # The projection of document's fields to return.
1260
+ class Projection
1261
+ include Google::Apis::Core::Hashable
1262
+
1263
+ # The fields to return.
1264
+ # If empty, all fields are returned. To only return the name
1265
+ # of the document, use `['__name__']`.
1266
+ # Corresponds to the JSON property `fields`
1267
+ # @return [Array<Google::Apis::FirestoreV1beta1::FieldReference>]
1268
+ attr_accessor :fields
1269
+
1270
+ def initialize(**args)
1271
+ update!(**args)
1272
+ end
1273
+
1274
+ # Update properties of this object
1275
+ def update!(**args)
1276
+ @fields = args[:fields] if args.key?(:fields)
1277
+ end
1278
+ end
1279
+
1280
+ # A target specified by a query.
1281
+ class QueryTarget
1282
+ include Google::Apis::Core::Hashable
1283
+
1284
+ # The parent resource name. In the format:
1285
+ # `projects/`project_id`/databases/`database_id`/documents` or
1286
+ # `projects/`project_id`/databases/`database_id`/documents/`document_path``.
1287
+ # For example:
1288
+ # `projects/my-project/databases/my-database/documents` or
1289
+ # `projects/my-project/databases/my-database/documents/chatrooms/my-chatroom`
1290
+ # Corresponds to the JSON property `parent`
1291
+ # @return [String]
1292
+ attr_accessor :parent
1293
+
1294
+ # A Firestore query.
1295
+ # Corresponds to the JSON property `structuredQuery`
1296
+ # @return [Google::Apis::FirestoreV1beta1::StructuredQuery]
1297
+ attr_accessor :structured_query
1298
+
1299
+ def initialize(**args)
1300
+ update!(**args)
1301
+ end
1302
+
1303
+ # Update properties of this object
1304
+ def update!(**args)
1305
+ @parent = args[:parent] if args.key?(:parent)
1306
+ @structured_query = args[:structured_query] if args.key?(:structured_query)
1307
+ end
1308
+ end
1309
+
1310
+ # Options for a transaction that can only be used to read documents.
1311
+ class ReadOnly
1312
+ include Google::Apis::Core::Hashable
1313
+
1314
+ # Reads documents at the given time.
1315
+ # This may not be older than 60 seconds.
1316
+ # Corresponds to the JSON property `readTime`
1317
+ # @return [String]
1318
+ attr_accessor :read_time
1319
+
1320
+ def initialize(**args)
1321
+ update!(**args)
1322
+ end
1323
+
1324
+ # Update properties of this object
1325
+ def update!(**args)
1326
+ @read_time = args[:read_time] if args.key?(:read_time)
1327
+ end
1328
+ end
1329
+
1330
+ # Options for a transaction that can be used to read and write documents.
1331
+ class ReadWrite
1332
+ include Google::Apis::Core::Hashable
1333
+
1334
+ # An optional transaction to retry.
1335
+ # Corresponds to the JSON property `retryTransaction`
1336
+ # NOTE: Values are automatically base64 encoded/decoded in the client library.
1337
+ # @return [String]
1338
+ attr_accessor :retry_transaction
1339
+
1340
+ def initialize(**args)
1341
+ update!(**args)
1342
+ end
1343
+
1344
+ # Update properties of this object
1345
+ def update!(**args)
1346
+ @retry_transaction = args[:retry_transaction] if args.key?(:retry_transaction)
1347
+ end
1348
+ end
1349
+
1350
+ # The request for Firestore.Rollback.
1351
+ class RollbackRequest
1352
+ include Google::Apis::Core::Hashable
1353
+
1354
+ # The transaction to roll back.
1355
+ # Corresponds to the JSON property `transaction`
1356
+ # NOTE: Values are automatically base64 encoded/decoded in the client library.
1357
+ # @return [String]
1358
+ attr_accessor :transaction
1359
+
1360
+ def initialize(**args)
1361
+ update!(**args)
1362
+ end
1363
+
1364
+ # Update properties of this object
1365
+ def update!(**args)
1366
+ @transaction = args[:transaction] if args.key?(:transaction)
1367
+ end
1368
+ end
1369
+
1370
+ # The request for Firestore.RunQuery.
1371
+ class RunQueryRequest
1372
+ include Google::Apis::Core::Hashable
1373
+
1374
+ # Options for creating a new transaction.
1375
+ # Corresponds to the JSON property `newTransaction`
1376
+ # @return [Google::Apis::FirestoreV1beta1::TransactionOptions]
1377
+ attr_accessor :new_transaction
1378
+
1379
+ # Reads documents as they were at the given time.
1380
+ # This may not be older than 60 seconds.
1381
+ # Corresponds to the JSON property `readTime`
1382
+ # @return [String]
1383
+ attr_accessor :read_time
1384
+
1385
+ # A Firestore query.
1386
+ # Corresponds to the JSON property `structuredQuery`
1387
+ # @return [Google::Apis::FirestoreV1beta1::StructuredQuery]
1388
+ attr_accessor :structured_query
1389
+
1390
+ # Reads documents in a transaction.
1391
+ # Corresponds to the JSON property `transaction`
1392
+ # NOTE: Values are automatically base64 encoded/decoded in the client library.
1393
+ # @return [String]
1394
+ attr_accessor :transaction
1395
+
1396
+ def initialize(**args)
1397
+ update!(**args)
1398
+ end
1399
+
1400
+ # Update properties of this object
1401
+ def update!(**args)
1402
+ @new_transaction = args[:new_transaction] if args.key?(:new_transaction)
1403
+ @read_time = args[:read_time] if args.key?(:read_time)
1404
+ @structured_query = args[:structured_query] if args.key?(:structured_query)
1405
+ @transaction = args[:transaction] if args.key?(:transaction)
1406
+ end
1407
+ end
1408
+
1409
+ # The response for Firestore.RunQuery.
1410
+ class RunQueryResponse
1411
+ include Google::Apis::Core::Hashable
1412
+
1413
+ # A Firestore document.
1414
+ # Must not exceed 1 MiB - 4 bytes.
1415
+ # Corresponds to the JSON property `document`
1416
+ # @return [Google::Apis::FirestoreV1beta1::Document]
1417
+ attr_accessor :document
1418
+
1419
+ # The time at which the document was read. This may be monotonically
1420
+ # increasing; in this case, the previous documents in the result stream are
1421
+ # guaranteed not to have changed between their `read_time` and this one.
1422
+ # If the query returns no results, a response with `read_time` and no
1423
+ # `document` will be sent, and this represents the time at which the query
1424
+ # was run.
1425
+ # Corresponds to the JSON property `readTime`
1426
+ # @return [String]
1427
+ attr_accessor :read_time
1428
+
1429
+ # The number of results that have been skipped due to an offset between
1430
+ # the last response and the current response.
1431
+ # Corresponds to the JSON property `skippedResults`
1432
+ # @return [Fixnum]
1433
+ attr_accessor :skipped_results
1434
+
1435
+ # The transaction that was started as part of this request.
1436
+ # Can only be set in the first response, and only if
1437
+ # RunQueryRequest.new_transaction was set in the request.
1438
+ # If set, no other fields will be set in this response.
1439
+ # Corresponds to the JSON property `transaction`
1440
+ # NOTE: Values are automatically base64 encoded/decoded in the client library.
1441
+ # @return [String]
1442
+ attr_accessor :transaction
1443
+
1444
+ def initialize(**args)
1445
+ update!(**args)
1446
+ end
1447
+
1448
+ # Update properties of this object
1449
+ def update!(**args)
1450
+ @document = args[:document] if args.key?(:document)
1451
+ @read_time = args[:read_time] if args.key?(:read_time)
1452
+ @skipped_results = args[:skipped_results] if args.key?(:skipped_results)
1453
+ @transaction = args[:transaction] if args.key?(:transaction)
1454
+ end
1455
+ end
1456
+
1457
+ # The `Status` type defines a logical error model that is suitable for different
1458
+ # programming environments, including REST APIs and RPC APIs. It is used by
1459
+ # [gRPC](https://github.com/grpc). The error model is designed to be:
1460
+ # - Simple to use and understand for most users
1461
+ # - Flexible enough to meet unexpected needs
1462
+ # # Overview
1463
+ # The `Status` message contains three pieces of data: error code, error message,
1464
+ # and error details. The error code should be an enum value of
1465
+ # google.rpc.Code, but it may accept additional error codes if needed. The
1466
+ # error message should be a developer-facing English message that helps
1467
+ # developers *understand* and *resolve* the error. If a localized user-facing
1468
+ # error message is needed, put the localized message in the error details or
1469
+ # localize it in the client. The optional error details may contain arbitrary
1470
+ # information about the error. There is a predefined set of error detail types
1471
+ # in the package `google.rpc` that can be used for common error conditions.
1472
+ # # Language mapping
1473
+ # The `Status` message is the logical representation of the error model, but it
1474
+ # is not necessarily the actual wire format. When the `Status` message is
1475
+ # exposed in different client libraries and different wire protocols, it can be
1476
+ # mapped differently. For example, it will likely be mapped to some exceptions
1477
+ # in Java, but more likely mapped to some error codes in C.
1478
+ # # Other uses
1479
+ # The error model and the `Status` message can be used in a variety of
1480
+ # environments, either with or without APIs, to provide a
1481
+ # consistent developer experience across different environments.
1482
+ # Example uses of this error model include:
1483
+ # - Partial errors. If a service needs to return partial errors to the client,
1484
+ # it may embed the `Status` in the normal response to indicate the partial
1485
+ # errors.
1486
+ # - Workflow errors. A typical workflow has multiple steps. Each step may
1487
+ # have a `Status` message for error reporting.
1488
+ # - Batch operations. If a client uses batch request and batch response, the
1489
+ # `Status` message should be used directly inside batch response, one for
1490
+ # each error sub-response.
1491
+ # - Asynchronous operations. If an API call embeds asynchronous operation
1492
+ # results in its response, the status of those operations should be
1493
+ # represented directly using the `Status` message.
1494
+ # - Logging. If some API errors are stored in logs, the message `Status` could
1495
+ # be used directly after any stripping needed for security/privacy reasons.
1496
+ class Status
1497
+ include Google::Apis::Core::Hashable
1498
+
1499
+ # The status code, which should be an enum value of google.rpc.Code.
1500
+ # Corresponds to the JSON property `code`
1501
+ # @return [Fixnum]
1502
+ attr_accessor :code
1503
+
1504
+ # A list of messages that carry the error details. There is a common set of
1505
+ # message types for APIs to use.
1506
+ # Corresponds to the JSON property `details`
1507
+ # @return [Array<Hash<String,Object>>]
1508
+ attr_accessor :details
1509
+
1510
+ # A developer-facing error message, which should be in English. Any
1511
+ # user-facing error message should be localized and sent in the
1512
+ # google.rpc.Status.details field, or localized by the client.
1513
+ # Corresponds to the JSON property `message`
1514
+ # @return [String]
1515
+ attr_accessor :message
1516
+
1517
+ def initialize(**args)
1518
+ update!(**args)
1519
+ end
1520
+
1521
+ # Update properties of this object
1522
+ def update!(**args)
1523
+ @code = args[:code] if args.key?(:code)
1524
+ @details = args[:details] if args.key?(:details)
1525
+ @message = args[:message] if args.key?(:message)
1526
+ end
1527
+ end
1528
+
1529
+ # A Firestore query.
1530
+ class StructuredQuery
1531
+ include Google::Apis::Core::Hashable
1532
+
1533
+ # A position in a query result set.
1534
+ # Corresponds to the JSON property `endAt`
1535
+ # @return [Google::Apis::FirestoreV1beta1::Cursor]
1536
+ attr_accessor :end_at
1537
+
1538
+ # The collections to query.
1539
+ # Corresponds to the JSON property `from`
1540
+ # @return [Array<Google::Apis::FirestoreV1beta1::CollectionSelector>]
1541
+ attr_accessor :from
1542
+
1543
+ # The maximum number of results to return.
1544
+ # Applies after all other constraints.
1545
+ # Must be >= 0 if specified.
1546
+ # Corresponds to the JSON property `limit`
1547
+ # @return [Fixnum]
1548
+ attr_accessor :limit
1549
+
1550
+ # The number of results to skip.
1551
+ # Applies before limit, but after all other constraints. Must be >= 0 if
1552
+ # specified.
1553
+ # Corresponds to the JSON property `offset`
1554
+ # @return [Fixnum]
1555
+ attr_accessor :offset
1556
+
1557
+ # The order to apply to the query results.
1558
+ # Firestore guarantees a stable ordering through the following rules:
1559
+ # * Any field required to appear in `order_by`, that is not already
1560
+ # specified in `order_by`, is appended to the order in field name order
1561
+ # by default.
1562
+ # * If an order on `__name__` is not specified, it is appended by default.
1563
+ # Fields are appended with the same sort direction as the last order
1564
+ # specified, or 'ASCENDING' if no order was specified. For example:
1565
+ # * `SELECT * FROM Foo ORDER BY A` becomes
1566
+ # `SELECT * FROM Foo ORDER BY A, __name__`
1567
+ # * `SELECT * FROM Foo ORDER BY A DESC` becomes
1568
+ # `SELECT * FROM Foo ORDER BY A DESC, __name__ DESC`
1569
+ # * `SELECT * FROM Foo WHERE A > 1` becomes
1570
+ # `SELECT * FROM Foo WHERE A > 1 ORDER BY A, __name__`
1571
+ # Corresponds to the JSON property `orderBy`
1572
+ # @return [Array<Google::Apis::FirestoreV1beta1::Order>]
1573
+ attr_accessor :order_by
1574
+
1575
+ # The projection of document's fields to return.
1576
+ # Corresponds to the JSON property `select`
1577
+ # @return [Google::Apis::FirestoreV1beta1::Projection]
1578
+ attr_accessor :select
1579
+
1580
+ # A position in a query result set.
1581
+ # Corresponds to the JSON property `startAt`
1582
+ # @return [Google::Apis::FirestoreV1beta1::Cursor]
1583
+ attr_accessor :start_at
1584
+
1585
+ # A filter.
1586
+ # Corresponds to the JSON property `where`
1587
+ # @return [Google::Apis::FirestoreV1beta1::Filter]
1588
+ attr_accessor :where
1589
+
1590
+ def initialize(**args)
1591
+ update!(**args)
1592
+ end
1593
+
1594
+ # Update properties of this object
1595
+ def update!(**args)
1596
+ @end_at = args[:end_at] if args.key?(:end_at)
1597
+ @from = args[:from] if args.key?(:from)
1598
+ @limit = args[:limit] if args.key?(:limit)
1599
+ @offset = args[:offset] if args.key?(:offset)
1600
+ @order_by = args[:order_by] if args.key?(:order_by)
1601
+ @select = args[:select] if args.key?(:select)
1602
+ @start_at = args[:start_at] if args.key?(:start_at)
1603
+ @where = args[:where] if args.key?(:where)
1604
+ end
1605
+ end
1606
+
1607
+ # A specification of a set of documents to listen to.
1608
+ class Target
1609
+ include Google::Apis::Core::Hashable
1610
+
1611
+ # A target specified by a set of documents names.
1612
+ # Corresponds to the JSON property `documents`
1613
+ # @return [Google::Apis::FirestoreV1beta1::DocumentsTarget]
1614
+ attr_accessor :documents
1615
+
1616
+ # If the target should be removed once it is current and consistent.
1617
+ # Corresponds to the JSON property `once`
1618
+ # @return [Boolean]
1619
+ attr_accessor :once
1620
+ alias_method :once?, :once
1621
+
1622
+ # A target specified by a query.
1623
+ # Corresponds to the JSON property `query`
1624
+ # @return [Google::Apis::FirestoreV1beta1::QueryTarget]
1625
+ attr_accessor :query
1626
+
1627
+ # Start listening after a specific `read_time`.
1628
+ # The client must know the state of matching documents at this time.
1629
+ # Corresponds to the JSON property `readTime`
1630
+ # @return [String]
1631
+ attr_accessor :read_time
1632
+
1633
+ # A resume token from a prior TargetChange for an identical target.
1634
+ # Using a resume token with a different target is unsupported and may fail.
1635
+ # Corresponds to the JSON property `resumeToken`
1636
+ # NOTE: Values are automatically base64 encoded/decoded in the client library.
1637
+ # @return [String]
1638
+ attr_accessor :resume_token
1639
+
1640
+ # A client provided target ID.
1641
+ # If not set, the server will assign an ID for the target.
1642
+ # Used for resuming a target without changing IDs. The IDs can either be
1643
+ # client-assigned or be server-assigned in a previous stream. All targets
1644
+ # with client provided IDs must be added before adding a target that needs
1645
+ # a server-assigned id.
1646
+ # Corresponds to the JSON property `targetId`
1647
+ # @return [Fixnum]
1648
+ attr_accessor :target_id
1649
+
1650
+ def initialize(**args)
1651
+ update!(**args)
1652
+ end
1653
+
1654
+ # Update properties of this object
1655
+ def update!(**args)
1656
+ @documents = args[:documents] if args.key?(:documents)
1657
+ @once = args[:once] if args.key?(:once)
1658
+ @query = args[:query] if args.key?(:query)
1659
+ @read_time = args[:read_time] if args.key?(:read_time)
1660
+ @resume_token = args[:resume_token] if args.key?(:resume_token)
1661
+ @target_id = args[:target_id] if args.key?(:target_id)
1662
+ end
1663
+ end
1664
+
1665
+ # Targets being watched have changed.
1666
+ class TargetChange
1667
+ include Google::Apis::Core::Hashable
1668
+
1669
+ # The `Status` type defines a logical error model that is suitable for different
1670
+ # programming environments, including REST APIs and RPC APIs. It is used by
1671
+ # [gRPC](https://github.com/grpc). The error model is designed to be:
1672
+ # - Simple to use and understand for most users
1673
+ # - Flexible enough to meet unexpected needs
1674
+ # # Overview
1675
+ # The `Status` message contains three pieces of data: error code, error message,
1676
+ # and error details. The error code should be an enum value of
1677
+ # google.rpc.Code, but it may accept additional error codes if needed. The
1678
+ # error message should be a developer-facing English message that helps
1679
+ # developers *understand* and *resolve* the error. If a localized user-facing
1680
+ # error message is needed, put the localized message in the error details or
1681
+ # localize it in the client. The optional error details may contain arbitrary
1682
+ # information about the error. There is a predefined set of error detail types
1683
+ # in the package `google.rpc` that can be used for common error conditions.
1684
+ # # Language mapping
1685
+ # The `Status` message is the logical representation of the error model, but it
1686
+ # is not necessarily the actual wire format. When the `Status` message is
1687
+ # exposed in different client libraries and different wire protocols, it can be
1688
+ # mapped differently. For example, it will likely be mapped to some exceptions
1689
+ # in Java, but more likely mapped to some error codes in C.
1690
+ # # Other uses
1691
+ # The error model and the `Status` message can be used in a variety of
1692
+ # environments, either with or without APIs, to provide a
1693
+ # consistent developer experience across different environments.
1694
+ # Example uses of this error model include:
1695
+ # - Partial errors. If a service needs to return partial errors to the client,
1696
+ # it may embed the `Status` in the normal response to indicate the partial
1697
+ # errors.
1698
+ # - Workflow errors. A typical workflow has multiple steps. Each step may
1699
+ # have a `Status` message for error reporting.
1700
+ # - Batch operations. If a client uses batch request and batch response, the
1701
+ # `Status` message should be used directly inside batch response, one for
1702
+ # each error sub-response.
1703
+ # - Asynchronous operations. If an API call embeds asynchronous operation
1704
+ # results in its response, the status of those operations should be
1705
+ # represented directly using the `Status` message.
1706
+ # - Logging. If some API errors are stored in logs, the message `Status` could
1707
+ # be used directly after any stripping needed for security/privacy reasons.
1708
+ # Corresponds to the JSON property `cause`
1709
+ # @return [Google::Apis::FirestoreV1beta1::Status]
1710
+ attr_accessor :cause
1711
+
1712
+ # The consistent `read_time` for the given `target_ids` (omitted when the
1713
+ # target_ids are not at a consistent snapshot).
1714
+ # The stream is guaranteed to send a `read_time` with `target_ids` empty
1715
+ # whenever the entire stream reaches a new consistent snapshot. ADD,
1716
+ # CURRENT, and RESET messages are guaranteed to (eventually) result in a
1717
+ # new consistent snapshot (while NO_CHANGE and REMOVE messages are not).
1718
+ # For a given stream, `read_time` is guaranteed to be monotonically
1719
+ # increasing.
1720
+ # Corresponds to the JSON property `readTime`
1721
+ # @return [String]
1722
+ attr_accessor :read_time
1723
+
1724
+ # A token that can be used to resume the stream for the given `target_ids`,
1725
+ # or all targets if `target_ids` is empty.
1726
+ # Not set on every target change.
1727
+ # Corresponds to the JSON property `resumeToken`
1728
+ # NOTE: Values are automatically base64 encoded/decoded in the client library.
1729
+ # @return [String]
1730
+ attr_accessor :resume_token
1731
+
1732
+ # The type of change that occurred.
1733
+ # Corresponds to the JSON property `targetChangeType`
1734
+ # @return [String]
1735
+ attr_accessor :target_change_type
1736
+
1737
+ # The target IDs of targets that have changed.
1738
+ # If empty, the change applies to all targets.
1739
+ # For `target_change_type=ADD`, the order of the target IDs matches the order
1740
+ # of the requests to add the targets. This allows clients to unambiguously
1741
+ # associate server-assigned target IDs with added targets.
1742
+ # For other states, the order of the target IDs is not defined.
1743
+ # Corresponds to the JSON property `targetIds`
1744
+ # @return [Array<Fixnum>]
1745
+ attr_accessor :target_ids
1746
+
1747
+ def initialize(**args)
1748
+ update!(**args)
1749
+ end
1750
+
1751
+ # Update properties of this object
1752
+ def update!(**args)
1753
+ @cause = args[:cause] if args.key?(:cause)
1754
+ @read_time = args[:read_time] if args.key?(:read_time)
1755
+ @resume_token = args[:resume_token] if args.key?(:resume_token)
1756
+ @target_change_type = args[:target_change_type] if args.key?(:target_change_type)
1757
+ @target_ids = args[:target_ids] if args.key?(:target_ids)
1758
+ end
1759
+ end
1760
+
1761
+ # Options for creating a new transaction.
1762
+ class TransactionOptions
1763
+ include Google::Apis::Core::Hashable
1764
+
1765
+ # Options for a transaction that can only be used to read documents.
1766
+ # Corresponds to the JSON property `readOnly`
1767
+ # @return [Google::Apis::FirestoreV1beta1::ReadOnly]
1768
+ attr_accessor :read_only
1769
+
1770
+ # Options for a transaction that can be used to read and write documents.
1771
+ # Corresponds to the JSON property `readWrite`
1772
+ # @return [Google::Apis::FirestoreV1beta1::ReadWrite]
1773
+ attr_accessor :read_write
1774
+
1775
+ def initialize(**args)
1776
+ update!(**args)
1777
+ end
1778
+
1779
+ # Update properties of this object
1780
+ def update!(**args)
1781
+ @read_only = args[:read_only] if args.key?(:read_only)
1782
+ @read_write = args[:read_write] if args.key?(:read_write)
1783
+ end
1784
+ end
1785
+
1786
+ # A filter with a single operand.
1787
+ class UnaryFilter
1788
+ include Google::Apis::Core::Hashable
1789
+
1790
+ # A reference to a field, such as `max(messages.time) as max_time`.
1791
+ # Corresponds to the JSON property `field`
1792
+ # @return [Google::Apis::FirestoreV1beta1::FieldReference]
1793
+ attr_accessor :field
1794
+
1795
+ # The unary operator to apply.
1796
+ # Corresponds to the JSON property `op`
1797
+ # @return [String]
1798
+ attr_accessor :op
1799
+
1800
+ def initialize(**args)
1801
+ update!(**args)
1802
+ end
1803
+
1804
+ # Update properties of this object
1805
+ def update!(**args)
1806
+ @field = args[:field] if args.key?(:field)
1807
+ @op = args[:op] if args.key?(:op)
1808
+ end
1809
+ end
1810
+
1811
+ # A message that can hold any of the supported value types.
1812
+ class Value
1813
+ include Google::Apis::Core::Hashable
1814
+
1815
+ # An array value.
1816
+ # Corresponds to the JSON property `arrayValue`
1817
+ # @return [Google::Apis::FirestoreV1beta1::ArrayValue]
1818
+ attr_accessor :array_value
1819
+
1820
+ # A boolean value.
1821
+ # Corresponds to the JSON property `booleanValue`
1822
+ # @return [Boolean]
1823
+ attr_accessor :boolean_value
1824
+ alias_method :boolean_value?, :boolean_value
1825
+
1826
+ # A bytes value.
1827
+ # Must not exceed 1 MiB - 89 bytes.
1828
+ # Only the first 1,500 bytes are considered by queries.
1829
+ # Corresponds to the JSON property `bytesValue`
1830
+ # NOTE: Values are automatically base64 encoded/decoded in the client library.
1831
+ # @return [String]
1832
+ attr_accessor :bytes_value
1833
+
1834
+ # A double value.
1835
+ # Corresponds to the JSON property `doubleValue`
1836
+ # @return [Float]
1837
+ attr_accessor :double_value
1838
+
1839
+ # An object representing a latitude/longitude pair. This is expressed as a pair
1840
+ # of doubles representing degrees latitude and degrees longitude. Unless
1841
+ # specified otherwise, this must conform to the
1842
+ # <a href="http://www.unoosa.org/pdf/icg/2012/template/WGS_84.pdf">WGS84
1843
+ # standard</a>. Values must be within normalized ranges.
1844
+ # Example of normalization code in Python:
1845
+ # def NormalizeLongitude(longitude):
1846
+ # """Wraps decimal degrees longitude to [-180.0, 180.0]."""
1847
+ # q, r = divmod(longitude, 360.0)
1848
+ # if r > 180.0 or (r == 180.0 and q <= -1.0):
1849
+ # return r - 360.0
1850
+ # return r
1851
+ # def NormalizeLatLng(latitude, longitude):
1852
+ # """Wraps decimal degrees latitude and longitude to
1853
+ # [-90.0, 90.0] and [-180.0, 180.0], respectively."""
1854
+ # r = latitude % 360.0
1855
+ # if r <= 90.0:
1856
+ # return r, NormalizeLongitude(longitude)
1857
+ # elif r >= 270.0:
1858
+ # return r - 360, NormalizeLongitude(longitude)
1859
+ # else:
1860
+ # return 180 - r, NormalizeLongitude(longitude + 180.0)
1861
+ # assert 180.0 == NormalizeLongitude(180.0)
1862
+ # assert -180.0 == NormalizeLongitude(-180.0)
1863
+ # assert -179.0 == NormalizeLongitude(181.0)
1864
+ # assert (0.0, 0.0) == NormalizeLatLng(360.0, 0.0)
1865
+ # assert (0.0, 0.0) == NormalizeLatLng(-360.0, 0.0)
1866
+ # assert (85.0, 180.0) == NormalizeLatLng(95.0, 0.0)
1867
+ # assert (-85.0, -170.0) == NormalizeLatLng(-95.0, 10.0)
1868
+ # assert (90.0, 10.0) == NormalizeLatLng(90.0, 10.0)
1869
+ # assert (-90.0, -10.0) == NormalizeLatLng(-90.0, -10.0)
1870
+ # assert (0.0, -170.0) == NormalizeLatLng(-180.0, 10.0)
1871
+ # assert (0.0, -170.0) == NormalizeLatLng(180.0, 10.0)
1872
+ # assert (-90.0, 10.0) == NormalizeLatLng(270.0, 10.0)
1873
+ # assert (90.0, 10.0) == NormalizeLatLng(-270.0, 10.0)
1874
+ # Corresponds to the JSON property `geoPointValue`
1875
+ # @return [Google::Apis::FirestoreV1beta1::LatLng]
1876
+ attr_accessor :geo_point_value
1877
+
1878
+ # An integer value.
1879
+ # Corresponds to the JSON property `integerValue`
1880
+ # @return [Fixnum]
1881
+ attr_accessor :integer_value
1882
+
1883
+ # A map value.
1884
+ # Corresponds to the JSON property `mapValue`
1885
+ # @return [Google::Apis::FirestoreV1beta1::MapValue]
1886
+ attr_accessor :map_value
1887
+
1888
+ # A null value.
1889
+ # Corresponds to the JSON property `nullValue`
1890
+ # @return [String]
1891
+ attr_accessor :null_value
1892
+
1893
+ # A reference to a document. For example:
1894
+ # `projects/`project_id`/databases/`database_id`/documents/`document_path``.
1895
+ # Corresponds to the JSON property `referenceValue`
1896
+ # @return [String]
1897
+ attr_accessor :reference_value
1898
+
1899
+ # A string value.
1900
+ # The string, represented as UTF-8, must not exceed 1 MiB - 89 bytes.
1901
+ # Only the first 1,500 bytes of the UTF-8 representation are considered by
1902
+ # queries.
1903
+ # Corresponds to the JSON property `stringValue`
1904
+ # @return [String]
1905
+ attr_accessor :string_value
1906
+
1907
+ # A timestamp value.
1908
+ # Precise only to microseconds. When stored, any additional precision is
1909
+ # rounded down.
1910
+ # Corresponds to the JSON property `timestampValue`
1911
+ # @return [String]
1912
+ attr_accessor :timestamp_value
1913
+
1914
+ def initialize(**args)
1915
+ update!(**args)
1916
+ end
1917
+
1918
+ # Update properties of this object
1919
+ def update!(**args)
1920
+ @array_value = args[:array_value] if args.key?(:array_value)
1921
+ @boolean_value = args[:boolean_value] if args.key?(:boolean_value)
1922
+ @bytes_value = args[:bytes_value] if args.key?(:bytes_value)
1923
+ @double_value = args[:double_value] if args.key?(:double_value)
1924
+ @geo_point_value = args[:geo_point_value] if args.key?(:geo_point_value)
1925
+ @integer_value = args[:integer_value] if args.key?(:integer_value)
1926
+ @map_value = args[:map_value] if args.key?(:map_value)
1927
+ @null_value = args[:null_value] if args.key?(:null_value)
1928
+ @reference_value = args[:reference_value] if args.key?(:reference_value)
1929
+ @string_value = args[:string_value] if args.key?(:string_value)
1930
+ @timestamp_value = args[:timestamp_value] if args.key?(:timestamp_value)
1931
+ end
1932
+ end
1933
+
1934
+ # A write on a document.
1935
+ class Write
1936
+ include Google::Apis::Core::Hashable
1937
+
1938
+ # A precondition on a document, used for conditional operations.
1939
+ # Corresponds to the JSON property `currentDocument`
1940
+ # @return [Google::Apis::FirestoreV1beta1::Precondition]
1941
+ attr_accessor :current_document
1942
+
1943
+ # A document name to delete. In the format:
1944
+ # `projects/`project_id`/databases/`database_id`/documents/`document_path``.
1945
+ # Corresponds to the JSON property `delete`
1946
+ # @return [String]
1947
+ attr_accessor :delete
1948
+
1949
+ # A transformation of a document.
1950
+ # Corresponds to the JSON property `transform`
1951
+ # @return [Google::Apis::FirestoreV1beta1::DocumentTransform]
1952
+ attr_accessor :transform
1953
+
1954
+ # A Firestore document.
1955
+ # Must not exceed 1 MiB - 4 bytes.
1956
+ # Corresponds to the JSON property `update`
1957
+ # @return [Google::Apis::FirestoreV1beta1::Document]
1958
+ attr_accessor :update
1959
+
1960
+ # A set of field paths on a document.
1961
+ # Used to restrict a get or update operation on a document to a subset of its
1962
+ # fields.
1963
+ # This is different from standard field masks, as this is always scoped to a
1964
+ # Document, and takes in account the dynamic nature of Value.
1965
+ # Corresponds to the JSON property `updateMask`
1966
+ # @return [Google::Apis::FirestoreV1beta1::DocumentMask]
1967
+ attr_accessor :update_mask
1968
+
1969
+ def initialize(**args)
1970
+ update!(**args)
1971
+ end
1972
+
1973
+ # Update properties of this object
1974
+ def update!(**args)
1975
+ @current_document = args[:current_document] if args.key?(:current_document)
1976
+ @delete = args[:delete] if args.key?(:delete)
1977
+ @transform = args[:transform] if args.key?(:transform)
1978
+ @update = args[:update] if args.key?(:update)
1979
+ @update_mask = args[:update_mask] if args.key?(:update_mask)
1980
+ end
1981
+ end
1982
+
1983
+ # The request for Firestore.Write.
1984
+ # The first request creates a stream, or resumes an existing one from a token.
1985
+ # When creating a new stream, the server replies with a response containing
1986
+ # only an ID and a token, to use in the next request.
1987
+ # When resuming a stream, the server first streams any responses later than the
1988
+ # given token, then a response containing only an up-to-date token, to use in
1989
+ # the next request.
1990
+ class WriteRequest
1991
+ include Google::Apis::Core::Hashable
1992
+
1993
+ # Labels associated with this write request.
1994
+ # Corresponds to the JSON property `labels`
1995
+ # @return [Hash<String,String>]
1996
+ attr_accessor :labels
1997
+
1998
+ # The ID of the write stream to resume.
1999
+ # This may only be set in the first message. When left empty, a new write
2000
+ # stream will be created.
2001
+ # Corresponds to the JSON property `streamId`
2002
+ # @return [String]
2003
+ attr_accessor :stream_id
2004
+
2005
+ # A stream token that was previously sent by the server.
2006
+ # The client should set this field to the token from the most recent
2007
+ # WriteResponse it has received. This acknowledges that the client has
2008
+ # received responses up to this token. After sending this token, earlier
2009
+ # tokens may not be used anymore.
2010
+ # The server may close the stream if there are too many unacknowledged
2011
+ # responses.
2012
+ # Leave this field unset when creating a new stream. To resume a stream at
2013
+ # a specific point, set this field and the `stream_id` field.
2014
+ # Leave this field unset when creating a new stream.
2015
+ # Corresponds to the JSON property `streamToken`
2016
+ # NOTE: Values are automatically base64 encoded/decoded in the client library.
2017
+ # @return [String]
2018
+ attr_accessor :stream_token
2019
+
2020
+ # The writes to apply.
2021
+ # Always executed atomically and in order.
2022
+ # This must be empty on the first request.
2023
+ # This may be empty on the last request.
2024
+ # This must not be empty on all other requests.
2025
+ # Corresponds to the JSON property `writes`
2026
+ # @return [Array<Google::Apis::FirestoreV1beta1::Write>]
2027
+ attr_accessor :writes
2028
+
2029
+ def initialize(**args)
2030
+ update!(**args)
2031
+ end
2032
+
2033
+ # Update properties of this object
2034
+ def update!(**args)
2035
+ @labels = args[:labels] if args.key?(:labels)
2036
+ @stream_id = args[:stream_id] if args.key?(:stream_id)
2037
+ @stream_token = args[:stream_token] if args.key?(:stream_token)
2038
+ @writes = args[:writes] if args.key?(:writes)
2039
+ end
2040
+ end
2041
+
2042
+ # The response for Firestore.Write.
2043
+ class WriteResponse
2044
+ include Google::Apis::Core::Hashable
2045
+
2046
+ # The time at which the commit occurred.
2047
+ # Corresponds to the JSON property `commitTime`
2048
+ # @return [String]
2049
+ attr_accessor :commit_time
2050
+
2051
+ # The ID of the stream.
2052
+ # Only set on the first message, when a new stream was created.
2053
+ # Corresponds to the JSON property `streamId`
2054
+ # @return [String]
2055
+ attr_accessor :stream_id
2056
+
2057
+ # A token that represents the position of this response in the stream.
2058
+ # This can be used by a client to resume the stream at this point.
2059
+ # This field is always set.
2060
+ # Corresponds to the JSON property `streamToken`
2061
+ # NOTE: Values are automatically base64 encoded/decoded in the client library.
2062
+ # @return [String]
2063
+ attr_accessor :stream_token
2064
+
2065
+ # The result of applying the writes.
2066
+ # This i-th write result corresponds to the i-th write in the
2067
+ # request.
2068
+ # Corresponds to the JSON property `writeResults`
2069
+ # @return [Array<Google::Apis::FirestoreV1beta1::WriteResult>]
2070
+ attr_accessor :write_results
2071
+
2072
+ def initialize(**args)
2073
+ update!(**args)
2074
+ end
2075
+
2076
+ # Update properties of this object
2077
+ def update!(**args)
2078
+ @commit_time = args[:commit_time] if args.key?(:commit_time)
2079
+ @stream_id = args[:stream_id] if args.key?(:stream_id)
2080
+ @stream_token = args[:stream_token] if args.key?(:stream_token)
2081
+ @write_results = args[:write_results] if args.key?(:write_results)
2082
+ end
2083
+ end
2084
+
2085
+ # The result of applying a write.
2086
+ class WriteResult
2087
+ include Google::Apis::Core::Hashable
2088
+
2089
+ # The results of applying each DocumentTransform.FieldTransform, in the
2090
+ # same order.
2091
+ # Corresponds to the JSON property `transformResults`
2092
+ # @return [Array<Google::Apis::FirestoreV1beta1::Value>]
2093
+ attr_accessor :transform_results
2094
+
2095
+ # The last update time of the document after applying the write. Not set
2096
+ # after a `delete`.
2097
+ # If the write did not actually change the document, this will be the
2098
+ # previous update_time.
2099
+ # Corresponds to the JSON property `updateTime`
2100
+ # @return [String]
2101
+ attr_accessor :update_time
2102
+
2103
+ def initialize(**args)
2104
+ update!(**args)
2105
+ end
2106
+
2107
+ # Update properties of this object
2108
+ def update!(**args)
2109
+ @transform_results = args[:transform_results] if args.key?(:transform_results)
2110
+ @update_time = args[:update_time] if args.key?(:update_time)
2111
+ end
2112
+ end
2113
+ end
2114
+ end
2115
+ end