oraclebmc 1.1.1

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.
Files changed (141) hide show
  1. checksums.yaml +7 -0
  2. data/LICENSE.txt +82 -0
  3. data/README.md +220 -0
  4. data/lib/oraclebmc/api_client.rb +349 -0
  5. data/lib/oraclebmc/config.rb +80 -0
  6. data/lib/oraclebmc/config_file_loader.rb +85 -0
  7. data/lib/oraclebmc/core/blockstorage_client.rb +459 -0
  8. data/lib/oraclebmc/core/compute_client.rb +1053 -0
  9. data/lib/oraclebmc/core/core.rb +82 -0
  10. data/lib/oraclebmc/core/models/attach_i_scsi_volume_details.rb +179 -0
  11. data/lib/oraclebmc/core/models/attach_volume_details.rb +206 -0
  12. data/lib/oraclebmc/core/models/capture_console_history_details.rb +162 -0
  13. data/lib/oraclebmc/core/models/console_history.rb +252 -0
  14. data/lib/oraclebmc/core/models/cpe.rb +209 -0
  15. data/lib/oraclebmc/core/models/create_cpe_details.rb +187 -0
  16. data/lib/oraclebmc/core/models/create_dhcp_details.rb +195 -0
  17. data/lib/oraclebmc/core/models/create_drg_attachment_details.rb +184 -0
  18. data/lib/oraclebmc/core/models/create_drg_details.rb +173 -0
  19. data/lib/oraclebmc/core/models/create_image_details.rb +188 -0
  20. data/lib/oraclebmc/core/models/create_internet_gateway_details.rb +195 -0
  21. data/lib/oraclebmc/core/models/create_ip_sec_connection_details.rb +210 -0
  22. data/lib/oraclebmc/core/models/create_route_table_details.rb +195 -0
  23. data/lib/oraclebmc/core/models/create_security_list_details.rb +206 -0
  24. data/lib/oraclebmc/core/models/create_subnet_details.rb +253 -0
  25. data/lib/oraclebmc/core/models/create_vcn_details.rb +187 -0
  26. data/lib/oraclebmc/core/models/create_volume_backup_details.rb +173 -0
  27. data/lib/oraclebmc/core/models/create_volume_details.rb +211 -0
  28. data/lib/oraclebmc/core/models/dhcp_dns_option.rb +203 -0
  29. data/lib/oraclebmc/core/models/dhcp_option.rb +171 -0
  30. data/lib/oraclebmc/core/models/dhcp_options.rb +246 -0
  31. data/lib/oraclebmc/core/models/drg.rb +224 -0
  32. data/lib/oraclebmc/core/models/drg_attachment.rb +246 -0
  33. data/lib/oraclebmc/core/models/egress_security_rule.rb +240 -0
  34. data/lib/oraclebmc/core/models/i_scsi_volume_attachment.rb +254 -0
  35. data/lib/oraclebmc/core/models/icmp_options.rb +173 -0
  36. data/lib/oraclebmc/core/models/image.rb +282 -0
  37. data/lib/oraclebmc/core/models/ingress_security_rule.rb +240 -0
  38. data/lib/oraclebmc/core/models/instance.rb +326 -0
  39. data/lib/oraclebmc/core/models/internet_gateway.rb +248 -0
  40. data/lib/oraclebmc/core/models/ip_sec_connection.rb +261 -0
  41. data/lib/oraclebmc/core/models/ip_sec_connection_device_config.rb +195 -0
  42. data/lib/oraclebmc/core/models/ip_sec_connection_device_status.rb +198 -0
  43. data/lib/oraclebmc/core/models/launch_instance_details.rb +327 -0
  44. data/lib/oraclebmc/core/models/port_range.rb +175 -0
  45. data/lib/oraclebmc/core/models/route_rule.rb +177 -0
  46. data/lib/oraclebmc/core/models/route_table.rb +246 -0
  47. data/lib/oraclebmc/core/models/security_list.rb +257 -0
  48. data/lib/oraclebmc/core/models/shape.rb +164 -0
  49. data/lib/oraclebmc/core/models/subnet.rb +325 -0
  50. data/lib/oraclebmc/core/models/tcp_options.rb +177 -0
  51. data/lib/oraclebmc/core/models/tunnel_config.rb +193 -0
  52. data/lib/oraclebmc/core/models/tunnel_status.rb +218 -0
  53. data/lib/oraclebmc/core/models/udp_options.rb +177 -0
  54. data/lib/oraclebmc/core/models/update_cpe_details.rb +162 -0
  55. data/lib/oraclebmc/core/models/update_dhcp_details.rb +172 -0
  56. data/lib/oraclebmc/core/models/update_drg_attachment_details.rb +162 -0
  57. data/lib/oraclebmc/core/models/update_drg_details.rb +162 -0
  58. data/lib/oraclebmc/core/models/update_image_details.rb +165 -0
  59. data/lib/oraclebmc/core/models/update_instance_details.rb +165 -0
  60. data/lib/oraclebmc/core/models/update_internet_gateway_details.rb +173 -0
  61. data/lib/oraclebmc/core/models/update_ip_sec_connection_details.rb +162 -0
  62. data/lib/oraclebmc/core/models/update_route_table_details.rb +173 -0
  63. data/lib/oraclebmc/core/models/update_security_list_details.rb +184 -0
  64. data/lib/oraclebmc/core/models/update_subnet_details.rb +162 -0
  65. data/lib/oraclebmc/core/models/update_vcn_details.rb +162 -0
  66. data/lib/oraclebmc/core/models/update_volume_backup_details.rb +162 -0
  67. data/lib/oraclebmc/core/models/update_volume_details.rb +163 -0
  68. data/lib/oraclebmc/core/models/vcn.rb +272 -0
  69. data/lib/oraclebmc/core/models/vnic.rb +274 -0
  70. data/lib/oraclebmc/core/models/vnic_attachment.rb +271 -0
  71. data/lib/oraclebmc/core/models/volume.rb +249 -0
  72. data/lib/oraclebmc/core/models/volume_attachment.rb +284 -0
  73. data/lib/oraclebmc/core/models/volume_backup.rb +273 -0
  74. data/lib/oraclebmc/core/util.rb +1 -0
  75. data/lib/oraclebmc/core/virtual_network_client.rb +2263 -0
  76. data/lib/oraclebmc/errors.rb +62 -0
  77. data/lib/oraclebmc/global_context.rb +21 -0
  78. data/lib/oraclebmc/identity/identity.rb +38 -0
  79. data/lib/oraclebmc/identity/identity_client.rb +1462 -0
  80. data/lib/oraclebmc/identity/models/add_user_to_group_details.rb +173 -0
  81. data/lib/oraclebmc/identity/models/api_key.rb +251 -0
  82. data/lib/oraclebmc/identity/models/availability_domain.rb +173 -0
  83. data/lib/oraclebmc/identity/models/compartment.rb +251 -0
  84. data/lib/oraclebmc/identity/models/create_api_key_details.rb +162 -0
  85. data/lib/oraclebmc/identity/models/create_compartment_details.rb +187 -0
  86. data/lib/oraclebmc/identity/models/create_group_details.rb +186 -0
  87. data/lib/oraclebmc/identity/models/create_policy_details.rb +215 -0
  88. data/lib/oraclebmc/identity/models/create_swift_password_details.rb +163 -0
  89. data/lib/oraclebmc/identity/models/create_user_details.rb +186 -0
  90. data/lib/oraclebmc/identity/models/group.rb +251 -0
  91. data/lib/oraclebmc/identity/models/policy.rb +277 -0
  92. data/lib/oraclebmc/identity/models/swift_password.rb +266 -0
  93. data/lib/oraclebmc/identity/models/ui_password.rb +227 -0
  94. data/lib/oraclebmc/identity/models/update_compartment_details.rb +162 -0
  95. data/lib/oraclebmc/identity/models/update_group_details.rb +162 -0
  96. data/lib/oraclebmc/identity/models/update_policy_details.rb +190 -0
  97. data/lib/oraclebmc/identity/models/update_state_details.rb +163 -0
  98. data/lib/oraclebmc/identity/models/update_swift_password_details.rb +162 -0
  99. data/lib/oraclebmc/identity/models/update_user_details.rb +162 -0
  100. data/lib/oraclebmc/identity/models/user.rb +257 -0
  101. data/lib/oraclebmc/identity/models/user_group_membership.rb +249 -0
  102. data/lib/oraclebmc/identity/util.rb +1 -0
  103. data/lib/oraclebmc/load_balancer/load_balancer.rb +45 -0
  104. data/lib/oraclebmc/load_balancer/load_balancer_client.rb +1218 -0
  105. data/lib/oraclebmc/load_balancer/models/backend.rb +262 -0
  106. data/lib/oraclebmc/load_balancer/models/backend_details.rb +248 -0
  107. data/lib/oraclebmc/load_balancer/models/backend_set.rb +211 -0
  108. data/lib/oraclebmc/load_balancer/models/backend_set_details.rb +197 -0
  109. data/lib/oraclebmc/load_balancer/models/certificate.rb +209 -0
  110. data/lib/oraclebmc/load_balancer/models/certificate_details.rb +245 -0
  111. data/lib/oraclebmc/load_balancer/models/create_backend_details.rb +248 -0
  112. data/lib/oraclebmc/load_balancer/models/create_backend_set_details.rb +210 -0
  113. data/lib/oraclebmc/load_balancer/models/create_certificate_details.rb +245 -0
  114. data/lib/oraclebmc/load_balancer/models/create_listener_details.rb +216 -0
  115. data/lib/oraclebmc/load_balancer/models/create_load_balancer_details.rb +233 -0
  116. data/lib/oraclebmc/load_balancer/models/health_checker.rb +265 -0
  117. data/lib/oraclebmc/load_balancer/models/health_checker_details.rb +264 -0
  118. data/lib/oraclebmc/load_balancer/models/ip_address.rb +165 -0
  119. data/lib/oraclebmc/load_balancer/models/listener.rb +216 -0
  120. data/lib/oraclebmc/load_balancer/models/listener_details.rb +202 -0
  121. data/lib/oraclebmc/load_balancer/models/load_balancer.rb +296 -0
  122. data/lib/oraclebmc/load_balancer/models/load_balancer_policy.rb +162 -0
  123. data/lib/oraclebmc/load_balancer/models/load_balancer_protocol.rb +162 -0
  124. data/lib/oraclebmc/load_balancer/models/load_balancer_shape.rb +162 -0
  125. data/lib/oraclebmc/load_balancer/models/ssl_configuration.rb +195 -0
  126. data/lib/oraclebmc/load_balancer/models/ssl_configuration_details.rb +195 -0
  127. data/lib/oraclebmc/load_balancer/models/update_backend_details.rb +220 -0
  128. data/lib/oraclebmc/load_balancer/models/update_backend_set_details.rb +197 -0
  129. data/lib/oraclebmc/load_balancer/models/update_health_checker_details.rb +263 -0
  130. data/lib/oraclebmc/load_balancer/models/update_listener_details.rb +202 -0
  131. data/lib/oraclebmc/load_balancer/models/update_load_balancer_details.rb +165 -0
  132. data/lib/oraclebmc/load_balancer/models/work_request.rb +269 -0
  133. data/lib/oraclebmc/load_balancer/models/work_request_error.rb +185 -0
  134. data/lib/oraclebmc/load_balancer/util.rb +55 -0
  135. data/lib/oraclebmc/regions.rb +41 -0
  136. data/lib/oraclebmc/response.rb +86 -0
  137. data/lib/oraclebmc/signer.rb +119 -0
  138. data/lib/oraclebmc/version.rb +5 -0
  139. data/lib/oraclebmc/waiter.rb +111 -0
  140. data/lib/oraclebmc.rb +20 -0
  141. metadata +265 -0
@@ -0,0 +1,1462 @@
1
+ # Copyright (c) 2016 Oracle and/or its affiliates. All rights reserved.
2
+
3
+ require "uri"
4
+ require "logger"
5
+
6
+ module OracleBMC
7
+
8
+ class Identity::IdentityClient
9
+
10
+ # Client used to make HTTP requests.
11
+ # @return [OracleBMC::ApiClient]
12
+ attr_reader :api_client
13
+
14
+ # Fully qualified endpoint URL
15
+ # @return [String]
16
+ attr_reader :endpoint
17
+
18
+ # The region, which will usually correspond to a value in {OracleBMC::Regions::REGION_ENUM}.
19
+ # @return [String]
20
+ attr_accessor :region
21
+
22
+ # Creates a new IdentityClient.
23
+ # If a config is not specified, then the global OracleBMC.config will be used.
24
+ #
25
+ # A region must be specified in either the config or the region parameter. If specified
26
+ # in both, then the region parameter will be used.
27
+ #
28
+ # @param [Config] config A Config object.
29
+ # @param [String] region A region used to determine the service endpoint. This will usually
30
+ # correspond to a value in {OracleBMC::Regions::REGION_ENUM}, but may be an arbitrary string.
31
+ #
32
+ def initialize(config:nil, region:nil)
33
+ config ||= OracleBMC.config
34
+ signer = Signer.new(config.user, config.fingerprint, config.tenancy, config.key_file, pass_phrase: config.pass_phrase)
35
+ @api_client = ApiClient.new(config, signer)
36
+
37
+ region ||= config.region
38
+ self.region = region
39
+ end
40
+
41
+ # Set the region that will be used to determine the service endpoint.
42
+ # This will usually correspond to a value in {OracleBMC::Regions::REGION_ENUM},
43
+ # but may be an arbitrary string.
44
+ def region=(r)
45
+ @region = r
46
+
47
+ fail 'A region must be specified.' unless @region
48
+
49
+ if not OracleBMC::Regions.valid_region? region
50
+ logger.info "Unknown region '#{@region}', falling back to default endpoint format." if logger
51
+ end
52
+
53
+ @endpoint = OracleBMC::Regions.get_service_endpoint(@region, :IdentityClient) + '/20160918'
54
+ logger.info "IdentityClient endpoint set to '#{endpoint}'." if logger
55
+ end
56
+
57
+ # @return [Logger] The logger for this client. May be nil.
58
+ def logger
59
+ @api_client.config.logger
60
+ end
61
+
62
+
63
+ # Adds the specified user to the specified group and returns a `UserGroupMembership` object with its own OCID.
64
+ #
65
+ # After you send your request, the new object's `lifecycleState` will temporarily be CREATING. Before using the
66
+ # object, first make sure its `lifecycleState` has changed to ACTIVE.
67
+ #
68
+ # @param [AddUserToGroupDetails] add_user_to_group_details Request object for adding a user to a group.
69
+ # @param [Hash] opts the optional parameters
70
+ # @option opts [String] :opc_retry_token A token that uniquely identifies a request so it can be retried in case of a timeout or
71
+ # server error without risk of executing that same action again. Retry tokens expire after 24
72
+ # hours, but can be invalidated before then due to conflicting operations (e.g., if a resource
73
+ # has been deleted and purged from the system, then a retry of the original creation request
74
+ # may be rejected).
75
+ #
76
+ # @return [Response] A Response object with data of type OracleBMC::Identity::Models::UserGroupMembership
77
+ def add_user_to_group(add_user_to_group_details, opts = {})
78
+ logger.debug "Calling operation IdentityClient#add_user_to_group." if logger
79
+
80
+ fail "Missing the required parameter 'add_user_to_group_details' when calling add_user_to_group." if add_user_to_group_details.nil?
81
+
82
+ path = "/userGroupMemberships/"
83
+
84
+ # Query Params
85
+ query_params = {}
86
+
87
+ # Header Params
88
+ header_params = {}
89
+ header_params['accept'] = 'application/json'
90
+ header_params['content-type'] = 'application/json'
91
+ header_params[:'opc-retry-token'] = opts[:'opc_retry_token'] if opts[:'opc_retry_token']
92
+
93
+ post_body = @api_client.object_to_http_body(add_user_to_group_details)
94
+
95
+ return @api_client.call_api(
96
+ :POST,
97
+ path,
98
+ endpoint,
99
+ :header_params => header_params,
100
+ :query_params => query_params,
101
+ :body => post_body,
102
+ :return_type => 'OracleBMC::Identity::Models::UserGroupMembership')
103
+ end
104
+
105
+ # Creates a new compartment in your tenancy.
106
+ #
107
+ # **Important:** Compartments cannot be renamed or deleted.
108
+ #
109
+ # You must specify your tenancy's OCID as the compartment ID in the request object. Remember that the tenancy
110
+ # is simply the root compartment. For information about OCIDs, see
111
+ # [Resource Identifiers](https://docs.us-phoenix-1.oraclecloud.com/Content/General/Concepts/identifiers.htm).
112
+ #
113
+ # You must also specify a *name* for the compartment, which must be unique across all compartments in
114
+ # your tenancy and cannot be changed. You can use this name or the OCID when writing policies that apply
115
+ # to the compartment. For more information about policies, see
116
+ # [How Policies Work](https://docs.us-phoenix-1.oraclecloud.com/Content/Identity/Concepts/policies.htm).
117
+ #
118
+ # You must also specify a *description* for the compartment (although it can be an empty string). It does
119
+ # not have to be unique, and you can change it anytime with
120
+ # {#update_compartment update_compartment}.
121
+ #
122
+ # After you send your request, the new object's `lifecycleState` will temporarily be CREATING. Before using the
123
+ # object, first make sure its `lifecycleState` has changed to ACTIVE.
124
+ #
125
+ # @param [CreateCompartmentDetails] create_compartment_details Request object for creating a new compartment.
126
+ # @param [Hash] opts the optional parameters
127
+ # @option opts [String] :opc_retry_token A token that uniquely identifies a request so it can be retried in case of a timeout or
128
+ # server error without risk of executing that same action again. Retry tokens expire after 24
129
+ # hours, but can be invalidated before then due to conflicting operations (e.g., if a resource
130
+ # has been deleted and purged from the system, then a retry of the original creation request
131
+ # may be rejected).
132
+ #
133
+ # @return [Response] A Response object with data of type OracleBMC::Identity::Models::Compartment
134
+ def create_compartment(create_compartment_details, opts = {})
135
+ logger.debug "Calling operation IdentityClient#create_compartment." if logger
136
+
137
+ fail "Missing the required parameter 'create_compartment_details' when calling create_compartment." if create_compartment_details.nil?
138
+
139
+ path = "/compartments/"
140
+
141
+ # Query Params
142
+ query_params = {}
143
+
144
+ # Header Params
145
+ header_params = {}
146
+ header_params['accept'] = 'application/json'
147
+ header_params['content-type'] = 'application/json'
148
+ header_params[:'opc-retry-token'] = opts[:'opc_retry_token'] if opts[:'opc_retry_token']
149
+
150
+ post_body = @api_client.object_to_http_body(create_compartment_details)
151
+
152
+ return @api_client.call_api(
153
+ :POST,
154
+ path,
155
+ endpoint,
156
+ :header_params => header_params,
157
+ :query_params => query_params,
158
+ :body => post_body,
159
+ :return_type => 'OracleBMC::Identity::Models::Compartment')
160
+ end
161
+
162
+ # Creates a new group in your tenancy.
163
+ #
164
+ # You must specify your tenancy's OCID as the compartment ID in the request object (remember that the tenancy
165
+ # is simply the root compartment). Notice that IAM resources (users, groups, compartments, and some policies)
166
+ # reside within the tenancy itself, unlike cloud resources such as compute instances, which typically
167
+ # reside within compartments inside the tenancy. For information about OCIDs, see
168
+ # [Resource Identifiers](https://docs.us-phoenix-1.oraclecloud.com/Content/General/Concepts/identifiers.htm).
169
+ #
170
+ # You must also specify a *name* for the group, which must be unique across all groups in your tenancy and
171
+ # cannot be changed. You can use this name or the OCID when writing policies that apply to the group. For more
172
+ # information about policies, see [How Policies Work](https://docs.us-phoenix-1.oraclecloud.com/Content/Identity/Concepts/policies.htm).
173
+ #
174
+ # You must also specify a *description* for the group (although it can be an empty string). It does not
175
+ # have to be unique, and you can change it anytime with {#update_group update_group}.
176
+ #
177
+ # After you send your request, the new object's `lifecycleState` will temporarily be CREATING. Before using the
178
+ # object, first make sure its `lifecycleState` has changed to ACTIVE.
179
+ #
180
+ # After creating the group, you need to put users in it and write policies for it.
181
+ # See {#add_user_to_group add_user_to_group} and
182
+ # {#create_policy create_policy}.
183
+ #
184
+ # @param [CreateGroupDetails] create_group_details Request object for creating a new group.
185
+ # @param [Hash] opts the optional parameters
186
+ # @option opts [String] :opc_retry_token A token that uniquely identifies a request so it can be retried in case of a timeout or
187
+ # server error without risk of executing that same action again. Retry tokens expire after 24
188
+ # hours, but can be invalidated before then due to conflicting operations (e.g., if a resource
189
+ # has been deleted and purged from the system, then a retry of the original creation request
190
+ # may be rejected).
191
+ #
192
+ # @return [Response] A Response object with data of type OracleBMC::Identity::Models::Group
193
+ def create_group(create_group_details, opts = {})
194
+ logger.debug "Calling operation IdentityClient#create_group." if logger
195
+
196
+ fail "Missing the required parameter 'create_group_details' when calling create_group." if create_group_details.nil?
197
+
198
+ path = "/groups/"
199
+
200
+ # Query Params
201
+ query_params = {}
202
+
203
+ # Header Params
204
+ header_params = {}
205
+ header_params['accept'] = 'application/json'
206
+ header_params['content-type'] = 'application/json'
207
+ header_params[:'opc-retry-token'] = opts[:'opc_retry_token'] if opts[:'opc_retry_token']
208
+
209
+ post_body = @api_client.object_to_http_body(create_group_details)
210
+
211
+ return @api_client.call_api(
212
+ :POST,
213
+ path,
214
+ endpoint,
215
+ :header_params => header_params,
216
+ :query_params => query_params,
217
+ :body => post_body,
218
+ :return_type => 'OracleBMC::Identity::Models::Group')
219
+ end
220
+
221
+ # Creates a new Console one-time password for the specified user. For more information about user
222
+ # credentials, see [User Credentials](https://docs.us-phoenix-1.oraclecloud.com/Content/Identity/Concepts/usercredentials.htm).
223
+ #
224
+ # Use this operation after creating a new user, or if a user forgets their password. The new one-time
225
+ # password is returned to you in the response, and you must securely deliver it to the user. They'll
226
+ # be prompted to change this password the next time they sign in to the Console. If they don't change
227
+ # it within 7 days, the password will expire and you'll need to create a new one-time password for the
228
+ # user.
229
+ #
230
+ # **Note:** The user's Console login is the unique name you specified when you created the user
231
+ # (see {#create_user create_user}).
232
+ #
233
+ # @param [String] user_id The OCID of the user.
234
+ # @param [Hash] opts the optional parameters
235
+ # @option opts [String] :opc_retry_token A token that uniquely identifies a request so it can be retried in case of a timeout or
236
+ # server error without risk of executing that same action again. Retry tokens expire after 24
237
+ # hours, but can be invalidated before then due to conflicting operations (e.g., if a resource
238
+ # has been deleted and purged from the system, then a retry of the original creation request
239
+ # may be rejected).
240
+ #
241
+ # @return [Response] A Response object with data of type OracleBMC::Identity::Models::UIPassword
242
+ def create_or_reset_ui_password(user_id, opts = {})
243
+ logger.debug "Calling operation IdentityClient#create_or_reset_ui_password." if logger
244
+
245
+ fail "Missing the required parameter 'user_id' when calling create_or_reset_ui_password." if user_id.nil?
246
+
247
+ path = "/users/{userId}/uiPassword".sub('{userId}', user_id.to_s)
248
+
249
+ # Query Params
250
+ query_params = {}
251
+
252
+ # Header Params
253
+ header_params = {}
254
+ header_params['accept'] = 'application/json'
255
+ header_params['content-type'] = 'application/json'
256
+ header_params[:'opc-retry-token'] = opts[:'opc_retry_token'] if opts[:'opc_retry_token']
257
+
258
+ post_body = nil
259
+
260
+ return @api_client.call_api(
261
+ :POST,
262
+ path,
263
+ endpoint,
264
+ :header_params => header_params,
265
+ :query_params => query_params,
266
+ :body => post_body,
267
+ :return_type => 'OracleBMC::Identity::Models::UIPassword')
268
+ end
269
+
270
+ # Creates a new policy in the specified compartment (either the tenancy or another of your compartments).
271
+ # If you're new to policies, see [Getting Started with Policies](https://docs.us-phoenix-1.oraclecloud.com/Content/Identity/Concepts/policygetstarted.htm).
272
+ #
273
+ # You must specify a *name* for the policy, which must be unique across all policies in your tenancy
274
+ # and cannot be changed.
275
+ #
276
+ # You must also specify a *description* for the policy (although it can be an empty string). It does not
277
+ # have to be unique, and you can change it anytime with {#update_policy update_policy}.
278
+ #
279
+ # You must specify one or more policy statements in the statements array. For information about writing
280
+ # policies, see [How Policies Work](https://docs.us-phoenix-1.oraclecloud.com/Content/Identity/Concepts/policies.htm) and
281
+ # [Common Policies](https://docs.us-phoenix-1.oraclecloud.com/Content/Identity/Concepts/commonpolicies.htm).
282
+ #
283
+ # After you send your request, the new object's `lifecycleState` will temporarily be CREATING. Before using the
284
+ # object, first make sure its `lifecycleState` has changed to ACTIVE.
285
+ #
286
+ # New policies take effect typically within 10 seconds.
287
+ #
288
+ # @param [CreatePolicyDetails] create_policy_details Request object for creating a new policy.
289
+ # @param [Hash] opts the optional parameters
290
+ # @option opts [String] :opc_retry_token A token that uniquely identifies a request so it can be retried in case of a timeout or
291
+ # server error without risk of executing that same action again. Retry tokens expire after 24
292
+ # hours, but can be invalidated before then due to conflicting operations (e.g., if a resource
293
+ # has been deleted and purged from the system, then a retry of the original creation request
294
+ # may be rejected).
295
+ #
296
+ # @return [Response] A Response object with data of type OracleBMC::Identity::Models::Policy
297
+ def create_policy(create_policy_details, opts = {})
298
+ logger.debug "Calling operation IdentityClient#create_policy." if logger
299
+
300
+ fail "Missing the required parameter 'create_policy_details' when calling create_policy." if create_policy_details.nil?
301
+
302
+ path = "/policies/"
303
+
304
+ # Query Params
305
+ query_params = {}
306
+
307
+ # Header Params
308
+ header_params = {}
309
+ header_params['accept'] = 'application/json'
310
+ header_params['content-type'] = 'application/json'
311
+ header_params[:'opc-retry-token'] = opts[:'opc_retry_token'] if opts[:'opc_retry_token']
312
+
313
+ post_body = @api_client.object_to_http_body(create_policy_details)
314
+
315
+ return @api_client.call_api(
316
+ :POST,
317
+ path,
318
+ endpoint,
319
+ :header_params => header_params,
320
+ :query_params => query_params,
321
+ :body => post_body,
322
+ :return_type => 'OracleBMC::Identity::Models::Policy')
323
+ end
324
+
325
+ # Creates a new Swift password for the specified user. For information about what Swift passwords are for, see
326
+ # [Managing User Credentials](https://docs.us-phoenix-1.oraclecloud.com/Content/Identity/Tasks/managingcredentials.htm).
327
+ #
328
+ # You must specify a *description* for the Swift password (although it can be an empty string). It does not
329
+ # have to be unique, and you can change it anytime with
330
+ # {#update_swift_password update_swift_password}.
331
+ #
332
+ # Every user has permission to create a Swift password for *their own user ID*. An administrator in your organization
333
+ # does not need to write a policy to give users this ability. To compare, administrators who have permission to the
334
+ # tenancy can use this operation to create a Swift password for any user, including themselves.
335
+ #
336
+ # @param [CreateSwiftPasswordDetails] create_swift_password_details Request object for creating a new swift password.
337
+ # @param [String] user_id The OCID of the user.
338
+ # @param [Hash] opts the optional parameters
339
+ # @option opts [String] :opc_retry_token A token that uniquely identifies a request so it can be retried in case of a timeout or
340
+ # server error without risk of executing that same action again. Retry tokens expire after 24
341
+ # hours, but can be invalidated before then due to conflicting operations (e.g., if a resource
342
+ # has been deleted and purged from the system, then a retry of the original creation request
343
+ # may be rejected).
344
+ #
345
+ # @return [Response] A Response object with data of type OracleBMC::Identity::Models::SwiftPassword
346
+ def create_swift_password(create_swift_password_details, user_id, opts = {})
347
+ logger.debug "Calling operation IdentityClient#create_swift_password." if logger
348
+
349
+ fail "Missing the required parameter 'create_swift_password_details' when calling create_swift_password." if create_swift_password_details.nil?
350
+ fail "Missing the required parameter 'user_id' when calling create_swift_password." if user_id.nil?
351
+
352
+ path = "/users/{userId}/swiftPasswords/".sub('{userId}', user_id.to_s)
353
+
354
+ # Query Params
355
+ query_params = {}
356
+
357
+ # Header Params
358
+ header_params = {}
359
+ header_params['accept'] = 'application/json'
360
+ header_params['content-type'] = 'application/json'
361
+ header_params[:'opc-retry-token'] = opts[:'opc_retry_token'] if opts[:'opc_retry_token']
362
+
363
+ post_body = @api_client.object_to_http_body(create_swift_password_details)
364
+
365
+ return @api_client.call_api(
366
+ :POST,
367
+ path,
368
+ endpoint,
369
+ :header_params => header_params,
370
+ :query_params => query_params,
371
+ :body => post_body,
372
+ :return_type => 'OracleBMC::Identity::Models::SwiftPassword')
373
+ end
374
+
375
+ # Creates a new user in your tenancy. For conceptual information about users, your tenancy, and other
376
+ # IAM Service components, see [Overview of the IAM Service](https://docs.us-phoenix-1.oraclecloud.com/Content/Identity/Concepts/overview.htm).
377
+ #
378
+ # You must specify your tenancy's OCID as the compartment ID in the request object (remember that the
379
+ # tenancy is simply the root compartment). Notice that IAM resources (users, groups, compartments, and
380
+ # some policies) reside within the tenancy itself, unlike cloud resources such as compute instances,
381
+ # which typically reside within compartments inside the tenancy. For information about OCIDs, see
382
+ # [Resource Identifiers](https://docs.us-phoenix-1.oraclecloud.com/Content/General/Concepts/identifiers.htm).
383
+ #
384
+ # You must also specify a *name* for the user, which must be unique across all users in your tenancy
385
+ # and cannot be changed. Allowed characters: No spaces. Only letters, numerals, hyphens, periods,
386
+ # underscores, +, and @. If you specify a name that's already in use, you'll get a 409 error.
387
+ # This name will be the user's login to the Console. You might want to pick a
388
+ # name that your company's own identity system (e.g., Active Directory, LDAP, etc.) already uses.
389
+ # If you delete a user and then create a new user with the same name, they'll be considered different
390
+ # users because they have different OCIDs.
391
+ #
392
+ # You must also specify a *description* for the user (although it can be an empty string).
393
+ # It does not have to be unique, and you can change it anytime with
394
+ # {#update_user update_user}. You can use the field to provide the user's
395
+ # full name, a description, a nickname, or other information to generally identify the user.
396
+ #
397
+ # After you send your request, the new object's `lifecycleState` will temporarily be CREATING. Before
398
+ # using the object, first make sure its `lifecycleState` has changed to ACTIVE.
399
+ #
400
+ # A new user has no permissions until you place the user in one or more groups (see
401
+ # {#add_user_to_group add_user_to_group}). If the user needs to
402
+ # access the Console, you need to provide the user a password (see
403
+ # {#create_or_reset_ui_password create_or_reset_ui_password}).
404
+ # If the user needs to access the Oracle Bare Metal Cloud Services REST API, you need to upload a
405
+ # public API signing key for that user (see
406
+ # [Required Keys and OCIDs](https://docs.us-phoenix-1.oraclecloud.com/Content/API/Concepts/apisigningkey.htm) and also
407
+ # {#upload_api_key upload_api_key}).
408
+ #
409
+ # **Important:** Make sure to inform the new user which compartment(s) they have access to.
410
+ #
411
+ # @param [CreateUserDetails] create_user_details Request object for creating a new user.
412
+ # @param [Hash] opts the optional parameters
413
+ # @option opts [String] :opc_retry_token A token that uniquely identifies a request so it can be retried in case of a timeout or
414
+ # server error without risk of executing that same action again. Retry tokens expire after 24
415
+ # hours, but can be invalidated before then due to conflicting operations (e.g., if a resource
416
+ # has been deleted and purged from the system, then a retry of the original creation request
417
+ # may be rejected).
418
+ #
419
+ # @return [Response] A Response object with data of type OracleBMC::Identity::Models::User
420
+ def create_user(create_user_details, opts = {})
421
+ logger.debug "Calling operation IdentityClient#create_user." if logger
422
+
423
+ fail "Missing the required parameter 'create_user_details' when calling create_user." if create_user_details.nil?
424
+
425
+ path = "/users/"
426
+
427
+ # Query Params
428
+ query_params = {}
429
+
430
+ # Header Params
431
+ header_params = {}
432
+ header_params['accept'] = 'application/json'
433
+ header_params['content-type'] = 'application/json'
434
+ header_params[:'opc-retry-token'] = opts[:'opc_retry_token'] if opts[:'opc_retry_token']
435
+
436
+ post_body = @api_client.object_to_http_body(create_user_details)
437
+
438
+ return @api_client.call_api(
439
+ :POST,
440
+ path,
441
+ endpoint,
442
+ :header_params => header_params,
443
+ :query_params => query_params,
444
+ :body => post_body,
445
+ :return_type => 'OracleBMC::Identity::Models::User')
446
+ end
447
+
448
+ # Deletes the specified API signing key for the specified user.
449
+ #
450
+ # Every user has permission to use this operation to delete a key for *their own user ID*. An
451
+ # administrator in your organization does not need to write a policy to give users this ability.
452
+ # To compare, administrators who have permission to the tenancy can use this operation to delete
453
+ # a key for any user, including themselves.
454
+ #
455
+ # @param [String] user_id The OCID of the user.
456
+ # @param [String] fingerprint The key's fingerprint.
457
+ # @param [Hash] opts the optional parameters
458
+ # @option opts [String] :if_match For optimistic concurrency control. In the PUT or DELETE call for a resource, set the `if-match`
459
+ # parameter to the value of the etag from a previous GET or POST response for that resource. The resource
460
+ # will be updated or deleted only if the etag you provide matches the resource's current etag value.
461
+ #
462
+ # @return [Response] A Response object with data of type nil
463
+ def delete_api_key(user_id, fingerprint, opts = {})
464
+ logger.debug "Calling operation IdentityClient#delete_api_key." if logger
465
+
466
+ fail "Missing the required parameter 'user_id' when calling delete_api_key." if user_id.nil?
467
+ fail "Missing the required parameter 'fingerprint' when calling delete_api_key." if fingerprint.nil?
468
+
469
+ path = "/users/{userId}/apiKeys/{fingerprint}".sub('{userId}', user_id.to_s).sub('{fingerprint}', fingerprint.to_s)
470
+
471
+ # Query Params
472
+ query_params = {}
473
+
474
+ # Header Params
475
+ header_params = {}
476
+ header_params['accept'] = 'application/json'
477
+ header_params['content-type'] = 'application/json'
478
+ header_params[:'if-match'] = opts[:'if_match'] if opts[:'if_match']
479
+
480
+ post_body = nil
481
+
482
+ return @api_client.call_api(
483
+ :DELETE,
484
+ path,
485
+ endpoint,
486
+ :header_params => header_params,
487
+ :query_params => query_params,
488
+ :body => post_body)
489
+ end
490
+
491
+ # Deletes the specified group. The group must be empty.
492
+ #
493
+ # @param [String] group_id The OCID of the group.
494
+ # @param [Hash] opts the optional parameters
495
+ # @option opts [String] :if_match For optimistic concurrency control. In the PUT or DELETE call for a resource, set the `if-match`
496
+ # parameter to the value of the etag from a previous GET or POST response for that resource. The resource
497
+ # will be updated or deleted only if the etag you provide matches the resource's current etag value.
498
+ #
499
+ # @return [Response] A Response object with data of type nil
500
+ def delete_group(group_id, opts = {})
501
+ logger.debug "Calling operation IdentityClient#delete_group." if logger
502
+
503
+ fail "Missing the required parameter 'group_id' when calling delete_group." if group_id.nil?
504
+
505
+ path = "/groups/{groupId}".sub('{groupId}', group_id.to_s)
506
+
507
+ # Query Params
508
+ query_params = {}
509
+
510
+ # Header Params
511
+ header_params = {}
512
+ header_params['accept'] = 'application/json'
513
+ header_params['content-type'] = 'application/json'
514
+ header_params[:'if-match'] = opts[:'if_match'] if opts[:'if_match']
515
+
516
+ post_body = nil
517
+
518
+ return @api_client.call_api(
519
+ :DELETE,
520
+ path,
521
+ endpoint,
522
+ :header_params => header_params,
523
+ :query_params => query_params,
524
+ :body => post_body)
525
+ end
526
+
527
+ # Deletes the specified policy. The deletion takes effect typically within 10 seconds.
528
+ # @param [String] policy_id The OCID of the policy.
529
+ # @param [Hash] opts the optional parameters
530
+ # @option opts [String] :if_match For optimistic concurrency control. In the PUT or DELETE call for a resource, set the `if-match`
531
+ # parameter to the value of the etag from a previous GET or POST response for that resource. The resource
532
+ # will be updated or deleted only if the etag you provide matches the resource's current etag value.
533
+ #
534
+ # @return [Response] A Response object with data of type nil
535
+ def delete_policy(policy_id, opts = {})
536
+ logger.debug "Calling operation IdentityClient#delete_policy." if logger
537
+
538
+ fail "Missing the required parameter 'policy_id' when calling delete_policy." if policy_id.nil?
539
+
540
+ path = "/policies/{policyId}".sub('{policyId}', policy_id.to_s)
541
+
542
+ # Query Params
543
+ query_params = {}
544
+
545
+ # Header Params
546
+ header_params = {}
547
+ header_params['accept'] = 'application/json'
548
+ header_params['content-type'] = 'application/json'
549
+ header_params[:'if-match'] = opts[:'if_match'] if opts[:'if_match']
550
+
551
+ post_body = nil
552
+
553
+ return @api_client.call_api(
554
+ :DELETE,
555
+ path,
556
+ endpoint,
557
+ :header_params => header_params,
558
+ :query_params => query_params,
559
+ :body => post_body)
560
+ end
561
+
562
+ # Deletes the specified Swift password for the specified user.
563
+ #
564
+ # @param [String] user_id The OCID of the user.
565
+ # @param [String] swift_password_id The OCID of the Swift password.
566
+ # @param [Hash] opts the optional parameters
567
+ # @option opts [String] :if_match For optimistic concurrency control. In the PUT or DELETE call for a resource, set the `if-match`
568
+ # parameter to the value of the etag from a previous GET or POST response for that resource. The resource
569
+ # will be updated or deleted only if the etag you provide matches the resource's current etag value.
570
+ #
571
+ # @return [Response] A Response object with data of type nil
572
+ def delete_swift_password(user_id, swift_password_id, opts = {})
573
+ logger.debug "Calling operation IdentityClient#delete_swift_password." if logger
574
+
575
+ fail "Missing the required parameter 'user_id' when calling delete_swift_password." if user_id.nil?
576
+ fail "Missing the required parameter 'swift_password_id' when calling delete_swift_password." if swift_password_id.nil?
577
+
578
+ path = "/users/{userId}/swiftPasswords/{swiftPasswordId}".sub('{userId}', user_id.to_s).sub('{swiftPasswordId}', swift_password_id.to_s)
579
+
580
+ # Query Params
581
+ query_params = {}
582
+
583
+ # Header Params
584
+ header_params = {}
585
+ header_params['accept'] = 'application/json'
586
+ header_params['content-type'] = 'application/json'
587
+ header_params[:'if-match'] = opts[:'if_match'] if opts[:'if_match']
588
+
589
+ post_body = nil
590
+
591
+ return @api_client.call_api(
592
+ :DELETE,
593
+ path,
594
+ endpoint,
595
+ :header_params => header_params,
596
+ :query_params => query_params,
597
+ :body => post_body)
598
+ end
599
+
600
+ # Deletes the specified user. The user must not be in any groups.
601
+ # @param [String] user_id The OCID of the user.
602
+ # @param [Hash] opts the optional parameters
603
+ # @option opts [String] :if_match For optimistic concurrency control. In the PUT or DELETE call for a resource, set the `if-match`
604
+ # parameter to the value of the etag from a previous GET or POST response for that resource. The resource
605
+ # will be updated or deleted only if the etag you provide matches the resource's current etag value.
606
+ #
607
+ # @return [Response] A Response object with data of type nil
608
+ def delete_user(user_id, opts = {})
609
+ logger.debug "Calling operation IdentityClient#delete_user." if logger
610
+
611
+ fail "Missing the required parameter 'user_id' when calling delete_user." if user_id.nil?
612
+
613
+ path = "/users/{userId}".sub('{userId}', user_id.to_s)
614
+
615
+ # Query Params
616
+ query_params = {}
617
+
618
+ # Header Params
619
+ header_params = {}
620
+ header_params['accept'] = 'application/json'
621
+ header_params['content-type'] = 'application/json'
622
+ header_params[:'if-match'] = opts[:'if_match'] if opts[:'if_match']
623
+
624
+ post_body = nil
625
+
626
+ return @api_client.call_api(
627
+ :DELETE,
628
+ path,
629
+ endpoint,
630
+ :header_params => header_params,
631
+ :query_params => query_params,
632
+ :body => post_body)
633
+ end
634
+
635
+ # Gets the specified compartment's information.
636
+ #
637
+ # This operation does not return a list of all the resources inside the compartment. There is no single
638
+ # API operation that does that. Compartments can contain multiple types of resources (instances, block
639
+ # storage volumes, etc.). To find out what's in a compartment, you must call the \"List\" operation for
640
+ # each resource type and specify the compartment's OCID as a query parameter in the request. For example,
641
+ # call the {#list_instances list_instances} operation in the Cloud Compute
642
+ # Service or the {#list_volumes list_volumes} operation in Cloud Block Storage.
643
+ #
644
+ # @param [String] compartment_id The OCID of the compartment.
645
+ # @param [Hash] opts the optional parameters
646
+ # @return [Response] A Response object with data of type OracleBMC::Identity::Models::Compartment
647
+ def get_compartment(compartment_id, opts = {})
648
+ logger.debug "Calling operation IdentityClient#get_compartment." if logger
649
+
650
+ fail "Missing the required parameter 'compartment_id' when calling get_compartment." if compartment_id.nil?
651
+
652
+ path = "/compartments/{compartmentId}".sub('{compartmentId}', compartment_id.to_s)
653
+
654
+ # Query Params
655
+ query_params = {}
656
+
657
+ # Header Params
658
+ header_params = {}
659
+ header_params['accept'] = 'application/json'
660
+ header_params['content-type'] = 'application/json'
661
+
662
+ post_body = nil
663
+
664
+ return @api_client.call_api(
665
+ :GET,
666
+ path,
667
+ endpoint,
668
+ :header_params => header_params,
669
+ :query_params => query_params,
670
+ :body => post_body,
671
+ :return_type => 'OracleBMC::Identity::Models::Compartment')
672
+ end
673
+
674
+ # Gets the specified group's information.
675
+ #
676
+ # This operation does not return a list of all the users in the group. To do that, use
677
+ # {#list_user_group_memberships list_user_group_memberships} and
678
+ # provide the group's OCID as a query parameter in the request.
679
+ #
680
+ # @param [String] group_id The OCID of the group.
681
+ # @param [Hash] opts the optional parameters
682
+ # @return [Response] A Response object with data of type OracleBMC::Identity::Models::Group
683
+ def get_group(group_id, opts = {})
684
+ logger.debug "Calling operation IdentityClient#get_group." if logger
685
+
686
+ fail "Missing the required parameter 'group_id' when calling get_group." if group_id.nil?
687
+
688
+ path = "/groups/{groupId}".sub('{groupId}', group_id.to_s)
689
+
690
+ # Query Params
691
+ query_params = {}
692
+
693
+ # Header Params
694
+ header_params = {}
695
+ header_params['accept'] = 'application/json'
696
+ header_params['content-type'] = 'application/json'
697
+
698
+ post_body = nil
699
+
700
+ return @api_client.call_api(
701
+ :GET,
702
+ path,
703
+ endpoint,
704
+ :header_params => header_params,
705
+ :query_params => query_params,
706
+ :body => post_body,
707
+ :return_type => 'OracleBMC::Identity::Models::Group')
708
+ end
709
+
710
+ # Gets the specified policy's information.
711
+ # @param [String] policy_id The OCID of the policy.
712
+ # @param [Hash] opts the optional parameters
713
+ # @return [Response] A Response object with data of type OracleBMC::Identity::Models::Policy
714
+ def get_policy(policy_id, opts = {})
715
+ logger.debug "Calling operation IdentityClient#get_policy." if logger
716
+
717
+ fail "Missing the required parameter 'policy_id' when calling get_policy." if policy_id.nil?
718
+
719
+ path = "/policies/{policyId}".sub('{policyId}', policy_id.to_s)
720
+
721
+ # Query Params
722
+ query_params = {}
723
+
724
+ # Header Params
725
+ header_params = {}
726
+ header_params['accept'] = 'application/json'
727
+ header_params['content-type'] = 'application/json'
728
+
729
+ post_body = nil
730
+
731
+ return @api_client.call_api(
732
+ :GET,
733
+ path,
734
+ endpoint,
735
+ :header_params => header_params,
736
+ :query_params => query_params,
737
+ :body => post_body,
738
+ :return_type => 'OracleBMC::Identity::Models::Policy')
739
+ end
740
+
741
+ # Gets the specified user's information.
742
+ # @param [String] user_id The OCID of the user.
743
+ # @param [Hash] opts the optional parameters
744
+ # @return [Response] A Response object with data of type OracleBMC::Identity::Models::User
745
+ def get_user(user_id, opts = {})
746
+ logger.debug "Calling operation IdentityClient#get_user." if logger
747
+
748
+ fail "Missing the required parameter 'user_id' when calling get_user." if user_id.nil?
749
+
750
+ path = "/users/{userId}".sub('{userId}', user_id.to_s)
751
+
752
+ # Query Params
753
+ query_params = {}
754
+
755
+ # Header Params
756
+ header_params = {}
757
+ header_params['accept'] = 'application/json'
758
+ header_params['content-type'] = 'application/json'
759
+
760
+ post_body = nil
761
+
762
+ return @api_client.call_api(
763
+ :GET,
764
+ path,
765
+ endpoint,
766
+ :header_params => header_params,
767
+ :query_params => query_params,
768
+ :body => post_body,
769
+ :return_type => 'OracleBMC::Identity::Models::User')
770
+ end
771
+
772
+ # Gets the specified UserGroupMembership's information.
773
+ # @param [String] user_group_membership_id The OCID of the userGroupMembership.
774
+ # @param [Hash] opts the optional parameters
775
+ # @return [Response] A Response object with data of type OracleBMC::Identity::Models::UserGroupMembership
776
+ def get_user_group_membership(user_group_membership_id, opts = {})
777
+ logger.debug "Calling operation IdentityClient#get_user_group_membership." if logger
778
+
779
+ fail "Missing the required parameter 'user_group_membership_id' when calling get_user_group_membership." if user_group_membership_id.nil?
780
+
781
+ path = "/userGroupMemberships/{userGroupMembershipId}".sub('{userGroupMembershipId}', user_group_membership_id.to_s)
782
+
783
+ # Query Params
784
+ query_params = {}
785
+
786
+ # Header Params
787
+ header_params = {}
788
+ header_params['accept'] = 'application/json'
789
+ header_params['content-type'] = 'application/json'
790
+
791
+ post_body = nil
792
+
793
+ return @api_client.call_api(
794
+ :GET,
795
+ path,
796
+ endpoint,
797
+ :header_params => header_params,
798
+ :query_params => query_params,
799
+ :body => post_body,
800
+ :return_type => 'OracleBMC::Identity::Models::UserGroupMembership')
801
+ end
802
+
803
+ # Lists the API signing keys for the specified user. A user can have a maximum of three keys.
804
+ #
805
+ # Every user has permission to use this API call for *their own user ID*. An administrator in your
806
+ # organization does not need to write a policy to give users this ability.
807
+ #
808
+ # @param [String] user_id The OCID of the user.
809
+ # @param [Hash] opts the optional parameters
810
+ # @return [Response] A Response object with data of type Array<OracleBMC::Identity::Models::ApiKey>
811
+ def list_api_keys(user_id, opts = {})
812
+ logger.debug "Calling operation IdentityClient#list_api_keys." if logger
813
+
814
+ fail "Missing the required parameter 'user_id' when calling list_api_keys." if user_id.nil?
815
+
816
+ path = "/users/{userId}/apiKeys/".sub('{userId}', user_id.to_s)
817
+
818
+ # Query Params
819
+ query_params = {}
820
+
821
+ # Header Params
822
+ header_params = {}
823
+ header_params['accept'] = 'application/json'
824
+ header_params['content-type'] = 'application/json'
825
+
826
+ post_body = nil
827
+
828
+ return @api_client.call_api(
829
+ :GET,
830
+ path,
831
+ endpoint,
832
+ :header_params => header_params,
833
+ :query_params => query_params,
834
+ :body => post_body,
835
+ :return_type => 'Array<OracleBMC::Identity::Models::ApiKey>')
836
+ end
837
+
838
+ # Lists the Availability Domains in your tenancy. Specify the OCID of either the tenancy or another
839
+ # of your compartments as the value for the compartment ID (remember that the tenancy is simply the root compartment).
840
+ # See [Where to Get the Tenancy's OCID and User's OCID](https://docs.us-phoenix-1.oraclecloud.com/Content/API/Concepts/apisigningkey.htm#five).
841
+ #
842
+ # @param [String] compartment_id The OCID of the compartment (remember that the tenancy is simply the root compartment).
843
+ #
844
+ # @param [Hash] opts the optional parameters
845
+ # @return [Response] A Response object with data of type Array<OracleBMC::Identity::Models::AvailabilityDomain>
846
+ def list_availability_domains(compartment_id, opts = {})
847
+ logger.debug "Calling operation IdentityClient#list_availability_domains." if logger
848
+
849
+ fail "Missing the required parameter 'compartment_id' when calling list_availability_domains." if compartment_id.nil?
850
+
851
+ path = "/availabilityDomains/"
852
+
853
+ # Query Params
854
+ query_params = {}
855
+ query_params[:'compartmentId'] = compartment_id
856
+
857
+ # Header Params
858
+ header_params = {}
859
+ header_params['accept'] = 'application/json'
860
+ header_params['content-type'] = 'application/json'
861
+
862
+ post_body = nil
863
+
864
+ return @api_client.call_api(
865
+ :GET,
866
+ path,
867
+ endpoint,
868
+ :header_params => header_params,
869
+ :query_params => query_params,
870
+ :body => post_body,
871
+ :return_type => 'Array<OracleBMC::Identity::Models::AvailabilityDomain>')
872
+ end
873
+
874
+ # Lists the compartments in your tenancy. You must specify your tenancy's OCID as the value
875
+ # for the compartment ID (remember that the tenancy is simply the root compartment).
876
+ # See [Where to Get the Tenancy's OCID and User's OCID](https://docs.us-phoenix-1.oraclecloud.com/Content/API/Concepts/apisigningkey.htm#five).
877
+ #
878
+ # To use this and other API operations, you must be authorized in an IAM policy. If you're not authorized,
879
+ # talk to an administrator. If you're an administrator who needs to write policies to give users access, see
880
+ # [Getting Started with Policies](https://docs.us-phoenix-1.oraclecloud.com/Content/Identity/Concepts/policygetstarted.htm).
881
+ #
882
+ # @param [String] compartment_id The OCID of the compartment (remember that the tenancy is simply the root compartment).
883
+ #
884
+ # @param [Hash] opts the optional parameters
885
+ # @option opts [String] :page The value of the `opc-next-page` response header from the previous \&quot;List\&quot; call.
886
+ #
887
+ # @option opts [Integer] :limit The maximum number of items to return in a paginated \&quot;List\&quot; call.
888
+ #
889
+ # @return [Response] A Response object with data of type Array<OracleBMC::Identity::Models::Compartment>
890
+ def list_compartments(compartment_id, opts = {})
891
+ logger.debug "Calling operation IdentityClient#list_compartments." if logger
892
+
893
+ fail "Missing the required parameter 'compartment_id' when calling list_compartments." if compartment_id.nil?
894
+
895
+ path = "/compartments/"
896
+
897
+ # Query Params
898
+ query_params = {}
899
+ query_params[:'compartmentId'] = compartment_id
900
+ query_params[:'page'] = opts[:'page'] if opts[:'page']
901
+ query_params[:'limit'] = opts[:'limit'] if opts[:'limit']
902
+
903
+ # Header Params
904
+ header_params = {}
905
+ header_params['accept'] = 'application/json'
906
+ header_params['content-type'] = 'application/json'
907
+
908
+ post_body = nil
909
+
910
+ return @api_client.call_api(
911
+ :GET,
912
+ path,
913
+ endpoint,
914
+ :header_params => header_params,
915
+ :query_params => query_params,
916
+ :body => post_body,
917
+ :return_type => 'Array<OracleBMC::Identity::Models::Compartment>')
918
+ end
919
+
920
+ # Lists the groups in your tenancy. You must specify your tenancy's OCID as the value for
921
+ # the compartment ID (remember that the tenancy is simply the root compartment).
922
+ # See [Where to Get the Tenancy's OCID and User's OCID](https://docs.us-phoenix-1.oraclecloud.com/Content/API/Concepts/apisigningkey.htm#five).
923
+ #
924
+ # @param [String] compartment_id The OCID of the compartment (remember that the tenancy is simply the root compartment).
925
+ #
926
+ # @param [Hash] opts the optional parameters
927
+ # @option opts [String] :page The value of the `opc-next-page` response header from the previous \&quot;List\&quot; call.
928
+ #
929
+ # @option opts [Integer] :limit The maximum number of items to return in a paginated \&quot;List\&quot; call.
930
+ #
931
+ # @return [Response] A Response object with data of type Array<OracleBMC::Identity::Models::Group>
932
+ def list_groups(compartment_id, opts = {})
933
+ logger.debug "Calling operation IdentityClient#list_groups." if logger
934
+
935
+ fail "Missing the required parameter 'compartment_id' when calling list_groups." if compartment_id.nil?
936
+
937
+ path = "/groups/"
938
+
939
+ # Query Params
940
+ query_params = {}
941
+ query_params[:'compartmentId'] = compartment_id
942
+ query_params[:'page'] = opts[:'page'] if opts[:'page']
943
+ query_params[:'limit'] = opts[:'limit'] if opts[:'limit']
944
+
945
+ # Header Params
946
+ header_params = {}
947
+ header_params['accept'] = 'application/json'
948
+ header_params['content-type'] = 'application/json'
949
+
950
+ post_body = nil
951
+
952
+ return @api_client.call_api(
953
+ :GET,
954
+ path,
955
+ endpoint,
956
+ :header_params => header_params,
957
+ :query_params => query_params,
958
+ :body => post_body,
959
+ :return_type => 'Array<OracleBMC::Identity::Models::Group>')
960
+ end
961
+
962
+ # Lists the policies in the specified compartment (either the tenancy or another of your compartments).
963
+ # See [Where to Get the Tenancy's OCID and User's OCID](https://docs.us-phoenix-1.oraclecloud.com/Content/API/Concepts/apisigningkey.htm#five).
964
+ #
965
+ # To determine which policies apply to a particular group or compartment, you must view the individual
966
+ # statements inside all your policies. There isn't a way to automatically obtain that information via the API.
967
+ #
968
+ # @param [String] compartment_id The OCID of the compartment (remember that the tenancy is simply the root compartment).
969
+ #
970
+ # @param [Hash] opts the optional parameters
971
+ # @option opts [String] :page The value of the `opc-next-page` response header from the previous \&quot;List\&quot; call.
972
+ #
973
+ # @option opts [Integer] :limit The maximum number of items to return in a paginated \&quot;List\&quot; call.
974
+ #
975
+ # @return [Response] A Response object with data of type Array<OracleBMC::Identity::Models::Policy>
976
+ def list_policies(compartment_id, opts = {})
977
+ logger.debug "Calling operation IdentityClient#list_policies." if logger
978
+
979
+ fail "Missing the required parameter 'compartment_id' when calling list_policies." if compartment_id.nil?
980
+
981
+ path = "/policies/"
982
+
983
+ # Query Params
984
+ query_params = {}
985
+ query_params[:'compartmentId'] = compartment_id
986
+ query_params[:'page'] = opts[:'page'] if opts[:'page']
987
+ query_params[:'limit'] = opts[:'limit'] if opts[:'limit']
988
+
989
+ # Header Params
990
+ header_params = {}
991
+ header_params['accept'] = 'application/json'
992
+ header_params['content-type'] = 'application/json'
993
+
994
+ post_body = nil
995
+
996
+ return @api_client.call_api(
997
+ :GET,
998
+ path,
999
+ endpoint,
1000
+ :header_params => header_params,
1001
+ :query_params => query_params,
1002
+ :body => post_body,
1003
+ :return_type => 'Array<OracleBMC::Identity::Models::Policy>')
1004
+ end
1005
+
1006
+ # Lists the Swift passwords for the specified user. The returned object contains the password's OCID, but not
1007
+ # the password itself. The actual password is returned only upon creation.
1008
+ #
1009
+ # @param [String] user_id The OCID of the user.
1010
+ # @param [Hash] opts the optional parameters
1011
+ # @return [Response] A Response object with data of type Array<OracleBMC::Identity::Models::SwiftPassword>
1012
+ def list_swift_passwords(user_id, opts = {})
1013
+ logger.debug "Calling operation IdentityClient#list_swift_passwords." if logger
1014
+
1015
+ fail "Missing the required parameter 'user_id' when calling list_swift_passwords." if user_id.nil?
1016
+
1017
+ path = "/users/{userId}/swiftPasswords/".sub('{userId}', user_id.to_s)
1018
+
1019
+ # Query Params
1020
+ query_params = {}
1021
+
1022
+ # Header Params
1023
+ header_params = {}
1024
+ header_params['accept'] = 'application/json'
1025
+ header_params['content-type'] = 'application/json'
1026
+
1027
+ post_body = nil
1028
+
1029
+ return @api_client.call_api(
1030
+ :GET,
1031
+ path,
1032
+ endpoint,
1033
+ :header_params => header_params,
1034
+ :query_params => query_params,
1035
+ :body => post_body,
1036
+ :return_type => 'Array<OracleBMC::Identity::Models::SwiftPassword>')
1037
+ end
1038
+
1039
+ # Lists the `UserGroupMembership` objects in your tenancy. You must specify your tenancy's OCID
1040
+ # as the value for the compartment ID
1041
+ # (see [Where to Get the Tenancy's OCID and User's OCID](https://docs.us-phoenix-1.oraclecloud.com/Content/API/Concepts/apisigningkey.htm#five)).
1042
+ # You must also then filter the list in one of these ways:
1043
+ #
1044
+ # - You can limit the results to just the memberships for a given user by specifying a `userId`.
1045
+ # - Similarly, you can limit the results to just the memberships for a given group by specifying a `groupId`.
1046
+ # - You can set both the `userId` and `groupId` to determine if the specified user is in the specified group.
1047
+ # If the answer is no, the response is an empty list.
1048
+ #
1049
+ # To use this and other API operations, you must be authorized in an IAM policy. If you're not authorized,
1050
+ # talk to an administrator. If you're an administrator who needs to write policies to give users access, see
1051
+ # [Getting Started with Policies](https://docs.us-phoenix-1.oraclecloud.com/Content/Identity/Concepts/policygetstarted.htm).
1052
+ #
1053
+ # @param [String] compartment_id The OCID of the compartment (remember that the tenancy is simply the root compartment).
1054
+ #
1055
+ # @param [Hash] opts the optional parameters
1056
+ # @option opts [String] :user_id The OCID of the user.
1057
+ # @option opts [String] :group_id The OCID of the group.
1058
+ # @option opts [String] :page The value of the `opc-next-page` response header from the previous \&quot;List\&quot; call.
1059
+ #
1060
+ # @option opts [Integer] :limit The maximum number of items to return in a paginated \&quot;List\&quot; call.
1061
+ #
1062
+ # @return [Response] A Response object with data of type Array<OracleBMC::Identity::Models::UserGroupMembership>
1063
+ def list_user_group_memberships(compartment_id, opts = {})
1064
+ logger.debug "Calling operation IdentityClient#list_user_group_memberships." if logger
1065
+
1066
+ fail "Missing the required parameter 'compartment_id' when calling list_user_group_memberships." if compartment_id.nil?
1067
+
1068
+ path = "/userGroupMemberships/"
1069
+
1070
+ # Query Params
1071
+ query_params = {}
1072
+ query_params[:'compartmentId'] = compartment_id
1073
+ query_params[:'userId'] = opts[:'user_id'] if opts[:'user_id']
1074
+ query_params[:'groupId'] = opts[:'group_id'] if opts[:'group_id']
1075
+ query_params[:'page'] = opts[:'page'] if opts[:'page']
1076
+ query_params[:'limit'] = opts[:'limit'] if opts[:'limit']
1077
+
1078
+ # Header Params
1079
+ header_params = {}
1080
+ header_params['accept'] = 'application/json'
1081
+ header_params['content-type'] = 'application/json'
1082
+
1083
+ post_body = nil
1084
+
1085
+ return @api_client.call_api(
1086
+ :GET,
1087
+ path,
1088
+ endpoint,
1089
+ :header_params => header_params,
1090
+ :query_params => query_params,
1091
+ :body => post_body,
1092
+ :return_type => 'Array<OracleBMC::Identity::Models::UserGroupMembership>')
1093
+ end
1094
+
1095
+ # Lists the users in your tenancy. You must specify your tenancy's OCID as the value for the
1096
+ # compartment ID (remember that the tenancy is simply the root compartment).
1097
+ # See [Where to Get the Tenancy's OCID and User's OCID](https://docs.us-phoenix-1.oraclecloud.com/Content/API/Concepts/apisigningkey.htm#five).
1098
+ #
1099
+ # @param [String] compartment_id The OCID of the compartment (remember that the tenancy is simply the root compartment).
1100
+ #
1101
+ # @param [Hash] opts the optional parameters
1102
+ # @option opts [String] :page The value of the `opc-next-page` response header from the previous \&quot;List\&quot; call.
1103
+ #
1104
+ # @option opts [Integer] :limit The maximum number of items to return in a paginated \&quot;List\&quot; call.
1105
+ #
1106
+ # @return [Response] A Response object with data of type Array<OracleBMC::Identity::Models::User>
1107
+ def list_users(compartment_id, opts = {})
1108
+ logger.debug "Calling operation IdentityClient#list_users." if logger
1109
+
1110
+ fail "Missing the required parameter 'compartment_id' when calling list_users." if compartment_id.nil?
1111
+
1112
+ path = "/users/"
1113
+
1114
+ # Query Params
1115
+ query_params = {}
1116
+ query_params[:'compartmentId'] = compartment_id
1117
+ query_params[:'page'] = opts[:'page'] if opts[:'page']
1118
+ query_params[:'limit'] = opts[:'limit'] if opts[:'limit']
1119
+
1120
+ # Header Params
1121
+ header_params = {}
1122
+ header_params['accept'] = 'application/json'
1123
+ header_params['content-type'] = 'application/json'
1124
+
1125
+ post_body = nil
1126
+
1127
+ return @api_client.call_api(
1128
+ :GET,
1129
+ path,
1130
+ endpoint,
1131
+ :header_params => header_params,
1132
+ :query_params => query_params,
1133
+ :body => post_body,
1134
+ :return_type => 'Array<OracleBMC::Identity::Models::User>')
1135
+ end
1136
+
1137
+ # Removes a user from a group by deleting the corresponding `UserGroupMembership`.
1138
+ # @param [String] user_group_membership_id The OCID of the userGroupMembership.
1139
+ # @param [Hash] opts the optional parameters
1140
+ # @option opts [String] :if_match For optimistic concurrency control. In the PUT or DELETE call for a resource, set the `if-match`
1141
+ # parameter to the value of the etag from a previous GET or POST response for that resource. The resource
1142
+ # will be updated or deleted only if the etag you provide matches the resource&#39;s current etag value.
1143
+ #
1144
+ # @return [Response] A Response object with data of type nil
1145
+ def remove_user_from_group(user_group_membership_id, opts = {})
1146
+ logger.debug "Calling operation IdentityClient#remove_user_from_group." if logger
1147
+
1148
+ fail "Missing the required parameter 'user_group_membership_id' when calling remove_user_from_group." if user_group_membership_id.nil?
1149
+
1150
+ path = "/userGroupMemberships/{userGroupMembershipId}".sub('{userGroupMembershipId}', user_group_membership_id.to_s)
1151
+
1152
+ # Query Params
1153
+ query_params = {}
1154
+
1155
+ # Header Params
1156
+ header_params = {}
1157
+ header_params['accept'] = 'application/json'
1158
+ header_params['content-type'] = 'application/json'
1159
+ header_params[:'if-match'] = opts[:'if_match'] if opts[:'if_match']
1160
+
1161
+ post_body = nil
1162
+
1163
+ return @api_client.call_api(
1164
+ :DELETE,
1165
+ path,
1166
+ endpoint,
1167
+ :header_params => header_params,
1168
+ :query_params => query_params,
1169
+ :body => post_body)
1170
+ end
1171
+
1172
+ # Updates the specified compartment's description.
1173
+ # @param [String] compartment_id The OCID of the compartment.
1174
+ # @param [UpdateCompartmentDetails] update_compartment_details Request object for updating a compartment.
1175
+ # @param [Hash] opts the optional parameters
1176
+ # @option opts [String] :if_match For optimistic concurrency control. In the PUT or DELETE call for a resource, set the `if-match`
1177
+ # parameter to the value of the etag from a previous GET or POST response for that resource. The resource
1178
+ # will be updated or deleted only if the etag you provide matches the resource&#39;s current etag value.
1179
+ #
1180
+ # @return [Response] A Response object with data of type OracleBMC::Identity::Models::Compartment
1181
+ def update_compartment(compartment_id, update_compartment_details, opts = {})
1182
+ logger.debug "Calling operation IdentityClient#update_compartment." if logger
1183
+
1184
+ fail "Missing the required parameter 'compartment_id' when calling update_compartment." if compartment_id.nil?
1185
+ fail "Missing the required parameter 'update_compartment_details' when calling update_compartment." if update_compartment_details.nil?
1186
+
1187
+ path = "/compartments/{compartmentId}".sub('{compartmentId}', compartment_id.to_s)
1188
+
1189
+ # Query Params
1190
+ query_params = {}
1191
+
1192
+ # Header Params
1193
+ header_params = {}
1194
+ header_params['accept'] = 'application/json'
1195
+ header_params['content-type'] = 'application/json'
1196
+ header_params[:'if-match'] = opts[:'if_match'] if opts[:'if_match']
1197
+
1198
+ post_body = @api_client.object_to_http_body(update_compartment_details)
1199
+
1200
+ return @api_client.call_api(
1201
+ :PUT,
1202
+ path,
1203
+ endpoint,
1204
+ :header_params => header_params,
1205
+ :query_params => query_params,
1206
+ :body => post_body,
1207
+ :return_type => 'OracleBMC::Identity::Models::Compartment')
1208
+ end
1209
+
1210
+ # Updates the specified group.
1211
+ # @param [String] group_id The OCID of the group.
1212
+ # @param [UpdateGroupDetails] update_group_details Request object for updating a group.
1213
+ # @param [Hash] opts the optional parameters
1214
+ # @option opts [String] :if_match For optimistic concurrency control. In the PUT or DELETE call for a resource, set the `if-match`
1215
+ # parameter to the value of the etag from a previous GET or POST response for that resource. The resource
1216
+ # will be updated or deleted only if the etag you provide matches the resource&#39;s current etag value.
1217
+ #
1218
+ # @return [Response] A Response object with data of type OracleBMC::Identity::Models::Group
1219
+ def update_group(group_id, update_group_details, opts = {})
1220
+ logger.debug "Calling operation IdentityClient#update_group." if logger
1221
+
1222
+ fail "Missing the required parameter 'group_id' when calling update_group." if group_id.nil?
1223
+ fail "Missing the required parameter 'update_group_details' when calling update_group." if update_group_details.nil?
1224
+
1225
+ path = "/groups/{groupId}".sub('{groupId}', group_id.to_s)
1226
+
1227
+ # Query Params
1228
+ query_params = {}
1229
+
1230
+ # Header Params
1231
+ header_params = {}
1232
+ header_params['accept'] = 'application/json'
1233
+ header_params['content-type'] = 'application/json'
1234
+ header_params[:'if-match'] = opts[:'if_match'] if opts[:'if_match']
1235
+
1236
+ post_body = @api_client.object_to_http_body(update_group_details)
1237
+
1238
+ return @api_client.call_api(
1239
+ :PUT,
1240
+ path,
1241
+ endpoint,
1242
+ :header_params => header_params,
1243
+ :query_params => query_params,
1244
+ :body => post_body,
1245
+ :return_type => 'OracleBMC::Identity::Models::Group')
1246
+ end
1247
+
1248
+ # Updates the specified policy. You can update the description or the policy statements themselves.
1249
+ #
1250
+ # Policy changes take effect typically within 10 seconds.
1251
+ #
1252
+ # @param [String] policy_id The OCID of the policy.
1253
+ # @param [UpdatePolicyDetails] update_policy_details Request object for updating a policy.
1254
+ # @param [Hash] opts the optional parameters
1255
+ # @option opts [String] :if_match For optimistic concurrency control. In the PUT or DELETE call for a resource, set the `if-match`
1256
+ # parameter to the value of the etag from a previous GET or POST response for that resource. The resource
1257
+ # will be updated or deleted only if the etag you provide matches the resource&#39;s current etag value.
1258
+ #
1259
+ # @return [Response] A Response object with data of type OracleBMC::Identity::Models::Policy
1260
+ def update_policy(policy_id, update_policy_details, opts = {})
1261
+ logger.debug "Calling operation IdentityClient#update_policy." if logger
1262
+
1263
+ fail "Missing the required parameter 'policy_id' when calling update_policy." if policy_id.nil?
1264
+ fail "Missing the required parameter 'update_policy_details' when calling update_policy." if update_policy_details.nil?
1265
+
1266
+ path = "/policies/{policyId}".sub('{policyId}', policy_id.to_s)
1267
+
1268
+ # Query Params
1269
+ query_params = {}
1270
+
1271
+ # Header Params
1272
+ header_params = {}
1273
+ header_params['accept'] = 'application/json'
1274
+ header_params['content-type'] = 'application/json'
1275
+ header_params[:'if-match'] = opts[:'if_match'] if opts[:'if_match']
1276
+
1277
+ post_body = @api_client.object_to_http_body(update_policy_details)
1278
+
1279
+ return @api_client.call_api(
1280
+ :PUT,
1281
+ path,
1282
+ endpoint,
1283
+ :header_params => header_params,
1284
+ :query_params => query_params,
1285
+ :body => post_body,
1286
+ :return_type => 'OracleBMC::Identity::Models::Policy')
1287
+ end
1288
+
1289
+ # Updates the specified Swift password's description.
1290
+ #
1291
+ # @param [String] user_id The OCID of the user.
1292
+ # @param [String] swift_password_id The OCID of the Swift password.
1293
+ # @param [UpdateSwiftPasswordDetails] update_swift_password_details Request object for updating a Swift password.
1294
+ # @param [Hash] opts the optional parameters
1295
+ # @option opts [String] :if_match For optimistic concurrency control. In the PUT or DELETE call for a resource, set the `if-match`
1296
+ # parameter to the value of the etag from a previous GET or POST response for that resource. The resource
1297
+ # will be updated or deleted only if the etag you provide matches the resource&#39;s current etag value.
1298
+ #
1299
+ # @return [Response] A Response object with data of type OracleBMC::Identity::Models::SwiftPassword
1300
+ def update_swift_password(user_id, swift_password_id, update_swift_password_details, opts = {})
1301
+ logger.debug "Calling operation IdentityClient#update_swift_password." if logger
1302
+
1303
+ fail "Missing the required parameter 'user_id' when calling update_swift_password." if user_id.nil?
1304
+ fail "Missing the required parameter 'swift_password_id' when calling update_swift_password." if swift_password_id.nil?
1305
+ fail "Missing the required parameter 'update_swift_password_details' when calling update_swift_password." if update_swift_password_details.nil?
1306
+
1307
+ path = "/users/{userId}/swiftPasswords/{swiftPasswordId}".sub('{userId}', user_id.to_s).sub('{swiftPasswordId}', swift_password_id.to_s)
1308
+
1309
+ # Query Params
1310
+ query_params = {}
1311
+
1312
+ # Header Params
1313
+ header_params = {}
1314
+ header_params['accept'] = 'application/json'
1315
+ header_params['content-type'] = 'application/json'
1316
+ header_params[:'if-match'] = opts[:'if_match'] if opts[:'if_match']
1317
+
1318
+ post_body = @api_client.object_to_http_body(update_swift_password_details)
1319
+
1320
+ return @api_client.call_api(
1321
+ :PUT,
1322
+ path,
1323
+ endpoint,
1324
+ :header_params => header_params,
1325
+ :query_params => query_params,
1326
+ :body => post_body,
1327
+ :return_type => 'OracleBMC::Identity::Models::SwiftPassword')
1328
+ end
1329
+
1330
+ # Updates the description of the specified user.
1331
+ # @param [String] user_id The OCID of the user.
1332
+ # @param [UpdateUserDetails] update_user_details Request object for updating a user.
1333
+ # @param [Hash] opts the optional parameters
1334
+ # @option opts [String] :if_match For optimistic concurrency control. In the PUT or DELETE call for a resource, set the `if-match`
1335
+ # parameter to the value of the etag from a previous GET or POST response for that resource. The resource
1336
+ # will be updated or deleted only if the etag you provide matches the resource&#39;s current etag value.
1337
+ #
1338
+ # @return [Response] A Response object with data of type OracleBMC::Identity::Models::User
1339
+ def update_user(user_id, update_user_details, opts = {})
1340
+ logger.debug "Calling operation IdentityClient#update_user." if logger
1341
+
1342
+ fail "Missing the required parameter 'user_id' when calling update_user." if user_id.nil?
1343
+ fail "Missing the required parameter 'update_user_details' when calling update_user." if update_user_details.nil?
1344
+
1345
+ path = "/users/{userId}".sub('{userId}', user_id.to_s)
1346
+
1347
+ # Query Params
1348
+ query_params = {}
1349
+
1350
+ # Header Params
1351
+ header_params = {}
1352
+ header_params['accept'] = 'application/json'
1353
+ header_params['content-type'] = 'application/json'
1354
+ header_params[:'if-match'] = opts[:'if_match'] if opts[:'if_match']
1355
+
1356
+ post_body = @api_client.object_to_http_body(update_user_details)
1357
+
1358
+ return @api_client.call_api(
1359
+ :PUT,
1360
+ path,
1361
+ endpoint,
1362
+ :header_params => header_params,
1363
+ :query_params => query_params,
1364
+ :body => post_body,
1365
+ :return_type => 'OracleBMC::Identity::Models::User')
1366
+ end
1367
+
1368
+ # Updates the state of the specified user.
1369
+ #
1370
+ # @param [String] user_id The OCID of the user.
1371
+ # @param [UpdateStateDetails] update_state_details Request object for updating a user state.
1372
+ # @param [Hash] opts the optional parameters
1373
+ # @option opts [String] :if_match For optimistic concurrency control. In the PUT or DELETE call for a resource, set the `if-match`
1374
+ # parameter to the value of the etag from a previous GET or POST response for that resource. The resource
1375
+ # will be updated or deleted only if the etag you provide matches the resource&#39;s current etag value.
1376
+ #
1377
+ # @return [Response] A Response object with data of type OracleBMC::Identity::Models::User
1378
+ def update_user_state(user_id, update_state_details, opts = {})
1379
+ logger.debug "Calling operation IdentityClient#update_user_state." if logger
1380
+
1381
+ fail "Missing the required parameter 'user_id' when calling update_user_state." if user_id.nil?
1382
+ fail "Missing the required parameter 'update_state_details' when calling update_user_state." if update_state_details.nil?
1383
+
1384
+ path = "/users/{userId}/state/".sub('{userId}', user_id.to_s)
1385
+
1386
+ # Query Params
1387
+ query_params = {}
1388
+
1389
+ # Header Params
1390
+ header_params = {}
1391
+ header_params['accept'] = 'application/json'
1392
+ header_params['content-type'] = 'application/json'
1393
+ header_params[:'if-match'] = opts[:'if_match'] if opts[:'if_match']
1394
+
1395
+ post_body = @api_client.object_to_http_body(update_state_details)
1396
+
1397
+ return @api_client.call_api(
1398
+ :PUT,
1399
+ path,
1400
+ endpoint,
1401
+ :header_params => header_params,
1402
+ :query_params => query_params,
1403
+ :body => post_body,
1404
+ :return_type => 'OracleBMC::Identity::Models::User')
1405
+ end
1406
+
1407
+ # Uploads an API signing key for the specified user.
1408
+ #
1409
+ # Every user has permission to use this operation to upload a key for *their own user ID*. An
1410
+ # administrator in your organization does not need to write a policy to give users this ability.
1411
+ # To compare, administrators who have permission to the tenancy can use this operation to upload a
1412
+ # key for any user, including themselves.
1413
+ #
1414
+ # **Important:** Even though you have permission to upload an API key, you might not yet
1415
+ # have permission to do much else. If you try calling an operation unrelated to your own credential
1416
+ # management (e.g., `ListUsers`, `LaunchInstance`) and receive an \"unauthorized\" error,
1417
+ # check with an administrator to confirm which IAM Service group(s) you're in and what access
1418
+ # you have. Also confirm you're working in the correct compartment.
1419
+ #
1420
+ # After you send your request, the new object's `lifecycleState` will temporarily be CREATING. Before using
1421
+ # the object, first make sure its `lifecycleState` has changed to ACTIVE.
1422
+ #
1423
+ # @param [String] user_id The OCID of the user.
1424
+ # @param [CreateApiKeyDetails] create_api_key_details Request object for uploading an API key for a user.
1425
+ # @param [Hash] opts the optional parameters
1426
+ # @option opts [String] :opc_retry_token A token that uniquely identifies a request so it can be retried in case of a timeout or
1427
+ # server error without risk of executing that same action again. Retry tokens expire after 24
1428
+ # hours, but can be invalidated before then due to conflicting operations (e.g., if a resource
1429
+ # has been deleted and purged from the system, then a retry of the original creation request
1430
+ # may be rejected).
1431
+ #
1432
+ # @return [Response] A Response object with data of type OracleBMC::Identity::Models::ApiKey
1433
+ def upload_api_key(user_id, create_api_key_details, opts = {})
1434
+ logger.debug "Calling operation IdentityClient#upload_api_key." if logger
1435
+
1436
+ fail "Missing the required parameter 'user_id' when calling upload_api_key." if user_id.nil?
1437
+ fail "Missing the required parameter 'create_api_key_details' when calling upload_api_key." if create_api_key_details.nil?
1438
+
1439
+ path = "/users/{userId}/apiKeys/".sub('{userId}', user_id.to_s)
1440
+
1441
+ # Query Params
1442
+ query_params = {}
1443
+
1444
+ # Header Params
1445
+ header_params = {}
1446
+ header_params['accept'] = 'application/json'
1447
+ header_params['content-type'] = 'application/json'
1448
+ header_params[:'opc-retry-token'] = opts[:'opc_retry_token'] if opts[:'opc_retry_token']
1449
+
1450
+ post_body = @api_client.object_to_http_body(create_api_key_details)
1451
+
1452
+ return @api_client.call_api(
1453
+ :POST,
1454
+ path,
1455
+ endpoint,
1456
+ :header_params => header_params,
1457
+ :query_params => query_params,
1458
+ :body => post_body,
1459
+ :return_type => 'OracleBMC::Identity::Models::ApiKey')
1460
+ end
1461
+ end
1462
+ end