google-cloud-backupdr-v1 0.2.1 → 0.3.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (27) hide show
  1. checksums.yaml +4 -4
  2. data/lib/google/cloud/backupdr/v1/backupdr/client.rb +2829 -157
  3. data/lib/google/cloud/backupdr/v1/backupdr/operations.rb +3 -10
  4. data/lib/google/cloud/backupdr/v1/backupdr/paths.rb +101 -0
  5. data/lib/google/cloud/backupdr/v1/backupdr/rest/client.rb +2656 -151
  6. data/lib/google/cloud/backupdr/v1/backupdr/rest/operations.rb +3 -10
  7. data/lib/google/cloud/backupdr/v1/backupdr/rest/service_stub.rb +1382 -17
  8. data/lib/google/cloud/backupdr/v1/backupdr_pb.rb +5 -1
  9. data/lib/google/cloud/backupdr/v1/backupdr_services_pb.rb +48 -0
  10. data/lib/google/cloud/backupdr/v1/backupplan_pb.rb +62 -0
  11. data/lib/google/cloud/backupdr/v1/backupplanassociation_pb.rb +59 -0
  12. data/lib/google/cloud/backupdr/v1/backupvault_ba_pb.rb +46 -0
  13. data/lib/google/cloud/backupdr/v1/backupvault_gce_pb.rb +87 -0
  14. data/lib/google/cloud/backupdr/v1/backupvault_pb.rb +99 -0
  15. data/lib/google/cloud/backupdr/v1/version.rb +1 -1
  16. data/proto_docs/google/api/client.rb +20 -0
  17. data/proto_docs/google/api/field_info.rb +88 -0
  18. data/proto_docs/google/cloud/backupdr/v1/backupdr.rb +11 -10
  19. data/proto_docs/google/cloud/backupdr/v1/backupplan.rb +414 -0
  20. data/proto_docs/google/cloud/backupdr/v1/backupplanassociation.rb +272 -0
  21. data/proto_docs/google/cloud/backupdr/v1/backupvault.rb +1103 -0
  22. data/proto_docs/google/cloud/backupdr/v1/backupvault_ba.rb +47 -0
  23. data/proto_docs/google/cloud/backupdr/v1/backupvault_gce.rb +993 -0
  24. data/proto_docs/google/longrunning/operations.rb +19 -14
  25. data/proto_docs/google/type/dayofweek.rb +49 -0
  26. data/proto_docs/google/type/month.rb +64 -0
  27. metadata +16 -3
@@ -28,6 +28,9 @@ module Google
28
28
  # @!attribute [rw] destinations
29
29
  # @return [::Array<::Google::Api::ClientLibraryDestination>]
30
30
  # The destination where API teams want this client library to be published.
31
+ # @!attribute [rw] selective_gapic_generation
32
+ # @return [::Google::Api::SelectiveGapicGeneration]
33
+ # Configuration for which RPCs should be generated in the GAPIC client.
31
34
  class CommonLanguageSettings
32
35
  include ::Google::Protobuf::MessageExts
33
36
  extend ::Google::Protobuf::MessageExts::ClassMethods
@@ -212,6 +215,12 @@ module Google
212
215
  # enabled. By default, asynchronous REST clients will not be generated.
213
216
  # This feature will be enabled by default 1 month after launching the
214
217
  # feature in preview packages.
218
+ # @!attribute [rw] protobuf_pythonic_types_enabled
219
+ # @return [::Boolean]
220
+ # Enables generation of protobuf code using new types that are more
221
+ # Pythonic which are included in `protobuf>=5.29.x`. This feature will be
222
+ # enabled by default 1 month after launching the feature in preview
223
+ # packages.
215
224
  class ExperimentalFeatures
216
225
  include ::Google::Protobuf::MessageExts
217
226
  extend ::Google::Protobuf::MessageExts::ClassMethods
@@ -375,6 +384,17 @@ module Google
375
384
  end
376
385
  end
377
386
 
387
+ # This message is used to configure the generation of a subset of the RPCs in
388
+ # a service for client libraries.
389
+ # @!attribute [rw] methods
390
+ # @return [::Array<::String>]
391
+ # An allowlist of the fully qualified names of RPCs that should be included
392
+ # on public client surfaces.
393
+ class SelectiveGapicGeneration
394
+ include ::Google::Protobuf::MessageExts
395
+ extend ::Google::Protobuf::MessageExts::ClassMethods
396
+ end
397
+
378
398
  # The organization for which the client libraries are being published.
379
399
  # Affects the url where generated docs are published, etc.
380
400
  module ClientLibraryOrganization
@@ -0,0 +1,88 @@
1
+ # frozen_string_literal: true
2
+
3
+ # Copyright 2024 Google LLC
4
+ #
5
+ # Licensed under the Apache License, Version 2.0 (the "License");
6
+ # you may not use this file except in compliance with the License.
7
+ # You may obtain a copy of the License at
8
+ #
9
+ # https://www.apache.org/licenses/LICENSE-2.0
10
+ #
11
+ # Unless required by applicable law or agreed to in writing, software
12
+ # distributed under the License is distributed on an "AS IS" BASIS,
13
+ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14
+ # See the License for the specific language governing permissions and
15
+ # limitations under the License.
16
+
17
+ # Auto-generated by gapic-generator-ruby. DO NOT EDIT!
18
+
19
+
20
+ module Google
21
+ module Api
22
+ # Rich semantic information of an API field beyond basic typing.
23
+ # @!attribute [rw] format
24
+ # @return [::Google::Api::FieldInfo::Format]
25
+ # The standard format of a field value. This does not explicitly configure
26
+ # any API consumer, just documents the API's format for the field it is
27
+ # applied to.
28
+ # @!attribute [rw] referenced_types
29
+ # @return [::Array<::Google::Api::TypeReference>]
30
+ # The type(s) that the annotated, generic field may represent.
31
+ #
32
+ # Currently, this must only be used on fields of type `google.protobuf.Any`.
33
+ # Supporting other generic types may be considered in the future.
34
+ class FieldInfo
35
+ include ::Google::Protobuf::MessageExts
36
+ extend ::Google::Protobuf::MessageExts::ClassMethods
37
+
38
+ # The standard format of a field value. The supported formats are all backed
39
+ # by either an RFC defined by the IETF or a Google-defined AIP.
40
+ module Format
41
+ # Default, unspecified value.
42
+ FORMAT_UNSPECIFIED = 0
43
+
44
+ # Universally Unique Identifier, version 4, value as defined by
45
+ # https://datatracker.ietf.org/doc/html/rfc4122. The value may be
46
+ # normalized to entirely lowercase letters. For example, the value
47
+ # `F47AC10B-58CC-0372-8567-0E02B2C3D479` would be normalized to
48
+ # `f47ac10b-58cc-0372-8567-0e02b2c3d479`.
49
+ UUID4 = 1
50
+
51
+ # Internet Protocol v4 value as defined by [RFC
52
+ # 791](https://datatracker.ietf.org/doc/html/rfc791). The value may be
53
+ # condensed, with leading zeros in each octet stripped. For example,
54
+ # `001.022.233.040` would be condensed to `1.22.233.40`.
55
+ IPV4 = 2
56
+
57
+ # Internet Protocol v6 value as defined by [RFC
58
+ # 2460](https://datatracker.ietf.org/doc/html/rfc2460). The value may be
59
+ # normalized to entirely lowercase letters with zeros compressed, following
60
+ # [RFC 5952](https://datatracker.ietf.org/doc/html/rfc5952). For example,
61
+ # the value `2001:0DB8:0::0` would be normalized to `2001:db8::`.
62
+ IPV6 = 3
63
+
64
+ # An IP address in either v4 or v6 format as described by the individual
65
+ # values defined herein. See the comments on the IPV4 and IPV6 types for
66
+ # allowed normalizations of each.
67
+ IPV4_OR_IPV6 = 4
68
+ end
69
+ end
70
+
71
+ # A reference to a message type, for use in {::Google::Api::FieldInfo FieldInfo}.
72
+ # @!attribute [rw] type_name
73
+ # @return [::String]
74
+ # The name of the type that the annotated, generic field may represent.
75
+ # If the type is in the same protobuf package, the value can be the simple
76
+ # message name e.g., `"MyMessage"`. Otherwise, the value must be the
77
+ # fully-qualified message name e.g., `"google.library.v1.Book"`.
78
+ #
79
+ # If the type(s) are unknown to the service (e.g. the field accepts generic
80
+ # user input), use the wildcard `"*"` to denote this behavior.
81
+ #
82
+ # See [AIP-202](https://google.aip.dev/202#type-references) for more details.
83
+ class TypeReference
84
+ include ::Google::Protobuf::MessageExts
85
+ extend ::Google::Protobuf::MessageExts::ClassMethods
86
+ end
87
+ end
88
+ end
@@ -128,7 +128,7 @@ module Google
128
128
  # @return [::String]
129
129
  # Output only. The OAuth 2.0 client id is required to make API calls to the
130
130
  # BackupDR instance API of this ManagementServer. This is the value that
131
- # should be provided in the aud field of the OIDC ID Token (see openid
131
+ # should be provided in the 'aud' field of the OIDC ID Token (see openid
132
132
  # specification
133
133
  # https://openid.net/specs/openid-connect-core-1_0.html#IDToken).
134
134
  # @!attribute [r] workforce_identity_based_oauth2_client_id
@@ -201,10 +201,11 @@ module Google
201
201
  # @!attribute [rw] parent
202
202
  # @return [::String]
203
203
  # Required. The project and location for which to retrieve management servers
204
- # information, in the format `projects/{project_id}/locations/{location}`. In
205
- # Cloud BackupDR, locations map to GCP regions, for example **us-central1**.
206
- # To retrieve management servers for all locations, use "-" for the
207
- # `{location}` value.
204
+ # information, in the format 'projects/\\{project_id}/locations/\\{location}'. In
205
+ # Cloud BackupDR, locations map to Google Cloud regions, for example
206
+ # **us-central1**. To retrieve management servers for all locations, use "-"
207
+ # for the
208
+ # '\\{location}' value.
208
209
  # @!attribute [rw] page_size
209
210
  # @return [::Integer]
210
211
  # Optional. Requested page size. Server may return fewer items than
@@ -229,7 +230,7 @@ module Google
229
230
  # The list of ManagementServer instances in the project for the specified
230
231
  # location.
231
232
  #
232
- # If the `{location}` value in the request is "-", the response contains a
233
+ # If the '\\{location}' value in the request is "-", the response contains a
233
234
  # list of instances from all locations. In case any location is unreachable,
234
235
  # the response will only return management servers in reachable locations and
235
236
  # the 'unreachable' field will be populated with a list of unreachable
@@ -249,7 +250,7 @@ module Google
249
250
  # @!attribute [rw] name
250
251
  # @return [::String]
251
252
  # Required. Name of the management server resource name, in the format
252
- # `projects/{project_id}/locations/{location}/managementServers/{resource_name}`
253
+ # 'projects/\\{project_id}/locations/\\{location}/managementServers/\\{resource_name}'
253
254
  class GetManagementServerRequest
254
255
  include ::Google::Protobuf::MessageExts
255
256
  extend ::Google::Protobuf::MessageExts::ClassMethods
@@ -259,8 +260,8 @@ module Google
259
260
  # @!attribute [rw] parent
260
261
  # @return [::String]
261
262
  # Required. The management server project and location in the format
262
- # `projects/{project_id}/locations/{location}`. In Cloud Backup and DR
263
- # locations map to GCP regions, for example **us-central1**.
263
+ # 'projects/\\{project_id}/locations/\\{location}'. In Cloud Backup and DR
264
+ # locations map to Google Cloud regions, for example **us-central1**.
264
265
  # @!attribute [rw] management_server_id
265
266
  # @return [::String]
266
267
  # Required. The name of the management server to create. The name must be
@@ -335,7 +336,7 @@ module Google
335
336
  # of the operation. Operations that have successfully been cancelled
336
337
  # have [Operation.error][] value with a
337
338
  # {::Google::Rpc::Status#code google.rpc.Status.code} of 1, corresponding to
338
- # `Code.CANCELLED`.
339
+ # 'Code.CANCELLED'.
339
340
  # @!attribute [r] api_version
340
341
  # @return [::String]
341
342
  # Output only. API version used to start the operation.
@@ -0,0 +1,414 @@
1
+ # frozen_string_literal: true
2
+
3
+ # Copyright 2024 Google LLC
4
+ #
5
+ # Licensed under the Apache License, Version 2.0 (the "License");
6
+ # you may not use this file except in compliance with the License.
7
+ # You may obtain a copy of the License at
8
+ #
9
+ # https://www.apache.org/licenses/LICENSE-2.0
10
+ #
11
+ # Unless required by applicable law or agreed to in writing, software
12
+ # distributed under the License is distributed on an "AS IS" BASIS,
13
+ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14
+ # See the License for the specific language governing permissions and
15
+ # limitations under the License.
16
+
17
+ # Auto-generated by gapic-generator-ruby. DO NOT EDIT!
18
+
19
+
20
+ module Google
21
+ module Cloud
22
+ module BackupDR
23
+ module V1
24
+ # A `BackupPlan` specifies some common fields, such as `description` as well
25
+ # as one or more `BackupRule` messages. Each `BackupRule` has a retention
26
+ # policy and defines a schedule by which the system is to perform backup
27
+ # workloads.
28
+ # @!attribute [r] name
29
+ # @return [::String]
30
+ # Output only. Identifier. The resource name of the `BackupPlan`.
31
+ #
32
+ # Format: `projects/{project}/locations/{location}/backupPlans/{backup_plan}`
33
+ # @!attribute [rw] description
34
+ # @return [::String]
35
+ # Optional. The description of the `BackupPlan` resource.
36
+ #
37
+ # The description allows for additional details about `BackupPlan` and its
38
+ # use cases to be provided. An example description is the following: "This
39
+ # is a backup plan that performs a daily backup at 6pm and retains data for 3
40
+ # months". The description must be at most 2048 characters.
41
+ # @!attribute [rw] labels
42
+ # @return [::Google::Protobuf::Map{::String => ::String}]
43
+ # Optional. This collection of key/value pairs allows for custom labels to be
44
+ # supplied by the user. Example, \\{"tag": "Weekly"}.
45
+ # @!attribute [r] create_time
46
+ # @return [::Google::Protobuf::Timestamp]
47
+ # Output only. When the `BackupPlan` was created.
48
+ # @!attribute [r] update_time
49
+ # @return [::Google::Protobuf::Timestamp]
50
+ # Output only. When the `BackupPlan` was last updated.
51
+ # @!attribute [rw] backup_rules
52
+ # @return [::Array<::Google::Cloud::BackupDR::V1::BackupRule>]
53
+ # Required. The backup rules for this `BackupPlan`. There must be at least
54
+ # one `BackupRule` message.
55
+ # @!attribute [r] state
56
+ # @return [::Google::Cloud::BackupDR::V1::BackupPlan::State]
57
+ # Output only. The `State` for the `BackupPlan`.
58
+ # @!attribute [rw] resource_type
59
+ # @return [::String]
60
+ # Required. The resource type to which the `BackupPlan` will be applied.
61
+ # Examples include, "compute.googleapis.com/Instance" and
62
+ # "storage.googleapis.com/Bucket".
63
+ # @!attribute [rw] etag
64
+ # @return [::String]
65
+ # Optional. `etag` is returned from the service in the response. As a user of
66
+ # the service, you may provide an etag value in this field to prevent stale
67
+ # resources.
68
+ # @!attribute [rw] backup_vault
69
+ # @return [::String]
70
+ # Required. Resource name of backup vault which will be used as storage
71
+ # location for backups. Format:
72
+ # projects/\\{project}/locations/\\{location}/backupVaults/\\{backupvault}
73
+ # @!attribute [r] backup_vault_service_account
74
+ # @return [::String]
75
+ # Output only. The Google Cloud Platform Service Account to be used by the
76
+ # BackupVault for taking backups. Specify the email address of the Backup
77
+ # Vault Service Account.
78
+ class BackupPlan
79
+ include ::Google::Protobuf::MessageExts
80
+ extend ::Google::Protobuf::MessageExts::ClassMethods
81
+
82
+ # @!attribute [rw] key
83
+ # @return [::String]
84
+ # @!attribute [rw] value
85
+ # @return [::String]
86
+ class LabelsEntry
87
+ include ::Google::Protobuf::MessageExts
88
+ extend ::Google::Protobuf::MessageExts::ClassMethods
89
+ end
90
+
91
+ # `State` enumerates the possible states for a `BackupPlan`.
92
+ module State
93
+ # State not set.
94
+ STATE_UNSPECIFIED = 0
95
+
96
+ # The resource is being created.
97
+ CREATING = 1
98
+
99
+ # The resource has been created and is fully usable.
100
+ ACTIVE = 2
101
+
102
+ # The resource is being deleted.
103
+ DELETING = 3
104
+
105
+ # The resource has been created but is not usable.
106
+ INACTIVE = 4
107
+ end
108
+ end
109
+
110
+ # `BackupRule` binds the backup schedule to a retention policy.
111
+ # @!attribute [rw] rule_id
112
+ # @return [::String]
113
+ # Required. Immutable. The unique id of this `BackupRule`. The `rule_id` is
114
+ # unique per `BackupPlan`.The `rule_id` must start with a lowercase letter
115
+ # followed by up to 62 lowercase letters, numbers, or hyphens. Pattern,
116
+ # /[a-z][a-z0-9-]\\{,62}/.
117
+ # @!attribute [rw] backup_retention_days
118
+ # @return [::Integer]
119
+ # Required. Configures the duration for which backup data will be kept. It is
120
+ # defined in “days”. The value should be greater than or equal to minimum
121
+ # enforced retention of the backup vault.
122
+ # @!attribute [rw] standard_schedule
123
+ # @return [::Google::Cloud::BackupDR::V1::StandardSchedule]
124
+ # Required. Defines a schedule that runs within the confines of a defined
125
+ # window of time.
126
+ class BackupRule
127
+ include ::Google::Protobuf::MessageExts
128
+ extend ::Google::Protobuf::MessageExts::ClassMethods
129
+ end
130
+
131
+ # `StandardSchedule` defines a schedule that run within the confines of a
132
+ # defined window of days. We can define recurrence type for schedule as
133
+ # HOURLY, DAILY, WEEKLY, MONTHLY or YEARLY.
134
+ # @!attribute [rw] recurrence_type
135
+ # @return [::Google::Cloud::BackupDR::V1::StandardSchedule::RecurrenceType]
136
+ # Required. Specifies the `RecurrenceType` for the schedule.
137
+ # @!attribute [rw] hourly_frequency
138
+ # @return [::Integer]
139
+ # Optional. Specifies frequency for hourly backups. A hourly frequency of 2
140
+ # means jobs will run every 2 hours from start time till end time defined.
141
+ #
142
+ # This is required for `recurrence_type`, `HOURLY` and is not applicable
143
+ # otherwise. A validation error will occur if a value is supplied and
144
+ # `recurrence_type` is not `HOURLY`.
145
+ #
146
+ # Value of hourly frequency should be between 6 and 23.
147
+ #
148
+ # Reason for limit : We found that there is bandwidth limitation of 3GB/S for
149
+ # GMI while taking a backup and 5GB/S while doing a restore. Given the amount
150
+ # of parallel backups and restore we are targeting, this will potentially
151
+ # take the backup time to mins and hours (in worst case scenario).
152
+ # @!attribute [rw] days_of_week
153
+ # @return [::Array<::Google::Type::DayOfWeek>]
154
+ # Optional. Specifies days of week like, MONDAY or TUESDAY, on which jobs
155
+ # will run.
156
+ #
157
+ # This is required for `recurrence_type`, `WEEKLY` and is not applicable
158
+ # otherwise. A validation error will occur if a value is supplied and
159
+ # `recurrence_type` is not `WEEKLY`.
160
+ # @!attribute [rw] days_of_month
161
+ # @return [::Array<::Integer>]
162
+ # Optional. Specifies days of months like 1, 5, or 14 on which jobs will run.
163
+ #
164
+ # Values for `days_of_month` are only applicable for `recurrence_type`,
165
+ # `MONTHLY` and `YEARLY`. A validation error will occur if other values are
166
+ # supplied.
167
+ # @!attribute [rw] week_day_of_month
168
+ # @return [::Google::Cloud::BackupDR::V1::WeekDayOfMonth]
169
+ # Optional. Specifies a week day of the month like, FIRST SUNDAY or LAST
170
+ # MONDAY, on which jobs will run. This will be specified by two fields in
171
+ # `WeekDayOfMonth`, one for the day, e.g. `MONDAY`, and one for the week,
172
+ # e.g. `LAST`.
173
+ #
174
+ # This field is only applicable for `recurrence_type`, `MONTHLY` and
175
+ # `YEARLY`. A validation error will occur if other values are supplied.
176
+ # @!attribute [rw] months
177
+ # @return [::Array<::Google::Type::Month>]
178
+ # Optional. Specifies the months of year, like `FEBRUARY` and/or `MAY`, on
179
+ # which jobs will run.
180
+ #
181
+ # This field is only applicable when `recurrence_type` is `YEARLY`. A
182
+ # validation error will occur if other values are supplied.
183
+ # @!attribute [rw] backup_window
184
+ # @return [::Google::Cloud::BackupDR::V1::BackupWindow]
185
+ # Required. A BackupWindow defines the window of day during which backup jobs
186
+ # will run. Jobs are queued at the beginning of the window and will be marked
187
+ # as `NOT_RUN` if they do not start by the end of the window.
188
+ #
189
+ # Note: running jobs will not be cancelled at the end of the window.
190
+ # @!attribute [rw] time_zone
191
+ # @return [::String]
192
+ # Required. The time zone to be used when interpreting the schedule.
193
+ # The value of this field must be a time zone name from the IANA tz database.
194
+ # See https://en.wikipedia.org/wiki/List_of_tz_database_time_zones for the
195
+ # list of valid timezone names. For e.g., Europe/Paris.
196
+ class StandardSchedule
197
+ include ::Google::Protobuf::MessageExts
198
+ extend ::Google::Protobuf::MessageExts::ClassMethods
199
+
200
+ # `RecurrenceTypes` enumerates the applicable periodicity for the schedule.
201
+ module RecurrenceType
202
+ # recurrence type not set
203
+ RECURRENCE_TYPE_UNSPECIFIED = 0
204
+
205
+ # The `BackupRule` is to be applied hourly.
206
+ HOURLY = 1
207
+
208
+ # The `BackupRule` is to be applied daily.
209
+ DAILY = 2
210
+
211
+ # The `BackupRule` is to be applied weekly.
212
+ WEEKLY = 3
213
+
214
+ # The `BackupRule` is to be applied monthly.
215
+ MONTHLY = 4
216
+
217
+ # The `BackupRule` is to be applied yearly.
218
+ YEARLY = 5
219
+ end
220
+ end
221
+
222
+ # `BackupWindow` defines a window of the day during which backup jobs will run.
223
+ # @!attribute [rw] start_hour_of_day
224
+ # @return [::Integer]
225
+ # Required. The hour of day (0-23) when the window starts for e.g. if value
226
+ # of start hour of day is 6 that mean backup window start at 6:00.
227
+ # @!attribute [rw] end_hour_of_day
228
+ # @return [::Integer]
229
+ # Required. The hour of day (1-24) when the window end for e.g. if value of
230
+ # end hour of day is 10 that mean backup window end time is 10:00.
231
+ #
232
+ # End hour of day should be greater than start hour of day.
233
+ # 0 <= start_hour_of_day < end_hour_of_day <= 24
234
+ #
235
+ # End hour of day is not include in backup window that mean if
236
+ # end_hour_of_day= 10 jobs should start before 10:00.
237
+ class BackupWindow
238
+ include ::Google::Protobuf::MessageExts
239
+ extend ::Google::Protobuf::MessageExts::ClassMethods
240
+ end
241
+
242
+ # `WeekDayOfMonth` defines the week day of the month on which the backups will
243
+ # run. The message combines a `WeekOfMonth` and `DayOfWeek` to produce values
244
+ # like `FIRST`/`MONDAY` or `LAST`/`FRIDAY`.
245
+ # @!attribute [rw] week_of_month
246
+ # @return [::Google::Cloud::BackupDR::V1::WeekDayOfMonth::WeekOfMonth]
247
+ # Required. Specifies the week of the month.
248
+ # @!attribute [rw] day_of_week
249
+ # @return [::Google::Type::DayOfWeek]
250
+ # Required. Specifies the day of the week.
251
+ class WeekDayOfMonth
252
+ include ::Google::Protobuf::MessageExts
253
+ extend ::Google::Protobuf::MessageExts::ClassMethods
254
+
255
+ # `WeekOfMonth` enumerates possible weeks in the month, e.g. the first,
256
+ # third, or last week of the month.
257
+ module WeekOfMonth
258
+ # The zero value. Do not use.
259
+ WEEK_OF_MONTH_UNSPECIFIED = 0
260
+
261
+ # The first week of the month.
262
+ FIRST = 1
263
+
264
+ # The second week of the month.
265
+ SECOND = 2
266
+
267
+ # The third week of the month.
268
+ THIRD = 3
269
+
270
+ # The fourth week of the month.
271
+ FOURTH = 4
272
+
273
+ # The last week of the month.
274
+ LAST = 5
275
+ end
276
+ end
277
+
278
+ # The request message for creating a `BackupPlan`.
279
+ # @!attribute [rw] parent
280
+ # @return [::String]
281
+ # Required. The `BackupPlan` project and location in the format
282
+ # `projects/{project}/locations/{location}`. In Cloud BackupDR locations
283
+ # map to GCP regions, for example **us-central1**.
284
+ # @!attribute [rw] backup_plan_id
285
+ # @return [::String]
286
+ # Required. The name of the `BackupPlan` to create. The name must be unique
287
+ # for the specified project and location.The name must start with a lowercase
288
+ # letter followed by up to 62 lowercase letters, numbers, or hyphens.
289
+ # Pattern, /[a-z][a-z0-9-]\\{,62}/.
290
+ # @!attribute [rw] backup_plan
291
+ # @return [::Google::Cloud::BackupDR::V1::BackupPlan]
292
+ # Required. The `BackupPlan` resource object to create.
293
+ # @!attribute [rw] request_id
294
+ # @return [::String]
295
+ # Optional. An optional request ID to identify requests. Specify a unique
296
+ # request ID so that if you must retry your request, the server will know to
297
+ # ignore the request if it has already been completed. The server will
298
+ # guarantee that for at least 60 minutes since the first request.
299
+ #
300
+ # For example, consider a situation where you make an initial request and t
301
+ # he request times out. If you make the request again with the same request
302
+ # ID, the server can check if original operation with the same request ID
303
+ # was received, and if so, will ignore the second request. This prevents
304
+ # clients from accidentally creating duplicate commitments.
305
+ #
306
+ # The request ID must be a valid UUID with the exception that zero UUID is
307
+ # not supported (00000000-0000-0000-0000-000000000000).
308
+ class CreateBackupPlanRequest
309
+ include ::Google::Protobuf::MessageExts
310
+ extend ::Google::Protobuf::MessageExts::ClassMethods
311
+ end
312
+
313
+ # The request message for getting a list `BackupPlan`.
314
+ # @!attribute [rw] parent
315
+ # @return [::String]
316
+ # Required. The project and location for which to retrieve `BackupPlans`
317
+ # information. Format: `projects/{project}/locations/{location}`. In Cloud
318
+ # BackupDR, locations map to GCP regions, for e.g. **us-central1**. To
319
+ # retrieve backup plans for all locations, use "-" for the
320
+ # `{location}` value.
321
+ # @!attribute [rw] page_size
322
+ # @return [::Integer]
323
+ # Optional. The maximum number of `BackupPlans` to return in a single
324
+ # response. If not specified, a default value will be chosen by the service.
325
+ # Note that the response may include a partial list and a caller should
326
+ # only rely on the response's
327
+ # {::Google::Cloud::BackupDR::V1::ListBackupPlansResponse#next_page_token next_page_token}
328
+ # to determine if there are more instances left to be queried.
329
+ # @!attribute [rw] page_token
330
+ # @return [::String]
331
+ # Optional. The value of
332
+ # {::Google::Cloud::BackupDR::V1::ListBackupPlansResponse#next_page_token next_page_token}
333
+ # received from a previous `ListBackupPlans` call.
334
+ # Provide this to retrieve the subsequent page in a multi-page list of
335
+ # results. When paginating, all other parameters provided to
336
+ # `ListBackupPlans` must match the call that provided the page token.
337
+ # @!attribute [rw] filter
338
+ # @return [::String]
339
+ # Optional. Field match expression used to filter the results.
340
+ # @!attribute [rw] order_by
341
+ # @return [::String]
342
+ # Optional. Field by which to sort the results.
343
+ class ListBackupPlansRequest
344
+ include ::Google::Protobuf::MessageExts
345
+ extend ::Google::Protobuf::MessageExts::ClassMethods
346
+ end
347
+
348
+ # The response message for getting a list of `BackupPlan`.
349
+ # @!attribute [rw] backup_plans
350
+ # @return [::Array<::Google::Cloud::BackupDR::V1::BackupPlan>]
351
+ # The list of `BackupPlans` in the project for the specified
352
+ # location.
353
+ #
354
+ # If the `{location}` value in the request is "-", the response contains a
355
+ # list of resources from all locations. In case any location is unreachable,
356
+ # the response will only return backup plans in reachable locations and
357
+ # the 'unreachable' field will be populated with a list of unreachable
358
+ # locations.
359
+ # BackupPlan
360
+ # @!attribute [rw] next_page_token
361
+ # @return [::String]
362
+ # A token which may be sent as
363
+ # {::Google::Cloud::BackupDR::V1::ListBackupPlansRequest#page_token page_token} in
364
+ # a subsequent `ListBackupPlans` call to retrieve the next page of results.
365
+ # If this field is omitted or empty, then there are no more results to
366
+ # return.
367
+ # @!attribute [rw] unreachable
368
+ # @return [::Array<::String>]
369
+ # Locations that could not be reached.
370
+ class ListBackupPlansResponse
371
+ include ::Google::Protobuf::MessageExts
372
+ extend ::Google::Protobuf::MessageExts::ClassMethods
373
+ end
374
+
375
+ # The request message for getting a `BackupPlan`.
376
+ # @!attribute [rw] name
377
+ # @return [::String]
378
+ # Required. The resource name of the `BackupPlan` to retrieve.
379
+ #
380
+ # Format: `projects/{project}/locations/{location}/backupPlans/{backup_plan}`
381
+ class GetBackupPlanRequest
382
+ include ::Google::Protobuf::MessageExts
383
+ extend ::Google::Protobuf::MessageExts::ClassMethods
384
+ end
385
+
386
+ # The request message for deleting a `BackupPlan`.
387
+ # @!attribute [rw] name
388
+ # @return [::String]
389
+ # Required. The resource name of the `BackupPlan` to delete.
390
+ #
391
+ # Format: `projects/{project}/locations/{location}/backupPlans/{backup_plan}`
392
+ # @!attribute [rw] request_id
393
+ # @return [::String]
394
+ # Optional. An optional request ID to identify requests. Specify a unique
395
+ # request ID so that if you must retry your request, the server will know to
396
+ # ignore the request if it has already been completed. The server will
397
+ # guarantee that for at least 60 minutes after the first request.
398
+ #
399
+ # For example, consider a situation where you make an initial request and
400
+ # the request times out. If you make the request again with the same request
401
+ # ID, the server can check if original operation with the same request ID
402
+ # was received, and if so, will ignore the second request. This prevents
403
+ # clients from accidentally creating duplicate commitments.
404
+ #
405
+ # The request ID must be a valid UUID with the exception that zero UUID is
406
+ # not supported (00000000-0000-0000-0000-000000000000).
407
+ class DeleteBackupPlanRequest
408
+ include ::Google::Protobuf::MessageExts
409
+ extend ::Google::Protobuf::MessageExts::ClassMethods
410
+ end
411
+ end
412
+ end
413
+ end
414
+ end