google-apis-privateca_v1beta1 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: d11c86afb2db9b141d766d3a8373a48c613642ddf13877754864e3cf3acbe2cc
4
+ data.tar.gz: 39df15ce6c01fd4e77ef634d4c62d9bca9f563fe5fdd8723a1fb260bd867e16e
5
+ SHA512:
6
+ metadata.gz: 57acd6f195a9970f61fccb895469d08b24b31e1df83c51104cd87be5d6099078bf5ef93e7df589d89adea668841c3df6c8fd9eb00fe5c18a02122c4787029fa8
7
+ data.tar.gz: 13b63ad7b599e1f92f569d33baf3d48a2f3efcb459ce32003abc2537a1c93fb9c7fcbf13fa8ca06714be56755f53fd0cdd5db9a68890165d36030331f880538f
@@ -0,0 +1,13 @@
1
+ --hide-void-return
2
+ --no-private
3
+ --verbose
4
+ --title=google-apis-privateca_v1beta1
5
+ --markup-provider=redcarpet
6
+ --markup=markdown
7
+ --main OVERVIEW.md
8
+ lib/google/apis/privateca_v1beta1/*.rb
9
+ lib/google/apis/privateca_v1beta1.rb
10
+ -
11
+ OVERVIEW.md
12
+ CHANGELOG.md
13
+ LICENSE.md
@@ -0,0 +1,7 @@
1
+ # Release history for google-apis-privateca_v1beta1
2
+
3
+ ### v0.1.0 (2021-01-07)
4
+
5
+ * Regenerated using generator version 0.1.1
6
+ * Regenerated from discovery document revision 20201203
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 V1beta1 of the Certificate Authority API
2
+
3
+ This is a simple client library for version V1beta1 of the Certificate Authority API. 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/privateca.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-privateca_v1beta1', '~> 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-privateca_v1beta1
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/privateca_v1beta1"
49
+
50
+ # Create a client object
51
+ client = Google::Apis::PrivatecaV1beta1::CertificateAuthorityServiceService.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 Privateca service in particular.)
67
+
68
+ For reference information on specific calls in the Certificate Authority API, see the {Google::Apis::PrivatecaV1beta1::CertificateAuthorityServiceService 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-privateca_v1beta1`, 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://cloud.google.com/) 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/privateca_v1beta1"
@@ -0,0 +1,38 @@
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/privateca_v1beta1/service.rb'
16
+ require 'google/apis/privateca_v1beta1/classes.rb'
17
+ require 'google/apis/privateca_v1beta1/representations.rb'
18
+ require 'google/apis/privateca_v1beta1/gem_version.rb'
19
+
20
+ module Google
21
+ module Apis
22
+ # Certificate Authority API
23
+ #
24
+ # The Certificate Authority Service API is a highly-available, scalable service
25
+ # that enables you to simplify and automate the management of private
26
+ # certificate authorities (CAs) while staying in control of your private keys."
27
+ #
28
+ # @see https://cloud.google.com/
29
+ module PrivatecaV1beta1
30
+ # Version of the Certificate Authority API this client connects to.
31
+ # This is NOT the gem version.
32
+ VERSION = 'V1beta1'
33
+
34
+ # View and manage your data across Google Cloud Platform services
35
+ AUTH_CLOUD_PLATFORM = 'https://www.googleapis.com/auth/cloud-platform'
36
+ end
37
+ end
38
+ end
@@ -0,0 +1,2467 @@
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 PrivatecaV1beta1
24
+
25
+ # URLs where a CertificateAuthority will publish content.
26
+ class AccessUrls
27
+ include Google::Apis::Core::Hashable
28
+
29
+ # The URL where this CertificateAuthority's CA certificate is published. This
30
+ # will only be set for CAs that have been activated.
31
+ # Corresponds to the JSON property `caCertificateAccessUrl`
32
+ # @return [String]
33
+ attr_accessor :ca_certificate_access_url
34
+
35
+ # The URL where this CertificateAuthority's CRLs are published. This will only
36
+ # be set for CAs that have been activated.
37
+ # Corresponds to the JSON property `crlAccessUrl`
38
+ # @return [String]
39
+ attr_accessor :crl_access_url
40
+
41
+ def initialize(**args)
42
+ update!(**args)
43
+ end
44
+
45
+ # Update properties of this object
46
+ def update!(**args)
47
+ @ca_certificate_access_url = args[:ca_certificate_access_url] if args.key?(:ca_certificate_access_url)
48
+ @crl_access_url = args[:crl_access_url] if args.key?(:crl_access_url)
49
+ end
50
+ end
51
+
52
+ # Request message for CertificateAuthorityService.ActivateCertificateAuthority.
53
+ class ActivateCertificateAuthorityRequest
54
+ include Google::Apis::Core::Hashable
55
+
56
+ # Required. The signed CA certificate issued from
57
+ # FetchCertificateAuthorityCsrResponse.pem_csr.
58
+ # Corresponds to the JSON property `pemCaCertificate`
59
+ # @return [String]
60
+ attr_accessor :pem_ca_certificate
61
+
62
+ # Optional. An ID to identify requests. Specify a unique request ID so that if
63
+ # you must retry your request, the server will know to ignore the request if it
64
+ # has already been completed. The server will guarantee that for at least 60
65
+ # minutes since the first request. For example, consider a situation where you
66
+ # make an initial request and t he request times out. If you make the request
67
+ # again with the same request ID, the server can check if original operation
68
+ # with the same request ID was received, and if so, will ignore the second
69
+ # request. This prevents clients from accidentally creating duplicate
70
+ # commitments. The request ID must be a valid UUID with the exception that zero
71
+ # UUID is not supported (00000000-0000-0000-0000-000000000000).
72
+ # Corresponds to the JSON property `requestId`
73
+ # @return [String]
74
+ attr_accessor :request_id
75
+
76
+ # Describes a subordinate CA's issuers. This is either a resource path to a
77
+ # known issuing CertificateAuthority, or a PEM issuer certificate chain.
78
+ # Corresponds to the JSON property `subordinateConfig`
79
+ # @return [Google::Apis::PrivatecaV1beta1::SubordinateConfig]
80
+ attr_accessor :subordinate_config
81
+
82
+ def initialize(**args)
83
+ update!(**args)
84
+ end
85
+
86
+ # Update properties of this object
87
+ def update!(**args)
88
+ @pem_ca_certificate = args[:pem_ca_certificate] if args.key?(:pem_ca_certificate)
89
+ @request_id = args[:request_id] if args.key?(:request_id)
90
+ @subordinate_config = args[:subordinate_config] if args.key?(:subordinate_config)
91
+ end
92
+ end
93
+
94
+ #
95
+ class AllowedConfigList
96
+ include Google::Apis::Core::Hashable
97
+
98
+ # Required. All Certificates issued by the CertificateAuthority must match at
99
+ # least one listed ReusableConfigWrapper. If a ReusableConfigWrapper has an
100
+ # empty field, any value will be allowed for that field.
101
+ # Corresponds to the JSON property `allowedConfigValues`
102
+ # @return [Array<Google::Apis::PrivatecaV1beta1::ReusableConfigWrapper>]
103
+ attr_accessor :allowed_config_values
104
+
105
+ def initialize(**args)
106
+ update!(**args)
107
+ end
108
+
109
+ # Update properties of this object
110
+ def update!(**args)
111
+ @allowed_config_values = args[:allowed_config_values] if args.key?(:allowed_config_values)
112
+ end
113
+ end
114
+
115
+ # AllowedSubjectAltNames specifies the allowed values for SubjectAltNames by the
116
+ # CertificateAuthority when issuing Certificates.
117
+ class AllowedSubjectAltNames
118
+ include Google::Apis::Core::Hashable
119
+
120
+ # Optional. Specifies if to allow custom X509Extension values.
121
+ # Corresponds to the JSON property `allowCustomSans`
122
+ # @return [Boolean]
123
+ attr_accessor :allow_custom_sans
124
+ alias_method :allow_custom_sans?, :allow_custom_sans
125
+
126
+ # Optional. Specifies if glob patterns used for allowed_dns_names allow wildcard
127
+ # certificates. If this is set, certificate requests with wildcard domains will
128
+ # be permitted to match a glob pattern specified in allowed_dns_names. Otherwise,
129
+ # certificate requests with wildcard domains will be permitted only if
130
+ # allowed_dns_names contains a literal wildcard.
131
+ # Corresponds to the JSON property `allowGlobbingDnsWildcards`
132
+ # @return [Boolean]
133
+ attr_accessor :allow_globbing_dns_wildcards
134
+ alias_method :allow_globbing_dns_wildcards?, :allow_globbing_dns_wildcards
135
+
136
+ # Optional. Contains valid, fully-qualified host names. Glob patterns are also
137
+ # supported. To allow an explicit wildcard certificate, escape with backlash (i.
138
+ # e. "\*"). E.g. for globbed entries: '*bar.com' will allow 'foo.bar.com', but
139
+ # not '*.bar.com', unless the allow_globbing_dns_wildcards field is set. E.g.
140
+ # for wildcard entries: '\*.bar.com' will allow '*.bar.com', but not 'foo.bar.
141
+ # com'.
142
+ # Corresponds to the JSON property `allowedDnsNames`
143
+ # @return [Array<String>]
144
+ attr_accessor :allowed_dns_names
145
+
146
+ # Optional. Contains valid RFC 2822 E-mail addresses. Glob patterns are also
147
+ # supported.
148
+ # Corresponds to the JSON property `allowedEmailAddresses`
149
+ # @return [Array<String>]
150
+ attr_accessor :allowed_email_addresses
151
+
152
+ # Optional. Contains valid 32-bit IPv4 addresses and subnet ranges or RFC 4291
153
+ # IPv6 addresses and subnet ranges. Subnet ranges are specified using the '/'
154
+ # notation (e.g. 10.0.0.0/8, 2001:700:300:1800::/64). Glob patterns are
155
+ # supported only for ip address entries (i.e. not for subnet ranges).
156
+ # Corresponds to the JSON property `allowedIps`
157
+ # @return [Array<String>]
158
+ attr_accessor :allowed_ips
159
+
160
+ # Optional. Contains valid RFC 3986 URIs. Glob patterns are also supported. To
161
+ # match across path seperators (i.e. '/') use the double star glob pattern (i.e.
162
+ # '**').
163
+ # Corresponds to the JSON property `allowedUris`
164
+ # @return [Array<String>]
165
+ attr_accessor :allowed_uris
166
+
167
+ def initialize(**args)
168
+ update!(**args)
169
+ end
170
+
171
+ # Update properties of this object
172
+ def update!(**args)
173
+ @allow_custom_sans = args[:allow_custom_sans] if args.key?(:allow_custom_sans)
174
+ @allow_globbing_dns_wildcards = args[:allow_globbing_dns_wildcards] if args.key?(:allow_globbing_dns_wildcards)
175
+ @allowed_dns_names = args[:allowed_dns_names] if args.key?(:allowed_dns_names)
176
+ @allowed_email_addresses = args[:allowed_email_addresses] if args.key?(:allowed_email_addresses)
177
+ @allowed_ips = args[:allowed_ips] if args.key?(:allowed_ips)
178
+ @allowed_uris = args[:allowed_uris] if args.key?(:allowed_uris)
179
+ end
180
+ end
181
+
182
+ # Specifies the audit configuration for a service. The configuration determines
183
+ # which permission types are logged, and what identities, if any, are exempted
184
+ # from logging. An AuditConfig must have one or more AuditLogConfigs. If there
185
+ # are AuditConfigs for both `allServices` and a specific service, the union of
186
+ # the two AuditConfigs is used for that service: the log_types specified in each
187
+ # AuditConfig are enabled, and the exempted_members in each AuditLogConfig are
188
+ # exempted. Example Policy with multiple AuditConfigs: ` "audit_configs": [ ` "
189
+ # service": "allServices", "audit_log_configs": [ ` "log_type": "DATA_READ", "
190
+ # exempted_members": [ "user:jose@example.com" ] `, ` "log_type": "DATA_WRITE" `,
191
+ # ` "log_type": "ADMIN_READ" ` ] `, ` "service": "sampleservice.googleapis.com",
192
+ # "audit_log_configs": [ ` "log_type": "DATA_READ" `, ` "log_type": "DATA_WRITE"
193
+ # , "exempted_members": [ "user:aliya@example.com" ] ` ] ` ] ` For sampleservice,
194
+ # this policy enables DATA_READ, DATA_WRITE and ADMIN_READ logging. It also
195
+ # exempts jose@example.com from DATA_READ logging, and aliya@example.com from
196
+ # DATA_WRITE logging.
197
+ class AuditConfig
198
+ include Google::Apis::Core::Hashable
199
+
200
+ # The configuration for logging of each type of permission.
201
+ # Corresponds to the JSON property `auditLogConfigs`
202
+ # @return [Array<Google::Apis::PrivatecaV1beta1::AuditLogConfig>]
203
+ attr_accessor :audit_log_configs
204
+
205
+ # Specifies a service that will be enabled for audit logging. For example, `
206
+ # storage.googleapis.com`, `cloudsql.googleapis.com`. `allServices` is a special
207
+ # value that covers all services.
208
+ # Corresponds to the JSON property `service`
209
+ # @return [String]
210
+ attr_accessor :service
211
+
212
+ def initialize(**args)
213
+ update!(**args)
214
+ end
215
+
216
+ # Update properties of this object
217
+ def update!(**args)
218
+ @audit_log_configs = args[:audit_log_configs] if args.key?(:audit_log_configs)
219
+ @service = args[:service] if args.key?(:service)
220
+ end
221
+ end
222
+
223
+ # Provides the configuration for logging a type of permissions. Example: ` "
224
+ # audit_log_configs": [ ` "log_type": "DATA_READ", "exempted_members": [ "user:
225
+ # jose@example.com" ] `, ` "log_type": "DATA_WRITE" ` ] ` This enables '
226
+ # DATA_READ' and 'DATA_WRITE' logging, while exempting jose@example.com from
227
+ # DATA_READ logging.
228
+ class AuditLogConfig
229
+ include Google::Apis::Core::Hashable
230
+
231
+ # Specifies the identities that do not cause logging for this type of permission.
232
+ # Follows the same format of Binding.members.
233
+ # Corresponds to the JSON property `exemptedMembers`
234
+ # @return [Array<String>]
235
+ attr_accessor :exempted_members
236
+
237
+ # The log type that this config enables.
238
+ # Corresponds to the JSON property `logType`
239
+ # @return [String]
240
+ attr_accessor :log_type
241
+
242
+ def initialize(**args)
243
+ update!(**args)
244
+ end
245
+
246
+ # Update properties of this object
247
+ def update!(**args)
248
+ @exempted_members = args[:exempted_members] if args.key?(:exempted_members)
249
+ @log_type = args[:log_type] if args.key?(:log_type)
250
+ end
251
+ end
252
+
253
+ # Associates `members` with a `role`.
254
+ class Binding
255
+ include Google::Apis::Core::Hashable
256
+
257
+ # Represents a textual expression in the Common Expression Language (CEL) syntax.
258
+ # CEL is a C-like expression language. The syntax and semantics of CEL are
259
+ # documented at https://github.com/google/cel-spec. Example (Comparison): title:
260
+ # "Summary size limit" description: "Determines if a summary is less than 100
261
+ # chars" expression: "document.summary.size() < 100" Example (Equality): title: "
262
+ # Requestor is owner" description: "Determines if requestor is the document
263
+ # owner" expression: "document.owner == request.auth.claims.email" Example (
264
+ # Logic): title: "Public documents" description: "Determine whether the document
265
+ # should be publicly visible" expression: "document.type != 'private' &&
266
+ # document.type != 'internal'" Example (Data Manipulation): title: "Notification
267
+ # string" description: "Create a notification string with a timestamp."
268
+ # expression: "'New message received at ' + string(document.create_time)" The
269
+ # exact variables and functions that may be referenced within an expression are
270
+ # determined by the service that evaluates it. See the service documentation for
271
+ # additional information.
272
+ # Corresponds to the JSON property `condition`
273
+ # @return [Google::Apis::PrivatecaV1beta1::Expr]
274
+ attr_accessor :condition
275
+
276
+ # Specifies the identities requesting access for a Cloud Platform resource. `
277
+ # members` can have the following values: * `allUsers`: A special identifier
278
+ # that represents anyone who is on the internet; with or without a Google
279
+ # account. * `allAuthenticatedUsers`: A special identifier that represents
280
+ # anyone who is authenticated with a Google account or a service account. * `
281
+ # user:`emailid``: An email address that represents a specific Google account.
282
+ # For example, `alice@example.com` . * `serviceAccount:`emailid``: An email
283
+ # address that represents a service account. For example, `my-other-app@appspot.
284
+ # gserviceaccount.com`. * `group:`emailid``: An email address that represents a
285
+ # Google group. For example, `admins@example.com`. * `deleted:user:`emailid`?uid=
286
+ # `uniqueid``: An email address (plus unique identifier) representing a user
287
+ # that has been recently deleted. For example, `alice@example.com?uid=
288
+ # 123456789012345678901`. If the user is recovered, this value reverts to `user:`
289
+ # emailid`` and the recovered user retains the role in the binding. * `deleted:
290
+ # serviceAccount:`emailid`?uid=`uniqueid``: An email address (plus unique
291
+ # identifier) representing a service account that has been recently deleted. For
292
+ # example, `my-other-app@appspot.gserviceaccount.com?uid=123456789012345678901`.
293
+ # If the service account is undeleted, this value reverts to `serviceAccount:`
294
+ # emailid`` and the undeleted service account retains the role in the binding. *
295
+ # `deleted:group:`emailid`?uid=`uniqueid``: An email address (plus unique
296
+ # identifier) representing a Google group that has been recently deleted. For
297
+ # example, `admins@example.com?uid=123456789012345678901`. If the group is
298
+ # recovered, this value reverts to `group:`emailid`` and the recovered group
299
+ # retains the role in the binding. * `domain:`domain``: The G Suite domain (
300
+ # primary) that represents all the users of that domain. For example, `google.
301
+ # com` or `example.com`.
302
+ # Corresponds to the JSON property `members`
303
+ # @return [Array<String>]
304
+ attr_accessor :members
305
+
306
+ # Role that is assigned to `members`. For example, `roles/viewer`, `roles/editor`
307
+ # , or `roles/owner`.
308
+ # Corresponds to the JSON property `role`
309
+ # @return [String]
310
+ attr_accessor :role
311
+
312
+ def initialize(**args)
313
+ update!(**args)
314
+ end
315
+
316
+ # Update properties of this object
317
+ def update!(**args)
318
+ @condition = args[:condition] if args.key?(:condition)
319
+ @members = args[:members] if args.key?(:members)
320
+ @role = args[:role] if args.key?(:role)
321
+ end
322
+ end
323
+
324
+ # Describes values that are relevant in a CA certificate.
325
+ class CaOptions
326
+ include Google::Apis::Core::Hashable
327
+
328
+ # Optional. Refers to the "CA" X.509 extension, which is a boolean value. When
329
+ # this value is missing, the extension will be omitted from the CA certificate.
330
+ # Corresponds to the JSON property `isCa`
331
+ # @return [Boolean]
332
+ attr_accessor :is_ca
333
+ alias_method :is_ca?, :is_ca
334
+
335
+ # Optional. Refers to the path length restriction X.509 extension. For a CA
336
+ # certificate, this value describes the depth of subordinate CA certificates
337
+ # that are allowed. If this value is less than 0, the request will fail. If this
338
+ # value is missing, the max path length will be omitted from the CA certificate.
339
+ # Corresponds to the JSON property `maxIssuerPathLength`
340
+ # @return [Fixnum]
341
+ attr_accessor :max_issuer_path_length
342
+
343
+ def initialize(**args)
344
+ update!(**args)
345
+ end
346
+
347
+ # Update properties of this object
348
+ def update!(**args)
349
+ @is_ca = args[:is_ca] if args.key?(:is_ca)
350
+ @max_issuer_path_length = args[:max_issuer_path_length] if args.key?(:max_issuer_path_length)
351
+ end
352
+ end
353
+
354
+ # The request message for Operations.CancelOperation.
355
+ class CancelOperationRequest
356
+ include Google::Apis::Core::Hashable
357
+
358
+ def initialize(**args)
359
+ update!(**args)
360
+ end
361
+
362
+ # Update properties of this object
363
+ def update!(**args)
364
+ end
365
+ end
366
+
367
+ # A Certificate corresponds to a signed X.509 certificate issued by a
368
+ # CertificateAuthority.
369
+ class Certificate
370
+ include Google::Apis::Core::Hashable
371
+
372
+ # A CertificateDescription describes an X.509 certificate or CSR that has been
373
+ # issued, as an alternative to using ASN.1 / X.509.
374
+ # Corresponds to the JSON property `certificateDescription`
375
+ # @return [Google::Apis::PrivatecaV1beta1::CertificateDescription]
376
+ attr_accessor :certificate_description
377
+
378
+ # A CertificateConfig describes an X.509 certificate or CSR that is to be
379
+ # created, as an alternative to using ASN.1.
380
+ # Corresponds to the JSON property `config`
381
+ # @return [Google::Apis::PrivatecaV1beta1::CertificateConfig]
382
+ attr_accessor :config
383
+
384
+ # Output only. The time at which this Certificate was created.
385
+ # Corresponds to the JSON property `createTime`
386
+ # @return [String]
387
+ attr_accessor :create_time
388
+
389
+ # Optional. Labels with user-defined metadata.
390
+ # Corresponds to the JSON property `labels`
391
+ # @return [Hash<String,String>]
392
+ attr_accessor :labels
393
+
394
+ # Required. Immutable. The desired lifetime of a certificate. Used to create the
395
+ # "not_before_time" and "not_after_time" fields inside an X.509 certificate.
396
+ # Note that the lifetime may be truncated if it would extend past the life of
397
+ # any certificate authority in the issuing chain.
398
+ # Corresponds to the JSON property `lifetime`
399
+ # @return [String]
400
+ attr_accessor :lifetime
401
+
402
+ # Output only. The resource path for this Certificate in the format `projects/*/
403
+ # locations/*/certificateAuthorities/*/certificates/*`.
404
+ # Corresponds to the JSON property `name`
405
+ # @return [String]
406
+ attr_accessor :name
407
+
408
+ # Output only. The pem-encoded, signed X.509 certificate.
409
+ # Corresponds to the JSON property `pemCertificate`
410
+ # @return [String]
411
+ attr_accessor :pem_certificate
412
+
413
+ # Output only. The chain that may be used to verify the X.509 certificate.
414
+ # Expected to be in issuer-to-root order according to RFC 5246.
415
+ # Corresponds to the JSON property `pemCertificateChain`
416
+ # @return [Array<String>]
417
+ attr_accessor :pem_certificate_chain
418
+
419
+ # Immutable. A pem-encoded X.509 certificate signing request (CSR).
420
+ # Corresponds to the JSON property `pemCsr`
421
+ # @return [String]
422
+ attr_accessor :pem_csr
423
+
424
+ # Describes fields that are relavent to the revocation of a Certificate.
425
+ # Corresponds to the JSON property `revocationDetails`
426
+ # @return [Google::Apis::PrivatecaV1beta1::RevocationDetails]
427
+ attr_accessor :revocation_details
428
+
429
+ # Output only. The time at which this Certificate was updated.
430
+ # Corresponds to the JSON property `updateTime`
431
+ # @return [String]
432
+ attr_accessor :update_time
433
+
434
+ def initialize(**args)
435
+ update!(**args)
436
+ end
437
+
438
+ # Update properties of this object
439
+ def update!(**args)
440
+ @certificate_description = args[:certificate_description] if args.key?(:certificate_description)
441
+ @config = args[:config] if args.key?(:config)
442
+ @create_time = args[:create_time] if args.key?(:create_time)
443
+ @labels = args[:labels] if args.key?(:labels)
444
+ @lifetime = args[:lifetime] if args.key?(:lifetime)
445
+ @name = args[:name] if args.key?(:name)
446
+ @pem_certificate = args[:pem_certificate] if args.key?(:pem_certificate)
447
+ @pem_certificate_chain = args[:pem_certificate_chain] if args.key?(:pem_certificate_chain)
448
+ @pem_csr = args[:pem_csr] if args.key?(:pem_csr)
449
+ @revocation_details = args[:revocation_details] if args.key?(:revocation_details)
450
+ @update_time = args[:update_time] if args.key?(:update_time)
451
+ end
452
+ end
453
+
454
+ # A CertificateAuthority represents an individual Certificate Authority. A
455
+ # CertificateAuthority can be used to create Certificates.
456
+ class CertificateAuthority
457
+ include Google::Apis::Core::Hashable
458
+
459
+ # URLs where a CertificateAuthority will publish content.
460
+ # Corresponds to the JSON property `accessUrls`
461
+ # @return [Google::Apis::PrivatecaV1beta1::AccessUrls]
462
+ attr_accessor :access_urls
463
+
464
+ # Output only. A structured description of this CertificateAuthority's CA
465
+ # certificate and its issuers. Ordered as self-to-root.
466
+ # Corresponds to the JSON property `caCertificateDescriptions`
467
+ # @return [Array<Google::Apis::PrivatecaV1beta1::CertificateDescription>]
468
+ attr_accessor :ca_certificate_descriptions
469
+
470
+ # The issuing policy for a CertificateAuthority. Certificates will not be
471
+ # successfully issued from this CertificateAuthority if they violate the policy.
472
+ # Corresponds to the JSON property `certificatePolicy`
473
+ # @return [Google::Apis::PrivatecaV1beta1::CertificateAuthorityPolicy]
474
+ attr_accessor :certificate_policy
475
+
476
+ # A CertificateConfig describes an X.509 certificate or CSR that is to be
477
+ # created, as an alternative to using ASN.1.
478
+ # Corresponds to the JSON property `config`
479
+ # @return [Google::Apis::PrivatecaV1beta1::CertificateConfig]
480
+ attr_accessor :config
481
+
482
+ # Output only. The time at which this CertificateAuthority was created.
483
+ # Corresponds to the JSON property `createTime`
484
+ # @return [String]
485
+ attr_accessor :create_time
486
+
487
+ # Output only. The time at which this CertificateAuthority will be deleted, if
488
+ # scheduled for deletion.
489
+ # Corresponds to the JSON property `deleteTime`
490
+ # @return [String]
491
+ attr_accessor :delete_time
492
+
493
+ # Immutable. The name of a Cloud Storage bucket where this CertificateAuthority
494
+ # will publish content, such as the CA certificate and CRLs. This must be a
495
+ # bucket name, without any prefixes (such as `gs://`) or suffixes (such as `.
496
+ # googleapis.com`). For example, to use a bucket named `my-bucket`, you would
497
+ # simply specify `my-bucket`. If not specified, a managed bucket will be created.
498
+ # Corresponds to the JSON property `gcsBucket`
499
+ # @return [String]
500
+ attr_accessor :gcs_bucket
501
+
502
+ # Options that affect all certificates issued by a CertificateAuthority.
503
+ # Corresponds to the JSON property `issuingOptions`
504
+ # @return [Google::Apis::PrivatecaV1beta1::IssuingOptions]
505
+ attr_accessor :issuing_options
506
+
507
+ # A Cloud KMS key configuration that a CertificateAuthority will use.
508
+ # Corresponds to the JSON property `keySpec`
509
+ # @return [Google::Apis::PrivatecaV1beta1::KeyVersionSpec]
510
+ attr_accessor :key_spec
511
+
512
+ # Optional. Labels with user-defined metadata.
513
+ # Corresponds to the JSON property `labels`
514
+ # @return [Hash<String,String>]
515
+ attr_accessor :labels
516
+
517
+ # Required. The desired lifetime of the CA certificate. Used to create the "
518
+ # not_before_time" and "not_after_time" fields inside an X.509 certificate.
519
+ # Corresponds to the JSON property `lifetime`
520
+ # @return [String]
521
+ attr_accessor :lifetime
522
+
523
+ # Output only. The resource name for this CertificateAuthority in the format `
524
+ # projects/*/locations/*/certificateAuthorities/*`.
525
+ # Corresponds to the JSON property `name`
526
+ # @return [String]
527
+ attr_accessor :name
528
+
529
+ # Output only. This CertificateAuthority's certificate chain, including the
530
+ # current CertificateAuthority's certificate. Ordered such that the root issuer
531
+ # is the final element (consistent with RFC 5246). For a self-signed CA, this
532
+ # will only list the current CertificateAuthority's certificate.
533
+ # Corresponds to the JSON property `pemCaCertificates`
534
+ # @return [Array<String>]
535
+ attr_accessor :pem_ca_certificates
536
+
537
+ # Output only. The State for this CertificateAuthority.
538
+ # Corresponds to the JSON property `state`
539
+ # @return [String]
540
+ attr_accessor :state
541
+
542
+ # Describes a subordinate CA's issuers. This is either a resource path to a
543
+ # known issuing CertificateAuthority, or a PEM issuer certificate chain.
544
+ # Corresponds to the JSON property `subordinateConfig`
545
+ # @return [Google::Apis::PrivatecaV1beta1::SubordinateConfig]
546
+ attr_accessor :subordinate_config
547
+
548
+ # Required. Immutable. The Tier of this CertificateAuthority.
549
+ # Corresponds to the JSON property `tier`
550
+ # @return [String]
551
+ attr_accessor :tier
552
+
553
+ # Required. Immutable. The Type of this CertificateAuthority.
554
+ # Corresponds to the JSON property `type`
555
+ # @return [String]
556
+ attr_accessor :type
557
+
558
+ # Output only. The time at which this CertificateAuthority was updated.
559
+ # Corresponds to the JSON property `updateTime`
560
+ # @return [String]
561
+ attr_accessor :update_time
562
+
563
+ def initialize(**args)
564
+ update!(**args)
565
+ end
566
+
567
+ # Update properties of this object
568
+ def update!(**args)
569
+ @access_urls = args[:access_urls] if args.key?(:access_urls)
570
+ @ca_certificate_descriptions = args[:ca_certificate_descriptions] if args.key?(:ca_certificate_descriptions)
571
+ @certificate_policy = args[:certificate_policy] if args.key?(:certificate_policy)
572
+ @config = args[:config] if args.key?(:config)
573
+ @create_time = args[:create_time] if args.key?(:create_time)
574
+ @delete_time = args[:delete_time] if args.key?(:delete_time)
575
+ @gcs_bucket = args[:gcs_bucket] if args.key?(:gcs_bucket)
576
+ @issuing_options = args[:issuing_options] if args.key?(:issuing_options)
577
+ @key_spec = args[:key_spec] if args.key?(:key_spec)
578
+ @labels = args[:labels] if args.key?(:labels)
579
+ @lifetime = args[:lifetime] if args.key?(:lifetime)
580
+ @name = args[:name] if args.key?(:name)
581
+ @pem_ca_certificates = args[:pem_ca_certificates] if args.key?(:pem_ca_certificates)
582
+ @state = args[:state] if args.key?(:state)
583
+ @subordinate_config = args[:subordinate_config] if args.key?(:subordinate_config)
584
+ @tier = args[:tier] if args.key?(:tier)
585
+ @type = args[:type] if args.key?(:type)
586
+ @update_time = args[:update_time] if args.key?(:update_time)
587
+ end
588
+ end
589
+
590
+ # The issuing policy for a CertificateAuthority. Certificates will not be
591
+ # successfully issued from this CertificateAuthority if they violate the policy.
592
+ class CertificateAuthorityPolicy
593
+ include Google::Apis::Core::Hashable
594
+
595
+ # Optional. If any value is specified here, then all Certificates issued by the
596
+ # CertificateAuthority must match at least one listed value. If no value is
597
+ # specified, all values will be allowed for this fied. Glob patterns are also
598
+ # supported.
599
+ # Corresponds to the JSON property `allowedCommonNames`
600
+ # @return [Array<String>]
601
+ attr_accessor :allowed_common_names
602
+
603
+ # Optional. All Certificates issued by the CertificateAuthority must match at
604
+ # least one listed ReusableConfigWrapper in the list.
605
+ # Corresponds to the JSON property `allowedConfigList`
606
+ # @return [Google::Apis::PrivatecaV1beta1::AllowedConfigList]
607
+ attr_accessor :allowed_config_list
608
+
609
+ # IssuanceModes specifies the allowed ways in which Certificates may be
610
+ # requested from this CertificateAuthority.
611
+ # Corresponds to the JSON property `allowedIssuanceModes`
612
+ # @return [Google::Apis::PrivatecaV1beta1::IssuanceModes]
613
+ attr_accessor :allowed_issuance_modes
614
+
615
+ # Optional. If any Subject is specified here, then all Certificates issued by
616
+ # the CertificateAuthority must match at least one listed Subject. If a Subject
617
+ # has an empty field, any value will be allowed for that field.
618
+ # Corresponds to the JSON property `allowedLocationsAndOrganizations`
619
+ # @return [Array<Google::Apis::PrivatecaV1beta1::Subject>]
620
+ attr_accessor :allowed_locations_and_organizations
621
+
622
+ # AllowedSubjectAltNames specifies the allowed values for SubjectAltNames by the
623
+ # CertificateAuthority when issuing Certificates.
624
+ # Corresponds to the JSON property `allowedSans`
625
+ # @return [Google::Apis::PrivatecaV1beta1::AllowedSubjectAltNames]
626
+ attr_accessor :allowed_sans
627
+
628
+ # Optional. The maximum lifetime allowed by the CertificateAuthority. Note that
629
+ # if the any part if the issuing chain expires before a Certificate's requested
630
+ # maximum_lifetime, the effective lifetime will be explicitly truncated.
631
+ # Corresponds to the JSON property `maximumLifetime`
632
+ # @return [String]
633
+ attr_accessor :maximum_lifetime
634
+
635
+ # A ReusableConfigWrapper describes values that may assist in creating an X.509
636
+ # certificate, or a reference to a pre-defined set of values.
637
+ # Corresponds to the JSON property `overwriteConfigValues`
638
+ # @return [Google::Apis::PrivatecaV1beta1::ReusableConfigWrapper]
639
+ attr_accessor :overwrite_config_values
640
+
641
+ def initialize(**args)
642
+ update!(**args)
643
+ end
644
+
645
+ # Update properties of this object
646
+ def update!(**args)
647
+ @allowed_common_names = args[:allowed_common_names] if args.key?(:allowed_common_names)
648
+ @allowed_config_list = args[:allowed_config_list] if args.key?(:allowed_config_list)
649
+ @allowed_issuance_modes = args[:allowed_issuance_modes] if args.key?(:allowed_issuance_modes)
650
+ @allowed_locations_and_organizations = args[:allowed_locations_and_organizations] if args.key?(:allowed_locations_and_organizations)
651
+ @allowed_sans = args[:allowed_sans] if args.key?(:allowed_sans)
652
+ @maximum_lifetime = args[:maximum_lifetime] if args.key?(:maximum_lifetime)
653
+ @overwrite_config_values = args[:overwrite_config_values] if args.key?(:overwrite_config_values)
654
+ end
655
+ end
656
+
657
+ # A CertificateConfig describes an X.509 certificate or CSR that is to be
658
+ # created, as an alternative to using ASN.1.
659
+ class CertificateConfig
660
+ include Google::Apis::Core::Hashable
661
+
662
+ # A PublicKey describes a public key.
663
+ # Corresponds to the JSON property `publicKey`
664
+ # @return [Google::Apis::PrivatecaV1beta1::PublicKey]
665
+ attr_accessor :public_key
666
+
667
+ # A ReusableConfigWrapper describes values that may assist in creating an X.509
668
+ # certificate, or a reference to a pre-defined set of values.
669
+ # Corresponds to the JSON property `reusableConfig`
670
+ # @return [Google::Apis::PrivatecaV1beta1::ReusableConfigWrapper]
671
+ attr_accessor :reusable_config
672
+
673
+ # These values are used to create the distinguished name and subject alternative
674
+ # name fields in an X.509 certificate.
675
+ # Corresponds to the JSON property `subjectConfig`
676
+ # @return [Google::Apis::PrivatecaV1beta1::SubjectConfig]
677
+ attr_accessor :subject_config
678
+
679
+ def initialize(**args)
680
+ update!(**args)
681
+ end
682
+
683
+ # Update properties of this object
684
+ def update!(**args)
685
+ @public_key = args[:public_key] if args.key?(:public_key)
686
+ @reusable_config = args[:reusable_config] if args.key?(:reusable_config)
687
+ @subject_config = args[:subject_config] if args.key?(:subject_config)
688
+ end
689
+ end
690
+
691
+ # A CertificateDescription describes an X.509 certificate or CSR that has been
692
+ # issued, as an alternative to using ASN.1 / X.509.
693
+ class CertificateDescription
694
+ include Google::Apis::Core::Hashable
695
+
696
+ # Describes lists of issuer CA certificate URLs that appear in the "Authority
697
+ # Information Access" extension in the certificate.
698
+ # Corresponds to the JSON property `aiaIssuingCertificateUrls`
699
+ # @return [Array<String>]
700
+ attr_accessor :aia_issuing_certificate_urls
701
+
702
+ # A KeyId identifies a specific public key, usually by hashing the public key.
703
+ # Corresponds to the JSON property `authorityKeyId`
704
+ # @return [Google::Apis::PrivatecaV1beta1::KeyId]
705
+ attr_accessor :authority_key_id
706
+
707
+ # A group of fingerprints for the x509 certificate.
708
+ # Corresponds to the JSON property `certFingerprint`
709
+ # @return [Google::Apis::PrivatecaV1beta1::CertificateFingerprint]
710
+ attr_accessor :cert_fingerprint
711
+
712
+ # A ReusableConfigValues is used to describe certain fields of an X.509
713
+ # certificate, such as the key usage fields, fields specific to CA certificates,
714
+ # certificate policy extensions and custom extensions.
715
+ # Corresponds to the JSON property `configValues`
716
+ # @return [Google::Apis::PrivatecaV1beta1::ReusableConfigValues]
717
+ attr_accessor :config_values
718
+
719
+ # Describes a list of locations to obtain CRL information, i.e. the
720
+ # DistributionPoint.fullName described by https://tools.ietf.org/html/rfc5280#
721
+ # section-4.2.1.13
722
+ # Corresponds to the JSON property `crlDistributionPoints`
723
+ # @return [Array<String>]
724
+ attr_accessor :crl_distribution_points
725
+
726
+ # A PublicKey describes a public key.
727
+ # Corresponds to the JSON property `publicKey`
728
+ # @return [Google::Apis::PrivatecaV1beta1::PublicKey]
729
+ attr_accessor :public_key
730
+
731
+ # These values describe fields in an issued X.509 certificate such as the
732
+ # distinguished name, subject alternative names, serial number, and lifetime.
733
+ # Corresponds to the JSON property `subjectDescription`
734
+ # @return [Google::Apis::PrivatecaV1beta1::SubjectDescription]
735
+ attr_accessor :subject_description
736
+
737
+ # A KeyId identifies a specific public key, usually by hashing the public key.
738
+ # Corresponds to the JSON property `subjectKeyId`
739
+ # @return [Google::Apis::PrivatecaV1beta1::KeyId]
740
+ attr_accessor :subject_key_id
741
+
742
+ def initialize(**args)
743
+ update!(**args)
744
+ end
745
+
746
+ # Update properties of this object
747
+ def update!(**args)
748
+ @aia_issuing_certificate_urls = args[:aia_issuing_certificate_urls] if args.key?(:aia_issuing_certificate_urls)
749
+ @authority_key_id = args[:authority_key_id] if args.key?(:authority_key_id)
750
+ @cert_fingerprint = args[:cert_fingerprint] if args.key?(:cert_fingerprint)
751
+ @config_values = args[:config_values] if args.key?(:config_values)
752
+ @crl_distribution_points = args[:crl_distribution_points] if args.key?(:crl_distribution_points)
753
+ @public_key = args[:public_key] if args.key?(:public_key)
754
+ @subject_description = args[:subject_description] if args.key?(:subject_description)
755
+ @subject_key_id = args[:subject_key_id] if args.key?(:subject_key_id)
756
+ end
757
+ end
758
+
759
+ # A group of fingerprints for the x509 certificate.
760
+ class CertificateFingerprint
761
+ include Google::Apis::Core::Hashable
762
+
763
+ # The SHA 256 hash, encoded in hexadecimal, of the DER x509 certificate.
764
+ # Corresponds to the JSON property `sha256Hash`
765
+ # @return [String]
766
+ attr_accessor :sha256_hash
767
+
768
+ def initialize(**args)
769
+ update!(**args)
770
+ end
771
+
772
+ # Update properties of this object
773
+ def update!(**args)
774
+ @sha256_hash = args[:sha256_hash] if args.key?(:sha256_hash)
775
+ end
776
+ end
777
+
778
+ # A CertificateRevocationList corresponds to a signed X.509 certificate
779
+ # Revocation List (CRL). A CRL contains the serial numbers of certificates that
780
+ # should no longer be trusted.
781
+ class CertificateRevocationList
782
+ include Google::Apis::Core::Hashable
783
+
784
+ # Output only. The location where 'pem_crl' can be accessed.
785
+ # Corresponds to the JSON property `accessUrl`
786
+ # @return [String]
787
+ attr_accessor :access_url
788
+
789
+ # Output only. The time at which this CertificateRevocationList was created.
790
+ # Corresponds to the JSON property `createTime`
791
+ # @return [String]
792
+ attr_accessor :create_time
793
+
794
+ # Optional. Labels with user-defined metadata.
795
+ # Corresponds to the JSON property `labels`
796
+ # @return [Hash<String,String>]
797
+ attr_accessor :labels
798
+
799
+ # Output only. The resource path for this CertificateRevocationList in the
800
+ # format `projects/*/locations/*/certificateAuthorities/*/
801
+ # certificateRevocationLists/*`.
802
+ # Corresponds to the JSON property `name`
803
+ # @return [String]
804
+ attr_accessor :name
805
+
806
+ # Output only. The PEM-encoded X.509 CRL.
807
+ # Corresponds to the JSON property `pemCrl`
808
+ # @return [String]
809
+ attr_accessor :pem_crl
810
+
811
+ # Output only. The revoked serial numbers that appear in pem_crl.
812
+ # Corresponds to the JSON property `revokedCertificates`
813
+ # @return [Array<Google::Apis::PrivatecaV1beta1::RevokedCertificate>]
814
+ attr_accessor :revoked_certificates
815
+
816
+ # Output only. The CRL sequence number that appears in pem_crl.
817
+ # Corresponds to the JSON property `sequenceNumber`
818
+ # @return [Fixnum]
819
+ attr_accessor :sequence_number
820
+
821
+ # Output only. The State for this CertificateRevocationList.
822
+ # Corresponds to the JSON property `state`
823
+ # @return [String]
824
+ attr_accessor :state
825
+
826
+ # Output only. The time at which this CertificateRevocationList was updated.
827
+ # Corresponds to the JSON property `updateTime`
828
+ # @return [String]
829
+ attr_accessor :update_time
830
+
831
+ def initialize(**args)
832
+ update!(**args)
833
+ end
834
+
835
+ # Update properties of this object
836
+ def update!(**args)
837
+ @access_url = args[:access_url] if args.key?(:access_url)
838
+ @create_time = args[:create_time] if args.key?(:create_time)
839
+ @labels = args[:labels] if args.key?(:labels)
840
+ @name = args[:name] if args.key?(:name)
841
+ @pem_crl = args[:pem_crl] if args.key?(:pem_crl)
842
+ @revoked_certificates = args[:revoked_certificates] if args.key?(:revoked_certificates)
843
+ @sequence_number = args[:sequence_number] if args.key?(:sequence_number)
844
+ @state = args[:state] if args.key?(:state)
845
+ @update_time = args[:update_time] if args.key?(:update_time)
846
+ end
847
+ end
848
+
849
+ # Request message for CertificateAuthorityService.DisableCertificateAuthority.
850
+ class DisableCertificateAuthorityRequest
851
+ include Google::Apis::Core::Hashable
852
+
853
+ # Optional. An ID to identify requests. Specify a unique request ID so that if
854
+ # you must retry your request, the server will know to ignore the request if it
855
+ # has already been completed. The server will guarantee that for at least 60
856
+ # minutes since the first request. For example, consider a situation where you
857
+ # make an initial request and t he request times out. If you make the request
858
+ # again with the same request ID, the server can check if original operation
859
+ # with the same request ID was received, and if so, will ignore the second
860
+ # request. This prevents clients from accidentally creating duplicate
861
+ # commitments. The request ID must be a valid UUID with the exception that zero
862
+ # UUID is not supported (00000000-0000-0000-0000-000000000000).
863
+ # Corresponds to the JSON property `requestId`
864
+ # @return [String]
865
+ attr_accessor :request_id
866
+
867
+ def initialize(**args)
868
+ update!(**args)
869
+ end
870
+
871
+ # Update properties of this object
872
+ def update!(**args)
873
+ @request_id = args[:request_id] if args.key?(:request_id)
874
+ end
875
+ end
876
+
877
+ # A generic empty message that you can re-use to avoid defining duplicated empty
878
+ # messages in your APIs. A typical example is to use it as the request or the
879
+ # response type of an API method. For instance: service Foo ` rpc Bar(google.
880
+ # protobuf.Empty) returns (google.protobuf.Empty); ` The JSON representation for
881
+ # `Empty` is empty JSON object ````.
882
+ class Empty
883
+ include Google::Apis::Core::Hashable
884
+
885
+ def initialize(**args)
886
+ update!(**args)
887
+ end
888
+
889
+ # Update properties of this object
890
+ def update!(**args)
891
+ end
892
+ end
893
+
894
+ # Request message for CertificateAuthorityService.EnableCertificateAuthority.
895
+ class EnableCertificateAuthorityRequest
896
+ include Google::Apis::Core::Hashable
897
+
898
+ # Optional. An ID to identify requests. Specify a unique request ID so that if
899
+ # you must retry your request, the server will know to ignore the request if it
900
+ # has already been completed. The server will guarantee that for at least 60
901
+ # minutes since the first request. For example, consider a situation where you
902
+ # make an initial request and t he request times out. If you make the request
903
+ # again with the same request ID, the server can check if original operation
904
+ # with the same request ID was received, and if so, will ignore the second
905
+ # request. This prevents clients from accidentally creating duplicate
906
+ # commitments. The request ID must be a valid UUID with the exception that zero
907
+ # UUID is not supported (00000000-0000-0000-0000-000000000000).
908
+ # Corresponds to the JSON property `requestId`
909
+ # @return [String]
910
+ attr_accessor :request_id
911
+
912
+ def initialize(**args)
913
+ update!(**args)
914
+ end
915
+
916
+ # Update properties of this object
917
+ def update!(**args)
918
+ @request_id = args[:request_id] if args.key?(:request_id)
919
+ end
920
+ end
921
+
922
+ # Represents a textual expression in the Common Expression Language (CEL) syntax.
923
+ # CEL is a C-like expression language. The syntax and semantics of CEL are
924
+ # documented at https://github.com/google/cel-spec. Example (Comparison): title:
925
+ # "Summary size limit" description: "Determines if a summary is less than 100
926
+ # chars" expression: "document.summary.size() < 100" Example (Equality): title: "
927
+ # Requestor is owner" description: "Determines if requestor is the document
928
+ # owner" expression: "document.owner == request.auth.claims.email" Example (
929
+ # Logic): title: "Public documents" description: "Determine whether the document
930
+ # should be publicly visible" expression: "document.type != 'private' &&
931
+ # document.type != 'internal'" Example (Data Manipulation): title: "Notification
932
+ # string" description: "Create a notification string with a timestamp."
933
+ # expression: "'New message received at ' + string(document.create_time)" The
934
+ # exact variables and functions that may be referenced within an expression are
935
+ # determined by the service that evaluates it. See the service documentation for
936
+ # additional information.
937
+ class Expr
938
+ include Google::Apis::Core::Hashable
939
+
940
+ # Optional. Description of the expression. This is a longer text which describes
941
+ # the expression, e.g. when hovered over it in a UI.
942
+ # Corresponds to the JSON property `description`
943
+ # @return [String]
944
+ attr_accessor :description
945
+
946
+ # Textual representation of an expression in Common Expression Language syntax.
947
+ # Corresponds to the JSON property `expression`
948
+ # @return [String]
949
+ attr_accessor :expression
950
+
951
+ # Optional. String indicating the location of the expression for error reporting,
952
+ # e.g. a file name and a position in the file.
953
+ # Corresponds to the JSON property `location`
954
+ # @return [String]
955
+ attr_accessor :location
956
+
957
+ # Optional. Title for the expression, i.e. a short string describing its purpose.
958
+ # This can be used e.g. in UIs which allow to enter the expression.
959
+ # Corresponds to the JSON property `title`
960
+ # @return [String]
961
+ attr_accessor :title
962
+
963
+ def initialize(**args)
964
+ update!(**args)
965
+ end
966
+
967
+ # Update properties of this object
968
+ def update!(**args)
969
+ @description = args[:description] if args.key?(:description)
970
+ @expression = args[:expression] if args.key?(:expression)
971
+ @location = args[:location] if args.key?(:location)
972
+ @title = args[:title] if args.key?(:title)
973
+ end
974
+ end
975
+
976
+ # KeyUsage.ExtendedKeyUsageOptions has fields that correspond to certain common
977
+ # OIDs that could be specified as an extended key usage value.
978
+ class ExtendedKeyUsageOptions
979
+ include Google::Apis::Core::Hashable
980
+
981
+ # Corresponds to OID 1.3.6.1.5.5.7.3.2. Officially described as "TLS WWW client
982
+ # authentication", though regularly used for non-WWW TLS.
983
+ # Corresponds to the JSON property `clientAuth`
984
+ # @return [Boolean]
985
+ attr_accessor :client_auth
986
+ alias_method :client_auth?, :client_auth
987
+
988
+ # Corresponds to OID 1.3.6.1.5.5.7.3.3. Officially described as "Signing of
989
+ # downloadable executable code client authentication".
990
+ # Corresponds to the JSON property `codeSigning`
991
+ # @return [Boolean]
992
+ attr_accessor :code_signing
993
+ alias_method :code_signing?, :code_signing
994
+
995
+ # Corresponds to OID 1.3.6.1.5.5.7.3.4. Officially described as "Email
996
+ # protection".
997
+ # Corresponds to the JSON property `emailProtection`
998
+ # @return [Boolean]
999
+ attr_accessor :email_protection
1000
+ alias_method :email_protection?, :email_protection
1001
+
1002
+ # Corresponds to OID 1.3.6.1.5.5.7.3.9. Officially described as "Signing OCSP
1003
+ # responses".
1004
+ # Corresponds to the JSON property `ocspSigning`
1005
+ # @return [Boolean]
1006
+ attr_accessor :ocsp_signing
1007
+ alias_method :ocsp_signing?, :ocsp_signing
1008
+
1009
+ # Corresponds to OID 1.3.6.1.5.5.7.3.1. Officially described as "TLS WWW server
1010
+ # authentication", though regularly used for non-WWW TLS.
1011
+ # Corresponds to the JSON property `serverAuth`
1012
+ # @return [Boolean]
1013
+ attr_accessor :server_auth
1014
+ alias_method :server_auth?, :server_auth
1015
+
1016
+ # Corresponds to OID 1.3.6.1.5.5.7.3.8. Officially described as "Binding the
1017
+ # hash of an object to a time".
1018
+ # Corresponds to the JSON property `timeStamping`
1019
+ # @return [Boolean]
1020
+ attr_accessor :time_stamping
1021
+ alias_method :time_stamping?, :time_stamping
1022
+
1023
+ def initialize(**args)
1024
+ update!(**args)
1025
+ end
1026
+
1027
+ # Update properties of this object
1028
+ def update!(**args)
1029
+ @client_auth = args[:client_auth] if args.key?(:client_auth)
1030
+ @code_signing = args[:code_signing] if args.key?(:code_signing)
1031
+ @email_protection = args[:email_protection] if args.key?(:email_protection)
1032
+ @ocsp_signing = args[:ocsp_signing] if args.key?(:ocsp_signing)
1033
+ @server_auth = args[:server_auth] if args.key?(:server_auth)
1034
+ @time_stamping = args[:time_stamping] if args.key?(:time_stamping)
1035
+ end
1036
+ end
1037
+
1038
+ # Response message for CertificateAuthorityService.FetchCertificateAuthorityCsr.
1039
+ class FetchCertificateAuthorityCsrResponse
1040
+ include Google::Apis::Core::Hashable
1041
+
1042
+ # Output only. The PEM-encoded signed certificate signing request (CSR).
1043
+ # Corresponds to the JSON property `pemCsr`
1044
+ # @return [String]
1045
+ attr_accessor :pem_csr
1046
+
1047
+ def initialize(**args)
1048
+ update!(**args)
1049
+ end
1050
+
1051
+ # Update properties of this object
1052
+ def update!(**args)
1053
+ @pem_csr = args[:pem_csr] if args.key?(:pem_csr)
1054
+ end
1055
+ end
1056
+
1057
+ # IssuanceModes specifies the allowed ways in which Certificates may be
1058
+ # requested from this CertificateAuthority.
1059
+ class IssuanceModes
1060
+ include Google::Apis::Core::Hashable
1061
+
1062
+ # Required. When true, allows callers to create Certificates by specifying a
1063
+ # CertificateConfig.
1064
+ # Corresponds to the JSON property `allowConfigBasedIssuance`
1065
+ # @return [Boolean]
1066
+ attr_accessor :allow_config_based_issuance
1067
+ alias_method :allow_config_based_issuance?, :allow_config_based_issuance
1068
+
1069
+ # Required. When true, allows callers to create Certificates by specifying a CSR.
1070
+ # Corresponds to the JSON property `allowCsrBasedIssuance`
1071
+ # @return [Boolean]
1072
+ attr_accessor :allow_csr_based_issuance
1073
+ alias_method :allow_csr_based_issuance?, :allow_csr_based_issuance
1074
+
1075
+ def initialize(**args)
1076
+ update!(**args)
1077
+ end
1078
+
1079
+ # Update properties of this object
1080
+ def update!(**args)
1081
+ @allow_config_based_issuance = args[:allow_config_based_issuance] if args.key?(:allow_config_based_issuance)
1082
+ @allow_csr_based_issuance = args[:allow_csr_based_issuance] if args.key?(:allow_csr_based_issuance)
1083
+ end
1084
+ end
1085
+
1086
+ # Options that affect all certificates issued by a CertificateAuthority.
1087
+ class IssuingOptions
1088
+ include Google::Apis::Core::Hashable
1089
+
1090
+ # Required. When true, includes a URL to the issuing CA certificate in the "
1091
+ # authority information access" X.509 extension.
1092
+ # Corresponds to the JSON property `includeCaCertUrl`
1093
+ # @return [Boolean]
1094
+ attr_accessor :include_ca_cert_url
1095
+ alias_method :include_ca_cert_url?, :include_ca_cert_url
1096
+
1097
+ # Required. When true, includes a URL to the CRL corresponding to certificates
1098
+ # issued from a CertificateAuthority. CRLs will expire 7 days from their
1099
+ # creation. However, we will rebuild daily. CRLs are also rebuilt shortly after
1100
+ # a certificate is revoked.
1101
+ # Corresponds to the JSON property `includeCrlAccessUrl`
1102
+ # @return [Boolean]
1103
+ attr_accessor :include_crl_access_url
1104
+ alias_method :include_crl_access_url?, :include_crl_access_url
1105
+
1106
+ def initialize(**args)
1107
+ update!(**args)
1108
+ end
1109
+
1110
+ # Update properties of this object
1111
+ def update!(**args)
1112
+ @include_ca_cert_url = args[:include_ca_cert_url] if args.key?(:include_ca_cert_url)
1113
+ @include_crl_access_url = args[:include_crl_access_url] if args.key?(:include_crl_access_url)
1114
+ end
1115
+ end
1116
+
1117
+ # A KeyId identifies a specific public key, usually by hashing the public key.
1118
+ class KeyId
1119
+ include Google::Apis::Core::Hashable
1120
+
1121
+ # Optional. The value of this KeyId encoded in lowercase hexadecimal. This is
1122
+ # most likely the 160 bit SHA-1 hash of the public key.
1123
+ # Corresponds to the JSON property `keyId`
1124
+ # @return [String]
1125
+ attr_accessor :key_id
1126
+
1127
+ def initialize(**args)
1128
+ update!(**args)
1129
+ end
1130
+
1131
+ # Update properties of this object
1132
+ def update!(**args)
1133
+ @key_id = args[:key_id] if args.key?(:key_id)
1134
+ end
1135
+ end
1136
+
1137
+ # A KeyUsage describes key usage values that may appear in an X.509 certificate.
1138
+ class KeyUsage
1139
+ include Google::Apis::Core::Hashable
1140
+
1141
+ # KeyUsage.KeyUsageOptions corresponds to the key usage values described in
1142
+ # https://tools.ietf.org/html/rfc5280#section-4.2.1.3.
1143
+ # Corresponds to the JSON property `baseKeyUsage`
1144
+ # @return [Google::Apis::PrivatecaV1beta1::KeyUsageOptions]
1145
+ attr_accessor :base_key_usage
1146
+
1147
+ # KeyUsage.ExtendedKeyUsageOptions has fields that correspond to certain common
1148
+ # OIDs that could be specified as an extended key usage value.
1149
+ # Corresponds to the JSON property `extendedKeyUsage`
1150
+ # @return [Google::Apis::PrivatecaV1beta1::ExtendedKeyUsageOptions]
1151
+ attr_accessor :extended_key_usage
1152
+
1153
+ # Used to describe extended key usages that are not listed in the KeyUsage.
1154
+ # ExtendedKeyUsageOptions message.
1155
+ # Corresponds to the JSON property `unknownExtendedKeyUsages`
1156
+ # @return [Array<Google::Apis::PrivatecaV1beta1::ObjectIdProp>]
1157
+ attr_accessor :unknown_extended_key_usages
1158
+
1159
+ def initialize(**args)
1160
+ update!(**args)
1161
+ end
1162
+
1163
+ # Update properties of this object
1164
+ def update!(**args)
1165
+ @base_key_usage = args[:base_key_usage] if args.key?(:base_key_usage)
1166
+ @extended_key_usage = args[:extended_key_usage] if args.key?(:extended_key_usage)
1167
+ @unknown_extended_key_usages = args[:unknown_extended_key_usages] if args.key?(:unknown_extended_key_usages)
1168
+ end
1169
+ end
1170
+
1171
+ # KeyUsage.KeyUsageOptions corresponds to the key usage values described in
1172
+ # https://tools.ietf.org/html/rfc5280#section-4.2.1.3.
1173
+ class KeyUsageOptions
1174
+ include Google::Apis::Core::Hashable
1175
+
1176
+ # The key may be used to sign certificates.
1177
+ # Corresponds to the JSON property `certSign`
1178
+ # @return [Boolean]
1179
+ attr_accessor :cert_sign
1180
+ alias_method :cert_sign?, :cert_sign
1181
+
1182
+ # The key may be used for cryptographic commitments. Note that this may also be
1183
+ # referred to as "non-repudiation".
1184
+ # Corresponds to the JSON property `contentCommitment`
1185
+ # @return [Boolean]
1186
+ attr_accessor :content_commitment
1187
+ alias_method :content_commitment?, :content_commitment
1188
+
1189
+ # The key may be used sign certificate revocation lists.
1190
+ # Corresponds to the JSON property `crlSign`
1191
+ # @return [Boolean]
1192
+ attr_accessor :crl_sign
1193
+ alias_method :crl_sign?, :crl_sign
1194
+
1195
+ # The key may be used to encipher data.
1196
+ # Corresponds to the JSON property `dataEncipherment`
1197
+ # @return [Boolean]
1198
+ attr_accessor :data_encipherment
1199
+ alias_method :data_encipherment?, :data_encipherment
1200
+
1201
+ # The key may be used to decipher only.
1202
+ # Corresponds to the JSON property `decipherOnly`
1203
+ # @return [Boolean]
1204
+ attr_accessor :decipher_only
1205
+ alias_method :decipher_only?, :decipher_only
1206
+
1207
+ # The key may be used for digital signatures.
1208
+ # Corresponds to the JSON property `digitalSignature`
1209
+ # @return [Boolean]
1210
+ attr_accessor :digital_signature
1211
+ alias_method :digital_signature?, :digital_signature
1212
+
1213
+ # The key may be used to encipher only.
1214
+ # Corresponds to the JSON property `encipherOnly`
1215
+ # @return [Boolean]
1216
+ attr_accessor :encipher_only
1217
+ alias_method :encipher_only?, :encipher_only
1218
+
1219
+ # The key may be used in a key agreement protocol.
1220
+ # Corresponds to the JSON property `keyAgreement`
1221
+ # @return [Boolean]
1222
+ attr_accessor :key_agreement
1223
+ alias_method :key_agreement?, :key_agreement
1224
+
1225
+ # The key may be used to encipher other keys.
1226
+ # Corresponds to the JSON property `keyEncipherment`
1227
+ # @return [Boolean]
1228
+ attr_accessor :key_encipherment
1229
+ alias_method :key_encipherment?, :key_encipherment
1230
+
1231
+ def initialize(**args)
1232
+ update!(**args)
1233
+ end
1234
+
1235
+ # Update properties of this object
1236
+ def update!(**args)
1237
+ @cert_sign = args[:cert_sign] if args.key?(:cert_sign)
1238
+ @content_commitment = args[:content_commitment] if args.key?(:content_commitment)
1239
+ @crl_sign = args[:crl_sign] if args.key?(:crl_sign)
1240
+ @data_encipherment = args[:data_encipherment] if args.key?(:data_encipherment)
1241
+ @decipher_only = args[:decipher_only] if args.key?(:decipher_only)
1242
+ @digital_signature = args[:digital_signature] if args.key?(:digital_signature)
1243
+ @encipher_only = args[:encipher_only] if args.key?(:encipher_only)
1244
+ @key_agreement = args[:key_agreement] if args.key?(:key_agreement)
1245
+ @key_encipherment = args[:key_encipherment] if args.key?(:key_encipherment)
1246
+ end
1247
+ end
1248
+
1249
+ # A Cloud KMS key configuration that a CertificateAuthority will use.
1250
+ class KeyVersionSpec
1251
+ include Google::Apis::Core::Hashable
1252
+
1253
+ # Required. The algorithm to use for creating a managed Cloud KMS key for a for
1254
+ # a simplified experience. All managed keys will be have their ProtectionLevel
1255
+ # as `HSM`.
1256
+ # Corresponds to the JSON property `algorithm`
1257
+ # @return [String]
1258
+ attr_accessor :algorithm
1259
+
1260
+ # Required. The resource name for an existing Cloud KMS CryptoKeyVersion in the
1261
+ # format `projects/*/locations/*/keyRings/*/cryptoKeys/*/cryptoKeyVersions/*`.
1262
+ # This option enables full flexibility in the key's capabilities and properties.
1263
+ # Corresponds to the JSON property `cloudKmsKeyVersion`
1264
+ # @return [String]
1265
+ attr_accessor :cloud_kms_key_version
1266
+
1267
+ def initialize(**args)
1268
+ update!(**args)
1269
+ end
1270
+
1271
+ # Update properties of this object
1272
+ def update!(**args)
1273
+ @algorithm = args[:algorithm] if args.key?(:algorithm)
1274
+ @cloud_kms_key_version = args[:cloud_kms_key_version] if args.key?(:cloud_kms_key_version)
1275
+ end
1276
+ end
1277
+
1278
+ # Response message for CertificateAuthorityService.ListCertificateAuthorities.
1279
+ class ListCertificateAuthoritiesResponse
1280
+ include Google::Apis::Core::Hashable
1281
+
1282
+ # The list of CertificateAuthorities.
1283
+ # Corresponds to the JSON property `certificateAuthorities`
1284
+ # @return [Array<Google::Apis::PrivatecaV1beta1::CertificateAuthority>]
1285
+ attr_accessor :certificate_authorities
1286
+
1287
+ # A token to retrieve next page of results. Pass this value in
1288
+ # ListCertificateAuthoritiesRequest.next_page_token to retrieve the next page of
1289
+ # results.
1290
+ # Corresponds to the JSON property `nextPageToken`
1291
+ # @return [String]
1292
+ attr_accessor :next_page_token
1293
+
1294
+ # A list of locations (e.g. "us-west1") that could not be reached.
1295
+ # Corresponds to the JSON property `unreachable`
1296
+ # @return [Array<String>]
1297
+ attr_accessor :unreachable
1298
+
1299
+ def initialize(**args)
1300
+ update!(**args)
1301
+ end
1302
+
1303
+ # Update properties of this object
1304
+ def update!(**args)
1305
+ @certificate_authorities = args[:certificate_authorities] if args.key?(:certificate_authorities)
1306
+ @next_page_token = args[:next_page_token] if args.key?(:next_page_token)
1307
+ @unreachable = args[:unreachable] if args.key?(:unreachable)
1308
+ end
1309
+ end
1310
+
1311
+ # Response message for CertificateAuthorityService.
1312
+ # ListCertificateRevocationLists.
1313
+ class ListCertificateRevocationListsResponse
1314
+ include Google::Apis::Core::Hashable
1315
+
1316
+ # The list of CertificateRevocationLists.
1317
+ # Corresponds to the JSON property `certificateRevocationLists`
1318
+ # @return [Array<Google::Apis::PrivatecaV1beta1::CertificateRevocationList>]
1319
+ attr_accessor :certificate_revocation_lists
1320
+
1321
+ # A token to retrieve next page of results. Pass this value in
1322
+ # ListCertificateRevocationListsRequest.next_page_token to retrieve the next
1323
+ # page of results.
1324
+ # Corresponds to the JSON property `nextPageToken`
1325
+ # @return [String]
1326
+ attr_accessor :next_page_token
1327
+
1328
+ # A list of locations (e.g. "us-west1") that could not be reached.
1329
+ # Corresponds to the JSON property `unreachable`
1330
+ # @return [Array<String>]
1331
+ attr_accessor :unreachable
1332
+
1333
+ def initialize(**args)
1334
+ update!(**args)
1335
+ end
1336
+
1337
+ # Update properties of this object
1338
+ def update!(**args)
1339
+ @certificate_revocation_lists = args[:certificate_revocation_lists] if args.key?(:certificate_revocation_lists)
1340
+ @next_page_token = args[:next_page_token] if args.key?(:next_page_token)
1341
+ @unreachable = args[:unreachable] if args.key?(:unreachable)
1342
+ end
1343
+ end
1344
+
1345
+ # Response message for CertificateAuthorityService.ListCertificates.
1346
+ class ListCertificatesResponse
1347
+ include Google::Apis::Core::Hashable
1348
+
1349
+ # The list of Certificates.
1350
+ # Corresponds to the JSON property `certificates`
1351
+ # @return [Array<Google::Apis::PrivatecaV1beta1::Certificate>]
1352
+ attr_accessor :certificates
1353
+
1354
+ # A token to retrieve next page of results. Pass this value in
1355
+ # ListCertificatesRequest.next_page_token to retrieve the next page of results.
1356
+ # Corresponds to the JSON property `nextPageToken`
1357
+ # @return [String]
1358
+ attr_accessor :next_page_token
1359
+
1360
+ # A list of locations (e.g. "us-west1") that could not be reached.
1361
+ # Corresponds to the JSON property `unreachable`
1362
+ # @return [Array<String>]
1363
+ attr_accessor :unreachable
1364
+
1365
+ def initialize(**args)
1366
+ update!(**args)
1367
+ end
1368
+
1369
+ # Update properties of this object
1370
+ def update!(**args)
1371
+ @certificates = args[:certificates] if args.key?(:certificates)
1372
+ @next_page_token = args[:next_page_token] if args.key?(:next_page_token)
1373
+ @unreachable = args[:unreachable] if args.key?(:unreachable)
1374
+ end
1375
+ end
1376
+
1377
+ # The response message for Locations.ListLocations.
1378
+ class ListLocationsResponse
1379
+ include Google::Apis::Core::Hashable
1380
+
1381
+ # A list of locations that matches the specified filter in the request.
1382
+ # Corresponds to the JSON property `locations`
1383
+ # @return [Array<Google::Apis::PrivatecaV1beta1::Location>]
1384
+ attr_accessor :locations
1385
+
1386
+ # The standard List next-page token.
1387
+ # Corresponds to the JSON property `nextPageToken`
1388
+ # @return [String]
1389
+ attr_accessor :next_page_token
1390
+
1391
+ def initialize(**args)
1392
+ update!(**args)
1393
+ end
1394
+
1395
+ # Update properties of this object
1396
+ def update!(**args)
1397
+ @locations = args[:locations] if args.key?(:locations)
1398
+ @next_page_token = args[:next_page_token] if args.key?(:next_page_token)
1399
+ end
1400
+ end
1401
+
1402
+ # The response message for Operations.ListOperations.
1403
+ class ListOperationsResponse
1404
+ include Google::Apis::Core::Hashable
1405
+
1406
+ # The standard List next-page token.
1407
+ # Corresponds to the JSON property `nextPageToken`
1408
+ # @return [String]
1409
+ attr_accessor :next_page_token
1410
+
1411
+ # A list of operations that matches the specified filter in the request.
1412
+ # Corresponds to the JSON property `operations`
1413
+ # @return [Array<Google::Apis::PrivatecaV1beta1::Operation>]
1414
+ attr_accessor :operations
1415
+
1416
+ def initialize(**args)
1417
+ update!(**args)
1418
+ end
1419
+
1420
+ # Update properties of this object
1421
+ def update!(**args)
1422
+ @next_page_token = args[:next_page_token] if args.key?(:next_page_token)
1423
+ @operations = args[:operations] if args.key?(:operations)
1424
+ end
1425
+ end
1426
+
1427
+ # Response message for CertificateAuthorityService.ListReusableConfigs.
1428
+ class ListReusableConfigsResponse
1429
+ include Google::Apis::Core::Hashable
1430
+
1431
+ # A token to retrieve next page of results. Pass this value in
1432
+ # ListReusableConfigsRequest.next_page_token to retrieve the next page of
1433
+ # results.
1434
+ # Corresponds to the JSON property `nextPageToken`
1435
+ # @return [String]
1436
+ attr_accessor :next_page_token
1437
+
1438
+ # The list of ReusableConfigs.
1439
+ # Corresponds to the JSON property `reusableConfigs`
1440
+ # @return [Array<Google::Apis::PrivatecaV1beta1::ReusableConfig>]
1441
+ attr_accessor :reusable_configs
1442
+
1443
+ # A list of locations (e.g. "us-west1") that could not be reached.
1444
+ # Corresponds to the JSON property `unreachable`
1445
+ # @return [Array<String>]
1446
+ attr_accessor :unreachable
1447
+
1448
+ def initialize(**args)
1449
+ update!(**args)
1450
+ end
1451
+
1452
+ # Update properties of this object
1453
+ def update!(**args)
1454
+ @next_page_token = args[:next_page_token] if args.key?(:next_page_token)
1455
+ @reusable_configs = args[:reusable_configs] if args.key?(:reusable_configs)
1456
+ @unreachable = args[:unreachable] if args.key?(:unreachable)
1457
+ end
1458
+ end
1459
+
1460
+ # A resource that represents Google Cloud Platform location.
1461
+ class Location
1462
+ include Google::Apis::Core::Hashable
1463
+
1464
+ # The friendly name for this location, typically a nearby city name. For example,
1465
+ # "Tokyo".
1466
+ # Corresponds to the JSON property `displayName`
1467
+ # @return [String]
1468
+ attr_accessor :display_name
1469
+
1470
+ # Cross-service attributes for the location. For example `"cloud.googleapis.com/
1471
+ # region": "us-east1"`
1472
+ # Corresponds to the JSON property `labels`
1473
+ # @return [Hash<String,String>]
1474
+ attr_accessor :labels
1475
+
1476
+ # The canonical id for this location. For example: `"us-east1"`.
1477
+ # Corresponds to the JSON property `locationId`
1478
+ # @return [String]
1479
+ attr_accessor :location_id
1480
+
1481
+ # Service-specific metadata. For example the available capacity at the given
1482
+ # location.
1483
+ # Corresponds to the JSON property `metadata`
1484
+ # @return [Hash<String,Object>]
1485
+ attr_accessor :metadata
1486
+
1487
+ # Resource name for the location, which may vary between implementations. For
1488
+ # example: `"projects/example-project/locations/us-east1"`
1489
+ # Corresponds to the JSON property `name`
1490
+ # @return [String]
1491
+ attr_accessor :name
1492
+
1493
+ def initialize(**args)
1494
+ update!(**args)
1495
+ end
1496
+
1497
+ # Update properties of this object
1498
+ def update!(**args)
1499
+ @display_name = args[:display_name] if args.key?(:display_name)
1500
+ @labels = args[:labels] if args.key?(:labels)
1501
+ @location_id = args[:location_id] if args.key?(:location_id)
1502
+ @metadata = args[:metadata] if args.key?(:metadata)
1503
+ @name = args[:name] if args.key?(:name)
1504
+ end
1505
+ end
1506
+
1507
+ # An ObjectId specifies an object identifier (OID). These provide context and
1508
+ # describe types in ASN.1 messages.
1509
+ class ObjectIdProp
1510
+ include Google::Apis::Core::Hashable
1511
+
1512
+ # Required. The parts of an OID path. The most significant parts of the path
1513
+ # come first.
1514
+ # Corresponds to the JSON property `objectIdPath`
1515
+ # @return [Array<Fixnum>]
1516
+ attr_accessor :object_id_path
1517
+
1518
+ def initialize(**args)
1519
+ update!(**args)
1520
+ end
1521
+
1522
+ # Update properties of this object
1523
+ def update!(**args)
1524
+ @object_id_path = args[:object_id_path] if args.key?(:object_id_path)
1525
+ end
1526
+ end
1527
+
1528
+ # This resource represents a long-running operation that is the result of a
1529
+ # network API call.
1530
+ class Operation
1531
+ include Google::Apis::Core::Hashable
1532
+
1533
+ # If the value is `false`, it means the operation is still in progress. If `true`
1534
+ # , the operation is completed, and either `error` or `response` is available.
1535
+ # Corresponds to the JSON property `done`
1536
+ # @return [Boolean]
1537
+ attr_accessor :done
1538
+ alias_method :done?, :done
1539
+
1540
+ # The `Status` type defines a logical error model that is suitable for different
1541
+ # programming environments, including REST APIs and RPC APIs. It is used by [
1542
+ # gRPC](https://github.com/grpc). Each `Status` message contains three pieces of
1543
+ # data: error code, error message, and error details. You can find out more
1544
+ # about this error model and how to work with it in the [API Design Guide](https:
1545
+ # //cloud.google.com/apis/design/errors).
1546
+ # Corresponds to the JSON property `error`
1547
+ # @return [Google::Apis::PrivatecaV1beta1::Status]
1548
+ attr_accessor :error
1549
+
1550
+ # Service-specific metadata associated with the operation. It typically contains
1551
+ # progress information and common metadata such as create time. Some services
1552
+ # might not provide such metadata. Any method that returns a long-running
1553
+ # operation should document the metadata type, if any.
1554
+ # Corresponds to the JSON property `metadata`
1555
+ # @return [Hash<String,Object>]
1556
+ attr_accessor :metadata
1557
+
1558
+ # The server-assigned name, which is only unique within the same service that
1559
+ # originally returns it. If you use the default HTTP mapping, the `name` should
1560
+ # be a resource name ending with `operations/`unique_id``.
1561
+ # Corresponds to the JSON property `name`
1562
+ # @return [String]
1563
+ attr_accessor :name
1564
+
1565
+ # The normal response of the operation in case of success. If the original
1566
+ # method returns no data on success, such as `Delete`, the response is `google.
1567
+ # protobuf.Empty`. If the original method is standard `Get`/`Create`/`Update`,
1568
+ # the response should be the resource. For other methods, the response should
1569
+ # have the type `XxxResponse`, where `Xxx` is the original method name. For
1570
+ # example, if the original method name is `TakeSnapshot()`, the inferred
1571
+ # response type is `TakeSnapshotResponse`.
1572
+ # Corresponds to the JSON property `response`
1573
+ # @return [Hash<String,Object>]
1574
+ attr_accessor :response
1575
+
1576
+ def initialize(**args)
1577
+ update!(**args)
1578
+ end
1579
+
1580
+ # Update properties of this object
1581
+ def update!(**args)
1582
+ @done = args[:done] if args.key?(:done)
1583
+ @error = args[:error] if args.key?(:error)
1584
+ @metadata = args[:metadata] if args.key?(:metadata)
1585
+ @name = args[:name] if args.key?(:name)
1586
+ @response = args[:response] if args.key?(:response)
1587
+ end
1588
+ end
1589
+
1590
+ # Represents the metadata of the long-running operation.
1591
+ class OperationMetadata
1592
+ include Google::Apis::Core::Hashable
1593
+
1594
+ # Output only. API version used to start the operation.
1595
+ # Corresponds to the JSON property `apiVersion`
1596
+ # @return [String]
1597
+ attr_accessor :api_version
1598
+
1599
+ # Output only. The time the operation was created.
1600
+ # Corresponds to the JSON property `createTime`
1601
+ # @return [String]
1602
+ attr_accessor :create_time
1603
+
1604
+ # Output only. The time the operation finished running.
1605
+ # Corresponds to the JSON property `endTime`
1606
+ # @return [String]
1607
+ attr_accessor :end_time
1608
+
1609
+ # Output only. Identifies whether the user has requested cancellation of the
1610
+ # operation. Operations that have successfully been cancelled have Operation.
1611
+ # error value with a google.rpc.Status.code of 1, corresponding to `Code.
1612
+ # CANCELLED`.
1613
+ # Corresponds to the JSON property `requestedCancellation`
1614
+ # @return [Boolean]
1615
+ attr_accessor :requested_cancellation
1616
+ alias_method :requested_cancellation?, :requested_cancellation
1617
+
1618
+ # Output only. Human-readable status of the operation, if any.
1619
+ # Corresponds to the JSON property `statusMessage`
1620
+ # @return [String]
1621
+ attr_accessor :status_message
1622
+
1623
+ # Output only. Server-defined resource path for the target of the operation.
1624
+ # Corresponds to the JSON property `target`
1625
+ # @return [String]
1626
+ attr_accessor :target
1627
+
1628
+ # Output only. Name of the verb executed by the operation.
1629
+ # Corresponds to the JSON property `verb`
1630
+ # @return [String]
1631
+ attr_accessor :verb
1632
+
1633
+ def initialize(**args)
1634
+ update!(**args)
1635
+ end
1636
+
1637
+ # Update properties of this object
1638
+ def update!(**args)
1639
+ @api_version = args[:api_version] if args.key?(:api_version)
1640
+ @create_time = args[:create_time] if args.key?(:create_time)
1641
+ @end_time = args[:end_time] if args.key?(:end_time)
1642
+ @requested_cancellation = args[:requested_cancellation] if args.key?(:requested_cancellation)
1643
+ @status_message = args[:status_message] if args.key?(:status_message)
1644
+ @target = args[:target] if args.key?(:target)
1645
+ @verb = args[:verb] if args.key?(:verb)
1646
+ end
1647
+ end
1648
+
1649
+ # An Identity and Access Management (IAM) policy, which specifies access
1650
+ # controls for Google Cloud resources. A `Policy` is a collection of `bindings`.
1651
+ # A `binding` binds one or more `members` to a single `role`. Members can be
1652
+ # user accounts, service accounts, Google groups, and domains (such as G Suite).
1653
+ # A `role` is a named list of permissions; each `role` can be an IAM predefined
1654
+ # role or a user-created custom role. For some types of Google Cloud resources,
1655
+ # a `binding` can also specify a `condition`, which is a logical expression that
1656
+ # allows access to a resource only if the expression evaluates to `true`. A
1657
+ # condition can add constraints based on attributes of the request, the resource,
1658
+ # or both. To learn which resources support conditions in their IAM policies,
1659
+ # see the [IAM documentation](https://cloud.google.com/iam/help/conditions/
1660
+ # resource-policies). **JSON example:** ` "bindings": [ ` "role": "roles/
1661
+ # resourcemanager.organizationAdmin", "members": [ "user:mike@example.com", "
1662
+ # group:admins@example.com", "domain:google.com", "serviceAccount:my-project-id@
1663
+ # appspot.gserviceaccount.com" ] `, ` "role": "roles/resourcemanager.
1664
+ # organizationViewer", "members": [ "user:eve@example.com" ], "condition": ` "
1665
+ # title": "expirable access", "description": "Does not grant access after Sep
1666
+ # 2020", "expression": "request.time < timestamp('2020-10-01T00:00:00.000Z')", `
1667
+ # ` ], "etag": "BwWWja0YfJA=", "version": 3 ` **YAML example:** bindings: -
1668
+ # members: - user:mike@example.com - group:admins@example.com - domain:google.
1669
+ # com - serviceAccount:my-project-id@appspot.gserviceaccount.com role: roles/
1670
+ # resourcemanager.organizationAdmin - members: - user:eve@example.com role:
1671
+ # roles/resourcemanager.organizationViewer condition: title: expirable access
1672
+ # description: Does not grant access after Sep 2020 expression: request.time <
1673
+ # timestamp('2020-10-01T00:00:00.000Z') - etag: BwWWja0YfJA= - version: 3 For a
1674
+ # description of IAM and its features, see the [IAM documentation](https://cloud.
1675
+ # google.com/iam/docs/).
1676
+ class Policy
1677
+ include Google::Apis::Core::Hashable
1678
+
1679
+ # Specifies cloud audit logging configuration for this policy.
1680
+ # Corresponds to the JSON property `auditConfigs`
1681
+ # @return [Array<Google::Apis::PrivatecaV1beta1::AuditConfig>]
1682
+ attr_accessor :audit_configs
1683
+
1684
+ # Associates a list of `members` to a `role`. Optionally, may specify a `
1685
+ # condition` that determines how and when the `bindings` are applied. Each of
1686
+ # the `bindings` must contain at least one member.
1687
+ # Corresponds to the JSON property `bindings`
1688
+ # @return [Array<Google::Apis::PrivatecaV1beta1::Binding>]
1689
+ attr_accessor :bindings
1690
+
1691
+ # `etag` is used for optimistic concurrency control as a way to help prevent
1692
+ # simultaneous updates of a policy from overwriting each other. It is strongly
1693
+ # suggested that systems make use of the `etag` in the read-modify-write cycle
1694
+ # to perform policy updates in order to avoid race conditions: An `etag` is
1695
+ # returned in the response to `getIamPolicy`, and systems are expected to put
1696
+ # that etag in the request to `setIamPolicy` to ensure that their change will be
1697
+ # applied to the same version of the policy. **Important:** If you use IAM
1698
+ # Conditions, you must include the `etag` field whenever you call `setIamPolicy`.
1699
+ # If you omit this field, then IAM allows you to overwrite a version `3` policy
1700
+ # with a version `1` policy, and all of the conditions in the version `3` policy
1701
+ # are lost.
1702
+ # Corresponds to the JSON property `etag`
1703
+ # NOTE: Values are automatically base64 encoded/decoded in the client library.
1704
+ # @return [String]
1705
+ attr_accessor :etag
1706
+
1707
+ # Specifies the format of the policy. Valid values are `0`, `1`, and `3`.
1708
+ # Requests that specify an invalid value are rejected. Any operation that
1709
+ # affects conditional role bindings must specify version `3`. This requirement
1710
+ # applies to the following operations: * Getting a policy that includes a
1711
+ # conditional role binding * Adding a conditional role binding to a policy *
1712
+ # Changing a conditional role binding in a policy * Removing any role binding,
1713
+ # with or without a condition, from a policy that includes conditions **
1714
+ # Important:** If you use IAM Conditions, you must include the `etag` field
1715
+ # whenever you call `setIamPolicy`. If you omit this field, then IAM allows you
1716
+ # to overwrite a version `3` policy with a version `1` policy, and all of the
1717
+ # conditions in the version `3` policy are lost. If a policy does not include
1718
+ # any conditions, operations on that policy may specify any valid version or
1719
+ # leave the field unset. To learn which resources support conditions in their
1720
+ # IAM policies, see the [IAM documentation](https://cloud.google.com/iam/help/
1721
+ # conditions/resource-policies).
1722
+ # Corresponds to the JSON property `version`
1723
+ # @return [Fixnum]
1724
+ attr_accessor :version
1725
+
1726
+ def initialize(**args)
1727
+ update!(**args)
1728
+ end
1729
+
1730
+ # Update properties of this object
1731
+ def update!(**args)
1732
+ @audit_configs = args[:audit_configs] if args.key?(:audit_configs)
1733
+ @bindings = args[:bindings] if args.key?(:bindings)
1734
+ @etag = args[:etag] if args.key?(:etag)
1735
+ @version = args[:version] if args.key?(:version)
1736
+ end
1737
+ end
1738
+
1739
+ # A PublicKey describes a public key.
1740
+ class PublicKey
1741
+ include Google::Apis::Core::Hashable
1742
+
1743
+ # Required. A public key. When this is specified in a request, the padding and
1744
+ # encoding can be any of the options described by the respective 'KeyType' value.
1745
+ # When this is generated by the service, it will always be an RFC 5280 [
1746
+ # SubjectPublicKeyInfo](https://tools.ietf.org/html/rfc5280#section-4.1)
1747
+ # structure containing an algorithm identifier and a key.
1748
+ # Corresponds to the JSON property `key`
1749
+ # NOTE: Values are automatically base64 encoded/decoded in the client library.
1750
+ # @return [String]
1751
+ attr_accessor :key
1752
+
1753
+ # Optional. The type of public key. If specified, it must match the public key
1754
+ # used for the`key` field.
1755
+ # Corresponds to the JSON property `type`
1756
+ # @return [String]
1757
+ attr_accessor :type
1758
+
1759
+ def initialize(**args)
1760
+ update!(**args)
1761
+ end
1762
+
1763
+ # Update properties of this object
1764
+ def update!(**args)
1765
+ @key = args[:key] if args.key?(:key)
1766
+ @type = args[:type] if args.key?(:type)
1767
+ end
1768
+ end
1769
+
1770
+ # Request message for CertificateAuthorityService.RestoreCertificateAuthority.
1771
+ class RestoreCertificateAuthorityRequest
1772
+ include Google::Apis::Core::Hashable
1773
+
1774
+ # Optional. An ID to identify requests. Specify a unique request ID so that if
1775
+ # you must retry your request, the server will know to ignore the request if it
1776
+ # has already been completed. The server will guarantee that for at least 60
1777
+ # minutes since the first request. For example, consider a situation where you
1778
+ # make an initial request and t he request times out. If you make the request
1779
+ # again with the same request ID, the server can check if original operation
1780
+ # with the same request ID was received, and if so, will ignore the second
1781
+ # request. This prevents clients from accidentally creating duplicate
1782
+ # commitments. The request ID must be a valid UUID with the exception that zero
1783
+ # UUID is not supported (00000000-0000-0000-0000-000000000000).
1784
+ # Corresponds to the JSON property `requestId`
1785
+ # @return [String]
1786
+ attr_accessor :request_id
1787
+
1788
+ def initialize(**args)
1789
+ update!(**args)
1790
+ end
1791
+
1792
+ # Update properties of this object
1793
+ def update!(**args)
1794
+ @request_id = args[:request_id] if args.key?(:request_id)
1795
+ end
1796
+ end
1797
+
1798
+ # A ReusableConfig refers to a managed ReusableConfigValues. Those, in turn, are
1799
+ # used to describe certain fields of an X.509 certificate, such as the key usage
1800
+ # fields, fields specific to CA certificates, certificate policy extensions and
1801
+ # custom extensions.
1802
+ class ReusableConfig
1803
+ include Google::Apis::Core::Hashable
1804
+
1805
+ # Output only. The time at which this ReusableConfig was created.
1806
+ # Corresponds to the JSON property `createTime`
1807
+ # @return [String]
1808
+ attr_accessor :create_time
1809
+
1810
+ # Optional. A human-readable description of scenarios these ReusableConfigValues
1811
+ # may be compatible with.
1812
+ # Corresponds to the JSON property `description`
1813
+ # @return [String]
1814
+ attr_accessor :description
1815
+
1816
+ # Optional. Labels with user-defined metadata.
1817
+ # Corresponds to the JSON property `labels`
1818
+ # @return [Hash<String,String>]
1819
+ attr_accessor :labels
1820
+
1821
+ # Output only. The resource path for this ReusableConfig in the format `projects/
1822
+ # */locations/*/reusableConfigs/*`.
1823
+ # Corresponds to the JSON property `name`
1824
+ # @return [String]
1825
+ attr_accessor :name
1826
+
1827
+ # Output only. The time at which this ReusableConfig was updated.
1828
+ # Corresponds to the JSON property `updateTime`
1829
+ # @return [String]
1830
+ attr_accessor :update_time
1831
+
1832
+ # A ReusableConfigValues is used to describe certain fields of an X.509
1833
+ # certificate, such as the key usage fields, fields specific to CA certificates,
1834
+ # certificate policy extensions and custom extensions.
1835
+ # Corresponds to the JSON property `values`
1836
+ # @return [Google::Apis::PrivatecaV1beta1::ReusableConfigValues]
1837
+ attr_accessor :values
1838
+
1839
+ def initialize(**args)
1840
+ update!(**args)
1841
+ end
1842
+
1843
+ # Update properties of this object
1844
+ def update!(**args)
1845
+ @create_time = args[:create_time] if args.key?(:create_time)
1846
+ @description = args[:description] if args.key?(:description)
1847
+ @labels = args[:labels] if args.key?(:labels)
1848
+ @name = args[:name] if args.key?(:name)
1849
+ @update_time = args[:update_time] if args.key?(:update_time)
1850
+ @values = args[:values] if args.key?(:values)
1851
+ end
1852
+ end
1853
+
1854
+ # A ReusableConfigValues is used to describe certain fields of an X.509
1855
+ # certificate, such as the key usage fields, fields specific to CA certificates,
1856
+ # certificate policy extensions and custom extensions.
1857
+ class ReusableConfigValues
1858
+ include Google::Apis::Core::Hashable
1859
+
1860
+ # Optional. Describes custom X.509 extensions.
1861
+ # Corresponds to the JSON property `additionalExtensions`
1862
+ # @return [Array<Google::Apis::PrivatecaV1beta1::X509Extension>]
1863
+ attr_accessor :additional_extensions
1864
+
1865
+ # Optional. Describes Online Certificate Status Protocol (OCSP) endpoint
1866
+ # addresses that appear in the "Authority Information Access" extension in the
1867
+ # certificate.
1868
+ # Corresponds to the JSON property `aiaOcspServers`
1869
+ # @return [Array<String>]
1870
+ attr_accessor :aia_ocsp_servers
1871
+
1872
+ # Describes values that are relevant in a CA certificate.
1873
+ # Corresponds to the JSON property `caOptions`
1874
+ # @return [Google::Apis::PrivatecaV1beta1::CaOptions]
1875
+ attr_accessor :ca_options
1876
+
1877
+ # A KeyUsage describes key usage values that may appear in an X.509 certificate.
1878
+ # Corresponds to the JSON property `keyUsage`
1879
+ # @return [Google::Apis::PrivatecaV1beta1::KeyUsage]
1880
+ attr_accessor :key_usage
1881
+
1882
+ # Optional. Describes the X.509 certificate policy object identifiers, per https:
1883
+ # //tools.ietf.org/html/rfc5280#section-4.2.1.4.
1884
+ # Corresponds to the JSON property `policyIds`
1885
+ # @return [Array<Google::Apis::PrivatecaV1beta1::ObjectIdProp>]
1886
+ attr_accessor :policy_ids
1887
+
1888
+ def initialize(**args)
1889
+ update!(**args)
1890
+ end
1891
+
1892
+ # Update properties of this object
1893
+ def update!(**args)
1894
+ @additional_extensions = args[:additional_extensions] if args.key?(:additional_extensions)
1895
+ @aia_ocsp_servers = args[:aia_ocsp_servers] if args.key?(:aia_ocsp_servers)
1896
+ @ca_options = args[:ca_options] if args.key?(:ca_options)
1897
+ @key_usage = args[:key_usage] if args.key?(:key_usage)
1898
+ @policy_ids = args[:policy_ids] if args.key?(:policy_ids)
1899
+ end
1900
+ end
1901
+
1902
+ # A ReusableConfigWrapper describes values that may assist in creating an X.509
1903
+ # certificate, or a reference to a pre-defined set of values.
1904
+ class ReusableConfigWrapper
1905
+ include Google::Apis::Core::Hashable
1906
+
1907
+ # Required. A resource path to a ReusableConfig in the format `projects/*/
1908
+ # locations/*/reusableConfigs/*`.
1909
+ # Corresponds to the JSON property `reusableConfig`
1910
+ # @return [String]
1911
+ attr_accessor :reusable_config
1912
+
1913
+ # A ReusableConfigValues is used to describe certain fields of an X.509
1914
+ # certificate, such as the key usage fields, fields specific to CA certificates,
1915
+ # certificate policy extensions and custom extensions.
1916
+ # Corresponds to the JSON property `reusableConfigValues`
1917
+ # @return [Google::Apis::PrivatecaV1beta1::ReusableConfigValues]
1918
+ attr_accessor :reusable_config_values
1919
+
1920
+ def initialize(**args)
1921
+ update!(**args)
1922
+ end
1923
+
1924
+ # Update properties of this object
1925
+ def update!(**args)
1926
+ @reusable_config = args[:reusable_config] if args.key?(:reusable_config)
1927
+ @reusable_config_values = args[:reusable_config_values] if args.key?(:reusable_config_values)
1928
+ end
1929
+ end
1930
+
1931
+ # Describes fields that are relavent to the revocation of a Certificate.
1932
+ class RevocationDetails
1933
+ include Google::Apis::Core::Hashable
1934
+
1935
+ # Indicates why a Certificate was revoked.
1936
+ # Corresponds to the JSON property `revocationState`
1937
+ # @return [String]
1938
+ attr_accessor :revocation_state
1939
+
1940
+ # The time at which this Certificate was revoked.
1941
+ # Corresponds to the JSON property `revocationTime`
1942
+ # @return [String]
1943
+ attr_accessor :revocation_time
1944
+
1945
+ def initialize(**args)
1946
+ update!(**args)
1947
+ end
1948
+
1949
+ # Update properties of this object
1950
+ def update!(**args)
1951
+ @revocation_state = args[:revocation_state] if args.key?(:revocation_state)
1952
+ @revocation_time = args[:revocation_time] if args.key?(:revocation_time)
1953
+ end
1954
+ end
1955
+
1956
+ # Request message for CertificateAuthorityService.RevokeCertificate.
1957
+ class RevokeCertificateRequest
1958
+ include Google::Apis::Core::Hashable
1959
+
1960
+ # Required. The RevocationReason for revoking this certificate.
1961
+ # Corresponds to the JSON property `reason`
1962
+ # @return [String]
1963
+ attr_accessor :reason
1964
+
1965
+ # Optional. An ID to identify requests. Specify a unique request ID so that if
1966
+ # you must retry your request, the server will know to ignore the request if it
1967
+ # has already been completed. The server will guarantee that for at least 60
1968
+ # minutes since the first request. For example, consider a situation where you
1969
+ # make an initial request and t he request times out. If you make the request
1970
+ # again with the same request ID, the server can check if original operation
1971
+ # with the same request ID was received, and if so, will ignore the second
1972
+ # request. This prevents clients from accidentally creating duplicate
1973
+ # commitments. The request ID must be a valid UUID with the exception that zero
1974
+ # UUID is not supported (00000000-0000-0000-0000-000000000000).
1975
+ # Corresponds to the JSON property `requestId`
1976
+ # @return [String]
1977
+ attr_accessor :request_id
1978
+
1979
+ def initialize(**args)
1980
+ update!(**args)
1981
+ end
1982
+
1983
+ # Update properties of this object
1984
+ def update!(**args)
1985
+ @reason = args[:reason] if args.key?(:reason)
1986
+ @request_id = args[:request_id] if args.key?(:request_id)
1987
+ end
1988
+ end
1989
+
1990
+ # Describes a revoked Certificate.
1991
+ class RevokedCertificate
1992
+ include Google::Apis::Core::Hashable
1993
+
1994
+ # The resource path for the Certificate in the format `projects/*/locations/*/
1995
+ # certificateAuthorities/*/certificates/*`.
1996
+ # Corresponds to the JSON property `certificate`
1997
+ # @return [String]
1998
+ attr_accessor :certificate
1999
+
2000
+ # The serial number of the Certificate.
2001
+ # Corresponds to the JSON property `hexSerialNumber`
2002
+ # @return [String]
2003
+ attr_accessor :hex_serial_number
2004
+
2005
+ # The reason the Certificate was revoked.
2006
+ # Corresponds to the JSON property `revocationReason`
2007
+ # @return [String]
2008
+ attr_accessor :revocation_reason
2009
+
2010
+ def initialize(**args)
2011
+ update!(**args)
2012
+ end
2013
+
2014
+ # Update properties of this object
2015
+ def update!(**args)
2016
+ @certificate = args[:certificate] if args.key?(:certificate)
2017
+ @hex_serial_number = args[:hex_serial_number] if args.key?(:hex_serial_number)
2018
+ @revocation_reason = args[:revocation_reason] if args.key?(:revocation_reason)
2019
+ end
2020
+ end
2021
+
2022
+ # Request message for CertificateAuthorityService.
2023
+ # ScheduleDeleteCertificateAuthority.
2024
+ class ScheduleDeleteCertificateAuthorityRequest
2025
+ include Google::Apis::Core::Hashable
2026
+
2027
+ # Optional. An ID to identify requests. Specify a unique request ID so that if
2028
+ # you must retry your request, the server will know to ignore the request if it
2029
+ # has already been completed. The server will guarantee that for at least 60
2030
+ # minutes since the first request. For example, consider a situation where you
2031
+ # make an initial request and t he request times out. If you make the request
2032
+ # again with the same request ID, the server can check if original operation
2033
+ # with the same request ID was received, and if so, will ignore the second
2034
+ # request. This prevents clients from accidentally creating duplicate
2035
+ # commitments. The request ID must be a valid UUID with the exception that zero
2036
+ # UUID is not supported (00000000-0000-0000-0000-000000000000).
2037
+ # Corresponds to the JSON property `requestId`
2038
+ # @return [String]
2039
+ attr_accessor :request_id
2040
+
2041
+ def initialize(**args)
2042
+ update!(**args)
2043
+ end
2044
+
2045
+ # Update properties of this object
2046
+ def update!(**args)
2047
+ @request_id = args[:request_id] if args.key?(:request_id)
2048
+ end
2049
+ end
2050
+
2051
+ # Request message for `SetIamPolicy` method.
2052
+ class SetIamPolicyRequest
2053
+ include Google::Apis::Core::Hashable
2054
+
2055
+ # An Identity and Access Management (IAM) policy, which specifies access
2056
+ # controls for Google Cloud resources. A `Policy` is a collection of `bindings`.
2057
+ # A `binding` binds one or more `members` to a single `role`. Members can be
2058
+ # user accounts, service accounts, Google groups, and domains (such as G Suite).
2059
+ # A `role` is a named list of permissions; each `role` can be an IAM predefined
2060
+ # role or a user-created custom role. For some types of Google Cloud resources,
2061
+ # a `binding` can also specify a `condition`, which is a logical expression that
2062
+ # allows access to a resource only if the expression evaluates to `true`. A
2063
+ # condition can add constraints based on attributes of the request, the resource,
2064
+ # or both. To learn which resources support conditions in their IAM policies,
2065
+ # see the [IAM documentation](https://cloud.google.com/iam/help/conditions/
2066
+ # resource-policies). **JSON example:** ` "bindings": [ ` "role": "roles/
2067
+ # resourcemanager.organizationAdmin", "members": [ "user:mike@example.com", "
2068
+ # group:admins@example.com", "domain:google.com", "serviceAccount:my-project-id@
2069
+ # appspot.gserviceaccount.com" ] `, ` "role": "roles/resourcemanager.
2070
+ # organizationViewer", "members": [ "user:eve@example.com" ], "condition": ` "
2071
+ # title": "expirable access", "description": "Does not grant access after Sep
2072
+ # 2020", "expression": "request.time < timestamp('2020-10-01T00:00:00.000Z')", `
2073
+ # ` ], "etag": "BwWWja0YfJA=", "version": 3 ` **YAML example:** bindings: -
2074
+ # members: - user:mike@example.com - group:admins@example.com - domain:google.
2075
+ # com - serviceAccount:my-project-id@appspot.gserviceaccount.com role: roles/
2076
+ # resourcemanager.organizationAdmin - members: - user:eve@example.com role:
2077
+ # roles/resourcemanager.organizationViewer condition: title: expirable access
2078
+ # description: Does not grant access after Sep 2020 expression: request.time <
2079
+ # timestamp('2020-10-01T00:00:00.000Z') - etag: BwWWja0YfJA= - version: 3 For a
2080
+ # description of IAM and its features, see the [IAM documentation](https://cloud.
2081
+ # google.com/iam/docs/).
2082
+ # Corresponds to the JSON property `policy`
2083
+ # @return [Google::Apis::PrivatecaV1beta1::Policy]
2084
+ attr_accessor :policy
2085
+
2086
+ # OPTIONAL: A FieldMask specifying which fields of the policy to modify. Only
2087
+ # the fields in the mask will be modified. If no mask is provided, the following
2088
+ # default mask is used: `paths: "bindings, etag"`
2089
+ # Corresponds to the JSON property `updateMask`
2090
+ # @return [String]
2091
+ attr_accessor :update_mask
2092
+
2093
+ def initialize(**args)
2094
+ update!(**args)
2095
+ end
2096
+
2097
+ # Update properties of this object
2098
+ def update!(**args)
2099
+ @policy = args[:policy] if args.key?(:policy)
2100
+ @update_mask = args[:update_mask] if args.key?(:update_mask)
2101
+ end
2102
+ end
2103
+
2104
+ # The `Status` type defines a logical error model that is suitable for different
2105
+ # programming environments, including REST APIs and RPC APIs. It is used by [
2106
+ # gRPC](https://github.com/grpc). Each `Status` message contains three pieces of
2107
+ # data: error code, error message, and error details. You can find out more
2108
+ # about this error model and how to work with it in the [API Design Guide](https:
2109
+ # //cloud.google.com/apis/design/errors).
2110
+ class Status
2111
+ include Google::Apis::Core::Hashable
2112
+
2113
+ # The status code, which should be an enum value of google.rpc.Code.
2114
+ # Corresponds to the JSON property `code`
2115
+ # @return [Fixnum]
2116
+ attr_accessor :code
2117
+
2118
+ # A list of messages that carry the error details. There is a common set of
2119
+ # message types for APIs to use.
2120
+ # Corresponds to the JSON property `details`
2121
+ # @return [Array<Hash<String,Object>>]
2122
+ attr_accessor :details
2123
+
2124
+ # A developer-facing error message, which should be in English. Any user-facing
2125
+ # error message should be localized and sent in the google.rpc.Status.details
2126
+ # field, or localized by the client.
2127
+ # Corresponds to the JSON property `message`
2128
+ # @return [String]
2129
+ attr_accessor :message
2130
+
2131
+ def initialize(**args)
2132
+ update!(**args)
2133
+ end
2134
+
2135
+ # Update properties of this object
2136
+ def update!(**args)
2137
+ @code = args[:code] if args.key?(:code)
2138
+ @details = args[:details] if args.key?(:details)
2139
+ @message = args[:message] if args.key?(:message)
2140
+ end
2141
+ end
2142
+
2143
+ # Subject describes parts of a distinguished name that, in turn, describes the
2144
+ # subject of the certificate.
2145
+ class Subject
2146
+ include Google::Apis::Core::Hashable
2147
+
2148
+ # The country code of the subject.
2149
+ # Corresponds to the JSON property `countryCode`
2150
+ # @return [String]
2151
+ attr_accessor :country_code
2152
+
2153
+ # The locality or city of the subject.
2154
+ # Corresponds to the JSON property `locality`
2155
+ # @return [String]
2156
+ attr_accessor :locality
2157
+
2158
+ # The organization of the subject.
2159
+ # Corresponds to the JSON property `organization`
2160
+ # @return [String]
2161
+ attr_accessor :organization
2162
+
2163
+ # The organizational_unit of the subject.
2164
+ # Corresponds to the JSON property `organizationalUnit`
2165
+ # @return [String]
2166
+ attr_accessor :organizational_unit
2167
+
2168
+ # The postal code of the subject.
2169
+ # Corresponds to the JSON property `postalCode`
2170
+ # @return [String]
2171
+ attr_accessor :postal_code
2172
+
2173
+ # The province, territory, or regional state of the subject.
2174
+ # Corresponds to the JSON property `province`
2175
+ # @return [String]
2176
+ attr_accessor :province
2177
+
2178
+ # The street address of the subject.
2179
+ # Corresponds to the JSON property `streetAddress`
2180
+ # @return [String]
2181
+ attr_accessor :street_address
2182
+
2183
+ def initialize(**args)
2184
+ update!(**args)
2185
+ end
2186
+
2187
+ # Update properties of this object
2188
+ def update!(**args)
2189
+ @country_code = args[:country_code] if args.key?(:country_code)
2190
+ @locality = args[:locality] if args.key?(:locality)
2191
+ @organization = args[:organization] if args.key?(:organization)
2192
+ @organizational_unit = args[:organizational_unit] if args.key?(:organizational_unit)
2193
+ @postal_code = args[:postal_code] if args.key?(:postal_code)
2194
+ @province = args[:province] if args.key?(:province)
2195
+ @street_address = args[:street_address] if args.key?(:street_address)
2196
+ end
2197
+ end
2198
+
2199
+ # SubjectAltNames corresponds to a more modern way of listing what the asserted
2200
+ # identity is in a certificate (i.e., compared to the "common name" in the
2201
+ # distinguished name).
2202
+ class SubjectAltNames
2203
+ include Google::Apis::Core::Hashable
2204
+
2205
+ # Contains additional subject alternative name values.
2206
+ # Corresponds to the JSON property `customSans`
2207
+ # @return [Array<Google::Apis::PrivatecaV1beta1::X509Extension>]
2208
+ attr_accessor :custom_sans
2209
+
2210
+ # Contains only valid, fully-qualified host names.
2211
+ # Corresponds to the JSON property `dnsNames`
2212
+ # @return [Array<String>]
2213
+ attr_accessor :dns_names
2214
+
2215
+ # Contains only valid RFC 2822 E-mail addresses.
2216
+ # Corresponds to the JSON property `emailAddresses`
2217
+ # @return [Array<String>]
2218
+ attr_accessor :email_addresses
2219
+
2220
+ # Contains only valid 32-bit IPv4 addresses or RFC 4291 IPv6 addresses.
2221
+ # Corresponds to the JSON property `ipAddresses`
2222
+ # @return [Array<String>]
2223
+ attr_accessor :ip_addresses
2224
+
2225
+ # Contains only valid RFC 3986 URIs.
2226
+ # Corresponds to the JSON property `uris`
2227
+ # @return [Array<String>]
2228
+ attr_accessor :uris
2229
+
2230
+ def initialize(**args)
2231
+ update!(**args)
2232
+ end
2233
+
2234
+ # Update properties of this object
2235
+ def update!(**args)
2236
+ @custom_sans = args[:custom_sans] if args.key?(:custom_sans)
2237
+ @dns_names = args[:dns_names] if args.key?(:dns_names)
2238
+ @email_addresses = args[:email_addresses] if args.key?(:email_addresses)
2239
+ @ip_addresses = args[:ip_addresses] if args.key?(:ip_addresses)
2240
+ @uris = args[:uris] if args.key?(:uris)
2241
+ end
2242
+ end
2243
+
2244
+ # These values are used to create the distinguished name and subject alternative
2245
+ # name fields in an X.509 certificate.
2246
+ class SubjectConfig
2247
+ include Google::Apis::Core::Hashable
2248
+
2249
+ # Optional. The "common name" of the distinguished name.
2250
+ # Corresponds to the JSON property `commonName`
2251
+ # @return [String]
2252
+ attr_accessor :common_name
2253
+
2254
+ # Subject describes parts of a distinguished name that, in turn, describes the
2255
+ # subject of the certificate.
2256
+ # Corresponds to the JSON property `subject`
2257
+ # @return [Google::Apis::PrivatecaV1beta1::Subject]
2258
+ attr_accessor :subject
2259
+
2260
+ # SubjectAltNames corresponds to a more modern way of listing what the asserted
2261
+ # identity is in a certificate (i.e., compared to the "common name" in the
2262
+ # distinguished name).
2263
+ # Corresponds to the JSON property `subjectAltName`
2264
+ # @return [Google::Apis::PrivatecaV1beta1::SubjectAltNames]
2265
+ attr_accessor :subject_alt_name
2266
+
2267
+ def initialize(**args)
2268
+ update!(**args)
2269
+ end
2270
+
2271
+ # Update properties of this object
2272
+ def update!(**args)
2273
+ @common_name = args[:common_name] if args.key?(:common_name)
2274
+ @subject = args[:subject] if args.key?(:subject)
2275
+ @subject_alt_name = args[:subject_alt_name] if args.key?(:subject_alt_name)
2276
+ end
2277
+ end
2278
+
2279
+ # These values describe fields in an issued X.509 certificate such as the
2280
+ # distinguished name, subject alternative names, serial number, and lifetime.
2281
+ class SubjectDescription
2282
+ include Google::Apis::Core::Hashable
2283
+
2284
+ # The "common name" of the distinguished name.
2285
+ # Corresponds to the JSON property `commonName`
2286
+ # @return [String]
2287
+ attr_accessor :common_name
2288
+
2289
+ # The serial number encoded in lowercase hexadecimal.
2290
+ # Corresponds to the JSON property `hexSerialNumber`
2291
+ # @return [String]
2292
+ attr_accessor :hex_serial_number
2293
+
2294
+ # For convenience, the actual lifetime of an issued certificate. Corresponds to '
2295
+ # not_after_time' - 'not_before_time'.
2296
+ # Corresponds to the JSON property `lifetime`
2297
+ # @return [String]
2298
+ attr_accessor :lifetime
2299
+
2300
+ # The time at which the certificate expires.
2301
+ # Corresponds to the JSON property `notAfterTime`
2302
+ # @return [String]
2303
+ attr_accessor :not_after_time
2304
+
2305
+ # The time at which the certificate becomes valid.
2306
+ # Corresponds to the JSON property `notBeforeTime`
2307
+ # @return [String]
2308
+ attr_accessor :not_before_time
2309
+
2310
+ # Subject describes parts of a distinguished name that, in turn, describes the
2311
+ # subject of the certificate.
2312
+ # Corresponds to the JSON property `subject`
2313
+ # @return [Google::Apis::PrivatecaV1beta1::Subject]
2314
+ attr_accessor :subject
2315
+
2316
+ # SubjectAltNames corresponds to a more modern way of listing what the asserted
2317
+ # identity is in a certificate (i.e., compared to the "common name" in the
2318
+ # distinguished name).
2319
+ # Corresponds to the JSON property `subjectAltName`
2320
+ # @return [Google::Apis::PrivatecaV1beta1::SubjectAltNames]
2321
+ attr_accessor :subject_alt_name
2322
+
2323
+ def initialize(**args)
2324
+ update!(**args)
2325
+ end
2326
+
2327
+ # Update properties of this object
2328
+ def update!(**args)
2329
+ @common_name = args[:common_name] if args.key?(:common_name)
2330
+ @hex_serial_number = args[:hex_serial_number] if args.key?(:hex_serial_number)
2331
+ @lifetime = args[:lifetime] if args.key?(:lifetime)
2332
+ @not_after_time = args[:not_after_time] if args.key?(:not_after_time)
2333
+ @not_before_time = args[:not_before_time] if args.key?(:not_before_time)
2334
+ @subject = args[:subject] if args.key?(:subject)
2335
+ @subject_alt_name = args[:subject_alt_name] if args.key?(:subject_alt_name)
2336
+ end
2337
+ end
2338
+
2339
+ # Describes a subordinate CA's issuers. This is either a resource path to a
2340
+ # known issuing CertificateAuthority, or a PEM issuer certificate chain.
2341
+ class SubordinateConfig
2342
+ include Google::Apis::Core::Hashable
2343
+
2344
+ # Required. This can refer to a CertificateAuthority in the same project that
2345
+ # was used to create a subordinate CertificateAuthority. This field is used for
2346
+ # information and usability purposes only. The resource name is in the format `
2347
+ # projects/*/locations/*/certificateAuthorities/*`.
2348
+ # Corresponds to the JSON property `certificateAuthority`
2349
+ # @return [String]
2350
+ attr_accessor :certificate_authority
2351
+
2352
+ # This message describes a subordinate CA's issuer certificate chain. This
2353
+ # wrapper exists for compatibility reasons.
2354
+ # Corresponds to the JSON property `pemIssuerChain`
2355
+ # @return [Google::Apis::PrivatecaV1beta1::SubordinateConfigChain]
2356
+ attr_accessor :pem_issuer_chain
2357
+
2358
+ def initialize(**args)
2359
+ update!(**args)
2360
+ end
2361
+
2362
+ # Update properties of this object
2363
+ def update!(**args)
2364
+ @certificate_authority = args[:certificate_authority] if args.key?(:certificate_authority)
2365
+ @pem_issuer_chain = args[:pem_issuer_chain] if args.key?(:pem_issuer_chain)
2366
+ end
2367
+ end
2368
+
2369
+ # This message describes a subordinate CA's issuer certificate chain. This
2370
+ # wrapper exists for compatibility reasons.
2371
+ class SubordinateConfigChain
2372
+ include Google::Apis::Core::Hashable
2373
+
2374
+ # Required. Expected to be in leaf-to-root order according to RFC 5246.
2375
+ # Corresponds to the JSON property `pemCertificates`
2376
+ # @return [Array<String>]
2377
+ attr_accessor :pem_certificates
2378
+
2379
+ def initialize(**args)
2380
+ update!(**args)
2381
+ end
2382
+
2383
+ # Update properties of this object
2384
+ def update!(**args)
2385
+ @pem_certificates = args[:pem_certificates] if args.key?(:pem_certificates)
2386
+ end
2387
+ end
2388
+
2389
+ # Request message for `TestIamPermissions` method.
2390
+ class TestIamPermissionsRequest
2391
+ include Google::Apis::Core::Hashable
2392
+
2393
+ # The set of permissions to check for the `resource`. Permissions with wildcards
2394
+ # (such as '*' or 'storage.*') are not allowed. For more information see [IAM
2395
+ # Overview](https://cloud.google.com/iam/docs/overview#permissions).
2396
+ # Corresponds to the JSON property `permissions`
2397
+ # @return [Array<String>]
2398
+ attr_accessor :permissions
2399
+
2400
+ def initialize(**args)
2401
+ update!(**args)
2402
+ end
2403
+
2404
+ # Update properties of this object
2405
+ def update!(**args)
2406
+ @permissions = args[:permissions] if args.key?(:permissions)
2407
+ end
2408
+ end
2409
+
2410
+ # Response message for `TestIamPermissions` method.
2411
+ class TestIamPermissionsResponse
2412
+ include Google::Apis::Core::Hashable
2413
+
2414
+ # A subset of `TestPermissionsRequest.permissions` that the caller is allowed.
2415
+ # Corresponds to the JSON property `permissions`
2416
+ # @return [Array<String>]
2417
+ attr_accessor :permissions
2418
+
2419
+ def initialize(**args)
2420
+ update!(**args)
2421
+ end
2422
+
2423
+ # Update properties of this object
2424
+ def update!(**args)
2425
+ @permissions = args[:permissions] if args.key?(:permissions)
2426
+ end
2427
+ end
2428
+
2429
+ # An X509Extension specifies an X.509 extension, which may be used in different
2430
+ # parts of X.509 objects like certificates, CSRs, and CRLs.
2431
+ class X509Extension
2432
+ include Google::Apis::Core::Hashable
2433
+
2434
+ # Required. Indicates whether or not this extension is critical (i.e., if the
2435
+ # client does not know how to handle this extension, the client should consider
2436
+ # this to be an error).
2437
+ # Corresponds to the JSON property `critical`
2438
+ # @return [Boolean]
2439
+ attr_accessor :critical
2440
+ alias_method :critical?, :critical
2441
+
2442
+ # An ObjectId specifies an object identifier (OID). These provide context and
2443
+ # describe types in ASN.1 messages.
2444
+ # Corresponds to the JSON property `objectId`
2445
+ # @return [Google::Apis::PrivatecaV1beta1::ObjectIdProp]
2446
+ attr_accessor :object_id_prop
2447
+
2448
+ # Required. The value of this X.509 extension.
2449
+ # Corresponds to the JSON property `value`
2450
+ # NOTE: Values are automatically base64 encoded/decoded in the client library.
2451
+ # @return [String]
2452
+ attr_accessor :value
2453
+
2454
+ def initialize(**args)
2455
+ update!(**args)
2456
+ end
2457
+
2458
+ # Update properties of this object
2459
+ def update!(**args)
2460
+ @critical = args[:critical] if args.key?(:critical)
2461
+ @object_id_prop = args[:object_id_prop] if args.key?(:object_id_prop)
2462
+ @value = args[:value] if args.key?(:value)
2463
+ end
2464
+ end
2465
+ end
2466
+ end
2467
+ end