google-apis-prod_tt_sasportal_v1alpha1 0.1.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA256:
3
+ metadata.gz: 297fc17222f338b79c915709953830cb58e058e2f9ab7fc59ed71988d0dc9dbe
4
+ data.tar.gz: b784ba09d745404b5b6cfbdccdd0685d47acf452677267a8cc684211b1536ee0
5
+ SHA512:
6
+ metadata.gz: 47ef24b8e5bbd7610751fe136f37289af12332e0a983a135e6935c52a276016ac9042c2f298ec61dbcd06caba732d5e3cbb2e462211de7a4af4fcdf5dd5ffc58
7
+ data.tar.gz: 438a4da7a1b3a06bfb41a4eda04f97ffcff465814329da0722b185b430f4aae5ed4e1bc38fc7aa4cdfd7eaf5c3ee0a86fd5801314e9d661e01dcc6c34b6e37a6
@@ -0,0 +1,13 @@
1
+ --hide-void-return
2
+ --no-private
3
+ --verbose
4
+ --title=google-apis-prod_tt_sasportal_v1alpha1
5
+ --markup-provider=redcarpet
6
+ --markup=markdown
7
+ --main OVERVIEW.md
8
+ lib/google/apis/prod_tt_sasportal_v1alpha1/*.rb
9
+ lib/google/apis/prod_tt_sasportal_v1alpha1.rb
10
+ -
11
+ OVERVIEW.md
12
+ CHANGELOG.md
13
+ LICENSE.md
@@ -0,0 +1,7 @@
1
+ # Release history for google-apis-prod_tt_sasportal_v1alpha1
2
+
3
+ ### v0.1.0 (2021-01-07)
4
+
5
+ * Regenerated using generator version 0.1.1
6
+ * Regenerated from discovery document revision 20201211
7
+
@@ -0,0 +1,202 @@
1
+
2
+ Apache License
3
+ Version 2.0, January 2004
4
+ http://www.apache.org/licenses/
5
+
6
+ TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
7
+
8
+ 1. Definitions.
9
+
10
+ "License" shall mean the terms and conditions for use, reproduction,
11
+ and distribution as defined by Sections 1 through 9 of this document.
12
+
13
+ "Licensor" shall mean the copyright owner or entity authorized by
14
+ the copyright owner that is granting the License.
15
+
16
+ "Legal Entity" shall mean the union of the acting entity and all
17
+ other entities that control, are controlled by, or are under common
18
+ control with that entity. For the purposes of this definition,
19
+ "control" means (i) the power, direct or indirect, to cause the
20
+ direction or management of such entity, whether by contract or
21
+ otherwise, or (ii) ownership of fifty percent (50%) or more of the
22
+ outstanding shares, or (iii) beneficial ownership of such entity.
23
+
24
+ "You" (or "Your") shall mean an individual or Legal Entity
25
+ exercising permissions granted by this License.
26
+
27
+ "Source" form shall mean the preferred form for making modifications,
28
+ including but not limited to software source code, documentation
29
+ source, and configuration files.
30
+
31
+ "Object" form shall mean any form resulting from mechanical
32
+ transformation or translation of a Source form, including but
33
+ not limited to compiled object code, generated documentation,
34
+ and conversions to other media types.
35
+
36
+ "Work" shall mean the work of authorship, whether in Source or
37
+ Object form, made available under the License, as indicated by a
38
+ copyright notice that is included in or attached to the work
39
+ (an example is provided in the Appendix below).
40
+
41
+ "Derivative Works" shall mean any work, whether in Source or Object
42
+ form, that is based on (or derived from) the Work and for which the
43
+ editorial revisions, annotations, elaborations, or other modifications
44
+ represent, as a whole, an original work of authorship. For the purposes
45
+ of this License, Derivative Works shall not include works that remain
46
+ separable from, or merely link (or bind by name) to the interfaces of,
47
+ the Work and Derivative Works thereof.
48
+
49
+ "Contribution" shall mean any work of authorship, including
50
+ the original version of the Work and any modifications or additions
51
+ to that Work or Derivative Works thereof, that is intentionally
52
+ submitted to Licensor for inclusion in the Work by the copyright owner
53
+ or by an individual or Legal Entity authorized to submit on behalf of
54
+ the copyright owner. For the purposes of this definition, "submitted"
55
+ means any form of electronic, verbal, or written communication sent
56
+ to the Licensor or its representatives, including but not limited to
57
+ communication on electronic mailing lists, source code control systems,
58
+ and issue tracking systems that are managed by, or on behalf of, the
59
+ Licensor for the purpose of discussing and improving the Work, but
60
+ excluding communication that is conspicuously marked or otherwise
61
+ designated in writing by the copyright owner as "Not a Contribution."
62
+
63
+ "Contributor" shall mean Licensor and any individual or Legal Entity
64
+ on behalf of whom a Contribution has been received by Licensor and
65
+ subsequently incorporated within the Work.
66
+
67
+ 2. Grant of Copyright License. Subject to the terms and conditions of
68
+ this License, each Contributor hereby grants to You a perpetual,
69
+ worldwide, non-exclusive, no-charge, royalty-free, irrevocable
70
+ copyright license to reproduce, prepare Derivative Works of,
71
+ publicly display, publicly perform, sublicense, and distribute the
72
+ Work and such Derivative Works in Source or Object form.
73
+
74
+ 3. Grant of Patent License. Subject to the terms and conditions of
75
+ this License, each Contributor hereby grants to You a perpetual,
76
+ worldwide, non-exclusive, no-charge, royalty-free, irrevocable
77
+ (except as stated in this section) patent license to make, have made,
78
+ use, offer to sell, sell, import, and otherwise transfer the Work,
79
+ where such license applies only to those patent claims licensable
80
+ by such Contributor that are necessarily infringed by their
81
+ Contribution(s) alone or by combination of their Contribution(s)
82
+ with the Work to which such Contribution(s) was submitted. If You
83
+ institute patent litigation against any entity (including a
84
+ cross-claim or counterclaim in a lawsuit) alleging that the Work
85
+ or a Contribution incorporated within the Work constitutes direct
86
+ or contributory patent infringement, then any patent licenses
87
+ granted to You under this License for that Work shall terminate
88
+ as of the date such litigation is filed.
89
+
90
+ 4. Redistribution. You may reproduce and distribute copies of the
91
+ Work or Derivative Works thereof in any medium, with or without
92
+ modifications, and in Source or Object form, provided that You
93
+ meet the following conditions:
94
+
95
+ (a) You must give any other recipients of the Work or
96
+ Derivative Works a copy of this License; and
97
+
98
+ (b) You must cause any modified files to carry prominent notices
99
+ stating that You changed the files; and
100
+
101
+ (c) You must retain, in the Source form of any Derivative Works
102
+ that You distribute, all copyright, patent, trademark, and
103
+ attribution notices from the Source form of the Work,
104
+ excluding those notices that do not pertain to any part of
105
+ the Derivative Works; and
106
+
107
+ (d) If the Work includes a "NOTICE" text file as part of its
108
+ distribution, then any Derivative Works that You distribute must
109
+ include a readable copy of the attribution notices contained
110
+ within such NOTICE file, excluding those notices that do not
111
+ pertain to any part of the Derivative Works, in at least one
112
+ of the following places: within a NOTICE text file distributed
113
+ as part of the Derivative Works; within the Source form or
114
+ documentation, if provided along with the Derivative Works; or,
115
+ within a display generated by the Derivative Works, if and
116
+ wherever such third-party notices normally appear. The contents
117
+ of the NOTICE file are for informational purposes only and
118
+ do not modify the License. You may add Your own attribution
119
+ notices within Derivative Works that You distribute, alongside
120
+ or as an addendum to the NOTICE text from the Work, provided
121
+ that such additional attribution notices cannot be construed
122
+ as modifying the License.
123
+
124
+ You may add Your own copyright statement to Your modifications and
125
+ may provide additional or different license terms and conditions
126
+ for use, reproduction, or distribution of Your modifications, or
127
+ for any such Derivative Works as a whole, provided Your use,
128
+ reproduction, and distribution of the Work otherwise complies with
129
+ the conditions stated in this License.
130
+
131
+ 5. Submission of Contributions. Unless You explicitly state otherwise,
132
+ any Contribution intentionally submitted for inclusion in the Work
133
+ by You to the Licensor shall be under the terms and conditions of
134
+ this License, without any additional terms or conditions.
135
+ Notwithstanding the above, nothing herein shall supersede or modify
136
+ the terms of any separate license agreement you may have executed
137
+ with Licensor regarding such Contributions.
138
+
139
+ 6. Trademarks. This License does not grant permission to use the trade
140
+ names, trademarks, service marks, or product names of the Licensor,
141
+ except as required for reasonable and customary use in describing the
142
+ origin of the Work and reproducing the content of the NOTICE file.
143
+
144
+ 7. Disclaimer of Warranty. Unless required by applicable law or
145
+ agreed to in writing, Licensor provides the Work (and each
146
+ Contributor provides its Contributions) on an "AS IS" BASIS,
147
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
148
+ implied, including, without limitation, any warranties or conditions
149
+ of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
150
+ PARTICULAR PURPOSE. You are solely responsible for determining the
151
+ appropriateness of using or redistributing the Work and assume any
152
+ risks associated with Your exercise of permissions under this License.
153
+
154
+ 8. Limitation of Liability. In no event and under no legal theory,
155
+ whether in tort (including negligence), contract, or otherwise,
156
+ unless required by applicable law (such as deliberate and grossly
157
+ negligent acts) or agreed to in writing, shall any Contributor be
158
+ liable to You for damages, including any direct, indirect, special,
159
+ incidental, or consequential damages of any character arising as a
160
+ result of this License or out of the use or inability to use the
161
+ Work (including but not limited to damages for loss of goodwill,
162
+ work stoppage, computer failure or malfunction, or any and all
163
+ other commercial damages or losses), even if such Contributor
164
+ has been advised of the possibility of such damages.
165
+
166
+ 9. Accepting Warranty or Additional Liability. While redistributing
167
+ the Work or Derivative Works thereof, You may choose to offer,
168
+ and charge a fee for, acceptance of support, warranty, indemnity,
169
+ or other liability obligations and/or rights consistent with this
170
+ License. However, in accepting such obligations, You may act only
171
+ on Your own behalf and on Your sole responsibility, not on behalf
172
+ of any other Contributor, and only if You agree to indemnify,
173
+ defend, and hold each Contributor harmless for any liability
174
+ incurred by, or claims asserted against, such Contributor by reason
175
+ of your accepting any such warranty or additional liability.
176
+
177
+ END OF TERMS AND CONDITIONS
178
+
179
+ APPENDIX: How to apply the Apache License to your work.
180
+
181
+ To apply the Apache License to your work, attach the following
182
+ boilerplate notice, with the fields enclosed by brackets "[]"
183
+ replaced with your own identifying information. (Don't include
184
+ the brackets!) The text should be enclosed in the appropriate
185
+ comment syntax for the file format. We also recommend that a
186
+ file or class name and description of purpose be included on the
187
+ same "printed page" as the copyright notice for easier
188
+ identification within third-party archives.
189
+
190
+ Copyright [yyyy] [name of copyright owner]
191
+
192
+ Licensed under the Apache License, Version 2.0 (the "License");
193
+ you may not use this file except in compliance with the License.
194
+ You may obtain a copy of the License at
195
+
196
+ http://www.apache.org/licenses/LICENSE-2.0
197
+
198
+ Unless required by applicable law or agreed to in writing, software
199
+ distributed under the License is distributed on an "AS IS" BASIS,
200
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
201
+ See the License for the specific language governing permissions and
202
+ limitations under the License.
@@ -0,0 +1,96 @@
1
+ # Simple REST client for version V1alpha1 of the SAS Portal API (Testing)
2
+
3
+ This is a simple client library for version V1alpha1 of the SAS Portal API (Testing). It provides:
4
+
5
+ * A client object that connects to the HTTP/JSON REST endpoint for the service.
6
+ * Ruby objects for data structures related to the service.
7
+ * Integration with the googleauth gem for authentication using OAuth, API keys, and service accounts.
8
+ * Control of retry, pagination, and timeouts.
9
+
10
+ Note that although this client library is supported and will continue to be updated to track changes to the service, it is otherwise considered complete and not under active development. Many Google services, especially Google Cloud Platform services, may provide a more modern client that is under more active development and improvement. See the section below titled *Which client should I use?* for more information.
11
+
12
+ ## Getting started
13
+
14
+ ### Before you begin
15
+
16
+ There are a few setup steps you need to complete before you can use this library:
17
+
18
+ 1. If you don't already have a Google account, [sign up](https://www.google.com/accounts).
19
+ 2. If you have never created a Google APIs Console project, read about [Managing Projects](https://cloud.google.com/resource-manager/docs/creating-managing-projects) and create a project in the [Google API Console](https://console.cloud.google.com/).
20
+ 3. Most APIs need to be enabled for your project. [Enable it](https://console.cloud.google.com/apis/library/prodttsasportal.googleapis.com) in the console.
21
+
22
+ ### Installation
23
+
24
+ Add this line to your application's Gemfile:
25
+
26
+ ```ruby
27
+ gem 'google-apis-prod_tt_sasportal_v1alpha1', '~> 0.1'
28
+ ```
29
+
30
+ And then execute:
31
+
32
+ ```
33
+ $ bundle
34
+ ```
35
+
36
+ Or install it yourself as:
37
+
38
+ ```
39
+ $ gem install google-apis-prod_tt_sasportal_v1alpha1
40
+ ```
41
+
42
+ ### Creating a client object
43
+
44
+ Once the gem is installed, you can load the client code and instantiate a client.
45
+
46
+ ```ruby
47
+ # Load the client
48
+ require "google/apis/prod_tt_sasportal_v1alpha1"
49
+
50
+ # Create a client object
51
+ client = Google::Apis::ProdTtSasportalV1alpha1::SASPortalTestingService.new
52
+
53
+ # Authenticate calls
54
+ client.authentication = # ... use the googleauth gem to create credentials
55
+ ```
56
+
57
+ See the class reference docs for information on the methods you can call from a client.
58
+
59
+ ## Documentation
60
+
61
+ More detailed descriptions of the Google simple REST clients are available in two documents.
62
+
63
+ * The [Usage Guide](https://github.com/googleapis/google-api-ruby-client/blob/master/docs/usage-guide.md) discusses how to make API calls, how to use the provided data structures, and how to work the various features of the client library, including media upload and download, error handling, retries, pagination, and logging.
64
+ * The [Auth Guide](https://github.com/googleapis/google-api-ruby-client/blob/master/docs/auth-guide.md) discusses authentication in the client libraries, including API keys, OAuth 2.0, service accounts, and environment variables.
65
+
66
+ (Note: the above documents are written for the simple REST clients in general, and their examples may not reflect the ProdTtSasportal service in particular.)
67
+
68
+ For reference information on specific calls in the SAS Portal API (Testing), see the {Google::Apis::ProdTtSasportalV1alpha1::SASPortalTestingService class reference docs}.
69
+
70
+ ## Which client should I use?
71
+
72
+ Google provides two types of Ruby API client libraries: **simple REST clients** and **modern clients**.
73
+
74
+ This library, `google-apis-prod_tt_sasportal_v1alpha1`, is a simple REST client. You can identify these clients by their gem names, which are always in the form `google-apis-<servicename>_<serviceversion>`. The simple REST clients connect to HTTP/JSON REST endpoints and are automatically generated from service discovery documents. They support most API functionality, but their class interfaces are sometimes awkward.
75
+
76
+ Modern clients are produced by a modern code generator, sometimes combined with hand-crafted functionality. Most modern clients connect to high-performance gRPC endpoints, although a few are backed by REST services. Modern clients are available for many Google services, especially Google Cloud Platform services, but do not yet support all the services covered by the simple clients.
77
+
78
+ Gem names for modern clients are often of the form `google-cloud-<service_name>`. (For example, [google-cloud-pubsub](https://rubygems.org/gems/google-cloud-pubsub).) Note that most modern clients also have corresponding "versioned" gems with names like `google-cloud-<service_name>-<version>`. (For example, [google-cloud-pubsub-v1](https://rubygems.org/gems/google-cloud-pubsub-v1).) The "versioned" gems can be used directly, but often provide lower-level interfaces. In most cases, the main gem is recommended.
79
+
80
+ **For most users, we recommend the modern client, if one is available.** Compared with simple clients, modern clients are generally much easier to use and more Ruby-like, support more advanced features such as streaming and long-running operations, and often provide much better performance. You may consider using a simple client instead, if a modern client is not yet available for the service you want to use, or if you are not able to use gRPC on your infrastructure.
81
+
82
+ The [product documentation](https://developers.google.com/spectrum-access-system/) may provide guidance regarding the preferred client library to use.
83
+
84
+ ## Supported Ruby versions
85
+
86
+ This library is supported on Ruby 2.5+.
87
+
88
+ Google provides official support for Ruby versions that are actively supported by Ruby Core -- that is, Ruby versions that are either in normal maintenance or in security maintenance, and not end of life. Currently, this means Ruby 2.5 and later. Older versions of Ruby _may_ still work, but are unsupported and not recommended. See https://www.ruby-lang.org/en/downloads/branches/ for details about the Ruby support schedule.
89
+
90
+ ## License
91
+
92
+ This library is licensed under Apache 2.0. Full license text is available in the {file:LICENSE.md LICENSE}.
93
+
94
+ ## Support
95
+
96
+ Please [report bugs at the project on Github](https://github.com/google/google-api-ruby-client/issues). Don't hesitate to [ask questions](http://stackoverflow.com/questions/tagged/google-api-ruby-client) about the client or APIs on [StackOverflow](http://stackoverflow.com).
@@ -0,0 +1,15 @@
1
+ # Copyright 2020 Google LLC
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 "google/apis/prod_tt_sasportal_v1alpha1"
@@ -0,0 +1,36 @@
1
+ # Copyright 2020 Google LLC
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 'google/apis/prod_tt_sasportal_v1alpha1/service.rb'
16
+ require 'google/apis/prod_tt_sasportal_v1alpha1/classes.rb'
17
+ require 'google/apis/prod_tt_sasportal_v1alpha1/representations.rb'
18
+ require 'google/apis/prod_tt_sasportal_v1alpha1/gem_version.rb'
19
+
20
+ module Google
21
+ module Apis
22
+ # SAS Portal API (Testing)
23
+ #
24
+ #
25
+ #
26
+ # @see https://developers.google.com/spectrum-access-system/
27
+ module ProdTtSasportalV1alpha1
28
+ # Version of the SAS Portal API (Testing) this client connects to.
29
+ # This is NOT the gem version.
30
+ VERSION = 'V1alpha1'
31
+
32
+ # View your email address
33
+ AUTH_USERINFO_EMAIL = 'https://www.googleapis.com/auth/userinfo.email'
34
+ end
35
+ end
36
+ end
@@ -0,0 +1,1158 @@
1
+ # Copyright 2020 Google LLC
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 ProdTtSasportalV1alpha1
24
+
25
+ # Associates `members` with a `role`.
26
+ class SasPortalAssignment
27
+ include Google::Apis::Core::Hashable
28
+
29
+ # The identities the role is assigned to. It can have the following values: * ``
30
+ # user_email``: An email address that represents a specific Google account. For
31
+ # example: `alice@gmail.com`. * ``group_email``: An email address that
32
+ # represents a Google group. For example, `viewers@gmail.com`.
33
+ # Corresponds to the JSON property `members`
34
+ # @return [Array<String>]
35
+ attr_accessor :members
36
+
37
+ # Required. Role that is assigned to `members`.
38
+ # Corresponds to the JSON property `role`
39
+ # @return [String]
40
+ attr_accessor :role
41
+
42
+ def initialize(**args)
43
+ update!(**args)
44
+ end
45
+
46
+ # Update properties of this object
47
+ def update!(**args)
48
+ @members = args[:members] if args.key?(:members)
49
+ @role = args[:role] if args.key?(:role)
50
+ end
51
+ end
52
+
53
+ # Request for BulkCreateDevice method.
54
+ class SasPortalBulkCreateDeviceRequest
55
+ include Google::Apis::Core::Hashable
56
+
57
+ # Required. A csv with each row representing a [device]. Each row must conform
58
+ # to the regulations described on CreateDeviceRequest's device field.
59
+ # Corresponds to the JSON property `csv`
60
+ # @return [String]
61
+ attr_accessor :csv
62
+
63
+ def initialize(**args)
64
+ update!(**args)
65
+ end
66
+
67
+ # Update properties of this object
68
+ def update!(**args)
69
+ @csv = args[:csv] if args.key?(:csv)
70
+ end
71
+ end
72
+
73
+ # Response for BulkCreateDevice method.
74
+ class SasPortalBulkCreateDeviceResponse
75
+ include Google::Apis::Core::Hashable
76
+
77
+ # Required. The devices that were imported.
78
+ # Corresponds to the JSON property `devices`
79
+ # @return [Array<Google::Apis::ProdTtSasportalV1alpha1::SasPortalDevice>]
80
+ attr_accessor :devices
81
+
82
+ def initialize(**args)
83
+ update!(**args)
84
+ end
85
+
86
+ # Update properties of this object
87
+ def update!(**args)
88
+ @devices = args[:devices] if args.key?(:devices)
89
+ end
90
+ end
91
+
92
+ # Request for CreateSignedDevice method.
93
+ class SasPortalCreateSignedDeviceRequest
94
+ include Google::Apis::Core::Hashable
95
+
96
+ # Required. JSON Web Token signed using a CPI private key. Payload must be the
97
+ # JSON encoding of the [Device]. The user_id field must be set.
98
+ # Corresponds to the JSON property `encodedDevice`
99
+ # NOTE: Values are automatically base64 encoded/decoded in the client library.
100
+ # @return [String]
101
+ attr_accessor :encoded_device
102
+
103
+ # Required. Unique installer id (cpiId) from the Certified Professional
104
+ # Installers database.
105
+ # Corresponds to the JSON property `installerId`
106
+ # @return [String]
107
+ attr_accessor :installer_id
108
+
109
+ def initialize(**args)
110
+ update!(**args)
111
+ end
112
+
113
+ # Update properties of this object
114
+ def update!(**args)
115
+ @encoded_device = args[:encoded_device] if args.key?(:encoded_device)
116
+ @installer_id = args[:installer_id] if args.key?(:installer_id)
117
+ end
118
+ end
119
+
120
+ # Entity representing a SAS customer.
121
+ class SasPortalCustomer
122
+ include Google::Apis::Core::Hashable
123
+
124
+ # Required. Name of the organization that the customer entity represents.
125
+ # Corresponds to the JSON property `displayName`
126
+ # @return [String]
127
+ attr_accessor :display_name
128
+
129
+ # Output only. Resource name of the customer.
130
+ # Corresponds to the JSON property `name`
131
+ # @return [String]
132
+ attr_accessor :name
133
+
134
+ # User IDs used by the devices belonging to this customer.
135
+ # Corresponds to the JSON property `sasUserIds`
136
+ # @return [Array<String>]
137
+ attr_accessor :sas_user_ids
138
+
139
+ def initialize(**args)
140
+ update!(**args)
141
+ end
142
+
143
+ # Update properties of this object
144
+ def update!(**args)
145
+ @display_name = args[:display_name] if args.key?(:display_name)
146
+ @name = args[:name] if args.key?(:name)
147
+ @sas_user_ids = args[:sas_user_ids] if args.key?(:sas_user_ids)
148
+ end
149
+ end
150
+
151
+ #
152
+ class SasPortalDevice
153
+ include Google::Apis::Core::Hashable
154
+
155
+ # Information about the device configuration.
156
+ # Corresponds to the JSON property `activeConfig`
157
+ # @return [Google::Apis::ProdTtSasportalV1alpha1::SasPortalDeviceConfig]
158
+ attr_accessor :active_config
159
+
160
+ # Device data overridable by both SAS Portal and registration requests.
161
+ # Corresponds to the JSON property `deviceMetadata`
162
+ # @return [Google::Apis::ProdTtSasportalV1alpha1::SasPortalDeviceMetadata]
163
+ attr_accessor :device_metadata
164
+
165
+ # Device display name.
166
+ # Corresponds to the JSON property `displayName`
167
+ # @return [String]
168
+ attr_accessor :display_name
169
+
170
+ # The FCC identifier of the device.
171
+ # Corresponds to the JSON property `fccId`
172
+ # @return [String]
173
+ attr_accessor :fcc_id
174
+
175
+ # Output only. Grants held by the device.
176
+ # Corresponds to the JSON property `grants`
177
+ # @return [Array<Google::Apis::ProdTtSasportalV1alpha1::SasPortalDeviceGrant>]
178
+ attr_accessor :grants
179
+
180
+ # Output only. The resource path name.
181
+ # Corresponds to the JSON property `name`
182
+ # @return [String]
183
+ attr_accessor :name
184
+
185
+ # Information about the device configuration.
186
+ # Corresponds to the JSON property `preloadedConfig`
187
+ # @return [Google::Apis::ProdTtSasportalV1alpha1::SasPortalDeviceConfig]
188
+ attr_accessor :preloaded_config
189
+
190
+ # A serial number assigned to the device by the device manufacturer.
191
+ # Corresponds to the JSON property `serialNumber`
192
+ # @return [String]
193
+ attr_accessor :serial_number
194
+
195
+ # Output only. Device state.
196
+ # Corresponds to the JSON property `state`
197
+ # @return [String]
198
+ attr_accessor :state
199
+
200
+ def initialize(**args)
201
+ update!(**args)
202
+ end
203
+
204
+ # Update properties of this object
205
+ def update!(**args)
206
+ @active_config = args[:active_config] if args.key?(:active_config)
207
+ @device_metadata = args[:device_metadata] if args.key?(:device_metadata)
208
+ @display_name = args[:display_name] if args.key?(:display_name)
209
+ @fcc_id = args[:fcc_id] if args.key?(:fcc_id)
210
+ @grants = args[:grants] if args.key?(:grants)
211
+ @name = args[:name] if args.key?(:name)
212
+ @preloaded_config = args[:preloaded_config] if args.key?(:preloaded_config)
213
+ @serial_number = args[:serial_number] if args.key?(:serial_number)
214
+ @state = args[:state] if args.key?(:state)
215
+ end
216
+ end
217
+
218
+ # Information about the device's air interface.
219
+ class SasPortalDeviceAirInterface
220
+ include Google::Apis::Core::Hashable
221
+
222
+ # This field specifies the radio access technology that is used for the CBSD.
223
+ # Conditional
224
+ # Corresponds to the JSON property `radioTechnology`
225
+ # @return [String]
226
+ attr_accessor :radio_technology
227
+
228
+ # This field is related to the radioTechnology field and provides the air
229
+ # interface specification that the CBSD is compliant with at the time of
230
+ # registration. Optional
231
+ # Corresponds to the JSON property `supportedSpec`
232
+ # @return [String]
233
+ attr_accessor :supported_spec
234
+
235
+ def initialize(**args)
236
+ update!(**args)
237
+ end
238
+
239
+ # Update properties of this object
240
+ def update!(**args)
241
+ @radio_technology = args[:radio_technology] if args.key?(:radio_technology)
242
+ @supported_spec = args[:supported_spec] if args.key?(:supported_spec)
243
+ end
244
+ end
245
+
246
+ # Information about the device configuration.
247
+ class SasPortalDeviceConfig
248
+ include Google::Apis::Core::Hashable
249
+
250
+ # Information about the device's air interface.
251
+ # Corresponds to the JSON property `airInterface`
252
+ # @return [Google::Apis::ProdTtSasportalV1alpha1::SasPortalDeviceAirInterface]
253
+ attr_accessor :air_interface
254
+
255
+ # The call sign of the device operator.
256
+ # Corresponds to the JSON property `callSign`
257
+ # @return [String]
258
+ attr_accessor :call_sign
259
+
260
+ # FCC category of the device.
261
+ # Corresponds to the JSON property `category`
262
+ # @return [String]
263
+ attr_accessor :category
264
+
265
+ # Information about the device installation parameters.
266
+ # Corresponds to the JSON property `installationParams`
267
+ # @return [Google::Apis::ProdTtSasportalV1alpha1::SasPortalInstallationParams]
268
+ attr_accessor :installation_params
269
+
270
+ # Output-only. Whether the configuration has been signed by a CPI.
271
+ # Corresponds to the JSON property `isSigned`
272
+ # @return [Boolean]
273
+ attr_accessor :is_signed
274
+ alias_method :is_signed?, :is_signed
275
+
276
+ # Measurement reporting capabilities of the device.
277
+ # Corresponds to the JSON property `measurementCapabilities`
278
+ # @return [Array<String>]
279
+ attr_accessor :measurement_capabilities
280
+
281
+ # Information about the model of the device.
282
+ # Corresponds to the JSON property `model`
283
+ # @return [Google::Apis::ProdTtSasportalV1alpha1::SasPortalDeviceModel]
284
+ attr_accessor :model
285
+
286
+ # State of the configuration.
287
+ # Corresponds to the JSON property `state`
288
+ # @return [String]
289
+ attr_accessor :state
290
+
291
+ # Output-only. The last time the device configuration was edited.
292
+ # Corresponds to the JSON property `updateTime`
293
+ # @return [String]
294
+ attr_accessor :update_time
295
+
296
+ # The identifier of a device user.
297
+ # Corresponds to the JSON property `userId`
298
+ # @return [String]
299
+ attr_accessor :user_id
300
+
301
+ def initialize(**args)
302
+ update!(**args)
303
+ end
304
+
305
+ # Update properties of this object
306
+ def update!(**args)
307
+ @air_interface = args[:air_interface] if args.key?(:air_interface)
308
+ @call_sign = args[:call_sign] if args.key?(:call_sign)
309
+ @category = args[:category] if args.key?(:category)
310
+ @installation_params = args[:installation_params] if args.key?(:installation_params)
311
+ @is_signed = args[:is_signed] if args.key?(:is_signed)
312
+ @measurement_capabilities = args[:measurement_capabilities] if args.key?(:measurement_capabilities)
313
+ @model = args[:model] if args.key?(:model)
314
+ @state = args[:state] if args.key?(:state)
315
+ @update_time = args[:update_time] if args.key?(:update_time)
316
+ @user_id = args[:user_id] if args.key?(:user_id)
317
+ end
318
+ end
319
+
320
+ # Device grant. It is an authorization provided by the Spectrum Access System to
321
+ # a device to transmit using specified operating parameters after a successful
322
+ # heartbeat by the device.
323
+ class SasPortalDeviceGrant
324
+ include Google::Apis::Core::Hashable
325
+
326
+ # Type of channel used.
327
+ # Corresponds to the JSON property `channelType`
328
+ # @return [String]
329
+ attr_accessor :channel_type
330
+
331
+ # The expiration time of the grant.
332
+ # Corresponds to the JSON property `expireTime`
333
+ # @return [String]
334
+ attr_accessor :expire_time
335
+
336
+ # Frequency range from `low_frequency` to `high_frequency`.
337
+ # Corresponds to the JSON property `frequencyRange`
338
+ # @return [Google::Apis::ProdTtSasportalV1alpha1::SasPortalFrequencyRange]
339
+ attr_accessor :frequency_range
340
+
341
+ # Grant Id.
342
+ # Corresponds to the JSON property `grantId`
343
+ # @return [String]
344
+ attr_accessor :grant_id
345
+
346
+ # Maximum Equivalent Isotropically Radiated Power (EIRP) permitted by the grant.
347
+ # The maximum EIRP is in units of dBm/MHz. The value of maxEirp represents the
348
+ # average (RMS) EIRP that would be measured by the procedure defined in FCC part
349
+ # 96.41(e)(3).
350
+ # Corresponds to the JSON property `maxEirp`
351
+ # @return [Float]
352
+ attr_accessor :max_eirp
353
+
354
+ # The DPA move lists on which this grant appears.
355
+ # Corresponds to the JSON property `moveList`
356
+ # @return [Array<Google::Apis::ProdTtSasportalV1alpha1::SasPortalDpaMoveList>]
357
+ attr_accessor :move_list
358
+
359
+ # State of the grant.
360
+ # Corresponds to the JSON property `state`
361
+ # @return [String]
362
+ attr_accessor :state
363
+
364
+ # If the grant is suspended, the reason(s) for suspension.
365
+ # Corresponds to the JSON property `suspensionReason`
366
+ # @return [Array<String>]
367
+ attr_accessor :suspension_reason
368
+
369
+ def initialize(**args)
370
+ update!(**args)
371
+ end
372
+
373
+ # Update properties of this object
374
+ def update!(**args)
375
+ @channel_type = args[:channel_type] if args.key?(:channel_type)
376
+ @expire_time = args[:expire_time] if args.key?(:expire_time)
377
+ @frequency_range = args[:frequency_range] if args.key?(:frequency_range)
378
+ @grant_id = args[:grant_id] if args.key?(:grant_id)
379
+ @max_eirp = args[:max_eirp] if args.key?(:max_eirp)
380
+ @move_list = args[:move_list] if args.key?(:move_list)
381
+ @state = args[:state] if args.key?(:state)
382
+ @suspension_reason = args[:suspension_reason] if args.key?(:suspension_reason)
383
+ end
384
+ end
385
+
386
+ # Device data overridable by both SAS Portal and registration requests.
387
+ class SasPortalDeviceMetadata
388
+ include Google::Apis::Core::Hashable
389
+
390
+ def initialize(**args)
391
+ update!(**args)
392
+ end
393
+
394
+ # Update properties of this object
395
+ def update!(**args)
396
+ end
397
+ end
398
+
399
+ # Information about the model of the device.
400
+ class SasPortalDeviceModel
401
+ include Google::Apis::Core::Hashable
402
+
403
+ # The firmware version of the device.
404
+ # Corresponds to the JSON property `firmwareVersion`
405
+ # @return [String]
406
+ attr_accessor :firmware_version
407
+
408
+ # The hardware version of the device.
409
+ # Corresponds to the JSON property `hardwareVersion`
410
+ # @return [String]
411
+ attr_accessor :hardware_version
412
+
413
+ # The name of the device model.
414
+ # Corresponds to the JSON property `name`
415
+ # @return [String]
416
+ attr_accessor :name
417
+
418
+ # The software version of the device.
419
+ # Corresponds to the JSON property `softwareVersion`
420
+ # @return [String]
421
+ attr_accessor :software_version
422
+
423
+ # The name of the device vendor.
424
+ # Corresponds to the JSON property `vendor`
425
+ # @return [String]
426
+ attr_accessor :vendor
427
+
428
+ def initialize(**args)
429
+ update!(**args)
430
+ end
431
+
432
+ # Update properties of this object
433
+ def update!(**args)
434
+ @firmware_version = args[:firmware_version] if args.key?(:firmware_version)
435
+ @hardware_version = args[:hardware_version] if args.key?(:hardware_version)
436
+ @name = args[:name] if args.key?(:name)
437
+ @software_version = args[:software_version] if args.key?(:software_version)
438
+ @vendor = args[:vendor] if args.key?(:vendor)
439
+ end
440
+ end
441
+
442
+ # An entry in a DPA's move list.
443
+ class SasPortalDpaMoveList
444
+ include Google::Apis::Core::Hashable
445
+
446
+ # The ID of the DPA.
447
+ # Corresponds to the JSON property `dpaId`
448
+ # @return [String]
449
+ attr_accessor :dpa_id
450
+
451
+ # Frequency range from `low_frequency` to `high_frequency`.
452
+ # Corresponds to the JSON property `frequencyRange`
453
+ # @return [Google::Apis::ProdTtSasportalV1alpha1::SasPortalFrequencyRange]
454
+ attr_accessor :frequency_range
455
+
456
+ def initialize(**args)
457
+ update!(**args)
458
+ end
459
+
460
+ # Update properties of this object
461
+ def update!(**args)
462
+ @dpa_id = args[:dpa_id] if args.key?(:dpa_id)
463
+ @frequency_range = args[:frequency_range] if args.key?(:frequency_range)
464
+ end
465
+ end
466
+
467
+ # A generic empty message that you can re-use to avoid defining duplicated empty
468
+ # messages in your APIs. A typical example is to use it as the request or the
469
+ # response type of an API method. For instance: service Foo ` rpc Bar(google.
470
+ # protobuf.Empty) returns (google.protobuf.Empty); ` The JSON representation for
471
+ # `Empty` is empty JSON object ````.
472
+ class SasPortalEmpty
473
+ include Google::Apis::Core::Hashable
474
+
475
+ def initialize(**args)
476
+ update!(**args)
477
+ end
478
+
479
+ # Update properties of this object
480
+ def update!(**args)
481
+ end
482
+ end
483
+
484
+ # Frequency range from `low_frequency` to `high_frequency`.
485
+ class SasPortalFrequencyRange
486
+ include Google::Apis::Core::Hashable
487
+
488
+ # The highest frequency of the frequency range in MHz.
489
+ # Corresponds to the JSON property `highFrequencyMhz`
490
+ # @return [Float]
491
+ attr_accessor :high_frequency_mhz
492
+
493
+ # The lowest frequency of the frequency range in MHz.
494
+ # Corresponds to the JSON property `lowFrequencyMhz`
495
+ # @return [Float]
496
+ attr_accessor :low_frequency_mhz
497
+
498
+ def initialize(**args)
499
+ update!(**args)
500
+ end
501
+
502
+ # Update properties of this object
503
+ def update!(**args)
504
+ @high_frequency_mhz = args[:high_frequency_mhz] if args.key?(:high_frequency_mhz)
505
+ @low_frequency_mhz = args[:low_frequency_mhz] if args.key?(:low_frequency_mhz)
506
+ end
507
+ end
508
+
509
+ # Request for GenerateSecret method] [spectrum.sas.portal.v1alpha1.DeviceManager.
510
+ # GenerateSecret].
511
+ class SasPortalGenerateSecretRequest
512
+ include Google::Apis::Core::Hashable
513
+
514
+ def initialize(**args)
515
+ update!(**args)
516
+ end
517
+
518
+ # Update properties of this object
519
+ def update!(**args)
520
+ end
521
+ end
522
+
523
+ # Response for GenerateSecret method.
524
+ class SasPortalGenerateSecretResponse
525
+ include Google::Apis::Core::Hashable
526
+
527
+ # The secret generated by the string and used by [ValidateInstaller] method.
528
+ # Corresponds to the JSON property `secret`
529
+ # @return [String]
530
+ attr_accessor :secret
531
+
532
+ def initialize(**args)
533
+ update!(**args)
534
+ end
535
+
536
+ # Update properties of this object
537
+ def update!(**args)
538
+ @secret = args[:secret] if args.key?(:secret)
539
+ end
540
+ end
541
+
542
+ # Request message for `GetPolicy` method.
543
+ class SasPortalGetPolicyRequest
544
+ include Google::Apis::Core::Hashable
545
+
546
+ # Required. The resource for which the policy is being requested.
547
+ # Corresponds to the JSON property `resource`
548
+ # @return [String]
549
+ attr_accessor :resource
550
+
551
+ def initialize(**args)
552
+ update!(**args)
553
+ end
554
+
555
+ # Update properties of this object
556
+ def update!(**args)
557
+ @resource = args[:resource] if args.key?(:resource)
558
+ end
559
+ end
560
+
561
+ # Information about the device installation parameters.
562
+ class SasPortalInstallationParams
563
+ include Google::Apis::Core::Hashable
564
+
565
+ # Boresight direction of the horizontal plane of the antenna in degrees with
566
+ # respect to true north. The value of this parameter is an integer with a value
567
+ # between 0 and 359 inclusive. A value of 0 degrees means true north; a value of
568
+ # 90 degrees means east. This parameter is optional for Category A devices and
569
+ # conditional for Category B devices.
570
+ # Corresponds to the JSON property `antennaAzimuth`
571
+ # @return [Fixnum]
572
+ attr_accessor :antenna_azimuth
573
+
574
+ # 3-dB antenna beamwidth of the antenna in the horizontal-plane in degrees. This
575
+ # parameter is an unsigned integer having a value between 0 and 360 (degrees)
576
+ # inclusive; it is optional for Category A devices and conditional for Category
577
+ # B devices.
578
+ # Corresponds to the JSON property `antennaBeamwidth`
579
+ # @return [Fixnum]
580
+ attr_accessor :antenna_beamwidth
581
+
582
+ # Antenna downtilt in degrees and is an integer with a value between -90 and +90
583
+ # inclusive; a negative value means the antenna is tilted up (above horizontal).
584
+ # This parameter is optional for Category A devices and conditional for Category
585
+ # B devices.
586
+ # Corresponds to the JSON property `antennaDowntilt`
587
+ # @return [Fixnum]
588
+ attr_accessor :antenna_downtilt
589
+
590
+ # Peak antenna gain in dBi. This parameter is an integer with a value between -
591
+ # 127 and +128 (dBi) inclusive.
592
+ # Corresponds to the JSON property `antennaGain`
593
+ # @return [Fixnum]
594
+ attr_accessor :antenna_gain
595
+
596
+ # If an external antenna is used, the antenna model is optionally provided in
597
+ # this field. The string has a maximum length of 128 octets.
598
+ # Corresponds to the JSON property `antennaModel`
599
+ # @return [String]
600
+ attr_accessor :antenna_model
601
+
602
+ # If present, this parameter specifies whether the CBSD is a CPE-CBSD or not.
603
+ # Corresponds to the JSON property `cpeCbsdIndication`
604
+ # @return [Boolean]
605
+ attr_accessor :cpe_cbsd_indication
606
+ alias_method :cpe_cbsd_indication?, :cpe_cbsd_indication
607
+
608
+ # This parameter is the maximum device EIRP in units of dBm/10MHz and is an
609
+ # integer with a value between -127 and +47 (dBm/10 MHz) inclusive. If not
610
+ # included, SAS interprets it as maximum allowable EIRP in units of dBm/10MHz
611
+ # for device category.
612
+ # Corresponds to the JSON property `eirpCapability`
613
+ # @return [Fixnum]
614
+ attr_accessor :eirp_capability
615
+
616
+ # Device antenna height in meters. When the heightType parameter value is "AGL",
617
+ # the antenna height should be given relative to ground level. When the
618
+ # heightType parameter value is "AMSL", it is given with respect to WGS84 datum.
619
+ # Corresponds to the JSON property `height`
620
+ # @return [Float]
621
+ attr_accessor :height
622
+
623
+ # Specifies how the height is measured.
624
+ # Corresponds to the JSON property `heightType`
625
+ # @return [String]
626
+ attr_accessor :height_type
627
+
628
+ # A positive number in meters to indicate accuracy of the device antenna
629
+ # horizontal location. This optional parameter should only be present if its
630
+ # value is less than the FCC requirement of 50 meters.
631
+ # Corresponds to the JSON property `horizontalAccuracy`
632
+ # @return [Float]
633
+ attr_accessor :horizontal_accuracy
634
+
635
+ # Whether the device antenna is indoor or not. True: indoor. False: outdoor.
636
+ # Corresponds to the JSON property `indoorDeployment`
637
+ # @return [Boolean]
638
+ attr_accessor :indoor_deployment
639
+ alias_method :indoor_deployment?, :indoor_deployment
640
+
641
+ # Latitude of the device antenna location in degrees relative to the WGS 84
642
+ # datum. The allowed range is from -90.000000 to +90.000000. Positive values
643
+ # represent latitudes north of the equator; negative values south of the equator.
644
+ # Corresponds to the JSON property `latitude`
645
+ # @return [Float]
646
+ attr_accessor :latitude
647
+
648
+ # Longitude of the device antenna location. in degrees relative to the WGS 84
649
+ # datum. The allowed range is from -180.000000 to +180.000000. Positive values
650
+ # represent longitudes east of the prime meridian; negative values west of the
651
+ # prime meridian.
652
+ # Corresponds to the JSON property `longitude`
653
+ # @return [Float]
654
+ attr_accessor :longitude
655
+
656
+ # A positive number in meters to indicate accuracy of the device antenna
657
+ # vertical location. This optional parameter should only be present if its value
658
+ # is less than the FCC requirement of 3 meters.
659
+ # Corresponds to the JSON property `verticalAccuracy`
660
+ # @return [Float]
661
+ attr_accessor :vertical_accuracy
662
+
663
+ def initialize(**args)
664
+ update!(**args)
665
+ end
666
+
667
+ # Update properties of this object
668
+ def update!(**args)
669
+ @antenna_azimuth = args[:antenna_azimuth] if args.key?(:antenna_azimuth)
670
+ @antenna_beamwidth = args[:antenna_beamwidth] if args.key?(:antenna_beamwidth)
671
+ @antenna_downtilt = args[:antenna_downtilt] if args.key?(:antenna_downtilt)
672
+ @antenna_gain = args[:antenna_gain] if args.key?(:antenna_gain)
673
+ @antenna_model = args[:antenna_model] if args.key?(:antenna_model)
674
+ @cpe_cbsd_indication = args[:cpe_cbsd_indication] if args.key?(:cpe_cbsd_indication)
675
+ @eirp_capability = args[:eirp_capability] if args.key?(:eirp_capability)
676
+ @height = args[:height] if args.key?(:height)
677
+ @height_type = args[:height_type] if args.key?(:height_type)
678
+ @horizontal_accuracy = args[:horizontal_accuracy] if args.key?(:horizontal_accuracy)
679
+ @indoor_deployment = args[:indoor_deployment] if args.key?(:indoor_deployment)
680
+ @latitude = args[:latitude] if args.key?(:latitude)
681
+ @longitude = args[:longitude] if args.key?(:longitude)
682
+ @vertical_accuracy = args[:vertical_accuracy] if args.key?(:vertical_accuracy)
683
+ end
684
+ end
685
+
686
+ # Response for `ListCustomers`.
687
+ class SasPortalListCustomersResponse
688
+ include Google::Apis::Core::Hashable
689
+
690
+ # The list of customers that match the request.
691
+ # Corresponds to the JSON property `customers`
692
+ # @return [Array<Google::Apis::ProdTtSasportalV1alpha1::SasPortalCustomer>]
693
+ attr_accessor :customers
694
+
695
+ # A pagination token returned from a previous call to ListCustomers method that
696
+ # indicates from where listing should continue. If the field is missing or empty,
697
+ # it means there are no more customers.
698
+ # Corresponds to the JSON property `nextPageToken`
699
+ # @return [String]
700
+ attr_accessor :next_page_token
701
+
702
+ def initialize(**args)
703
+ update!(**args)
704
+ end
705
+
706
+ # Update properties of this object
707
+ def update!(**args)
708
+ @customers = args[:customers] if args.key?(:customers)
709
+ @next_page_token = args[:next_page_token] if args.key?(:next_page_token)
710
+ end
711
+ end
712
+
713
+ # Response for ListDevices method.
714
+ class SasPortalListDevicesResponse
715
+ include Google::Apis::Core::Hashable
716
+
717
+ # The devices that match the request.
718
+ # Corresponds to the JSON property `devices`
719
+ # @return [Array<Google::Apis::ProdTtSasportalV1alpha1::SasPortalDevice>]
720
+ attr_accessor :devices
721
+
722
+ # A pagination token returned from a previous call to ListDevices method that
723
+ # indicates from where listing should continue. If the field is missing or empty,
724
+ # it means there is no more devices.
725
+ # Corresponds to the JSON property `nextPageToken`
726
+ # @return [String]
727
+ attr_accessor :next_page_token
728
+
729
+ def initialize(**args)
730
+ update!(**args)
731
+ end
732
+
733
+ # Update properties of this object
734
+ def update!(**args)
735
+ @devices = args[:devices] if args.key?(:devices)
736
+ @next_page_token = args[:next_page_token] if args.key?(:next_page_token)
737
+ end
738
+ end
739
+
740
+ # Response for ListNodes method.
741
+ class SasPortalListNodesResponse
742
+ include Google::Apis::Core::Hashable
743
+
744
+ # A pagination token returned from a previous call to ListNodes method that
745
+ # indicates from where listing should continue. If the field is missing or empty,
746
+ # it means there is no more nodes.
747
+ # Corresponds to the JSON property `nextPageToken`
748
+ # @return [String]
749
+ attr_accessor :next_page_token
750
+
751
+ # The nodes that match the request.
752
+ # Corresponds to the JSON property `nodes`
753
+ # @return [Array<Google::Apis::ProdTtSasportalV1alpha1::SasPortalNode>]
754
+ attr_accessor :nodes
755
+
756
+ def initialize(**args)
757
+ update!(**args)
758
+ end
759
+
760
+ # Update properties of this object
761
+ def update!(**args)
762
+ @next_page_token = args[:next_page_token] if args.key?(:next_page_token)
763
+ @nodes = args[:nodes] if args.key?(:nodes)
764
+ end
765
+ end
766
+
767
+ # Request for MoveDeployment method.
768
+ class SasPortalMoveDeploymentRequest
769
+ include Google::Apis::Core::Hashable
770
+
771
+ # Required. The name of the new parent resource Node or Customer to reparent the
772
+ # deployment under.
773
+ # Corresponds to the JSON property `destination`
774
+ # @return [String]
775
+ attr_accessor :destination
776
+
777
+ def initialize(**args)
778
+ update!(**args)
779
+ end
780
+
781
+ # Update properties of this object
782
+ def update!(**args)
783
+ @destination = args[:destination] if args.key?(:destination)
784
+ end
785
+ end
786
+
787
+ # Request for MoveDevice method.
788
+ class SasPortalMoveDeviceRequest
789
+ include Google::Apis::Core::Hashable
790
+
791
+ # Required. The name of the new parent resource (Node or Customer) to reparent
792
+ # the device under.
793
+ # Corresponds to the JSON property `destination`
794
+ # @return [String]
795
+ attr_accessor :destination
796
+
797
+ def initialize(**args)
798
+ update!(**args)
799
+ end
800
+
801
+ # Update properties of this object
802
+ def update!(**args)
803
+ @destination = args[:destination] if args.key?(:destination)
804
+ end
805
+ end
806
+
807
+ # Request for MoveNode method.
808
+ class SasPortalMoveNodeRequest
809
+ include Google::Apis::Core::Hashable
810
+
811
+ # Required. The name of the new parent resource node or Customer) to reparent
812
+ # the node under.
813
+ # Corresponds to the JSON property `destination`
814
+ # @return [String]
815
+ attr_accessor :destination
816
+
817
+ def initialize(**args)
818
+ update!(**args)
819
+ end
820
+
821
+ # Update properties of this object
822
+ def update!(**args)
823
+ @destination = args[:destination] if args.key?(:destination)
824
+ end
825
+ end
826
+
827
+ # The Node.
828
+ class SasPortalNode
829
+ include Google::Apis::Core::Hashable
830
+
831
+ # The node's display name.
832
+ # Corresponds to the JSON property `displayName`
833
+ # @return [String]
834
+ attr_accessor :display_name
835
+
836
+ # Output only. Resource name.
837
+ # Corresponds to the JSON property `name`
838
+ # @return [String]
839
+ attr_accessor :name
840
+
841
+ # User ids used by the devices belonging to this node.
842
+ # Corresponds to the JSON property `sasUserIds`
843
+ # @return [Array<String>]
844
+ attr_accessor :sas_user_ids
845
+
846
+ def initialize(**args)
847
+ update!(**args)
848
+ end
849
+
850
+ # Update properties of this object
851
+ def update!(**args)
852
+ @display_name = args[:display_name] if args.key?(:display_name)
853
+ @name = args[:name] if args.key?(:name)
854
+ @sas_user_ids = args[:sas_user_ids] if args.key?(:sas_user_ids)
855
+ end
856
+ end
857
+
858
+ # This resource represents a long-running operation that is the result of a
859
+ # network API call.
860
+ class SasPortalOperation
861
+ include Google::Apis::Core::Hashable
862
+
863
+ # If the value is `false`, it means the operation is still in progress. If `true`
864
+ # , the operation is completed, and either `error` or `response` is available.
865
+ # Corresponds to the JSON property `done`
866
+ # @return [Boolean]
867
+ attr_accessor :done
868
+ alias_method :done?, :done
869
+
870
+ # The `Status` type defines a logical error model that is suitable for different
871
+ # programming environments, including REST APIs and RPC APIs. It is used by [
872
+ # gRPC](https://github.com/grpc). Each `Status` message contains three pieces of
873
+ # data: error code, error message, and error details. You can find out more
874
+ # about this error model and how to work with it in the [API Design Guide](https:
875
+ # //cloud.google.com/apis/design/errors).
876
+ # Corresponds to the JSON property `error`
877
+ # @return [Google::Apis::ProdTtSasportalV1alpha1::SasPortalStatus]
878
+ attr_accessor :error
879
+
880
+ # Service-specific metadata associated with the operation. It typically contains
881
+ # progress information and common metadata such as create time. Some services
882
+ # might not provide such metadata. Any method that returns a long-running
883
+ # operation should document the metadata type, if any.
884
+ # Corresponds to the JSON property `metadata`
885
+ # @return [Hash<String,Object>]
886
+ attr_accessor :metadata
887
+
888
+ # The server-assigned name, which is only unique within the same service that
889
+ # originally returns it. If you use the default HTTP mapping, the `name` should
890
+ # be a resource name ending with `operations/`unique_id``.
891
+ # Corresponds to the JSON property `name`
892
+ # @return [String]
893
+ attr_accessor :name
894
+
895
+ # The normal response of the operation in case of success. If the original
896
+ # method returns no data on success, such as `Delete`, the response is `google.
897
+ # protobuf.Empty`. If the original method is standard `Get`/`Create`/`Update`,
898
+ # the response should be the resource. For other methods, the response should
899
+ # have the type `XxxResponse`, where `Xxx` is the original method name. For
900
+ # example, if the original method name is `TakeSnapshot()`, the inferred
901
+ # response type is `TakeSnapshotResponse`.
902
+ # Corresponds to the JSON property `response`
903
+ # @return [Hash<String,Object>]
904
+ attr_accessor :response
905
+
906
+ def initialize(**args)
907
+ update!(**args)
908
+ end
909
+
910
+ # Update properties of this object
911
+ def update!(**args)
912
+ @done = args[:done] if args.key?(:done)
913
+ @error = args[:error] if args.key?(:error)
914
+ @metadata = args[:metadata] if args.key?(:metadata)
915
+ @name = args[:name] if args.key?(:name)
916
+ @response = args[:response] if args.key?(:response)
917
+ end
918
+ end
919
+
920
+ # Defines an access control policy to the resources.
921
+ class SasPortalPolicy
922
+ include Google::Apis::Core::Hashable
923
+
924
+ #
925
+ # Corresponds to the JSON property `assignments`
926
+ # @return [Array<Google::Apis::ProdTtSasportalV1alpha1::SasPortalAssignment>]
927
+ attr_accessor :assignments
928
+
929
+ # The [etag] is used for optimistic concurrency control as a way to help prevent
930
+ # simultaneous updates of a policy from overwriting each other. It is strongly
931
+ # suggested that systems make use of the [etag] in the read-modify-write cycle
932
+ # to perform policy updates in order to avoid race conditions: An [etag] is
933
+ # returned in the response to [GetPolicy], and systems are expected to put that
934
+ # etag in the request to [SetPolicy] to ensure that their change will be applied
935
+ # to the same version of the policy. If no [etag] is provided in the call to [
936
+ # SetPolicy], then the existing policy is overwritten blindly.
937
+ # Corresponds to the JSON property `etag`
938
+ # NOTE: Values are automatically base64 encoded/decoded in the client library.
939
+ # @return [String]
940
+ attr_accessor :etag
941
+
942
+ def initialize(**args)
943
+ update!(**args)
944
+ end
945
+
946
+ # Update properties of this object
947
+ def update!(**args)
948
+ @assignments = args[:assignments] if args.key?(:assignments)
949
+ @etag = args[:etag] if args.key?(:etag)
950
+ end
951
+ end
952
+
953
+ # Request message for `SetPolicy` method.
954
+ class SasPortalSetPolicyRequest
955
+ include Google::Apis::Core::Hashable
956
+
957
+ # Defines an access control policy to the resources.
958
+ # Corresponds to the JSON property `policy`
959
+ # @return [Google::Apis::ProdTtSasportalV1alpha1::SasPortalPolicy]
960
+ attr_accessor :policy
961
+
962
+ # Required. The resource for which the policy is being specified. This policy
963
+ # replaces any existing policy.
964
+ # Corresponds to the JSON property `resource`
965
+ # @return [String]
966
+ attr_accessor :resource
967
+
968
+ def initialize(**args)
969
+ update!(**args)
970
+ end
971
+
972
+ # Update properties of this object
973
+ def update!(**args)
974
+ @policy = args[:policy] if args.key?(:policy)
975
+ @resource = args[:resource] if args.key?(:resource)
976
+ end
977
+ end
978
+
979
+ # Request for SignDevice method.
980
+ class SasPortalSignDeviceRequest
981
+ include Google::Apis::Core::Hashable
982
+
983
+ # Required. The device to sign. The device fields name, fcc_id and serial_number
984
+ # must be set. The user_id field must be set.
985
+ # Corresponds to the JSON property `device`
986
+ # @return [Google::Apis::ProdTtSasportalV1alpha1::SasPortalDevice]
987
+ attr_accessor :device
988
+
989
+ def initialize(**args)
990
+ update!(**args)
991
+ end
992
+
993
+ # Update properties of this object
994
+ def update!(**args)
995
+ @device = args[:device] if args.key?(:device)
996
+ end
997
+ end
998
+
999
+ # The `Status` type defines a logical error model that is suitable for different
1000
+ # programming environments, including REST APIs and RPC APIs. It is used by [
1001
+ # gRPC](https://github.com/grpc). Each `Status` message contains three pieces of
1002
+ # data: error code, error message, and error details. You can find out more
1003
+ # about this error model and how to work with it in the [API Design Guide](https:
1004
+ # //cloud.google.com/apis/design/errors).
1005
+ class SasPortalStatus
1006
+ include Google::Apis::Core::Hashable
1007
+
1008
+ # The status code, which should be an enum value of google.rpc.Code.
1009
+ # Corresponds to the JSON property `code`
1010
+ # @return [Fixnum]
1011
+ attr_accessor :code
1012
+
1013
+ # A list of messages that carry the error details. There is a common set of
1014
+ # message types for APIs to use.
1015
+ # Corresponds to the JSON property `details`
1016
+ # @return [Array<Hash<String,Object>>]
1017
+ attr_accessor :details
1018
+
1019
+ # A developer-facing error message, which should be in English. Any user-facing
1020
+ # error message should be localized and sent in the google.rpc.Status.details
1021
+ # field, or localized by the client.
1022
+ # Corresponds to the JSON property `message`
1023
+ # @return [String]
1024
+ attr_accessor :message
1025
+
1026
+ def initialize(**args)
1027
+ update!(**args)
1028
+ end
1029
+
1030
+ # Update properties of this object
1031
+ def update!(**args)
1032
+ @code = args[:code] if args.key?(:code)
1033
+ @details = args[:details] if args.key?(:details)
1034
+ @message = args[:message] if args.key?(:message)
1035
+ end
1036
+ end
1037
+
1038
+ # Request message for `TestPermissions` method.
1039
+ class SasPortalTestPermissionsRequest
1040
+ include Google::Apis::Core::Hashable
1041
+
1042
+ # The set of permissions to check for the `resource`.
1043
+ # Corresponds to the JSON property `permissions`
1044
+ # @return [Array<String>]
1045
+ attr_accessor :permissions
1046
+
1047
+ # Required. The resource for which the permissions are being requested.
1048
+ # Corresponds to the JSON property `resource`
1049
+ # @return [String]
1050
+ attr_accessor :resource
1051
+
1052
+ def initialize(**args)
1053
+ update!(**args)
1054
+ end
1055
+
1056
+ # Update properties of this object
1057
+ def update!(**args)
1058
+ @permissions = args[:permissions] if args.key?(:permissions)
1059
+ @resource = args[:resource] if args.key?(:resource)
1060
+ end
1061
+ end
1062
+
1063
+ # Response message for `TestPermissions` method.
1064
+ class SasPortalTestPermissionsResponse
1065
+ include Google::Apis::Core::Hashable
1066
+
1067
+ # A set of permissions that the caller is allowed.
1068
+ # Corresponds to the JSON property `permissions`
1069
+ # @return [Array<String>]
1070
+ attr_accessor :permissions
1071
+
1072
+ def initialize(**args)
1073
+ update!(**args)
1074
+ end
1075
+
1076
+ # Update properties of this object
1077
+ def update!(**args)
1078
+ @permissions = args[:permissions] if args.key?(:permissions)
1079
+ end
1080
+ end
1081
+
1082
+ # Request for UpdateSignedDevice method.
1083
+ class SasPortalUpdateSignedDeviceRequest
1084
+ include Google::Apis::Core::Hashable
1085
+
1086
+ # Required. The JSON Web Token signed using a CPI private key. Payload must be
1087
+ # the JSON encoding of the device. The user_id field must be set.
1088
+ # Corresponds to the JSON property `encodedDevice`
1089
+ # NOTE: Values are automatically base64 encoded/decoded in the client library.
1090
+ # @return [String]
1091
+ attr_accessor :encoded_device
1092
+
1093
+ # Required. Unique installer ID (CPI ID) from the Certified Professional
1094
+ # Installers database.
1095
+ # Corresponds to the JSON property `installerId`
1096
+ # @return [String]
1097
+ attr_accessor :installer_id
1098
+
1099
+ def initialize(**args)
1100
+ update!(**args)
1101
+ end
1102
+
1103
+ # Update properties of this object
1104
+ def update!(**args)
1105
+ @encoded_device = args[:encoded_device] if args.key?(:encoded_device)
1106
+ @installer_id = args[:installer_id] if args.key?(:installer_id)
1107
+ end
1108
+ end
1109
+
1110
+ # Request for ValidateInstaller method.
1111
+ class SasPortalValidateInstallerRequest
1112
+ include Google::Apis::Core::Hashable
1113
+
1114
+ # Required. JSON Web Token signed using a CPI private key. Payload must include
1115
+ # a "secret" claim whose value is the secret.
1116
+ # Corresponds to the JSON property `encodedSecret`
1117
+ # @return [String]
1118
+ attr_accessor :encoded_secret
1119
+
1120
+ # Required. Unique installer id (cpiId) from the Certified Professional
1121
+ # Installers database.
1122
+ # Corresponds to the JSON property `installerId`
1123
+ # @return [String]
1124
+ attr_accessor :installer_id
1125
+
1126
+ # Required. Secret returned by the GenerateSecret method.
1127
+ # Corresponds to the JSON property `secret`
1128
+ # @return [String]
1129
+ attr_accessor :secret
1130
+
1131
+ def initialize(**args)
1132
+ update!(**args)
1133
+ end
1134
+
1135
+ # Update properties of this object
1136
+ def update!(**args)
1137
+ @encoded_secret = args[:encoded_secret] if args.key?(:encoded_secret)
1138
+ @installer_id = args[:installer_id] if args.key?(:installer_id)
1139
+ @secret = args[:secret] if args.key?(:secret)
1140
+ end
1141
+ end
1142
+
1143
+ # Response for ValidateInstaller method] [spectrum.sas.portal.v1alpha1.
1144
+ # DeviceManager.ValidateInstaller].
1145
+ class SasPortalValidateInstallerResponse
1146
+ include Google::Apis::Core::Hashable
1147
+
1148
+ def initialize(**args)
1149
+ update!(**args)
1150
+ end
1151
+
1152
+ # Update properties of this object
1153
+ def update!(**args)
1154
+ end
1155
+ end
1156
+ end
1157
+ end
1158
+ end