google-api-client 0.13.6 → 0.14.0

Sign up to get free protection for your applications and to get access to all the features.
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