google-apis-ftp_v1 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,818 @@
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 FtpV1
24
+
25
+ # A consumer project or network that is permitted to connect to the server via
26
+ # PSC.
27
+ class AllowedConsumer
28
+ include Google::Apis::Core::Hashable
29
+
30
+ # Required. The connection limit for the consumer. Value must be greater than 0.
31
+ # Corresponds to the JSON property `connectionLimit`
32
+ # @return [Fixnum]
33
+ attr_accessor :connection_limit
34
+
35
+ # The project ID or number of the consumer project. Must be in the format: `
36
+ # projects/`project``.
37
+ # Corresponds to the JSON property `project`
38
+ # @return [String]
39
+ attr_accessor :project
40
+
41
+ def initialize(**args)
42
+ update!(**args)
43
+ end
44
+
45
+ # Update properties of this object
46
+ def update!(**args)
47
+ @connection_limit = args[:connection_limit] if args.key?(:connection_limit)
48
+ @project = args[:project] if args.key?(:project)
49
+ end
50
+ end
51
+
52
+ # The request message for Operations.CancelOperation.
53
+ class CancelOperationRequest
54
+ include Google::Apis::Core::Hashable
55
+
56
+ def initialize(**args)
57
+ update!(**args)
58
+ end
59
+
60
+ # Update properties of this object
61
+ def update!(**args)
62
+ end
63
+ end
64
+
65
+ # A consumer project or network that is denied to connect to the server via PSC.
66
+ class DeniedConsumer
67
+ include Google::Apis::Core::Hashable
68
+
69
+ # The project ID or number of the consumer project. Must be in the format: `
70
+ # projects/`project``.
71
+ # Corresponds to the JSON property `project`
72
+ # @return [String]
73
+ attr_accessor :project
74
+
75
+ def initialize(**args)
76
+ update!(**args)
77
+ end
78
+
79
+ # Update properties of this object
80
+ def update!(**args)
81
+ @project = args[:project] if args.key?(:project)
82
+ end
83
+ end
84
+
85
+ # A generic empty message that you can re-use to avoid defining duplicated empty
86
+ # messages in your APIs. A typical example is to use it as the request or the
87
+ # response type of an API method. For instance: service Foo ` rpc Bar(google.
88
+ # protobuf.Empty) returns (google.protobuf.Empty); `
89
+ class Empty
90
+ include Google::Apis::Core::Hashable
91
+
92
+ def initialize(**args)
93
+ update!(**args)
94
+ end
95
+
96
+ # Update properties of this object
97
+ def update!(**args)
98
+ end
99
+ end
100
+
101
+ # Configuration for external server.
102
+ class ExternalServerConfig
103
+ include Google::Apis::Core::Hashable
104
+
105
+ # Optional. List of CIDR blocks that are allowed to access the Server. A CIDR
106
+ # range consists of an IP Address and a prefix length to construct the subnet
107
+ # mask. By default, the prefix length is 32 (i.e. matches a single IP address).
108
+ # For now, only IPV4 addresses are supported. Examples: "203.0.113.0/24" -
109
+ # matches with the IP addresses in the range 203.0.113.0 - 203.0.113.255. "0.0.0.
110
+ # 0/0" - matches against any IP address. This field must contain at least one
111
+ # entry if the access type is EXTERNAL. The number of allowed CIDR blocks cannot
112
+ # exceed 500. Example: 192.168.0.0/16
113
+ # Corresponds to the JSON property `allowedCidrBlocks`
114
+ # @return [Array<String>]
115
+ attr_accessor :allowed_cidr_blocks
116
+
117
+ # Output only. IP address of the LB via which clients will connect.
118
+ # Corresponds to the JSON property `ipAddress`
119
+ # @return [String]
120
+ attr_accessor :ip_address
121
+
122
+ def initialize(**args)
123
+ update!(**args)
124
+ end
125
+
126
+ # Update properties of this object
127
+ def update!(**args)
128
+ @allowed_cidr_blocks = args[:allowed_cidr_blocks] if args.key?(:allowed_cidr_blocks)
129
+ @ip_address = args[:ip_address] if args.key?(:ip_address)
130
+ end
131
+ end
132
+
133
+ # Configuration for private server accessible via PSC.
134
+ class InternalServerConfig
135
+ include Google::Apis::Core::Hashable
136
+
137
+ # Required. A list of projects that are permitted to connect. At least one
138
+ # project is required in the allow list.
139
+ # Corresponds to the JSON property `consumerAcceptList`
140
+ # @return [Array<Google::Apis::FtpV1::AllowedConsumer>]
141
+ attr_accessor :consumer_accept_list
142
+
143
+ # Optional. A list of projects that are denied connection. Format: "projects/
144
+ # sample_project_id" or "projects/1234567890" Projects in this list will be
145
+ # denied access, even if they are included in the `allow_list`. If this list is
146
+ # empty, no projects are explicitly rejected.
147
+ # Corresponds to the JSON property `consumerRejectList`
148
+ # @return [Array<Google::Apis::FtpV1::DeniedConsumer>]
149
+ attr_accessor :consumer_reject_list
150
+
151
+ # Output only. Details of endpoints created by the customer.
152
+ # Corresponds to the JSON property `pscEndpoints`
153
+ # @return [Array<Google::Apis::FtpV1::PscEndpoint>]
154
+ attr_accessor :psc_endpoints
155
+
156
+ # Output only. The resource name of the service attachment. Format: `projects/`
157
+ # project`/regions/`region`/serviceAttachments/`service_attachment``
158
+ # Corresponds to the JSON property `serviceAttachment`
159
+ # @return [String]
160
+ attr_accessor :service_attachment
161
+
162
+ def initialize(**args)
163
+ update!(**args)
164
+ end
165
+
166
+ # Update properties of this object
167
+ def update!(**args)
168
+ @consumer_accept_list = args[:consumer_accept_list] if args.key?(:consumer_accept_list)
169
+ @consumer_reject_list = args[:consumer_reject_list] if args.key?(:consumer_reject_list)
170
+ @psc_endpoints = args[:psc_endpoints] if args.key?(:psc_endpoints)
171
+ @service_attachment = args[:service_attachment] if args.key?(:service_attachment)
172
+ end
173
+ end
174
+
175
+ # The response message for Locations.ListLocations.
176
+ class ListLocationsResponse
177
+ include Google::Apis::Core::Hashable
178
+
179
+ # A list of locations that matches the specified filter in the request.
180
+ # Corresponds to the JSON property `locations`
181
+ # @return [Array<Google::Apis::FtpV1::Location>]
182
+ attr_accessor :locations
183
+
184
+ # The standard List next-page token.
185
+ # Corresponds to the JSON property `nextPageToken`
186
+ # @return [String]
187
+ attr_accessor :next_page_token
188
+
189
+ def initialize(**args)
190
+ update!(**args)
191
+ end
192
+
193
+ # Update properties of this object
194
+ def update!(**args)
195
+ @locations = args[:locations] if args.key?(:locations)
196
+ @next_page_token = args[:next_page_token] if args.key?(:next_page_token)
197
+ end
198
+ end
199
+
200
+ # The response message for Operations.ListOperations.
201
+ class ListOperationsResponse
202
+ include Google::Apis::Core::Hashable
203
+
204
+ # The standard List next-page token.
205
+ # Corresponds to the JSON property `nextPageToken`
206
+ # @return [String]
207
+ attr_accessor :next_page_token
208
+
209
+ # A list of operations that matches the specified filter in the request.
210
+ # Corresponds to the JSON property `operations`
211
+ # @return [Array<Google::Apis::FtpV1::Operation>]
212
+ attr_accessor :operations
213
+
214
+ # Unordered list. Unreachable resources. Populated when the request sets `
215
+ # ListOperationsRequest.return_partial_success` and reads across collections.
216
+ # For example, when attempting to list all resources across all supported
217
+ # locations.
218
+ # Corresponds to the JSON property `unreachable`
219
+ # @return [Array<String>]
220
+ attr_accessor :unreachable
221
+
222
+ def initialize(**args)
223
+ update!(**args)
224
+ end
225
+
226
+ # Update properties of this object
227
+ def update!(**args)
228
+ @next_page_token = args[:next_page_token] if args.key?(:next_page_token)
229
+ @operations = args[:operations] if args.key?(:operations)
230
+ @unreachable = args[:unreachable] if args.key?(:unreachable)
231
+ end
232
+ end
233
+
234
+ # Message for response to listing Servers
235
+ class ListServersResponse
236
+ include Google::Apis::Core::Hashable
237
+
238
+ # A token identifying a page of results the server should return.
239
+ # Corresponds to the JSON property `nextPageToken`
240
+ # @return [String]
241
+ attr_accessor :next_page_token
242
+
243
+ # The list of Server
244
+ # Corresponds to the JSON property `servers`
245
+ # @return [Array<Google::Apis::FtpV1::Server>]
246
+ attr_accessor :servers
247
+
248
+ # Unordered list. Locations that could not be reached.
249
+ # Corresponds to the JSON property `unreachable`
250
+ # @return [Array<String>]
251
+ attr_accessor :unreachable
252
+
253
+ def initialize(**args)
254
+ update!(**args)
255
+ end
256
+
257
+ # Update properties of this object
258
+ def update!(**args)
259
+ @next_page_token = args[:next_page_token] if args.key?(:next_page_token)
260
+ @servers = args[:servers] if args.key?(:servers)
261
+ @unreachable = args[:unreachable] if args.key?(:unreachable)
262
+ end
263
+ end
264
+
265
+ # Message for response to listing Users
266
+ class ListUsersResponse
267
+ include Google::Apis::Core::Hashable
268
+
269
+ # A token identifying a page of results the user should return.
270
+ # Corresponds to the JSON property `nextPageToken`
271
+ # @return [String]
272
+ attr_accessor :next_page_token
273
+
274
+ # Unordered list. Locations that could not be reached.
275
+ # Corresponds to the JSON property `unreachable`
276
+ # @return [Array<String>]
277
+ attr_accessor :unreachable
278
+
279
+ # The list of User
280
+ # Corresponds to the JSON property `users`
281
+ # @return [Array<Google::Apis::FtpV1::User>]
282
+ attr_accessor :users
283
+
284
+ def initialize(**args)
285
+ update!(**args)
286
+ end
287
+
288
+ # Update properties of this object
289
+ def update!(**args)
290
+ @next_page_token = args[:next_page_token] if args.key?(:next_page_token)
291
+ @unreachable = args[:unreachable] if args.key?(:unreachable)
292
+ @users = args[:users] if args.key?(:users)
293
+ end
294
+ end
295
+
296
+ # A resource that represents a Google Cloud location.
297
+ class Location
298
+ include Google::Apis::Core::Hashable
299
+
300
+ # The friendly name for this location, typically a nearby city name. For example,
301
+ # "Tokyo".
302
+ # Corresponds to the JSON property `displayName`
303
+ # @return [String]
304
+ attr_accessor :display_name
305
+
306
+ # Cross-service attributes for the location. For example `"cloud.googleapis.com/
307
+ # region": "us-east1"`
308
+ # Corresponds to the JSON property `labels`
309
+ # @return [Hash<String,String>]
310
+ attr_accessor :labels
311
+
312
+ # The canonical id for this location. For example: `"us-east1"`.
313
+ # Corresponds to the JSON property `locationId`
314
+ # @return [String]
315
+ attr_accessor :location_id
316
+
317
+ # Service-specific metadata. For example the available capacity at the given
318
+ # location.
319
+ # Corresponds to the JSON property `metadata`
320
+ # @return [Hash<String,Object>]
321
+ attr_accessor :metadata
322
+
323
+ # Resource name for the location, which may vary between implementations. For
324
+ # example: `"projects/example-project/locations/us-east1"`
325
+ # Corresponds to the JSON property `name`
326
+ # @return [String]
327
+ attr_accessor :name
328
+
329
+ def initialize(**args)
330
+ update!(**args)
331
+ end
332
+
333
+ # Update properties of this object
334
+ def update!(**args)
335
+ @display_name = args[:display_name] if args.key?(:display_name)
336
+ @labels = args[:labels] if args.key?(:labels)
337
+ @location_id = args[:location_id] if args.key?(:location_id)
338
+ @metadata = args[:metadata] if args.key?(:metadata)
339
+ @name = args[:name] if args.key?(:name)
340
+ end
341
+ end
342
+
343
+ # This resource represents a long-running operation that is the result of a
344
+ # network API call.
345
+ class Operation
346
+ include Google::Apis::Core::Hashable
347
+
348
+ # If the value is `false`, it means the operation is still in progress. If `true`
349
+ # , the operation is completed, and either `error` or `response` is available.
350
+ # Corresponds to the JSON property `done`
351
+ # @return [Boolean]
352
+ attr_accessor :done
353
+ alias_method :done?, :done
354
+
355
+ # The `Status` type defines a logical error model that is suitable for different
356
+ # programming environments, including REST APIs and RPC APIs. It is used by [
357
+ # gRPC](https://github.com/grpc). Each `Status` message contains three pieces of
358
+ # data: error code, error message, and error details. You can find out more
359
+ # about this error model and how to work with it in the [API Design Guide](https:
360
+ # //cloud.google.com/apis/design/errors).
361
+ # Corresponds to the JSON property `error`
362
+ # @return [Google::Apis::FtpV1::Status]
363
+ attr_accessor :error
364
+
365
+ # Service-specific metadata associated with the operation. It typically contains
366
+ # progress information and common metadata such as create time. Some services
367
+ # might not provide such metadata. Any method that returns a long-running
368
+ # operation should document the metadata type, if any.
369
+ # Corresponds to the JSON property `metadata`
370
+ # @return [Hash<String,Object>]
371
+ attr_accessor :metadata
372
+
373
+ # The server-assigned name, which is only unique within the same service that
374
+ # originally returns it. If you use the default HTTP mapping, the `name` should
375
+ # be a resource name ending with `operations/`unique_id``.
376
+ # Corresponds to the JSON property `name`
377
+ # @return [String]
378
+ attr_accessor :name
379
+
380
+ # The normal, successful response of the operation. If the original method
381
+ # returns no data on success, such as `Delete`, the response is `google.protobuf.
382
+ # Empty`. If the original method is standard `Get`/`Create`/`Update`, the
383
+ # response should be the resource. For other methods, the response should have
384
+ # the type `XxxResponse`, where `Xxx` is the original method name. For example,
385
+ # if the original method name is `TakeSnapshot()`, the inferred response type is
386
+ # `TakeSnapshotResponse`.
387
+ # Corresponds to the JSON property `response`
388
+ # @return [Hash<String,Object>]
389
+ attr_accessor :response
390
+
391
+ def initialize(**args)
392
+ update!(**args)
393
+ end
394
+
395
+ # Update properties of this object
396
+ def update!(**args)
397
+ @done = args[:done] if args.key?(:done)
398
+ @error = args[:error] if args.key?(:error)
399
+ @metadata = args[:metadata] if args.key?(:metadata)
400
+ @name = args[:name] if args.key?(:name)
401
+ @response = args[:response] if args.key?(:response)
402
+ end
403
+ end
404
+
405
+ # Represents the metadata of the long-running operation.
406
+ class OperationMetadata
407
+ include Google::Apis::Core::Hashable
408
+
409
+ # Output only. API version used to start the operation.
410
+ # Corresponds to the JSON property `apiVersion`
411
+ # @return [String]
412
+ attr_accessor :api_version
413
+
414
+ # Output only. The time the operation was created.
415
+ # Corresponds to the JSON property `createTime`
416
+ # @return [String]
417
+ attr_accessor :create_time
418
+
419
+ # Output only. The time the operation finished running.
420
+ # Corresponds to the JSON property `endTime`
421
+ # @return [String]
422
+ attr_accessor :end_time
423
+
424
+ # Output only. Identifies whether the user has requested cancellation of the
425
+ # operation. Operations that have been cancelled successfully have google.
426
+ # longrunning.Operation.error value with a google.rpc.Status.code of `1`,
427
+ # corresponding to `Code.CANCELLED`.
428
+ # Corresponds to the JSON property `requestedCancellation`
429
+ # @return [Boolean]
430
+ attr_accessor :requested_cancellation
431
+ alias_method :requested_cancellation?, :requested_cancellation
432
+
433
+ # Output only. Human-readable status of the operation, if any.
434
+ # Corresponds to the JSON property `statusMessage`
435
+ # @return [String]
436
+ attr_accessor :status_message
437
+
438
+ # Output only. Server-defined resource path for the target of the operation.
439
+ # Corresponds to the JSON property `target`
440
+ # @return [String]
441
+ attr_accessor :target
442
+
443
+ # Output only. Name of the verb executed by the operation.
444
+ # Corresponds to the JSON property `verb`
445
+ # @return [String]
446
+ attr_accessor :verb
447
+
448
+ def initialize(**args)
449
+ update!(**args)
450
+ end
451
+
452
+ # Update properties of this object
453
+ def update!(**args)
454
+ @api_version = args[:api_version] if args.key?(:api_version)
455
+ @create_time = args[:create_time] if args.key?(:create_time)
456
+ @end_time = args[:end_time] if args.key?(:end_time)
457
+ @requested_cancellation = args[:requested_cancellation] if args.key?(:requested_cancellation)
458
+ @status_message = args[:status_message] if args.key?(:status_message)
459
+ @target = args[:target] if args.key?(:target)
460
+ @verb = args[:verb] if args.key?(:verb)
461
+ end
462
+ end
463
+
464
+ # Details of PSC endpoint created by customer.
465
+ class PscEndpoint
466
+ include Google::Apis::Core::Hashable
467
+
468
+ # Output only. This is a Resource name for Private Service Connect endpoint.
469
+ # Format: `projects/`project`/regions/`region`/forwardingRules/`forwarding_rule``
470
+ # Corresponds to the JSON property `endpoint`
471
+ # @return [String]
472
+ attr_accessor :endpoint
473
+
474
+ # Output only. The consumer network. Format: `projects/`project`/locations/`
475
+ # location`/networks/`network``
476
+ # Corresponds to the JSON property `network`
477
+ # @return [String]
478
+ attr_accessor :network
479
+
480
+ # Output only. The status of the connected endpoint.
481
+ # Corresponds to the JSON property `status`
482
+ # @return [String]
483
+ attr_accessor :status
484
+
485
+ def initialize(**args)
486
+ update!(**args)
487
+ end
488
+
489
+ # Update properties of this object
490
+ def update!(**args)
491
+ @endpoint = args[:endpoint] if args.key?(:endpoint)
492
+ @network = args[:network] if args.key?(:network)
493
+ @status = args[:status] if args.key?(:status)
494
+ end
495
+ end
496
+
497
+ # Message describing Server object
498
+ class Server
499
+ include Google::Apis::Core::Hashable
500
+
501
+ # Required. The access type of the Server.
502
+ # Corresponds to the JSON property `accessType`
503
+ # @return [String]
504
+ attr_accessor :access_type
505
+
506
+ # Output only. [Output only] Create time stamp
507
+ # Corresponds to the JSON property `createTime`
508
+ # @return [String]
509
+ attr_accessor :create_time
510
+
511
+ # Optional. Display name of the Server
512
+ # Corresponds to the JSON property `displayName`
513
+ # @return [String]
514
+ attr_accessor :display_name
515
+
516
+ # Configuration for external server.
517
+ # Corresponds to the JSON property `externalConfig`
518
+ # @return [Google::Apis::FtpV1::ExternalServerConfig]
519
+ attr_accessor :external_config
520
+
521
+ # Represents credentials of an FTP Server.
522
+ # Corresponds to the JSON property `googleManagedServerCredential`
523
+ # @return [Google::Apis::FtpV1::ServerCredential]
524
+ attr_accessor :google_managed_server_credential
525
+
526
+ # Configuration for private server accessible via PSC.
527
+ # Corresponds to the JSON property `internalConfig`
528
+ # @return [Google::Apis::FtpV1::InternalServerConfig]
529
+ attr_accessor :internal_config
530
+
531
+ # Optional. Labels as key value pairs
532
+ # Corresponds to the JSON property `labels`
533
+ # @return [Hash<String,String>]
534
+ attr_accessor :labels
535
+
536
+ # Identifier. name of resource
537
+ # Corresponds to the JSON property `name`
538
+ # @return [String]
539
+ attr_accessor :name
540
+
541
+ # Output only. Service agent used to access the customer bucket.
542
+ # Corresponds to the JSON property `serviceAgent`
543
+ # @return [String]
544
+ attr_accessor :service_agent
545
+
546
+ # Output only. The state of the server.
547
+ # Corresponds to the JSON property `state`
548
+ # @return [String]
549
+ attr_accessor :state
550
+
551
+ # Output only. [Output only] Update time stamp
552
+ # Corresponds to the JSON property `updateTime`
553
+ # @return [String]
554
+ attr_accessor :update_time
555
+
556
+ def initialize(**args)
557
+ update!(**args)
558
+ end
559
+
560
+ # Update properties of this object
561
+ def update!(**args)
562
+ @access_type = args[:access_type] if args.key?(:access_type)
563
+ @create_time = args[:create_time] if args.key?(:create_time)
564
+ @display_name = args[:display_name] if args.key?(:display_name)
565
+ @external_config = args[:external_config] if args.key?(:external_config)
566
+ @google_managed_server_credential = args[:google_managed_server_credential] if args.key?(:google_managed_server_credential)
567
+ @internal_config = args[:internal_config] if args.key?(:internal_config)
568
+ @labels = args[:labels] if args.key?(:labels)
569
+ @name = args[:name] if args.key?(:name)
570
+ @service_agent = args[:service_agent] if args.key?(:service_agent)
571
+ @state = args[:state] if args.key?(:state)
572
+ @update_time = args[:update_time] if args.key?(:update_time)
573
+ end
574
+ end
575
+
576
+ # Represents credentials of an FTP Server.
577
+ class ServerCredential
578
+ include Google::Apis::Core::Hashable
579
+
580
+ # Output only. Asymmetric algorithm used by the public key. Possible values (can
581
+ # be expanded in future): - ssh-ed25519
582
+ # Corresponds to the JSON property `asymmetricAlgorithm`
583
+ # @return [String]
584
+ attr_accessor :asymmetric_algorithm
585
+
586
+ # Output only. The fingerprint is a hash of the public key, and is displayed
587
+ # when clients access the server for the first time to verify the server's
588
+ # identity.
589
+ # Corresponds to the JSON property `fingerprint`
590
+ # @return [String]
591
+ attr_accessor :fingerprint
592
+
593
+ def initialize(**args)
594
+ update!(**args)
595
+ end
596
+
597
+ # Update properties of this object
598
+ def update!(**args)
599
+ @asymmetric_algorithm = args[:asymmetric_algorithm] if args.key?(:asymmetric_algorithm)
600
+ @fingerprint = args[:fingerprint] if args.key?(:fingerprint)
601
+ end
602
+ end
603
+
604
+ # Request message for starting a Server.
605
+ class StartServerRequest
606
+ include Google::Apis::Core::Hashable
607
+
608
+ def initialize(**args)
609
+ update!(**args)
610
+ end
611
+
612
+ # Update properties of this object
613
+ def update!(**args)
614
+ end
615
+ end
616
+
617
+ # The `Status` type defines a logical error model that is suitable for different
618
+ # programming environments, including REST APIs and RPC APIs. It is used by [
619
+ # gRPC](https://github.com/grpc). Each `Status` message contains three pieces of
620
+ # data: error code, error message, and error details. You can find out more
621
+ # about this error model and how to work with it in the [API Design Guide](https:
622
+ # //cloud.google.com/apis/design/errors).
623
+ class Status
624
+ include Google::Apis::Core::Hashable
625
+
626
+ # The status code, which should be an enum value of google.rpc.Code.
627
+ # Corresponds to the JSON property `code`
628
+ # @return [Fixnum]
629
+ attr_accessor :code
630
+
631
+ # A list of messages that carry the error details. There is a common set of
632
+ # message types for APIs to use.
633
+ # Corresponds to the JSON property `details`
634
+ # @return [Array<Hash<String,Object>>]
635
+ attr_accessor :details
636
+
637
+ # A developer-facing error message, which should be in English. Any user-facing
638
+ # error message should be localized and sent in the google.rpc.Status.details
639
+ # field, or localized by the client.
640
+ # Corresponds to the JSON property `message`
641
+ # @return [String]
642
+ attr_accessor :message
643
+
644
+ def initialize(**args)
645
+ update!(**args)
646
+ end
647
+
648
+ # Update properties of this object
649
+ def update!(**args)
650
+ @code = args[:code] if args.key?(:code)
651
+ @details = args[:details] if args.key?(:details)
652
+ @message = args[:message] if args.key?(:message)
653
+ end
654
+ end
655
+
656
+ # Request message for stopping a Server.
657
+ class StopServerRequest
658
+ include Google::Apis::Core::Hashable
659
+
660
+ def initialize(**args)
661
+ update!(**args)
662
+ end
663
+
664
+ # Update properties of this object
665
+ def update!(**args)
666
+ end
667
+ end
668
+
669
+ # Mapping of backing Cloud Storage path to the directory where the user lands in
670
+ # the SFTP server. If directory is not specified, it'll default to '/'. Eg 1 - (
671
+ # bucket_name: bucket, bucket_prefix: path1/path2, directory: /abc/def/username)
672
+ # The user will land at /abcd/def/username, and the view there will match that
673
+ # of /bucket/path1/path2. The user will not be aware of Cloud Storage prefix '/
674
+ # bucket/path1' and there will be no such directory in the view. Eg 2 - (
675
+ # bucket_name: bucket, bucket_prefix: path1/path2, directory: '') The user will
676
+ # land at '/', and the view there will match that of /bucket/path1/path2. The
677
+ # user will not be aware of Cloud Storage prefix '/bucket/path1/path2' and there
678
+ # will be no such directory in the view.
679
+ class StorageDirectoryMapping
680
+ include Google::Apis::Core::Hashable
681
+
682
+ # Required. Name of the bucket.
683
+ # Corresponds to the JSON property `bucket`
684
+ # @return [String]
685
+ attr_accessor :bucket
686
+
687
+ # Optional. Prefix inside the bucket.
688
+ # Corresponds to the JSON property `bucketPrefix`
689
+ # @return [String]
690
+ attr_accessor :bucket_prefix
691
+
692
+ # Required. Directory where the user lands in the SFTP server.
693
+ # Corresponds to the JSON property `directory`
694
+ # @return [String]
695
+ attr_accessor :directory
696
+
697
+ # Required. Permission to the bucket.
698
+ # Corresponds to the JSON property `permission`
699
+ # @return [String]
700
+ attr_accessor :permission
701
+
702
+ def initialize(**args)
703
+ update!(**args)
704
+ end
705
+
706
+ # Update properties of this object
707
+ def update!(**args)
708
+ @bucket = args[:bucket] if args.key?(:bucket)
709
+ @bucket_prefix = args[:bucket_prefix] if args.key?(:bucket_prefix)
710
+ @directory = args[:directory] if args.key?(:directory)
711
+ @permission = args[:permission] if args.key?(:permission)
712
+ end
713
+ end
714
+
715
+ # Message describing User object
716
+ class User
717
+ include Google::Apis::Core::Hashable
718
+
719
+ # Output only. [Output only] Create time stamp
720
+ # Corresponds to the JSON property `createTime`
721
+ # @return [String]
722
+ attr_accessor :create_time
723
+
724
+ # Required. Service account in customer project attached to this SFTP User.
725
+ # Corresponds to the JSON property `customerServiceAccount`
726
+ # @return [String]
727
+ attr_accessor :customer_service_account
728
+
729
+ # Optional. Labels as key value pairs
730
+ # Corresponds to the JSON property `labels`
731
+ # @return [Hash<String,String>]
732
+ attr_accessor :labels
733
+
734
+ # Identifier. User-friendly name via which User will be identified. projects/`
735
+ # project`/locations/`location`/servers/`server`/users/`user`
736
+ # Corresponds to the JSON property `name`
737
+ # @return [String]
738
+ attr_accessor :name
739
+
740
+ # Output only. Tracks user creation.
741
+ # Corresponds to the JSON property `state`
742
+ # @return [String]
743
+ attr_accessor :state
744
+
745
+ # Required. Mapping of Cloud Storage buckets to directories where the user will
746
+ # land in the SFTP server.
747
+ # Corresponds to the JSON property `storageDirectoryMappings`
748
+ # @return [Array<Google::Apis::FtpV1::StorageDirectoryMapping>]
749
+ attr_accessor :storage_directory_mappings
750
+
751
+ # Output only. [Output only] Update time stamp
752
+ # Corresponds to the JSON property `updateTime`
753
+ # @return [String]
754
+ attr_accessor :update_time
755
+
756
+ # Required. User credential for the user. The maximum number of user credentials
757
+ # is 10.
758
+ # Corresponds to the JSON property `userCredentials`
759
+ # @return [Array<Google::Apis::FtpV1::UserCredential>]
760
+ attr_accessor :user_credentials
761
+
762
+ # Output only. [Output only] The username of the user.
763
+ # Corresponds to the JSON property `username`
764
+ # @return [String]
765
+ attr_accessor :username
766
+
767
+ def initialize(**args)
768
+ update!(**args)
769
+ end
770
+
771
+ # Update properties of this object
772
+ def update!(**args)
773
+ @create_time = args[:create_time] if args.key?(:create_time)
774
+ @customer_service_account = args[:customer_service_account] if args.key?(:customer_service_account)
775
+ @labels = args[:labels] if args.key?(:labels)
776
+ @name = args[:name] if args.key?(:name)
777
+ @state = args[:state] if args.key?(:state)
778
+ @storage_directory_mappings = args[:storage_directory_mappings] if args.key?(:storage_directory_mappings)
779
+ @update_time = args[:update_time] if args.key?(:update_time)
780
+ @user_credentials = args[:user_credentials] if args.key?(:user_credentials)
781
+ @username = args[:username] if args.key?(:username)
782
+ end
783
+ end
784
+
785
+ # Message describing UserCredential object
786
+ class UserCredential
787
+ include Google::Apis::Core::Hashable
788
+
789
+ # Required. Name of the user credential.
790
+ # Corresponds to the JSON property `credentialName`
791
+ # @return [String]
792
+ attr_accessor :credential_name
793
+
794
+ # Required. Type of credential.
795
+ # Corresponds to the JSON property `credentialType`
796
+ # @return [String]
797
+ attr_accessor :credential_type
798
+
799
+ # Optional. SSH public key body in OpenSSH format. Example: "ssh-rsa
800
+ # AAAAB3NzaC1yc2EAAAADAQABAAABAQ..."
801
+ # Corresponds to the JSON property `sshPublicKeyBody`
802
+ # @return [String]
803
+ attr_accessor :ssh_public_key_body
804
+
805
+ def initialize(**args)
806
+ update!(**args)
807
+ end
808
+
809
+ # Update properties of this object
810
+ def update!(**args)
811
+ @credential_name = args[:credential_name] if args.key?(:credential_name)
812
+ @credential_type = args[:credential_type] if args.key?(:credential_type)
813
+ @ssh_public_key_body = args[:ssh_public_key_body] if args.key?(:ssh_public_key_body)
814
+ end
815
+ end
816
+ end
817
+ end
818
+ end