google-apis-storage_v1 0.1.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +7 -0
- data/.yardopts +13 -0
- data/CHANGELOG.md +7 -0
- data/LICENSE.md +202 -0
- data/OVERVIEW.md +96 -0
- data/lib/google-apis-storage_v1.rb +15 -0
- data/lib/google/apis/storage_v1.rb +48 -0
- data/lib/google/apis/storage_v1/classes.rb +2079 -0
- data/lib/google/apis/storage_v1/gem_version.rb +28 -0
- data/lib/google/apis/storage_v1/representations.rb +787 -0
- data/lib/google/apis/storage_v1/service.rb +2869 -0
- metadata +76 -0
checksums.yaml
ADDED
@@ -0,0 +1,7 @@
|
|
1
|
+
---
|
2
|
+
SHA256:
|
3
|
+
metadata.gz: 2b4448a4cf3e21c7781e68f9ff348927ddf318e3ee8ed740f074315ac5180532
|
4
|
+
data.tar.gz: cd4c1f8a4dadcc27fbb471a37b5cb17ad06ebed48404eb95e78ea6726d85d825
|
5
|
+
SHA512:
|
6
|
+
metadata.gz: 897139e74f6e9f5b0a5f2691ac858b854d3c9220e9643f032a901d1f8cc8022067b6958789745660800bbad07bc11f5a1bc75476e85e966484674b4f80e1c8d8
|
7
|
+
data.tar.gz: b508e3cfe0ec0dbbf0a879e86c6468c220b1f8f96f0e4b2eb92db47f5c87036aa5c0a8e31f4301d43956960de9320e08cb5bc6ef3f9a8ad95b65c53b9a68a9e5
|
data/.yardopts
ADDED
@@ -0,0 +1,13 @@
|
|
1
|
+
--hide-void-return
|
2
|
+
--no-private
|
3
|
+
--verbose
|
4
|
+
--title=google-apis-storage_v1
|
5
|
+
--markup-provider=redcarpet
|
6
|
+
--markup=markdown
|
7
|
+
--main OVERVIEW.md
|
8
|
+
lib/google/apis/storage_v1/*.rb
|
9
|
+
lib/google/apis/storage_v1.rb
|
10
|
+
-
|
11
|
+
OVERVIEW.md
|
12
|
+
CHANGELOG.md
|
13
|
+
LICENSE.md
|
data/CHANGELOG.md
ADDED
data/LICENSE.md
ADDED
@@ -0,0 +1,202 @@
|
|
1
|
+
|
2
|
+
Apache License
|
3
|
+
Version 2.0, January 2004
|
4
|
+
http://www.apache.org/licenses/
|
5
|
+
|
6
|
+
TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
|
7
|
+
|
8
|
+
1. Definitions.
|
9
|
+
|
10
|
+
"License" shall mean the terms and conditions for use, reproduction,
|
11
|
+
and distribution as defined by Sections 1 through 9 of this document.
|
12
|
+
|
13
|
+
"Licensor" shall mean the copyright owner or entity authorized by
|
14
|
+
the copyright owner that is granting the License.
|
15
|
+
|
16
|
+
"Legal Entity" shall mean the union of the acting entity and all
|
17
|
+
other entities that control, are controlled by, or are under common
|
18
|
+
control with that entity. For the purposes of this definition,
|
19
|
+
"control" means (i) the power, direct or indirect, to cause the
|
20
|
+
direction or management of such entity, whether by contract or
|
21
|
+
otherwise, or (ii) ownership of fifty percent (50%) or more of the
|
22
|
+
outstanding shares, or (iii) beneficial ownership of such entity.
|
23
|
+
|
24
|
+
"You" (or "Your") shall mean an individual or Legal Entity
|
25
|
+
exercising permissions granted by this License.
|
26
|
+
|
27
|
+
"Source" form shall mean the preferred form for making modifications,
|
28
|
+
including but not limited to software source code, documentation
|
29
|
+
source, and configuration files.
|
30
|
+
|
31
|
+
"Object" form shall mean any form resulting from mechanical
|
32
|
+
transformation or translation of a Source form, including but
|
33
|
+
not limited to compiled object code, generated documentation,
|
34
|
+
and conversions to other media types.
|
35
|
+
|
36
|
+
"Work" shall mean the work of authorship, whether in Source or
|
37
|
+
Object form, made available under the License, as indicated by a
|
38
|
+
copyright notice that is included in or attached to the work
|
39
|
+
(an example is provided in the Appendix below).
|
40
|
+
|
41
|
+
"Derivative Works" shall mean any work, whether in Source or Object
|
42
|
+
form, that is based on (or derived from) the Work and for which the
|
43
|
+
editorial revisions, annotations, elaborations, or other modifications
|
44
|
+
represent, as a whole, an original work of authorship. For the purposes
|
45
|
+
of this License, Derivative Works shall not include works that remain
|
46
|
+
separable from, or merely link (or bind by name) to the interfaces of,
|
47
|
+
the Work and Derivative Works thereof.
|
48
|
+
|
49
|
+
"Contribution" shall mean any work of authorship, including
|
50
|
+
the original version of the Work and any modifications or additions
|
51
|
+
to that Work or Derivative Works thereof, that is intentionally
|
52
|
+
submitted to Licensor for inclusion in the Work by the copyright owner
|
53
|
+
or by an individual or Legal Entity authorized to submit on behalf of
|
54
|
+
the copyright owner. For the purposes of this definition, "submitted"
|
55
|
+
means any form of electronic, verbal, or written communication sent
|
56
|
+
to the Licensor or its representatives, including but not limited to
|
57
|
+
communication on electronic mailing lists, source code control systems,
|
58
|
+
and issue tracking systems that are managed by, or on behalf of, the
|
59
|
+
Licensor for the purpose of discussing and improving the Work, but
|
60
|
+
excluding communication that is conspicuously marked or otherwise
|
61
|
+
designated in writing by the copyright owner as "Not a Contribution."
|
62
|
+
|
63
|
+
"Contributor" shall mean Licensor and any individual or Legal Entity
|
64
|
+
on behalf of whom a Contribution has been received by Licensor and
|
65
|
+
subsequently incorporated within the Work.
|
66
|
+
|
67
|
+
2. Grant of Copyright License. Subject to the terms and conditions of
|
68
|
+
this License, each Contributor hereby grants to You a perpetual,
|
69
|
+
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
|
70
|
+
copyright license to reproduce, prepare Derivative Works of,
|
71
|
+
publicly display, publicly perform, sublicense, and distribute the
|
72
|
+
Work and such Derivative Works in Source or Object form.
|
73
|
+
|
74
|
+
3. Grant of Patent License. Subject to the terms and conditions of
|
75
|
+
this License, each Contributor hereby grants to You a perpetual,
|
76
|
+
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
|
77
|
+
(except as stated in this section) patent license to make, have made,
|
78
|
+
use, offer to sell, sell, import, and otherwise transfer the Work,
|
79
|
+
where such license applies only to those patent claims licensable
|
80
|
+
by such Contributor that are necessarily infringed by their
|
81
|
+
Contribution(s) alone or by combination of their Contribution(s)
|
82
|
+
with the Work to which such Contribution(s) was submitted. If You
|
83
|
+
institute patent litigation against any entity (including a
|
84
|
+
cross-claim or counterclaim in a lawsuit) alleging that the Work
|
85
|
+
or a Contribution incorporated within the Work constitutes direct
|
86
|
+
or contributory patent infringement, then any patent licenses
|
87
|
+
granted to You under this License for that Work shall terminate
|
88
|
+
as of the date such litigation is filed.
|
89
|
+
|
90
|
+
4. Redistribution. You may reproduce and distribute copies of the
|
91
|
+
Work or Derivative Works thereof in any medium, with or without
|
92
|
+
modifications, and in Source or Object form, provided that You
|
93
|
+
meet the following conditions:
|
94
|
+
|
95
|
+
(a) You must give any other recipients of the Work or
|
96
|
+
Derivative Works a copy of this License; and
|
97
|
+
|
98
|
+
(b) You must cause any modified files to carry prominent notices
|
99
|
+
stating that You changed the files; and
|
100
|
+
|
101
|
+
(c) You must retain, in the Source form of any Derivative Works
|
102
|
+
that You distribute, all copyright, patent, trademark, and
|
103
|
+
attribution notices from the Source form of the Work,
|
104
|
+
excluding those notices that do not pertain to any part of
|
105
|
+
the Derivative Works; and
|
106
|
+
|
107
|
+
(d) If the Work includes a "NOTICE" text file as part of its
|
108
|
+
distribution, then any Derivative Works that You distribute must
|
109
|
+
include a readable copy of the attribution notices contained
|
110
|
+
within such NOTICE file, excluding those notices that do not
|
111
|
+
pertain to any part of the Derivative Works, in at least one
|
112
|
+
of the following places: within a NOTICE text file distributed
|
113
|
+
as part of the Derivative Works; within the Source form or
|
114
|
+
documentation, if provided along with the Derivative Works; or,
|
115
|
+
within a display generated by the Derivative Works, if and
|
116
|
+
wherever such third-party notices normally appear. The contents
|
117
|
+
of the NOTICE file are for informational purposes only and
|
118
|
+
do not modify the License. You may add Your own attribution
|
119
|
+
notices within Derivative Works that You distribute, alongside
|
120
|
+
or as an addendum to the NOTICE text from the Work, provided
|
121
|
+
that such additional attribution notices cannot be construed
|
122
|
+
as modifying the License.
|
123
|
+
|
124
|
+
You may add Your own copyright statement to Your modifications and
|
125
|
+
may provide additional or different license terms and conditions
|
126
|
+
for use, reproduction, or distribution of Your modifications, or
|
127
|
+
for any such Derivative Works as a whole, provided Your use,
|
128
|
+
reproduction, and distribution of the Work otherwise complies with
|
129
|
+
the conditions stated in this License.
|
130
|
+
|
131
|
+
5. Submission of Contributions. Unless You explicitly state otherwise,
|
132
|
+
any Contribution intentionally submitted for inclusion in the Work
|
133
|
+
by You to the Licensor shall be under the terms and conditions of
|
134
|
+
this License, without any additional terms or conditions.
|
135
|
+
Notwithstanding the above, nothing herein shall supersede or modify
|
136
|
+
the terms of any separate license agreement you may have executed
|
137
|
+
with Licensor regarding such Contributions.
|
138
|
+
|
139
|
+
6. Trademarks. This License does not grant permission to use the trade
|
140
|
+
names, trademarks, service marks, or product names of the Licensor,
|
141
|
+
except as required for reasonable and customary use in describing the
|
142
|
+
origin of the Work and reproducing the content of the NOTICE file.
|
143
|
+
|
144
|
+
7. Disclaimer of Warranty. Unless required by applicable law or
|
145
|
+
agreed to in writing, Licensor provides the Work (and each
|
146
|
+
Contributor provides its Contributions) on an "AS IS" BASIS,
|
147
|
+
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
|
148
|
+
implied, including, without limitation, any warranties or conditions
|
149
|
+
of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
|
150
|
+
PARTICULAR PURPOSE. You are solely responsible for determining the
|
151
|
+
appropriateness of using or redistributing the Work and assume any
|
152
|
+
risks associated with Your exercise of permissions under this License.
|
153
|
+
|
154
|
+
8. Limitation of Liability. In no event and under no legal theory,
|
155
|
+
whether in tort (including negligence), contract, or otherwise,
|
156
|
+
unless required by applicable law (such as deliberate and grossly
|
157
|
+
negligent acts) or agreed to in writing, shall any Contributor be
|
158
|
+
liable to You for damages, including any direct, indirect, special,
|
159
|
+
incidental, or consequential damages of any character arising as a
|
160
|
+
result of this License or out of the use or inability to use the
|
161
|
+
Work (including but not limited to damages for loss of goodwill,
|
162
|
+
work stoppage, computer failure or malfunction, or any and all
|
163
|
+
other commercial damages or losses), even if such Contributor
|
164
|
+
has been advised of the possibility of such damages.
|
165
|
+
|
166
|
+
9. Accepting Warranty or Additional Liability. While redistributing
|
167
|
+
the Work or Derivative Works thereof, You may choose to offer,
|
168
|
+
and charge a fee for, acceptance of support, warranty, indemnity,
|
169
|
+
or other liability obligations and/or rights consistent with this
|
170
|
+
License. However, in accepting such obligations, You may act only
|
171
|
+
on Your own behalf and on Your sole responsibility, not on behalf
|
172
|
+
of any other Contributor, and only if You agree to indemnify,
|
173
|
+
defend, and hold each Contributor harmless for any liability
|
174
|
+
incurred by, or claims asserted against, such Contributor by reason
|
175
|
+
of your accepting any such warranty or additional liability.
|
176
|
+
|
177
|
+
END OF TERMS AND CONDITIONS
|
178
|
+
|
179
|
+
APPENDIX: How to apply the Apache License to your work.
|
180
|
+
|
181
|
+
To apply the Apache License to your work, attach the following
|
182
|
+
boilerplate notice, with the fields enclosed by brackets "[]"
|
183
|
+
replaced with your own identifying information. (Don't include
|
184
|
+
the brackets!) The text should be enclosed in the appropriate
|
185
|
+
comment syntax for the file format. We also recommend that a
|
186
|
+
file or class name and description of purpose be included on the
|
187
|
+
same "printed page" as the copyright notice for easier
|
188
|
+
identification within third-party archives.
|
189
|
+
|
190
|
+
Copyright [yyyy] [name of copyright owner]
|
191
|
+
|
192
|
+
Licensed under the Apache License, Version 2.0 (the "License");
|
193
|
+
you may not use this file except in compliance with the License.
|
194
|
+
You may obtain a copy of the License at
|
195
|
+
|
196
|
+
http://www.apache.org/licenses/LICENSE-2.0
|
197
|
+
|
198
|
+
Unless required by applicable law or agreed to in writing, software
|
199
|
+
distributed under the License is distributed on an "AS IS" BASIS,
|
200
|
+
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
201
|
+
See the License for the specific language governing permissions and
|
202
|
+
limitations under the License.
|
data/OVERVIEW.md
ADDED
@@ -0,0 +1,96 @@
|
|
1
|
+
# Simple REST client for version V1 of the Cloud Storage JSON API
|
2
|
+
|
3
|
+
This is a simple client library for version V1 of the Cloud Storage JSON 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/storage.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-storage_v1', '~> 0.1'
|
28
|
+
```
|
29
|
+
|
30
|
+
And then execute:
|
31
|
+
|
32
|
+
```
|
33
|
+
$ bundle
|
34
|
+
```
|
35
|
+
|
36
|
+
Or install it yourself as:
|
37
|
+
|
38
|
+
```
|
39
|
+
$ gem install google-apis-storage_v1
|
40
|
+
```
|
41
|
+
|
42
|
+
### Creating a client object
|
43
|
+
|
44
|
+
Once the gem is installed, you can load the client code and instantiate a client.
|
45
|
+
|
46
|
+
```ruby
|
47
|
+
# Load the client
|
48
|
+
require "google/apis/storage_v1"
|
49
|
+
|
50
|
+
# Create a client object
|
51
|
+
client = Google::Apis::StorageV1::StorageService.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 Storage service in particular.)
|
67
|
+
|
68
|
+
For reference information on specific calls in the Cloud Storage JSON API, see the {Google::Apis::StorageV1::StorageService 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-storage_v1`, is a simple REST client. You can identify these clients by their gem names, which are always in the form `google-apis-<servicename>_<serviceversion>`. The simple REST clients connect to HTTP/JSON REST endpoints and are automatically generated from service discovery documents. They support most API functionality, but their class interfaces are sometimes awkward.
|
75
|
+
|
76
|
+
Modern clients are produced by a modern code generator, sometimes combined with hand-crafted functionality. Most modern clients connect to high-performance gRPC endpoints, although a few are backed by REST services. Modern clients are available for many Google services, especially Google Cloud Platform services, but do not yet support all the services covered by the simple clients.
|
77
|
+
|
78
|
+
Gem names for modern clients are often of the form `google-cloud-<service_name>`. (For example, [google-cloud-pubsub](https://rubygems.org/gems/google-cloud-pubsub).) Note that most modern clients also have corresponding "versioned" gems with names like `google-cloud-<service_name>-<version>`. (For example, [google-cloud-pubsub-v1](https://rubygems.org/gems/google-cloud-pubsub-v1).) The "versioned" gems can be used directly, but often provide lower-level interfaces. In most cases, the main gem is recommended.
|
79
|
+
|
80
|
+
**For most users, we recommend the modern client, if one is available.** Compared with simple clients, modern clients are generally much easier to use and more Ruby-like, support more advanced features such as streaming and long-running operations, and often provide much better performance. You may consider using a simple client instead, if a modern client is not yet available for the service you want to use, or if you are not able to use gRPC on your infrastructure.
|
81
|
+
|
82
|
+
The [product documentation](https://developers.google.com/storage/docs/json_api/) 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/storage_v1"
|
@@ -0,0 +1,48 @@
|
|
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/storage_v1/service.rb'
|
16
|
+
require 'google/apis/storage_v1/classes.rb'
|
17
|
+
require 'google/apis/storage_v1/representations.rb'
|
18
|
+
require 'google/apis/storage_v1/gem_version.rb'
|
19
|
+
|
20
|
+
module Google
|
21
|
+
module Apis
|
22
|
+
# Cloud Storage JSON API
|
23
|
+
#
|
24
|
+
# Stores and retrieves potentially large, immutable data objects.
|
25
|
+
#
|
26
|
+
# @see https://developers.google.com/storage/docs/json_api/
|
27
|
+
module StorageV1
|
28
|
+
# Version of the Cloud Storage JSON API this client connects to.
|
29
|
+
# This is NOT the gem version.
|
30
|
+
VERSION = 'V1'
|
31
|
+
|
32
|
+
# View and manage your data across Google Cloud Platform services
|
33
|
+
AUTH_CLOUD_PLATFORM = 'https://www.googleapis.com/auth/cloud-platform'
|
34
|
+
|
35
|
+
# View your data across Google Cloud Platform services
|
36
|
+
AUTH_CLOUD_PLATFORM_READ_ONLY = 'https://www.googleapis.com/auth/cloud-platform.read-only'
|
37
|
+
|
38
|
+
# Manage your data and permissions in Google Cloud Storage
|
39
|
+
AUTH_DEVSTORAGE_FULL_CONTROL = 'https://www.googleapis.com/auth/devstorage.full_control'
|
40
|
+
|
41
|
+
# View your data in Google Cloud Storage
|
42
|
+
AUTH_DEVSTORAGE_READ_ONLY = 'https://www.googleapis.com/auth/devstorage.read_only'
|
43
|
+
|
44
|
+
# Manage your data in Google Cloud Storage
|
45
|
+
AUTH_DEVSTORAGE_READ_WRITE = 'https://www.googleapis.com/auth/devstorage.read_write'
|
46
|
+
end
|
47
|
+
end
|
48
|
+
end
|
@@ -0,0 +1,2079 @@
|
|
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 StorageV1
|
24
|
+
|
25
|
+
# A bucket.
|
26
|
+
class Bucket
|
27
|
+
include Google::Apis::Core::Hashable
|
28
|
+
|
29
|
+
# Access controls on the bucket.
|
30
|
+
# Corresponds to the JSON property `acl`
|
31
|
+
# @return [Array<Google::Apis::StorageV1::BucketAccessControl>]
|
32
|
+
attr_accessor :acl
|
33
|
+
|
34
|
+
# The bucket's billing configuration.
|
35
|
+
# Corresponds to the JSON property `billing`
|
36
|
+
# @return [Google::Apis::StorageV1::Bucket::Billing]
|
37
|
+
attr_accessor :billing
|
38
|
+
|
39
|
+
# The bucket's Cross-Origin Resource Sharing (CORS) configuration.
|
40
|
+
# Corresponds to the JSON property `cors`
|
41
|
+
# @return [Array<Google::Apis::StorageV1::Bucket::CorsConfiguration>]
|
42
|
+
attr_accessor :cors_configurations
|
43
|
+
|
44
|
+
# The default value for event-based hold on newly created objects in this bucket.
|
45
|
+
# Event-based hold is a way to retain objects indefinitely until an event
|
46
|
+
# occurs, signified by the hold's release. After being released, such objects
|
47
|
+
# will be subject to bucket-level retention (if any). One sample use case of
|
48
|
+
# this flag is for banks to hold loan documents for at least 3 years after loan
|
49
|
+
# is paid in full. Here, bucket-level retention is 3 years and the event is loan
|
50
|
+
# being paid in full. In this example, these objects will be held intact for any
|
51
|
+
# number of years until the event has occurred (event-based hold on the object
|
52
|
+
# is released) and then 3 more years after that. That means retention duration
|
53
|
+
# of the objects begins from the moment event-based hold transitioned from true
|
54
|
+
# to false. Objects under event-based hold cannot be deleted, overwritten or
|
55
|
+
# archived until the hold is removed.
|
56
|
+
# Corresponds to the JSON property `defaultEventBasedHold`
|
57
|
+
# @return [Boolean]
|
58
|
+
attr_accessor :default_event_based_hold
|
59
|
+
alias_method :default_event_based_hold?, :default_event_based_hold
|
60
|
+
|
61
|
+
# Default access controls to apply to new objects when no ACL is provided.
|
62
|
+
# Corresponds to the JSON property `defaultObjectAcl`
|
63
|
+
# @return [Array<Google::Apis::StorageV1::ObjectAccessControl>]
|
64
|
+
attr_accessor :default_object_acl
|
65
|
+
|
66
|
+
# Encryption configuration for a bucket.
|
67
|
+
# Corresponds to the JSON property `encryption`
|
68
|
+
# @return [Google::Apis::StorageV1::Bucket::Encryption]
|
69
|
+
attr_accessor :encryption
|
70
|
+
|
71
|
+
# HTTP 1.1 Entity tag for the bucket.
|
72
|
+
# Corresponds to the JSON property `etag`
|
73
|
+
# @return [String]
|
74
|
+
attr_accessor :etag
|
75
|
+
|
76
|
+
# The bucket's IAM configuration.
|
77
|
+
# Corresponds to the JSON property `iamConfiguration`
|
78
|
+
# @return [Google::Apis::StorageV1::Bucket::IamConfiguration]
|
79
|
+
attr_accessor :iam_configuration
|
80
|
+
|
81
|
+
# The ID of the bucket. For buckets, the id and name properties are the same.
|
82
|
+
# Corresponds to the JSON property `id`
|
83
|
+
# @return [String]
|
84
|
+
attr_accessor :id
|
85
|
+
|
86
|
+
# The kind of item this is. For buckets, this is always storage#bucket.
|
87
|
+
# Corresponds to the JSON property `kind`
|
88
|
+
# @return [String]
|
89
|
+
attr_accessor :kind
|
90
|
+
|
91
|
+
# User-provided labels, in key/value pairs.
|
92
|
+
# Corresponds to the JSON property `labels`
|
93
|
+
# @return [Hash<String,String>]
|
94
|
+
attr_accessor :labels
|
95
|
+
|
96
|
+
# The bucket's lifecycle configuration. See lifecycle management for more
|
97
|
+
# information.
|
98
|
+
# Corresponds to the JSON property `lifecycle`
|
99
|
+
# @return [Google::Apis::StorageV1::Bucket::Lifecycle]
|
100
|
+
attr_accessor :lifecycle
|
101
|
+
|
102
|
+
# The location of the bucket. Object data for objects in the bucket resides in
|
103
|
+
# physical storage within this region. Defaults to US. See the developer's guide
|
104
|
+
# for the authoritative list.
|
105
|
+
# Corresponds to the JSON property `location`
|
106
|
+
# @return [String]
|
107
|
+
attr_accessor :location
|
108
|
+
|
109
|
+
# The type of the bucket location.
|
110
|
+
# Corresponds to the JSON property `locationType`
|
111
|
+
# @return [String]
|
112
|
+
attr_accessor :location_type
|
113
|
+
|
114
|
+
# The bucket's logging configuration, which defines the destination bucket and
|
115
|
+
# optional name prefix for the current bucket's logs.
|
116
|
+
# Corresponds to the JSON property `logging`
|
117
|
+
# @return [Google::Apis::StorageV1::Bucket::Logging]
|
118
|
+
attr_accessor :logging
|
119
|
+
|
120
|
+
# The metadata generation of this bucket.
|
121
|
+
# Corresponds to the JSON property `metageneration`
|
122
|
+
# @return [Fixnum]
|
123
|
+
attr_accessor :metageneration
|
124
|
+
|
125
|
+
# The name of the bucket.
|
126
|
+
# Corresponds to the JSON property `name`
|
127
|
+
# @return [String]
|
128
|
+
attr_accessor :name
|
129
|
+
|
130
|
+
# The owner of the bucket. This is always the project team's owner group.
|
131
|
+
# Corresponds to the JSON property `owner`
|
132
|
+
# @return [Google::Apis::StorageV1::Bucket::Owner]
|
133
|
+
attr_accessor :owner
|
134
|
+
|
135
|
+
# The project number of the project the bucket belongs to.
|
136
|
+
# Corresponds to the JSON property `projectNumber`
|
137
|
+
# @return [Fixnum]
|
138
|
+
attr_accessor :project_number
|
139
|
+
|
140
|
+
# The bucket's retention policy. The retention policy enforces a minimum
|
141
|
+
# retention time for all objects contained in the bucket, based on their
|
142
|
+
# creation time. Any attempt to overwrite or delete objects younger than the
|
143
|
+
# retention period will result in a PERMISSION_DENIED error. An unlocked
|
144
|
+
# retention policy can be modified or removed from the bucket via a storage.
|
145
|
+
# buckets.update operation. A locked retention policy cannot be removed or
|
146
|
+
# shortened in duration for the lifetime of the bucket. Attempting to remove or
|
147
|
+
# decrease period of a locked retention policy will result in a
|
148
|
+
# PERMISSION_DENIED error.
|
149
|
+
# Corresponds to the JSON property `retentionPolicy`
|
150
|
+
# @return [Google::Apis::StorageV1::Bucket::RetentionPolicy]
|
151
|
+
attr_accessor :retention_policy
|
152
|
+
|
153
|
+
# The URI of this bucket.
|
154
|
+
# Corresponds to the JSON property `selfLink`
|
155
|
+
# @return [String]
|
156
|
+
attr_accessor :self_link
|
157
|
+
|
158
|
+
# The bucket's default storage class, used whenever no storageClass is specified
|
159
|
+
# for a newly-created object. This defines how objects in the bucket are stored
|
160
|
+
# and determines the SLA and the cost of storage. Values include MULTI_REGIONAL,
|
161
|
+
# REGIONAL, STANDARD, NEARLINE, COLDLINE, ARCHIVE, and
|
162
|
+
# DURABLE_REDUCED_AVAILABILITY. If this value is not specified when the bucket
|
163
|
+
# is created, it will default to STANDARD. For more information, see storage
|
164
|
+
# classes.
|
165
|
+
# Corresponds to the JSON property `storageClass`
|
166
|
+
# @return [String]
|
167
|
+
attr_accessor :storage_class
|
168
|
+
|
169
|
+
# The creation time of the bucket in RFC 3339 format.
|
170
|
+
# Corresponds to the JSON property `timeCreated`
|
171
|
+
# @return [DateTime]
|
172
|
+
attr_accessor :time_created
|
173
|
+
|
174
|
+
# The modification time of the bucket in RFC 3339 format.
|
175
|
+
# Corresponds to the JSON property `updated`
|
176
|
+
# @return [DateTime]
|
177
|
+
attr_accessor :updated
|
178
|
+
|
179
|
+
# The bucket's versioning configuration.
|
180
|
+
# Corresponds to the JSON property `versioning`
|
181
|
+
# @return [Google::Apis::StorageV1::Bucket::Versioning]
|
182
|
+
attr_accessor :versioning
|
183
|
+
|
184
|
+
# The bucket's website configuration, controlling how the service behaves when
|
185
|
+
# accessing bucket contents as a web site. See the Static Website Examples for
|
186
|
+
# more information.
|
187
|
+
# Corresponds to the JSON property `website`
|
188
|
+
# @return [Google::Apis::StorageV1::Bucket::Website]
|
189
|
+
attr_accessor :website
|
190
|
+
|
191
|
+
# The zone or zones from which the bucket is intended to use zonal quota.
|
192
|
+
# Requests for data from outside the specified affinities are still allowed but
|
193
|
+
# won't be able to use zonal quota. The zone or zones need to be within the
|
194
|
+
# bucket location otherwise the requests will fail with a 400 Bad Request
|
195
|
+
# response.
|
196
|
+
# Corresponds to the JSON property `zoneAffinity`
|
197
|
+
# @return [Array<String>]
|
198
|
+
attr_accessor :zone_affinity
|
199
|
+
|
200
|
+
def initialize(**args)
|
201
|
+
update!(**args)
|
202
|
+
end
|
203
|
+
|
204
|
+
# Update properties of this object
|
205
|
+
def update!(**args)
|
206
|
+
@acl = args[:acl] if args.key?(:acl)
|
207
|
+
@billing = args[:billing] if args.key?(:billing)
|
208
|
+
@cors_configurations = args[:cors_configurations] if args.key?(:cors_configurations)
|
209
|
+
@default_event_based_hold = args[:default_event_based_hold] if args.key?(:default_event_based_hold)
|
210
|
+
@default_object_acl = args[:default_object_acl] if args.key?(:default_object_acl)
|
211
|
+
@encryption = args[:encryption] if args.key?(:encryption)
|
212
|
+
@etag = args[:etag] if args.key?(:etag)
|
213
|
+
@iam_configuration = args[:iam_configuration] if args.key?(:iam_configuration)
|
214
|
+
@id = args[:id] if args.key?(:id)
|
215
|
+
@kind = args[:kind] if args.key?(:kind)
|
216
|
+
@labels = args[:labels] if args.key?(:labels)
|
217
|
+
@lifecycle = args[:lifecycle] if args.key?(:lifecycle)
|
218
|
+
@location = args[:location] if args.key?(:location)
|
219
|
+
@location_type = args[:location_type] if args.key?(:location_type)
|
220
|
+
@logging = args[:logging] if args.key?(:logging)
|
221
|
+
@metageneration = args[:metageneration] if args.key?(:metageneration)
|
222
|
+
@name = args[:name] if args.key?(:name)
|
223
|
+
@owner = args[:owner] if args.key?(:owner)
|
224
|
+
@project_number = args[:project_number] if args.key?(:project_number)
|
225
|
+
@retention_policy = args[:retention_policy] if args.key?(:retention_policy)
|
226
|
+
@self_link = args[:self_link] if args.key?(:self_link)
|
227
|
+
@storage_class = args[:storage_class] if args.key?(:storage_class)
|
228
|
+
@time_created = args[:time_created] if args.key?(:time_created)
|
229
|
+
@updated = args[:updated] if args.key?(:updated)
|
230
|
+
@versioning = args[:versioning] if args.key?(:versioning)
|
231
|
+
@website = args[:website] if args.key?(:website)
|
232
|
+
@zone_affinity = args[:zone_affinity] if args.key?(:zone_affinity)
|
233
|
+
end
|
234
|
+
|
235
|
+
# The bucket's billing configuration.
|
236
|
+
class Billing
|
237
|
+
include Google::Apis::Core::Hashable
|
238
|
+
|
239
|
+
# When set to true, Requester Pays is enabled for this bucket.
|
240
|
+
# Corresponds to the JSON property `requesterPays`
|
241
|
+
# @return [Boolean]
|
242
|
+
attr_accessor :requester_pays
|
243
|
+
alias_method :requester_pays?, :requester_pays
|
244
|
+
|
245
|
+
def initialize(**args)
|
246
|
+
update!(**args)
|
247
|
+
end
|
248
|
+
|
249
|
+
# Update properties of this object
|
250
|
+
def update!(**args)
|
251
|
+
@requester_pays = args[:requester_pays] if args.key?(:requester_pays)
|
252
|
+
end
|
253
|
+
end
|
254
|
+
|
255
|
+
#
|
256
|
+
class CorsConfiguration
|
257
|
+
include Google::Apis::Core::Hashable
|
258
|
+
|
259
|
+
# The value, in seconds, to return in the Access-Control-Max-Age header used in
|
260
|
+
# preflight responses.
|
261
|
+
# Corresponds to the JSON property `maxAgeSeconds`
|
262
|
+
# @return [Fixnum]
|
263
|
+
attr_accessor :max_age_seconds
|
264
|
+
|
265
|
+
# The list of HTTP methods on which to include CORS response headers, (GET,
|
266
|
+
# OPTIONS, POST, etc) Note: "*" is permitted in the list of methods, and means "
|
267
|
+
# any method".
|
268
|
+
# Corresponds to the JSON property `method`
|
269
|
+
# @return [Array<String>]
|
270
|
+
attr_accessor :http_method
|
271
|
+
|
272
|
+
# The list of Origins eligible to receive CORS response headers. Note: "*" is
|
273
|
+
# permitted in the list of origins, and means "any Origin".
|
274
|
+
# Corresponds to the JSON property `origin`
|
275
|
+
# @return [Array<String>]
|
276
|
+
attr_accessor :origin
|
277
|
+
|
278
|
+
# The list of HTTP headers other than the simple response headers to give
|
279
|
+
# permission for the user-agent to share across domains.
|
280
|
+
# Corresponds to the JSON property `responseHeader`
|
281
|
+
# @return [Array<String>]
|
282
|
+
attr_accessor :response_header
|
283
|
+
|
284
|
+
def initialize(**args)
|
285
|
+
update!(**args)
|
286
|
+
end
|
287
|
+
|
288
|
+
# Update properties of this object
|
289
|
+
def update!(**args)
|
290
|
+
@max_age_seconds = args[:max_age_seconds] if args.key?(:max_age_seconds)
|
291
|
+
@http_method = args[:http_method] if args.key?(:http_method)
|
292
|
+
@origin = args[:origin] if args.key?(:origin)
|
293
|
+
@response_header = args[:response_header] if args.key?(:response_header)
|
294
|
+
end
|
295
|
+
end
|
296
|
+
|
297
|
+
# Encryption configuration for a bucket.
|
298
|
+
class Encryption
|
299
|
+
include Google::Apis::Core::Hashable
|
300
|
+
|
301
|
+
# A Cloud KMS key that will be used to encrypt objects inserted into this bucket,
|
302
|
+
# if no encryption method is specified.
|
303
|
+
# Corresponds to the JSON property `defaultKmsKeyName`
|
304
|
+
# @return [String]
|
305
|
+
attr_accessor :default_kms_key_name
|
306
|
+
|
307
|
+
def initialize(**args)
|
308
|
+
update!(**args)
|
309
|
+
end
|
310
|
+
|
311
|
+
# Update properties of this object
|
312
|
+
def update!(**args)
|
313
|
+
@default_kms_key_name = args[:default_kms_key_name] if args.key?(:default_kms_key_name)
|
314
|
+
end
|
315
|
+
end
|
316
|
+
|
317
|
+
# The bucket's IAM configuration.
|
318
|
+
class IamConfiguration
|
319
|
+
include Google::Apis::Core::Hashable
|
320
|
+
|
321
|
+
# The bucket's uniform bucket-level access configuration. The feature was
|
322
|
+
# formerly known as Bucket Policy Only. For backward compatibility, this field
|
323
|
+
# will be populated with identical information as the uniformBucketLevelAccess
|
324
|
+
# field. We recommend using the uniformBucketLevelAccess field to enable and
|
325
|
+
# disable the feature.
|
326
|
+
# Corresponds to the JSON property `bucketPolicyOnly`
|
327
|
+
# @return [Google::Apis::StorageV1::Bucket::IamConfiguration::BucketPolicyOnly]
|
328
|
+
attr_accessor :bucket_policy_only
|
329
|
+
|
330
|
+
# The bucket's Public Access Prevention configuration. Currently, 'unspecified'
|
331
|
+
# and 'enforced' are supported.
|
332
|
+
# Corresponds to the JSON property `publicAccessPrevention`
|
333
|
+
# @return [String]
|
334
|
+
attr_accessor :public_access_prevention
|
335
|
+
|
336
|
+
# The bucket's uniform bucket-level access configuration.
|
337
|
+
# Corresponds to the JSON property `uniformBucketLevelAccess`
|
338
|
+
# @return [Google::Apis::StorageV1::Bucket::IamConfiguration::UniformBucketLevelAccess]
|
339
|
+
attr_accessor :uniform_bucket_level_access
|
340
|
+
|
341
|
+
def initialize(**args)
|
342
|
+
update!(**args)
|
343
|
+
end
|
344
|
+
|
345
|
+
# Update properties of this object
|
346
|
+
def update!(**args)
|
347
|
+
@bucket_policy_only = args[:bucket_policy_only] if args.key?(:bucket_policy_only)
|
348
|
+
@public_access_prevention = args[:public_access_prevention] if args.key?(:public_access_prevention)
|
349
|
+
@uniform_bucket_level_access = args[:uniform_bucket_level_access] if args.key?(:uniform_bucket_level_access)
|
350
|
+
end
|
351
|
+
|
352
|
+
# The bucket's uniform bucket-level access configuration. The feature was
|
353
|
+
# formerly known as Bucket Policy Only. For backward compatibility, this field
|
354
|
+
# will be populated with identical information as the uniformBucketLevelAccess
|
355
|
+
# field. We recommend using the uniformBucketLevelAccess field to enable and
|
356
|
+
# disable the feature.
|
357
|
+
class BucketPolicyOnly
|
358
|
+
include Google::Apis::Core::Hashable
|
359
|
+
|
360
|
+
# If set, access is controlled only by bucket-level or above IAM policies.
|
361
|
+
# Corresponds to the JSON property `enabled`
|
362
|
+
# @return [Boolean]
|
363
|
+
attr_accessor :enabled
|
364
|
+
alias_method :enabled?, :enabled
|
365
|
+
|
366
|
+
# The deadline for changing iamConfiguration.bucketPolicyOnly.enabled from true
|
367
|
+
# to false in RFC 3339 format. iamConfiguration.bucketPolicyOnly.enabled may be
|
368
|
+
# changed from true to false until the locked time, after which the field is
|
369
|
+
# immutable.
|
370
|
+
# Corresponds to the JSON property `lockedTime`
|
371
|
+
# @return [DateTime]
|
372
|
+
attr_accessor :locked_time
|
373
|
+
|
374
|
+
def initialize(**args)
|
375
|
+
update!(**args)
|
376
|
+
end
|
377
|
+
|
378
|
+
# Update properties of this object
|
379
|
+
def update!(**args)
|
380
|
+
@enabled = args[:enabled] if args.key?(:enabled)
|
381
|
+
@locked_time = args[:locked_time] if args.key?(:locked_time)
|
382
|
+
end
|
383
|
+
end
|
384
|
+
|
385
|
+
# The bucket's uniform bucket-level access configuration.
|
386
|
+
class UniformBucketLevelAccess
|
387
|
+
include Google::Apis::Core::Hashable
|
388
|
+
|
389
|
+
# If set, access is controlled only by bucket-level or above IAM policies.
|
390
|
+
# Corresponds to the JSON property `enabled`
|
391
|
+
# @return [Boolean]
|
392
|
+
attr_accessor :enabled
|
393
|
+
alias_method :enabled?, :enabled
|
394
|
+
|
395
|
+
# The deadline for changing iamConfiguration.uniformBucketLevelAccess.enabled
|
396
|
+
# from true to false in RFC 3339 format. iamConfiguration.
|
397
|
+
# uniformBucketLevelAccess.enabled may be changed from true to false until the
|
398
|
+
# locked time, after which the field is immutable.
|
399
|
+
# Corresponds to the JSON property `lockedTime`
|
400
|
+
# @return [DateTime]
|
401
|
+
attr_accessor :locked_time
|
402
|
+
|
403
|
+
def initialize(**args)
|
404
|
+
update!(**args)
|
405
|
+
end
|
406
|
+
|
407
|
+
# Update properties of this object
|
408
|
+
def update!(**args)
|
409
|
+
@enabled = args[:enabled] if args.key?(:enabled)
|
410
|
+
@locked_time = args[:locked_time] if args.key?(:locked_time)
|
411
|
+
end
|
412
|
+
end
|
413
|
+
end
|
414
|
+
|
415
|
+
# The bucket's lifecycle configuration. See lifecycle management for more
|
416
|
+
# information.
|
417
|
+
class Lifecycle
|
418
|
+
include Google::Apis::Core::Hashable
|
419
|
+
|
420
|
+
# A lifecycle management rule, which is made of an action to take and the
|
421
|
+
# condition(s) under which the action will be taken.
|
422
|
+
# Corresponds to the JSON property `rule`
|
423
|
+
# @return [Array<Google::Apis::StorageV1::Bucket::Lifecycle::Rule>]
|
424
|
+
attr_accessor :rule
|
425
|
+
|
426
|
+
def initialize(**args)
|
427
|
+
update!(**args)
|
428
|
+
end
|
429
|
+
|
430
|
+
# Update properties of this object
|
431
|
+
def update!(**args)
|
432
|
+
@rule = args[:rule] if args.key?(:rule)
|
433
|
+
end
|
434
|
+
|
435
|
+
#
|
436
|
+
class Rule
|
437
|
+
include Google::Apis::Core::Hashable
|
438
|
+
|
439
|
+
# The action to take.
|
440
|
+
# Corresponds to the JSON property `action`
|
441
|
+
# @return [Google::Apis::StorageV1::Bucket::Lifecycle::Rule::Action]
|
442
|
+
attr_accessor :action
|
443
|
+
|
444
|
+
# The condition(s) under which the action will be taken.
|
445
|
+
# Corresponds to the JSON property `condition`
|
446
|
+
# @return [Google::Apis::StorageV1::Bucket::Lifecycle::Rule::Condition]
|
447
|
+
attr_accessor :condition
|
448
|
+
|
449
|
+
def initialize(**args)
|
450
|
+
update!(**args)
|
451
|
+
end
|
452
|
+
|
453
|
+
# Update properties of this object
|
454
|
+
def update!(**args)
|
455
|
+
@action = args[:action] if args.key?(:action)
|
456
|
+
@condition = args[:condition] if args.key?(:condition)
|
457
|
+
end
|
458
|
+
|
459
|
+
# The action to take.
|
460
|
+
class Action
|
461
|
+
include Google::Apis::Core::Hashable
|
462
|
+
|
463
|
+
# Target storage class. Required iff the type of the action is SetStorageClass.
|
464
|
+
# Corresponds to the JSON property `storageClass`
|
465
|
+
# @return [String]
|
466
|
+
attr_accessor :storage_class
|
467
|
+
|
468
|
+
# Type of the action. Currently, only Delete and SetStorageClass are supported.
|
469
|
+
# Corresponds to the JSON property `type`
|
470
|
+
# @return [String]
|
471
|
+
attr_accessor :type
|
472
|
+
|
473
|
+
def initialize(**args)
|
474
|
+
update!(**args)
|
475
|
+
end
|
476
|
+
|
477
|
+
# Update properties of this object
|
478
|
+
def update!(**args)
|
479
|
+
@storage_class = args[:storage_class] if args.key?(:storage_class)
|
480
|
+
@type = args[:type] if args.key?(:type)
|
481
|
+
end
|
482
|
+
end
|
483
|
+
|
484
|
+
# The condition(s) under which the action will be taken.
|
485
|
+
class Condition
|
486
|
+
include Google::Apis::Core::Hashable
|
487
|
+
|
488
|
+
# Age of an object (in days). This condition is satisfied when an object reaches
|
489
|
+
# the specified age.
|
490
|
+
# Corresponds to the JSON property `age`
|
491
|
+
# @return [Fixnum]
|
492
|
+
attr_accessor :age
|
493
|
+
|
494
|
+
# A date in RFC 3339 format with only the date part (for instance, "2013-01-15").
|
495
|
+
# This condition is satisfied when an object is created before midnight of the
|
496
|
+
# specified date in UTC.
|
497
|
+
# Corresponds to the JSON property `createdBefore`
|
498
|
+
# @return [Date]
|
499
|
+
attr_accessor :created_before
|
500
|
+
|
501
|
+
# A date in RFC 3339 format with only the date part (for instance, "2013-01-15").
|
502
|
+
# This condition is satisfied when the custom time on an object is before this
|
503
|
+
# date in UTC.
|
504
|
+
# Corresponds to the JSON property `customTimeBefore`
|
505
|
+
# @return [Date]
|
506
|
+
attr_accessor :custom_time_before
|
507
|
+
|
508
|
+
# Number of days elapsed since the user-specified timestamp set on an object.
|
509
|
+
# The condition is satisfied if the days elapsed is at least this number. If no
|
510
|
+
# custom timestamp is specified on an object, the condition does not apply.
|
511
|
+
# Corresponds to the JSON property `daysSinceCustomTime`
|
512
|
+
# @return [Fixnum]
|
513
|
+
attr_accessor :days_since_custom_time
|
514
|
+
|
515
|
+
# Number of days elapsed since the noncurrent timestamp of an object. The
|
516
|
+
# condition is satisfied if the days elapsed is at least this number. This
|
517
|
+
# condition is relevant only for versioned objects. The value of the field must
|
518
|
+
# be a nonnegative integer. If it's zero, the object version will become
|
519
|
+
# eligible for Lifecycle action as soon as it becomes noncurrent.
|
520
|
+
# Corresponds to the JSON property `daysSinceNoncurrentTime`
|
521
|
+
# @return [Fixnum]
|
522
|
+
attr_accessor :days_since_noncurrent_time
|
523
|
+
|
524
|
+
# Relevant only for versioned objects. If the value is true, this condition
|
525
|
+
# matches live objects; if the value is false, it matches archived objects.
|
526
|
+
# Corresponds to the JSON property `isLive`
|
527
|
+
# @return [Boolean]
|
528
|
+
attr_accessor :is_live
|
529
|
+
alias_method :is_live?, :is_live
|
530
|
+
|
531
|
+
# A regular expression that satisfies the RE2 syntax. This condition is
|
532
|
+
# satisfied when the name of the object matches the RE2 pattern. Note: This
|
533
|
+
# feature is currently in the "Early Access" launch stage and is only available
|
534
|
+
# to a whitelisted set of users; that means that this feature may be changed in
|
535
|
+
# backward-incompatible ways and that it is not guaranteed to be released.
|
536
|
+
# Corresponds to the JSON property `matchesPattern`
|
537
|
+
# @return [String]
|
538
|
+
attr_accessor :matches_pattern
|
539
|
+
|
540
|
+
# Objects having any of the storage classes specified by this condition will be
|
541
|
+
# matched. Values include MULTI_REGIONAL, REGIONAL, NEARLINE, COLDLINE, ARCHIVE,
|
542
|
+
# STANDARD, and DURABLE_REDUCED_AVAILABILITY.
|
543
|
+
# Corresponds to the JSON property `matchesStorageClass`
|
544
|
+
# @return [Array<String>]
|
545
|
+
attr_accessor :matches_storage_class
|
546
|
+
|
547
|
+
# A date in RFC 3339 format with only the date part (for instance, "2013-01-15").
|
548
|
+
# This condition is satisfied when the noncurrent time on an object is before
|
549
|
+
# this date in UTC. This condition is relevant only for versioned objects.
|
550
|
+
# Corresponds to the JSON property `noncurrentTimeBefore`
|
551
|
+
# @return [Date]
|
552
|
+
attr_accessor :noncurrent_time_before
|
553
|
+
|
554
|
+
# Relevant only for versioned objects. If the value is N, this condition is
|
555
|
+
# satisfied when there are at least N versions (including the live version)
|
556
|
+
# newer than this version of the object.
|
557
|
+
# Corresponds to the JSON property `numNewerVersions`
|
558
|
+
# @return [Fixnum]
|
559
|
+
attr_accessor :num_newer_versions
|
560
|
+
|
561
|
+
def initialize(**args)
|
562
|
+
update!(**args)
|
563
|
+
end
|
564
|
+
|
565
|
+
# Update properties of this object
|
566
|
+
def update!(**args)
|
567
|
+
@age = args[:age] if args.key?(:age)
|
568
|
+
@created_before = args[:created_before] if args.key?(:created_before)
|
569
|
+
@custom_time_before = args[:custom_time_before] if args.key?(:custom_time_before)
|
570
|
+
@days_since_custom_time = args[:days_since_custom_time] if args.key?(:days_since_custom_time)
|
571
|
+
@days_since_noncurrent_time = args[:days_since_noncurrent_time] if args.key?(:days_since_noncurrent_time)
|
572
|
+
@is_live = args[:is_live] if args.key?(:is_live)
|
573
|
+
@matches_pattern = args[:matches_pattern] if args.key?(:matches_pattern)
|
574
|
+
@matches_storage_class = args[:matches_storage_class] if args.key?(:matches_storage_class)
|
575
|
+
@noncurrent_time_before = args[:noncurrent_time_before] if args.key?(:noncurrent_time_before)
|
576
|
+
@num_newer_versions = args[:num_newer_versions] if args.key?(:num_newer_versions)
|
577
|
+
end
|
578
|
+
end
|
579
|
+
end
|
580
|
+
end
|
581
|
+
|
582
|
+
# The bucket's logging configuration, which defines the destination bucket and
|
583
|
+
# optional name prefix for the current bucket's logs.
|
584
|
+
class Logging
|
585
|
+
include Google::Apis::Core::Hashable
|
586
|
+
|
587
|
+
# The destination bucket where the current bucket's logs should be placed.
|
588
|
+
# Corresponds to the JSON property `logBucket`
|
589
|
+
# @return [String]
|
590
|
+
attr_accessor :log_bucket
|
591
|
+
|
592
|
+
# A prefix for log object names.
|
593
|
+
# Corresponds to the JSON property `logObjectPrefix`
|
594
|
+
# @return [String]
|
595
|
+
attr_accessor :log_object_prefix
|
596
|
+
|
597
|
+
def initialize(**args)
|
598
|
+
update!(**args)
|
599
|
+
end
|
600
|
+
|
601
|
+
# Update properties of this object
|
602
|
+
def update!(**args)
|
603
|
+
@log_bucket = args[:log_bucket] if args.key?(:log_bucket)
|
604
|
+
@log_object_prefix = args[:log_object_prefix] if args.key?(:log_object_prefix)
|
605
|
+
end
|
606
|
+
end
|
607
|
+
|
608
|
+
# The owner of the bucket. This is always the project team's owner group.
|
609
|
+
class Owner
|
610
|
+
include Google::Apis::Core::Hashable
|
611
|
+
|
612
|
+
# The entity, in the form project-owner-projectId.
|
613
|
+
# Corresponds to the JSON property `entity`
|
614
|
+
# @return [String]
|
615
|
+
attr_accessor :entity
|
616
|
+
|
617
|
+
# The ID for the entity.
|
618
|
+
# Corresponds to the JSON property `entityId`
|
619
|
+
# @return [String]
|
620
|
+
attr_accessor :entity_id
|
621
|
+
|
622
|
+
def initialize(**args)
|
623
|
+
update!(**args)
|
624
|
+
end
|
625
|
+
|
626
|
+
# Update properties of this object
|
627
|
+
def update!(**args)
|
628
|
+
@entity = args[:entity] if args.key?(:entity)
|
629
|
+
@entity_id = args[:entity_id] if args.key?(:entity_id)
|
630
|
+
end
|
631
|
+
end
|
632
|
+
|
633
|
+
# The bucket's retention policy. The retention policy enforces a minimum
|
634
|
+
# retention time for all objects contained in the bucket, based on their
|
635
|
+
# creation time. Any attempt to overwrite or delete objects younger than the
|
636
|
+
# retention period will result in a PERMISSION_DENIED error. An unlocked
|
637
|
+
# retention policy can be modified or removed from the bucket via a storage.
|
638
|
+
# buckets.update operation. A locked retention policy cannot be removed or
|
639
|
+
# shortened in duration for the lifetime of the bucket. Attempting to remove or
|
640
|
+
# decrease period of a locked retention policy will result in a
|
641
|
+
# PERMISSION_DENIED error.
|
642
|
+
class RetentionPolicy
|
643
|
+
include Google::Apis::Core::Hashable
|
644
|
+
|
645
|
+
# Server-determined value that indicates the time from which policy was enforced
|
646
|
+
# and effective. This value is in RFC 3339 format.
|
647
|
+
# Corresponds to the JSON property `effectiveTime`
|
648
|
+
# @return [DateTime]
|
649
|
+
attr_accessor :effective_time
|
650
|
+
|
651
|
+
# Once locked, an object retention policy cannot be modified.
|
652
|
+
# Corresponds to the JSON property `isLocked`
|
653
|
+
# @return [Boolean]
|
654
|
+
attr_accessor :is_locked
|
655
|
+
alias_method :is_locked?, :is_locked
|
656
|
+
|
657
|
+
# The duration in seconds that objects need to be retained. Retention duration
|
658
|
+
# must be greater than zero and less than 100 years. Note that enforcement of
|
659
|
+
# retention periods less than a day is not guaranteed. Such periods should only
|
660
|
+
# be used for testing purposes.
|
661
|
+
# Corresponds to the JSON property `retentionPeriod`
|
662
|
+
# @return [Fixnum]
|
663
|
+
attr_accessor :retention_period
|
664
|
+
|
665
|
+
def initialize(**args)
|
666
|
+
update!(**args)
|
667
|
+
end
|
668
|
+
|
669
|
+
# Update properties of this object
|
670
|
+
def update!(**args)
|
671
|
+
@effective_time = args[:effective_time] if args.key?(:effective_time)
|
672
|
+
@is_locked = args[:is_locked] if args.key?(:is_locked)
|
673
|
+
@retention_period = args[:retention_period] if args.key?(:retention_period)
|
674
|
+
end
|
675
|
+
end
|
676
|
+
|
677
|
+
# The bucket's versioning configuration.
|
678
|
+
class Versioning
|
679
|
+
include Google::Apis::Core::Hashable
|
680
|
+
|
681
|
+
# While set to true, versioning is fully enabled for this bucket.
|
682
|
+
# Corresponds to the JSON property `enabled`
|
683
|
+
# @return [Boolean]
|
684
|
+
attr_accessor :enabled
|
685
|
+
alias_method :enabled?, :enabled
|
686
|
+
|
687
|
+
def initialize(**args)
|
688
|
+
update!(**args)
|
689
|
+
end
|
690
|
+
|
691
|
+
# Update properties of this object
|
692
|
+
def update!(**args)
|
693
|
+
@enabled = args[:enabled] if args.key?(:enabled)
|
694
|
+
end
|
695
|
+
end
|
696
|
+
|
697
|
+
# The bucket's website configuration, controlling how the service behaves when
|
698
|
+
# accessing bucket contents as a web site. See the Static Website Examples for
|
699
|
+
# more information.
|
700
|
+
class Website
|
701
|
+
include Google::Apis::Core::Hashable
|
702
|
+
|
703
|
+
# If the requested object path is missing, the service will ensure the path has
|
704
|
+
# a trailing '/', append this suffix, and attempt to retrieve the resulting
|
705
|
+
# object. This allows the creation of index.html objects to represent directory
|
706
|
+
# pages.
|
707
|
+
# Corresponds to the JSON property `mainPageSuffix`
|
708
|
+
# @return [String]
|
709
|
+
attr_accessor :main_page_suffix
|
710
|
+
|
711
|
+
# If the requested object path is missing, and any mainPageSuffix object is
|
712
|
+
# missing, if applicable, the service will return the named object from this
|
713
|
+
# bucket as the content for a 404 Not Found result.
|
714
|
+
# Corresponds to the JSON property `notFoundPage`
|
715
|
+
# @return [String]
|
716
|
+
attr_accessor :not_found_page
|
717
|
+
|
718
|
+
def initialize(**args)
|
719
|
+
update!(**args)
|
720
|
+
end
|
721
|
+
|
722
|
+
# Update properties of this object
|
723
|
+
def update!(**args)
|
724
|
+
@main_page_suffix = args[:main_page_suffix] if args.key?(:main_page_suffix)
|
725
|
+
@not_found_page = args[:not_found_page] if args.key?(:not_found_page)
|
726
|
+
end
|
727
|
+
end
|
728
|
+
end
|
729
|
+
|
730
|
+
# An access-control entry.
|
731
|
+
class BucketAccessControl
|
732
|
+
include Google::Apis::Core::Hashable
|
733
|
+
|
734
|
+
# The name of the bucket.
|
735
|
+
# Corresponds to the JSON property `bucket`
|
736
|
+
# @return [String]
|
737
|
+
attr_accessor :bucket
|
738
|
+
|
739
|
+
# The domain associated with the entity, if any.
|
740
|
+
# Corresponds to the JSON property `domain`
|
741
|
+
# @return [String]
|
742
|
+
attr_accessor :domain
|
743
|
+
|
744
|
+
# The email address associated with the entity, if any.
|
745
|
+
# Corresponds to the JSON property `email`
|
746
|
+
# @return [String]
|
747
|
+
attr_accessor :email
|
748
|
+
|
749
|
+
# The entity holding the permission, in one of the following forms:
|
750
|
+
# - user-userId
|
751
|
+
# - user-email
|
752
|
+
# - group-groupId
|
753
|
+
# - group-email
|
754
|
+
# - domain-domain
|
755
|
+
# - project-team-projectId
|
756
|
+
# - allUsers
|
757
|
+
# - allAuthenticatedUsers Examples:
|
758
|
+
# - The user liz@example.com would be user-liz@example.com.
|
759
|
+
# - The group example@googlegroups.com would be group-example@googlegroups.com.
|
760
|
+
# - To refer to all members of the Google Apps for Business domain example.com,
|
761
|
+
# the entity would be domain-example.com.
|
762
|
+
# Corresponds to the JSON property `entity`
|
763
|
+
# @return [String]
|
764
|
+
attr_accessor :entity
|
765
|
+
|
766
|
+
# The ID for the entity, if any.
|
767
|
+
# Corresponds to the JSON property `entityId`
|
768
|
+
# @return [String]
|
769
|
+
attr_accessor :entity_id
|
770
|
+
|
771
|
+
# HTTP 1.1 Entity tag for the access-control entry.
|
772
|
+
# Corresponds to the JSON property `etag`
|
773
|
+
# @return [String]
|
774
|
+
attr_accessor :etag
|
775
|
+
|
776
|
+
# The ID of the access-control entry.
|
777
|
+
# Corresponds to the JSON property `id`
|
778
|
+
# @return [String]
|
779
|
+
attr_accessor :id
|
780
|
+
|
781
|
+
# The kind of item this is. For bucket access control entries, this is always
|
782
|
+
# storage#bucketAccessControl.
|
783
|
+
# Corresponds to the JSON property `kind`
|
784
|
+
# @return [String]
|
785
|
+
attr_accessor :kind
|
786
|
+
|
787
|
+
# The project team associated with the entity, if any.
|
788
|
+
# Corresponds to the JSON property `projectTeam`
|
789
|
+
# @return [Google::Apis::StorageV1::BucketAccessControl::ProjectTeam]
|
790
|
+
attr_accessor :project_team
|
791
|
+
|
792
|
+
# The access permission for the entity.
|
793
|
+
# Corresponds to the JSON property `role`
|
794
|
+
# @return [String]
|
795
|
+
attr_accessor :role
|
796
|
+
|
797
|
+
# The link to this access-control entry.
|
798
|
+
# Corresponds to the JSON property `selfLink`
|
799
|
+
# @return [String]
|
800
|
+
attr_accessor :self_link
|
801
|
+
|
802
|
+
def initialize(**args)
|
803
|
+
update!(**args)
|
804
|
+
end
|
805
|
+
|
806
|
+
# Update properties of this object
|
807
|
+
def update!(**args)
|
808
|
+
@bucket = args[:bucket] if args.key?(:bucket)
|
809
|
+
@domain = args[:domain] if args.key?(:domain)
|
810
|
+
@email = args[:email] if args.key?(:email)
|
811
|
+
@entity = args[:entity] if args.key?(:entity)
|
812
|
+
@entity_id = args[:entity_id] if args.key?(:entity_id)
|
813
|
+
@etag = args[:etag] if args.key?(:etag)
|
814
|
+
@id = args[:id] if args.key?(:id)
|
815
|
+
@kind = args[:kind] if args.key?(:kind)
|
816
|
+
@project_team = args[:project_team] if args.key?(:project_team)
|
817
|
+
@role = args[:role] if args.key?(:role)
|
818
|
+
@self_link = args[:self_link] if args.key?(:self_link)
|
819
|
+
end
|
820
|
+
|
821
|
+
# The project team associated with the entity, if any.
|
822
|
+
class ProjectTeam
|
823
|
+
include Google::Apis::Core::Hashable
|
824
|
+
|
825
|
+
# The project number.
|
826
|
+
# Corresponds to the JSON property `projectNumber`
|
827
|
+
# @return [String]
|
828
|
+
attr_accessor :project_number
|
829
|
+
|
830
|
+
# The team.
|
831
|
+
# Corresponds to the JSON property `team`
|
832
|
+
# @return [String]
|
833
|
+
attr_accessor :team
|
834
|
+
|
835
|
+
def initialize(**args)
|
836
|
+
update!(**args)
|
837
|
+
end
|
838
|
+
|
839
|
+
# Update properties of this object
|
840
|
+
def update!(**args)
|
841
|
+
@project_number = args[:project_number] if args.key?(:project_number)
|
842
|
+
@team = args[:team] if args.key?(:team)
|
843
|
+
end
|
844
|
+
end
|
845
|
+
end
|
846
|
+
|
847
|
+
# An access-control list.
|
848
|
+
class BucketAccessControls
|
849
|
+
include Google::Apis::Core::Hashable
|
850
|
+
|
851
|
+
# The list of items.
|
852
|
+
# Corresponds to the JSON property `items`
|
853
|
+
# @return [Array<Google::Apis::StorageV1::BucketAccessControl>]
|
854
|
+
attr_accessor :items
|
855
|
+
|
856
|
+
# The kind of item this is. For lists of bucket access control entries, this is
|
857
|
+
# always storage#bucketAccessControls.
|
858
|
+
# Corresponds to the JSON property `kind`
|
859
|
+
# @return [String]
|
860
|
+
attr_accessor :kind
|
861
|
+
|
862
|
+
def initialize(**args)
|
863
|
+
update!(**args)
|
864
|
+
end
|
865
|
+
|
866
|
+
# Update properties of this object
|
867
|
+
def update!(**args)
|
868
|
+
@items = args[:items] if args.key?(:items)
|
869
|
+
@kind = args[:kind] if args.key?(:kind)
|
870
|
+
end
|
871
|
+
end
|
872
|
+
|
873
|
+
# A list of buckets.
|
874
|
+
class Buckets
|
875
|
+
include Google::Apis::Core::Hashable
|
876
|
+
|
877
|
+
# The list of items.
|
878
|
+
# Corresponds to the JSON property `items`
|
879
|
+
# @return [Array<Google::Apis::StorageV1::Bucket>]
|
880
|
+
attr_accessor :items
|
881
|
+
|
882
|
+
# The kind of item this is. For lists of buckets, this is always storage#buckets.
|
883
|
+
# Corresponds to the JSON property `kind`
|
884
|
+
# @return [String]
|
885
|
+
attr_accessor :kind
|
886
|
+
|
887
|
+
# The continuation token, used to page through large result sets. Provide this
|
888
|
+
# value in a subsequent request to return the next page of results.
|
889
|
+
# Corresponds to the JSON property `nextPageToken`
|
890
|
+
# @return [String]
|
891
|
+
attr_accessor :next_page_token
|
892
|
+
|
893
|
+
def initialize(**args)
|
894
|
+
update!(**args)
|
895
|
+
end
|
896
|
+
|
897
|
+
# Update properties of this object
|
898
|
+
def update!(**args)
|
899
|
+
@items = args[:items] if args.key?(:items)
|
900
|
+
@kind = args[:kind] if args.key?(:kind)
|
901
|
+
@next_page_token = args[:next_page_token] if args.key?(:next_page_token)
|
902
|
+
end
|
903
|
+
end
|
904
|
+
|
905
|
+
# An notification channel used to watch for resource changes.
|
906
|
+
class Channel
|
907
|
+
include Google::Apis::Core::Hashable
|
908
|
+
|
909
|
+
# The address where notifications are delivered for this channel.
|
910
|
+
# Corresponds to the JSON property `address`
|
911
|
+
# @return [String]
|
912
|
+
attr_accessor :address
|
913
|
+
|
914
|
+
# Date and time of notification channel expiration, expressed as a Unix
|
915
|
+
# timestamp, in milliseconds. Optional.
|
916
|
+
# Corresponds to the JSON property `expiration`
|
917
|
+
# @return [Fixnum]
|
918
|
+
attr_accessor :expiration
|
919
|
+
|
920
|
+
# A UUID or similar unique string that identifies this channel.
|
921
|
+
# Corresponds to the JSON property `id`
|
922
|
+
# @return [String]
|
923
|
+
attr_accessor :id
|
924
|
+
|
925
|
+
# Identifies this as a notification channel used to watch for changes to a
|
926
|
+
# resource, which is "api#channel".
|
927
|
+
# Corresponds to the JSON property `kind`
|
928
|
+
# @return [String]
|
929
|
+
attr_accessor :kind
|
930
|
+
|
931
|
+
# Additional parameters controlling delivery channel behavior. Optional.
|
932
|
+
# Corresponds to the JSON property `params`
|
933
|
+
# @return [Hash<String,String>]
|
934
|
+
attr_accessor :params
|
935
|
+
|
936
|
+
# A Boolean value to indicate whether payload is wanted. Optional.
|
937
|
+
# Corresponds to the JSON property `payload`
|
938
|
+
# @return [Boolean]
|
939
|
+
attr_accessor :payload
|
940
|
+
alias_method :payload?, :payload
|
941
|
+
|
942
|
+
# An opaque ID that identifies the resource being watched on this channel.
|
943
|
+
# Stable across different API versions.
|
944
|
+
# Corresponds to the JSON property `resourceId`
|
945
|
+
# @return [String]
|
946
|
+
attr_accessor :resource_id
|
947
|
+
|
948
|
+
# A version-specific identifier for the watched resource.
|
949
|
+
# Corresponds to the JSON property `resourceUri`
|
950
|
+
# @return [String]
|
951
|
+
attr_accessor :resource_uri
|
952
|
+
|
953
|
+
# An arbitrary string delivered to the target address with each notification
|
954
|
+
# delivered over this channel. Optional.
|
955
|
+
# Corresponds to the JSON property `token`
|
956
|
+
# @return [String]
|
957
|
+
attr_accessor :token
|
958
|
+
|
959
|
+
# The type of delivery mechanism used for this channel.
|
960
|
+
# Corresponds to the JSON property `type`
|
961
|
+
# @return [String]
|
962
|
+
attr_accessor :type
|
963
|
+
|
964
|
+
def initialize(**args)
|
965
|
+
update!(**args)
|
966
|
+
end
|
967
|
+
|
968
|
+
# Update properties of this object
|
969
|
+
def update!(**args)
|
970
|
+
@address = args[:address] if args.key?(:address)
|
971
|
+
@expiration = args[:expiration] if args.key?(:expiration)
|
972
|
+
@id = args[:id] if args.key?(:id)
|
973
|
+
@kind = args[:kind] if args.key?(:kind)
|
974
|
+
@params = args[:params] if args.key?(:params)
|
975
|
+
@payload = args[:payload] if args.key?(:payload)
|
976
|
+
@resource_id = args[:resource_id] if args.key?(:resource_id)
|
977
|
+
@resource_uri = args[:resource_uri] if args.key?(:resource_uri)
|
978
|
+
@token = args[:token] if args.key?(:token)
|
979
|
+
@type = args[:type] if args.key?(:type)
|
980
|
+
end
|
981
|
+
end
|
982
|
+
|
983
|
+
# A Compose request.
|
984
|
+
class ComposeRequest
|
985
|
+
include Google::Apis::Core::Hashable
|
986
|
+
|
987
|
+
# An object.
|
988
|
+
# Corresponds to the JSON property `destination`
|
989
|
+
# @return [Google::Apis::StorageV1::Object]
|
990
|
+
attr_accessor :destination
|
991
|
+
|
992
|
+
# The kind of item this is.
|
993
|
+
# Corresponds to the JSON property `kind`
|
994
|
+
# @return [String]
|
995
|
+
attr_accessor :kind
|
996
|
+
|
997
|
+
# The list of source objects that will be concatenated into a single object.
|
998
|
+
# Corresponds to the JSON property `sourceObjects`
|
999
|
+
# @return [Array<Google::Apis::StorageV1::ComposeRequest::SourceObject>]
|
1000
|
+
attr_accessor :source_objects
|
1001
|
+
|
1002
|
+
def initialize(**args)
|
1003
|
+
update!(**args)
|
1004
|
+
end
|
1005
|
+
|
1006
|
+
# Update properties of this object
|
1007
|
+
def update!(**args)
|
1008
|
+
@destination = args[:destination] if args.key?(:destination)
|
1009
|
+
@kind = args[:kind] if args.key?(:kind)
|
1010
|
+
@source_objects = args[:source_objects] if args.key?(:source_objects)
|
1011
|
+
end
|
1012
|
+
|
1013
|
+
#
|
1014
|
+
class SourceObject
|
1015
|
+
include Google::Apis::Core::Hashable
|
1016
|
+
|
1017
|
+
# The generation of this object to use as the source.
|
1018
|
+
# Corresponds to the JSON property `generation`
|
1019
|
+
# @return [Fixnum]
|
1020
|
+
attr_accessor :generation
|
1021
|
+
|
1022
|
+
# The source object's name. All source objects must reside in the same bucket.
|
1023
|
+
# Corresponds to the JSON property `name`
|
1024
|
+
# @return [String]
|
1025
|
+
attr_accessor :name
|
1026
|
+
|
1027
|
+
# Conditions that must be met for this operation to execute.
|
1028
|
+
# Corresponds to the JSON property `objectPreconditions`
|
1029
|
+
# @return [Google::Apis::StorageV1::ComposeRequest::SourceObject::ObjectPreconditions]
|
1030
|
+
attr_accessor :object_preconditions
|
1031
|
+
|
1032
|
+
def initialize(**args)
|
1033
|
+
update!(**args)
|
1034
|
+
end
|
1035
|
+
|
1036
|
+
# Update properties of this object
|
1037
|
+
def update!(**args)
|
1038
|
+
@generation = args[:generation] if args.key?(:generation)
|
1039
|
+
@name = args[:name] if args.key?(:name)
|
1040
|
+
@object_preconditions = args[:object_preconditions] if args.key?(:object_preconditions)
|
1041
|
+
end
|
1042
|
+
|
1043
|
+
# Conditions that must be met for this operation to execute.
|
1044
|
+
class ObjectPreconditions
|
1045
|
+
include Google::Apis::Core::Hashable
|
1046
|
+
|
1047
|
+
# Only perform the composition if the generation of the source object that would
|
1048
|
+
# be used matches this value. If this value and a generation are both specified,
|
1049
|
+
# they must be the same value or the call will fail.
|
1050
|
+
# Corresponds to the JSON property `ifGenerationMatch`
|
1051
|
+
# @return [Fixnum]
|
1052
|
+
attr_accessor :if_generation_match
|
1053
|
+
|
1054
|
+
def initialize(**args)
|
1055
|
+
update!(**args)
|
1056
|
+
end
|
1057
|
+
|
1058
|
+
# Update properties of this object
|
1059
|
+
def update!(**args)
|
1060
|
+
@if_generation_match = args[:if_generation_match] if args.key?(:if_generation_match)
|
1061
|
+
end
|
1062
|
+
end
|
1063
|
+
end
|
1064
|
+
end
|
1065
|
+
|
1066
|
+
# Represents an expression text. Example: title: "User account presence"
|
1067
|
+
# description: "Determines whether the request has a user account" expression: "
|
1068
|
+
# size(request.user) > 0"
|
1069
|
+
class Expr
|
1070
|
+
include Google::Apis::Core::Hashable
|
1071
|
+
|
1072
|
+
# An optional description of the expression. This is a longer text which
|
1073
|
+
# describes the expression, e.g. when hovered over it in a UI.
|
1074
|
+
# Corresponds to the JSON property `description`
|
1075
|
+
# @return [String]
|
1076
|
+
attr_accessor :description
|
1077
|
+
|
1078
|
+
# Textual representation of an expression in Common Expression Language syntax.
|
1079
|
+
# The application context of the containing message determines which well-known
|
1080
|
+
# feature set of CEL is supported.
|
1081
|
+
# Corresponds to the JSON property `expression`
|
1082
|
+
# @return [String]
|
1083
|
+
attr_accessor :expression
|
1084
|
+
|
1085
|
+
# An optional string indicating the location of the expression for error
|
1086
|
+
# reporting, e.g. a file name and a position in the file.
|
1087
|
+
# Corresponds to the JSON property `location`
|
1088
|
+
# @return [String]
|
1089
|
+
attr_accessor :location
|
1090
|
+
|
1091
|
+
# An optional title for the expression, i.e. a short string describing its
|
1092
|
+
# purpose. This can be used e.g. in UIs which allow to enter the expression.
|
1093
|
+
# Corresponds to the JSON property `title`
|
1094
|
+
# @return [String]
|
1095
|
+
attr_accessor :title
|
1096
|
+
|
1097
|
+
def initialize(**args)
|
1098
|
+
update!(**args)
|
1099
|
+
end
|
1100
|
+
|
1101
|
+
# Update properties of this object
|
1102
|
+
def update!(**args)
|
1103
|
+
@description = args[:description] if args.key?(:description)
|
1104
|
+
@expression = args[:expression] if args.key?(:expression)
|
1105
|
+
@location = args[:location] if args.key?(:location)
|
1106
|
+
@title = args[:title] if args.key?(:title)
|
1107
|
+
end
|
1108
|
+
end
|
1109
|
+
|
1110
|
+
# JSON template to produce a JSON-style HMAC Key resource for Create responses.
|
1111
|
+
class HmacKey
|
1112
|
+
include Google::Apis::Core::Hashable
|
1113
|
+
|
1114
|
+
# The kind of item this is. For HMAC keys, this is always storage#hmacKey.
|
1115
|
+
# Corresponds to the JSON property `kind`
|
1116
|
+
# @return [String]
|
1117
|
+
attr_accessor :kind
|
1118
|
+
|
1119
|
+
# JSON template to produce a JSON-style HMAC Key metadata resource.
|
1120
|
+
# Corresponds to the JSON property `metadata`
|
1121
|
+
# @return [Google::Apis::StorageV1::HmacKeyMetadata]
|
1122
|
+
attr_accessor :metadata
|
1123
|
+
|
1124
|
+
# HMAC secret key material.
|
1125
|
+
# Corresponds to the JSON property `secret`
|
1126
|
+
# @return [String]
|
1127
|
+
attr_accessor :secret
|
1128
|
+
|
1129
|
+
def initialize(**args)
|
1130
|
+
update!(**args)
|
1131
|
+
end
|
1132
|
+
|
1133
|
+
# Update properties of this object
|
1134
|
+
def update!(**args)
|
1135
|
+
@kind = args[:kind] if args.key?(:kind)
|
1136
|
+
@metadata = args[:metadata] if args.key?(:metadata)
|
1137
|
+
@secret = args[:secret] if args.key?(:secret)
|
1138
|
+
end
|
1139
|
+
end
|
1140
|
+
|
1141
|
+
# JSON template to produce a JSON-style HMAC Key metadata resource.
|
1142
|
+
class HmacKeyMetadata
|
1143
|
+
include Google::Apis::Core::Hashable
|
1144
|
+
|
1145
|
+
# The ID of the HMAC Key.
|
1146
|
+
# Corresponds to the JSON property `accessId`
|
1147
|
+
# @return [String]
|
1148
|
+
attr_accessor :access_id
|
1149
|
+
|
1150
|
+
# HTTP 1.1 Entity tag for the HMAC key.
|
1151
|
+
# Corresponds to the JSON property `etag`
|
1152
|
+
# @return [String]
|
1153
|
+
attr_accessor :etag
|
1154
|
+
|
1155
|
+
# The ID of the HMAC key, including the Project ID and the Access ID.
|
1156
|
+
# Corresponds to the JSON property `id`
|
1157
|
+
# @return [String]
|
1158
|
+
attr_accessor :id
|
1159
|
+
|
1160
|
+
# The kind of item this is. For HMAC Key metadata, this is always storage#
|
1161
|
+
# hmacKeyMetadata.
|
1162
|
+
# Corresponds to the JSON property `kind`
|
1163
|
+
# @return [String]
|
1164
|
+
attr_accessor :kind
|
1165
|
+
|
1166
|
+
# Project ID owning the service account to which the key authenticates.
|
1167
|
+
# Corresponds to the JSON property `projectId`
|
1168
|
+
# @return [String]
|
1169
|
+
attr_accessor :project_id
|
1170
|
+
|
1171
|
+
# The link to this resource.
|
1172
|
+
# Corresponds to the JSON property `selfLink`
|
1173
|
+
# @return [String]
|
1174
|
+
attr_accessor :self_link
|
1175
|
+
|
1176
|
+
# The email address of the key's associated service account.
|
1177
|
+
# Corresponds to the JSON property `serviceAccountEmail`
|
1178
|
+
# @return [String]
|
1179
|
+
attr_accessor :service_account_email
|
1180
|
+
|
1181
|
+
# The state of the key. Can be one of ACTIVE, INACTIVE, or DELETED.
|
1182
|
+
# Corresponds to the JSON property `state`
|
1183
|
+
# @return [String]
|
1184
|
+
attr_accessor :state
|
1185
|
+
|
1186
|
+
# The creation time of the HMAC key in RFC 3339 format.
|
1187
|
+
# Corresponds to the JSON property `timeCreated`
|
1188
|
+
# @return [DateTime]
|
1189
|
+
attr_accessor :time_created
|
1190
|
+
|
1191
|
+
# The last modification time of the HMAC key metadata in RFC 3339 format.
|
1192
|
+
# Corresponds to the JSON property `updated`
|
1193
|
+
# @return [DateTime]
|
1194
|
+
attr_accessor :updated
|
1195
|
+
|
1196
|
+
def initialize(**args)
|
1197
|
+
update!(**args)
|
1198
|
+
end
|
1199
|
+
|
1200
|
+
# Update properties of this object
|
1201
|
+
def update!(**args)
|
1202
|
+
@access_id = args[:access_id] if args.key?(:access_id)
|
1203
|
+
@etag = args[:etag] if args.key?(:etag)
|
1204
|
+
@id = args[:id] if args.key?(:id)
|
1205
|
+
@kind = args[:kind] if args.key?(:kind)
|
1206
|
+
@project_id = args[:project_id] if args.key?(:project_id)
|
1207
|
+
@self_link = args[:self_link] if args.key?(:self_link)
|
1208
|
+
@service_account_email = args[:service_account_email] if args.key?(:service_account_email)
|
1209
|
+
@state = args[:state] if args.key?(:state)
|
1210
|
+
@time_created = args[:time_created] if args.key?(:time_created)
|
1211
|
+
@updated = args[:updated] if args.key?(:updated)
|
1212
|
+
end
|
1213
|
+
end
|
1214
|
+
|
1215
|
+
# A list of hmacKeys.
|
1216
|
+
class HmacKeysMetadata
|
1217
|
+
include Google::Apis::Core::Hashable
|
1218
|
+
|
1219
|
+
# The list of items.
|
1220
|
+
# Corresponds to the JSON property `items`
|
1221
|
+
# @return [Array<Google::Apis::StorageV1::HmacKeyMetadata>]
|
1222
|
+
attr_accessor :items
|
1223
|
+
|
1224
|
+
# The kind of item this is. For lists of hmacKeys, this is always storage#
|
1225
|
+
# hmacKeysMetadata.
|
1226
|
+
# Corresponds to the JSON property `kind`
|
1227
|
+
# @return [String]
|
1228
|
+
attr_accessor :kind
|
1229
|
+
|
1230
|
+
# The continuation token, used to page through large result sets. Provide this
|
1231
|
+
# value in a subsequent request to return the next page of results.
|
1232
|
+
# Corresponds to the JSON property `nextPageToken`
|
1233
|
+
# @return [String]
|
1234
|
+
attr_accessor :next_page_token
|
1235
|
+
|
1236
|
+
def initialize(**args)
|
1237
|
+
update!(**args)
|
1238
|
+
end
|
1239
|
+
|
1240
|
+
# Update properties of this object
|
1241
|
+
def update!(**args)
|
1242
|
+
@items = args[:items] if args.key?(:items)
|
1243
|
+
@kind = args[:kind] if args.key?(:kind)
|
1244
|
+
@next_page_token = args[:next_page_token] if args.key?(:next_page_token)
|
1245
|
+
end
|
1246
|
+
end
|
1247
|
+
|
1248
|
+
# A subscription to receive Google PubSub notifications.
|
1249
|
+
class Notification
|
1250
|
+
include Google::Apis::Core::Hashable
|
1251
|
+
|
1252
|
+
# An optional list of additional attributes to attach to each Cloud PubSub
|
1253
|
+
# message published for this notification subscription.
|
1254
|
+
# Corresponds to the JSON property `custom_attributes`
|
1255
|
+
# @return [Hash<String,String>]
|
1256
|
+
attr_accessor :custom_attributes
|
1257
|
+
|
1258
|
+
# HTTP 1.1 Entity tag for this subscription notification.
|
1259
|
+
# Corresponds to the JSON property `etag`
|
1260
|
+
# @return [String]
|
1261
|
+
attr_accessor :etag
|
1262
|
+
|
1263
|
+
# If present, only send notifications about listed event types. If empty, sent
|
1264
|
+
# notifications for all event types.
|
1265
|
+
# Corresponds to the JSON property `event_types`
|
1266
|
+
# @return [Array<String>]
|
1267
|
+
attr_accessor :event_types
|
1268
|
+
|
1269
|
+
# The ID of the notification.
|
1270
|
+
# Corresponds to the JSON property `id`
|
1271
|
+
# @return [String]
|
1272
|
+
attr_accessor :id
|
1273
|
+
|
1274
|
+
# The kind of item this is. For notifications, this is always storage#
|
1275
|
+
# notification.
|
1276
|
+
# Corresponds to the JSON property `kind`
|
1277
|
+
# @return [String]
|
1278
|
+
attr_accessor :kind
|
1279
|
+
|
1280
|
+
# If present, only apply this notification configuration to object names that
|
1281
|
+
# begin with this prefix.
|
1282
|
+
# Corresponds to the JSON property `object_name_prefix`
|
1283
|
+
# @return [String]
|
1284
|
+
attr_accessor :object_name_prefix
|
1285
|
+
|
1286
|
+
# The desired content of the Payload.
|
1287
|
+
# Corresponds to the JSON property `payload_format`
|
1288
|
+
# @return [String]
|
1289
|
+
attr_accessor :payload_format
|
1290
|
+
|
1291
|
+
# The canonical URL of this notification.
|
1292
|
+
# Corresponds to the JSON property `selfLink`
|
1293
|
+
# @return [String]
|
1294
|
+
attr_accessor :self_link
|
1295
|
+
|
1296
|
+
# The Cloud PubSub topic to which this subscription publishes. Formatted as: '//
|
1297
|
+
# pubsub.googleapis.com/projects/`project-identifier`/topics/`my-topic`'
|
1298
|
+
# Corresponds to the JSON property `topic`
|
1299
|
+
# @return [String]
|
1300
|
+
attr_accessor :topic
|
1301
|
+
|
1302
|
+
def initialize(**args)
|
1303
|
+
update!(**args)
|
1304
|
+
end
|
1305
|
+
|
1306
|
+
# Update properties of this object
|
1307
|
+
def update!(**args)
|
1308
|
+
@custom_attributes = args[:custom_attributes] if args.key?(:custom_attributes)
|
1309
|
+
@etag = args[:etag] if args.key?(:etag)
|
1310
|
+
@event_types = args[:event_types] if args.key?(:event_types)
|
1311
|
+
@id = args[:id] if args.key?(:id)
|
1312
|
+
@kind = args[:kind] if args.key?(:kind)
|
1313
|
+
@object_name_prefix = args[:object_name_prefix] if args.key?(:object_name_prefix)
|
1314
|
+
@payload_format = args[:payload_format] if args.key?(:payload_format)
|
1315
|
+
@self_link = args[:self_link] if args.key?(:self_link)
|
1316
|
+
@topic = args[:topic] if args.key?(:topic)
|
1317
|
+
end
|
1318
|
+
end
|
1319
|
+
|
1320
|
+
# A list of notification subscriptions.
|
1321
|
+
class Notifications
|
1322
|
+
include Google::Apis::Core::Hashable
|
1323
|
+
|
1324
|
+
# The list of items.
|
1325
|
+
# Corresponds to the JSON property `items`
|
1326
|
+
# @return [Array<Google::Apis::StorageV1::Notification>]
|
1327
|
+
attr_accessor :items
|
1328
|
+
|
1329
|
+
# The kind of item this is. For lists of notifications, this is always storage#
|
1330
|
+
# notifications.
|
1331
|
+
# Corresponds to the JSON property `kind`
|
1332
|
+
# @return [String]
|
1333
|
+
attr_accessor :kind
|
1334
|
+
|
1335
|
+
def initialize(**args)
|
1336
|
+
update!(**args)
|
1337
|
+
end
|
1338
|
+
|
1339
|
+
# Update properties of this object
|
1340
|
+
def update!(**args)
|
1341
|
+
@items = args[:items] if args.key?(:items)
|
1342
|
+
@kind = args[:kind] if args.key?(:kind)
|
1343
|
+
end
|
1344
|
+
end
|
1345
|
+
|
1346
|
+
# An object.
|
1347
|
+
class Object
|
1348
|
+
include Google::Apis::Core::Hashable
|
1349
|
+
|
1350
|
+
# Access controls on the object.
|
1351
|
+
# Corresponds to the JSON property `acl`
|
1352
|
+
# @return [Array<Google::Apis::StorageV1::ObjectAccessControl>]
|
1353
|
+
attr_accessor :acl
|
1354
|
+
|
1355
|
+
# The name of the bucket containing this object.
|
1356
|
+
# Corresponds to the JSON property `bucket`
|
1357
|
+
# @return [String]
|
1358
|
+
attr_accessor :bucket
|
1359
|
+
|
1360
|
+
# Cache-Control directive for the object data. If omitted, and the object is
|
1361
|
+
# accessible to all anonymous users, the default will be public, max-age=3600.
|
1362
|
+
# Corresponds to the JSON property `cacheControl`
|
1363
|
+
# @return [String]
|
1364
|
+
attr_accessor :cache_control
|
1365
|
+
|
1366
|
+
# Number of underlying components that make up this object. Components are
|
1367
|
+
# accumulated by compose operations.
|
1368
|
+
# Corresponds to the JSON property `componentCount`
|
1369
|
+
# @return [Fixnum]
|
1370
|
+
attr_accessor :component_count
|
1371
|
+
|
1372
|
+
# Content-Disposition of the object data.
|
1373
|
+
# Corresponds to the JSON property `contentDisposition`
|
1374
|
+
# @return [String]
|
1375
|
+
attr_accessor :content_disposition
|
1376
|
+
|
1377
|
+
# Content-Encoding of the object data.
|
1378
|
+
# Corresponds to the JSON property `contentEncoding`
|
1379
|
+
# @return [String]
|
1380
|
+
attr_accessor :content_encoding
|
1381
|
+
|
1382
|
+
# Content-Language of the object data.
|
1383
|
+
# Corresponds to the JSON property `contentLanguage`
|
1384
|
+
# @return [String]
|
1385
|
+
attr_accessor :content_language
|
1386
|
+
|
1387
|
+
# Content-Type of the object data. If an object is stored without a Content-Type,
|
1388
|
+
# it is served as application/octet-stream.
|
1389
|
+
# Corresponds to the JSON property `contentType`
|
1390
|
+
# @return [String]
|
1391
|
+
attr_accessor :content_type
|
1392
|
+
|
1393
|
+
# CRC32c checksum, as described in RFC 4960, Appendix B; encoded using base64 in
|
1394
|
+
# big-endian byte order. For more information about using the CRC32c checksum,
|
1395
|
+
# see Hashes and ETags: Best Practices.
|
1396
|
+
# Corresponds to the JSON property `crc32c`
|
1397
|
+
# @return [String]
|
1398
|
+
attr_accessor :crc32c
|
1399
|
+
|
1400
|
+
# A timestamp in RFC 3339 format specified by the user for an object.
|
1401
|
+
# Corresponds to the JSON property `customTime`
|
1402
|
+
# @return [DateTime]
|
1403
|
+
attr_accessor :custom_time
|
1404
|
+
|
1405
|
+
# Metadata of customer-supplied encryption key, if the object is encrypted by
|
1406
|
+
# such a key.
|
1407
|
+
# Corresponds to the JSON property `customerEncryption`
|
1408
|
+
# @return [Google::Apis::StorageV1::Object::CustomerEncryption]
|
1409
|
+
attr_accessor :customer_encryption
|
1410
|
+
|
1411
|
+
# HTTP 1.1 Entity tag for the object.
|
1412
|
+
# Corresponds to the JSON property `etag`
|
1413
|
+
# @return [String]
|
1414
|
+
attr_accessor :etag
|
1415
|
+
|
1416
|
+
# Whether an object is under event-based hold. Event-based hold is a way to
|
1417
|
+
# retain objects until an event occurs, which is signified by the hold's release
|
1418
|
+
# (i.e. this value is set to false). After being released (set to false), such
|
1419
|
+
# objects will be subject to bucket-level retention (if any). One sample use
|
1420
|
+
# case of this flag is for banks to hold loan documents for at least 3 years
|
1421
|
+
# after loan is paid in full. Here, bucket-level retention is 3 years and the
|
1422
|
+
# event is the loan being paid in full. In this example, these objects will be
|
1423
|
+
# held intact for any number of years until the event has occurred (event-based
|
1424
|
+
# hold on the object is released) and then 3 more years after that. That means
|
1425
|
+
# retention duration of the objects begins from the moment event-based hold
|
1426
|
+
# transitioned from true to false.
|
1427
|
+
# Corresponds to the JSON property `eventBasedHold`
|
1428
|
+
# @return [Boolean]
|
1429
|
+
attr_accessor :event_based_hold
|
1430
|
+
alias_method :event_based_hold?, :event_based_hold
|
1431
|
+
|
1432
|
+
# The content generation of this object. Used for object versioning.
|
1433
|
+
# Corresponds to the JSON property `generation`
|
1434
|
+
# @return [Fixnum]
|
1435
|
+
attr_accessor :generation
|
1436
|
+
|
1437
|
+
# The ID of the object, including the bucket name, object name, and generation
|
1438
|
+
# number.
|
1439
|
+
# Corresponds to the JSON property `id`
|
1440
|
+
# @return [String]
|
1441
|
+
attr_accessor :id
|
1442
|
+
|
1443
|
+
# The kind of item this is. For objects, this is always storage#object.
|
1444
|
+
# Corresponds to the JSON property `kind`
|
1445
|
+
# @return [String]
|
1446
|
+
attr_accessor :kind
|
1447
|
+
|
1448
|
+
# Not currently supported. Specifying the parameter causes the request to fail
|
1449
|
+
# with status code 400 - Bad Request.
|
1450
|
+
# Corresponds to the JSON property `kmsKeyName`
|
1451
|
+
# @return [String]
|
1452
|
+
attr_accessor :kms_key_name
|
1453
|
+
|
1454
|
+
# MD5 hash of the data; encoded using base64. For more information about using
|
1455
|
+
# the MD5 hash, see Hashes and ETags: Best Practices.
|
1456
|
+
# Corresponds to the JSON property `md5Hash`
|
1457
|
+
# @return [String]
|
1458
|
+
attr_accessor :md5_hash
|
1459
|
+
|
1460
|
+
# Media download link.
|
1461
|
+
# Corresponds to the JSON property `mediaLink`
|
1462
|
+
# @return [String]
|
1463
|
+
attr_accessor :media_link
|
1464
|
+
|
1465
|
+
# User-provided metadata, in key/value pairs.
|
1466
|
+
# Corresponds to the JSON property `metadata`
|
1467
|
+
# @return [Hash<String,String>]
|
1468
|
+
attr_accessor :metadata
|
1469
|
+
|
1470
|
+
# The version of the metadata for this object at this generation. Used for
|
1471
|
+
# preconditions and for detecting changes in metadata. A metageneration number
|
1472
|
+
# is only meaningful in the context of a particular generation of a particular
|
1473
|
+
# object.
|
1474
|
+
# Corresponds to the JSON property `metageneration`
|
1475
|
+
# @return [Fixnum]
|
1476
|
+
attr_accessor :metageneration
|
1477
|
+
|
1478
|
+
# The name of the object. Required if not specified by URL parameter.
|
1479
|
+
# Corresponds to the JSON property `name`
|
1480
|
+
# @return [String]
|
1481
|
+
attr_accessor :name
|
1482
|
+
|
1483
|
+
# The owner of the object. This will always be the uploader of the object.
|
1484
|
+
# Corresponds to the JSON property `owner`
|
1485
|
+
# @return [Google::Apis::StorageV1::Object::Owner]
|
1486
|
+
attr_accessor :owner
|
1487
|
+
|
1488
|
+
# A server-determined value that specifies the earliest time that the object's
|
1489
|
+
# retention period expires. This value is in RFC 3339 format. Note 1: This field
|
1490
|
+
# is not provided for objects with an active event-based hold, since retention
|
1491
|
+
# expiration is unknown until the hold is removed. Note 2: This value can be
|
1492
|
+
# provided even when temporary hold is set (so that the user can reason about
|
1493
|
+
# policy without having to first unset the temporary hold).
|
1494
|
+
# Corresponds to the JSON property `retentionExpirationTime`
|
1495
|
+
# @return [DateTime]
|
1496
|
+
attr_accessor :retention_expiration_time
|
1497
|
+
|
1498
|
+
# The link to this object.
|
1499
|
+
# Corresponds to the JSON property `selfLink`
|
1500
|
+
# @return [String]
|
1501
|
+
attr_accessor :self_link
|
1502
|
+
|
1503
|
+
# Content-Length of the data in bytes.
|
1504
|
+
# Corresponds to the JSON property `size`
|
1505
|
+
# @return [Fixnum]
|
1506
|
+
attr_accessor :size
|
1507
|
+
|
1508
|
+
# Storage class of the object.
|
1509
|
+
# Corresponds to the JSON property `storageClass`
|
1510
|
+
# @return [String]
|
1511
|
+
attr_accessor :storage_class
|
1512
|
+
|
1513
|
+
# Whether an object is under temporary hold. While this flag is set to true, the
|
1514
|
+
# object is protected against deletion and overwrites. A common use case of this
|
1515
|
+
# flag is regulatory investigations where objects need to be retained while the
|
1516
|
+
# investigation is ongoing. Note that unlike event-based hold, temporary hold
|
1517
|
+
# does not impact retention expiration time of an object.
|
1518
|
+
# Corresponds to the JSON property `temporaryHold`
|
1519
|
+
# @return [Boolean]
|
1520
|
+
attr_accessor :temporary_hold
|
1521
|
+
alias_method :temporary_hold?, :temporary_hold
|
1522
|
+
|
1523
|
+
# The creation time of the object in RFC 3339 format.
|
1524
|
+
# Corresponds to the JSON property `timeCreated`
|
1525
|
+
# @return [DateTime]
|
1526
|
+
attr_accessor :time_created
|
1527
|
+
|
1528
|
+
# The deletion time of the object in RFC 3339 format. Will be returned if and
|
1529
|
+
# only if this version of the object has been deleted.
|
1530
|
+
# Corresponds to the JSON property `timeDeleted`
|
1531
|
+
# @return [DateTime]
|
1532
|
+
attr_accessor :time_deleted
|
1533
|
+
|
1534
|
+
# The time at which the object's storage class was last changed. When the object
|
1535
|
+
# is initially created, it will be set to timeCreated.
|
1536
|
+
# Corresponds to the JSON property `timeStorageClassUpdated`
|
1537
|
+
# @return [DateTime]
|
1538
|
+
attr_accessor :time_storage_class_updated
|
1539
|
+
|
1540
|
+
# The modification time of the object metadata in RFC 3339 format.
|
1541
|
+
# Corresponds to the JSON property `updated`
|
1542
|
+
# @return [DateTime]
|
1543
|
+
attr_accessor :updated
|
1544
|
+
|
1545
|
+
def initialize(**args)
|
1546
|
+
update!(**args)
|
1547
|
+
end
|
1548
|
+
|
1549
|
+
# Update properties of this object
|
1550
|
+
def update!(**args)
|
1551
|
+
@acl = args[:acl] if args.key?(:acl)
|
1552
|
+
@bucket = args[:bucket] if args.key?(:bucket)
|
1553
|
+
@cache_control = args[:cache_control] if args.key?(:cache_control)
|
1554
|
+
@component_count = args[:component_count] if args.key?(:component_count)
|
1555
|
+
@content_disposition = args[:content_disposition] if args.key?(:content_disposition)
|
1556
|
+
@content_encoding = args[:content_encoding] if args.key?(:content_encoding)
|
1557
|
+
@content_language = args[:content_language] if args.key?(:content_language)
|
1558
|
+
@content_type = args[:content_type] if args.key?(:content_type)
|
1559
|
+
@crc32c = args[:crc32c] if args.key?(:crc32c)
|
1560
|
+
@custom_time = args[:custom_time] if args.key?(:custom_time)
|
1561
|
+
@customer_encryption = args[:customer_encryption] if args.key?(:customer_encryption)
|
1562
|
+
@etag = args[:etag] if args.key?(:etag)
|
1563
|
+
@event_based_hold = args[:event_based_hold] if args.key?(:event_based_hold)
|
1564
|
+
@generation = args[:generation] if args.key?(:generation)
|
1565
|
+
@id = args[:id] if args.key?(:id)
|
1566
|
+
@kind = args[:kind] if args.key?(:kind)
|
1567
|
+
@kms_key_name = args[:kms_key_name] if args.key?(:kms_key_name)
|
1568
|
+
@md5_hash = args[:md5_hash] if args.key?(:md5_hash)
|
1569
|
+
@media_link = args[:media_link] if args.key?(:media_link)
|
1570
|
+
@metadata = args[:metadata] if args.key?(:metadata)
|
1571
|
+
@metageneration = args[:metageneration] if args.key?(:metageneration)
|
1572
|
+
@name = args[:name] if args.key?(:name)
|
1573
|
+
@owner = args[:owner] if args.key?(:owner)
|
1574
|
+
@retention_expiration_time = args[:retention_expiration_time] if args.key?(:retention_expiration_time)
|
1575
|
+
@self_link = args[:self_link] if args.key?(:self_link)
|
1576
|
+
@size = args[:size] if args.key?(:size)
|
1577
|
+
@storage_class = args[:storage_class] if args.key?(:storage_class)
|
1578
|
+
@temporary_hold = args[:temporary_hold] if args.key?(:temporary_hold)
|
1579
|
+
@time_created = args[:time_created] if args.key?(:time_created)
|
1580
|
+
@time_deleted = args[:time_deleted] if args.key?(:time_deleted)
|
1581
|
+
@time_storage_class_updated = args[:time_storage_class_updated] if args.key?(:time_storage_class_updated)
|
1582
|
+
@updated = args[:updated] if args.key?(:updated)
|
1583
|
+
end
|
1584
|
+
|
1585
|
+
# Metadata of customer-supplied encryption key, if the object is encrypted by
|
1586
|
+
# such a key.
|
1587
|
+
class CustomerEncryption
|
1588
|
+
include Google::Apis::Core::Hashable
|
1589
|
+
|
1590
|
+
# The encryption algorithm.
|
1591
|
+
# Corresponds to the JSON property `encryptionAlgorithm`
|
1592
|
+
# @return [String]
|
1593
|
+
attr_accessor :encryption_algorithm
|
1594
|
+
|
1595
|
+
# SHA256 hash value of the encryption key.
|
1596
|
+
# Corresponds to the JSON property `keySha256`
|
1597
|
+
# @return [String]
|
1598
|
+
attr_accessor :key_sha256
|
1599
|
+
|
1600
|
+
def initialize(**args)
|
1601
|
+
update!(**args)
|
1602
|
+
end
|
1603
|
+
|
1604
|
+
# Update properties of this object
|
1605
|
+
def update!(**args)
|
1606
|
+
@encryption_algorithm = args[:encryption_algorithm] if args.key?(:encryption_algorithm)
|
1607
|
+
@key_sha256 = args[:key_sha256] if args.key?(:key_sha256)
|
1608
|
+
end
|
1609
|
+
end
|
1610
|
+
|
1611
|
+
# The owner of the object. This will always be the uploader of the object.
|
1612
|
+
class Owner
|
1613
|
+
include Google::Apis::Core::Hashable
|
1614
|
+
|
1615
|
+
# The entity, in the form user-userId.
|
1616
|
+
# Corresponds to the JSON property `entity`
|
1617
|
+
# @return [String]
|
1618
|
+
attr_accessor :entity
|
1619
|
+
|
1620
|
+
# The ID for the entity.
|
1621
|
+
# Corresponds to the JSON property `entityId`
|
1622
|
+
# @return [String]
|
1623
|
+
attr_accessor :entity_id
|
1624
|
+
|
1625
|
+
def initialize(**args)
|
1626
|
+
update!(**args)
|
1627
|
+
end
|
1628
|
+
|
1629
|
+
# Update properties of this object
|
1630
|
+
def update!(**args)
|
1631
|
+
@entity = args[:entity] if args.key?(:entity)
|
1632
|
+
@entity_id = args[:entity_id] if args.key?(:entity_id)
|
1633
|
+
end
|
1634
|
+
end
|
1635
|
+
end
|
1636
|
+
|
1637
|
+
# An access-control entry.
|
1638
|
+
class ObjectAccessControl
|
1639
|
+
include Google::Apis::Core::Hashable
|
1640
|
+
|
1641
|
+
# The name of the bucket.
|
1642
|
+
# Corresponds to the JSON property `bucket`
|
1643
|
+
# @return [String]
|
1644
|
+
attr_accessor :bucket
|
1645
|
+
|
1646
|
+
# The domain associated with the entity, if any.
|
1647
|
+
# Corresponds to the JSON property `domain`
|
1648
|
+
# @return [String]
|
1649
|
+
attr_accessor :domain
|
1650
|
+
|
1651
|
+
# The email address associated with the entity, if any.
|
1652
|
+
# Corresponds to the JSON property `email`
|
1653
|
+
# @return [String]
|
1654
|
+
attr_accessor :email
|
1655
|
+
|
1656
|
+
# The entity holding the permission, in one of the following forms:
|
1657
|
+
# - user-userId
|
1658
|
+
# - user-email
|
1659
|
+
# - group-groupId
|
1660
|
+
# - group-email
|
1661
|
+
# - domain-domain
|
1662
|
+
# - project-team-projectId
|
1663
|
+
# - allUsers
|
1664
|
+
# - allAuthenticatedUsers Examples:
|
1665
|
+
# - The user liz@example.com would be user-liz@example.com.
|
1666
|
+
# - The group example@googlegroups.com would be group-example@googlegroups.com.
|
1667
|
+
# - To refer to all members of the Google Apps for Business domain example.com,
|
1668
|
+
# the entity would be domain-example.com.
|
1669
|
+
# Corresponds to the JSON property `entity`
|
1670
|
+
# @return [String]
|
1671
|
+
attr_accessor :entity
|
1672
|
+
|
1673
|
+
# The ID for the entity, if any.
|
1674
|
+
# Corresponds to the JSON property `entityId`
|
1675
|
+
# @return [String]
|
1676
|
+
attr_accessor :entity_id
|
1677
|
+
|
1678
|
+
# HTTP 1.1 Entity tag for the access-control entry.
|
1679
|
+
# Corresponds to the JSON property `etag`
|
1680
|
+
# @return [String]
|
1681
|
+
attr_accessor :etag
|
1682
|
+
|
1683
|
+
# The content generation of the object, if applied to an object.
|
1684
|
+
# Corresponds to the JSON property `generation`
|
1685
|
+
# @return [Fixnum]
|
1686
|
+
attr_accessor :generation
|
1687
|
+
|
1688
|
+
# The ID of the access-control entry.
|
1689
|
+
# Corresponds to the JSON property `id`
|
1690
|
+
# @return [String]
|
1691
|
+
attr_accessor :id
|
1692
|
+
|
1693
|
+
# The kind of item this is. For object access control entries, this is always
|
1694
|
+
# storage#objectAccessControl.
|
1695
|
+
# Corresponds to the JSON property `kind`
|
1696
|
+
# @return [String]
|
1697
|
+
attr_accessor :kind
|
1698
|
+
|
1699
|
+
# The name of the object, if applied to an object.
|
1700
|
+
# Corresponds to the JSON property `object`
|
1701
|
+
# @return [String]
|
1702
|
+
attr_accessor :object
|
1703
|
+
|
1704
|
+
# The project team associated with the entity, if any.
|
1705
|
+
# Corresponds to the JSON property `projectTeam`
|
1706
|
+
# @return [Google::Apis::StorageV1::ObjectAccessControl::ProjectTeam]
|
1707
|
+
attr_accessor :project_team
|
1708
|
+
|
1709
|
+
# The access permission for the entity.
|
1710
|
+
# Corresponds to the JSON property `role`
|
1711
|
+
# @return [String]
|
1712
|
+
attr_accessor :role
|
1713
|
+
|
1714
|
+
# The link to this access-control entry.
|
1715
|
+
# Corresponds to the JSON property `selfLink`
|
1716
|
+
# @return [String]
|
1717
|
+
attr_accessor :self_link
|
1718
|
+
|
1719
|
+
def initialize(**args)
|
1720
|
+
update!(**args)
|
1721
|
+
end
|
1722
|
+
|
1723
|
+
# Update properties of this object
|
1724
|
+
def update!(**args)
|
1725
|
+
@bucket = args[:bucket] if args.key?(:bucket)
|
1726
|
+
@domain = args[:domain] if args.key?(:domain)
|
1727
|
+
@email = args[:email] if args.key?(:email)
|
1728
|
+
@entity = args[:entity] if args.key?(:entity)
|
1729
|
+
@entity_id = args[:entity_id] if args.key?(:entity_id)
|
1730
|
+
@etag = args[:etag] if args.key?(:etag)
|
1731
|
+
@generation = args[:generation] if args.key?(:generation)
|
1732
|
+
@id = args[:id] if args.key?(:id)
|
1733
|
+
@kind = args[:kind] if args.key?(:kind)
|
1734
|
+
@object = args[:object] if args.key?(:object)
|
1735
|
+
@project_team = args[:project_team] if args.key?(:project_team)
|
1736
|
+
@role = args[:role] if args.key?(:role)
|
1737
|
+
@self_link = args[:self_link] if args.key?(:self_link)
|
1738
|
+
end
|
1739
|
+
|
1740
|
+
# The project team associated with the entity, if any.
|
1741
|
+
class ProjectTeam
|
1742
|
+
include Google::Apis::Core::Hashable
|
1743
|
+
|
1744
|
+
# The project number.
|
1745
|
+
# Corresponds to the JSON property `projectNumber`
|
1746
|
+
# @return [String]
|
1747
|
+
attr_accessor :project_number
|
1748
|
+
|
1749
|
+
# The team.
|
1750
|
+
# Corresponds to the JSON property `team`
|
1751
|
+
# @return [String]
|
1752
|
+
attr_accessor :team
|
1753
|
+
|
1754
|
+
def initialize(**args)
|
1755
|
+
update!(**args)
|
1756
|
+
end
|
1757
|
+
|
1758
|
+
# Update properties of this object
|
1759
|
+
def update!(**args)
|
1760
|
+
@project_number = args[:project_number] if args.key?(:project_number)
|
1761
|
+
@team = args[:team] if args.key?(:team)
|
1762
|
+
end
|
1763
|
+
end
|
1764
|
+
end
|
1765
|
+
|
1766
|
+
# An access-control list.
|
1767
|
+
class ObjectAccessControls
|
1768
|
+
include Google::Apis::Core::Hashable
|
1769
|
+
|
1770
|
+
# The list of items.
|
1771
|
+
# Corresponds to the JSON property `items`
|
1772
|
+
# @return [Array<Google::Apis::StorageV1::ObjectAccessControl>]
|
1773
|
+
attr_accessor :items
|
1774
|
+
|
1775
|
+
# The kind of item this is. For lists of object access control entries, this is
|
1776
|
+
# always storage#objectAccessControls.
|
1777
|
+
# Corresponds to the JSON property `kind`
|
1778
|
+
# @return [String]
|
1779
|
+
attr_accessor :kind
|
1780
|
+
|
1781
|
+
def initialize(**args)
|
1782
|
+
update!(**args)
|
1783
|
+
end
|
1784
|
+
|
1785
|
+
# Update properties of this object
|
1786
|
+
def update!(**args)
|
1787
|
+
@items = args[:items] if args.key?(:items)
|
1788
|
+
@kind = args[:kind] if args.key?(:kind)
|
1789
|
+
end
|
1790
|
+
end
|
1791
|
+
|
1792
|
+
# A list of objects.
|
1793
|
+
class Objects
|
1794
|
+
include Google::Apis::Core::Hashable
|
1795
|
+
|
1796
|
+
# The list of items.
|
1797
|
+
# Corresponds to the JSON property `items`
|
1798
|
+
# @return [Array<Google::Apis::StorageV1::Object>]
|
1799
|
+
attr_accessor :items
|
1800
|
+
|
1801
|
+
# The kind of item this is. For lists of objects, this is always storage#objects.
|
1802
|
+
# Corresponds to the JSON property `kind`
|
1803
|
+
# @return [String]
|
1804
|
+
attr_accessor :kind
|
1805
|
+
|
1806
|
+
# The continuation token, used to page through large result sets. Provide this
|
1807
|
+
# value in a subsequent request to return the next page of results.
|
1808
|
+
# Corresponds to the JSON property `nextPageToken`
|
1809
|
+
# @return [String]
|
1810
|
+
attr_accessor :next_page_token
|
1811
|
+
|
1812
|
+
# The list of prefixes of objects matching-but-not-listed up to and including
|
1813
|
+
# the requested delimiter.
|
1814
|
+
# Corresponds to the JSON property `prefixes`
|
1815
|
+
# @return [Array<String>]
|
1816
|
+
attr_accessor :prefixes
|
1817
|
+
|
1818
|
+
def initialize(**args)
|
1819
|
+
update!(**args)
|
1820
|
+
end
|
1821
|
+
|
1822
|
+
# Update properties of this object
|
1823
|
+
def update!(**args)
|
1824
|
+
@items = args[:items] if args.key?(:items)
|
1825
|
+
@kind = args[:kind] if args.key?(:kind)
|
1826
|
+
@next_page_token = args[:next_page_token] if args.key?(:next_page_token)
|
1827
|
+
@prefixes = args[:prefixes] if args.key?(:prefixes)
|
1828
|
+
end
|
1829
|
+
end
|
1830
|
+
|
1831
|
+
# A bucket/object IAM policy.
|
1832
|
+
class Policy
|
1833
|
+
include Google::Apis::Core::Hashable
|
1834
|
+
|
1835
|
+
# An association between a role, which comes with a set of permissions, and
|
1836
|
+
# members who may assume that role.
|
1837
|
+
# Corresponds to the JSON property `bindings`
|
1838
|
+
# @return [Array<Google::Apis::StorageV1::Policy::Binding>]
|
1839
|
+
attr_accessor :bindings
|
1840
|
+
|
1841
|
+
# HTTP 1.1 Entity tag for the policy.
|
1842
|
+
# Corresponds to the JSON property `etag`
|
1843
|
+
# NOTE: Values are automatically base64 encoded/decoded in the client library.
|
1844
|
+
# @return [String]
|
1845
|
+
attr_accessor :etag
|
1846
|
+
|
1847
|
+
# The kind of item this is. For policies, this is always storage#policy. This
|
1848
|
+
# field is ignored on input.
|
1849
|
+
# Corresponds to the JSON property `kind`
|
1850
|
+
# @return [String]
|
1851
|
+
attr_accessor :kind
|
1852
|
+
|
1853
|
+
# The ID of the resource to which this policy belongs. Will be of the form
|
1854
|
+
# projects/_/buckets/bucket for buckets, and projects/_/buckets/bucket/objects/
|
1855
|
+
# object for objects. A specific generation may be specified by appending #
|
1856
|
+
# generationNumber to the end of the object name, e.g. projects/_/buckets/my-
|
1857
|
+
# bucket/objects/data.txt#17. The current generation can be denoted with #0.
|
1858
|
+
# This field is ignored on input.
|
1859
|
+
# Corresponds to the JSON property `resourceId`
|
1860
|
+
# @return [String]
|
1861
|
+
attr_accessor :resource_id
|
1862
|
+
|
1863
|
+
# The IAM policy format version.
|
1864
|
+
# Corresponds to the JSON property `version`
|
1865
|
+
# @return [Fixnum]
|
1866
|
+
attr_accessor :version
|
1867
|
+
|
1868
|
+
def initialize(**args)
|
1869
|
+
update!(**args)
|
1870
|
+
end
|
1871
|
+
|
1872
|
+
# Update properties of this object
|
1873
|
+
def update!(**args)
|
1874
|
+
@bindings = args[:bindings] if args.key?(:bindings)
|
1875
|
+
@etag = args[:etag] if args.key?(:etag)
|
1876
|
+
@kind = args[:kind] if args.key?(:kind)
|
1877
|
+
@resource_id = args[:resource_id] if args.key?(:resource_id)
|
1878
|
+
@version = args[:version] if args.key?(:version)
|
1879
|
+
end
|
1880
|
+
|
1881
|
+
#
|
1882
|
+
class Binding
|
1883
|
+
include Google::Apis::Core::Hashable
|
1884
|
+
|
1885
|
+
# Represents an expression text. Example: title: "User account presence"
|
1886
|
+
# description: "Determines whether the request has a user account" expression: "
|
1887
|
+
# size(request.user) > 0"
|
1888
|
+
# Corresponds to the JSON property `condition`
|
1889
|
+
# @return [Google::Apis::StorageV1::Expr]
|
1890
|
+
attr_accessor :condition
|
1891
|
+
|
1892
|
+
# A collection of identifiers for members who may assume the provided role.
|
1893
|
+
# Recognized identifiers are as follows:
|
1894
|
+
# - allUsers — A special identifier that represents anyone on the internet; with
|
1895
|
+
# or without a Google account.
|
1896
|
+
# - allAuthenticatedUsers — A special identifier that represents anyone who is
|
1897
|
+
# authenticated with a Google account or a service account.
|
1898
|
+
# - user:emailid — An email address that represents a specific account. For
|
1899
|
+
# example, user:alice@gmail.com or user:joe@example.com.
|
1900
|
+
# - serviceAccount:emailid — An email address that represents a service account.
|
1901
|
+
# For example, serviceAccount:my-other-app@appspot.gserviceaccount.com .
|
1902
|
+
# - group:emailid — An email address that represents a Google group. For example,
|
1903
|
+
# group:admins@example.com.
|
1904
|
+
# - domain:domain — A Google Apps domain name that represents all the users of
|
1905
|
+
# that domain. For example, domain:google.com or domain:example.com.
|
1906
|
+
# - projectOwner:projectid — Owners of the given project. For example,
|
1907
|
+
# projectOwner:my-example-project
|
1908
|
+
# - projectEditor:projectid — Editors of the given project. For example,
|
1909
|
+
# projectEditor:my-example-project
|
1910
|
+
# - projectViewer:projectid — Viewers of the given project. For example,
|
1911
|
+
# projectViewer:my-example-project
|
1912
|
+
# Corresponds to the JSON property `members`
|
1913
|
+
# @return [Array<String>]
|
1914
|
+
attr_accessor :members
|
1915
|
+
|
1916
|
+
# The role to which members belong. Two types of roles are supported: new IAM
|
1917
|
+
# roles, which grant permissions that do not map directly to those provided by
|
1918
|
+
# ACLs, and legacy IAM roles, which do map directly to ACL permissions. All
|
1919
|
+
# roles are of the format roles/storage.specificRole.
|
1920
|
+
# The new IAM roles are:
|
1921
|
+
# - roles/storage.admin — Full control of Google Cloud Storage resources.
|
1922
|
+
# - roles/storage.objectViewer — Read-Only access to Google Cloud Storage
|
1923
|
+
# objects.
|
1924
|
+
# - roles/storage.objectCreator — Access to create objects in Google Cloud
|
1925
|
+
# Storage.
|
1926
|
+
# - roles/storage.objectAdmin — Full control of Google Cloud Storage objects.
|
1927
|
+
# The legacy IAM roles are:
|
1928
|
+
# - roles/storage.legacyObjectReader — Read-only access to objects without
|
1929
|
+
# listing. Equivalent to an ACL entry on an object with the READER role.
|
1930
|
+
# - roles/storage.legacyObjectOwner — Read/write access to existing objects
|
1931
|
+
# without listing. Equivalent to an ACL entry on an object with the OWNER role.
|
1932
|
+
# - roles/storage.legacyBucketReader — Read access to buckets with object
|
1933
|
+
# listing. Equivalent to an ACL entry on a bucket with the READER role.
|
1934
|
+
# - roles/storage.legacyBucketWriter — Read access to buckets with object
|
1935
|
+
# listing/creation/deletion. Equivalent to an ACL entry on a bucket with the
|
1936
|
+
# WRITER role.
|
1937
|
+
# - roles/storage.legacyBucketOwner — Read and write access to existing buckets
|
1938
|
+
# with object listing/creation/deletion. Equivalent to an ACL entry on a bucket
|
1939
|
+
# with the OWNER role.
|
1940
|
+
# Corresponds to the JSON property `role`
|
1941
|
+
# @return [String]
|
1942
|
+
attr_accessor :role
|
1943
|
+
|
1944
|
+
def initialize(**args)
|
1945
|
+
update!(**args)
|
1946
|
+
end
|
1947
|
+
|
1948
|
+
# Update properties of this object
|
1949
|
+
def update!(**args)
|
1950
|
+
@condition = args[:condition] if args.key?(:condition)
|
1951
|
+
@members = args[:members] if args.key?(:members)
|
1952
|
+
@role = args[:role] if args.key?(:role)
|
1953
|
+
end
|
1954
|
+
end
|
1955
|
+
end
|
1956
|
+
|
1957
|
+
# A rewrite response.
|
1958
|
+
class RewriteResponse
|
1959
|
+
include Google::Apis::Core::Hashable
|
1960
|
+
|
1961
|
+
# true if the copy is finished; otherwise, false if the copy is in progress.
|
1962
|
+
# This property is always present in the response.
|
1963
|
+
# Corresponds to the JSON property `done`
|
1964
|
+
# @return [Boolean]
|
1965
|
+
attr_accessor :done
|
1966
|
+
alias_method :done?, :done
|
1967
|
+
|
1968
|
+
# The kind of item this is.
|
1969
|
+
# Corresponds to the JSON property `kind`
|
1970
|
+
# @return [String]
|
1971
|
+
attr_accessor :kind
|
1972
|
+
|
1973
|
+
# The total size of the object being copied in bytes. This property is always
|
1974
|
+
# present in the response.
|
1975
|
+
# Corresponds to the JSON property `objectSize`
|
1976
|
+
# @return [Fixnum]
|
1977
|
+
attr_accessor :object_size
|
1978
|
+
|
1979
|
+
# An object.
|
1980
|
+
# Corresponds to the JSON property `resource`
|
1981
|
+
# @return [Google::Apis::StorageV1::Object]
|
1982
|
+
attr_accessor :resource
|
1983
|
+
|
1984
|
+
# A token to use in subsequent requests to continue copying data. This token is
|
1985
|
+
# present in the response only when there is more data to copy.
|
1986
|
+
# Corresponds to the JSON property `rewriteToken`
|
1987
|
+
# @return [String]
|
1988
|
+
attr_accessor :rewrite_token
|
1989
|
+
|
1990
|
+
# The total bytes written so far, which can be used to provide a waiting user
|
1991
|
+
# with a progress indicator. This property is always present in the response.
|
1992
|
+
# Corresponds to the JSON property `totalBytesRewritten`
|
1993
|
+
# @return [Fixnum]
|
1994
|
+
attr_accessor :total_bytes_rewritten
|
1995
|
+
|
1996
|
+
def initialize(**args)
|
1997
|
+
update!(**args)
|
1998
|
+
end
|
1999
|
+
|
2000
|
+
# Update properties of this object
|
2001
|
+
def update!(**args)
|
2002
|
+
@done = args[:done] if args.key?(:done)
|
2003
|
+
@kind = args[:kind] if args.key?(:kind)
|
2004
|
+
@object_size = args[:object_size] if args.key?(:object_size)
|
2005
|
+
@resource = args[:resource] if args.key?(:resource)
|
2006
|
+
@rewrite_token = args[:rewrite_token] if args.key?(:rewrite_token)
|
2007
|
+
@total_bytes_rewritten = args[:total_bytes_rewritten] if args.key?(:total_bytes_rewritten)
|
2008
|
+
end
|
2009
|
+
end
|
2010
|
+
|
2011
|
+
# A subscription to receive Google PubSub notifications.
|
2012
|
+
class ServiceAccount
|
2013
|
+
include Google::Apis::Core::Hashable
|
2014
|
+
|
2015
|
+
# The ID of the notification.
|
2016
|
+
# Corresponds to the JSON property `email_address`
|
2017
|
+
# @return [String]
|
2018
|
+
attr_accessor :email_address
|
2019
|
+
|
2020
|
+
# The kind of item this is. For notifications, this is always storage#
|
2021
|
+
# notification.
|
2022
|
+
# Corresponds to the JSON property `kind`
|
2023
|
+
# @return [String]
|
2024
|
+
attr_accessor :kind
|
2025
|
+
|
2026
|
+
def initialize(**args)
|
2027
|
+
update!(**args)
|
2028
|
+
end
|
2029
|
+
|
2030
|
+
# Update properties of this object
|
2031
|
+
def update!(**args)
|
2032
|
+
@email_address = args[:email_address] if args.key?(:email_address)
|
2033
|
+
@kind = args[:kind] if args.key?(:kind)
|
2034
|
+
end
|
2035
|
+
end
|
2036
|
+
|
2037
|
+
# A storage.(buckets|objects).testIamPermissions response.
|
2038
|
+
class TestIamPermissionsResponse
|
2039
|
+
include Google::Apis::Core::Hashable
|
2040
|
+
|
2041
|
+
# The kind of item this is.
|
2042
|
+
# Corresponds to the JSON property `kind`
|
2043
|
+
# @return [String]
|
2044
|
+
attr_accessor :kind
|
2045
|
+
|
2046
|
+
# The permissions held by the caller. Permissions are always of the format
|
2047
|
+
# storage.resource.capability, where resource is one of buckets or objects. The
|
2048
|
+
# supported permissions are as follows:
|
2049
|
+
# - storage.buckets.delete — Delete bucket.
|
2050
|
+
# - storage.buckets.get — Read bucket metadata.
|
2051
|
+
# - storage.buckets.getIamPolicy — Read bucket IAM policy.
|
2052
|
+
# - storage.buckets.create — Create bucket.
|
2053
|
+
# - storage.buckets.list — List buckets.
|
2054
|
+
# - storage.buckets.setIamPolicy — Update bucket IAM policy.
|
2055
|
+
# - storage.buckets.update — Update bucket metadata.
|
2056
|
+
# - storage.objects.delete — Delete object.
|
2057
|
+
# - storage.objects.get — Read object data and metadata.
|
2058
|
+
# - storage.objects.getIamPolicy — Read object IAM policy.
|
2059
|
+
# - storage.objects.create — Create object.
|
2060
|
+
# - storage.objects.list — List objects.
|
2061
|
+
# - storage.objects.setIamPolicy — Update object IAM policy.
|
2062
|
+
# - storage.objects.update — Update object metadata.
|
2063
|
+
# Corresponds to the JSON property `permissions`
|
2064
|
+
# @return [Array<String>]
|
2065
|
+
attr_accessor :permissions
|
2066
|
+
|
2067
|
+
def initialize(**args)
|
2068
|
+
update!(**args)
|
2069
|
+
end
|
2070
|
+
|
2071
|
+
# Update properties of this object
|
2072
|
+
def update!(**args)
|
2073
|
+
@kind = args[:kind] if args.key?(:kind)
|
2074
|
+
@permissions = args[:permissions] if args.key?(:permissions)
|
2075
|
+
end
|
2076
|
+
end
|
2077
|
+
end
|
2078
|
+
end
|
2079
|
+
end
|