google-api-client 0.13.6 → 0.14.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (122) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +56 -0
  3. data/generated/google/apis/adsense_v1_4.rb +1 -1
  4. data/generated/google/apis/adsensehost_v4_1.rb +1 -1
  5. data/generated/google/apis/androiddeviceprovisioning_v1.rb +3 -3
  6. data/generated/google/apis/androiddeviceprovisioning_v1/service.rb +3 -3
  7. data/generated/google/apis/androidenterprise_v1.rb +1 -1
  8. data/generated/google/apis/androidmanagement_v1.rb +1 -1
  9. data/generated/google/apis/androidmanagement_v1/classes.rb +8 -0
  10. data/generated/google/apis/androidmanagement_v1/representations.rb +1 -0
  11. data/generated/google/apis/androidpublisher_v1.rb +1 -1
  12. data/generated/google/apis/androidpublisher_v1_1.rb +1 -1
  13. data/generated/google/apis/androidpublisher_v2.rb +1 -1
  14. data/generated/google/apis/androidpublisher_v2/classes.rb +1 -0
  15. data/generated/google/apis/androidpublisher_v2/service.rb +1 -1
  16. data/generated/google/apis/appstate_v1.rb +1 -1
  17. data/generated/google/apis/bigquery_v2.rb +1 -1
  18. data/generated/google/apis/bigquery_v2/classes.rb +6 -0
  19. data/generated/google/apis/bigquery_v2/representations.rb +1 -0
  20. data/generated/google/apis/bigquerydatatransfer_v1.rb +2 -2
  21. data/generated/google/apis/bigquerydatatransfer_v1/classes.rb +19 -69
  22. data/generated/google/apis/bigquerydatatransfer_v1/representations.rb +3 -41
  23. data/generated/google/apis/bigquerydatatransfer_v1/service.rb +17 -149
  24. data/generated/google/apis/calendar_v3.rb +1 -1
  25. data/generated/google/apis/cloudbuild_v1.rb +1 -1
  26. data/generated/google/apis/cloudfunctions_v1.rb +1 -1
  27. data/generated/google/apis/cloudfunctions_v1/classes.rb +7 -0
  28. data/generated/google/apis/cloudfunctions_v1/representations.rb +1 -0
  29. data/generated/google/apis/cloudfunctions_v1beta2.rb +1 -1
  30. data/generated/google/apis/cloudfunctions_v1beta2/classes.rb +30 -0
  31. data/generated/google/apis/cloudfunctions_v1beta2/representations.rb +4 -0
  32. data/generated/google/apis/{toolresults_v1beta3firstparty.rb → cloudtasks_v2beta2.rb} +13 -9
  33. data/generated/google/apis/cloudtasks_v2beta2/classes.rb +1709 -0
  34. data/generated/google/apis/cloudtasks_v2beta2/representations.rb +585 -0
  35. data/generated/google/apis/cloudtasks_v2beta2/service.rb +1016 -0
  36. data/generated/google/apis/cloudtrace_v2.rb +1 -4
  37. data/generated/google/apis/cloudtrace_v2/classes.rb +0 -78
  38. data/generated/google/apis/cloudtrace_v2/representations.rb +0 -43
  39. data/generated/google/apis/cloudtrace_v2/service.rb +0 -101
  40. data/generated/google/apis/compute_alpha.rb +1 -1
  41. data/generated/google/apis/compute_alpha/classes.rb +833 -120
  42. data/generated/google/apis/compute_alpha/representations.rb +263 -26
  43. data/generated/google/apis/compute_alpha/service.rb +795 -107
  44. data/generated/google/apis/compute_beta.rb +1 -1
  45. data/generated/google/apis/compute_beta/classes.rb +5329 -524
  46. data/generated/google/apis/compute_beta/representations.rb +2241 -36
  47. data/generated/google/apis/compute_beta/service.rb +5 -5
  48. data/generated/google/apis/compute_v1.rb +1 -1
  49. data/generated/google/apis/compute_v1/classes.rb +4 -5
  50. data/generated/google/apis/container_v1.rb +1 -1
  51. data/generated/google/apis/container_v1/classes.rb +12 -0
  52. data/generated/google/apis/container_v1/representations.rb +1 -0
  53. data/generated/google/apis/container_v1beta1.rb +1 -1
  54. data/generated/google/apis/container_v1beta1/classes.rb +54 -0
  55. data/generated/google/apis/container_v1beta1/representations.rb +18 -0
  56. data/generated/google/apis/content_v2.rb +1 -1
  57. data/generated/google/apis/content_v2sandbox.rb +1 -1
  58. data/generated/google/apis/dataflow_v1b3.rb +1 -1
  59. data/generated/google/apis/dataflow_v1b3/classes.rb +6 -39
  60. data/generated/google/apis/dataflow_v1b3/representations.rb +1 -16
  61. data/generated/google/apis/deploymentmanager_alpha.rb +1 -1
  62. data/generated/google/apis/deploymentmanager_alpha/classes.rb +71 -3
  63. data/generated/google/apis/deploymentmanager_alpha/representations.rb +32 -0
  64. data/generated/google/apis/deploymentmanager_v2.rb +1 -1
  65. data/generated/google/apis/deploymentmanager_v2/service.rb +1 -1
  66. data/generated/google/apis/deploymentmanager_v2beta.rb +1 -1
  67. data/generated/google/apis/deploymentmanager_v2beta/classes.rb +39 -3
  68. data/generated/google/apis/deploymentmanager_v2beta/representations.rb +16 -0
  69. data/generated/google/apis/dlp_v2beta1.rb +1 -1
  70. data/generated/google/apis/dlp_v2beta1/classes.rb +1605 -49
  71. data/generated/google/apis/dlp_v2beta1/representations.rb +832 -30
  72. data/generated/google/apis/dlp_v2beta1/service.rb +62 -0
  73. data/generated/google/apis/doubleclicksearch_v2.rb +1 -1
  74. data/generated/google/apis/games_configuration_v1configuration.rb +1 -1
  75. data/generated/google/apis/games_management_v1management.rb +1 -1
  76. data/generated/google/apis/games_v1.rb +1 -1
  77. data/generated/google/apis/gmail_v1.rb +1 -1
  78. data/generated/google/apis/gmail_v1/classes.rb +0 -36
  79. data/generated/google/apis/gmail_v1/representations.rb +0 -16
  80. data/generated/google/apis/language_v1.rb +1 -1
  81. data/generated/google/apis/language_v1/classes.rb +74 -0
  82. data/generated/google/apis/language_v1/representations.rb +35 -0
  83. data/generated/google/apis/language_v1/service.rb +31 -0
  84. data/generated/google/apis/language_v1beta1.rb +1 -1
  85. data/generated/google/apis/language_v1beta2.rb +1 -1
  86. data/generated/google/apis/ml_v1.rb +1 -1
  87. data/generated/google/apis/ml_v1/classes.rb +3 -0
  88. data/generated/google/apis/people_v1.rb +1 -1
  89. data/generated/google/apis/people_v1/classes.rb +8 -0
  90. data/generated/google/apis/people_v1/representations.rb +1 -0
  91. data/generated/google/apis/plus_domains_v1/service.rb +1 -1
  92. data/generated/google/apis/plus_v1/service.rb +1 -1
  93. data/generated/google/apis/servicecontrol_v1.rb +1 -1
  94. data/generated/google/apis/servicecontrol_v1/classes.rb +35 -6
  95. data/generated/google/apis/servicecontrol_v1/representations.rb +16 -1
  96. data/generated/google/apis/servicemanagement_v1.rb +1 -1
  97. data/generated/google/apis/servicemanagement_v1/classes.rb +1 -1
  98. data/generated/google/apis/serviceuser_v1.rb +1 -1
  99. data/generated/google/apis/serviceuser_v1/classes.rb +1 -1
  100. data/generated/google/apis/sourcerepo_v1.rb +4 -1
  101. data/generated/google/apis/sourcerepo_v1/classes.rb +45 -204
  102. data/generated/google/apis/sourcerepo_v1/representations.rb +10 -90
  103. data/generated/google/apis/storage_v1beta1.rb +1 -1
  104. data/generated/google/apis/storage_v1beta1/service.rb +1 -1
  105. data/generated/google/apis/storage_v1beta2.rb +1 -1
  106. data/generated/google/apis/storage_v1beta2/service.rb +1 -1
  107. data/generated/google/apis/streetviewpublish_v1.rb +1 -1
  108. data/generated/google/apis/streetviewpublish_v1/classes.rb +5 -3
  109. data/generated/google/apis/streetviewpublish_v1/service.rb +6 -4
  110. data/generated/google/apis/toolresults_v1beta3.rb +1 -1
  111. data/generated/google/apis/youtube_analytics_v1.rb +1 -1
  112. data/generated/google/apis/youtube_analytics_v1beta1.rb +1 -1
  113. data/generated/google/apis/youtube_partner_v1.rb +1 -1
  114. data/generated/google/apis/youtube_v3.rb +1 -1
  115. data/generated/google/apis/youtube_v3/classes.rb +22 -85
  116. data/generated/google/apis/youtube_v3/representations.rb +3 -46
  117. data/generated/google/apis/youtube_v3/service.rb +11 -1
  118. data/lib/google/apis/version.rb +1 -1
  119. metadata +6 -6
  120. data/generated/google/apis/toolresults_v1beta3firstparty/classes.rb +0 -2630
  121. data/generated/google/apis/toolresults_v1beta3firstparty/representations.rb +0 -886
  122. data/generated/google/apis/toolresults_v1beta3firstparty/service.rb +0 -1336
@@ -484,24 +484,6 @@ module Google
484
484
  include Google::Apis::Core::JsonObjectSupport
485
485
  end
486
486
 
487
- class LiveBroadcastTopic
488
- class Representation < Google::Apis::Core::JsonRepresentation; end
489
-
490
- include Google::Apis::Core::JsonObjectSupport
491
- end
492
-
493
- class LiveBroadcastTopicDetails
494
- class Representation < Google::Apis::Core::JsonRepresentation; end
495
-
496
- include Google::Apis::Core::JsonObjectSupport
497
- end
498
-
499
- class LiveBroadcastTopicSnippet
500
- class Representation < Google::Apis::Core::JsonRepresentation; end
501
-
502
- include Google::Apis::Core::JsonObjectSupport
503
- end
504
-
505
487
  class LiveChatBan
506
488
  class Representation < Google::Apis::Core::JsonRepresentation; end
507
489
 
@@ -1759,10 +1741,12 @@ module Google
1759
1741
  property :mda_rating, as: 'mdaRating'
1760
1742
  property :medietilsynet_rating, as: 'medietilsynetRating'
1761
1743
  property :meku_rating, as: 'mekuRating'
1744
+ property :mena_mpaa_rating, as: 'menaMpaaRating'
1762
1745
  property :mibac_rating, as: 'mibacRating'
1763
1746
  property :moc_rating, as: 'mocRating'
1764
1747
  property :moctw_rating, as: 'moctwRating'
1765
1748
  property :mpaa_rating, as: 'mpaaRating'
1749
+ property :mpaat_rating, as: 'mpaatRating'
1766
1750
  property :mtrcb_rating, as: 'mtrcbRating'
1767
1751
  property :nbc_rating, as: 'nbcRating'
1768
1752
  property :nbcpl_rating, as: 'nbcplRating'
@@ -2041,8 +2025,6 @@ module Google
2041
2025
 
2042
2026
  property :status, as: 'status', class: Google::Apis::YoutubeV3::LiveBroadcastStatus, decorator: Google::Apis::YoutubeV3::LiveBroadcastStatus::Representation
2043
2027
 
2044
- property :topic_details, as: 'topicDetails', class: Google::Apis::YoutubeV3::LiveBroadcastTopicDetails, decorator: Google::Apis::YoutubeV3::LiveBroadcastTopicDetails::Representation
2045
-
2046
2028
  end
2047
2029
  end
2048
2030
 
@@ -2058,6 +2040,7 @@ module Google
2058
2040
  property :enable_dvr, as: 'enableDvr'
2059
2041
  property :enable_embed, as: 'enableEmbed'
2060
2042
  property :enable_low_latency, as: 'enableLowLatency'
2043
+ property :mesh, :base64 => true, as: 'mesh'
2061
2044
  property :monitor_stream, as: 'monitorStream', class: Google::Apis::YoutubeV3::MonitorStreamInfo, decorator: Google::Apis::YoutubeV3::MonitorStreamInfo::Representation
2062
2045
 
2063
2046
  property :projection, as: 'projection'
@@ -2125,32 +2108,6 @@ module Google
2125
2108
  end
2126
2109
  end
2127
2110
 
2128
- class LiveBroadcastTopic
2129
- # @private
2130
- class Representation < Google::Apis::Core::JsonRepresentation
2131
- property :snippet, as: 'snippet', class: Google::Apis::YoutubeV3::LiveBroadcastTopicSnippet, decorator: Google::Apis::YoutubeV3::LiveBroadcastTopicSnippet::Representation
2132
-
2133
- property :type, as: 'type'
2134
- property :unmatched, as: 'unmatched'
2135
- end
2136
- end
2137
-
2138
- class LiveBroadcastTopicDetails
2139
- # @private
2140
- class Representation < Google::Apis::Core::JsonRepresentation
2141
- collection :topics, as: 'topics', class: Google::Apis::YoutubeV3::LiveBroadcastTopic, decorator: Google::Apis::YoutubeV3::LiveBroadcastTopic::Representation
2142
-
2143
- end
2144
- end
2145
-
2146
- class LiveBroadcastTopicSnippet
2147
- # @private
2148
- class Representation < Google::Apis::Core::JsonRepresentation
2149
- property :name, as: 'name'
2150
- property :release_date, as: 'releaseDate'
2151
- end
2152
- end
2153
-
2154
2111
  class LiveChatBan
2155
2112
  # @private
2156
2113
  class Representation < Google::Apis::Core::JsonRepresentation
@@ -523,6 +523,15 @@ module Google
523
523
  # Set the brandingSettings.image.bannerExternalUrl property's value to the URL
524
524
  # obtained in step 2.
525
525
  # @param [Google::Apis::YoutubeV3::ChannelBannerResource] channel_banner_resource_object
526
+ # @param [String] channel_id
527
+ # The channelId parameter identifies the YouTube channel to which the banner is
528
+ # uploaded. The channelId parameter was introduced as a required parameter in
529
+ # May 2017. As this was a backward-incompatible change, channelBanners.insert
530
+ # requests that do not specify this parameter will not return an error until six
531
+ # months have passed from the time that the parameter was introduced. Please see
532
+ # the API Terms of Service for the official policy regarding backward
533
+ # incompatible changes and the API revision history for the exact date that the
534
+ # parameter was introduced.
526
535
  # @param [String] on_behalf_of_content_owner
527
536
  # Note: This parameter is intended exclusively for YouTube content partners.
528
537
  # The onBehalfOfContentOwner parameter indicates that the request's
@@ -558,7 +567,7 @@ module Google
558
567
  # @raise [Google::Apis::ServerError] An error occurred on the server and the request can be retried
559
568
  # @raise [Google::Apis::ClientError] The request is invalid and should not be retried without modification
560
569
  # @raise [Google::Apis::AuthorizationError] Authorization is required
561
- def insert_channel_banner(channel_banner_resource_object = nil, on_behalf_of_content_owner: nil, fields: nil, quota_user: nil, user_ip: nil, upload_source: nil, content_type: nil, options: nil, &block)
570
+ def insert_channel_banner(channel_banner_resource_object = nil, channel_id: nil, on_behalf_of_content_owner: nil, fields: nil, quota_user: nil, user_ip: nil, upload_source: nil, content_type: nil, options: nil, &block)
562
571
  if upload_source.nil?
563
572
  command = make_simple_command(:post, 'channelBanners/insert', options)
564
573
  else
@@ -570,6 +579,7 @@ module Google
570
579
  command.request_object = channel_banner_resource_object
571
580
  command.response_representation = Google::Apis::YoutubeV3::ChannelBannerResource::Representation
572
581
  command.response_class = Google::Apis::YoutubeV3::ChannelBannerResource
582
+ command.query['channelId'] = channel_id unless channel_id.nil?
573
583
  command.query['onBehalfOfContentOwner'] = on_behalf_of_content_owner unless on_behalf_of_content_owner.nil?
574
584
  command.query['fields'] = fields unless fields.nil?
575
585
  command.query['quotaUser'] = quota_user unless quota_user.nil?
@@ -15,7 +15,7 @@
15
15
  module Google
16
16
  module Apis
17
17
  # Client library version
18
- VERSION = '0.13.6'
18
+ VERSION = '0.14.0'
19
19
 
20
20
  # Current operating system
21
21
  # @private
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: google-api-client
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.13.6
4
+ version: 0.14.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Steven Bazyl
@@ -11,7 +11,7 @@ authors:
11
11
  autorequire:
12
12
  bindir: bin
13
13
  cert_chain: []
14
- date: 2017-09-11 00:00:00.000000000 Z
14
+ date: 2017-09-18 00:00:00.000000000 Z
15
15
  dependencies:
16
16
  - !ruby/object:Gem::Dependency
17
17
  name: representable
@@ -372,6 +372,10 @@ files:
372
372
  - generated/google/apis/cloudresourcemanager_v2beta1/classes.rb
373
373
  - generated/google/apis/cloudresourcemanager_v2beta1/representations.rb
374
374
  - generated/google/apis/cloudresourcemanager_v2beta1/service.rb
375
+ - generated/google/apis/cloudtasks_v2beta2.rb
376
+ - generated/google/apis/cloudtasks_v2beta2/classes.rb
377
+ - generated/google/apis/cloudtasks_v2beta2/representations.rb
378
+ - generated/google/apis/cloudtasks_v2beta2/service.rb
375
379
  - generated/google/apis/cloudtrace_v1.rb
376
380
  - generated/google/apis/cloudtrace_v1/classes.rb
377
381
  - generated/google/apis/cloudtrace_v1/representations.rb
@@ -852,10 +856,6 @@ files:
852
856
  - generated/google/apis/toolresults_v1beta3/classes.rb
853
857
  - generated/google/apis/toolresults_v1beta3/representations.rb
854
858
  - generated/google/apis/toolresults_v1beta3/service.rb
855
- - generated/google/apis/toolresults_v1beta3firstparty.rb
856
- - generated/google/apis/toolresults_v1beta3firstparty/classes.rb
857
- - generated/google/apis/toolresults_v1beta3firstparty/representations.rb
858
- - generated/google/apis/toolresults_v1beta3firstparty/service.rb
859
859
  - generated/google/apis/translate_v2.rb
860
860
  - generated/google/apis/translate_v2/classes.rb
861
861
  - generated/google/apis/translate_v2/representations.rb
@@ -1,2630 +0,0 @@
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 ToolresultsV1beta3firstparty
24
-
25
- # Android app information.
26
- class AndroidAppInfo
27
- include Google::Apis::Core::Hashable
28
-
29
- # The name of the app. Optional
30
- # Corresponds to the JSON property `name`
31
- # @return [String]
32
- attr_accessor :name
33
-
34
- # The package name of the app. Required.
35
- # Corresponds to the JSON property `packageName`
36
- # @return [String]
37
- attr_accessor :package_name
38
-
39
- # The internal version code of the app. Optional.
40
- # Corresponds to the JSON property `versionCode`
41
- # @return [String]
42
- attr_accessor :version_code
43
-
44
- # The version name of the app. Optional.
45
- # Corresponds to the JSON property `versionName`
46
- # @return [String]
47
- attr_accessor :version_name
48
-
49
- def initialize(**args)
50
- update!(**args)
51
- end
52
-
53
- # Update properties of this object
54
- def update!(**args)
55
- @name = args[:name] if args.key?(:name)
56
- @package_name = args[:package_name] if args.key?(:package_name)
57
- @version_code = args[:version_code] if args.key?(:version_code)
58
- @version_name = args[:version_name] if args.key?(:version_name)
59
- end
60
- end
61
-
62
- # A test of an Android application that can control an Android component
63
- # independently of its normal lifecycle.
64
- # See for more information on types of Android tests.
65
- class AndroidInstrumentationTest
66
- include Google::Apis::Core::Hashable
67
-
68
- # The java package for the test to be executed. Required
69
- # Corresponds to the JSON property `testPackageId`
70
- # @return [String]
71
- attr_accessor :test_package_id
72
-
73
- # The InstrumentationTestRunner class. Required
74
- # Corresponds to the JSON property `testRunnerClass`
75
- # @return [String]
76
- attr_accessor :test_runner_class
77
-
78
- # Each target must be fully qualified with the package name or class name, in
79
- # one of these formats: - "package package_name" - "class package_name.
80
- # class_name" - "class package_name.class_name#method_name"
81
- # If empty, all targets in the module will be run.
82
- # Corresponds to the JSON property `testTargets`
83
- # @return [Array<String>]
84
- attr_accessor :test_targets
85
-
86
- # The flag indicates whether Android Test Orchestrator will be used to run test
87
- # or not. Test orchestrator is used if either: - orchestrator_option field is
88
- # USE_ORCHESTRATOR, and test runner is compatible with orchestrator. Or -
89
- # orchestrator_option field is unspecified or ORCHESTRATOR_OPTION_UNSPECIFIED,
90
- # and test runner is compatible with orchestrator.
91
- # Corresponds to the JSON property `useOrchestrator`
92
- # @return [Boolean]
93
- attr_accessor :use_orchestrator
94
- alias_method :use_orchestrator?, :use_orchestrator
95
-
96
- def initialize(**args)
97
- update!(**args)
98
- end
99
-
100
- # Update properties of this object
101
- def update!(**args)
102
- @test_package_id = args[:test_package_id] if args.key?(:test_package_id)
103
- @test_runner_class = args[:test_runner_class] if args.key?(:test_runner_class)
104
- @test_targets = args[:test_targets] if args.key?(:test_targets)
105
- @use_orchestrator = args[:use_orchestrator] if args.key?(:use_orchestrator)
106
- end
107
- end
108
-
109
- # A test of an android application that explores the application on a virtual or
110
- # physical Android device, finding culprits and crashes as it goes.
111
- class AndroidRoboTest
112
- include Google::Apis::Core::Hashable
113
-
114
- # The initial activity that should be used to start the app. Optional
115
- # Corresponds to the JSON property `appInitialActivity`
116
- # @return [String]
117
- attr_accessor :app_initial_activity
118
-
119
- # The java package for the bootstrap. Optional
120
- # Corresponds to the JSON property `bootstrapPackageId`
121
- # @return [String]
122
- attr_accessor :bootstrap_package_id
123
-
124
- # The runner class for the bootstrap. Optional
125
- # Corresponds to the JSON property `bootstrapRunnerClass`
126
- # @return [String]
127
- attr_accessor :bootstrap_runner_class
128
-
129
- # The max depth of the traversal stack Robo can explore. Optional
130
- # Corresponds to the JSON property `maxDepth`
131
- # @return [Fixnum]
132
- attr_accessor :max_depth
133
-
134
- # The max number of steps/actions Robo can execute. Default is no limit (0).
135
- # Optional
136
- # Corresponds to the JSON property `maxSteps`
137
- # @return [Fixnum]
138
- attr_accessor :max_steps
139
-
140
- def initialize(**args)
141
- update!(**args)
142
- end
143
-
144
- # Update properties of this object
145
- def update!(**args)
146
- @app_initial_activity = args[:app_initial_activity] if args.key?(:app_initial_activity)
147
- @bootstrap_package_id = args[:bootstrap_package_id] if args.key?(:bootstrap_package_id)
148
- @bootstrap_runner_class = args[:bootstrap_runner_class] if args.key?(:bootstrap_runner_class)
149
- @max_depth = args[:max_depth] if args.key?(:max_depth)
150
- @max_steps = args[:max_steps] if args.key?(:max_steps)
151
- end
152
- end
153
-
154
- # An Android mobile test specification.
155
- class AndroidTest
156
- include Google::Apis::Core::Hashable
157
-
158
- # Android app information.
159
- # Corresponds to the JSON property `androidAppInfo`
160
- # @return [Google::Apis::ToolresultsV1beta3firstparty::AndroidAppInfo]
161
- attr_accessor :android_app_info
162
-
163
- # A test of an Android application that can control an Android component
164
- # independently of its normal lifecycle.
165
- # See for more information on types of Android tests.
166
- # Corresponds to the JSON property `androidInstrumentationTest`
167
- # @return [Google::Apis::ToolresultsV1beta3firstparty::AndroidInstrumentationTest]
168
- attr_accessor :android_instrumentation_test
169
-
170
- # A test of an android application that explores the application on a virtual or
171
- # physical Android device, finding culprits and crashes as it goes.
172
- # Corresponds to the JSON property `androidRoboTest`
173
- # @return [Google::Apis::ToolresultsV1beta3firstparty::AndroidRoboTest]
174
- attr_accessor :android_robo_test
175
-
176
- # A Duration represents a signed, fixed-length span of time represented as a
177
- # count of seconds and fractions of seconds at nanosecond resolution. It is
178
- # independent of any calendar and concepts like "day" or "month". It is related
179
- # to Timestamp in that the difference between two Timestamp values is a Duration
180
- # and it can be added or subtracted from a Timestamp. Range is approximately +-
181
- # 10,000 years.
182
- # # Examples
183
- # Example 1: Compute Duration from two Timestamps in pseudo code.
184
- # Timestamp start = ...; Timestamp end = ...; Duration duration = ...;
185
- # duration.seconds = end.seconds - start.seconds; duration.nanos = end.nanos -
186
- # start.nanos;
187
- # if (duration.seconds 0) ` duration.seconds += 1; duration.nanos -= 1000000000;
188
- # ` else if (durations.seconds > 0 && duration.nanos < 0) ` duration.seconds -=
189
- # 1; duration.nanos += 1000000000; `
190
- # Example 2: Compute Timestamp from Timestamp + Duration in pseudo code.
191
- # Timestamp start = ...; Duration duration = ...; Timestamp end = ...;
192
- # end.seconds = start.seconds + duration.seconds; end.nanos = start.nanos +
193
- # duration.nanos;
194
- # if (end.nanos = 1000000000) ` end.seconds += 1; end.nanos -= 1000000000; `
195
- # Example 3: Compute Duration from datetime.timedelta in Python.
196
- # td = datetime.timedelta(days=3, minutes=10) duration = Duration() duration.
197
- # FromTimedelta(td)
198
- # # JSON Mapping
199
- # In JSON format, the Duration type is encoded as a string rather than an object,
200
- # where the string ends in the suffix "s" (indicating seconds) and is preceded
201
- # by the number of seconds, with nanoseconds expressed as fractional seconds.
202
- # For example, 3 seconds with 0 nanoseconds should be encoded in JSON format as "
203
- # 3s", while 3 seconds and 1 nanosecond should be expressed in JSON format as "3.
204
- # 000000001s", and 3 seconds and 1 microsecond should be expressed in JSON
205
- # format as "3.000001s".
206
- # Corresponds to the JSON property `testTimeout`
207
- # @return [Google::Apis::ToolresultsV1beta3firstparty::Duration]
208
- attr_accessor :test_timeout
209
-
210
- def initialize(**args)
211
- update!(**args)
212
- end
213
-
214
- # Update properties of this object
215
- def update!(**args)
216
- @android_app_info = args[:android_app_info] if args.key?(:android_app_info)
217
- @android_instrumentation_test = args[:android_instrumentation_test] if args.key?(:android_instrumentation_test)
218
- @android_robo_test = args[:android_robo_test] if args.key?(:android_robo_test)
219
- @test_timeout = args[:test_timeout] if args.key?(:test_timeout)
220
- end
221
- end
222
-
223
- # `Any` contains an arbitrary serialized protocol buffer message along with a
224
- # URL that describes the type of the serialized message.
225
- # Protobuf library provides support to pack/unpack Any values in the form of
226
- # utility functions or additional generated methods of the Any type.
227
- # Example 1: Pack and unpack a message in C++.
228
- # Foo foo = ...; Any any; any.PackFrom(foo); ... if (any.UnpackTo(&foo)) ` ... `
229
- # Example 2: Pack and unpack a message in Java.
230
- # Foo foo = ...; Any any = Any.pack(foo); ... if (any.is(Foo.class)) ` foo = any.
231
- # unpack(Foo.class); `
232
- # Example 3: Pack and unpack a message in Python.
233
- # foo = Foo(...) any = Any() any.Pack(foo) ... if any.Is(Foo.DESCRIPTOR): any.
234
- # Unpack(foo) ...
235
- # Example 4: Pack and unpack a message in Go
236
- # foo := &pb.Foo`...` any, err := ptypes.MarshalAny(foo) ... foo := &pb.Foo`` if
237
- # err := ptypes.UnmarshalAny(any, foo); err != nil ` ... `
238
- # The pack methods provided by protobuf library will by default use 'type.
239
- # googleapis.com/full.type.name' as the type URL and the unpack methods only use
240
- # the fully qualified type name after the last '/' in the type URL, for example "
241
- # foo.bar.com/x/y.z" will yield type name "y.z".
242
- # JSON ==== The JSON representation of an `Any` value uses the regular
243
- # representation of the deserialized, embedded message, with an additional field
244
- # `@type` which contains the type URL. Example:
245
- # package google.profile; message Person ` string first_name = 1; string
246
- # last_name = 2; `
247
- # ` "@type": "type.googleapis.com/google.profile.Person", "firstName": , "
248
- # lastName": `
249
- # If the embedded message type is well-known and has a custom JSON
250
- # representation, that representation will be embedded adding a field `value`
251
- # which holds the custom JSON in addition to the `@type` field. Example (for
252
- # message [google.protobuf.Duration][]):
253
- # ` "@type": "type.googleapis.com/google.protobuf.Duration", "value": "1.212s" `
254
- class Any
255
- include Google::Apis::Core::Hashable
256
-
257
- # A URL/resource name whose content describes the type of the serialized
258
- # protocol buffer message.
259
- # For URLs which use the scheme `http`, `https`, or no scheme, the following
260
- # restrictions and interpretations apply:
261
- # * If no scheme is provided, `https` is assumed. * The last segment of the URL'
262
- # s path must represent the fully qualified name of the type (as in `path/google.
263
- # protobuf.Duration`). The name should be in a canonical form (e.g., leading "."
264
- # is not accepted). * An HTTP GET on the URL must yield a [google.protobuf.Type][
265
- # ] value in binary format, or produce an error. * Applications are allowed to
266
- # cache lookup results based on the URL, or have them precompiled into a binary
267
- # to avoid any lookup. Therefore, binary compatibility needs to be preserved on
268
- # changes to types. (Use versioned type names to manage breaking changes.)
269
- # Schemes other than `http`, `https` (or the empty scheme) might be used with
270
- # implementation specific semantics.
271
- # Corresponds to the JSON property `typeUrl`
272
- # @return [String]
273
- attr_accessor :type_url
274
-
275
- # Must be a valid serialized protocol buffer of the above specified type.
276
- # Corresponds to the JSON property `value`
277
- # NOTE: Values are automatically base64 encoded/decoded in the client library.
278
- # @return [String]
279
- attr_accessor :value
280
-
281
- def initialize(**args)
282
- update!(**args)
283
- end
284
-
285
- # Update properties of this object
286
- def update!(**args)
287
- @type_url = args[:type_url] if args.key?(:type_url)
288
- @value = args[:value] if args.key?(:value)
289
- end
290
- end
291
-
292
- #
293
- class AppStartTime
294
- include Google::Apis::Core::Hashable
295
-
296
- # A Duration represents a signed, fixed-length span of time represented as a
297
- # count of seconds and fractions of seconds at nanosecond resolution. It is
298
- # independent of any calendar and concepts like "day" or "month". It is related
299
- # to Timestamp in that the difference between two Timestamp values is a Duration
300
- # and it can be added or subtracted from a Timestamp. Range is approximately +-
301
- # 10,000 years.
302
- # # Examples
303
- # Example 1: Compute Duration from two Timestamps in pseudo code.
304
- # Timestamp start = ...; Timestamp end = ...; Duration duration = ...;
305
- # duration.seconds = end.seconds - start.seconds; duration.nanos = end.nanos -
306
- # start.nanos;
307
- # if (duration.seconds 0) ` duration.seconds += 1; duration.nanos -= 1000000000;
308
- # ` else if (durations.seconds > 0 && duration.nanos < 0) ` duration.seconds -=
309
- # 1; duration.nanos += 1000000000; `
310
- # Example 2: Compute Timestamp from Timestamp + Duration in pseudo code.
311
- # Timestamp start = ...; Duration duration = ...; Timestamp end = ...;
312
- # end.seconds = start.seconds + duration.seconds; end.nanos = start.nanos +
313
- # duration.nanos;
314
- # if (end.nanos = 1000000000) ` end.seconds += 1; end.nanos -= 1000000000; `
315
- # Example 3: Compute Duration from datetime.timedelta in Python.
316
- # td = datetime.timedelta(days=3, minutes=10) duration = Duration() duration.
317
- # FromTimedelta(td)
318
- # # JSON Mapping
319
- # In JSON format, the Duration type is encoded as a string rather than an object,
320
- # where the string ends in the suffix "s" (indicating seconds) and is preceded
321
- # by the number of seconds, with nanoseconds expressed as fractional seconds.
322
- # For example, 3 seconds with 0 nanoseconds should be encoded in JSON format as "
323
- # 3s", while 3 seconds and 1 nanosecond should be expressed in JSON format as "3.
324
- # 000000001s", and 3 seconds and 1 microsecond should be expressed in JSON
325
- # format as "3.000001s".
326
- # Corresponds to the JSON property `fullyDrawnTime`
327
- # @return [Google::Apis::ToolresultsV1beta3firstparty::Duration]
328
- attr_accessor :fully_drawn_time
329
-
330
- # A Duration represents a signed, fixed-length span of time represented as a
331
- # count of seconds and fractions of seconds at nanosecond resolution. It is
332
- # independent of any calendar and concepts like "day" or "month". It is related
333
- # to Timestamp in that the difference between two Timestamp values is a Duration
334
- # and it can be added or subtracted from a Timestamp. Range is approximately +-
335
- # 10,000 years.
336
- # # Examples
337
- # Example 1: Compute Duration from two Timestamps in pseudo code.
338
- # Timestamp start = ...; Timestamp end = ...; Duration duration = ...;
339
- # duration.seconds = end.seconds - start.seconds; duration.nanos = end.nanos -
340
- # start.nanos;
341
- # if (duration.seconds 0) ` duration.seconds += 1; duration.nanos -= 1000000000;
342
- # ` else if (durations.seconds > 0 && duration.nanos < 0) ` duration.seconds -=
343
- # 1; duration.nanos += 1000000000; `
344
- # Example 2: Compute Timestamp from Timestamp + Duration in pseudo code.
345
- # Timestamp start = ...; Duration duration = ...; Timestamp end = ...;
346
- # end.seconds = start.seconds + duration.seconds; end.nanos = start.nanos +
347
- # duration.nanos;
348
- # if (end.nanos = 1000000000) ` end.seconds += 1; end.nanos -= 1000000000; `
349
- # Example 3: Compute Duration from datetime.timedelta in Python.
350
- # td = datetime.timedelta(days=3, minutes=10) duration = Duration() duration.
351
- # FromTimedelta(td)
352
- # # JSON Mapping
353
- # In JSON format, the Duration type is encoded as a string rather than an object,
354
- # where the string ends in the suffix "s" (indicating seconds) and is preceded
355
- # by the number of seconds, with nanoseconds expressed as fractional seconds.
356
- # For example, 3 seconds with 0 nanoseconds should be encoded in JSON format as "
357
- # 3s", while 3 seconds and 1 nanosecond should be expressed in JSON format as "3.
358
- # 000000001s", and 3 seconds and 1 microsecond should be expressed in JSON
359
- # format as "3.000001s".
360
- # Corresponds to the JSON property `initialDisplayTime`
361
- # @return [Google::Apis::ToolresultsV1beta3firstparty::Duration]
362
- attr_accessor :initial_display_time
363
-
364
- def initialize(**args)
365
- update!(**args)
366
- end
367
-
368
- # Update properties of this object
369
- def update!(**args)
370
- @fully_drawn_time = args[:fully_drawn_time] if args.key?(:fully_drawn_time)
371
- @initial_display_time = args[:initial_display_time] if args.key?(:initial_display_time)
372
- end
373
- end
374
-
375
- # Encapsulates the metadata for basic sample series represented by a line chart
376
- class BasicPerfSampleSeries
377
- include Google::Apis::Core::Hashable
378
-
379
- #
380
- # Corresponds to the JSON property `perfMetricType`
381
- # @return [String]
382
- attr_accessor :perf_metric_type
383
-
384
- #
385
- # Corresponds to the JSON property `perfUnit`
386
- # @return [String]
387
- attr_accessor :perf_unit
388
-
389
- #
390
- # Corresponds to the JSON property `sampleSeriesLabel`
391
- # @return [String]
392
- attr_accessor :sample_series_label
393
-
394
- def initialize(**args)
395
- update!(**args)
396
- end
397
-
398
- # Update properties of this object
399
- def update!(**args)
400
- @perf_metric_type = args[:perf_metric_type] if args.key?(:perf_metric_type)
401
- @perf_unit = args[:perf_unit] if args.key?(:perf_unit)
402
- @sample_series_label = args[:sample_series_label] if args.key?(:sample_series_label)
403
- end
404
- end
405
-
406
- # The request must provide up to a maximum of 5000 samples to be created; a
407
- # larger sample size will cause an INVALID_ARGUMENT error
408
- class BatchCreatePerfSamplesRequest
409
- include Google::Apis::Core::Hashable
410
-
411
- # The set of PerfSamples to create should not include existing timestamps
412
- # Corresponds to the JSON property `perfSamples`
413
- # @return [Array<Google::Apis::ToolresultsV1beta3firstparty::PerfSample>]
414
- attr_accessor :perf_samples
415
-
416
- def initialize(**args)
417
- update!(**args)
418
- end
419
-
420
- # Update properties of this object
421
- def update!(**args)
422
- @perf_samples = args[:perf_samples] if args.key?(:perf_samples)
423
- end
424
- end
425
-
426
- #
427
- class BatchCreatePerfSamplesResponse
428
- include Google::Apis::Core::Hashable
429
-
430
- #
431
- # Corresponds to the JSON property `perfSamples`
432
- # @return [Array<Google::Apis::ToolresultsV1beta3firstparty::PerfSample>]
433
- attr_accessor :perf_samples
434
-
435
- def initialize(**args)
436
- update!(**args)
437
- end
438
-
439
- # Update properties of this object
440
- def update!(**args)
441
- @perf_samples = args[:perf_samples] if args.key?(:perf_samples)
442
- end
443
- end
444
-
445
- #
446
- class CpuInfo
447
- include Google::Apis::Core::Hashable
448
-
449
- # description of the device processor ie '1.8 GHz hexa core 64-bit ARMv8-A'
450
- # Corresponds to the JSON property `cpuProcessor`
451
- # @return [String]
452
- attr_accessor :cpu_processor
453
-
454
- # the CPU clock speed in GHz
455
- # Corresponds to the JSON property `cpuSpeedInGhz`
456
- # @return [Float]
457
- attr_accessor :cpu_speed_in_ghz
458
-
459
- # the number of CPU cores
460
- # Corresponds to the JSON property `numberOfCores`
461
- # @return [Fixnum]
462
- attr_accessor :number_of_cores
463
-
464
- def initialize(**args)
465
- update!(**args)
466
- end
467
-
468
- # Update properties of this object
469
- def update!(**args)
470
- @cpu_processor = args[:cpu_processor] if args.key?(:cpu_processor)
471
- @cpu_speed_in_ghz = args[:cpu_speed_in_ghz] if args.key?(:cpu_speed_in_ghz)
472
- @number_of_cores = args[:number_of_cores] if args.key?(:number_of_cores)
473
- end
474
- end
475
-
476
- # A Duration represents a signed, fixed-length span of time represented as a
477
- # count of seconds and fractions of seconds at nanosecond resolution. It is
478
- # independent of any calendar and concepts like "day" or "month". It is related
479
- # to Timestamp in that the difference between two Timestamp values is a Duration
480
- # and it can be added or subtracted from a Timestamp. Range is approximately +-
481
- # 10,000 years.
482
- # # Examples
483
- # Example 1: Compute Duration from two Timestamps in pseudo code.
484
- # Timestamp start = ...; Timestamp end = ...; Duration duration = ...;
485
- # duration.seconds = end.seconds - start.seconds; duration.nanos = end.nanos -
486
- # start.nanos;
487
- # if (duration.seconds 0) ` duration.seconds += 1; duration.nanos -= 1000000000;
488
- # ` else if (durations.seconds > 0 && duration.nanos < 0) ` duration.seconds -=
489
- # 1; duration.nanos += 1000000000; `
490
- # Example 2: Compute Timestamp from Timestamp + Duration in pseudo code.
491
- # Timestamp start = ...; Duration duration = ...; Timestamp end = ...;
492
- # end.seconds = start.seconds + duration.seconds; end.nanos = start.nanos +
493
- # duration.nanos;
494
- # if (end.nanos = 1000000000) ` end.seconds += 1; end.nanos -= 1000000000; `
495
- # Example 3: Compute Duration from datetime.timedelta in Python.
496
- # td = datetime.timedelta(days=3, minutes=10) duration = Duration() duration.
497
- # FromTimedelta(td)
498
- # # JSON Mapping
499
- # In JSON format, the Duration type is encoded as a string rather than an object,
500
- # where the string ends in the suffix "s" (indicating seconds) and is preceded
501
- # by the number of seconds, with nanoseconds expressed as fractional seconds.
502
- # For example, 3 seconds with 0 nanoseconds should be encoded in JSON format as "
503
- # 3s", while 3 seconds and 1 nanosecond should be expressed in JSON format as "3.
504
- # 000000001s", and 3 seconds and 1 microsecond should be expressed in JSON
505
- # format as "3.000001s".
506
- class Duration
507
- include Google::Apis::Core::Hashable
508
-
509
- # Signed fractions of a second at nanosecond resolution of the span of time.
510
- # Durations less than one second are represented with a 0 `seconds` field and a
511
- # positive or negative `nanos` field. For durations of one second or more, a non-
512
- # zero value for the `nanos` field must be of the same sign as the `seconds`
513
- # field. Must be from -999,999,999 to +999,999,999 inclusive.
514
- # Corresponds to the JSON property `nanos`
515
- # @return [Fixnum]
516
- attr_accessor :nanos
517
-
518
- # Signed seconds of the span of time. Must be from -315,576,000,000 to +315,576,
519
- # 000,000 inclusive. Note: these bounds are computed from: 60 sec/min * 60 min/
520
- # hr * 24 hr/day * 365.25 days/year * 10000 years
521
- # Corresponds to the JSON property `seconds`
522
- # @return [Fixnum]
523
- attr_accessor :seconds
524
-
525
- def initialize(**args)
526
- update!(**args)
527
- end
528
-
529
- # Update properties of this object
530
- def update!(**args)
531
- @nanos = args[:nanos] if args.key?(:nanos)
532
- @seconds = args[:seconds] if args.key?(:seconds)
533
- end
534
- end
535
-
536
- # An Execution represents a collection of Steps. For instance, it could
537
- # represent: - a mobile test executed across a range of device configurations -
538
- # a jenkins job with a build step followed by a test step
539
- # The maximum size of an execution message is 1 MiB.
540
- # An Execution can be updated until its state is set to COMPLETE at which point
541
- # it becomes immutable.
542
- class Execution
543
- include Google::Apis::Core::Hashable
544
-
545
- # A Timestamp represents a point in time independent of any time zone or
546
- # calendar, represented as seconds and fractions of seconds at nanosecond
547
- # resolution in UTC Epoch time. It is encoded using the Proleptic Gregorian
548
- # Calendar which extends the Gregorian calendar backwards to year one. It is
549
- # encoded assuming all minutes are 60 seconds long, i.e. leap seconds are "
550
- # smeared" so that no leap second table is needed for interpretation. Range is
551
- # from 0001-01-01T00:00:00Z to 9999-12-31T23:59:59.999999999Z. By restricting to
552
- # that range, we ensure that we can convert to and from RFC 3339 date strings.
553
- # See [https://www.ietf.org/rfc/rfc3339.txt](https://www.ietf.org/rfc/rfc3339.
554
- # txt).
555
- # # Examples
556
- # Example 1: Compute Timestamp from POSIX `time()`.
557
- # Timestamp timestamp; timestamp.set_seconds(time(NULL)); timestamp.set_nanos(0);
558
- # Example 2: Compute Timestamp from POSIX `gettimeofday()`.
559
- # struct timeval tv; gettimeofday(&tv, NULL);
560
- # Timestamp timestamp; timestamp.set_seconds(tv.tv_sec); timestamp.set_nanos(tv.
561
- # tv_usec * 1000);
562
- # Example 3: Compute Timestamp from Win32 `GetSystemTimeAsFileTime()`.
563
- # FILETIME ft; GetSystemTimeAsFileTime(&ft); UINT64 ticks = (((UINT64)ft.
564
- # dwHighDateTime) << 32) | ft.dwLowDateTime;
565
- # // A Windows tick is 100 nanoseconds. Windows epoch 1601-01-01T00:00:00Z // is
566
- # 11644473600 seconds before Unix epoch 1970-01-01T00:00:00Z. Timestamp
567
- # timestamp; timestamp.set_seconds((INT64) ((ticks / 10000000) - 11644473600LL));
568
- # timestamp.set_nanos((INT32) ((ticks % 10000000) * 100));
569
- # Example 4: Compute Timestamp from Java `System.currentTimeMillis()`.
570
- # long millis = System.currentTimeMillis();
571
- # Timestamp timestamp = Timestamp.newBuilder().setSeconds(millis / 1000) .
572
- # setNanos((int) ((millis % 1000) * 1000000)).build();
573
- # Example 5: Compute Timestamp from current time in Python.
574
- # timestamp = Timestamp() timestamp.GetCurrentTime()
575
- # # JSON Mapping
576
- # In JSON format, the Timestamp type is encoded as a string in the [RFC 3339](
577
- # https://www.ietf.org/rfc/rfc3339.txt) format. That is, the format is "`year`-`
578
- # month`-`day`T`hour`:`min`:`sec`[.`frac_sec`]Z" where `year` is always
579
- # expressed using four digits while `month`, `day`, `hour`, `min`, and `sec` are
580
- # zero-padded to two digits each. The fractional seconds, which can go up to 9
581
- # digits (i.e. up to 1 nanosecond resolution), are optional. The "Z" suffix
582
- # indicates the timezone ("UTC"); the timezone is required, though only UTC (as
583
- # indicated by "Z") is presently supported.
584
- # For example, "2017-01-15T01:30:15.01Z" encodes 15.01 seconds past 01:30 UTC on
585
- # January 15, 2017.
586
- # In JavaScript, one can convert a Date object to this format using the standard
587
- # [toISOString()](https://developer.mozilla.org/en-US/docs/Web/JavaScript/
588
- # Reference/Global_Objects/Date/toISOString] method. In Python, a standard `
589
- # datetime.datetime` object can be converted to this format using [`strftime`](
590
- # https://docs.python.org/2/library/time.html#time.strftime) with the time
591
- # format spec '%Y-%m-%dT%H:%M:%S.%fZ'. Likewise, in Java, one can use the Joda
592
- # Time's [`ISODateTimeFormat.dateTime()`]( http://joda-time.sourceforge.net/
593
- # apidocs/org/joda/time/format/ISODateTimeFormat.html#dateTime()) to obtain a
594
- # formatter capable of generating timestamps in this format.
595
- # Corresponds to the JSON property `completionTime`
596
- # @return [Google::Apis::ToolresultsV1beta3firstparty::Timestamp]
597
- attr_accessor :completion_time
598
-
599
- # A Timestamp represents a point in time independent of any time zone or
600
- # calendar, represented as seconds and fractions of seconds at nanosecond
601
- # resolution in UTC Epoch time. It is encoded using the Proleptic Gregorian
602
- # Calendar which extends the Gregorian calendar backwards to year one. It is
603
- # encoded assuming all minutes are 60 seconds long, i.e. leap seconds are "
604
- # smeared" so that no leap second table is needed for interpretation. Range is
605
- # from 0001-01-01T00:00:00Z to 9999-12-31T23:59:59.999999999Z. By restricting to
606
- # that range, we ensure that we can convert to and from RFC 3339 date strings.
607
- # See [https://www.ietf.org/rfc/rfc3339.txt](https://www.ietf.org/rfc/rfc3339.
608
- # txt).
609
- # # Examples
610
- # Example 1: Compute Timestamp from POSIX `time()`.
611
- # Timestamp timestamp; timestamp.set_seconds(time(NULL)); timestamp.set_nanos(0);
612
- # Example 2: Compute Timestamp from POSIX `gettimeofday()`.
613
- # struct timeval tv; gettimeofday(&tv, NULL);
614
- # Timestamp timestamp; timestamp.set_seconds(tv.tv_sec); timestamp.set_nanos(tv.
615
- # tv_usec * 1000);
616
- # Example 3: Compute Timestamp from Win32 `GetSystemTimeAsFileTime()`.
617
- # FILETIME ft; GetSystemTimeAsFileTime(&ft); UINT64 ticks = (((UINT64)ft.
618
- # dwHighDateTime) << 32) | ft.dwLowDateTime;
619
- # // A Windows tick is 100 nanoseconds. Windows epoch 1601-01-01T00:00:00Z // is
620
- # 11644473600 seconds before Unix epoch 1970-01-01T00:00:00Z. Timestamp
621
- # timestamp; timestamp.set_seconds((INT64) ((ticks / 10000000) - 11644473600LL));
622
- # timestamp.set_nanos((INT32) ((ticks % 10000000) * 100));
623
- # Example 4: Compute Timestamp from Java `System.currentTimeMillis()`.
624
- # long millis = System.currentTimeMillis();
625
- # Timestamp timestamp = Timestamp.newBuilder().setSeconds(millis / 1000) .
626
- # setNanos((int) ((millis % 1000) * 1000000)).build();
627
- # Example 5: Compute Timestamp from current time in Python.
628
- # timestamp = Timestamp() timestamp.GetCurrentTime()
629
- # # JSON Mapping
630
- # In JSON format, the Timestamp type is encoded as a string in the [RFC 3339](
631
- # https://www.ietf.org/rfc/rfc3339.txt) format. That is, the format is "`year`-`
632
- # month`-`day`T`hour`:`min`:`sec`[.`frac_sec`]Z" where `year` is always
633
- # expressed using four digits while `month`, `day`, `hour`, `min`, and `sec` are
634
- # zero-padded to two digits each. The fractional seconds, which can go up to 9
635
- # digits (i.e. up to 1 nanosecond resolution), are optional. The "Z" suffix
636
- # indicates the timezone ("UTC"); the timezone is required, though only UTC (as
637
- # indicated by "Z") is presently supported.
638
- # For example, "2017-01-15T01:30:15.01Z" encodes 15.01 seconds past 01:30 UTC on
639
- # January 15, 2017.
640
- # In JavaScript, one can convert a Date object to this format using the standard
641
- # [toISOString()](https://developer.mozilla.org/en-US/docs/Web/JavaScript/
642
- # Reference/Global_Objects/Date/toISOString] method. In Python, a standard `
643
- # datetime.datetime` object can be converted to this format using [`strftime`](
644
- # https://docs.python.org/2/library/time.html#time.strftime) with the time
645
- # format spec '%Y-%m-%dT%H:%M:%S.%fZ'. Likewise, in Java, one can use the Joda
646
- # Time's [`ISODateTimeFormat.dateTime()`]( http://joda-time.sourceforge.net/
647
- # apidocs/org/joda/time/format/ISODateTimeFormat.html#dateTime()) to obtain a
648
- # formatter capable of generating timestamps in this format.
649
- # Corresponds to the JSON property `creationTime`
650
- # @return [Google::Apis::ToolresultsV1beta3firstparty::Timestamp]
651
- attr_accessor :creation_time
652
-
653
- # A unique identifier within a History for this Execution.
654
- # Returns INVALID_ARGUMENT if this field is set or overwritten by the caller.
655
- # - In response always set - In create/update request: never set
656
- # Corresponds to the JSON property `executionId`
657
- # @return [String]
658
- attr_accessor :execution_id
659
-
660
- # Interprets a result so that humans and machines can act on it.
661
- # Corresponds to the JSON property `outcome`
662
- # @return [Google::Apis::ToolresultsV1beta3firstparty::Outcome]
663
- attr_accessor :outcome
664
-
665
- # The details about how to run the execution.
666
- # Corresponds to the JSON property `specification`
667
- # @return [Google::Apis::ToolresultsV1beta3firstparty::Specification]
668
- attr_accessor :specification
669
-
670
- # The initial state is IN_PROGRESS.
671
- # The only legal state transitions is from IN_PROGRESS to COMPLETE.
672
- # A PRECONDITION_FAILED will be returned if an invalid transition is requested.
673
- # The state can only be set to COMPLETE once. A FAILED_PRECONDITION will be
674
- # returned if the state is set to COMPLETE multiple times.
675
- # If the state is set to COMPLETE, all the in-progress steps within the
676
- # execution will be set as COMPLETE. If the outcome of the step is not set, the
677
- # outcome will be set to INCONCLUSIVE.
678
- # - In response always set - In create/update request: optional
679
- # Corresponds to the JSON property `state`
680
- # @return [String]
681
- attr_accessor :state
682
-
683
- # TestExecution Matrix ID that the TestExecutionService uses.
684
- # - In response: present if set by create - In create: optional - In update:
685
- # never set
686
- # Corresponds to the JSON property `testExecutionMatrixId`
687
- # @return [String]
688
- attr_accessor :test_execution_matrix_id
689
-
690
- def initialize(**args)
691
- update!(**args)
692
- end
693
-
694
- # Update properties of this object
695
- def update!(**args)
696
- @completion_time = args[:completion_time] if args.key?(:completion_time)
697
- @creation_time = args[:creation_time] if args.key?(:creation_time)
698
- @execution_id = args[:execution_id] if args.key?(:execution_id)
699
- @outcome = args[:outcome] if args.key?(:outcome)
700
- @specification = args[:specification] if args.key?(:specification)
701
- @state = args[:state] if args.key?(:state)
702
- @test_execution_matrix_id = args[:test_execution_matrix_id] if args.key?(:test_execution_matrix_id)
703
- end
704
- end
705
-
706
- #
707
- class FailureDetail
708
- include Google::Apis::Core::Hashable
709
-
710
- # If the failure was severe because the system under test crashed.
711
- # Corresponds to the JSON property `crashed`
712
- # @return [Boolean]
713
- attr_accessor :crashed
714
- alias_method :crashed?, :crashed
715
-
716
- # If an app is not installed and thus no test can be run with the app. This
717
- # might be caused by trying to run a test on an unsupported platform.
718
- # Corresponds to the JSON property `notInstalled`
719
- # @return [Boolean]
720
- attr_accessor :not_installed
721
- alias_method :not_installed?, :not_installed
722
-
723
- # If a native process other than the app crashed.
724
- # Corresponds to the JSON property `otherNativeCrash`
725
- # @return [Boolean]
726
- attr_accessor :other_native_crash
727
- alias_method :other_native_crash?, :other_native_crash
728
-
729
- # If the test overran some time limit, and that is why it failed.
730
- # Corresponds to the JSON property `timedOut`
731
- # @return [Boolean]
732
- attr_accessor :timed_out
733
- alias_method :timed_out?, :timed_out
734
-
735
- # If the robo was unable to crawl the app; perhaps because the app did not start.
736
- # Corresponds to the JSON property `unableToCrawl`
737
- # @return [Boolean]
738
- attr_accessor :unable_to_crawl
739
- alias_method :unable_to_crawl?, :unable_to_crawl
740
-
741
- def initialize(**args)
742
- update!(**args)
743
- end
744
-
745
- # Update properties of this object
746
- def update!(**args)
747
- @crashed = args[:crashed] if args.key?(:crashed)
748
- @not_installed = args[:not_installed] if args.key?(:not_installed)
749
- @other_native_crash = args[:other_native_crash] if args.key?(:other_native_crash)
750
- @timed_out = args[:timed_out] if args.key?(:timed_out)
751
- @unable_to_crawl = args[:unable_to_crawl] if args.key?(:unable_to_crawl)
752
- end
753
- end
754
-
755
- # A reference to a file.
756
- class FileReference
757
- include Google::Apis::Core::Hashable
758
-
759
- # The URI of a file stored in Google Cloud Storage.
760
- # For example: http://storage.googleapis.com/mybucket/path/to/test.xml or in
761
- # gsutil format: gs://mybucket/path/to/test.xml with version-specific info, gs://
762
- # mybucket/path/to/test.xml#1360383693690000
763
- # An INVALID_ARGUMENT error will be returned if the URI format is not supported.
764
- # - In response: always set - In create/update request: always set
765
- # Corresponds to the JSON property `fileUri`
766
- # @return [String]
767
- attr_accessor :file_uri
768
-
769
- def initialize(**args)
770
- update!(**args)
771
- end
772
-
773
- # Update properties of this object
774
- def update!(**args)
775
- @file_uri = args[:file_uri] if args.key?(:file_uri)
776
- end
777
- end
778
-
779
- # A History represents a sorted list of Executions ordered by the
780
- # start_timestamp_millis field (descending). It can be used to group all the
781
- # Executions of a continuous build.
782
- # Note that the ordering only operates on one-dimension. If a repository has
783
- # multiple branches, it means that multiple histories will need to be used in
784
- # order to order Executions per branch.
785
- class History
786
- include Google::Apis::Core::Hashable
787
-
788
- # A short human-readable (plain text) name to display in the UI. Maximum of 100
789
- # characters.
790
- # - In response: present if set during create. - In create request: optional
791
- # Corresponds to the JSON property `displayName`
792
- # @return [String]
793
- attr_accessor :display_name
794
-
795
- # A unique identifier within a project for this History.
796
- # Returns INVALID_ARGUMENT if this field is set or overwritten by the caller.
797
- # - In response always set - In create request: never set
798
- # Corresponds to the JSON property `historyId`
799
- # @return [String]
800
- attr_accessor :history_id
801
-
802
- # A name to uniquely identify a history within a project. Maximum of 100
803
- # characters.
804
- # - In response always set - In create request: always set
805
- # Corresponds to the JSON property `name`
806
- # @return [String]
807
- attr_accessor :name
808
-
809
- def initialize(**args)
810
- update!(**args)
811
- end
812
-
813
- # Update properties of this object
814
- def update!(**args)
815
- @display_name = args[:display_name] if args.key?(:display_name)
816
- @history_id = args[:history_id] if args.key?(:history_id)
817
- @name = args[:name] if args.key?(:name)
818
- end
819
- end
820
-
821
- # An image, with a link to the main image and a thumbnail.
822
- class Image
823
- include Google::Apis::Core::Hashable
824
-
825
- # The `Status` type defines a logical error model that is suitable for different
826
- # programming environments, including REST APIs and RPC APIs. It is used by [
827
- # gRPC](https://github.com/grpc). The error model is designed to be:
828
- # - Simple to use and understand for most users - Flexible enough to meet
829
- # unexpected needs
830
- # # Overview
831
- # The `Status` message contains three pieces of data: error code, error message,
832
- # and error details. The error code should be an enum value of [google.rpc.Code][
833
- # ], but it may accept additional error codes if needed. The error message
834
- # should be a developer-facing English message that helps developers *understand*
835
- # and *resolve* the error. If a localized user-facing error message is needed,
836
- # put the localized message in the error details or localize it in the client.
837
- # The optional error details may contain arbitrary information about the error.
838
- # There is a predefined set of error detail types in the package `google.rpc`
839
- # that can be used for common error conditions.
840
- # # Language mapping
841
- # The `Status` message is the logical representation of the error model, but it
842
- # is not necessarily the actual wire format. When the `Status` message is
843
- # exposed in different client libraries and different wire protocols, it can be
844
- # mapped differently. For example, it will likely be mapped to some exceptions
845
- # in Java, but more likely mapped to some error codes in C.
846
- # # Other uses
847
- # The error model and the `Status` message can be used in a variety of
848
- # environments, either with or without APIs, to provide a consistent developer
849
- # experience across different environments.
850
- # Example uses of this error model include:
851
- # - Partial errors. If a service needs to return partial errors to the client,
852
- # it may embed the `Status` in the normal response to indicate the partial
853
- # errors.
854
- # - Workflow errors. A typical workflow has multiple steps. Each step may have a
855
- # `Status` message for error reporting.
856
- # - Batch operations. If a client uses batch request and batch response, the `
857
- # Status` message should be used directly inside batch response, one for each
858
- # error sub-response.
859
- # - Asynchronous operations. If an API call embeds asynchronous operation
860
- # results in its response, the status of those operations should be represented
861
- # directly using the `Status` message.
862
- # - Logging. If some API errors are stored in logs, the message `Status` could
863
- # be used directly after any stripping needed for security/privacy reasons.
864
- # Corresponds to the JSON property `error`
865
- # @return [Google::Apis::ToolresultsV1beta3firstparty::Status]
866
- attr_accessor :error
867
-
868
- # A reference to a ToolExecution output file.
869
- # Corresponds to the JSON property `sourceImage`
870
- # @return [Google::Apis::ToolresultsV1beta3firstparty::ToolOutputReference]
871
- attr_accessor :source_image
872
-
873
- # The step to which the image is attached.
874
- # Always set.
875
- # Corresponds to the JSON property `stepId`
876
- # @return [String]
877
- attr_accessor :step_id
878
-
879
- # A single thumbnail, with its size and format.
880
- # Corresponds to the JSON property `thumbnail`
881
- # @return [Google::Apis::ToolresultsV1beta3firstparty::Thumbnail]
882
- attr_accessor :thumbnail
883
-
884
- def initialize(**args)
885
- update!(**args)
886
- end
887
-
888
- # Update properties of this object
889
- def update!(**args)
890
- @error = args[:error] if args.key?(:error)
891
- @source_image = args[:source_image] if args.key?(:source_image)
892
- @step_id = args[:step_id] if args.key?(:step_id)
893
- @thumbnail = args[:thumbnail] if args.key?(:thumbnail)
894
- end
895
- end
896
-
897
- #
898
- class InconclusiveDetail
899
- include Google::Apis::Core::Hashable
900
-
901
- # If the end user aborted the test execution before a pass or fail could be
902
- # determined. For example, the user pressed ctrl-c which sent a kill signal to
903
- # the test runner while the test was running.
904
- # Corresponds to the JSON property `abortedByUser`
905
- # @return [Boolean]
906
- attr_accessor :aborted_by_user
907
- alias_method :aborted_by_user?, :aborted_by_user
908
-
909
- # If the test runner could not determine success or failure because the test
910
- # depends on a component other than the system under test which failed.
911
- # For example, a mobile test requires provisioning a device where the test
912
- # executes, and that provisioning can fail.
913
- # Corresponds to the JSON property `infrastructureFailure`
914
- # @return [Boolean]
915
- attr_accessor :infrastructure_failure
916
- alias_method :infrastructure_failure?, :infrastructure_failure
917
-
918
- def initialize(**args)
919
- update!(**args)
920
- end
921
-
922
- # Update properties of this object
923
- def update!(**args)
924
- @aborted_by_user = args[:aborted_by_user] if args.key?(:aborted_by_user)
925
- @infrastructure_failure = args[:infrastructure_failure] if args.key?(:infrastructure_failure)
926
- end
927
- end
928
-
929
- #
930
- class ListExecutionsResponse
931
- include Google::Apis::Core::Hashable
932
-
933
- # Executions.
934
- # Always set.
935
- # Corresponds to the JSON property `executions`
936
- # @return [Array<Google::Apis::ToolresultsV1beta3firstparty::Execution>]
937
- attr_accessor :executions
938
-
939
- # A continuation token to resume the query at the next item.
940
- # Will only be set if there are more Executions to fetch.
941
- # Corresponds to the JSON property `nextPageToken`
942
- # @return [String]
943
- attr_accessor :next_page_token
944
-
945
- def initialize(**args)
946
- update!(**args)
947
- end
948
-
949
- # Update properties of this object
950
- def update!(**args)
951
- @executions = args[:executions] if args.key?(:executions)
952
- @next_page_token = args[:next_page_token] if args.key?(:next_page_token)
953
- end
954
- end
955
-
956
- # Response message for HistoryService.List
957
- class ListHistoriesResponse
958
- include Google::Apis::Core::Hashable
959
-
960
- # Histories.
961
- # Corresponds to the JSON property `histories`
962
- # @return [Array<Google::Apis::ToolresultsV1beta3firstparty::History>]
963
- attr_accessor :histories
964
-
965
- # A continuation token to resume the query at the next item.
966
- # Will only be set if there are more histories to fetch.
967
- # Tokens are valid for up to one hour from the time of the first list request.
968
- # For instance, if you make a list request at 1PM and use the token from this
969
- # first request 10 minutes later, the token from this second response will only
970
- # be valid for 50 minutes.
971
- # Corresponds to the JSON property `nextPageToken`
972
- # @return [String]
973
- attr_accessor :next_page_token
974
-
975
- def initialize(**args)
976
- update!(**args)
977
- end
978
-
979
- # Update properties of this object
980
- def update!(**args)
981
- @histories = args[:histories] if args.key?(:histories)
982
- @next_page_token = args[:next_page_token] if args.key?(:next_page_token)
983
- end
984
- end
985
-
986
- #
987
- class ListPerfSampleSeriesResponse
988
- include Google::Apis::Core::Hashable
989
-
990
- # The resulting PerfSampleSeries sorted by id
991
- # Corresponds to the JSON property `perfSampleSeries`
992
- # @return [Array<Google::Apis::ToolresultsV1beta3firstparty::PerfSampleSeries>]
993
- attr_accessor :perf_sample_series
994
-
995
- def initialize(**args)
996
- update!(**args)
997
- end
998
-
999
- # Update properties of this object
1000
- def update!(**args)
1001
- @perf_sample_series = args[:perf_sample_series] if args.key?(:perf_sample_series)
1002
- end
1003
- end
1004
-
1005
- #
1006
- class ListPerfSamplesResponse
1007
- include Google::Apis::Core::Hashable
1008
-
1009
- # Optional, returned if result size exceeds the page size specified in the
1010
- # request (or the default page size, 500, if unspecified). It indicates the last
1011
- # sample timestamp to be used as page_token in subsequent request
1012
- # Corresponds to the JSON property `nextPageToken`
1013
- # @return [String]
1014
- attr_accessor :next_page_token
1015
-
1016
- #
1017
- # Corresponds to the JSON property `perfSamples`
1018
- # @return [Array<Google::Apis::ToolresultsV1beta3firstparty::PerfSample>]
1019
- attr_accessor :perf_samples
1020
-
1021
- def initialize(**args)
1022
- update!(**args)
1023
- end
1024
-
1025
- # Update properties of this object
1026
- def update!(**args)
1027
- @next_page_token = args[:next_page_token] if args.key?(:next_page_token)
1028
- @perf_samples = args[:perf_samples] if args.key?(:perf_samples)
1029
- end
1030
- end
1031
-
1032
- #
1033
- class ListScreenshotClustersResponse
1034
- include Google::Apis::Core::Hashable
1035
-
1036
- # The set of clustres associated with an execution Always set
1037
- # Corresponds to the JSON property `clusters`
1038
- # @return [Array<Google::Apis::ToolresultsV1beta3firstparty::ScreenshotCluster>]
1039
- attr_accessor :clusters
1040
-
1041
- def initialize(**args)
1042
- update!(**args)
1043
- end
1044
-
1045
- # Update properties of this object
1046
- def update!(**args)
1047
- @clusters = args[:clusters] if args.key?(:clusters)
1048
- end
1049
- end
1050
-
1051
- # A response containing the thumbnails in a step.
1052
- class ListStepThumbnailsResponse
1053
- include Google::Apis::Core::Hashable
1054
-
1055
- # A continuation token to resume the query at the next item.
1056
- # If set, indicates that there are more thumbnails to read, by calling list
1057
- # again with this value in the page_token field.
1058
- # Corresponds to the JSON property `nextPageToken`
1059
- # @return [String]
1060
- attr_accessor :next_page_token
1061
-
1062
- # A list of image data.
1063
- # Images are returned in a deterministic order; they are ordered by these
1064
- # factors, in order of importance: * First, by their associated test case.
1065
- # Images without a test case are considered greater than images with one. *
1066
- # Second, by their creation time. Images without a creation time are greater
1067
- # than images with one. * Third, by the order in which they were added to the
1068
- # step (by calls to CreateStep or UpdateStep).
1069
- # Corresponds to the JSON property `thumbnails`
1070
- # @return [Array<Google::Apis::ToolresultsV1beta3firstparty::Image>]
1071
- attr_accessor :thumbnails
1072
-
1073
- def initialize(**args)
1074
- update!(**args)
1075
- end
1076
-
1077
- # Update properties of this object
1078
- def update!(**args)
1079
- @next_page_token = args[:next_page_token] if args.key?(:next_page_token)
1080
- @thumbnails = args[:thumbnails] if args.key?(:thumbnails)
1081
- end
1082
- end
1083
-
1084
- # Response message for StepService.List.
1085
- class ListStepsResponse
1086
- include Google::Apis::Core::Hashable
1087
-
1088
- # A continuation token to resume the query at the next item.
1089
- # If set, indicates that there are more steps to read, by calling list again
1090
- # with this value in the page_token field.
1091
- # Corresponds to the JSON property `nextPageToken`
1092
- # @return [String]
1093
- attr_accessor :next_page_token
1094
-
1095
- # Steps.
1096
- # Corresponds to the JSON property `steps`
1097
- # @return [Array<Google::Apis::ToolresultsV1beta3firstparty::Step>]
1098
- attr_accessor :steps
1099
-
1100
- def initialize(**args)
1101
- update!(**args)
1102
- end
1103
-
1104
- # Update properties of this object
1105
- def update!(**args)
1106
- @next_page_token = args[:next_page_token] if args.key?(:next_page_token)
1107
- @steps = args[:steps] if args.key?(:steps)
1108
- end
1109
- end
1110
-
1111
- #
1112
- class MemoryInfo
1113
- include Google::Apis::Core::Hashable
1114
-
1115
- # Maximum memory that can be allocated to the process in KiB
1116
- # Corresponds to the JSON property `memoryCapInKibibyte`
1117
- # @return [Fixnum]
1118
- attr_accessor :memory_cap_in_kibibyte
1119
-
1120
- # Total memory available on the device in KiB
1121
- # Corresponds to the JSON property `memoryTotalInKibibyte`
1122
- # @return [Fixnum]
1123
- attr_accessor :memory_total_in_kibibyte
1124
-
1125
- def initialize(**args)
1126
- update!(**args)
1127
- end
1128
-
1129
- # Update properties of this object
1130
- def update!(**args)
1131
- @memory_cap_in_kibibyte = args[:memory_cap_in_kibibyte] if args.key?(:memory_cap_in_kibibyte)
1132
- @memory_total_in_kibibyte = args[:memory_total_in_kibibyte] if args.key?(:memory_total_in_kibibyte)
1133
- end
1134
- end
1135
-
1136
- # Interprets a result so that humans and machines can act on it.
1137
- class Outcome
1138
- include Google::Apis::Core::Hashable
1139
-
1140
- # More information about a FAILURE outcome.
1141
- # Returns INVALID_ARGUMENT if this field is set but the summary is not FAILURE.
1142
- # Optional
1143
- # Corresponds to the JSON property `failureDetail`
1144
- # @return [Google::Apis::ToolresultsV1beta3firstparty::FailureDetail]
1145
- attr_accessor :failure_detail
1146
-
1147
- # More information about an INCONCLUSIVE outcome.
1148
- # Returns INVALID_ARGUMENT if this field is set but the summary is not
1149
- # INCONCLUSIVE.
1150
- # Optional
1151
- # Corresponds to the JSON property `inconclusiveDetail`
1152
- # @return [Google::Apis::ToolresultsV1beta3firstparty::InconclusiveDetail]
1153
- attr_accessor :inconclusive_detail
1154
-
1155
- # More information about a SKIPPED outcome.
1156
- # Returns INVALID_ARGUMENT if this field is set but the summary is not SKIPPED.
1157
- # Optional
1158
- # Corresponds to the JSON property `skippedDetail`
1159
- # @return [Google::Apis::ToolresultsV1beta3firstparty::SkippedDetail]
1160
- attr_accessor :skipped_detail
1161
-
1162
- # More information about a SUCCESS outcome.
1163
- # Returns INVALID_ARGUMENT if this field is set but the summary is not SUCCESS.
1164
- # Optional
1165
- # Corresponds to the JSON property `successDetail`
1166
- # @return [Google::Apis::ToolresultsV1beta3firstparty::SuccessDetail]
1167
- attr_accessor :success_detail
1168
-
1169
- # The simplest way to interpret a result.
1170
- # Required
1171
- # Corresponds to the JSON property `summary`
1172
- # @return [String]
1173
- attr_accessor :summary
1174
-
1175
- def initialize(**args)
1176
- update!(**args)
1177
- end
1178
-
1179
- # Update properties of this object
1180
- def update!(**args)
1181
- @failure_detail = args[:failure_detail] if args.key?(:failure_detail)
1182
- @inconclusive_detail = args[:inconclusive_detail] if args.key?(:inconclusive_detail)
1183
- @skipped_detail = args[:skipped_detail] if args.key?(:skipped_detail)
1184
- @success_detail = args[:success_detail] if args.key?(:success_detail)
1185
- @summary = args[:summary] if args.key?(:summary)
1186
- end
1187
- end
1188
-
1189
- # Encapsulates performance environment info
1190
- class PerfEnvironment
1191
- include Google::Apis::Core::Hashable
1192
-
1193
- # CPU related environment info
1194
- # Corresponds to the JSON property `cpuInfo`
1195
- # @return [Google::Apis::ToolresultsV1beta3firstparty::CpuInfo]
1196
- attr_accessor :cpu_info
1197
-
1198
- # Memory related environment info
1199
- # Corresponds to the JSON property `memoryInfo`
1200
- # @return [Google::Apis::ToolresultsV1beta3firstparty::MemoryInfo]
1201
- attr_accessor :memory_info
1202
-
1203
- def initialize(**args)
1204
- update!(**args)
1205
- end
1206
-
1207
- # Update properties of this object
1208
- def update!(**args)
1209
- @cpu_info = args[:cpu_info] if args.key?(:cpu_info)
1210
- @memory_info = args[:memory_info] if args.key?(:memory_info)
1211
- end
1212
- end
1213
-
1214
- # A summary of perf metrics collected and performance environment info
1215
- class PerfMetricsSummary
1216
- include Google::Apis::Core::Hashable
1217
-
1218
- #
1219
- # Corresponds to the JSON property `appStartTime`
1220
- # @return [Google::Apis::ToolresultsV1beta3firstparty::AppStartTime]
1221
- attr_accessor :app_start_time
1222
-
1223
- # A tool results execution ID.
1224
- # Corresponds to the JSON property `executionId`
1225
- # @return [String]
1226
- attr_accessor :execution_id
1227
-
1228
- # A tool results history ID.
1229
- # Corresponds to the JSON property `historyId`
1230
- # @return [String]
1231
- attr_accessor :history_id
1232
-
1233
- # Encapsulates performance environment info
1234
- # Corresponds to the JSON property `perfEnvironment`
1235
- # @return [Google::Apis::ToolresultsV1beta3firstparty::PerfEnvironment]
1236
- attr_accessor :perf_environment
1237
-
1238
- # Set of resource collected
1239
- # Corresponds to the JSON property `perfMetrics`
1240
- # @return [Array<String>]
1241
- attr_accessor :perf_metrics
1242
-
1243
- # The cloud project
1244
- # Corresponds to the JSON property `projectId`
1245
- # @return [String]
1246
- attr_accessor :project_id
1247
-
1248
- # A tool results step ID.
1249
- # Corresponds to the JSON property `stepId`
1250
- # @return [String]
1251
- attr_accessor :step_id
1252
-
1253
- def initialize(**args)
1254
- update!(**args)
1255
- end
1256
-
1257
- # Update properties of this object
1258
- def update!(**args)
1259
- @app_start_time = args[:app_start_time] if args.key?(:app_start_time)
1260
- @execution_id = args[:execution_id] if args.key?(:execution_id)
1261
- @history_id = args[:history_id] if args.key?(:history_id)
1262
- @perf_environment = args[:perf_environment] if args.key?(:perf_environment)
1263
- @perf_metrics = args[:perf_metrics] if args.key?(:perf_metrics)
1264
- @project_id = args[:project_id] if args.key?(:project_id)
1265
- @step_id = args[:step_id] if args.key?(:step_id)
1266
- end
1267
- end
1268
-
1269
- # Resource representing a single performance measure or data point
1270
- class PerfSample
1271
- include Google::Apis::Core::Hashable
1272
-
1273
- # A Timestamp represents a point in time independent of any time zone or
1274
- # calendar, represented as seconds and fractions of seconds at nanosecond
1275
- # resolution in UTC Epoch time. It is encoded using the Proleptic Gregorian
1276
- # Calendar which extends the Gregorian calendar backwards to year one. It is
1277
- # encoded assuming all minutes are 60 seconds long, i.e. leap seconds are "
1278
- # smeared" so that no leap second table is needed for interpretation. Range is
1279
- # from 0001-01-01T00:00:00Z to 9999-12-31T23:59:59.999999999Z. By restricting to
1280
- # that range, we ensure that we can convert to and from RFC 3339 date strings.
1281
- # See [https://www.ietf.org/rfc/rfc3339.txt](https://www.ietf.org/rfc/rfc3339.
1282
- # txt).
1283
- # # Examples
1284
- # Example 1: Compute Timestamp from POSIX `time()`.
1285
- # Timestamp timestamp; timestamp.set_seconds(time(NULL)); timestamp.set_nanos(0);
1286
- # Example 2: Compute Timestamp from POSIX `gettimeofday()`.
1287
- # struct timeval tv; gettimeofday(&tv, NULL);
1288
- # Timestamp timestamp; timestamp.set_seconds(tv.tv_sec); timestamp.set_nanos(tv.
1289
- # tv_usec * 1000);
1290
- # Example 3: Compute Timestamp from Win32 `GetSystemTimeAsFileTime()`.
1291
- # FILETIME ft; GetSystemTimeAsFileTime(&ft); UINT64 ticks = (((UINT64)ft.
1292
- # dwHighDateTime) << 32) | ft.dwLowDateTime;
1293
- # // A Windows tick is 100 nanoseconds. Windows epoch 1601-01-01T00:00:00Z // is
1294
- # 11644473600 seconds before Unix epoch 1970-01-01T00:00:00Z. Timestamp
1295
- # timestamp; timestamp.set_seconds((INT64) ((ticks / 10000000) - 11644473600LL));
1296
- # timestamp.set_nanos((INT32) ((ticks % 10000000) * 100));
1297
- # Example 4: Compute Timestamp from Java `System.currentTimeMillis()`.
1298
- # long millis = System.currentTimeMillis();
1299
- # Timestamp timestamp = Timestamp.newBuilder().setSeconds(millis / 1000) .
1300
- # setNanos((int) ((millis % 1000) * 1000000)).build();
1301
- # Example 5: Compute Timestamp from current time in Python.
1302
- # timestamp = Timestamp() timestamp.GetCurrentTime()
1303
- # # JSON Mapping
1304
- # In JSON format, the Timestamp type is encoded as a string in the [RFC 3339](
1305
- # https://www.ietf.org/rfc/rfc3339.txt) format. That is, the format is "`year`-`
1306
- # month`-`day`T`hour`:`min`:`sec`[.`frac_sec`]Z" where `year` is always
1307
- # expressed using four digits while `month`, `day`, `hour`, `min`, and `sec` are
1308
- # zero-padded to two digits each. The fractional seconds, which can go up to 9
1309
- # digits (i.e. up to 1 nanosecond resolution), are optional. The "Z" suffix
1310
- # indicates the timezone ("UTC"); the timezone is required, though only UTC (as
1311
- # indicated by "Z") is presently supported.
1312
- # For example, "2017-01-15T01:30:15.01Z" encodes 15.01 seconds past 01:30 UTC on
1313
- # January 15, 2017.
1314
- # In JavaScript, one can convert a Date object to this format using the standard
1315
- # [toISOString()](https://developer.mozilla.org/en-US/docs/Web/JavaScript/
1316
- # Reference/Global_Objects/Date/toISOString] method. In Python, a standard `
1317
- # datetime.datetime` object can be converted to this format using [`strftime`](
1318
- # https://docs.python.org/2/library/time.html#time.strftime) with the time
1319
- # format spec '%Y-%m-%dT%H:%M:%S.%fZ'. Likewise, in Java, one can use the Joda
1320
- # Time's [`ISODateTimeFormat.dateTime()`]( http://joda-time.sourceforge.net/
1321
- # apidocs/org/joda/time/format/ISODateTimeFormat.html#dateTime()) to obtain a
1322
- # formatter capable of generating timestamps in this format.
1323
- # Corresponds to the JSON property `sampleTime`
1324
- # @return [Google::Apis::ToolresultsV1beta3firstparty::Timestamp]
1325
- attr_accessor :sample_time
1326
-
1327
- # Value observed
1328
- # Corresponds to the JSON property `value`
1329
- # @return [Float]
1330
- attr_accessor :value
1331
-
1332
- def initialize(**args)
1333
- update!(**args)
1334
- end
1335
-
1336
- # Update properties of this object
1337
- def update!(**args)
1338
- @sample_time = args[:sample_time] if args.key?(:sample_time)
1339
- @value = args[:value] if args.key?(:value)
1340
- end
1341
- end
1342
-
1343
- # Resource representing a collection of performance samples (or data points)
1344
- class PerfSampleSeries
1345
- include Google::Apis::Core::Hashable
1346
-
1347
- # Encapsulates the metadata for basic sample series represented by a line chart
1348
- # Corresponds to the JSON property `basicPerfSampleSeries`
1349
- # @return [Google::Apis::ToolresultsV1beta3firstparty::BasicPerfSampleSeries]
1350
- attr_accessor :basic_perf_sample_series
1351
-
1352
- # A tool results execution ID.
1353
- # Corresponds to the JSON property `executionId`
1354
- # @return [String]
1355
- attr_accessor :execution_id
1356
-
1357
- # A tool results history ID.
1358
- # Corresponds to the JSON property `historyId`
1359
- # @return [String]
1360
- attr_accessor :history_id
1361
-
1362
- # The cloud project
1363
- # Corresponds to the JSON property `projectId`
1364
- # @return [String]
1365
- attr_accessor :project_id
1366
-
1367
- # A sample series id
1368
- # Corresponds to the JSON property `sampleSeriesId`
1369
- # @return [String]
1370
- attr_accessor :sample_series_id
1371
-
1372
- # A tool results step ID.
1373
- # Corresponds to the JSON property `stepId`
1374
- # @return [String]
1375
- attr_accessor :step_id
1376
-
1377
- def initialize(**args)
1378
- update!(**args)
1379
- end
1380
-
1381
- # Update properties of this object
1382
- def update!(**args)
1383
- @basic_perf_sample_series = args[:basic_perf_sample_series] if args.key?(:basic_perf_sample_series)
1384
- @execution_id = args[:execution_id] if args.key?(:execution_id)
1385
- @history_id = args[:history_id] if args.key?(:history_id)
1386
- @project_id = args[:project_id] if args.key?(:project_id)
1387
- @sample_series_id = args[:sample_series_id] if args.key?(:sample_series_id)
1388
- @step_id = args[:step_id] if args.key?(:step_id)
1389
- end
1390
- end
1391
-
1392
- # Per-project settings for the Tool Results service.
1393
- class ProjectSettings
1394
- include Google::Apis::Core::Hashable
1395
-
1396
- # The name of the Google Cloud Storage bucket to which results are written.
1397
- # By default, this is unset.
1398
- # In update request: optional In response: optional
1399
- # Corresponds to the JSON property `defaultBucket`
1400
- # @return [String]
1401
- attr_accessor :default_bucket
1402
-
1403
- # The name of the project's settings.
1404
- # Always of the form: projects/`project-id`/settings
1405
- # In update request: never set In response: always set
1406
- # Corresponds to the JSON property `name`
1407
- # @return [String]
1408
- attr_accessor :name
1409
-
1410
- def initialize(**args)
1411
- update!(**args)
1412
- end
1413
-
1414
- # Update properties of this object
1415
- def update!(**args)
1416
- @default_bucket = args[:default_bucket] if args.key?(:default_bucket)
1417
- @name = args[:name] if args.key?(:name)
1418
- end
1419
- end
1420
-
1421
- # Request message for StepService.PublishXunitXmlFiles.
1422
- class PublishXunitXmlFilesRequest
1423
- include Google::Apis::Core::Hashable
1424
-
1425
- # URI of the Xunit XML files to publish.
1426
- # The maximum size of the file this reference is pointing to is 50MB.
1427
- # Required.
1428
- # Corresponds to the JSON property `xunitXmlFiles`
1429
- # @return [Array<Google::Apis::ToolresultsV1beta3firstparty::FileReference>]
1430
- attr_accessor :xunit_xml_files
1431
-
1432
- def initialize(**args)
1433
- update!(**args)
1434
- end
1435
-
1436
- # Update properties of this object
1437
- def update!(**args)
1438
- @xunit_xml_files = args[:xunit_xml_files] if args.key?(:xunit_xml_files)
1439
- end
1440
- end
1441
-
1442
- #
1443
- class Screen
1444
- include Google::Apis::Core::Hashable
1445
-
1446
- # File reference of the png file. Required.
1447
- # Corresponds to the JSON property `fileReference`
1448
- # @return [String]
1449
- attr_accessor :file_reference
1450
-
1451
- # Locale of the device that the screenshot was taken on. Required.
1452
- # Corresponds to the JSON property `locale`
1453
- # @return [String]
1454
- attr_accessor :locale
1455
-
1456
- # Model of the device that the screenshot was taken on. Required.
1457
- # Corresponds to the JSON property `model`
1458
- # @return [String]
1459
- attr_accessor :model
1460
-
1461
- # OS version of the device that the screenshot was taken on. Required.
1462
- # Corresponds to the JSON property `version`
1463
- # @return [String]
1464
- attr_accessor :version
1465
-
1466
- def initialize(**args)
1467
- update!(**args)
1468
- end
1469
-
1470
- # Update properties of this object
1471
- def update!(**args)
1472
- @file_reference = args[:file_reference] if args.key?(:file_reference)
1473
- @locale = args[:locale] if args.key?(:locale)
1474
- @model = args[:model] if args.key?(:model)
1475
- @version = args[:version] if args.key?(:version)
1476
- end
1477
- end
1478
-
1479
- #
1480
- class ScreenshotCluster
1481
- include Google::Apis::Core::Hashable
1482
-
1483
- # A string that describes the activity of every screen in the cluster.
1484
- # Corresponds to the JSON property `activity`
1485
- # @return [String]
1486
- attr_accessor :activity
1487
-
1488
- # A unique identifier for the cluster.
1489
- # Corresponds to the JSON property `clusterId`
1490
- # @return [String]
1491
- attr_accessor :cluster_id
1492
-
1493
- # A singular screen that represents the cluster as a whole. This screen will act
1494
- # as the "cover" of the entire cluster. When users look at the clusters, only
1495
- # the key screen from each cluster will be shown. Which screen is the key screen
1496
- # is determined by the ClusteringAlgorithm
1497
- # Corresponds to the JSON property `keyScreen`
1498
- # @return [Google::Apis::ToolresultsV1beta3firstparty::Screen]
1499
- attr_accessor :key_screen
1500
-
1501
- # Full list of screens.
1502
- # Corresponds to the JSON property `screens`
1503
- # @return [Array<Google::Apis::ToolresultsV1beta3firstparty::Screen>]
1504
- attr_accessor :screens
1505
-
1506
- def initialize(**args)
1507
- update!(**args)
1508
- end
1509
-
1510
- # Update properties of this object
1511
- def update!(**args)
1512
- @activity = args[:activity] if args.key?(:activity)
1513
- @cluster_id = args[:cluster_id] if args.key?(:cluster_id)
1514
- @key_screen = args[:key_screen] if args.key?(:key_screen)
1515
- @screens = args[:screens] if args.key?(:screens)
1516
- end
1517
- end
1518
-
1519
- #
1520
- class SkippedDetail
1521
- include Google::Apis::Core::Hashable
1522
-
1523
- # If the App doesn't support the specific API level.
1524
- # Corresponds to the JSON property `incompatibleAppVersion`
1525
- # @return [Boolean]
1526
- attr_accessor :incompatible_app_version
1527
- alias_method :incompatible_app_version?, :incompatible_app_version
1528
-
1529
- # If the App doesn't run on the specific architecture, for example, x86.
1530
- # Corresponds to the JSON property `incompatibleArchitecture`
1531
- # @return [Boolean]
1532
- attr_accessor :incompatible_architecture
1533
- alias_method :incompatible_architecture?, :incompatible_architecture
1534
-
1535
- # If the requested OS version doesn't run on the specific device model.
1536
- # Corresponds to the JSON property `incompatibleDevice`
1537
- # @return [Boolean]
1538
- attr_accessor :incompatible_device
1539
- alias_method :incompatible_device?, :incompatible_device
1540
-
1541
- def initialize(**args)
1542
- update!(**args)
1543
- end
1544
-
1545
- # Update properties of this object
1546
- def update!(**args)
1547
- @incompatible_app_version = args[:incompatible_app_version] if args.key?(:incompatible_app_version)
1548
- @incompatible_architecture = args[:incompatible_architecture] if args.key?(:incompatible_architecture)
1549
- @incompatible_device = args[:incompatible_device] if args.key?(:incompatible_device)
1550
- end
1551
- end
1552
-
1553
- # The details about how to run the execution.
1554
- class Specification
1555
- include Google::Apis::Core::Hashable
1556
-
1557
- # An Android mobile test specification.
1558
- # Corresponds to the JSON property `androidTest`
1559
- # @return [Google::Apis::ToolresultsV1beta3firstparty::AndroidTest]
1560
- attr_accessor :android_test
1561
-
1562
- def initialize(**args)
1563
- update!(**args)
1564
- end
1565
-
1566
- # Update properties of this object
1567
- def update!(**args)
1568
- @android_test = args[:android_test] if args.key?(:android_test)
1569
- end
1570
- end
1571
-
1572
- # A stacktrace.
1573
- class StackTrace
1574
- include Google::Apis::Core::Hashable
1575
-
1576
- # Exception cluster ID
1577
- # Corresponds to the JSON property `clusterId`
1578
- # @return [String]
1579
- attr_accessor :cluster_id
1580
-
1581
- # The stack trace message.
1582
- # Required
1583
- # Corresponds to the JSON property `exception`
1584
- # @return [String]
1585
- attr_accessor :exception
1586
-
1587
- # Exception report ID
1588
- # Corresponds to the JSON property `reportId`
1589
- # @return [String]
1590
- attr_accessor :report_id
1591
-
1592
- def initialize(**args)
1593
- update!(**args)
1594
- end
1595
-
1596
- # Update properties of this object
1597
- def update!(**args)
1598
- @cluster_id = args[:cluster_id] if args.key?(:cluster_id)
1599
- @exception = args[:exception] if args.key?(:exception)
1600
- @report_id = args[:report_id] if args.key?(:report_id)
1601
- end
1602
- end
1603
-
1604
- # The `Status` type defines a logical error model that is suitable for different
1605
- # programming environments, including REST APIs and RPC APIs. It is used by [
1606
- # gRPC](https://github.com/grpc). The error model is designed to be:
1607
- # - Simple to use and understand for most users - Flexible enough to meet
1608
- # unexpected needs
1609
- # # Overview
1610
- # The `Status` message contains three pieces of data: error code, error message,
1611
- # and error details. The error code should be an enum value of [google.rpc.Code][
1612
- # ], but it may accept additional error codes if needed. The error message
1613
- # should be a developer-facing English message that helps developers *understand*
1614
- # and *resolve* the error. If a localized user-facing error message is needed,
1615
- # put the localized message in the error details or localize it in the client.
1616
- # The optional error details may contain arbitrary information about the error.
1617
- # There is a predefined set of error detail types in the package `google.rpc`
1618
- # that can be used for common error conditions.
1619
- # # Language mapping
1620
- # The `Status` message is the logical representation of the error model, but it
1621
- # is not necessarily the actual wire format. When the `Status` message is
1622
- # exposed in different client libraries and different wire protocols, it can be
1623
- # mapped differently. For example, it will likely be mapped to some exceptions
1624
- # in Java, but more likely mapped to some error codes in C.
1625
- # # Other uses
1626
- # The error model and the `Status` message can be used in a variety of
1627
- # environments, either with or without APIs, to provide a consistent developer
1628
- # experience across different environments.
1629
- # Example uses of this error model include:
1630
- # - Partial errors. If a service needs to return partial errors to the client,
1631
- # it may embed the `Status` in the normal response to indicate the partial
1632
- # errors.
1633
- # - Workflow errors. A typical workflow has multiple steps. Each step may have a
1634
- # `Status` message for error reporting.
1635
- # - Batch operations. If a client uses batch request and batch response, the `
1636
- # Status` message should be used directly inside batch response, one for each
1637
- # error sub-response.
1638
- # - Asynchronous operations. If an API call embeds asynchronous operation
1639
- # results in its response, the status of those operations should be represented
1640
- # directly using the `Status` message.
1641
- # - Logging. If some API errors are stored in logs, the message `Status` could
1642
- # be used directly after any stripping needed for security/privacy reasons.
1643
- class Status
1644
- include Google::Apis::Core::Hashable
1645
-
1646
- # The status code, which should be an enum value of [google.rpc.Code][].
1647
- # Corresponds to the JSON property `code`
1648
- # @return [Fixnum]
1649
- attr_accessor :code
1650
-
1651
- # A list of messages that carry the error details. There is a common set of
1652
- # message types for APIs to use.
1653
- # Corresponds to the JSON property `details`
1654
- # @return [Array<Google::Apis::ToolresultsV1beta3firstparty::Any>]
1655
- attr_accessor :details
1656
-
1657
- # A developer-facing error message, which should be in English. Any user-facing
1658
- # error message should be localized and sent in the [google.rpc.Status.details][]
1659
- # field, or localized by the client.
1660
- # Corresponds to the JSON property `message`
1661
- # @return [String]
1662
- attr_accessor :message
1663
-
1664
- def initialize(**args)
1665
- update!(**args)
1666
- end
1667
-
1668
- # Update properties of this object
1669
- def update!(**args)
1670
- @code = args[:code] if args.key?(:code)
1671
- @details = args[:details] if args.key?(:details)
1672
- @message = args[:message] if args.key?(:message)
1673
- end
1674
- end
1675
-
1676
- # A Step represents a single operation performed as part of Execution. A step
1677
- # can be used to represent the execution of a tool ( for example a test runner
1678
- # execution or an execution of a compiler).
1679
- # Steps can overlap (for instance two steps might have the same start time if
1680
- # some operations are done in parallel).
1681
- # Here is an example, let's consider that we have a continuous build is
1682
- # executing a test runner for each iteration. The workflow would look like: -
1683
- # user creates a Execution with id 1 - user creates an TestExecutionStep with id
1684
- # 100 for Execution 1 - user update TestExecutionStep with id 100 to add a raw
1685
- # xml log + the service parses the xml logs and returns a TestExecutionStep with
1686
- # updated TestResult(s). - user update the status of TestExecutionStep with id
1687
- # 100 to COMPLETE
1688
- # A Step can be updated until its state is set to COMPLETE at which points it
1689
- # becomes immutable.
1690
- class Step
1691
- include Google::Apis::Core::Hashable
1692
-
1693
- # A Timestamp represents a point in time independent of any time zone or
1694
- # calendar, represented as seconds and fractions of seconds at nanosecond
1695
- # resolution in UTC Epoch time. It is encoded using the Proleptic Gregorian
1696
- # Calendar which extends the Gregorian calendar backwards to year one. It is
1697
- # encoded assuming all minutes are 60 seconds long, i.e. leap seconds are "
1698
- # smeared" so that no leap second table is needed for interpretation. Range is
1699
- # from 0001-01-01T00:00:00Z to 9999-12-31T23:59:59.999999999Z. By restricting to
1700
- # that range, we ensure that we can convert to and from RFC 3339 date strings.
1701
- # See [https://www.ietf.org/rfc/rfc3339.txt](https://www.ietf.org/rfc/rfc3339.
1702
- # txt).
1703
- # # Examples
1704
- # Example 1: Compute Timestamp from POSIX `time()`.
1705
- # Timestamp timestamp; timestamp.set_seconds(time(NULL)); timestamp.set_nanos(0);
1706
- # Example 2: Compute Timestamp from POSIX `gettimeofday()`.
1707
- # struct timeval tv; gettimeofday(&tv, NULL);
1708
- # Timestamp timestamp; timestamp.set_seconds(tv.tv_sec); timestamp.set_nanos(tv.
1709
- # tv_usec * 1000);
1710
- # Example 3: Compute Timestamp from Win32 `GetSystemTimeAsFileTime()`.
1711
- # FILETIME ft; GetSystemTimeAsFileTime(&ft); UINT64 ticks = (((UINT64)ft.
1712
- # dwHighDateTime) << 32) | ft.dwLowDateTime;
1713
- # // A Windows tick is 100 nanoseconds. Windows epoch 1601-01-01T00:00:00Z // is
1714
- # 11644473600 seconds before Unix epoch 1970-01-01T00:00:00Z. Timestamp
1715
- # timestamp; timestamp.set_seconds((INT64) ((ticks / 10000000) - 11644473600LL));
1716
- # timestamp.set_nanos((INT32) ((ticks % 10000000) * 100));
1717
- # Example 4: Compute Timestamp from Java `System.currentTimeMillis()`.
1718
- # long millis = System.currentTimeMillis();
1719
- # Timestamp timestamp = Timestamp.newBuilder().setSeconds(millis / 1000) .
1720
- # setNanos((int) ((millis % 1000) * 1000000)).build();
1721
- # Example 5: Compute Timestamp from current time in Python.
1722
- # timestamp = Timestamp() timestamp.GetCurrentTime()
1723
- # # JSON Mapping
1724
- # In JSON format, the Timestamp type is encoded as a string in the [RFC 3339](
1725
- # https://www.ietf.org/rfc/rfc3339.txt) format. That is, the format is "`year`-`
1726
- # month`-`day`T`hour`:`min`:`sec`[.`frac_sec`]Z" where `year` is always
1727
- # expressed using four digits while `month`, `day`, `hour`, `min`, and `sec` are
1728
- # zero-padded to two digits each. The fractional seconds, which can go up to 9
1729
- # digits (i.e. up to 1 nanosecond resolution), are optional. The "Z" suffix
1730
- # indicates the timezone ("UTC"); the timezone is required, though only UTC (as
1731
- # indicated by "Z") is presently supported.
1732
- # For example, "2017-01-15T01:30:15.01Z" encodes 15.01 seconds past 01:30 UTC on
1733
- # January 15, 2017.
1734
- # In JavaScript, one can convert a Date object to this format using the standard
1735
- # [toISOString()](https://developer.mozilla.org/en-US/docs/Web/JavaScript/
1736
- # Reference/Global_Objects/Date/toISOString] method. In Python, a standard `
1737
- # datetime.datetime` object can be converted to this format using [`strftime`](
1738
- # https://docs.python.org/2/library/time.html#time.strftime) with the time
1739
- # format spec '%Y-%m-%dT%H:%M:%S.%fZ'. Likewise, in Java, one can use the Joda
1740
- # Time's [`ISODateTimeFormat.dateTime()`]( http://joda-time.sourceforge.net/
1741
- # apidocs/org/joda/time/format/ISODateTimeFormat.html#dateTime()) to obtain a
1742
- # formatter capable of generating timestamps in this format.
1743
- # Corresponds to the JSON property `completionTime`
1744
- # @return [Google::Apis::ToolresultsV1beta3firstparty::Timestamp]
1745
- attr_accessor :completion_time
1746
-
1747
- # A Timestamp represents a point in time independent of any time zone or
1748
- # calendar, represented as seconds and fractions of seconds at nanosecond
1749
- # resolution in UTC Epoch time. It is encoded using the Proleptic Gregorian
1750
- # Calendar which extends the Gregorian calendar backwards to year one. It is
1751
- # encoded assuming all minutes are 60 seconds long, i.e. leap seconds are "
1752
- # smeared" so that no leap second table is needed for interpretation. Range is
1753
- # from 0001-01-01T00:00:00Z to 9999-12-31T23:59:59.999999999Z. By restricting to
1754
- # that range, we ensure that we can convert to and from RFC 3339 date strings.
1755
- # See [https://www.ietf.org/rfc/rfc3339.txt](https://www.ietf.org/rfc/rfc3339.
1756
- # txt).
1757
- # # Examples
1758
- # Example 1: Compute Timestamp from POSIX `time()`.
1759
- # Timestamp timestamp; timestamp.set_seconds(time(NULL)); timestamp.set_nanos(0);
1760
- # Example 2: Compute Timestamp from POSIX `gettimeofday()`.
1761
- # struct timeval tv; gettimeofday(&tv, NULL);
1762
- # Timestamp timestamp; timestamp.set_seconds(tv.tv_sec); timestamp.set_nanos(tv.
1763
- # tv_usec * 1000);
1764
- # Example 3: Compute Timestamp from Win32 `GetSystemTimeAsFileTime()`.
1765
- # FILETIME ft; GetSystemTimeAsFileTime(&ft); UINT64 ticks = (((UINT64)ft.
1766
- # dwHighDateTime) << 32) | ft.dwLowDateTime;
1767
- # // A Windows tick is 100 nanoseconds. Windows epoch 1601-01-01T00:00:00Z // is
1768
- # 11644473600 seconds before Unix epoch 1970-01-01T00:00:00Z. Timestamp
1769
- # timestamp; timestamp.set_seconds((INT64) ((ticks / 10000000) - 11644473600LL));
1770
- # timestamp.set_nanos((INT32) ((ticks % 10000000) * 100));
1771
- # Example 4: Compute Timestamp from Java `System.currentTimeMillis()`.
1772
- # long millis = System.currentTimeMillis();
1773
- # Timestamp timestamp = Timestamp.newBuilder().setSeconds(millis / 1000) .
1774
- # setNanos((int) ((millis % 1000) * 1000000)).build();
1775
- # Example 5: Compute Timestamp from current time in Python.
1776
- # timestamp = Timestamp() timestamp.GetCurrentTime()
1777
- # # JSON Mapping
1778
- # In JSON format, the Timestamp type is encoded as a string in the [RFC 3339](
1779
- # https://www.ietf.org/rfc/rfc3339.txt) format. That is, the format is "`year`-`
1780
- # month`-`day`T`hour`:`min`:`sec`[.`frac_sec`]Z" where `year` is always
1781
- # expressed using four digits while `month`, `day`, `hour`, `min`, and `sec` are
1782
- # zero-padded to two digits each. The fractional seconds, which can go up to 9
1783
- # digits (i.e. up to 1 nanosecond resolution), are optional. The "Z" suffix
1784
- # indicates the timezone ("UTC"); the timezone is required, though only UTC (as
1785
- # indicated by "Z") is presently supported.
1786
- # For example, "2017-01-15T01:30:15.01Z" encodes 15.01 seconds past 01:30 UTC on
1787
- # January 15, 2017.
1788
- # In JavaScript, one can convert a Date object to this format using the standard
1789
- # [toISOString()](https://developer.mozilla.org/en-US/docs/Web/JavaScript/
1790
- # Reference/Global_Objects/Date/toISOString] method. In Python, a standard `
1791
- # datetime.datetime` object can be converted to this format using [`strftime`](
1792
- # https://docs.python.org/2/library/time.html#time.strftime) with the time
1793
- # format spec '%Y-%m-%dT%H:%M:%S.%fZ'. Likewise, in Java, one can use the Joda
1794
- # Time's [`ISODateTimeFormat.dateTime()`]( http://joda-time.sourceforge.net/
1795
- # apidocs/org/joda/time/format/ISODateTimeFormat.html#dateTime()) to obtain a
1796
- # formatter capable of generating timestamps in this format.
1797
- # Corresponds to the JSON property `creationTime`
1798
- # @return [Google::Apis::ToolresultsV1beta3firstparty::Timestamp]
1799
- attr_accessor :creation_time
1800
-
1801
- # A description of this tool For example: mvn clean package -D skipTests=true
1802
- # - In response: present if set by create/update request - In create/update
1803
- # request: optional
1804
- # Corresponds to the JSON property `description`
1805
- # @return [String]
1806
- attr_accessor :description
1807
-
1808
- # A Duration represents a signed, fixed-length span of time represented as a
1809
- # count of seconds and fractions of seconds at nanosecond resolution. It is
1810
- # independent of any calendar and concepts like "day" or "month". It is related
1811
- # to Timestamp in that the difference between two Timestamp values is a Duration
1812
- # and it can be added or subtracted from a Timestamp. Range is approximately +-
1813
- # 10,000 years.
1814
- # # Examples
1815
- # Example 1: Compute Duration from two Timestamps in pseudo code.
1816
- # Timestamp start = ...; Timestamp end = ...; Duration duration = ...;
1817
- # duration.seconds = end.seconds - start.seconds; duration.nanos = end.nanos -
1818
- # start.nanos;
1819
- # if (duration.seconds 0) ` duration.seconds += 1; duration.nanos -= 1000000000;
1820
- # ` else if (durations.seconds > 0 && duration.nanos < 0) ` duration.seconds -=
1821
- # 1; duration.nanos += 1000000000; `
1822
- # Example 2: Compute Timestamp from Timestamp + Duration in pseudo code.
1823
- # Timestamp start = ...; Duration duration = ...; Timestamp end = ...;
1824
- # end.seconds = start.seconds + duration.seconds; end.nanos = start.nanos +
1825
- # duration.nanos;
1826
- # if (end.nanos = 1000000000) ` end.seconds += 1; end.nanos -= 1000000000; `
1827
- # Example 3: Compute Duration from datetime.timedelta in Python.
1828
- # td = datetime.timedelta(days=3, minutes=10) duration = Duration() duration.
1829
- # FromTimedelta(td)
1830
- # # JSON Mapping
1831
- # In JSON format, the Duration type is encoded as a string rather than an object,
1832
- # where the string ends in the suffix "s" (indicating seconds) and is preceded
1833
- # by the number of seconds, with nanoseconds expressed as fractional seconds.
1834
- # For example, 3 seconds with 0 nanoseconds should be encoded in JSON format as "
1835
- # 3s", while 3 seconds and 1 nanosecond should be expressed in JSON format as "3.
1836
- # 000000001s", and 3 seconds and 1 microsecond should be expressed in JSON
1837
- # format as "3.000001s".
1838
- # Corresponds to the JSON property `deviceUsageDuration`
1839
- # @return [Google::Apis::ToolresultsV1beta3firstparty::Duration]
1840
- attr_accessor :device_usage_duration
1841
-
1842
- # If the execution containing this step has any dimension_definition set, then
1843
- # this field allows the child to specify the values of the dimensions.
1844
- # The keys must exactly match the dimension_definition of the execution.
1845
- # For example, if the execution has `dimension_definition = ['attempt', 'device']
1846
- # ` then a step must define values for those dimensions, eg. `dimension_value = [
1847
- # 'attempt': '1', 'device': 'Nexus 6']`
1848
- # If a step does not participate in one dimension of the matrix, the value for
1849
- # that dimension should be empty string. For example, if one of the tests is
1850
- # executed by a runner which does not support retries, the step could have `
1851
- # dimension_value = ['attempt': '', 'device': 'Nexus 6']`
1852
- # If the step does not participate in any dimensions of the matrix, it may leave
1853
- # dimension_value unset.
1854
- # A PRECONDITION_FAILED will be returned if any of the keys do not exist in the
1855
- # dimension_definition of the execution.
1856
- # A PRECONDITION_FAILED will be returned if another step in this execution
1857
- # already has the same name and dimension_value, but differs on other data
1858
- # fields, for example, step field is different.
1859
- # A PRECONDITION_FAILED will be returned if dimension_value is set, and there is
1860
- # a dimension_definition in the execution which is not specified as one of the
1861
- # keys.
1862
- # - In response: present if set by create - In create request: optional - In
1863
- # update request: never set
1864
- # Corresponds to the JSON property `dimensionValue`
1865
- # @return [Array<Google::Apis::ToolresultsV1beta3firstparty::StepDimensionValueEntry>]
1866
- attr_accessor :dimension_value
1867
-
1868
- # Whether any of the outputs of this step are images whose thumbnails can be
1869
- # fetched with ListThumbnails.
1870
- # - In response: always set - In create/update request: never set
1871
- # Corresponds to the JSON property `hasImages`
1872
- # @return [Boolean]
1873
- attr_accessor :has_images
1874
- alias_method :has_images?, :has_images
1875
-
1876
- # Arbitrary user-supplied key/value pairs that are associated with the step.
1877
- # Users are responsible for managing the key namespace such that keys don't
1878
- # accidentally collide.
1879
- # An INVALID_ARGUMENT will be returned if the number of labels exceeds 100 or if
1880
- # the length of any of the keys or values exceeds 100 characters.
1881
- # - In response: always set - In create request: optional - In update request:
1882
- # optional; any new key/value pair will be added to the map, and any new value
1883
- # for an existing key will update that key's value
1884
- # Corresponds to the JSON property `labels`
1885
- # @return [Array<Google::Apis::ToolresultsV1beta3firstparty::StepLabelsEntry>]
1886
- attr_accessor :labels
1887
-
1888
- # A short human-readable name to display in the UI. Maximum of 100 characters.
1889
- # For example: Clean build
1890
- # A PRECONDITION_FAILED will be returned upon creating a new step if it shares
1891
- # its name and dimension_value with an existing step. If two steps represent a
1892
- # similar action, but have different dimension values, they should share the
1893
- # same name. For instance, if the same set of tests is run on two different
1894
- # platforms, the two steps should have the same name.
1895
- # - In response: always set - In create request: always set - In update request:
1896
- # never set
1897
- # Corresponds to the JSON property `name`
1898
- # @return [String]
1899
- attr_accessor :name
1900
-
1901
- # Interprets a result so that humans and machines can act on it.
1902
- # Corresponds to the JSON property `outcome`
1903
- # @return [Google::Apis::ToolresultsV1beta3firstparty::Outcome]
1904
- attr_accessor :outcome
1905
-
1906
- # A Duration represents a signed, fixed-length span of time represented as a
1907
- # count of seconds and fractions of seconds at nanosecond resolution. It is
1908
- # independent of any calendar and concepts like "day" or "month". It is related
1909
- # to Timestamp in that the difference between two Timestamp values is a Duration
1910
- # and it can be added or subtracted from a Timestamp. Range is approximately +-
1911
- # 10,000 years.
1912
- # # Examples
1913
- # Example 1: Compute Duration from two Timestamps in pseudo code.
1914
- # Timestamp start = ...; Timestamp end = ...; Duration duration = ...;
1915
- # duration.seconds = end.seconds - start.seconds; duration.nanos = end.nanos -
1916
- # start.nanos;
1917
- # if (duration.seconds 0) ` duration.seconds += 1; duration.nanos -= 1000000000;
1918
- # ` else if (durations.seconds > 0 && duration.nanos < 0) ` duration.seconds -=
1919
- # 1; duration.nanos += 1000000000; `
1920
- # Example 2: Compute Timestamp from Timestamp + Duration in pseudo code.
1921
- # Timestamp start = ...; Duration duration = ...; Timestamp end = ...;
1922
- # end.seconds = start.seconds + duration.seconds; end.nanos = start.nanos +
1923
- # duration.nanos;
1924
- # if (end.nanos = 1000000000) ` end.seconds += 1; end.nanos -= 1000000000; `
1925
- # Example 3: Compute Duration from datetime.timedelta in Python.
1926
- # td = datetime.timedelta(days=3, minutes=10) duration = Duration() duration.
1927
- # FromTimedelta(td)
1928
- # # JSON Mapping
1929
- # In JSON format, the Duration type is encoded as a string rather than an object,
1930
- # where the string ends in the suffix "s" (indicating seconds) and is preceded
1931
- # by the number of seconds, with nanoseconds expressed as fractional seconds.
1932
- # For example, 3 seconds with 0 nanoseconds should be encoded in JSON format as "
1933
- # 3s", while 3 seconds and 1 nanosecond should be expressed in JSON format as "3.
1934
- # 000000001s", and 3 seconds and 1 microsecond should be expressed in JSON
1935
- # format as "3.000001s".
1936
- # Corresponds to the JSON property `runDuration`
1937
- # @return [Google::Apis::ToolresultsV1beta3firstparty::Duration]
1938
- attr_accessor :run_duration
1939
-
1940
- # The initial state is IN_PROGRESS. The only legal state transitions are *
1941
- # IN_PROGRESS -> COMPLETE
1942
- # A PRECONDITION_FAILED will be returned if an invalid transition is requested.
1943
- # It is valid to create Step with a state set to COMPLETE. The state can only be
1944
- # set to COMPLETE once. A PRECONDITION_FAILED will be returned if the state is
1945
- # set to COMPLETE multiple times.
1946
- # - In response: always set - In create/update request: optional
1947
- # Corresponds to the JSON property `state`
1948
- # @return [String]
1949
- attr_accessor :state
1950
-
1951
- # A unique identifier within a Execution for this Step.
1952
- # Returns INVALID_ARGUMENT if this field is set or overwritten by the caller.
1953
- # - In response: always set - In create/update request: never set
1954
- # Corresponds to the JSON property `stepId`
1955
- # @return [String]
1956
- attr_accessor :step_id
1957
-
1958
- # A step that represents running tests.
1959
- # It accepts ant-junit xml files which will be parsed into structured test
1960
- # results by the service. Xml file paths are updated in order to append more
1961
- # files, however they can't be deleted.
1962
- # Users can also add test results manually by using the test_result field.
1963
- # Corresponds to the JSON property `testExecutionStep`
1964
- # @return [Google::Apis::ToolresultsV1beta3firstparty::TestExecutionStep]
1965
- attr_accessor :test_execution_step
1966
-
1967
- # Generic tool step to be used for binaries we do not explicitly support. For
1968
- # example: running cp to copy artifacts from one location to another.
1969
- # Corresponds to the JSON property `toolExecutionStep`
1970
- # @return [Google::Apis::ToolresultsV1beta3firstparty::ToolExecutionStep]
1971
- attr_accessor :tool_execution_step
1972
-
1973
- def initialize(**args)
1974
- update!(**args)
1975
- end
1976
-
1977
- # Update properties of this object
1978
- def update!(**args)
1979
- @completion_time = args[:completion_time] if args.key?(:completion_time)
1980
- @creation_time = args[:creation_time] if args.key?(:creation_time)
1981
- @description = args[:description] if args.key?(:description)
1982
- @device_usage_duration = args[:device_usage_duration] if args.key?(:device_usage_duration)
1983
- @dimension_value = args[:dimension_value] if args.key?(:dimension_value)
1984
- @has_images = args[:has_images] if args.key?(:has_images)
1985
- @labels = args[:labels] if args.key?(:labels)
1986
- @name = args[:name] if args.key?(:name)
1987
- @outcome = args[:outcome] if args.key?(:outcome)
1988
- @run_duration = args[:run_duration] if args.key?(:run_duration)
1989
- @state = args[:state] if args.key?(:state)
1990
- @step_id = args[:step_id] if args.key?(:step_id)
1991
- @test_execution_step = args[:test_execution_step] if args.key?(:test_execution_step)
1992
- @tool_execution_step = args[:tool_execution_step] if args.key?(:tool_execution_step)
1993
- end
1994
- end
1995
-
1996
- #
1997
- class StepDimensionValueEntry
1998
- include Google::Apis::Core::Hashable
1999
-
2000
- #
2001
- # Corresponds to the JSON property `key`
2002
- # @return [String]
2003
- attr_accessor :key
2004
-
2005
- #
2006
- # Corresponds to the JSON property `value`
2007
- # @return [String]
2008
- attr_accessor :value
2009
-
2010
- def initialize(**args)
2011
- update!(**args)
2012
- end
2013
-
2014
- # Update properties of this object
2015
- def update!(**args)
2016
- @key = args[:key] if args.key?(:key)
2017
- @value = args[:value] if args.key?(:value)
2018
- end
2019
- end
2020
-
2021
- #
2022
- class StepLabelsEntry
2023
- include Google::Apis::Core::Hashable
2024
-
2025
- #
2026
- # Corresponds to the JSON property `key`
2027
- # @return [String]
2028
- attr_accessor :key
2029
-
2030
- #
2031
- # Corresponds to the JSON property `value`
2032
- # @return [String]
2033
- attr_accessor :value
2034
-
2035
- def initialize(**args)
2036
- update!(**args)
2037
- end
2038
-
2039
- # Update properties of this object
2040
- def update!(**args)
2041
- @key = args[:key] if args.key?(:key)
2042
- @value = args[:value] if args.key?(:value)
2043
- end
2044
- end
2045
-
2046
- #
2047
- class SuccessDetail
2048
- include Google::Apis::Core::Hashable
2049
-
2050
- # If a native process other than the app crashed.
2051
- # Corresponds to the JSON property `otherNativeCrash`
2052
- # @return [Boolean]
2053
- attr_accessor :other_native_crash
2054
- alias_method :other_native_crash?, :other_native_crash
2055
-
2056
- def initialize(**args)
2057
- update!(**args)
2058
- end
2059
-
2060
- # Update properties of this object
2061
- def update!(**args)
2062
- @other_native_crash = args[:other_native_crash] if args.key?(:other_native_crash)
2063
- end
2064
- end
2065
-
2066
- # A reference to a test case.
2067
- # Test case references are canonically ordered lexicographically by these three
2068
- # factors: * First, by test_suite_name. * Second, by class_name. * Third, by
2069
- # name.
2070
- class TestCaseReference
2071
- include Google::Apis::Core::Hashable
2072
-
2073
- # The name of the class.
2074
- # Corresponds to the JSON property `className`
2075
- # @return [String]
2076
- attr_accessor :class_name
2077
-
2078
- # The name of the test case.
2079
- # Required.
2080
- # Corresponds to the JSON property `name`
2081
- # @return [String]
2082
- attr_accessor :name
2083
-
2084
- # The name of the test suite to which this test case belongs.
2085
- # Corresponds to the JSON property `testSuiteName`
2086
- # @return [String]
2087
- attr_accessor :test_suite_name
2088
-
2089
- def initialize(**args)
2090
- update!(**args)
2091
- end
2092
-
2093
- # Update properties of this object
2094
- def update!(**args)
2095
- @class_name = args[:class_name] if args.key?(:class_name)
2096
- @name = args[:name] if args.key?(:name)
2097
- @test_suite_name = args[:test_suite_name] if args.key?(:test_suite_name)
2098
- end
2099
- end
2100
-
2101
- # A step that represents running tests.
2102
- # It accepts ant-junit xml files which will be parsed into structured test
2103
- # results by the service. Xml file paths are updated in order to append more
2104
- # files, however they can't be deleted.
2105
- # Users can also add test results manually by using the test_result field.
2106
- class TestExecutionStep
2107
- include Google::Apis::Core::Hashable
2108
-
2109
- # Issues observed during the test execution.
2110
- # For example, if the mobile app under test crashed during the test, the error
2111
- # message and the stack trace content can be recorded here to assist debugging.
2112
- # - In response: present if set by create or update - In create/update request:
2113
- # optional
2114
- # Corresponds to the JSON property `testIssues`
2115
- # @return [Array<Google::Apis::ToolresultsV1beta3firstparty::TestIssue>]
2116
- attr_accessor :test_issues
2117
-
2118
- # List of test suite overview contents. This could be parsed from xUnit XML log
2119
- # by server, or uploaded directly by user. This references should only be called
2120
- # when test suites are fully parsed or uploaded.
2121
- # The maximum allowed number of test suite overviews per step is 1000.
2122
- # - In response: always set - In create request: optional - In update request:
2123
- # never (use publishXunitXmlFiles custom method instead)
2124
- # Corresponds to the JSON property `testSuiteOverviews`
2125
- # @return [Array<Google::Apis::ToolresultsV1beta3firstparty::TestSuiteOverview>]
2126
- attr_accessor :test_suite_overviews
2127
-
2128
- # Testing timing break down to know phases.
2129
- # Corresponds to the JSON property `testTiming`
2130
- # @return [Google::Apis::ToolresultsV1beta3firstparty::TestTiming]
2131
- attr_accessor :test_timing
2132
-
2133
- # An execution of an arbitrary tool. It could be a test runner or a tool copying
2134
- # artifacts or deploying code.
2135
- # Corresponds to the JSON property `toolExecution`
2136
- # @return [Google::Apis::ToolresultsV1beta3firstparty::ToolExecution]
2137
- attr_accessor :tool_execution
2138
-
2139
- def initialize(**args)
2140
- update!(**args)
2141
- end
2142
-
2143
- # Update properties of this object
2144
- def update!(**args)
2145
- @test_issues = args[:test_issues] if args.key?(:test_issues)
2146
- @test_suite_overviews = args[:test_suite_overviews] if args.key?(:test_suite_overviews)
2147
- @test_timing = args[:test_timing] if args.key?(:test_timing)
2148
- @tool_execution = args[:tool_execution] if args.key?(:tool_execution)
2149
- end
2150
- end
2151
-
2152
- # An issue detected occurring during a test execution.
2153
- class TestIssue
2154
- include Google::Apis::Core::Hashable
2155
-
2156
- # A brief human-readable message describing the issue. Required.
2157
- # Corresponds to the JSON property `errorMessage`
2158
- # @return [String]
2159
- attr_accessor :error_message
2160
-
2161
- # Severity of issue. Required.
2162
- # Corresponds to the JSON property `severity`
2163
- # @return [String]
2164
- attr_accessor :severity
2165
-
2166
- # A stacktrace.
2167
- # Corresponds to the JSON property `stackTrace`
2168
- # @return [Google::Apis::ToolresultsV1beta3firstparty::StackTrace]
2169
- attr_accessor :stack_trace
2170
-
2171
- # Type of issue. Required.
2172
- # Corresponds to the JSON property `type`
2173
- # @return [String]
2174
- attr_accessor :type
2175
-
2176
- # `Any` contains an arbitrary serialized protocol buffer message along with a
2177
- # URL that describes the type of the serialized message.
2178
- # Protobuf library provides support to pack/unpack Any values in the form of
2179
- # utility functions or additional generated methods of the Any type.
2180
- # Example 1: Pack and unpack a message in C++.
2181
- # Foo foo = ...; Any any; any.PackFrom(foo); ... if (any.UnpackTo(&foo)) ` ... `
2182
- # Example 2: Pack and unpack a message in Java.
2183
- # Foo foo = ...; Any any = Any.pack(foo); ... if (any.is(Foo.class)) ` foo = any.
2184
- # unpack(Foo.class); `
2185
- # Example 3: Pack and unpack a message in Python.
2186
- # foo = Foo(...) any = Any() any.Pack(foo) ... if any.Is(Foo.DESCRIPTOR): any.
2187
- # Unpack(foo) ...
2188
- # Example 4: Pack and unpack a message in Go
2189
- # foo := &pb.Foo`...` any, err := ptypes.MarshalAny(foo) ... foo := &pb.Foo`` if
2190
- # err := ptypes.UnmarshalAny(any, foo); err != nil ` ... `
2191
- # The pack methods provided by protobuf library will by default use 'type.
2192
- # googleapis.com/full.type.name' as the type URL and the unpack methods only use
2193
- # the fully qualified type name after the last '/' in the type URL, for example "
2194
- # foo.bar.com/x/y.z" will yield type name "y.z".
2195
- # JSON ==== The JSON representation of an `Any` value uses the regular
2196
- # representation of the deserialized, embedded message, with an additional field
2197
- # `@type` which contains the type URL. Example:
2198
- # package google.profile; message Person ` string first_name = 1; string
2199
- # last_name = 2; `
2200
- # ` "@type": "type.googleapis.com/google.profile.Person", "firstName": , "
2201
- # lastName": `
2202
- # If the embedded message type is well-known and has a custom JSON
2203
- # representation, that representation will be embedded adding a field `value`
2204
- # which holds the custom JSON in addition to the `@type` field. Example (for
2205
- # message [google.protobuf.Duration][]):
2206
- # ` "@type": "type.googleapis.com/google.protobuf.Duration", "value": "1.212s" `
2207
- # Corresponds to the JSON property `warning`
2208
- # @return [Google::Apis::ToolresultsV1beta3firstparty::Any]
2209
- attr_accessor :warning
2210
-
2211
- def initialize(**args)
2212
- update!(**args)
2213
- end
2214
-
2215
- # Update properties of this object
2216
- def update!(**args)
2217
- @error_message = args[:error_message] if args.key?(:error_message)
2218
- @severity = args[:severity] if args.key?(:severity)
2219
- @stack_trace = args[:stack_trace] if args.key?(:stack_trace)
2220
- @type = args[:type] if args.key?(:type)
2221
- @warning = args[:warning] if args.key?(:warning)
2222
- end
2223
- end
2224
-
2225
- # A summary of a test suite result either parsed from XML or uploaded directly
2226
- # by a user.
2227
- # Note: the API related comments are for StepService only. This message is also
2228
- # being used in ExecutionService in a read only mode for the corresponding step.
2229
- class TestSuiteOverview
2230
- include Google::Apis::Core::Hashable
2231
-
2232
- # Number of test cases in error, typically set by the service by parsing the
2233
- # xml_source.
2234
- # - In create/response: always set - In update request: never
2235
- # Corresponds to the JSON property `errorCount`
2236
- # @return [Fixnum]
2237
- attr_accessor :error_count
2238
-
2239
- # Number of failed test cases, typically set by the service by parsing the
2240
- # xml_source. May also be set by the user.
2241
- # - In create/response: always set - In update request: never
2242
- # Corresponds to the JSON property `failureCount`
2243
- # @return [Fixnum]
2244
- attr_accessor :failure_count
2245
-
2246
- # The name of the test suite.
2247
- # - In create/response: always set - In update request: never
2248
- # Corresponds to the JSON property `name`
2249
- # @return [String]
2250
- attr_accessor :name
2251
-
2252
- # Number of test cases not run, typically set by the service by parsing the
2253
- # xml_source.
2254
- # - In create/response: always set - In update request: never
2255
- # Corresponds to the JSON property `skippedCount`
2256
- # @return [Fixnum]
2257
- attr_accessor :skipped_count
2258
-
2259
- # Number of test cases, typically set by the service by parsing the xml_source.
2260
- # - In create/response: always set - In update request: never
2261
- # Corresponds to the JSON property `totalCount`
2262
- # @return [Fixnum]
2263
- attr_accessor :total_count
2264
-
2265
- # A reference to a file.
2266
- # Corresponds to the JSON property `xmlSource`
2267
- # @return [Google::Apis::ToolresultsV1beta3firstparty::FileReference]
2268
- attr_accessor :xml_source
2269
-
2270
- def initialize(**args)
2271
- update!(**args)
2272
- end
2273
-
2274
- # Update properties of this object
2275
- def update!(**args)
2276
- @error_count = args[:error_count] if args.key?(:error_count)
2277
- @failure_count = args[:failure_count] if args.key?(:failure_count)
2278
- @name = args[:name] if args.key?(:name)
2279
- @skipped_count = args[:skipped_count] if args.key?(:skipped_count)
2280
- @total_count = args[:total_count] if args.key?(:total_count)
2281
- @xml_source = args[:xml_source] if args.key?(:xml_source)
2282
- end
2283
- end
2284
-
2285
- # Testing timing break down to know phases.
2286
- class TestTiming
2287
- include Google::Apis::Core::Hashable
2288
-
2289
- # A Duration represents a signed, fixed-length span of time represented as a
2290
- # count of seconds and fractions of seconds at nanosecond resolution. It is
2291
- # independent of any calendar and concepts like "day" or "month". It is related
2292
- # to Timestamp in that the difference between two Timestamp values is a Duration
2293
- # and it can be added or subtracted from a Timestamp. Range is approximately +-
2294
- # 10,000 years.
2295
- # # Examples
2296
- # Example 1: Compute Duration from two Timestamps in pseudo code.
2297
- # Timestamp start = ...; Timestamp end = ...; Duration duration = ...;
2298
- # duration.seconds = end.seconds - start.seconds; duration.nanos = end.nanos -
2299
- # start.nanos;
2300
- # if (duration.seconds 0) ` duration.seconds += 1; duration.nanos -= 1000000000;
2301
- # ` else if (durations.seconds > 0 && duration.nanos < 0) ` duration.seconds -=
2302
- # 1; duration.nanos += 1000000000; `
2303
- # Example 2: Compute Timestamp from Timestamp + Duration in pseudo code.
2304
- # Timestamp start = ...; Duration duration = ...; Timestamp end = ...;
2305
- # end.seconds = start.seconds + duration.seconds; end.nanos = start.nanos +
2306
- # duration.nanos;
2307
- # if (end.nanos = 1000000000) ` end.seconds += 1; end.nanos -= 1000000000; `
2308
- # Example 3: Compute Duration from datetime.timedelta in Python.
2309
- # td = datetime.timedelta(days=3, minutes=10) duration = Duration() duration.
2310
- # FromTimedelta(td)
2311
- # # JSON Mapping
2312
- # In JSON format, the Duration type is encoded as a string rather than an object,
2313
- # where the string ends in the suffix "s" (indicating seconds) and is preceded
2314
- # by the number of seconds, with nanoseconds expressed as fractional seconds.
2315
- # For example, 3 seconds with 0 nanoseconds should be encoded in JSON format as "
2316
- # 3s", while 3 seconds and 1 nanosecond should be expressed in JSON format as "3.
2317
- # 000000001s", and 3 seconds and 1 microsecond should be expressed in JSON
2318
- # format as "3.000001s".
2319
- # Corresponds to the JSON property `testProcessDuration`
2320
- # @return [Google::Apis::ToolresultsV1beta3firstparty::Duration]
2321
- attr_accessor :test_process_duration
2322
-
2323
- def initialize(**args)
2324
- update!(**args)
2325
- end
2326
-
2327
- # Update properties of this object
2328
- def update!(**args)
2329
- @test_process_duration = args[:test_process_duration] if args.key?(:test_process_duration)
2330
- end
2331
- end
2332
-
2333
- # A single thumbnail, with its size and format.
2334
- class Thumbnail
2335
- include Google::Apis::Core::Hashable
2336
-
2337
- # The thumbnail's content type, i.e. "image/png".
2338
- # Always set.
2339
- # Corresponds to the JSON property `contentType`
2340
- # @return [String]
2341
- attr_accessor :content_type
2342
-
2343
- # The thumbnail file itself.
2344
- # That is, the bytes here are precisely the bytes that make up the thumbnail
2345
- # file; they can be served as an image as-is (with the appropriate content type.)
2346
- # Always set.
2347
- # Corresponds to the JSON property `data`
2348
- # NOTE: Values are automatically base64 encoded/decoded in the client library.
2349
- # @return [String]
2350
- attr_accessor :data
2351
-
2352
- # The height of the thumbnail, in pixels.
2353
- # Always set.
2354
- # Corresponds to the JSON property `heightPx`
2355
- # @return [Fixnum]
2356
- attr_accessor :height_px
2357
-
2358
- # The width of the thumbnail, in pixels.
2359
- # Always set.
2360
- # Corresponds to the JSON property `widthPx`
2361
- # @return [Fixnum]
2362
- attr_accessor :width_px
2363
-
2364
- def initialize(**args)
2365
- update!(**args)
2366
- end
2367
-
2368
- # Update properties of this object
2369
- def update!(**args)
2370
- @content_type = args[:content_type] if args.key?(:content_type)
2371
- @data = args[:data] if args.key?(:data)
2372
- @height_px = args[:height_px] if args.key?(:height_px)
2373
- @width_px = args[:width_px] if args.key?(:width_px)
2374
- end
2375
- end
2376
-
2377
- # A Timestamp represents a point in time independent of any time zone or
2378
- # calendar, represented as seconds and fractions of seconds at nanosecond
2379
- # resolution in UTC Epoch time. It is encoded using the Proleptic Gregorian
2380
- # Calendar which extends the Gregorian calendar backwards to year one. It is
2381
- # encoded assuming all minutes are 60 seconds long, i.e. leap seconds are "
2382
- # smeared" so that no leap second table is needed for interpretation. Range is
2383
- # from 0001-01-01T00:00:00Z to 9999-12-31T23:59:59.999999999Z. By restricting to
2384
- # that range, we ensure that we can convert to and from RFC 3339 date strings.
2385
- # See [https://www.ietf.org/rfc/rfc3339.txt](https://www.ietf.org/rfc/rfc3339.
2386
- # txt).
2387
- # # Examples
2388
- # Example 1: Compute Timestamp from POSIX `time()`.
2389
- # Timestamp timestamp; timestamp.set_seconds(time(NULL)); timestamp.set_nanos(0);
2390
- # Example 2: Compute Timestamp from POSIX `gettimeofday()`.
2391
- # struct timeval tv; gettimeofday(&tv, NULL);
2392
- # Timestamp timestamp; timestamp.set_seconds(tv.tv_sec); timestamp.set_nanos(tv.
2393
- # tv_usec * 1000);
2394
- # Example 3: Compute Timestamp from Win32 `GetSystemTimeAsFileTime()`.
2395
- # FILETIME ft; GetSystemTimeAsFileTime(&ft); UINT64 ticks = (((UINT64)ft.
2396
- # dwHighDateTime) << 32) | ft.dwLowDateTime;
2397
- # // A Windows tick is 100 nanoseconds. Windows epoch 1601-01-01T00:00:00Z // is
2398
- # 11644473600 seconds before Unix epoch 1970-01-01T00:00:00Z. Timestamp
2399
- # timestamp; timestamp.set_seconds((INT64) ((ticks / 10000000) - 11644473600LL));
2400
- # timestamp.set_nanos((INT32) ((ticks % 10000000) * 100));
2401
- # Example 4: Compute Timestamp from Java `System.currentTimeMillis()`.
2402
- # long millis = System.currentTimeMillis();
2403
- # Timestamp timestamp = Timestamp.newBuilder().setSeconds(millis / 1000) .
2404
- # setNanos((int) ((millis % 1000) * 1000000)).build();
2405
- # Example 5: Compute Timestamp from current time in Python.
2406
- # timestamp = Timestamp() timestamp.GetCurrentTime()
2407
- # # JSON Mapping
2408
- # In JSON format, the Timestamp type is encoded as a string in the [RFC 3339](
2409
- # https://www.ietf.org/rfc/rfc3339.txt) format. That is, the format is "`year`-`
2410
- # month`-`day`T`hour`:`min`:`sec`[.`frac_sec`]Z" where `year` is always
2411
- # expressed using four digits while `month`, `day`, `hour`, `min`, and `sec` are
2412
- # zero-padded to two digits each. The fractional seconds, which can go up to 9
2413
- # digits (i.e. up to 1 nanosecond resolution), are optional. The "Z" suffix
2414
- # indicates the timezone ("UTC"); the timezone is required, though only UTC (as
2415
- # indicated by "Z") is presently supported.
2416
- # For example, "2017-01-15T01:30:15.01Z" encodes 15.01 seconds past 01:30 UTC on
2417
- # January 15, 2017.
2418
- # In JavaScript, one can convert a Date object to this format using the standard
2419
- # [toISOString()](https://developer.mozilla.org/en-US/docs/Web/JavaScript/
2420
- # Reference/Global_Objects/Date/toISOString] method. In Python, a standard `
2421
- # datetime.datetime` object can be converted to this format using [`strftime`](
2422
- # https://docs.python.org/2/library/time.html#time.strftime) with the time
2423
- # format spec '%Y-%m-%dT%H:%M:%S.%fZ'. Likewise, in Java, one can use the Joda
2424
- # Time's [`ISODateTimeFormat.dateTime()`]( http://joda-time.sourceforge.net/
2425
- # apidocs/org/joda/time/format/ISODateTimeFormat.html#dateTime()) to obtain a
2426
- # formatter capable of generating timestamps in this format.
2427
- class Timestamp
2428
- include Google::Apis::Core::Hashable
2429
-
2430
- # Non-negative fractions of a second at nanosecond resolution. Negative second
2431
- # values with fractions must still have non-negative nanos values that count
2432
- # forward in time. Must be from 0 to 999,999,999 inclusive.
2433
- # Corresponds to the JSON property `nanos`
2434
- # @return [Fixnum]
2435
- attr_accessor :nanos
2436
-
2437
- # Represents seconds of UTC time since Unix epoch 1970-01-01T00:00:00Z. Must be
2438
- # from 0001-01-01T00:00:00Z to 9999-12-31T23:59:59Z inclusive.
2439
- # Corresponds to the JSON property `seconds`
2440
- # @return [Fixnum]
2441
- attr_accessor :seconds
2442
-
2443
- def initialize(**args)
2444
- update!(**args)
2445
- end
2446
-
2447
- # Update properties of this object
2448
- def update!(**args)
2449
- @nanos = args[:nanos] if args.key?(:nanos)
2450
- @seconds = args[:seconds] if args.key?(:seconds)
2451
- end
2452
- end
2453
-
2454
- # An execution of an arbitrary tool. It could be a test runner or a tool copying
2455
- # artifacts or deploying code.
2456
- class ToolExecution
2457
- include Google::Apis::Core::Hashable
2458
-
2459
- # The full tokenized command line including the program name (equivalent to argv
2460
- # in a C program).
2461
- # - In response: present if set by create request - In create request: optional -
2462
- # In update request: never set
2463
- # Corresponds to the JSON property `commandLineArguments`
2464
- # @return [Array<String>]
2465
- attr_accessor :command_line_arguments
2466
-
2467
- # Exit code from a tool execution.
2468
- # Corresponds to the JSON property `exitCode`
2469
- # @return [Google::Apis::ToolresultsV1beta3firstparty::ToolExitCode]
2470
- attr_accessor :exit_code
2471
-
2472
- # References to any plain text logs output the tool execution.
2473
- # This field can be set before the tool has exited in order to be able to have
2474
- # access to a live view of the logs while the tool is running.
2475
- # The maximum allowed number of tool logs per step is 1000.
2476
- # - In response: present if set by create/update request - In create request:
2477
- # optional - In update request: optional, any value provided will be appended to
2478
- # the existing list
2479
- # Corresponds to the JSON property `toolLogs`
2480
- # @return [Array<Google::Apis::ToolresultsV1beta3firstparty::FileReference>]
2481
- attr_accessor :tool_logs
2482
-
2483
- # References to opaque files of any format output by the tool execution.
2484
- # The maximum allowed number of tool outputs per step is 1000.
2485
- # - In response: present if set by create/update request - In create request:
2486
- # optional - In update request: optional, any value provided will be appended to
2487
- # the existing list
2488
- # Corresponds to the JSON property `toolOutputs`
2489
- # @return [Array<Google::Apis::ToolresultsV1beta3firstparty::ToolOutputReference>]
2490
- attr_accessor :tool_outputs
2491
-
2492
- def initialize(**args)
2493
- update!(**args)
2494
- end
2495
-
2496
- # Update properties of this object
2497
- def update!(**args)
2498
- @command_line_arguments = args[:command_line_arguments] if args.key?(:command_line_arguments)
2499
- @exit_code = args[:exit_code] if args.key?(:exit_code)
2500
- @tool_logs = args[:tool_logs] if args.key?(:tool_logs)
2501
- @tool_outputs = args[:tool_outputs] if args.key?(:tool_outputs)
2502
- end
2503
- end
2504
-
2505
- # Generic tool step to be used for binaries we do not explicitly support. For
2506
- # example: running cp to copy artifacts from one location to another.
2507
- class ToolExecutionStep
2508
- include Google::Apis::Core::Hashable
2509
-
2510
- # An execution of an arbitrary tool. It could be a test runner or a tool copying
2511
- # artifacts or deploying code.
2512
- # Corresponds to the JSON property `toolExecution`
2513
- # @return [Google::Apis::ToolresultsV1beta3firstparty::ToolExecution]
2514
- attr_accessor :tool_execution
2515
-
2516
- def initialize(**args)
2517
- update!(**args)
2518
- end
2519
-
2520
- # Update properties of this object
2521
- def update!(**args)
2522
- @tool_execution = args[:tool_execution] if args.key?(:tool_execution)
2523
- end
2524
- end
2525
-
2526
- # Exit code from a tool execution.
2527
- class ToolExitCode
2528
- include Google::Apis::Core::Hashable
2529
-
2530
- # Tool execution exit code. A value of 0 means that the execution was successful.
2531
- # - In response: always set - In create/update request: always set
2532
- # Corresponds to the JSON property `number`
2533
- # @return [Fixnum]
2534
- attr_accessor :number
2535
-
2536
- def initialize(**args)
2537
- update!(**args)
2538
- end
2539
-
2540
- # Update properties of this object
2541
- def update!(**args)
2542
- @number = args[:number] if args.key?(:number)
2543
- end
2544
- end
2545
-
2546
- # A reference to a ToolExecution output file.
2547
- class ToolOutputReference
2548
- include Google::Apis::Core::Hashable
2549
-
2550
- # A Timestamp represents a point in time independent of any time zone or
2551
- # calendar, represented as seconds and fractions of seconds at nanosecond
2552
- # resolution in UTC Epoch time. It is encoded using the Proleptic Gregorian
2553
- # Calendar which extends the Gregorian calendar backwards to year one. It is
2554
- # encoded assuming all minutes are 60 seconds long, i.e. leap seconds are "
2555
- # smeared" so that no leap second table is needed for interpretation. Range is
2556
- # from 0001-01-01T00:00:00Z to 9999-12-31T23:59:59.999999999Z. By restricting to
2557
- # that range, we ensure that we can convert to and from RFC 3339 date strings.
2558
- # See [https://www.ietf.org/rfc/rfc3339.txt](https://www.ietf.org/rfc/rfc3339.
2559
- # txt).
2560
- # # Examples
2561
- # Example 1: Compute Timestamp from POSIX `time()`.
2562
- # Timestamp timestamp; timestamp.set_seconds(time(NULL)); timestamp.set_nanos(0);
2563
- # Example 2: Compute Timestamp from POSIX `gettimeofday()`.
2564
- # struct timeval tv; gettimeofday(&tv, NULL);
2565
- # Timestamp timestamp; timestamp.set_seconds(tv.tv_sec); timestamp.set_nanos(tv.
2566
- # tv_usec * 1000);
2567
- # Example 3: Compute Timestamp from Win32 `GetSystemTimeAsFileTime()`.
2568
- # FILETIME ft; GetSystemTimeAsFileTime(&ft); UINT64 ticks = (((UINT64)ft.
2569
- # dwHighDateTime) << 32) | ft.dwLowDateTime;
2570
- # // A Windows tick is 100 nanoseconds. Windows epoch 1601-01-01T00:00:00Z // is
2571
- # 11644473600 seconds before Unix epoch 1970-01-01T00:00:00Z. Timestamp
2572
- # timestamp; timestamp.set_seconds((INT64) ((ticks / 10000000) - 11644473600LL));
2573
- # timestamp.set_nanos((INT32) ((ticks % 10000000) * 100));
2574
- # Example 4: Compute Timestamp from Java `System.currentTimeMillis()`.
2575
- # long millis = System.currentTimeMillis();
2576
- # Timestamp timestamp = Timestamp.newBuilder().setSeconds(millis / 1000) .
2577
- # setNanos((int) ((millis % 1000) * 1000000)).build();
2578
- # Example 5: Compute Timestamp from current time in Python.
2579
- # timestamp = Timestamp() timestamp.GetCurrentTime()
2580
- # # JSON Mapping
2581
- # In JSON format, the Timestamp type is encoded as a string in the [RFC 3339](
2582
- # https://www.ietf.org/rfc/rfc3339.txt) format. That is, the format is "`year`-`
2583
- # month`-`day`T`hour`:`min`:`sec`[.`frac_sec`]Z" where `year` is always
2584
- # expressed using four digits while `month`, `day`, `hour`, `min`, and `sec` are
2585
- # zero-padded to two digits each. The fractional seconds, which can go up to 9
2586
- # digits (i.e. up to 1 nanosecond resolution), are optional. The "Z" suffix
2587
- # indicates the timezone ("UTC"); the timezone is required, though only UTC (as
2588
- # indicated by "Z") is presently supported.
2589
- # For example, "2017-01-15T01:30:15.01Z" encodes 15.01 seconds past 01:30 UTC on
2590
- # January 15, 2017.
2591
- # In JavaScript, one can convert a Date object to this format using the standard
2592
- # [toISOString()](https://developer.mozilla.org/en-US/docs/Web/JavaScript/
2593
- # Reference/Global_Objects/Date/toISOString] method. In Python, a standard `
2594
- # datetime.datetime` object can be converted to this format using [`strftime`](
2595
- # https://docs.python.org/2/library/time.html#time.strftime) with the time
2596
- # format spec '%Y-%m-%dT%H:%M:%S.%fZ'. Likewise, in Java, one can use the Joda
2597
- # Time's [`ISODateTimeFormat.dateTime()`]( http://joda-time.sourceforge.net/
2598
- # apidocs/org/joda/time/format/ISODateTimeFormat.html#dateTime()) to obtain a
2599
- # formatter capable of generating timestamps in this format.
2600
- # Corresponds to the JSON property `creationTime`
2601
- # @return [Google::Apis::ToolresultsV1beta3firstparty::Timestamp]
2602
- attr_accessor :creation_time
2603
-
2604
- # A reference to a file.
2605
- # Corresponds to the JSON property `output`
2606
- # @return [Google::Apis::ToolresultsV1beta3firstparty::FileReference]
2607
- attr_accessor :output
2608
-
2609
- # A reference to a test case.
2610
- # Test case references are canonically ordered lexicographically by these three
2611
- # factors: * First, by test_suite_name. * Second, by class_name. * Third, by
2612
- # name.
2613
- # Corresponds to the JSON property `testCase`
2614
- # @return [Google::Apis::ToolresultsV1beta3firstparty::TestCaseReference]
2615
- attr_accessor :test_case
2616
-
2617
- def initialize(**args)
2618
- update!(**args)
2619
- end
2620
-
2621
- # Update properties of this object
2622
- def update!(**args)
2623
- @creation_time = args[:creation_time] if args.key?(:creation_time)
2624
- @output = args[:output] if args.key?(:output)
2625
- @test_case = args[:test_case] if args.key?(:test_case)
2626
- end
2627
- end
2628
- end
2629
- end
2630
- end