google-cloud-os_login 0.3.1 → 0.4.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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 7f62b4f4598bb2aee5ce50a386b4b85804fe34cc2f081a87b973f2710b6f5466
4
- data.tar.gz: 3cde2de784e8a32d0858562de18dcb5d034a02fe70a50f1ca4f6fd26eb43c584
3
+ metadata.gz: 3129d4877498d692aed8cd117e4b891f068cfe63e4bc24d2c131dfe085f60885
4
+ data.tar.gz: '093d41a081a6a57a831db676359d311759ffa13ec2297e4414ccc9bafe4eb982'
5
5
  SHA512:
6
- metadata.gz: cbaf7d4a5810d56de59c840fddb84ea09a81ff6d79d76725cefd03c549260100d8bddcb6b9e126a9a302bf9b399397bcc7c2ebfaa99ddcb40bc806b10d0ee92c
7
- data.tar.gz: b574ea21140000029855a0f0c6d8343d7978c8c47c39cdb7f92120f1100d343b9a8035a93474a866d18d0c412890ad520b566642b9571f09de44447082997b75
6
+ metadata.gz: 267d9969eb504776bfbb86182a19646c429813cf6d594d7a715c9961b947a0e4f8d876630623da66d89ffee00c9f041684344deeaa5bf024d3a900ad6a289f54
7
+ data.tar.gz: 12ccbe76ce610e45dbc35d742d0715240a0a5de48a3f107061802883186d523fb1cf20ca02384e0da827f7f2d7e86d765b6f25878bd293c7880c723fc5652828
data/.yardopts CHANGED
@@ -1,5 +1,5 @@
1
1
  --no-private
2
- --title=Google Cloud OS Login API
2
+ --title=Cloud OS Login API
3
3
  --exclude _pb\.rb$
4
4
  --markup markdown
5
5
  --markup-provider redcarpet
data/README.md CHANGED
@@ -1,7 +1,8 @@
1
- # Ruby Client for Google Cloud OS Login API ([Alpha](https://github.com/googleapis/google-cloud-ruby#versioning))
1
+ # Ruby Client for Cloud OS Login API ([Alpha](https://github.com/googleapis/google-cloud-ruby#versioning))
2
2
 
3
- [Google Cloud OS Login API][Product Documentation]:
4
- Manages OS login configuration for Google account users.
3
+ [Cloud OS Login API][Product Documentation]:
4
+ You can use OS Login to manage access to your VM instances using IAM roles.
5
+ For more information, read [OS Login](/compute/docs/oslogin/).
5
6
  - [Client Library Documentation][]
6
7
  - [Product Documentation][]
7
8
 
@@ -11,7 +12,7 @@ steps:
11
12
 
12
13
  1. [Select or create a Cloud Platform project.](https://console.cloud.google.com/project)
13
14
  2. [Enable billing for your project.](https://cloud.google.com/billing/docs/how-to/modify-project#enable_billing_for_a_project)
14
- 3. [Enable the Google Cloud OS Login API.](https://console.cloud.google.com/apis/library/oslogin.googleapis.com)
15
+ 3. [Enable the Cloud OS Login API.](https://console.cloud.google.com/apis/library/oslogin.googleapis.com)
15
16
  4. [Setup Authentication.](https://googleapis.dev/ruby/google-cloud-os_login/latest/file.AUTHENTICATION.html)
16
17
 
17
18
  ### Installation
@@ -20,9 +21,9 @@ $ gem install google-cloud-os_login
20
21
  ```
21
22
 
22
23
  ### Next Steps
23
- - Read the [Client Library Documentation][] for Google Cloud OS Login API
24
+ - Read the [Client Library Documentation][] for Cloud OS Login API
24
25
  to see other available methods on the client.
25
- - Read the [Google Cloud OS Login API Product documentation][Product Documentation]
26
+ - Read the [Cloud OS Login API Product documentation][Product Documentation]
26
27
  to learn more about the product and see How-to Guides.
27
28
  - View this [repository's main README](https://github.com/googleapis/google-cloud-ruby/blob/master/README.md)
28
29
  to see the full list of Cloud APIs that we cover.
@@ -21,10 +21,11 @@ module Google
21
21
  # rubocop:disable LineLength
22
22
 
23
23
  ##
24
- # # Ruby Client for Google Cloud OS Login API ([Alpha](https://github.com/googleapis/google-cloud-ruby#versioning))
24
+ # # Ruby Client for Cloud OS Login API ([Alpha](https://github.com/googleapis/google-cloud-ruby#versioning))
25
25
  #
26
- # [Google Cloud OS Login API][Product Documentation]:
27
- # Manages OS login configuration for Google account users.
26
+ # [Cloud OS Login API][Product Documentation]:
27
+ # You can use OS Login to manage access to your VM instances using IAM roles.
28
+ # For more information, read [OS Login](/compute/docs/oslogin/).
28
29
  # - [Product Documentation][]
29
30
  #
30
31
  # ## Quick Start
@@ -33,7 +34,7 @@ module Google
33
34
  #
34
35
  # 1. [Select or create a Cloud Platform project.](https://console.cloud.google.com/project)
35
36
  # 2. [Enable billing for your project.](https://cloud.google.com/billing/docs/how-to/modify-project#enable_billing_for_a_project)
36
- # 3. [Enable the Google Cloud OS Login API.](https://console.cloud.google.com/apis/library/oslogin.googleapis.com)
37
+ # 3. [Enable the Cloud OS Login API.](https://console.cloud.google.com/apis/library/oslogin.googleapis.com)
37
38
  # 4. [Setup Authentication.](https://googleapis.dev/ruby/google-cloud-os_login/latest/file.AUTHENTICATION.html)
38
39
  #
39
40
  # ### Installation
@@ -42,7 +43,7 @@ module Google
42
43
  # ```
43
44
  #
44
45
  # ### Next Steps
45
- # - Read the [Google Cloud OS Login API Product documentation][Product Documentation]
46
+ # - Read the [Cloud OS Login API Product documentation][Product Documentation]
46
47
  # to learn more about the product and see How-to Guides.
47
48
  # - View this [repository's main README](https://github.com/googleapis/google-cloud-ruby/blob/master/README.md)
48
49
  # to see the full list of Cloud APIs that we cover.
@@ -21,10 +21,11 @@ module Google
21
21
  # rubocop:disable LineLength
22
22
 
23
23
  ##
24
- # # Ruby Client for Google Cloud OS Login API ([Alpha](https://github.com/googleapis/google-cloud-ruby#versioning))
24
+ # # Ruby Client for Cloud OS Login API ([Alpha](https://github.com/googleapis/google-cloud-ruby#versioning))
25
25
  #
26
- # [Google Cloud OS Login API][Product Documentation]:
27
- # Manages OS login configuration for Google account users.
26
+ # [Cloud OS Login API][Product Documentation]:
27
+ # You can use OS Login to manage access to your VM instances using IAM roles.
28
+ # For more information, read [OS Login](/compute/docs/oslogin/).
28
29
  # - [Product Documentation][]
29
30
  #
30
31
  # ## Quick Start
@@ -33,7 +34,7 @@ module Google
33
34
  #
34
35
  # 1. [Select or create a Cloud Platform project.](https://console.cloud.google.com/project)
35
36
  # 2. [Enable billing for your project.](https://cloud.google.com/billing/docs/how-to/modify-project#enable_billing_for_a_project)
36
- # 3. [Enable the Google Cloud OS Login API.](https://console.cloud.google.com/apis/library/oslogin.googleapis.com)
37
+ # 3. [Enable the Cloud OS Login API.](https://console.cloud.google.com/apis/library/oslogin.googleapis.com)
37
38
  # 4. [Setup Authentication.](https://googleapis.dev/ruby/google-cloud-os_login/latest/file.AUTHENTICATION.html)
38
39
  #
39
40
  # ### Installation
@@ -42,7 +43,7 @@ module Google
42
43
  # ```
43
44
  #
44
45
  # ### Next Steps
45
- # - Read the [Google Cloud OS Login API Product documentation][Product Documentation]
46
+ # - Read the [Cloud OS Login API Product documentation][Product Documentation]
46
47
  # to learn more about the product and see How-to Guides.
47
48
  # - View this [repository's main README](https://github.com/googleapis/google-cloud-ruby/blob/master/README.md)
48
49
  # to see the full list of Cloud APIs that we cover.
@@ -22,9 +22,7 @@ module Google
22
22
  class Credentials < Google::Auth::Credentials
23
23
  SCOPE = [
24
24
  "https://www.googleapis.com/auth/cloud-platform",
25
- "https://www.googleapis.com/auth/cloud-platform.read-only",
26
- "https://www.googleapis.com/auth/compute",
27
- "https://www.googleapis.com/auth/compute.readonly"
25
+ "https://www.googleapis.com/auth/compute"
28
26
  ].freeze
29
27
  PATH_ENV_VARS = %w(OS_LOGIN_CREDENTIALS
30
28
  OS_LOGIN_KEYFILE
@@ -46,6 +46,12 @@ module Google
46
46
  # @!attribute [rw] account_id
47
47
  # @return [String]
48
48
  # Output only. A POSIX account identifier.
49
+ # @!attribute [rw] operating_system_type
50
+ # @return [Google::Cloud::Oslogin::Common::OperatingSystemType]
51
+ # The operating system type where this account applies.
52
+ # @!attribute [rw] name
53
+ # @return [String]
54
+ # Output only. The canonical resource name.
49
55
  class PosixAccount; end
50
56
 
51
57
  # The SSH public key information associated with a Google account.
@@ -60,7 +66,23 @@ module Google
60
66
  # @!attribute [rw] fingerprint
61
67
  # @return [String]
62
68
  # Output only. The SHA-256 fingerprint of the SSH public key.
69
+ # @!attribute [rw] name
70
+ # @return [String]
71
+ # Output only. The canonical resource name.
63
72
  class SshPublicKey; end
73
+
74
+ # The operating system options for account entries.
75
+ module OperatingSystemType
76
+ # The operating system type associated with the user account information is
77
+ # unspecified.
78
+ OPERATING_SYSTEM_TYPE_UNSPECIFIED = 0
79
+
80
+ # Linux user account information.
81
+ LINUX = 1
82
+
83
+ # Windows user account information.
84
+ WINDOWS = 2
85
+ end
64
86
  end
65
87
  end
66
88
  end
@@ -21,7 +21,7 @@ module Google
21
21
  # Google Compute Engine.
22
22
  # @!attribute [rw] name
23
23
  # @return [String]
24
- # The primary email address that uniquely identifies the user.
24
+ # Required. A unique user ID.
25
25
  # @!attribute [rw] posix_accounts
26
26
  # @return [Array<Google::Cloud::Oslogin::Common::PosixAccount>]
27
27
  # The list of POSIX accounts associated with the user.
@@ -37,7 +37,7 @@ module Google
37
37
  # A request message for deleting a POSIX account entry.
38
38
  # @!attribute [rw] name
39
39
  # @return [String]
40
- # A reference to the POSIX account to update. POSIX accounts are identified
40
+ # Required. A reference to the POSIX account to update. POSIX accounts are identified
41
41
  # by the project ID they are associated with. A reference to the POSIX
42
42
  # account is in format `users/{user}/projects/{project}`.
43
43
  class DeletePosixAccountRequest; end
@@ -45,7 +45,7 @@ module Google
45
45
  # A request message for deleting an SSH public key.
46
46
  # @!attribute [rw] name
47
47
  # @return [String]
48
- # The fingerprint of the public key to update. Public keys are identified by
48
+ # Required. The fingerprint of the public key to update. Public keys are identified by
49
49
  # their SHA-256 fingerprint. The fingerprint of the public key is in format
50
50
  # `users/{user}/sshPublicKeys/{fingerprint}`.
51
51
  class DeleteSshPublicKeyRequest; end
@@ -53,7 +53,13 @@ module Google
53
53
  # A request message for retrieving the login profile information for a user.
54
54
  # @!attribute [rw] name
55
55
  # @return [String]
56
- # The unique ID for the user in format `users/{user}`.
56
+ # Required. The unique ID for the user in format `users/{user}`.
57
+ # @!attribute [rw] project_id
58
+ # @return [String]
59
+ # The project ID of the Google Cloud Platform project.
60
+ # @!attribute [rw] system_id
61
+ # @return [String]
62
+ # A system ID for filtering the results of the request.
57
63
  class GetLoginProfileRequest; end
58
64
 
59
65
  # A request message for retrieving an SSH public key.
@@ -67,10 +73,10 @@ module Google
67
73
  # A request message for importing an SSH public key.
68
74
  # @!attribute [rw] parent
69
75
  # @return [String]
70
- # The unique ID for the user in format `users/{user}`.
76
+ # Required. The unique ID for the user in format `users/{user}`.
71
77
  # @!attribute [rw] ssh_public_key
72
78
  # @return [Google::Cloud::Oslogin::Common::SshPublicKey]
73
- # The SSH public key and expiration time.
79
+ # Optional. The SSH public key and expiration time.
74
80
  # @!attribute [rw] project_id
75
81
  # @return [String]
76
82
  # The project ID of the Google Cloud Platform project.
@@ -85,12 +91,12 @@ module Google
85
91
  # A request message for updating an SSH public key.
86
92
  # @!attribute [rw] name
87
93
  # @return [String]
88
- # The fingerprint of the public key to update. Public keys are identified by
94
+ # Required. The fingerprint of the public key to update. Public keys are identified by
89
95
  # their SHA-256 fingerprint. The fingerprint of the public key is in format
90
96
  # `users/{user}/sshPublicKeys/{fingerprint}`.
91
97
  # @!attribute [rw] ssh_public_key
92
98
  # @return [Google::Cloud::Oslogin::Common::SshPublicKey]
93
- # The SSH public key and expiration time.
99
+ # Required. The SSH public key and expiration time.
94
100
  # @!attribute [rw] update_mask
95
101
  # @return [Google::Protobuf::FieldMask]
96
102
  # Mask to control which fields get updated. Updates all if not present.
@@ -59,9 +59,7 @@ module Google
59
59
  # this service.
60
60
  ALL_SCOPES = [
61
61
  "https://www.googleapis.com/auth/cloud-platform",
62
- "https://www.googleapis.com/auth/cloud-platform.read-only",
63
- "https://www.googleapis.com/auth/compute",
64
- "https://www.googleapis.com/auth/compute.readonly"
62
+ "https://www.googleapis.com/auth/compute"
65
63
  ].freeze
66
64
 
67
65
 
@@ -277,7 +275,7 @@ module Google
277
275
  # Deletes a POSIX account.
278
276
  #
279
277
  # @param name [String]
280
- # A reference to the POSIX account to update. POSIX accounts are identified
278
+ # Required. A reference to the POSIX account to update. POSIX accounts are identified
281
279
  # by the project ID they are associated with. A reference to the POSIX
282
280
  # account is in format `users/{user}/projects/{project}`.
283
281
  # @param options [Google::Gax::CallOptions]
@@ -309,7 +307,7 @@ module Google
309
307
  # Deletes an SSH public key.
310
308
  #
311
309
  # @param name [String]
312
- # The fingerprint of the public key to update. Public keys are identified by
310
+ # Required. The fingerprint of the public key to update. Public keys are identified by
313
311
  # their SHA-256 fingerprint. The fingerprint of the public key is in format
314
312
  # `users/{user}/sshPublicKeys/{fingerprint}`.
315
313
  # @param options [Google::Gax::CallOptions]
@@ -342,7 +340,11 @@ module Google
342
340
  # on Google Compute Engine.
343
341
  #
344
342
  # @param name [String]
345
- # The unique ID for the user in format `users/{user}`.
343
+ # Required. The unique ID for the user in format `users/{user}`.
344
+ # @param project_id [String]
345
+ # The project ID of the Google Cloud Platform project.
346
+ # @param system_id [String]
347
+ # A system ID for filtering the results of the request.
346
348
  # @param options [Google::Gax::CallOptions]
347
349
  # Overrides the default settings for this call, e.g, timeout,
348
350
  # retries, etc.
@@ -360,10 +362,14 @@ module Google
360
362
 
361
363
  def get_login_profile \
362
364
  name,
365
+ project_id: nil,
366
+ system_id: nil,
363
367
  options: nil,
364
368
  &block
365
369
  req = {
366
- name: name
370
+ name: name,
371
+ project_id: project_id,
372
+ system_id: system_id
367
373
  }.delete_if { |_, v| v.nil? }
368
374
  req = Google::Gax::to_proto(req, Google::Cloud::Oslogin::V1::GetLoginProfileRequest)
369
375
  @get_login_profile.call(req, options, &block)
@@ -406,9 +412,9 @@ module Google
406
412
  # login profile.
407
413
  #
408
414
  # @param parent [String]
409
- # The unique ID for the user in format `users/{user}`.
415
+ # Required. The unique ID for the user in format `users/{user}`.
410
416
  # @param ssh_public_key [Google::Cloud::Oslogin::Common::SshPublicKey | Hash]
411
- # The SSH public key and expiration time.
417
+ # Optional. The SSH public key and expiration time.
412
418
  # A hash of the same form as `Google::Cloud::Oslogin::Common::SshPublicKey`
413
419
  # can also be provided.
414
420
  # @param project_id [String]
@@ -450,11 +456,11 @@ module Google
450
456
  # supports patch semantics.
451
457
  #
452
458
  # @param name [String]
453
- # The fingerprint of the public key to update. Public keys are identified by
459
+ # Required. The fingerprint of the public key to update. Public keys are identified by
454
460
  # their SHA-256 fingerprint. The fingerprint of the public key is in format
455
461
  # `users/{user}/sshPublicKeys/{fingerprint}`.
456
462
  # @param ssh_public_key [Google::Cloud::Oslogin::Common::SshPublicKey | Hash]
457
- # The SSH public key and expiration time.
463
+ # Required. The SSH public key and expiration time.
458
464
  # A hash of the same form as `Google::Cloud::Oslogin::Common::SshPublicKey`
459
465
  # can also be provided.
460
466
  # @param update_mask [Google::Protobuf::FieldMask | Hash]
@@ -46,6 +46,12 @@ module Google
46
46
  # @!attribute [rw] account_id
47
47
  # @return [String]
48
48
  # Output only. A POSIX account identifier.
49
+ # @!attribute [rw] operating_system_type
50
+ # @return [Google::Cloud::Oslogin::Common::OperatingSystemType]
51
+ # The operating system type where this account applies.
52
+ # @!attribute [rw] name
53
+ # @return [String]
54
+ # Output only. The canonical resource name.
49
55
  class PosixAccount; end
50
56
 
51
57
  # The SSH public key information associated with a Google account.
@@ -60,7 +66,23 @@ module Google
60
66
  # @!attribute [rw] fingerprint
61
67
  # @return [String]
62
68
  # Output only. The SHA-256 fingerprint of the SSH public key.
69
+ # @!attribute [rw] name
70
+ # @return [String]
71
+ # Output only. The canonical resource name.
63
72
  class SshPublicKey; end
73
+
74
+ # The operating system options for account entries.
75
+ module OperatingSystemType
76
+ # The operating system type associated with the user account information is
77
+ # unspecified.
78
+ OPERATING_SYSTEM_TYPE_UNSPECIFIED = 0
79
+
80
+ # Linux user account information.
81
+ LINUX = 1
82
+
83
+ # Windows user account information.
84
+ WINDOWS = 2
85
+ end
64
86
  end
65
87
  end
66
88
  end
@@ -16,7 +16,7 @@
16
16
  module Google
17
17
  module Cloud
18
18
  module OsLogin
19
- VERSION = "0.3.1".freeze
19
+ VERSION = "0.4.0".freeze
20
20
  end
21
21
  end
22
22
  end
@@ -4,7 +4,8 @@
4
4
 
5
5
  require 'google/protobuf'
6
6
 
7
- require 'google/api/annotations_pb'
7
+ require 'google/api/field_behavior_pb'
8
+ require 'google/api/resource_pb'
8
9
  Google::Protobuf::DescriptorPool.generated_pool.build do
9
10
  add_message "google.cloud.oslogin.common.PosixAccount" do
10
11
  optional :primary, :bool, 1
@@ -16,11 +17,19 @@ Google::Protobuf::DescriptorPool.generated_pool.build do
16
17
  optional :gecos, :string, 7
17
18
  optional :system_id, :string, 8
18
19
  optional :account_id, :string, 9
20
+ optional :operating_system_type, :enum, 10, "google.cloud.oslogin.common.OperatingSystemType"
21
+ optional :name, :string, 11
19
22
  end
20
23
  add_message "google.cloud.oslogin.common.SshPublicKey" do
21
24
  optional :key, :string, 1
22
25
  optional :expiration_time_usec, :int64, 2
23
26
  optional :fingerprint, :string, 3
27
+ optional :name, :string, 4
28
+ end
29
+ add_enum "google.cloud.oslogin.common.OperatingSystemType" do
30
+ value :OPERATING_SYSTEM_TYPE_UNSPECIFIED, 0
31
+ value :LINUX, 1
32
+ value :WINDOWS, 2
24
33
  end
25
34
  end
26
35
 
@@ -30,6 +39,7 @@ module Google
30
39
  module Common
31
40
  PosixAccount = Google::Protobuf::DescriptorPool.generated_pool.lookup("google.cloud.oslogin.common.PosixAccount").msgclass
32
41
  SshPublicKey = Google::Protobuf::DescriptorPool.generated_pool.lookup("google.cloud.oslogin.common.SshPublicKey").msgclass
42
+ OperatingSystemType = Google::Protobuf::DescriptorPool.generated_pool.lookup("google.cloud.oslogin.common.OperatingSystemType").enummodule
33
43
  end
34
44
  end
35
45
  end
@@ -5,6 +5,9 @@
5
5
  require 'google/protobuf'
6
6
 
7
7
  require 'google/api/annotations_pb'
8
+ require 'google/api/client_pb'
9
+ require 'google/api/field_behavior_pb'
10
+ require 'google/api/resource_pb'
8
11
  require 'google/cloud/oslogin/common/common_pb'
9
12
  require 'google/protobuf/empty_pb'
10
13
  require 'google/protobuf/field_mask_pb'
@@ -23,6 +26,8 @@ Google::Protobuf::DescriptorPool.generated_pool.build do
23
26
  end
24
27
  add_message "google.cloud.oslogin.v1.GetLoginProfileRequest" do
25
28
  optional :name, :string, 1
29
+ optional :project_id, :string, 2
30
+ optional :system_id, :string, 3
26
31
  end
27
32
  add_message "google.cloud.oslogin.v1.GetSshPublicKeyRequest" do
28
33
  optional :name, :string, 1
@@ -1,7 +1,7 @@
1
1
  # Generated by the protocol buffer compiler. DO NOT EDIT!
2
2
  # Source: google/cloud/oslogin/v1/oslogin.proto for package 'google.cloud.oslogin.v1'
3
3
  # Original file comments:
4
- # Copyright 2017 Google Inc.
4
+ # Copyright 2019 Google LLC.
5
5
  #
6
6
  # Licensed under the Apache License, Version 2.0 (the "License");
7
7
  # you may not use this file except in compliance with the License.
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: google-cloud-os_login
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.3.1
4
+ version: 0.4.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Google LLC
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2019-08-23 00:00:00.000000000 Z
11
+ date: 2019-10-15 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: google-gax
@@ -94,8 +94,7 @@ dependencies:
94
94
  - - "~>"
95
95
  - !ruby/object:Gem::Version
96
96
  version: '0.9'
97
- description: google-cloud-os_login is the official library for Google Cloud OS Login
98
- API.
97
+ description: google-cloud-os_login is the official library for Cloud OS Login API.
99
98
  email: googleapis-packages@google.com
100
99
  executables: []
101
100
  extensions: []
@@ -148,8 +147,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
148
147
  - !ruby/object:Gem::Version
149
148
  version: '0'
150
149
  requirements: []
151
- rubygems_version: 3.0.4
150
+ rubygems_version: 3.0.6
152
151
  signing_key:
153
152
  specification_version: 4
154
- summary: API Client library for Google Cloud OS Login API
153
+ summary: API Client library for Cloud OS Login API
155
154
  test_files: []