google-apis-privateca_v1 0.1.0

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