google-apis-deploymentmanager_alpha 0.1.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA256:
3
+ metadata.gz: 2525187e439b2669282852a99aa43a25258b7dcec6a13a31a50abcc7fe4d1905
4
+ data.tar.gz: cfef69bb80ae963edd66d0fc307a44557b33e34df2de1bdce17c6f608ae75b25
5
+ SHA512:
6
+ metadata.gz: 3777ac4553945ed3983ac7d756c6b27c50bf2392069d956851286f1fd9de6c5713884ff800524bfcac6856d920a39094ea549bce59d9ed01b6d0085cfb9fd6fe
7
+ data.tar.gz: a5ec0b9c446376334ef142e0a4caa9a5b9214f71710537172259b2ed816333b793ba8012bbe817d44698490e85a53a883c52de3d8efe81b3cb1c19399551d47c
@@ -0,0 +1,13 @@
1
+ --hide-void-return
2
+ --no-private
3
+ --verbose
4
+ --title=google-apis-deploymentmanager_alpha
5
+ --markup-provider=redcarpet
6
+ --markup=markdown
7
+ --main OVERVIEW.md
8
+ lib/google/apis/deploymentmanager_alpha/*.rb
9
+ lib/google/apis/deploymentmanager_alpha.rb
10
+ -
11
+ OVERVIEW.md
12
+ CHANGELOG.md
13
+ LICENSE.md
@@ -0,0 +1,7 @@
1
+ # Release history for google-apis-deploymentmanager_alpha
2
+
3
+ ### v0.1.0 (2021-01-07)
4
+
5
+ * Regenerated using generator version 0.1.1
6
+ * Regenerated from discovery document revision 20201203
7
+
@@ -0,0 +1,202 @@
1
+
2
+ Apache License
3
+ Version 2.0, January 2004
4
+ http://www.apache.org/licenses/
5
+
6
+ TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
7
+
8
+ 1. Definitions.
9
+
10
+ "License" shall mean the terms and conditions for use, reproduction,
11
+ and distribution as defined by Sections 1 through 9 of this document.
12
+
13
+ "Licensor" shall mean the copyright owner or entity authorized by
14
+ the copyright owner that is granting the License.
15
+
16
+ "Legal Entity" shall mean the union of the acting entity and all
17
+ other entities that control, are controlled by, or are under common
18
+ control with that entity. For the purposes of this definition,
19
+ "control" means (i) the power, direct or indirect, to cause the
20
+ direction or management of such entity, whether by contract or
21
+ otherwise, or (ii) ownership of fifty percent (50%) or more of the
22
+ outstanding shares, or (iii) beneficial ownership of such entity.
23
+
24
+ "You" (or "Your") shall mean an individual or Legal Entity
25
+ exercising permissions granted by this License.
26
+
27
+ "Source" form shall mean the preferred form for making modifications,
28
+ including but not limited to software source code, documentation
29
+ source, and configuration files.
30
+
31
+ "Object" form shall mean any form resulting from mechanical
32
+ transformation or translation of a Source form, including but
33
+ not limited to compiled object code, generated documentation,
34
+ and conversions to other media types.
35
+
36
+ "Work" shall mean the work of authorship, whether in Source or
37
+ Object form, made available under the License, as indicated by a
38
+ copyright notice that is included in or attached to the work
39
+ (an example is provided in the Appendix below).
40
+
41
+ "Derivative Works" shall mean any work, whether in Source or Object
42
+ form, that is based on (or derived from) the Work and for which the
43
+ editorial revisions, annotations, elaborations, or other modifications
44
+ represent, as a whole, an original work of authorship. For the purposes
45
+ of this License, Derivative Works shall not include works that remain
46
+ separable from, or merely link (or bind by name) to the interfaces of,
47
+ the Work and Derivative Works thereof.
48
+
49
+ "Contribution" shall mean any work of authorship, including
50
+ the original version of the Work and any modifications or additions
51
+ to that Work or Derivative Works thereof, that is intentionally
52
+ submitted to Licensor for inclusion in the Work by the copyright owner
53
+ or by an individual or Legal Entity authorized to submit on behalf of
54
+ the copyright owner. For the purposes of this definition, "submitted"
55
+ means any form of electronic, verbal, or written communication sent
56
+ to the Licensor or its representatives, including but not limited to
57
+ communication on electronic mailing lists, source code control systems,
58
+ and issue tracking systems that are managed by, or on behalf of, the
59
+ Licensor for the purpose of discussing and improving the Work, but
60
+ excluding communication that is conspicuously marked or otherwise
61
+ designated in writing by the copyright owner as "Not a Contribution."
62
+
63
+ "Contributor" shall mean Licensor and any individual or Legal Entity
64
+ on behalf of whom a Contribution has been received by Licensor and
65
+ subsequently incorporated within the Work.
66
+
67
+ 2. Grant of Copyright License. Subject to the terms and conditions of
68
+ this License, each Contributor hereby grants to You a perpetual,
69
+ worldwide, non-exclusive, no-charge, royalty-free, irrevocable
70
+ copyright license to reproduce, prepare Derivative Works of,
71
+ publicly display, publicly perform, sublicense, and distribute the
72
+ Work and such Derivative Works in Source or Object form.
73
+
74
+ 3. Grant of Patent License. Subject to the terms and conditions of
75
+ this License, each Contributor hereby grants to You a perpetual,
76
+ worldwide, non-exclusive, no-charge, royalty-free, irrevocable
77
+ (except as stated in this section) patent license to make, have made,
78
+ use, offer to sell, sell, import, and otherwise transfer the Work,
79
+ where such license applies only to those patent claims licensable
80
+ by such Contributor that are necessarily infringed by their
81
+ Contribution(s) alone or by combination of their Contribution(s)
82
+ with the Work to which such Contribution(s) was submitted. If You
83
+ institute patent litigation against any entity (including a
84
+ cross-claim or counterclaim in a lawsuit) alleging that the Work
85
+ or a Contribution incorporated within the Work constitutes direct
86
+ or contributory patent infringement, then any patent licenses
87
+ granted to You under this License for that Work shall terminate
88
+ as of the date such litigation is filed.
89
+
90
+ 4. Redistribution. You may reproduce and distribute copies of the
91
+ Work or Derivative Works thereof in any medium, with or without
92
+ modifications, and in Source or Object form, provided that You
93
+ meet the following conditions:
94
+
95
+ (a) You must give any other recipients of the Work or
96
+ Derivative Works a copy of this License; and
97
+
98
+ (b) You must cause any modified files to carry prominent notices
99
+ stating that You changed the files; and
100
+
101
+ (c) You must retain, in the Source form of any Derivative Works
102
+ that You distribute, all copyright, patent, trademark, and
103
+ attribution notices from the Source form of the Work,
104
+ excluding those notices that do not pertain to any part of
105
+ the Derivative Works; and
106
+
107
+ (d) If the Work includes a "NOTICE" text file as part of its
108
+ distribution, then any Derivative Works that You distribute must
109
+ include a readable copy of the attribution notices contained
110
+ within such NOTICE file, excluding those notices that do not
111
+ pertain to any part of the Derivative Works, in at least one
112
+ of the following places: within a NOTICE text file distributed
113
+ as part of the Derivative Works; within the Source form or
114
+ documentation, if provided along with the Derivative Works; or,
115
+ within a display generated by the Derivative Works, if and
116
+ wherever such third-party notices normally appear. The contents
117
+ of the NOTICE file are for informational purposes only and
118
+ do not modify the License. You may add Your own attribution
119
+ notices within Derivative Works that You distribute, alongside
120
+ or as an addendum to the NOTICE text from the Work, provided
121
+ that such additional attribution notices cannot be construed
122
+ as modifying the License.
123
+
124
+ You may add Your own copyright statement to Your modifications and
125
+ may provide additional or different license terms and conditions
126
+ for use, reproduction, or distribution of Your modifications, or
127
+ for any such Derivative Works as a whole, provided Your use,
128
+ reproduction, and distribution of the Work otherwise complies with
129
+ the conditions stated in this License.
130
+
131
+ 5. Submission of Contributions. Unless You explicitly state otherwise,
132
+ any Contribution intentionally submitted for inclusion in the Work
133
+ by You to the Licensor shall be under the terms and conditions of
134
+ this License, without any additional terms or conditions.
135
+ Notwithstanding the above, nothing herein shall supersede or modify
136
+ the terms of any separate license agreement you may have executed
137
+ with Licensor regarding such Contributions.
138
+
139
+ 6. Trademarks. This License does not grant permission to use the trade
140
+ names, trademarks, service marks, or product names of the Licensor,
141
+ except as required for reasonable and customary use in describing the
142
+ origin of the Work and reproducing the content of the NOTICE file.
143
+
144
+ 7. Disclaimer of Warranty. Unless required by applicable law or
145
+ agreed to in writing, Licensor provides the Work (and each
146
+ Contributor provides its Contributions) on an "AS IS" BASIS,
147
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
148
+ implied, including, without limitation, any warranties or conditions
149
+ of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
150
+ PARTICULAR PURPOSE. You are solely responsible for determining the
151
+ appropriateness of using or redistributing the Work and assume any
152
+ risks associated with Your exercise of permissions under this License.
153
+
154
+ 8. Limitation of Liability. In no event and under no legal theory,
155
+ whether in tort (including negligence), contract, or otherwise,
156
+ unless required by applicable law (such as deliberate and grossly
157
+ negligent acts) or agreed to in writing, shall any Contributor be
158
+ liable to You for damages, including any direct, indirect, special,
159
+ incidental, or consequential damages of any character arising as a
160
+ result of this License or out of the use or inability to use the
161
+ Work (including but not limited to damages for loss of goodwill,
162
+ work stoppage, computer failure or malfunction, or any and all
163
+ other commercial damages or losses), even if such Contributor
164
+ has been advised of the possibility of such damages.
165
+
166
+ 9. Accepting Warranty or Additional Liability. While redistributing
167
+ the Work or Derivative Works thereof, You may choose to offer,
168
+ and charge a fee for, acceptance of support, warranty, indemnity,
169
+ or other liability obligations and/or rights consistent with this
170
+ License. However, in accepting such obligations, You may act only
171
+ on Your own behalf and on Your sole responsibility, not on behalf
172
+ of any other Contributor, and only if You agree to indemnify,
173
+ defend, and hold each Contributor harmless for any liability
174
+ incurred by, or claims asserted against, such Contributor by reason
175
+ of your accepting any such warranty or additional liability.
176
+
177
+ END OF TERMS AND CONDITIONS
178
+
179
+ APPENDIX: How to apply the Apache License to your work.
180
+
181
+ To apply the Apache License to your work, attach the following
182
+ boilerplate notice, with the fields enclosed by brackets "[]"
183
+ replaced with your own identifying information. (Don't include
184
+ the brackets!) The text should be enclosed in the appropriate
185
+ comment syntax for the file format. We also recommend that a
186
+ file or class name and description of purpose be included on the
187
+ same "printed page" as the copyright notice for easier
188
+ identification within third-party archives.
189
+
190
+ Copyright [yyyy] [name of copyright owner]
191
+
192
+ Licensed under the Apache License, Version 2.0 (the "License");
193
+ you may not use this file except in compliance with the License.
194
+ You may obtain a copy of the License at
195
+
196
+ http://www.apache.org/licenses/LICENSE-2.0
197
+
198
+ Unless required by applicable law or agreed to in writing, software
199
+ distributed under the License is distributed on an "AS IS" BASIS,
200
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
201
+ See the License for the specific language governing permissions and
202
+ limitations under the License.
@@ -0,0 +1,96 @@
1
+ # Simple REST client for version Alpha of the Cloud Deployment Manager V2 API
2
+
3
+ This is a simple client library for version Alpha of the Cloud Deployment Manager V2 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/deploymentmanager.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-deploymentmanager_alpha', '~> 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-deploymentmanager_alpha
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/deploymentmanager_alpha"
49
+
50
+ # Create a client object
51
+ client = Google::Apis::DeploymentmanagerAlpha::DeploymentManagerService.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 Deploymentmanager service in particular.)
67
+
68
+ For reference information on specific calls in the Cloud Deployment Manager V2 API, see the {Google::Apis::DeploymentmanagerAlpha::DeploymentManagerService 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-deploymentmanager_alpha`, 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/deployment-manager) 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/deploymentmanager_alpha"
@@ -0,0 +1,47 @@
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/deploymentmanager_alpha/service.rb'
16
+ require 'google/apis/deploymentmanager_alpha/classes.rb'
17
+ require 'google/apis/deploymentmanager_alpha/representations.rb'
18
+ require 'google/apis/deploymentmanager_alpha/gem_version.rb'
19
+
20
+ module Google
21
+ module Apis
22
+ # Cloud Deployment Manager V2 API
23
+ #
24
+ # The Google Cloud Deployment Manager v2 API provides services for configuring,
25
+ # deploying, and viewing Google Cloud services and APIs via templates which
26
+ # specify deployments of Cloud resources.
27
+ #
28
+ # @see https://cloud.google.com/deployment-manager
29
+ module DeploymentmanagerAlpha
30
+ # Version of the Cloud Deployment Manager V2 API this client connects to.
31
+ # This is NOT the gem version.
32
+ VERSION = 'Alpha'
33
+
34
+ # View and manage your data across Google Cloud Platform services
35
+ AUTH_CLOUD_PLATFORM = 'https://www.googleapis.com/auth/cloud-platform'
36
+
37
+ # View your data across Google Cloud Platform services
38
+ AUTH_CLOUD_PLATFORM_READ_ONLY = 'https://www.googleapis.com/auth/cloud-platform.read-only'
39
+
40
+ # View and manage your Google Cloud Platform management resources and deployment status information
41
+ AUTH_NDEV_CLOUDMAN = 'https://www.googleapis.com/auth/ndev.cloudman'
42
+
43
+ # View your Google Cloud Platform management resources and deployment status information
44
+ AUTH_NDEV_CLOUDMAN_READONLY = 'https://www.googleapis.com/auth/ndev.cloudman.readonly'
45
+ end
46
+ end
47
+ end
@@ -0,0 +1,2602 @@
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 DeploymentmanagerAlpha
24
+
25
+ # Async options that determine when a resource should finish.
26
+ class AsyncOptions
27
+ include Google::Apis::Core::Hashable
28
+
29
+ # Method regex where this policy will apply.
30
+ # Corresponds to the JSON property `methodMatch`
31
+ # @return [String]
32
+ attr_accessor :method_match
33
+
34
+ # Deployment manager will poll instances for this API resource setting a RUNNING
35
+ # state, and blocking until polling conditions tell whether the resource is
36
+ # completed or failed.
37
+ # Corresponds to the JSON property `pollingOptions`
38
+ # @return [Google::Apis::DeploymentmanagerAlpha::PollingOptions]
39
+ attr_accessor :polling_options
40
+
41
+ def initialize(**args)
42
+ update!(**args)
43
+ end
44
+
45
+ # Update properties of this object
46
+ def update!(**args)
47
+ @method_match = args[:method_match] if args.key?(:method_match)
48
+ @polling_options = args[:polling_options] if args.key?(:polling_options)
49
+ end
50
+ end
51
+
52
+ # Specifies the audit configuration for a service. The configuration determines
53
+ # which permission types are logged, and what identities, if any, are exempted
54
+ # from logging. An AuditConfig must have one or more AuditLogConfigs. If there
55
+ # are AuditConfigs for both `allServices` and a specific service, the union of
56
+ # the two AuditConfigs is used for that service: the log_types specified in each
57
+ # AuditConfig are enabled, and the exempted_members in each AuditLogConfig are
58
+ # exempted. Example Policy with multiple AuditConfigs: ` "audit_configs": [ ` "
59
+ # service": "allServices", "audit_log_configs": [ ` "log_type": "DATA_READ", "
60
+ # exempted_members": [ "user:jose@example.com" ] `, ` "log_type": "DATA_WRITE" `,
61
+ # ` "log_type": "ADMIN_READ" ` ] `, ` "service": "sampleservice.googleapis.com",
62
+ # "audit_log_configs": [ ` "log_type": "DATA_READ" `, ` "log_type": "DATA_WRITE"
63
+ # , "exempted_members": [ "user:aliya@example.com" ] ` ] ` ] ` For sampleservice,
64
+ # this policy enables DATA_READ, DATA_WRITE and ADMIN_READ logging. It also
65
+ # exempts jose@example.com from DATA_READ logging, and aliya@example.com from
66
+ # DATA_WRITE logging.
67
+ class AuditConfig
68
+ include Google::Apis::Core::Hashable
69
+
70
+ # The configuration for logging of each type of permission.
71
+ # Corresponds to the JSON property `auditLogConfigs`
72
+ # @return [Array<Google::Apis::DeploymentmanagerAlpha::AuditLogConfig>]
73
+ attr_accessor :audit_log_configs
74
+
75
+ # Specifies a service that will be enabled for audit logging. For example, `
76
+ # storage.googleapis.com`, `cloudsql.googleapis.com`. `allServices` is a special
77
+ # value that covers all services.
78
+ # Corresponds to the JSON property `service`
79
+ # @return [String]
80
+ attr_accessor :service
81
+
82
+ def initialize(**args)
83
+ update!(**args)
84
+ end
85
+
86
+ # Update properties of this object
87
+ def update!(**args)
88
+ @audit_log_configs = args[:audit_log_configs] if args.key?(:audit_log_configs)
89
+ @service = args[:service] if args.key?(:service)
90
+ end
91
+ end
92
+
93
+ # Provides the configuration for logging a type of permissions. Example: ` "
94
+ # audit_log_configs": [ ` "log_type": "DATA_READ", "exempted_members": [ "user:
95
+ # jose@example.com" ] `, ` "log_type": "DATA_WRITE" ` ] ` This enables '
96
+ # DATA_READ' and 'DATA_WRITE' logging, while exempting jose@example.com from
97
+ # DATA_READ logging.
98
+ class AuditLogConfig
99
+ include Google::Apis::Core::Hashable
100
+
101
+ # Specifies the identities that do not cause logging for this type of permission.
102
+ # Follows the same format of Binding.members.
103
+ # Corresponds to the JSON property `exemptedMembers`
104
+ # @return [Array<String>]
105
+ attr_accessor :exempted_members
106
+
107
+ # The log type that this config enables.
108
+ # Corresponds to the JSON property `logType`
109
+ # @return [String]
110
+ attr_accessor :log_type
111
+
112
+ def initialize(**args)
113
+ update!(**args)
114
+ end
115
+
116
+ # Update properties of this object
117
+ def update!(**args)
118
+ @exempted_members = args[:exempted_members] if args.key?(:exempted_members)
119
+ @log_type = args[:log_type] if args.key?(:log_type)
120
+ end
121
+ end
122
+
123
+ # BaseType that describes a service-backed Type.
124
+ class BaseType
125
+ include Google::Apis::Core::Hashable
126
+
127
+ # Allows resource handling overrides for specific collections
128
+ # Corresponds to the JSON property `collectionOverrides`
129
+ # @return [Array<Google::Apis::DeploymentmanagerAlpha::CollectionOverride>]
130
+ attr_accessor :collection_overrides
131
+
132
+ # The credential used by Deployment Manager and TypeProvider. Only one of the
133
+ # options is permitted.
134
+ # Corresponds to the JSON property `credential`
135
+ # @return [Google::Apis::DeploymentmanagerAlpha::Credential]
136
+ attr_accessor :credential
137
+
138
+ # Descriptor Url for the this type.
139
+ # Corresponds to the JSON property `descriptorUrl`
140
+ # @return [String]
141
+ attr_accessor :descriptor_url
142
+
143
+ # Options allows customized resource handling by Deployment Manager.
144
+ # Corresponds to the JSON property `options`
145
+ # @return [Google::Apis::DeploymentmanagerAlpha::Options]
146
+ attr_accessor :options
147
+
148
+ def initialize(**args)
149
+ update!(**args)
150
+ end
151
+
152
+ # Update properties of this object
153
+ def update!(**args)
154
+ @collection_overrides = args[:collection_overrides] if args.key?(:collection_overrides)
155
+ @credential = args[:credential] if args.key?(:credential)
156
+ @descriptor_url = args[:descriptor_url] if args.key?(:descriptor_url)
157
+ @options = args[:options] if args.key?(:options)
158
+ end
159
+ end
160
+
161
+ # Basic Auth used as a credential.
162
+ class BasicAuth
163
+ include Google::Apis::Core::Hashable
164
+
165
+ #
166
+ # Corresponds to the JSON property `password`
167
+ # @return [String]
168
+ attr_accessor :password
169
+
170
+ #
171
+ # Corresponds to the JSON property `user`
172
+ # @return [String]
173
+ attr_accessor :user
174
+
175
+ def initialize(**args)
176
+ update!(**args)
177
+ end
178
+
179
+ # Update properties of this object
180
+ def update!(**args)
181
+ @password = args[:password] if args.key?(:password)
182
+ @user = args[:user] if args.key?(:user)
183
+ end
184
+ end
185
+
186
+ # Associates `members` with a `role`.
187
+ class Binding
188
+ include Google::Apis::Core::Hashable
189
+
190
+ # Represents a textual expression in the Common Expression Language (CEL) syntax.
191
+ # CEL is a C-like expression language. The syntax and semantics of CEL are
192
+ # documented at https://github.com/google/cel-spec. Example (Comparison): title:
193
+ # "Summary size limit" description: "Determines if a summary is less than 100
194
+ # chars" expression: "document.summary.size() < 100" Example (Equality): title: "
195
+ # Requestor is owner" description: "Determines if requestor is the document
196
+ # owner" expression: "document.owner == request.auth.claims.email" Example (
197
+ # Logic): title: "Public documents" description: "Determine whether the document
198
+ # should be publicly visible" expression: "document.type != 'private' &&
199
+ # document.type != 'internal'" Example (Data Manipulation): title: "Notification
200
+ # string" description: "Create a notification string with a timestamp."
201
+ # expression: "'New message received at ' + string(document.create_time)" The
202
+ # exact variables and functions that may be referenced within an expression are
203
+ # determined by the service that evaluates it. See the service documentation for
204
+ # additional information.
205
+ # Corresponds to the JSON property `condition`
206
+ # @return [Google::Apis::DeploymentmanagerAlpha::Expr]
207
+ attr_accessor :condition
208
+
209
+ # Specifies the identities requesting access for a Cloud Platform resource. `
210
+ # members` can have the following values: * `allUsers`: A special identifier
211
+ # that represents anyone who is on the internet; with or without a Google
212
+ # account. * `allAuthenticatedUsers`: A special identifier that represents
213
+ # anyone who is authenticated with a Google account or a service account. * `
214
+ # user:`emailid``: An email address that represents a specific Google account.
215
+ # For example, `alice@example.com` . * `serviceAccount:`emailid``: An email
216
+ # address that represents a service account. For example, `my-other-app@appspot.
217
+ # gserviceaccount.com`. * `group:`emailid``: An email address that represents a
218
+ # Google group. For example, `admins@example.com`. * `deleted:user:`emailid`?uid=
219
+ # `uniqueid``: An email address (plus unique identifier) representing a user
220
+ # that has been recently deleted. For example, `alice@example.com?uid=
221
+ # 123456789012345678901`. If the user is recovered, this value reverts to `user:`
222
+ # emailid`` and the recovered user retains the role in the binding. * `deleted:
223
+ # serviceAccount:`emailid`?uid=`uniqueid``: An email address (plus unique
224
+ # identifier) representing a service account that has been recently deleted. For
225
+ # example, `my-other-app@appspot.gserviceaccount.com?uid=123456789012345678901`.
226
+ # If the service account is undeleted, this value reverts to `serviceAccount:`
227
+ # emailid`` and the undeleted service account retains the role in the binding. *
228
+ # `deleted:group:`emailid`?uid=`uniqueid``: An email address (plus unique
229
+ # identifier) representing a Google group that has been recently deleted. For
230
+ # example, `admins@example.com?uid=123456789012345678901`. If the group is
231
+ # recovered, this value reverts to `group:`emailid`` and the recovered group
232
+ # retains the role in the binding. * `domain:`domain``: The G Suite domain (
233
+ # primary) that represents all the users of that domain. For example, `google.
234
+ # com` or `example.com`.
235
+ # Corresponds to the JSON property `members`
236
+ # @return [Array<String>]
237
+ attr_accessor :members
238
+
239
+ # Role that is assigned to `members`. For example, `roles/viewer`, `roles/editor`
240
+ # , or `roles/owner`.
241
+ # Corresponds to the JSON property `role`
242
+ # @return [String]
243
+ attr_accessor :role
244
+
245
+ def initialize(**args)
246
+ update!(**args)
247
+ end
248
+
249
+ # Update properties of this object
250
+ def update!(**args)
251
+ @condition = args[:condition] if args.key?(:condition)
252
+ @members = args[:members] if args.key?(:members)
253
+ @role = args[:role] if args.key?(:role)
254
+ end
255
+ end
256
+
257
+ # CollectionOverride allows resource handling overrides for specific resources
258
+ # within a BaseType
259
+ class CollectionOverride
260
+ include Google::Apis::Core::Hashable
261
+
262
+ # The collection that identifies this resource within its service.
263
+ # Corresponds to the JSON property `collection`
264
+ # @return [String]
265
+ attr_accessor :collection
266
+
267
+ # Deployment Manager will call these methods during the events of creation/
268
+ # deletion/update/get/setIamPolicy
269
+ # Corresponds to the JSON property `methodMap`
270
+ # @return [Google::Apis::DeploymentmanagerAlpha::MethodMap]
271
+ attr_accessor :method_map
272
+
273
+ # Options allows customized resource handling by Deployment Manager.
274
+ # Corresponds to the JSON property `options`
275
+ # @return [Google::Apis::DeploymentmanagerAlpha::Options]
276
+ attr_accessor :options
277
+
278
+ def initialize(**args)
279
+ update!(**args)
280
+ end
281
+
282
+ # Update properties of this object
283
+ def update!(**args)
284
+ @collection = args[:collection] if args.key?(:collection)
285
+ @method_map = args[:method_map] if args.key?(:method_map)
286
+ @options = args[:options] if args.key?(:options)
287
+ end
288
+ end
289
+
290
+ # Holds the composite type.
291
+ class CompositeType
292
+ include Google::Apis::Core::Hashable
293
+
294
+ # An optional textual description of the resource; provided by the client when
295
+ # the resource is created.
296
+ # Corresponds to the JSON property `description`
297
+ # @return [String]
298
+ attr_accessor :description
299
+
300
+ #
301
+ # Corresponds to the JSON property `id`
302
+ # @return [Fixnum]
303
+ attr_accessor :id
304
+
305
+ # Output only. Creation timestamp in RFC3339 text format.
306
+ # Corresponds to the JSON property `insertTime`
307
+ # @return [String]
308
+ attr_accessor :insert_time
309
+
310
+ # Map of labels; provided by the client when the resource is created or updated.
311
+ # Specifically: Label keys must be between 1 and 63 characters long and must
312
+ # conform to the following regular expression: `[a-z]([-a-z0-9]*[a-z0-9])?`
313
+ # Label values must be between 0 and 63 characters long and must conform to the
314
+ # regular expression `([a-z]([-a-z0-9]*[a-z0-9])?)?`.
315
+ # Corresponds to the JSON property `labels`
316
+ # @return [Array<Google::Apis::DeploymentmanagerAlpha::CompositeTypeLabelEntry>]
317
+ attr_accessor :labels
318
+
319
+ # Name of the composite type, must follow the expression: `[a-z]([-a-z0-9_.]`0,
320
+ # 61`[a-z0-9])?`.
321
+ # Corresponds to the JSON property `name`
322
+ # @return [String]
323
+ attr_accessor :name
324
+
325
+ # Represents an Operation resource. Google Compute Engine has three Operation
326
+ # resources: * [Global](/compute/docs/reference/rest/`$api_version`/
327
+ # globalOperations) * [Regional](/compute/docs/reference/rest/`$api_version`/
328
+ # regionOperations) * [Zonal](/compute/docs/reference/rest/`$api_version`/
329
+ # zoneOperations) You can use an operation resource to manage asynchronous API
330
+ # requests. For more information, read Handling API responses. Operations can be
331
+ # global, regional or zonal. - For global operations, use the `globalOperations`
332
+ # resource. - For regional operations, use the `regionOperations` resource. -
333
+ # For zonal operations, use the `zonalOperations` resource. For more information,
334
+ # read Global, Regional, and Zonal Resources.
335
+ # Corresponds to the JSON property `operation`
336
+ # @return [Google::Apis::DeploymentmanagerAlpha::Operation]
337
+ attr_accessor :operation
338
+
339
+ # Output only. Server defined URL for the resource.
340
+ # Corresponds to the JSON property `selfLink`
341
+ # @return [String]
342
+ attr_accessor :self_link
343
+
344
+ #
345
+ # Corresponds to the JSON property `status`
346
+ # @return [String]
347
+ attr_accessor :status
348
+
349
+ # Files that make up the template contents of a template type.
350
+ # Corresponds to the JSON property `templateContents`
351
+ # @return [Google::Apis::DeploymentmanagerAlpha::TemplateContents]
352
+ attr_accessor :template_contents
353
+
354
+ def initialize(**args)
355
+ update!(**args)
356
+ end
357
+
358
+ # Update properties of this object
359
+ def update!(**args)
360
+ @description = args[:description] if args.key?(:description)
361
+ @id = args[:id] if args.key?(:id)
362
+ @insert_time = args[:insert_time] if args.key?(:insert_time)
363
+ @labels = args[:labels] if args.key?(:labels)
364
+ @name = args[:name] if args.key?(:name)
365
+ @operation = args[:operation] if args.key?(:operation)
366
+ @self_link = args[:self_link] if args.key?(:self_link)
367
+ @status = args[:status] if args.key?(:status)
368
+ @template_contents = args[:template_contents] if args.key?(:template_contents)
369
+ end
370
+ end
371
+
372
+ # Label object for CompositeTypes
373
+ class CompositeTypeLabelEntry
374
+ include Google::Apis::Core::Hashable
375
+
376
+ # Key of the label
377
+ # Corresponds to the JSON property `key`
378
+ # @return [String]
379
+ attr_accessor :key
380
+
381
+ # Value of the label
382
+ # Corresponds to the JSON property `value`
383
+ # @return [String]
384
+ attr_accessor :value
385
+
386
+ def initialize(**args)
387
+ update!(**args)
388
+ end
389
+
390
+ # Update properties of this object
391
+ def update!(**args)
392
+ @key = args[:key] if args.key?(:key)
393
+ @value = args[:value] if args.key?(:value)
394
+ end
395
+ end
396
+
397
+ # A response that returns all Composite Types supported by Deployment Manager
398
+ class CompositeTypesListResponse
399
+ include Google::Apis::Core::Hashable
400
+
401
+ # Output only. A list of resource composite types supported by Deployment
402
+ # Manager.
403
+ # Corresponds to the JSON property `compositeTypes`
404
+ # @return [Array<Google::Apis::DeploymentmanagerAlpha::CompositeType>]
405
+ attr_accessor :composite_types
406
+
407
+ # A token used to continue a truncated list request.
408
+ # Corresponds to the JSON property `nextPageToken`
409
+ # @return [String]
410
+ attr_accessor :next_page_token
411
+
412
+ def initialize(**args)
413
+ update!(**args)
414
+ end
415
+
416
+ # Update properties of this object
417
+ def update!(**args)
418
+ @composite_types = args[:composite_types] if args.key?(:composite_types)
419
+ @next_page_token = args[:next_page_token] if args.key?(:next_page_token)
420
+ end
421
+ end
422
+
423
+ #
424
+ class ConfigFile
425
+ include Google::Apis::Core::Hashable
426
+
427
+ # The contents of the file.
428
+ # Corresponds to the JSON property `content`
429
+ # @return [String]
430
+ attr_accessor :content
431
+
432
+ def initialize(**args)
433
+ update!(**args)
434
+ end
435
+
436
+ # Update properties of this object
437
+ def update!(**args)
438
+ @content = args[:content] if args.key?(:content)
439
+ end
440
+ end
441
+
442
+ # The credential used by Deployment Manager and TypeProvider. Only one of the
443
+ # options is permitted.
444
+ class Credential
445
+ include Google::Apis::Core::Hashable
446
+
447
+ # Basic Auth used as a credential.
448
+ # Corresponds to the JSON property `basicAuth`
449
+ # @return [Google::Apis::DeploymentmanagerAlpha::BasicAuth]
450
+ attr_accessor :basic_auth
451
+
452
+ # Service Account used as a credential.
453
+ # Corresponds to the JSON property `serviceAccount`
454
+ # @return [Google::Apis::DeploymentmanagerAlpha::ServiceAccount]
455
+ attr_accessor :service_account
456
+
457
+ # Specify to use the project default credential, only supported by Deployment.
458
+ # Corresponds to the JSON property `useProjectDefault`
459
+ # @return [Boolean]
460
+ attr_accessor :use_project_default
461
+ alias_method :use_project_default?, :use_project_default
462
+
463
+ def initialize(**args)
464
+ update!(**args)
465
+ end
466
+
467
+ # Update properties of this object
468
+ def update!(**args)
469
+ @basic_auth = args[:basic_auth] if args.key?(:basic_auth)
470
+ @service_account = args[:service_account] if args.key?(:service_account)
471
+ @use_project_default = args[:use_project_default] if args.key?(:use_project_default)
472
+ end
473
+ end
474
+
475
+ #
476
+ class Deployment
477
+ include Google::Apis::Core::Hashable
478
+
479
+ # The credential used by Deployment Manager and TypeProvider. Only one of the
480
+ # options is permitted.
481
+ # Corresponds to the JSON property `credential`
482
+ # @return [Google::Apis::DeploymentmanagerAlpha::Credential]
483
+ attr_accessor :credential
484
+
485
+ # An optional user-provided description of the deployment.
486
+ # Corresponds to the JSON property `description`
487
+ # @return [String]
488
+ attr_accessor :description
489
+
490
+ # Provides a fingerprint to use in requests to modify a deployment, such as `
491
+ # update()`, `stop()`, and `cancelPreview()` requests. A fingerprint is a
492
+ # randomly generated value that must be provided with `update()`, `stop()`, and `
493
+ # cancelPreview()` requests to perform optimistic locking. This ensures
494
+ # optimistic concurrency so that only one request happens at a time. The
495
+ # fingerprint is initially generated by Deployment Manager and changes after
496
+ # every request to modify data. To get the latest fingerprint value, perform a `
497
+ # get()` request to a deployment.
498
+ # Corresponds to the JSON property `fingerprint`
499
+ # NOTE: Values are automatically base64 encoded/decoded in the client library.
500
+ # @return [String]
501
+ attr_accessor :fingerprint
502
+
503
+ #
504
+ # Corresponds to the JSON property `id`
505
+ # @return [Fixnum]
506
+ attr_accessor :id
507
+
508
+ # Output only. Creation timestamp in RFC3339 text format.
509
+ # Corresponds to the JSON property `insertTime`
510
+ # @return [String]
511
+ attr_accessor :insert_time
512
+
513
+ # Map of One Platform labels; provided by the client when the resource is
514
+ # created or updated. Specifically: Label keys must be between 1 and 63
515
+ # characters long and must conform to the following regular expression: `[a-z]([-
516
+ # a-z0-9]*[a-z0-9])?` Label values must be between 0 and 63 characters long and
517
+ # must conform to the regular expression `([a-z]([-a-z0-9]*[a-z0-9])?)?`.
518
+ # Corresponds to the JSON property `labels`
519
+ # @return [Array<Google::Apis::DeploymentmanagerAlpha::DeploymentLabelEntry>]
520
+ attr_accessor :labels
521
+
522
+ # Output only. URL of the manifest representing the last manifest that was
523
+ # successfully deployed. If no manifest has been successfully deployed, this
524
+ # field will be absent.
525
+ # Corresponds to the JSON property `manifest`
526
+ # @return [String]
527
+ attr_accessor :manifest
528
+
529
+ # Name of the resource; provided by the client when the resource is created. The
530
+ # name must be 1-63 characters long, and comply with RFC1035. Specifically, the
531
+ # name must be 1-63 characters long and match the regular expression `[a-z]([-a-
532
+ # z0-9]*[a-z0-9])?` which means the first character must be a lowercase letter,
533
+ # and all following characters must be a dash, lowercase letter, or digit,
534
+ # except the last character, which cannot be a dash.
535
+ # Corresponds to the JSON property `name`
536
+ # @return [String]
537
+ attr_accessor :name
538
+
539
+ # Represents an Operation resource. Google Compute Engine has three Operation
540
+ # resources: * [Global](/compute/docs/reference/rest/`$api_version`/
541
+ # globalOperations) * [Regional](/compute/docs/reference/rest/`$api_version`/
542
+ # regionOperations) * [Zonal](/compute/docs/reference/rest/`$api_version`/
543
+ # zoneOperations) You can use an operation resource to manage asynchronous API
544
+ # requests. For more information, read Handling API responses. Operations can be
545
+ # global, regional or zonal. - For global operations, use the `globalOperations`
546
+ # resource. - For regional operations, use the `regionOperations` resource. -
547
+ # For zonal operations, use the `zonalOperations` resource. For more information,
548
+ # read Global, Regional, and Zonal Resources.
549
+ # Corresponds to the JSON property `operation`
550
+ # @return [Google::Apis::DeploymentmanagerAlpha::Operation]
551
+ attr_accessor :operation
552
+
553
+ # Output only. List of outputs from the last manifest that deployed successfully.
554
+ # Corresponds to the JSON property `outputs`
555
+ # @return [Array<Google::Apis::DeploymentmanagerAlpha::DeploymentOutputEntry>]
556
+ attr_accessor :outputs
557
+
558
+ # Output only. Server defined URL for the resource.
559
+ # Corresponds to the JSON property `selfLink`
560
+ # @return [String]
561
+ attr_accessor :self_link
562
+
563
+ # [Input Only] The parameters that define your deployment, including the
564
+ # deployment configuration and relevant templates.
565
+ # Corresponds to the JSON property `target`
566
+ # @return [Google::Apis::DeploymentmanagerAlpha::TargetConfiguration]
567
+ attr_accessor :target
568
+
569
+ # Output only. If Deployment Manager is currently updating or previewing an
570
+ # update to this deployment, the updated configuration appears here.
571
+ # Corresponds to the JSON property `update`
572
+ # @return [Google::Apis::DeploymentmanagerAlpha::DeploymentUpdate]
573
+ attr_accessor :update
574
+
575
+ # Output only. Update timestamp in RFC3339 text format.
576
+ # Corresponds to the JSON property `updateTime`
577
+ # @return [String]
578
+ attr_accessor :update_time
579
+
580
+ def initialize(**args)
581
+ update!(**args)
582
+ end
583
+
584
+ # Update properties of this object
585
+ def update!(**args)
586
+ @credential = args[:credential] if args.key?(:credential)
587
+ @description = args[:description] if args.key?(:description)
588
+ @fingerprint = args[:fingerprint] if args.key?(:fingerprint)
589
+ @id = args[:id] if args.key?(:id)
590
+ @insert_time = args[:insert_time] if args.key?(:insert_time)
591
+ @labels = args[:labels] if args.key?(:labels)
592
+ @manifest = args[:manifest] if args.key?(:manifest)
593
+ @name = args[:name] if args.key?(:name)
594
+ @operation = args[:operation] if args.key?(:operation)
595
+ @outputs = args[:outputs] if args.key?(:outputs)
596
+ @self_link = args[:self_link] if args.key?(:self_link)
597
+ @target = args[:target] if args.key?(:target)
598
+ @update = args[:update] if args.key?(:update)
599
+ @update_time = args[:update_time] if args.key?(:update_time)
600
+ end
601
+ end
602
+
603
+ # Label object for Deployments
604
+ class DeploymentLabelEntry
605
+ include Google::Apis::Core::Hashable
606
+
607
+ # Key of the label
608
+ # Corresponds to the JSON property `key`
609
+ # @return [String]
610
+ attr_accessor :key
611
+
612
+ # Value of the label
613
+ # Corresponds to the JSON property `value`
614
+ # @return [String]
615
+ attr_accessor :value
616
+
617
+ def initialize(**args)
618
+ update!(**args)
619
+ end
620
+
621
+ # Update properties of this object
622
+ def update!(**args)
623
+ @key = args[:key] if args.key?(:key)
624
+ @value = args[:value] if args.key?(:value)
625
+ end
626
+ end
627
+
628
+ # Output object for Deployments
629
+ class DeploymentOutputEntry
630
+ include Google::Apis::Core::Hashable
631
+
632
+ # Key of the output
633
+ # Corresponds to the JSON property `key`
634
+ # @return [String]
635
+ attr_accessor :key
636
+
637
+ # Value of the label
638
+ # Corresponds to the JSON property `value`
639
+ # @return [String]
640
+ attr_accessor :value
641
+
642
+ def initialize(**args)
643
+ update!(**args)
644
+ end
645
+
646
+ # Update properties of this object
647
+ def update!(**args)
648
+ @key = args[:key] if args.key?(:key)
649
+ @value = args[:value] if args.key?(:value)
650
+ end
651
+ end
652
+
653
+ #
654
+ class DeploymentUpdate
655
+ include Google::Apis::Core::Hashable
656
+
657
+ # The credential used by Deployment Manager and TypeProvider. Only one of the
658
+ # options is permitted.
659
+ # Corresponds to the JSON property `credential`
660
+ # @return [Google::Apis::DeploymentmanagerAlpha::Credential]
661
+ attr_accessor :credential
662
+
663
+ # Output only. An optional user-provided description of the deployment after the
664
+ # current update has been applied.
665
+ # Corresponds to the JSON property `description`
666
+ # @return [String]
667
+ attr_accessor :description
668
+
669
+ # Map of One Platform labels; provided by the client when the resource is
670
+ # created or updated. Specifically: Label keys must be between 1 and 63
671
+ # characters long and must conform to the following regular expression: `[a-z]([-
672
+ # a-z0-9]*[a-z0-9])?` Label values must be between 0 and 63 characters long and
673
+ # must conform to the regular expression `([a-z]([-a-z0-9]*[a-z0-9])?)?`.
674
+ # Corresponds to the JSON property `labels`
675
+ # @return [Array<Google::Apis::DeploymentmanagerAlpha::DeploymentUpdateLabelEntry>]
676
+ attr_accessor :labels
677
+
678
+ # Output only. URL of the manifest representing the update configuration of this
679
+ # deployment.
680
+ # Corresponds to the JSON property `manifest`
681
+ # @return [String]
682
+ attr_accessor :manifest
683
+
684
+ def initialize(**args)
685
+ update!(**args)
686
+ end
687
+
688
+ # Update properties of this object
689
+ def update!(**args)
690
+ @credential = args[:credential] if args.key?(:credential)
691
+ @description = args[:description] if args.key?(:description)
692
+ @labels = args[:labels] if args.key?(:labels)
693
+ @manifest = args[:manifest] if args.key?(:manifest)
694
+ end
695
+ end
696
+
697
+ # Label object for DeploymentUpdate
698
+ class DeploymentUpdateLabelEntry
699
+ include Google::Apis::Core::Hashable
700
+
701
+ # Key of the label
702
+ # Corresponds to the JSON property `key`
703
+ # @return [String]
704
+ attr_accessor :key
705
+
706
+ # Value of the label
707
+ # Corresponds to the JSON property `value`
708
+ # @return [String]
709
+ attr_accessor :value
710
+
711
+ def initialize(**args)
712
+ update!(**args)
713
+ end
714
+
715
+ # Update properties of this object
716
+ def update!(**args)
717
+ @key = args[:key] if args.key?(:key)
718
+ @value = args[:value] if args.key?(:value)
719
+ end
720
+ end
721
+
722
+ #
723
+ class DeploymentsCancelPreviewRequest
724
+ include Google::Apis::Core::Hashable
725
+
726
+ # Specifies a fingerprint for `cancelPreview()` requests. A fingerprint is a
727
+ # randomly generated value that must be provided in `cancelPreview()` requests
728
+ # to perform optimistic locking. This ensures optimistic concurrency so that the
729
+ # deployment does not have conflicting requests (e.g. if someone attempts to
730
+ # make a new update request while another user attempts to cancel a preview,
731
+ # this would prevent one of the requests). The fingerprint is initially
732
+ # generated by Deployment Manager and changes after every request to modify a
733
+ # deployment. To get the latest fingerprint value, perform a `get()` request on
734
+ # the deployment.
735
+ # Corresponds to the JSON property `fingerprint`
736
+ # NOTE: Values are automatically base64 encoded/decoded in the client library.
737
+ # @return [String]
738
+ attr_accessor :fingerprint
739
+
740
+ def initialize(**args)
741
+ update!(**args)
742
+ end
743
+
744
+ # Update properties of this object
745
+ def update!(**args)
746
+ @fingerprint = args[:fingerprint] if args.key?(:fingerprint)
747
+ end
748
+ end
749
+
750
+ # A response containing a partial list of deployments and a page token used to
751
+ # build the next request if the request has been truncated.
752
+ class DeploymentsListResponse
753
+ include Google::Apis::Core::Hashable
754
+
755
+ # Output only. The deployments contained in this response.
756
+ # Corresponds to the JSON property `deployments`
757
+ # @return [Array<Google::Apis::DeploymentmanagerAlpha::Deployment>]
758
+ attr_accessor :deployments
759
+
760
+ # Output only. A token used to continue a truncated list request.
761
+ # Corresponds to the JSON property `nextPageToken`
762
+ # @return [String]
763
+ attr_accessor :next_page_token
764
+
765
+ def initialize(**args)
766
+ update!(**args)
767
+ end
768
+
769
+ # Update properties of this object
770
+ def update!(**args)
771
+ @deployments = args[:deployments] if args.key?(:deployments)
772
+ @next_page_token = args[:next_page_token] if args.key?(:next_page_token)
773
+ end
774
+ end
775
+
776
+ #
777
+ class DeploymentsStopRequest
778
+ include Google::Apis::Core::Hashable
779
+
780
+ # Specifies a fingerprint for `stop()` requests. A fingerprint is a randomly
781
+ # generated value that must be provided in `stop()` requests to perform
782
+ # optimistic locking. This ensures optimistic concurrency so that the deployment
783
+ # does not have conflicting requests (e.g. if someone attempts to make a new
784
+ # update request while another user attempts to stop an ongoing update request,
785
+ # this would prevent a collision). The fingerprint is initially generated by
786
+ # Deployment Manager and changes after every request to modify a deployment. To
787
+ # get the latest fingerprint value, perform a `get()` request on the deployment.
788
+ # Corresponds to the JSON property `fingerprint`
789
+ # NOTE: Values are automatically base64 encoded/decoded in the client library.
790
+ # @return [String]
791
+ attr_accessor :fingerprint
792
+
793
+ def initialize(**args)
794
+ update!(**args)
795
+ end
796
+
797
+ # Update properties of this object
798
+ def update!(**args)
799
+ @fingerprint = args[:fingerprint] if args.key?(:fingerprint)
800
+ end
801
+ end
802
+
803
+ #
804
+ class Diagnostic
805
+ include Google::Apis::Core::Hashable
806
+
807
+ # JsonPath expression on the resource that if non empty, indicates that this
808
+ # field needs to be extracted as a diagnostic.
809
+ # Corresponds to the JSON property `field`
810
+ # @return [String]
811
+ attr_accessor :field
812
+
813
+ # Level to record this diagnostic.
814
+ # Corresponds to the JSON property `level`
815
+ # @return [String]
816
+ attr_accessor :level
817
+
818
+ def initialize(**args)
819
+ update!(**args)
820
+ end
821
+
822
+ # Update properties of this object
823
+ def update!(**args)
824
+ @field = args[:field] if args.key?(:field)
825
+ @level = args[:level] if args.key?(:level)
826
+ end
827
+ end
828
+
829
+ # Represents a textual expression in the Common Expression Language (CEL) syntax.
830
+ # CEL is a C-like expression language. The syntax and semantics of CEL are
831
+ # documented at https://github.com/google/cel-spec. Example (Comparison): title:
832
+ # "Summary size limit" description: "Determines if a summary is less than 100
833
+ # chars" expression: "document.summary.size() < 100" Example (Equality): title: "
834
+ # Requestor is owner" description: "Determines if requestor is the document
835
+ # owner" expression: "document.owner == request.auth.claims.email" Example (
836
+ # Logic): title: "Public documents" description: "Determine whether the document
837
+ # should be publicly visible" expression: "document.type != 'private' &&
838
+ # document.type != 'internal'" Example (Data Manipulation): title: "Notification
839
+ # string" description: "Create a notification string with a timestamp."
840
+ # expression: "'New message received at ' + string(document.create_time)" The
841
+ # exact variables and functions that may be referenced within an expression are
842
+ # determined by the service that evaluates it. See the service documentation for
843
+ # additional information.
844
+ class Expr
845
+ include Google::Apis::Core::Hashable
846
+
847
+ # Optional. Description of the expression. This is a longer text which describes
848
+ # the expression, e.g. when hovered over it in a UI.
849
+ # Corresponds to the JSON property `description`
850
+ # @return [String]
851
+ attr_accessor :description
852
+
853
+ # Textual representation of an expression in Common Expression Language syntax.
854
+ # Corresponds to the JSON property `expression`
855
+ # @return [String]
856
+ attr_accessor :expression
857
+
858
+ # Optional. String indicating the location of the expression for error reporting,
859
+ # e.g. a file name and a position in the file.
860
+ # Corresponds to the JSON property `location`
861
+ # @return [String]
862
+ attr_accessor :location
863
+
864
+ # Optional. Title for the expression, i.e. a short string describing its purpose.
865
+ # This can be used e.g. in UIs which allow to enter the expression.
866
+ # Corresponds to the JSON property `title`
867
+ # @return [String]
868
+ attr_accessor :title
869
+
870
+ def initialize(**args)
871
+ update!(**args)
872
+ end
873
+
874
+ # Update properties of this object
875
+ def update!(**args)
876
+ @description = args[:description] if args.key?(:description)
877
+ @expression = args[:expression] if args.key?(:expression)
878
+ @location = args[:location] if args.key?(:location)
879
+ @title = args[:title] if args.key?(:title)
880
+ end
881
+ end
882
+
883
+ #
884
+ class GlobalSetPolicyRequest
885
+ include Google::Apis::Core::Hashable
886
+
887
+ # Flatten Policy to create a backward compatible wire-format. Deprecated. Use '
888
+ # policy' to specify bindings.
889
+ # Corresponds to the JSON property `bindings`
890
+ # @return [Array<Google::Apis::DeploymentmanagerAlpha::Binding>]
891
+ attr_accessor :bindings
892
+
893
+ # Flatten Policy to create a backward compatible wire-format. Deprecated. Use '
894
+ # policy' to specify the etag.
895
+ # Corresponds to the JSON property `etag`
896
+ # NOTE: Values are automatically base64 encoded/decoded in the client library.
897
+ # @return [String]
898
+ attr_accessor :etag
899
+
900
+ # An Identity and Access Management (IAM) policy, which specifies access
901
+ # controls for Google Cloud resources. A `Policy` is a collection of `bindings`.
902
+ # A `binding` binds one or more `members` to a single `role`. Members can be
903
+ # user accounts, service accounts, Google groups, and domains (such as G Suite).
904
+ # A `role` is a named list of permissions; each `role` can be an IAM predefined
905
+ # role or a user-created custom role. For some types of Google Cloud resources,
906
+ # a `binding` can also specify a `condition`, which is a logical expression that
907
+ # allows access to a resource only if the expression evaluates to `true`. A
908
+ # condition can add constraints based on attributes of the request, the resource,
909
+ # or both. To learn which resources support conditions in their IAM policies,
910
+ # see the [IAM documentation](https://cloud.google.com/iam/help/conditions/
911
+ # resource-policies). **JSON example:** ` "bindings": [ ` "role": "roles/
912
+ # resourcemanager.organizationAdmin", "members": [ "user:mike@example.com", "
913
+ # group:admins@example.com", "domain:google.com", "serviceAccount:my-project-id@
914
+ # appspot.gserviceaccount.com" ] `, ` "role": "roles/resourcemanager.
915
+ # organizationViewer", "members": [ "user:eve@example.com" ], "condition": ` "
916
+ # title": "expirable access", "description": "Does not grant access after Sep
917
+ # 2020", "expression": "request.time < timestamp('2020-10-01T00:00:00.000Z')", `
918
+ # ` ], "etag": "BwWWja0YfJA=", "version": 3 ` **YAML example:** bindings: -
919
+ # members: - user:mike@example.com - group:admins@example.com - domain:google.
920
+ # com - serviceAccount:my-project-id@appspot.gserviceaccount.com role: roles/
921
+ # resourcemanager.organizationAdmin - members: - user:eve@example.com role:
922
+ # roles/resourcemanager.organizationViewer condition: title: expirable access
923
+ # description: Does not grant access after Sep 2020 expression: request.time <
924
+ # timestamp('2020-10-01T00:00:00.000Z') - etag: BwWWja0YfJA= - version: 3 For a
925
+ # description of IAM and its features, see the [IAM documentation](https://cloud.
926
+ # google.com/iam/docs/).
927
+ # Corresponds to the JSON property `policy`
928
+ # @return [Google::Apis::DeploymentmanagerAlpha::Policy]
929
+ attr_accessor :policy
930
+
931
+ def initialize(**args)
932
+ update!(**args)
933
+ end
934
+
935
+ # Update properties of this object
936
+ def update!(**args)
937
+ @bindings = args[:bindings] if args.key?(:bindings)
938
+ @etag = args[:etag] if args.key?(:etag)
939
+ @policy = args[:policy] if args.key?(:policy)
940
+ end
941
+ end
942
+
943
+ #
944
+ class ImportFile
945
+ include Google::Apis::Core::Hashable
946
+
947
+ # The contents of the file.
948
+ # Corresponds to the JSON property `content`
949
+ # @return [String]
950
+ attr_accessor :content
951
+
952
+ # The name of the file.
953
+ # Corresponds to the JSON property `name`
954
+ # @return [String]
955
+ attr_accessor :name
956
+
957
+ def initialize(**args)
958
+ update!(**args)
959
+ end
960
+
961
+ # Update properties of this object
962
+ def update!(**args)
963
+ @content = args[:content] if args.key?(:content)
964
+ @name = args[:name] if args.key?(:name)
965
+ end
966
+ end
967
+
968
+ # InputMapping creates a 'virtual' property that will be injected into the
969
+ # properties before sending the request to the underlying API.
970
+ class InputMapping
971
+ include Google::Apis::Core::Hashable
972
+
973
+ # The name of the field that is going to be injected.
974
+ # Corresponds to the JSON property `fieldName`
975
+ # @return [String]
976
+ attr_accessor :field_name
977
+
978
+ # The location where this mapping applies.
979
+ # Corresponds to the JSON property `location`
980
+ # @return [String]
981
+ attr_accessor :location
982
+
983
+ # Regex to evaluate on method to decide if input applies.
984
+ # Corresponds to the JSON property `methodMatch`
985
+ # @return [String]
986
+ attr_accessor :method_match
987
+
988
+ # A jsonPath expression to select an element.
989
+ # Corresponds to the JSON property `value`
990
+ # @return [String]
991
+ attr_accessor :value
992
+
993
+ def initialize(**args)
994
+ update!(**args)
995
+ end
996
+
997
+ # Update properties of this object
998
+ def update!(**args)
999
+ @field_name = args[:field_name] if args.key?(:field_name)
1000
+ @location = args[:location] if args.key?(:location)
1001
+ @method_match = args[:method_match] if args.key?(:method_match)
1002
+ @value = args[:value] if args.key?(:value)
1003
+ end
1004
+ end
1005
+
1006
+ #
1007
+ class Manifest
1008
+ include Google::Apis::Core::Hashable
1009
+
1010
+ # Output only. The YAML configuration for this manifest.
1011
+ # Corresponds to the JSON property `config`
1012
+ # @return [Google::Apis::DeploymentmanagerAlpha::ConfigFile]
1013
+ attr_accessor :config
1014
+
1015
+ # Output only. The fully-expanded configuration file, including any templates
1016
+ # and references.
1017
+ # Corresponds to the JSON property `expandedConfig`
1018
+ # @return [String]
1019
+ attr_accessor :expanded_config
1020
+
1021
+ #
1022
+ # Corresponds to the JSON property `id`
1023
+ # @return [Fixnum]
1024
+ attr_accessor :id
1025
+
1026
+ # Output only. The imported files for this manifest.
1027
+ # Corresponds to the JSON property `imports`
1028
+ # @return [Array<Google::Apis::DeploymentmanagerAlpha::ImportFile>]
1029
+ attr_accessor :imports
1030
+
1031
+ # Output only. Creation timestamp in RFC3339 text format.
1032
+ # Corresponds to the JSON property `insertTime`
1033
+ # @return [String]
1034
+ attr_accessor :insert_time
1035
+
1036
+ # Output only. The YAML layout for this manifest.
1037
+ # Corresponds to the JSON property `layout`
1038
+ # @return [String]
1039
+ attr_accessor :layout
1040
+
1041
+ # Output only. The name of the manifest.
1042
+ # Corresponds to the JSON property `name`
1043
+ # @return [String]
1044
+ attr_accessor :name
1045
+
1046
+ # Output only. Self link for the manifest.
1047
+ # Corresponds to the JSON property `selfLink`
1048
+ # @return [String]
1049
+ attr_accessor :self_link
1050
+
1051
+ def initialize(**args)
1052
+ update!(**args)
1053
+ end
1054
+
1055
+ # Update properties of this object
1056
+ def update!(**args)
1057
+ @config = args[:config] if args.key?(:config)
1058
+ @expanded_config = args[:expanded_config] if args.key?(:expanded_config)
1059
+ @id = args[:id] if args.key?(:id)
1060
+ @imports = args[:imports] if args.key?(:imports)
1061
+ @insert_time = args[:insert_time] if args.key?(:insert_time)
1062
+ @layout = args[:layout] if args.key?(:layout)
1063
+ @name = args[:name] if args.key?(:name)
1064
+ @self_link = args[:self_link] if args.key?(:self_link)
1065
+ end
1066
+ end
1067
+
1068
+ # A response containing a partial list of manifests and a page token used to
1069
+ # build the next request if the request has been truncated.
1070
+ class ManifestsListResponse
1071
+ include Google::Apis::Core::Hashable
1072
+
1073
+ # Output only. Manifests contained in this list response.
1074
+ # Corresponds to the JSON property `manifests`
1075
+ # @return [Array<Google::Apis::DeploymentmanagerAlpha::Manifest>]
1076
+ attr_accessor :manifests
1077
+
1078
+ # Output only. A token used to continue a truncated list request.
1079
+ # Corresponds to the JSON property `nextPageToken`
1080
+ # @return [String]
1081
+ attr_accessor :next_page_token
1082
+
1083
+ def initialize(**args)
1084
+ update!(**args)
1085
+ end
1086
+
1087
+ # Update properties of this object
1088
+ def update!(**args)
1089
+ @manifests = args[:manifests] if args.key?(:manifests)
1090
+ @next_page_token = args[:next_page_token] if args.key?(:next_page_token)
1091
+ end
1092
+ end
1093
+
1094
+ # Deployment Manager will call these methods during the events of creation/
1095
+ # deletion/update/get/setIamPolicy
1096
+ class MethodMap
1097
+ include Google::Apis::Core::Hashable
1098
+
1099
+ # The action identifier for the create method to be used for this collection
1100
+ # Corresponds to the JSON property `create`
1101
+ # @return [String]
1102
+ attr_accessor :create
1103
+
1104
+ # The action identifier for the delete method to be used for this collection
1105
+ # Corresponds to the JSON property `delete`
1106
+ # @return [String]
1107
+ attr_accessor :delete
1108
+
1109
+ # The action identifier for the get method to be used for this collection
1110
+ # Corresponds to the JSON property `get`
1111
+ # @return [String]
1112
+ attr_accessor :get
1113
+
1114
+ # The action identifier for the setIamPolicy method to be used for this
1115
+ # collection
1116
+ # Corresponds to the JSON property `setIamPolicy`
1117
+ # @return [String]
1118
+ attr_accessor :set_iam_policy
1119
+
1120
+ # The action identifier for the update method to be used for this collection
1121
+ # Corresponds to the JSON property `update`
1122
+ # @return [String]
1123
+ attr_accessor :update
1124
+
1125
+ def initialize(**args)
1126
+ update!(**args)
1127
+ end
1128
+
1129
+ # Update properties of this object
1130
+ def update!(**args)
1131
+ @create = args[:create] if args.key?(:create)
1132
+ @delete = args[:delete] if args.key?(:delete)
1133
+ @get = args[:get] if args.key?(:get)
1134
+ @set_iam_policy = args[:set_iam_policy] if args.key?(:set_iam_policy)
1135
+ @update = args[:update] if args.key?(:update)
1136
+ end
1137
+ end
1138
+
1139
+ # Represents an Operation resource. Google Compute Engine has three Operation
1140
+ # resources: * [Global](/compute/docs/reference/rest/`$api_version`/
1141
+ # globalOperations) * [Regional](/compute/docs/reference/rest/`$api_version`/
1142
+ # regionOperations) * [Zonal](/compute/docs/reference/rest/`$api_version`/
1143
+ # zoneOperations) You can use an operation resource to manage asynchronous API
1144
+ # requests. For more information, read Handling API responses. Operations can be
1145
+ # global, regional or zonal. - For global operations, use the `globalOperations`
1146
+ # resource. - For regional operations, use the `regionOperations` resource. -
1147
+ # For zonal operations, use the `zonalOperations` resource. For more information,
1148
+ # read Global, Regional, and Zonal Resources.
1149
+ class Operation
1150
+ include Google::Apis::Core::Hashable
1151
+
1152
+ # [Output Only] The value of `requestId` if you provided it in the request. Not
1153
+ # present otherwise.
1154
+ # Corresponds to the JSON property `clientOperationId`
1155
+ # @return [String]
1156
+ attr_accessor :client_operation_id
1157
+
1158
+ # [Deprecated] This field is deprecated.
1159
+ # Corresponds to the JSON property `creationTimestamp`
1160
+ # @return [String]
1161
+ attr_accessor :creation_timestamp
1162
+
1163
+ # [Output Only] A textual description of the operation, which is set when the
1164
+ # operation is created.
1165
+ # Corresponds to the JSON property `description`
1166
+ # @return [String]
1167
+ attr_accessor :description
1168
+
1169
+ # [Output Only] The time that this operation was completed. This value is in
1170
+ # RFC3339 text format.
1171
+ # Corresponds to the JSON property `endTime`
1172
+ # @return [String]
1173
+ attr_accessor :end_time
1174
+
1175
+ # [Output Only] If errors are generated during processing of the operation, this
1176
+ # field will be populated.
1177
+ # Corresponds to the JSON property `error`
1178
+ # @return [Google::Apis::DeploymentmanagerAlpha::Operation::Error]
1179
+ attr_accessor :error
1180
+
1181
+ # [Output Only] If the operation fails, this field contains the HTTP error
1182
+ # message that was returned, such as `NOT FOUND`.
1183
+ # Corresponds to the JSON property `httpErrorMessage`
1184
+ # @return [String]
1185
+ attr_accessor :http_error_message
1186
+
1187
+ # [Output Only] If the operation fails, this field contains the HTTP error
1188
+ # status code that was returned. For example, a `404` means the resource was not
1189
+ # found.
1190
+ # Corresponds to the JSON property `httpErrorStatusCode`
1191
+ # @return [Fixnum]
1192
+ attr_accessor :http_error_status_code
1193
+
1194
+ # [Output Only] The unique identifier for the operation. This identifier is
1195
+ # defined by the server.
1196
+ # Corresponds to the JSON property `id`
1197
+ # @return [Fixnum]
1198
+ attr_accessor :id
1199
+
1200
+ # [Output Only] The time that this operation was requested. This value is in
1201
+ # RFC3339 text format.
1202
+ # Corresponds to the JSON property `insertTime`
1203
+ # @return [String]
1204
+ attr_accessor :insert_time
1205
+
1206
+ # [Output Only] Type of the resource. Always `compute#operation` for Operation
1207
+ # resources.
1208
+ # Corresponds to the JSON property `kind`
1209
+ # @return [String]
1210
+ attr_accessor :kind
1211
+
1212
+ # [Output Only] Name of the operation.
1213
+ # Corresponds to the JSON property `name`
1214
+ # @return [String]
1215
+ attr_accessor :name
1216
+
1217
+ # [Output Only] The type of operation, such as `insert`, `update`, or `delete`,
1218
+ # and so on.
1219
+ # Corresponds to the JSON property `operationType`
1220
+ # @return [String]
1221
+ attr_accessor :operation_type
1222
+
1223
+ # [Output Only] An optional progress indicator that ranges from 0 to 100. There
1224
+ # is no requirement that this be linear or support any granularity of operations.
1225
+ # This should not be used to guess when the operation will be complete. This
1226
+ # number should monotonically increase as the operation progresses.
1227
+ # Corresponds to the JSON property `progress`
1228
+ # @return [Fixnum]
1229
+ attr_accessor :progress
1230
+
1231
+ # [Output Only] The URL of the region where the operation resides. Only
1232
+ # applicable when performing regional operations.
1233
+ # Corresponds to the JSON property `region`
1234
+ # @return [String]
1235
+ attr_accessor :region
1236
+
1237
+ # [Output Only] Server-defined URL for the resource.
1238
+ # Corresponds to the JSON property `selfLink`
1239
+ # @return [String]
1240
+ attr_accessor :self_link
1241
+
1242
+ # [Output Only] The time that this operation was started by the server. This
1243
+ # value is in RFC3339 text format.
1244
+ # Corresponds to the JSON property `startTime`
1245
+ # @return [String]
1246
+ attr_accessor :start_time
1247
+
1248
+ # [Output Only] The status of the operation, which can be one of the following: `
1249
+ # PENDING`, `RUNNING`, or `DONE`.
1250
+ # Corresponds to the JSON property `status`
1251
+ # @return [String]
1252
+ attr_accessor :status
1253
+
1254
+ # [Output Only] An optional textual description of the current status of the
1255
+ # operation.
1256
+ # Corresponds to the JSON property `statusMessage`
1257
+ # @return [String]
1258
+ attr_accessor :status_message
1259
+
1260
+ # [Output Only] The unique target ID, which identifies a specific incarnation of
1261
+ # the target resource.
1262
+ # Corresponds to the JSON property `targetId`
1263
+ # @return [Fixnum]
1264
+ attr_accessor :target_id
1265
+
1266
+ # [Output Only] The URL of the resource that the operation modifies. For
1267
+ # operations related to creating a snapshot, this points to the persistent disk
1268
+ # that the snapshot was created from.
1269
+ # Corresponds to the JSON property `targetLink`
1270
+ # @return [String]
1271
+ attr_accessor :target_link
1272
+
1273
+ # [Output Only] User who requested the operation, for example: `user@example.com`
1274
+ # .
1275
+ # Corresponds to the JSON property `user`
1276
+ # @return [String]
1277
+ attr_accessor :user
1278
+
1279
+ # [Output Only] If warning messages are generated during processing of the
1280
+ # operation, this field will be populated.
1281
+ # Corresponds to the JSON property `warnings`
1282
+ # @return [Array<Google::Apis::DeploymentmanagerAlpha::Operation::Warning>]
1283
+ attr_accessor :warnings
1284
+
1285
+ # [Output Only] The URL of the zone where the operation resides. Only applicable
1286
+ # when performing per-zone operations.
1287
+ # Corresponds to the JSON property `zone`
1288
+ # @return [String]
1289
+ attr_accessor :zone
1290
+
1291
+ def initialize(**args)
1292
+ update!(**args)
1293
+ end
1294
+
1295
+ # Update properties of this object
1296
+ def update!(**args)
1297
+ @client_operation_id = args[:client_operation_id] if args.key?(:client_operation_id)
1298
+ @creation_timestamp = args[:creation_timestamp] if args.key?(:creation_timestamp)
1299
+ @description = args[:description] if args.key?(:description)
1300
+ @end_time = args[:end_time] if args.key?(:end_time)
1301
+ @error = args[:error] if args.key?(:error)
1302
+ @http_error_message = args[:http_error_message] if args.key?(:http_error_message)
1303
+ @http_error_status_code = args[:http_error_status_code] if args.key?(:http_error_status_code)
1304
+ @id = args[:id] if args.key?(:id)
1305
+ @insert_time = args[:insert_time] if args.key?(:insert_time)
1306
+ @kind = args[:kind] if args.key?(:kind)
1307
+ @name = args[:name] if args.key?(:name)
1308
+ @operation_type = args[:operation_type] if args.key?(:operation_type)
1309
+ @progress = args[:progress] if args.key?(:progress)
1310
+ @region = args[:region] if args.key?(:region)
1311
+ @self_link = args[:self_link] if args.key?(:self_link)
1312
+ @start_time = args[:start_time] if args.key?(:start_time)
1313
+ @status = args[:status] if args.key?(:status)
1314
+ @status_message = args[:status_message] if args.key?(:status_message)
1315
+ @target_id = args[:target_id] if args.key?(:target_id)
1316
+ @target_link = args[:target_link] if args.key?(:target_link)
1317
+ @user = args[:user] if args.key?(:user)
1318
+ @warnings = args[:warnings] if args.key?(:warnings)
1319
+ @zone = args[:zone] if args.key?(:zone)
1320
+ end
1321
+
1322
+ # [Output Only] If errors are generated during processing of the operation, this
1323
+ # field will be populated.
1324
+ class Error
1325
+ include Google::Apis::Core::Hashable
1326
+
1327
+ # [Output Only] The array of errors encountered while processing this operation.
1328
+ # Corresponds to the JSON property `errors`
1329
+ # @return [Array<Google::Apis::DeploymentmanagerAlpha::Operation::Error::Error>]
1330
+ attr_accessor :errors
1331
+
1332
+ def initialize(**args)
1333
+ update!(**args)
1334
+ end
1335
+
1336
+ # Update properties of this object
1337
+ def update!(**args)
1338
+ @errors = args[:errors] if args.key?(:errors)
1339
+ end
1340
+
1341
+ #
1342
+ class Error
1343
+ include Google::Apis::Core::Hashable
1344
+
1345
+ # [Output Only] The error type identifier for this error.
1346
+ # Corresponds to the JSON property `code`
1347
+ # @return [String]
1348
+ attr_accessor :code
1349
+
1350
+ # [Output Only] Indicates the field in the request that caused the error. This
1351
+ # property is optional.
1352
+ # Corresponds to the JSON property `location`
1353
+ # @return [String]
1354
+ attr_accessor :location
1355
+
1356
+ # [Output Only] An optional, human-readable error message.
1357
+ # Corresponds to the JSON property `message`
1358
+ # @return [String]
1359
+ attr_accessor :message
1360
+
1361
+ def initialize(**args)
1362
+ update!(**args)
1363
+ end
1364
+
1365
+ # Update properties of this object
1366
+ def update!(**args)
1367
+ @code = args[:code] if args.key?(:code)
1368
+ @location = args[:location] if args.key?(:location)
1369
+ @message = args[:message] if args.key?(:message)
1370
+ end
1371
+ end
1372
+ end
1373
+
1374
+ #
1375
+ class Warning
1376
+ include Google::Apis::Core::Hashable
1377
+
1378
+ # [Output Only] A warning code, if applicable. For example, Compute Engine
1379
+ # returns NO_RESULTS_ON_PAGE if there are no results in the response.
1380
+ # Corresponds to the JSON property `code`
1381
+ # @return [String]
1382
+ attr_accessor :code
1383
+
1384
+ # [Output Only] Metadata about this warning in key: value format. For example: "
1385
+ # data": [ ` "key": "scope", "value": "zones/us-east1-d" `
1386
+ # Corresponds to the JSON property `data`
1387
+ # @return [Array<Google::Apis::DeploymentmanagerAlpha::Operation::Warning::Datum>]
1388
+ attr_accessor :data
1389
+
1390
+ # [Output Only] A human-readable description of the warning code.
1391
+ # Corresponds to the JSON property `message`
1392
+ # @return [String]
1393
+ attr_accessor :message
1394
+
1395
+ def initialize(**args)
1396
+ update!(**args)
1397
+ end
1398
+
1399
+ # Update properties of this object
1400
+ def update!(**args)
1401
+ @code = args[:code] if args.key?(:code)
1402
+ @data = args[:data] if args.key?(:data)
1403
+ @message = args[:message] if args.key?(:message)
1404
+ end
1405
+
1406
+ #
1407
+ class Datum
1408
+ include Google::Apis::Core::Hashable
1409
+
1410
+ # [Output Only] A key that provides more detail on the warning being returned.
1411
+ # For example, for warnings where there are no results in a list request for a
1412
+ # particular zone, this key might be scope and the key value might be the zone
1413
+ # name. Other examples might be a key indicating a deprecated resource and a
1414
+ # suggested replacement, or a warning about invalid network settings (for
1415
+ # example, if an instance attempts to perform IP forwarding but is not enabled
1416
+ # for IP forwarding).
1417
+ # Corresponds to the JSON property `key`
1418
+ # @return [String]
1419
+ attr_accessor :key
1420
+
1421
+ # [Output Only] A warning data value corresponding to the key.
1422
+ # Corresponds to the JSON property `value`
1423
+ # @return [String]
1424
+ attr_accessor :value
1425
+
1426
+ def initialize(**args)
1427
+ update!(**args)
1428
+ end
1429
+
1430
+ # Update properties of this object
1431
+ def update!(**args)
1432
+ @key = args[:key] if args.key?(:key)
1433
+ @value = args[:value] if args.key?(:value)
1434
+ end
1435
+ end
1436
+ end
1437
+ end
1438
+
1439
+ # A response containing a partial list of operations and a page token used to
1440
+ # build the next request if the request has been truncated.
1441
+ class OperationsListResponse
1442
+ include Google::Apis::Core::Hashable
1443
+
1444
+ # Output only. A token used to continue a truncated list request.
1445
+ # Corresponds to the JSON property `nextPageToken`
1446
+ # @return [String]
1447
+ attr_accessor :next_page_token
1448
+
1449
+ # Output only. Operations contained in this list response.
1450
+ # Corresponds to the JSON property `operations`
1451
+ # @return [Array<Google::Apis::DeploymentmanagerAlpha::Operation>]
1452
+ attr_accessor :operations
1453
+
1454
+ def initialize(**args)
1455
+ update!(**args)
1456
+ end
1457
+
1458
+ # Update properties of this object
1459
+ def update!(**args)
1460
+ @next_page_token = args[:next_page_token] if args.key?(:next_page_token)
1461
+ @operations = args[:operations] if args.key?(:operations)
1462
+ end
1463
+ end
1464
+
1465
+ # Options allows customized resource handling by Deployment Manager.
1466
+ class Options
1467
+ include Google::Apis::Core::Hashable
1468
+
1469
+ # Options regarding how to thread async requests.
1470
+ # Corresponds to the JSON property `asyncOptions`
1471
+ # @return [Array<Google::Apis::DeploymentmanagerAlpha::AsyncOptions>]
1472
+ attr_accessor :async_options
1473
+
1474
+ # The mappings that apply for requests.
1475
+ # Corresponds to the JSON property `inputMappings`
1476
+ # @return [Array<Google::Apis::DeploymentmanagerAlpha::InputMapping>]
1477
+ attr_accessor :input_mappings
1478
+
1479
+ # The json path to the field in the resource JSON body into which the resource
1480
+ # name should be mapped. Leaving this empty indicates that there should be no
1481
+ # mapping performed.
1482
+ # Corresponds to the JSON property `nameProperty`
1483
+ # @return [String]
1484
+ attr_accessor :name_property
1485
+
1486
+ # Options for how to validate and process properties on a resource.
1487
+ # Corresponds to the JSON property `validationOptions`
1488
+ # @return [Google::Apis::DeploymentmanagerAlpha::ValidationOptions]
1489
+ attr_accessor :validation_options
1490
+
1491
+ def initialize(**args)
1492
+ update!(**args)
1493
+ end
1494
+
1495
+ # Update properties of this object
1496
+ def update!(**args)
1497
+ @async_options = args[:async_options] if args.key?(:async_options)
1498
+ @input_mappings = args[:input_mappings] if args.key?(:input_mappings)
1499
+ @name_property = args[:name_property] if args.key?(:name_property)
1500
+ @validation_options = args[:validation_options] if args.key?(:validation_options)
1501
+ end
1502
+ end
1503
+
1504
+ # An Identity and Access Management (IAM) policy, which specifies access
1505
+ # controls for Google Cloud resources. A `Policy` is a collection of `bindings`.
1506
+ # A `binding` binds one or more `members` to a single `role`. Members can be
1507
+ # user accounts, service accounts, Google groups, and domains (such as G Suite).
1508
+ # A `role` is a named list of permissions; each `role` can be an IAM predefined
1509
+ # role or a user-created custom role. For some types of Google Cloud resources,
1510
+ # a `binding` can also specify a `condition`, which is a logical expression that
1511
+ # allows access to a resource only if the expression evaluates to `true`. A
1512
+ # condition can add constraints based on attributes of the request, the resource,
1513
+ # or both. To learn which resources support conditions in their IAM policies,
1514
+ # see the [IAM documentation](https://cloud.google.com/iam/help/conditions/
1515
+ # resource-policies). **JSON example:** ` "bindings": [ ` "role": "roles/
1516
+ # resourcemanager.organizationAdmin", "members": [ "user:mike@example.com", "
1517
+ # group:admins@example.com", "domain:google.com", "serviceAccount:my-project-id@
1518
+ # appspot.gserviceaccount.com" ] `, ` "role": "roles/resourcemanager.
1519
+ # organizationViewer", "members": [ "user:eve@example.com" ], "condition": ` "
1520
+ # title": "expirable access", "description": "Does not grant access after Sep
1521
+ # 2020", "expression": "request.time < timestamp('2020-10-01T00:00:00.000Z')", `
1522
+ # ` ], "etag": "BwWWja0YfJA=", "version": 3 ` **YAML example:** bindings: -
1523
+ # members: - user:mike@example.com - group:admins@example.com - domain:google.
1524
+ # com - serviceAccount:my-project-id@appspot.gserviceaccount.com role: roles/
1525
+ # resourcemanager.organizationAdmin - members: - user:eve@example.com role:
1526
+ # roles/resourcemanager.organizationViewer condition: title: expirable access
1527
+ # description: Does not grant access after Sep 2020 expression: request.time <
1528
+ # timestamp('2020-10-01T00:00:00.000Z') - etag: BwWWja0YfJA= - version: 3 For a
1529
+ # description of IAM and its features, see the [IAM documentation](https://cloud.
1530
+ # google.com/iam/docs/).
1531
+ class Policy
1532
+ include Google::Apis::Core::Hashable
1533
+
1534
+ # Specifies cloud audit logging configuration for this policy.
1535
+ # Corresponds to the JSON property `auditConfigs`
1536
+ # @return [Array<Google::Apis::DeploymentmanagerAlpha::AuditConfig>]
1537
+ attr_accessor :audit_configs
1538
+
1539
+ # Associates a list of `members` to a `role`. Optionally, may specify a `
1540
+ # condition` that determines how and when the `bindings` are applied. Each of
1541
+ # the `bindings` must contain at least one member.
1542
+ # Corresponds to the JSON property `bindings`
1543
+ # @return [Array<Google::Apis::DeploymentmanagerAlpha::Binding>]
1544
+ attr_accessor :bindings
1545
+
1546
+ # `etag` is used for optimistic concurrency control as a way to help prevent
1547
+ # simultaneous updates of a policy from overwriting each other. It is strongly
1548
+ # suggested that systems make use of the `etag` in the read-modify-write cycle
1549
+ # to perform policy updates in order to avoid race conditions: An `etag` is
1550
+ # returned in the response to `getIamPolicy`, and systems are expected to put
1551
+ # that etag in the request to `setIamPolicy` to ensure that their change will be
1552
+ # applied to the same version of the policy. **Important:** If you use IAM
1553
+ # Conditions, you must include the `etag` field whenever you call `setIamPolicy`.
1554
+ # If you omit this field, then IAM allows you to overwrite a version `3` policy
1555
+ # with a version `1` policy, and all of the conditions in the version `3` policy
1556
+ # are lost.
1557
+ # Corresponds to the JSON property `etag`
1558
+ # NOTE: Values are automatically base64 encoded/decoded in the client library.
1559
+ # @return [String]
1560
+ attr_accessor :etag
1561
+
1562
+ # Specifies the format of the policy. Valid values are `0`, `1`, and `3`.
1563
+ # Requests that specify an invalid value are rejected. Any operation that
1564
+ # affects conditional role bindings must specify version `3`. This requirement
1565
+ # applies to the following operations: * Getting a policy that includes a
1566
+ # conditional role binding * Adding a conditional role binding to a policy *
1567
+ # Changing a conditional role binding in a policy * Removing any role binding,
1568
+ # with or without a condition, from a policy that includes conditions **
1569
+ # Important:** If you use IAM Conditions, you must include the `etag` field
1570
+ # whenever you call `setIamPolicy`. If you omit this field, then IAM allows you
1571
+ # to overwrite a version `3` policy with a version `1` policy, and all of the
1572
+ # conditions in the version `3` policy are lost. If a policy does not include
1573
+ # any conditions, operations on that policy may specify any valid version or
1574
+ # leave the field unset. To learn which resources support conditions in their
1575
+ # IAM policies, see the [IAM documentation](https://cloud.google.com/iam/help/
1576
+ # conditions/resource-policies).
1577
+ # Corresponds to the JSON property `version`
1578
+ # @return [Fixnum]
1579
+ attr_accessor :version
1580
+
1581
+ def initialize(**args)
1582
+ update!(**args)
1583
+ end
1584
+
1585
+ # Update properties of this object
1586
+ def update!(**args)
1587
+ @audit_configs = args[:audit_configs] if args.key?(:audit_configs)
1588
+ @bindings = args[:bindings] if args.key?(:bindings)
1589
+ @etag = args[:etag] if args.key?(:etag)
1590
+ @version = args[:version] if args.key?(:version)
1591
+ end
1592
+ end
1593
+
1594
+ #
1595
+ class PollingOptions
1596
+ include Google::Apis::Core::Hashable
1597
+
1598
+ # An array of diagnostics to be collected by Deployment Manager, these
1599
+ # diagnostics will be displayed to the user.
1600
+ # Corresponds to the JSON property `diagnostics`
1601
+ # @return [Array<Google::Apis::DeploymentmanagerAlpha::Diagnostic>]
1602
+ attr_accessor :diagnostics
1603
+
1604
+ # JsonPath expression that determines if the request failed.
1605
+ # Corresponds to the JSON property `failCondition`
1606
+ # @return [String]
1607
+ attr_accessor :fail_condition
1608
+
1609
+ # JsonPath expression that determines if the request is completed.
1610
+ # Corresponds to the JSON property `finishCondition`
1611
+ # @return [String]
1612
+ attr_accessor :finish_condition
1613
+
1614
+ # JsonPath expression that evaluates to string, it indicates where to poll.
1615
+ # Corresponds to the JSON property `pollingLink`
1616
+ # @return [String]
1617
+ attr_accessor :polling_link
1618
+
1619
+ # JsonPath expression, after polling is completed, indicates where to fetch the
1620
+ # resource.
1621
+ # Corresponds to the JSON property `targetLink`
1622
+ # @return [String]
1623
+ attr_accessor :target_link
1624
+
1625
+ def initialize(**args)
1626
+ update!(**args)
1627
+ end
1628
+
1629
+ # Update properties of this object
1630
+ def update!(**args)
1631
+ @diagnostics = args[:diagnostics] if args.key?(:diagnostics)
1632
+ @fail_condition = args[:fail_condition] if args.key?(:fail_condition)
1633
+ @finish_condition = args[:finish_condition] if args.key?(:finish_condition)
1634
+ @polling_link = args[:polling_link] if args.key?(:polling_link)
1635
+ @target_link = args[:target_link] if args.key?(:target_link)
1636
+ end
1637
+ end
1638
+
1639
+ #
1640
+ class Resource
1641
+ include Google::Apis::Core::Hashable
1642
+
1643
+ # The access controls set on the resource.
1644
+ # Corresponds to the JSON property `accessControl`
1645
+ # @return [Google::Apis::DeploymentmanagerAlpha::ResourceAccessControl]
1646
+ attr_accessor :access_control
1647
+
1648
+ # Output only. The evaluated properties of the resource with references expanded.
1649
+ # Returned as serialized YAML.
1650
+ # Corresponds to the JSON property `finalProperties`
1651
+ # @return [String]
1652
+ attr_accessor :final_properties
1653
+
1654
+ #
1655
+ # Corresponds to the JSON property `id`
1656
+ # @return [Fixnum]
1657
+ attr_accessor :id
1658
+
1659
+ # Output only. Creation timestamp in RFC3339 text format.
1660
+ # Corresponds to the JSON property `insertTime`
1661
+ # @return [String]
1662
+ attr_accessor :insert_time
1663
+
1664
+ # The credential used by Deployment Manager and TypeProvider. Only one of the
1665
+ # options is permitted.
1666
+ # Corresponds to the JSON property `lastUsedCredential`
1667
+ # @return [Google::Apis::DeploymentmanagerAlpha::Credential]
1668
+ attr_accessor :last_used_credential
1669
+
1670
+ # Output only. URL of the manifest representing the current configuration of
1671
+ # this resource.
1672
+ # Corresponds to the JSON property `manifest`
1673
+ # @return [String]
1674
+ attr_accessor :manifest
1675
+
1676
+ # Output only. The name of the resource as it appears in the YAML config.
1677
+ # Corresponds to the JSON property `name`
1678
+ # @return [String]
1679
+ attr_accessor :name
1680
+
1681
+ # Output only. The current properties of the resource before any references have
1682
+ # been filled in. Returned as serialized YAML.
1683
+ # Corresponds to the JSON property `properties`
1684
+ # @return [String]
1685
+ attr_accessor :properties
1686
+
1687
+ # Output only. In case this is an action, it will show the runtimePolicies on
1688
+ # which this action will run in the deployment
1689
+ # Corresponds to the JSON property `runtimePolicies`
1690
+ # @return [Array<String>]
1691
+ attr_accessor :runtime_policies
1692
+
1693
+ # Output only. The type of the resource, for example `compute.v1.instance`, or `
1694
+ # cloudfunctions.v1beta1.function`.
1695
+ # Corresponds to the JSON property `type`
1696
+ # @return [String]
1697
+ attr_accessor :type
1698
+
1699
+ # Output only. If Deployment Manager is currently updating or previewing an
1700
+ # update to this resource, the updated configuration appears here.
1701
+ # Corresponds to the JSON property `update`
1702
+ # @return [Google::Apis::DeploymentmanagerAlpha::ResourceUpdate]
1703
+ attr_accessor :update
1704
+
1705
+ # Output only. Update timestamp in RFC3339 text format.
1706
+ # Corresponds to the JSON property `updateTime`
1707
+ # @return [String]
1708
+ attr_accessor :update_time
1709
+
1710
+ # Output only. The URL of the actual resource.
1711
+ # Corresponds to the JSON property `url`
1712
+ # @return [String]
1713
+ attr_accessor :url
1714
+
1715
+ # Output only. If warning messages are generated during processing of this
1716
+ # resource, this field will be populated.
1717
+ # Corresponds to the JSON property `warnings`
1718
+ # @return [Array<Google::Apis::DeploymentmanagerAlpha::Resource::Warning>]
1719
+ attr_accessor :warnings
1720
+
1721
+ def initialize(**args)
1722
+ update!(**args)
1723
+ end
1724
+
1725
+ # Update properties of this object
1726
+ def update!(**args)
1727
+ @access_control = args[:access_control] if args.key?(:access_control)
1728
+ @final_properties = args[:final_properties] if args.key?(:final_properties)
1729
+ @id = args[:id] if args.key?(:id)
1730
+ @insert_time = args[:insert_time] if args.key?(:insert_time)
1731
+ @last_used_credential = args[:last_used_credential] if args.key?(:last_used_credential)
1732
+ @manifest = args[:manifest] if args.key?(:manifest)
1733
+ @name = args[:name] if args.key?(:name)
1734
+ @properties = args[:properties] if args.key?(:properties)
1735
+ @runtime_policies = args[:runtime_policies] if args.key?(:runtime_policies)
1736
+ @type = args[:type] if args.key?(:type)
1737
+ @update = args[:update] if args.key?(:update)
1738
+ @update_time = args[:update_time] if args.key?(:update_time)
1739
+ @url = args[:url] if args.key?(:url)
1740
+ @warnings = args[:warnings] if args.key?(:warnings)
1741
+ end
1742
+
1743
+ #
1744
+ class Warning
1745
+ include Google::Apis::Core::Hashable
1746
+
1747
+ # [Output Only] A warning code, if applicable. For example, Compute Engine
1748
+ # returns NO_RESULTS_ON_PAGE if there are no results in the response.
1749
+ # Corresponds to the JSON property `code`
1750
+ # @return [String]
1751
+ attr_accessor :code
1752
+
1753
+ # [Output Only] Metadata about this warning in key: value format. For example: "
1754
+ # data": [ ` "key": "scope", "value": "zones/us-east1-d" `
1755
+ # Corresponds to the JSON property `data`
1756
+ # @return [Array<Google::Apis::DeploymentmanagerAlpha::Resource::Warning::Datum>]
1757
+ attr_accessor :data
1758
+
1759
+ # [Output Only] A human-readable description of the warning code.
1760
+ # Corresponds to the JSON property `message`
1761
+ # @return [String]
1762
+ attr_accessor :message
1763
+
1764
+ def initialize(**args)
1765
+ update!(**args)
1766
+ end
1767
+
1768
+ # Update properties of this object
1769
+ def update!(**args)
1770
+ @code = args[:code] if args.key?(:code)
1771
+ @data = args[:data] if args.key?(:data)
1772
+ @message = args[:message] if args.key?(:message)
1773
+ end
1774
+
1775
+ #
1776
+ class Datum
1777
+ include Google::Apis::Core::Hashable
1778
+
1779
+ # [Output Only] A key that provides more detail on the warning being returned.
1780
+ # For example, for warnings where there are no results in a list request for a
1781
+ # particular zone, this key might be scope and the key value might be the zone
1782
+ # name. Other examples might be a key indicating a deprecated resource and a
1783
+ # suggested replacement, or a warning about invalid network settings (for
1784
+ # example, if an instance attempts to perform IP forwarding but is not enabled
1785
+ # for IP forwarding).
1786
+ # Corresponds to the JSON property `key`
1787
+ # @return [String]
1788
+ attr_accessor :key
1789
+
1790
+ # [Output Only] A warning data value corresponding to the key.
1791
+ # Corresponds to the JSON property `value`
1792
+ # @return [String]
1793
+ attr_accessor :value
1794
+
1795
+ def initialize(**args)
1796
+ update!(**args)
1797
+ end
1798
+
1799
+ # Update properties of this object
1800
+ def update!(**args)
1801
+ @key = args[:key] if args.key?(:key)
1802
+ @value = args[:value] if args.key?(:value)
1803
+ end
1804
+ end
1805
+ end
1806
+ end
1807
+
1808
+ # The access controls set on the resource.
1809
+ class ResourceAccessControl
1810
+ include Google::Apis::Core::Hashable
1811
+
1812
+ # The GCP IAM Policy to set on the resource.
1813
+ # Corresponds to the JSON property `gcpIamPolicy`
1814
+ # @return [String]
1815
+ attr_accessor :gcp_iam_policy
1816
+
1817
+ def initialize(**args)
1818
+ update!(**args)
1819
+ end
1820
+
1821
+ # Update properties of this object
1822
+ def update!(**args)
1823
+ @gcp_iam_policy = args[:gcp_iam_policy] if args.key?(:gcp_iam_policy)
1824
+ end
1825
+ end
1826
+
1827
+ #
1828
+ class ResourceUpdate
1829
+ include Google::Apis::Core::Hashable
1830
+
1831
+ # The access controls set on the resource.
1832
+ # Corresponds to the JSON property `accessControl`
1833
+ # @return [Google::Apis::DeploymentmanagerAlpha::ResourceAccessControl]
1834
+ attr_accessor :access_control
1835
+
1836
+ # The credential used by Deployment Manager and TypeProvider. Only one of the
1837
+ # options is permitted.
1838
+ # Corresponds to the JSON property `credential`
1839
+ # @return [Google::Apis::DeploymentmanagerAlpha::Credential]
1840
+ attr_accessor :credential
1841
+
1842
+ # Output only. If errors are generated during update of the resource, this field
1843
+ # will be populated.
1844
+ # Corresponds to the JSON property `error`
1845
+ # @return [Google::Apis::DeploymentmanagerAlpha::ResourceUpdate::Error]
1846
+ attr_accessor :error
1847
+
1848
+ # Output only. The expanded properties of the resource with reference values
1849
+ # expanded. Returned as serialized YAML.
1850
+ # Corresponds to the JSON property `finalProperties`
1851
+ # @return [String]
1852
+ attr_accessor :final_properties
1853
+
1854
+ # Output only. The intent of the resource: `PREVIEW`, `UPDATE`, or `CANCEL`.
1855
+ # Corresponds to the JSON property `intent`
1856
+ # @return [String]
1857
+ attr_accessor :intent
1858
+
1859
+ # Output only. URL of the manifest representing the update configuration of this
1860
+ # resource.
1861
+ # Corresponds to the JSON property `manifest`
1862
+ # @return [String]
1863
+ attr_accessor :manifest
1864
+
1865
+ # Output only. The set of updated properties for this resource, before
1866
+ # references are expanded. Returned as serialized YAML.
1867
+ # Corresponds to the JSON property `properties`
1868
+ # @return [String]
1869
+ attr_accessor :properties
1870
+
1871
+ # Output only. In case this is an action, it will show the runtimePolicies that
1872
+ # this action will have after updating the deployment.
1873
+ # Corresponds to the JSON property `runtimePolicies`
1874
+ # @return [Array<String>]
1875
+ attr_accessor :runtime_policies
1876
+
1877
+ # Output only. The state of the resource.
1878
+ # Corresponds to the JSON property `state`
1879
+ # @return [String]
1880
+ attr_accessor :state
1881
+
1882
+ # Output only. If warning messages are generated during processing of this
1883
+ # resource, this field will be populated.
1884
+ # Corresponds to the JSON property `warnings`
1885
+ # @return [Array<Google::Apis::DeploymentmanagerAlpha::ResourceUpdate::Warning>]
1886
+ attr_accessor :warnings
1887
+
1888
+ def initialize(**args)
1889
+ update!(**args)
1890
+ end
1891
+
1892
+ # Update properties of this object
1893
+ def update!(**args)
1894
+ @access_control = args[:access_control] if args.key?(:access_control)
1895
+ @credential = args[:credential] if args.key?(:credential)
1896
+ @error = args[:error] if args.key?(:error)
1897
+ @final_properties = args[:final_properties] if args.key?(:final_properties)
1898
+ @intent = args[:intent] if args.key?(:intent)
1899
+ @manifest = args[:manifest] if args.key?(:manifest)
1900
+ @properties = args[:properties] if args.key?(:properties)
1901
+ @runtime_policies = args[:runtime_policies] if args.key?(:runtime_policies)
1902
+ @state = args[:state] if args.key?(:state)
1903
+ @warnings = args[:warnings] if args.key?(:warnings)
1904
+ end
1905
+
1906
+ # Output only. If errors are generated during update of the resource, this field
1907
+ # will be populated.
1908
+ class Error
1909
+ include Google::Apis::Core::Hashable
1910
+
1911
+ # [Output Only] The array of errors encountered while processing this operation.
1912
+ # Corresponds to the JSON property `errors`
1913
+ # @return [Array<Google::Apis::DeploymentmanagerAlpha::ResourceUpdate::Error::Error>]
1914
+ attr_accessor :errors
1915
+
1916
+ def initialize(**args)
1917
+ update!(**args)
1918
+ end
1919
+
1920
+ # Update properties of this object
1921
+ def update!(**args)
1922
+ @errors = args[:errors] if args.key?(:errors)
1923
+ end
1924
+
1925
+ #
1926
+ class Error
1927
+ include Google::Apis::Core::Hashable
1928
+
1929
+ # [Output Only] The error type identifier for this error.
1930
+ # Corresponds to the JSON property `code`
1931
+ # @return [String]
1932
+ attr_accessor :code
1933
+
1934
+ # [Output Only] Indicates the field in the request that caused the error. This
1935
+ # property is optional.
1936
+ # Corresponds to the JSON property `location`
1937
+ # @return [String]
1938
+ attr_accessor :location
1939
+
1940
+ # [Output Only] An optional, human-readable error message.
1941
+ # Corresponds to the JSON property `message`
1942
+ # @return [String]
1943
+ attr_accessor :message
1944
+
1945
+ def initialize(**args)
1946
+ update!(**args)
1947
+ end
1948
+
1949
+ # Update properties of this object
1950
+ def update!(**args)
1951
+ @code = args[:code] if args.key?(:code)
1952
+ @location = args[:location] if args.key?(:location)
1953
+ @message = args[:message] if args.key?(:message)
1954
+ end
1955
+ end
1956
+ end
1957
+
1958
+ #
1959
+ class Warning
1960
+ include Google::Apis::Core::Hashable
1961
+
1962
+ # [Output Only] A warning code, if applicable. For example, Compute Engine
1963
+ # returns NO_RESULTS_ON_PAGE if there are no results in the response.
1964
+ # Corresponds to the JSON property `code`
1965
+ # @return [String]
1966
+ attr_accessor :code
1967
+
1968
+ # [Output Only] Metadata about this warning in key: value format. For example: "
1969
+ # data": [ ` "key": "scope", "value": "zones/us-east1-d" `
1970
+ # Corresponds to the JSON property `data`
1971
+ # @return [Array<Google::Apis::DeploymentmanagerAlpha::ResourceUpdate::Warning::Datum>]
1972
+ attr_accessor :data
1973
+
1974
+ # [Output Only] A human-readable description of the warning code.
1975
+ # Corresponds to the JSON property `message`
1976
+ # @return [String]
1977
+ attr_accessor :message
1978
+
1979
+ def initialize(**args)
1980
+ update!(**args)
1981
+ end
1982
+
1983
+ # Update properties of this object
1984
+ def update!(**args)
1985
+ @code = args[:code] if args.key?(:code)
1986
+ @data = args[:data] if args.key?(:data)
1987
+ @message = args[:message] if args.key?(:message)
1988
+ end
1989
+
1990
+ #
1991
+ class Datum
1992
+ include Google::Apis::Core::Hashable
1993
+
1994
+ # [Output Only] A key that provides more detail on the warning being returned.
1995
+ # For example, for warnings where there are no results in a list request for a
1996
+ # particular zone, this key might be scope and the key value might be the zone
1997
+ # name. Other examples might be a key indicating a deprecated resource and a
1998
+ # suggested replacement, or a warning about invalid network settings (for
1999
+ # example, if an instance attempts to perform IP forwarding but is not enabled
2000
+ # for IP forwarding).
2001
+ # Corresponds to the JSON property `key`
2002
+ # @return [String]
2003
+ attr_accessor :key
2004
+
2005
+ # [Output Only] A warning data value corresponding to the key.
2006
+ # Corresponds to the JSON property `value`
2007
+ # @return [String]
2008
+ attr_accessor :value
2009
+
2010
+ def initialize(**args)
2011
+ update!(**args)
2012
+ end
2013
+
2014
+ # Update properties of this object
2015
+ def update!(**args)
2016
+ @key = args[:key] if args.key?(:key)
2017
+ @value = args[:value] if args.key?(:value)
2018
+ end
2019
+ end
2020
+ end
2021
+ end
2022
+
2023
+ # A response containing a partial list of resources and a page token used to
2024
+ # build the next request if the request has been truncated.
2025
+ class ResourcesListResponse
2026
+ include Google::Apis::Core::Hashable
2027
+
2028
+ # A token used to continue a truncated list request.
2029
+ # Corresponds to the JSON property `nextPageToken`
2030
+ # @return [String]
2031
+ attr_accessor :next_page_token
2032
+
2033
+ # Resources contained in this list response.
2034
+ # Corresponds to the JSON property `resources`
2035
+ # @return [Array<Google::Apis::DeploymentmanagerAlpha::Resource>]
2036
+ attr_accessor :resources
2037
+
2038
+ def initialize(**args)
2039
+ update!(**args)
2040
+ end
2041
+
2042
+ # Update properties of this object
2043
+ def update!(**args)
2044
+ @next_page_token = args[:next_page_token] if args.key?(:next_page_token)
2045
+ @resources = args[:resources] if args.key?(:resources)
2046
+ end
2047
+ end
2048
+
2049
+ # Service Account used as a credential.
2050
+ class ServiceAccount
2051
+ include Google::Apis::Core::Hashable
2052
+
2053
+ # The IAM service account email address like test@myproject.iam.gserviceaccount.
2054
+ # com
2055
+ # Corresponds to the JSON property `email`
2056
+ # @return [String]
2057
+ attr_accessor :email
2058
+
2059
+ def initialize(**args)
2060
+ update!(**args)
2061
+ end
2062
+
2063
+ # Update properties of this object
2064
+ def update!(**args)
2065
+ @email = args[:email] if args.key?(:email)
2066
+ end
2067
+ end
2068
+
2069
+ #
2070
+ class TargetConfiguration
2071
+ include Google::Apis::Core::Hashable
2072
+
2073
+ # The configuration to use for this deployment.
2074
+ # Corresponds to the JSON property `config`
2075
+ # @return [Google::Apis::DeploymentmanagerAlpha::ConfigFile]
2076
+ attr_accessor :config
2077
+
2078
+ # Specifies any files to import for this configuration. This can be used to
2079
+ # import templates or other files. For example, you might import a text file in
2080
+ # order to use the file in a template.
2081
+ # Corresponds to the JSON property `imports`
2082
+ # @return [Array<Google::Apis::DeploymentmanagerAlpha::ImportFile>]
2083
+ attr_accessor :imports
2084
+
2085
+ def initialize(**args)
2086
+ update!(**args)
2087
+ end
2088
+
2089
+ # Update properties of this object
2090
+ def update!(**args)
2091
+ @config = args[:config] if args.key?(:config)
2092
+ @imports = args[:imports] if args.key?(:imports)
2093
+ end
2094
+ end
2095
+
2096
+ # Files that make up the template contents of a template type.
2097
+ class TemplateContents
2098
+ include Google::Apis::Core::Hashable
2099
+
2100
+ # Import files referenced by the main template.
2101
+ # Corresponds to the JSON property `imports`
2102
+ # @return [Array<Google::Apis::DeploymentmanagerAlpha::ImportFile>]
2103
+ attr_accessor :imports
2104
+
2105
+ # Which interpreter (python or jinja) should be used during expansion.
2106
+ # Corresponds to the JSON property `interpreter`
2107
+ # @return [String]
2108
+ attr_accessor :interpreter
2109
+
2110
+ # The filename of the mainTemplate
2111
+ # Corresponds to the JSON property `mainTemplate`
2112
+ # @return [String]
2113
+ attr_accessor :main_template
2114
+
2115
+ # The contents of the template schema.
2116
+ # Corresponds to the JSON property `schema`
2117
+ # @return [String]
2118
+ attr_accessor :schema
2119
+
2120
+ # The contents of the main template file.
2121
+ # Corresponds to the JSON property `template`
2122
+ # @return [String]
2123
+ attr_accessor :template
2124
+
2125
+ def initialize(**args)
2126
+ update!(**args)
2127
+ end
2128
+
2129
+ # Update properties of this object
2130
+ def update!(**args)
2131
+ @imports = args[:imports] if args.key?(:imports)
2132
+ @interpreter = args[:interpreter] if args.key?(:interpreter)
2133
+ @main_template = args[:main_template] if args.key?(:main_template)
2134
+ @schema = args[:schema] if args.key?(:schema)
2135
+ @template = args[:template] if args.key?(:template)
2136
+ end
2137
+ end
2138
+
2139
+ #
2140
+ class TestPermissionsRequest
2141
+ include Google::Apis::Core::Hashable
2142
+
2143
+ # The set of permissions to check for the 'resource'. Permissions with wildcards
2144
+ # (such as '*' or 'storage.*') are not allowed.
2145
+ # Corresponds to the JSON property `permissions`
2146
+ # @return [Array<String>]
2147
+ attr_accessor :permissions
2148
+
2149
+ def initialize(**args)
2150
+ update!(**args)
2151
+ end
2152
+
2153
+ # Update properties of this object
2154
+ def update!(**args)
2155
+ @permissions = args[:permissions] if args.key?(:permissions)
2156
+ end
2157
+ end
2158
+
2159
+ #
2160
+ class TestPermissionsResponse
2161
+ include Google::Apis::Core::Hashable
2162
+
2163
+ # A subset of `TestPermissionsRequest.permissions` that the caller is allowed.
2164
+ # Corresponds to the JSON property `permissions`
2165
+ # @return [Array<String>]
2166
+ attr_accessor :permissions
2167
+
2168
+ def initialize(**args)
2169
+ update!(**args)
2170
+ end
2171
+
2172
+ # Update properties of this object
2173
+ def update!(**args)
2174
+ @permissions = args[:permissions] if args.key?(:permissions)
2175
+ end
2176
+ end
2177
+
2178
+ # A resource type supported by Deployment Manager.
2179
+ class Type
2180
+ include Google::Apis::Core::Hashable
2181
+
2182
+ # BaseType that describes a service-backed Type.
2183
+ # Corresponds to the JSON property `base`
2184
+ # @return [Google::Apis::DeploymentmanagerAlpha::BaseType]
2185
+ attr_accessor :base
2186
+
2187
+ # An optional textual description of the resource; provided by the client when
2188
+ # the resource is created.
2189
+ # Corresponds to the JSON property `description`
2190
+ # @return [String]
2191
+ attr_accessor :description
2192
+
2193
+ #
2194
+ # Corresponds to the JSON property `id`
2195
+ # @return [Fixnum]
2196
+ attr_accessor :id
2197
+
2198
+ # Output only. Creation timestamp in RFC3339 text format.
2199
+ # Corresponds to the JSON property `insertTime`
2200
+ # @return [String]
2201
+ attr_accessor :insert_time
2202
+
2203
+ # Map of One Platform labels; provided by the client when the resource is
2204
+ # created or updated. Specifically: Label keys must be between 1 and 63
2205
+ # characters long and must conform to the following regular expression: `[a-z]([-
2206
+ # a-z0-9]*[a-z0-9])?` Label values must be between 0 and 63 characters long and
2207
+ # must conform to the regular expression `([a-z]([-a-z0-9]*[a-z0-9])?)?`.
2208
+ # Corresponds to the JSON property `labels`
2209
+ # @return [Array<Google::Apis::DeploymentmanagerAlpha::TypeLabelEntry>]
2210
+ attr_accessor :labels
2211
+
2212
+ # Name of the type.
2213
+ # Corresponds to the JSON property `name`
2214
+ # @return [String]
2215
+ attr_accessor :name
2216
+
2217
+ # Represents an Operation resource. Google Compute Engine has three Operation
2218
+ # resources: * [Global](/compute/docs/reference/rest/`$api_version`/
2219
+ # globalOperations) * [Regional](/compute/docs/reference/rest/`$api_version`/
2220
+ # regionOperations) * [Zonal](/compute/docs/reference/rest/`$api_version`/
2221
+ # zoneOperations) You can use an operation resource to manage asynchronous API
2222
+ # requests. For more information, read Handling API responses. Operations can be
2223
+ # global, regional or zonal. - For global operations, use the `globalOperations`
2224
+ # resource. - For regional operations, use the `regionOperations` resource. -
2225
+ # For zonal operations, use the `zonalOperations` resource. For more information,
2226
+ # read Global, Regional, and Zonal Resources.
2227
+ # Corresponds to the JSON property `operation`
2228
+ # @return [Google::Apis::DeploymentmanagerAlpha::Operation]
2229
+ attr_accessor :operation
2230
+
2231
+ # Output only. Server defined URL for the resource.
2232
+ # Corresponds to the JSON property `selfLink`
2233
+ # @return [String]
2234
+ attr_accessor :self_link
2235
+
2236
+ def initialize(**args)
2237
+ update!(**args)
2238
+ end
2239
+
2240
+ # Update properties of this object
2241
+ def update!(**args)
2242
+ @base = args[:base] if args.key?(:base)
2243
+ @description = args[:description] if args.key?(:description)
2244
+ @id = args[:id] if args.key?(:id)
2245
+ @insert_time = args[:insert_time] if args.key?(:insert_time)
2246
+ @labels = args[:labels] if args.key?(:labels)
2247
+ @name = args[:name] if args.key?(:name)
2248
+ @operation = args[:operation] if args.key?(:operation)
2249
+ @self_link = args[:self_link] if args.key?(:self_link)
2250
+ end
2251
+ end
2252
+
2253
+ # Type Information. Contains detailed information about a composite type, base
2254
+ # type, or base type with specific collection.
2255
+ class TypeInfo
2256
+ include Google::Apis::Core::Hashable
2257
+
2258
+ # The description of the type.
2259
+ # Corresponds to the JSON property `description`
2260
+ # @return [String]
2261
+ attr_accessor :description
2262
+
2263
+ # For swagger 2.0 externalDocs field will be used. For swagger 1.2 this field
2264
+ # will be empty.
2265
+ # Corresponds to the JSON property `documentationLink`
2266
+ # @return [String]
2267
+ attr_accessor :documentation_link
2268
+
2269
+ # Output only. Type of the output. Always `deploymentManager#TypeInfo` for
2270
+ # TypeInfo.
2271
+ # Corresponds to the JSON property `kind`
2272
+ # @return [String]
2273
+ attr_accessor :kind
2274
+
2275
+ # The base type or composite type name.
2276
+ # Corresponds to the JSON property `name`
2277
+ # @return [String]
2278
+ attr_accessor :name
2279
+
2280
+ # For base types with a collection, we return a schema and documentation link
2281
+ # For template types, we return only a schema
2282
+ # Corresponds to the JSON property `schema`
2283
+ # @return [Google::Apis::DeploymentmanagerAlpha::TypeInfoSchemaInfo]
2284
+ attr_accessor :schema
2285
+
2286
+ # Output only. Self link for the type provider.
2287
+ # Corresponds to the JSON property `selfLink`
2288
+ # @return [String]
2289
+ attr_accessor :self_link
2290
+
2291
+ # The title on the API descriptor URL provided.
2292
+ # Corresponds to the JSON property `title`
2293
+ # @return [String]
2294
+ attr_accessor :title
2295
+
2296
+ def initialize(**args)
2297
+ update!(**args)
2298
+ end
2299
+
2300
+ # Update properties of this object
2301
+ def update!(**args)
2302
+ @description = args[:description] if args.key?(:description)
2303
+ @documentation_link = args[:documentation_link] if args.key?(:documentation_link)
2304
+ @kind = args[:kind] if args.key?(:kind)
2305
+ @name = args[:name] if args.key?(:name)
2306
+ @schema = args[:schema] if args.key?(:schema)
2307
+ @self_link = args[:self_link] if args.key?(:self_link)
2308
+ @title = args[:title] if args.key?(:title)
2309
+ end
2310
+ end
2311
+
2312
+ #
2313
+ class TypeInfoSchemaInfo
2314
+ include Google::Apis::Core::Hashable
2315
+
2316
+ # The properties that this composite type or base type collection accept as
2317
+ # input, represented as a json blob, format is: JSON Schema Draft V4
2318
+ # Corresponds to the JSON property `input`
2319
+ # @return [String]
2320
+ attr_accessor :input
2321
+
2322
+ # The properties that this composite type or base type collection exposes as
2323
+ # output, these properties can be used for references, represented as json blob,
2324
+ # format is: JSON Schema Draft V4
2325
+ # Corresponds to the JSON property `output`
2326
+ # @return [String]
2327
+ attr_accessor :output
2328
+
2329
+ def initialize(**args)
2330
+ update!(**args)
2331
+ end
2332
+
2333
+ # Update properties of this object
2334
+ def update!(**args)
2335
+ @input = args[:input] if args.key?(:input)
2336
+ @output = args[:output] if args.key?(:output)
2337
+ end
2338
+ end
2339
+
2340
+ # Label object for Types
2341
+ class TypeLabelEntry
2342
+ include Google::Apis::Core::Hashable
2343
+
2344
+ # Key of the label
2345
+ # Corresponds to the JSON property `key`
2346
+ # @return [String]
2347
+ attr_accessor :key
2348
+
2349
+ # Value of the label
2350
+ # Corresponds to the JSON property `value`
2351
+ # @return [String]
2352
+ attr_accessor :value
2353
+
2354
+ def initialize(**args)
2355
+ update!(**args)
2356
+ end
2357
+
2358
+ # Update properties of this object
2359
+ def update!(**args)
2360
+ @key = args[:key] if args.key?(:key)
2361
+ @value = args[:value] if args.key?(:value)
2362
+ end
2363
+ end
2364
+
2365
+ # A type provider that describes a service-backed Type.
2366
+ class TypeProvider
2367
+ include Google::Apis::Core::Hashable
2368
+
2369
+ # Allows resource handling overrides for specific collections
2370
+ # Corresponds to the JSON property `collectionOverrides`
2371
+ # @return [Array<Google::Apis::DeploymentmanagerAlpha::CollectionOverride>]
2372
+ attr_accessor :collection_overrides
2373
+
2374
+ # The credential used by Deployment Manager and TypeProvider. Only one of the
2375
+ # options is permitted.
2376
+ # Corresponds to the JSON property `credential`
2377
+ # @return [Google::Apis::DeploymentmanagerAlpha::Credential]
2378
+ attr_accessor :credential
2379
+
2380
+ # List of up to 2 custom certificate authority roots to use for TLS
2381
+ # authentication when making calls on behalf of this type provider. If set, TLS
2382
+ # authentication will exclusively use these roots instead of relying on publicly
2383
+ # trusted certificate authorities when validating TLS certificate authenticity.
2384
+ # The certificates must be in base64-encoded PEM format. The maximum size of
2385
+ # each certificate must not exceed 10KB.
2386
+ # Corresponds to the JSON property `customCertificateAuthorityRoots`
2387
+ # @return [Array<String>]
2388
+ attr_accessor :custom_certificate_authority_roots
2389
+
2390
+ # An optional textual description of the resource; provided by the client when
2391
+ # the resource is created.
2392
+ # Corresponds to the JSON property `description`
2393
+ # @return [String]
2394
+ attr_accessor :description
2395
+
2396
+ # Descriptor Url for the this type provider.
2397
+ # Corresponds to the JSON property `descriptorUrl`
2398
+ # @return [String]
2399
+ attr_accessor :descriptor_url
2400
+
2401
+ # Output only. Unique identifier for the resource defined by the server.
2402
+ # Corresponds to the JSON property `id`
2403
+ # @return [Fixnum]
2404
+ attr_accessor :id
2405
+
2406
+ # Output only. Creation timestamp in RFC3339 text format.
2407
+ # Corresponds to the JSON property `insertTime`
2408
+ # @return [String]
2409
+ attr_accessor :insert_time
2410
+
2411
+ # Map of One Platform labels; provided by the client when the resource is
2412
+ # created or updated. Specifically: Label keys must be between 1 and 63
2413
+ # characters long and must conform to the following regular expression: `[a-z]([-
2414
+ # a-z0-9]*[a-z0-9])?` Label values must be between 0 and 63 characters long and
2415
+ # must conform to the regular expression `([a-z]([-a-z0-9]*[a-z0-9])?)?`
2416
+ # Corresponds to the JSON property `labels`
2417
+ # @return [Array<Google::Apis::DeploymentmanagerAlpha::TypeProviderLabelEntry>]
2418
+ attr_accessor :labels
2419
+
2420
+ # Name of the resource; provided by the client when the resource is created. The
2421
+ # name must be 1-63 characters long, and comply with RFC1035. Specifically, the
2422
+ # name must be 1-63 characters long and match the regular expression `[a-z]([-a-
2423
+ # z0-9]*[a-z0-9])?` which means the first character must be a lowercase letter,
2424
+ # and all following characters must be a dash, lowercase letter, or digit,
2425
+ # except the last character, which cannot be a dash.
2426
+ # Corresponds to the JSON property `name`
2427
+ # @return [String]
2428
+ attr_accessor :name
2429
+
2430
+ # Represents an Operation resource. Google Compute Engine has three Operation
2431
+ # resources: * [Global](/compute/docs/reference/rest/`$api_version`/
2432
+ # globalOperations) * [Regional](/compute/docs/reference/rest/`$api_version`/
2433
+ # regionOperations) * [Zonal](/compute/docs/reference/rest/`$api_version`/
2434
+ # zoneOperations) You can use an operation resource to manage asynchronous API
2435
+ # requests. For more information, read Handling API responses. Operations can be
2436
+ # global, regional or zonal. - For global operations, use the `globalOperations`
2437
+ # resource. - For regional operations, use the `regionOperations` resource. -
2438
+ # For zonal operations, use the `zonalOperations` resource. For more information,
2439
+ # read Global, Regional, and Zonal Resources.
2440
+ # Corresponds to the JSON property `operation`
2441
+ # @return [Google::Apis::DeploymentmanagerAlpha::Operation]
2442
+ attr_accessor :operation
2443
+
2444
+ # Options allows customized resource handling by Deployment Manager.
2445
+ # Corresponds to the JSON property `options`
2446
+ # @return [Google::Apis::DeploymentmanagerAlpha::Options]
2447
+ attr_accessor :options
2448
+
2449
+ # Output only. Self link for the type provider.
2450
+ # Corresponds to the JSON property `selfLink`
2451
+ # @return [String]
2452
+ attr_accessor :self_link
2453
+
2454
+ def initialize(**args)
2455
+ update!(**args)
2456
+ end
2457
+
2458
+ # Update properties of this object
2459
+ def update!(**args)
2460
+ @collection_overrides = args[:collection_overrides] if args.key?(:collection_overrides)
2461
+ @credential = args[:credential] if args.key?(:credential)
2462
+ @custom_certificate_authority_roots = args[:custom_certificate_authority_roots] if args.key?(:custom_certificate_authority_roots)
2463
+ @description = args[:description] if args.key?(:description)
2464
+ @descriptor_url = args[:descriptor_url] if args.key?(:descriptor_url)
2465
+ @id = args[:id] if args.key?(:id)
2466
+ @insert_time = args[:insert_time] if args.key?(:insert_time)
2467
+ @labels = args[:labels] if args.key?(:labels)
2468
+ @name = args[:name] if args.key?(:name)
2469
+ @operation = args[:operation] if args.key?(:operation)
2470
+ @options = args[:options] if args.key?(:options)
2471
+ @self_link = args[:self_link] if args.key?(:self_link)
2472
+ end
2473
+ end
2474
+
2475
+ # Label object for TypeProviders
2476
+ class TypeProviderLabelEntry
2477
+ include Google::Apis::Core::Hashable
2478
+
2479
+ # Key of the label
2480
+ # Corresponds to the JSON property `key`
2481
+ # @return [String]
2482
+ attr_accessor :key
2483
+
2484
+ # Value of the label
2485
+ # Corresponds to the JSON property `value`
2486
+ # @return [String]
2487
+ attr_accessor :value
2488
+
2489
+ def initialize(**args)
2490
+ update!(**args)
2491
+ end
2492
+
2493
+ # Update properties of this object
2494
+ def update!(**args)
2495
+ @key = args[:key] if args.key?(:key)
2496
+ @value = args[:value] if args.key?(:value)
2497
+ end
2498
+ end
2499
+
2500
+ # A response that returns all Type Providers supported by Deployment Manager
2501
+ class TypeProvidersListResponse
2502
+ include Google::Apis::Core::Hashable
2503
+
2504
+ # A token used to continue a truncated list request.
2505
+ # Corresponds to the JSON property `nextPageToken`
2506
+ # @return [String]
2507
+ attr_accessor :next_page_token
2508
+
2509
+ # Output only. A list of resource type providers supported by Deployment Manager.
2510
+ # Corresponds to the JSON property `typeProviders`
2511
+ # @return [Array<Google::Apis::DeploymentmanagerAlpha::TypeProvider>]
2512
+ attr_accessor :type_providers
2513
+
2514
+ def initialize(**args)
2515
+ update!(**args)
2516
+ end
2517
+
2518
+ # Update properties of this object
2519
+ def update!(**args)
2520
+ @next_page_token = args[:next_page_token] if args.key?(:next_page_token)
2521
+ @type_providers = args[:type_providers] if args.key?(:type_providers)
2522
+ end
2523
+ end
2524
+
2525
+ #
2526
+ class TypeProvidersListTypesResponse
2527
+ include Google::Apis::Core::Hashable
2528
+
2529
+ # A token used to continue a truncated list request.
2530
+ # Corresponds to the JSON property `nextPageToken`
2531
+ # @return [String]
2532
+ attr_accessor :next_page_token
2533
+
2534
+ # Output only. A list of resource type info.
2535
+ # Corresponds to the JSON property `types`
2536
+ # @return [Array<Google::Apis::DeploymentmanagerAlpha::TypeInfo>]
2537
+ attr_accessor :types
2538
+
2539
+ def initialize(**args)
2540
+ update!(**args)
2541
+ end
2542
+
2543
+ # Update properties of this object
2544
+ def update!(**args)
2545
+ @next_page_token = args[:next_page_token] if args.key?(:next_page_token)
2546
+ @types = args[:types] if args.key?(:types)
2547
+ end
2548
+ end
2549
+
2550
+ # A response that returns all Types supported by Deployment Manager
2551
+ class TypesListResponse
2552
+ include Google::Apis::Core::Hashable
2553
+
2554
+ # A token used to continue a truncated list request.
2555
+ # Corresponds to the JSON property `nextPageToken`
2556
+ # @return [String]
2557
+ attr_accessor :next_page_token
2558
+
2559
+ # Output only. A list of resource types supported by Deployment Manager.
2560
+ # Corresponds to the JSON property `types`
2561
+ # @return [Array<Google::Apis::DeploymentmanagerAlpha::Type>]
2562
+ attr_accessor :types
2563
+
2564
+ def initialize(**args)
2565
+ update!(**args)
2566
+ end
2567
+
2568
+ # Update properties of this object
2569
+ def update!(**args)
2570
+ @next_page_token = args[:next_page_token] if args.key?(:next_page_token)
2571
+ @types = args[:types] if args.key?(:types)
2572
+ end
2573
+ end
2574
+
2575
+ # Options for how to validate and process properties on a resource.
2576
+ class ValidationOptions
2577
+ include Google::Apis::Core::Hashable
2578
+
2579
+ # Customize how deployment manager will validate the resource against schema
2580
+ # errors.
2581
+ # Corresponds to the JSON property `schemaValidation`
2582
+ # @return [String]
2583
+ attr_accessor :schema_validation
2584
+
2585
+ # Specify what to do with extra properties when executing a request.
2586
+ # Corresponds to the JSON property `undeclaredProperties`
2587
+ # @return [String]
2588
+ attr_accessor :undeclared_properties
2589
+
2590
+ def initialize(**args)
2591
+ update!(**args)
2592
+ end
2593
+
2594
+ # Update properties of this object
2595
+ def update!(**args)
2596
+ @schema_validation = args[:schema_validation] if args.key?(:schema_validation)
2597
+ @undeclared_properties = args[:undeclared_properties] if args.key?(:undeclared_properties)
2598
+ end
2599
+ end
2600
+ end
2601
+ end
2602
+ end