oci 2.1.0 → 2.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 (370) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +11 -3
  3. data/lib/oci.rb +6 -0
  4. data/lib/oci/api_client.rb +159 -134
  5. data/lib/oci/audit/audit.rb +3 -0
  6. data/lib/oci/audit/audit_client.rb +88 -40
  7. data/lib/oci/audit/audit_client_composite_operations.rb +64 -0
  8. data/lib/oci/audit/models/audit_event.rb +151 -200
  9. data/lib/oci/audit/models/configuration.rb +61 -38
  10. data/lib/oci/audit/models/update_configuration_details.rb +61 -38
  11. data/lib/oci/auth/util.rb +1 -1
  12. data/lib/oci/base_signer.rb +20 -29
  13. data/lib/oci/config.rb +9 -3
  14. data/lib/oci/core/blockstorage_client.rb +512 -269
  15. data/lib/oci/core/blockstorage_client_composite_operations.rb +342 -0
  16. data/lib/oci/core/compute_client.rb +959 -536
  17. data/lib/oci/core/compute_client_composite_operations.rb +738 -0
  18. data/lib/oci/core/core.rb +5 -0
  19. data/lib/oci/core/models/attach_boot_volume_details.rb +72 -57
  20. data/lib/oci/core/models/attach_i_scsi_volume_details.rb +76 -53
  21. data/lib/oci/core/models/attach_paravirtualized_volume_details.rb +69 -45
  22. data/lib/oci/core/models/attach_vnic_details.rb +79 -68
  23. data/lib/oci/core/models/attach_volume_details.rb +83 -74
  24. data/lib/oci/core/models/boot_volume.rb +119 -120
  25. data/lib/oci/core/models/boot_volume_attachment.rb +114 -111
  26. data/lib/oci/core/models/bulk_add_virtual_circuit_public_prefixes_details.rb +61 -38
  27. data/lib/oci/core/models/bulk_delete_virtual_circuit_public_prefixes_details.rb +61 -38
  28. data/lib/oci/core/models/capture_console_history_details.rb +81 -70
  29. data/lib/oci/core/models/connect_local_peering_gateways_details.rb +60 -38
  30. data/lib/oci/core/models/connect_remote_peering_connections_details.rb +67 -49
  31. data/lib/oci/core/models/console_history.rb +122 -123
  32. data/lib/oci/core/models/cpe.rb +82 -74
  33. data/lib/oci/core/models/create_cpe_details.rb +73 -58
  34. data/lib/oci/core/models/create_cross_connect_details.rb +98 -99
  35. data/lib/oci/core/models/create_cross_connect_group_details.rb +67 -48
  36. data/lib/oci/core/models/create_dhcp_details.rb +89 -84
  37. data/lib/oci/core/models/create_drg_attachment_details.rb +71 -56
  38. data/lib/oci/core/models/create_drg_details.rb +66 -47
  39. data/lib/oci/core/models/create_image_details.rb +108 -110
  40. data/lib/oci/core/models/create_instance_console_connection_details.rb +79 -69
  41. data/lib/oci/core/models/create_internet_gateway_details.rb +76 -65
  42. data/lib/oci/core/models/create_ip_sec_connection_details.rb +83 -76
  43. data/lib/oci/core/models/create_local_peering_gateway_details.rb +72 -57
  44. data/lib/oci/core/models/create_private_ip_details.rb +97 -94
  45. data/lib/oci/core/models/create_public_ip_details.rb +90 -77
  46. data/lib/oci/core/models/create_remote_peering_connection_details.rb +72 -57
  47. data/lib/oci/core/models/create_route_table_details.rb +90 -87
  48. data/lib/oci/core/models/create_security_list_details.rb +95 -96
  49. data/lib/oci/core/models/create_subnet_details.rb +133 -154
  50. data/lib/oci/core/models/create_vcn_details.rb +96 -93
  51. data/lib/oci/core/models/create_virtual_circuit_details.rb +136 -153
  52. data/lib/oci/core/models/create_virtual_circuit_public_prefix_details.rb +62 -39
  53. data/lib/oci/core/models/create_vnic_details.rb +99 -97
  54. data/lib/oci/core/models/create_volume_backup_details.rb +94 -85
  55. data/lib/oci/core/models/create_volume_backup_policy_assignment_details.rb +66 -47
  56. data/lib/oci/core/models/create_volume_details.rb +117 -130
  57. data/lib/oci/core/models/cross_connect.rb +120 -121
  58. data/lib/oci/core/models/cross_connect_group.rb +97 -82
  59. data/lib/oci/core/models/cross_connect_location.rb +65 -43
  60. data/lib/oci/core/models/cross_connect_mapping.rb +89 -81
  61. data/lib/oci/core/models/cross_connect_port_speed_shape.rb +68 -48
  62. data/lib/oci/core/models/cross_connect_status.rb +110 -87
  63. data/lib/oci/core/models/delete_virtual_circuit_public_prefix_details.rb +61 -38
  64. data/lib/oci/core/models/dhcp_dns_option.rb +85 -60
  65. data/lib/oci/core/models/dhcp_option.rb +62 -38
  66. data/lib/oci/core/models/dhcp_options.rb +119 -118
  67. data/lib/oci/core/models/dhcp_search_domain_option.rb +66 -44
  68. data/lib/oci/core/models/drg.rb +96 -81
  69. data/lib/oci/core/models/drg_attachment.rb +106 -99
  70. data/lib/oci/core/models/egress_security_rule.rb +89 -83
  71. data/lib/oci/core/models/export_image_details.rb +63 -41
  72. data/lib/oci/core/models/export_image_via_object_storage_tuple_details.rb +74 -59
  73. data/lib/oci/core/models/export_image_via_object_storage_uri_details.rb +65 -42
  74. data/lib/oci/core/models/fast_connect_provider_service.rb +155 -126
  75. data/lib/oci/core/models/get_public_ip_by_ip_address_details.rb +61 -39
  76. data/lib/oci/core/models/get_public_ip_by_private_ip_id_details.rb +61 -39
  77. data/lib/oci/core/models/i_scsi_volume_attachment.rb +117 -105
  78. data/lib/oci/core/models/icmp_options.rb +63 -41
  79. data/lib/oci/core/models/image.rb +170 -185
  80. data/lib/oci/core/models/image_source_details.rb +79 -60
  81. data/lib/oci/core/models/image_source_via_object_storage_tuple_details.rb +77 -62
  82. data/lib/oci/core/models/image_source_via_object_storage_uri_details.rb +67 -44
  83. data/lib/oci/core/models/ingress_security_rule.rb +89 -83
  84. data/lib/oci/core/models/instance.rb +190 -211
  85. data/lib/oci/core/models/instance_console_connection.rb +118 -117
  86. data/lib/oci/core/models/instance_credentials.rb +63 -41
  87. data/lib/oci/core/models/instance_source_details.rb +64 -41
  88. data/lib/oci/core/models/instance_source_via_boot_volume_details.rb +64 -41
  89. data/lib/oci/core/models/instance_source_via_image_details.rb +70 -51
  90. data/lib/oci/core/models/internet_gateway.rb +107 -100
  91. data/lib/oci/core/models/ip_sec_connection.rb +113 -110
  92. data/lib/oci/core/models/ip_sec_connection_device_config.rb +73 -59
  93. data/lib/oci/core/models/ip_sec_connection_device_status.rb +75 -61
  94. data/lib/oci/core/models/launch_instance_details.rb +163 -189
  95. data/lib/oci/core/models/launch_options.rb +130 -93
  96. data/lib/oci/core/models/letter_of_authority.rb +105 -100
  97. data/lib/oci/core/models/local_peering_gateway.rb +141 -140
  98. data/lib/oci/core/models/paravirtualized_volume_attachment.rb +83 -60
  99. data/lib/oci/core/models/peer_region_for_remote_peering.rb +61 -37
  100. data/lib/oci/core/models/port_range.rb +65 -42
  101. data/lib/oci/core/models/private_ip.rb +131 -151
  102. data/lib/oci/core/models/public_ip.rb +160 -149
  103. data/lib/oci/core/models/remote_peering_connection.rb +148 -151
  104. data/lib/oci/core/models/route_rule.rb +68 -50
  105. data/lib/oci/core/models/route_table.rb +120 -121
  106. data/lib/oci/core/models/security_list.rb +125 -130
  107. data/lib/oci/core/models/shape.rb +60 -36
  108. data/lib/oci/core/models/subnet.rb +183 -220
  109. data/lib/oci/core/models/tcp_options.rb +67 -49
  110. data/lib/oci/core/models/tunnel_config.rb +76 -62
  111. data/lib/oci/core/models/tunnel_status.rb +94 -77
  112. data/lib/oci/core/models/udp_options.rb +67 -49
  113. data/lib/oci/core/models/update_boot_volume_details.rb +62 -39
  114. data/lib/oci/core/models/update_console_history_details.rb +76 -61
  115. data/lib/oci/core/models/update_cpe_details.rb +62 -39
  116. data/lib/oci/core/models/update_cross_connect_details.rb +68 -50
  117. data/lib/oci/core/models/update_cross_connect_group_details.rb +62 -39
  118. data/lib/oci/core/models/update_dhcp_details.rb +80 -67
  119. data/lib/oci/core/models/update_drg_attachment_details.rb +62 -39
  120. data/lib/oci/core/models/update_drg_details.rb +62 -39
  121. data/lib/oci/core/models/update_image_details.rb +77 -62
  122. data/lib/oci/core/models/update_instance_details.rb +77 -62
  123. data/lib/oci/core/models/update_internet_gateway_details.rb +67 -48
  124. data/lib/oci/core/models/update_ip_sec_connection_details.rb +62 -39
  125. data/lib/oci/core/models/update_local_peering_gateway_details.rb +62 -39
  126. data/lib/oci/core/models/update_private_ip_details.rb +90 -83
  127. data/lib/oci/core/models/update_public_ip_details.rb +68 -49
  128. data/lib/oci/core/models/update_remote_peering_connection_details.rb +62 -39
  129. data/lib/oci/core/models/update_route_table_details.rb +81 -70
  130. data/lib/oci/core/models/update_security_list_details.rb +86 -79
  131. data/lib/oci/core/models/update_subnet_details.rb +76 -61
  132. data/lib/oci/core/models/update_vcn_details.rb +76 -61
  133. data/lib/oci/core/models/update_virtual_circuit_details.rb +114 -115
  134. data/lib/oci/core/models/update_vnic_details.rb +75 -60
  135. data/lib/oci/core/models/update_volume_backup_details.rb +76 -61
  136. data/lib/oci/core/models/update_volume_details.rb +76 -61
  137. data/lib/oci/core/models/vcn.rb +150 -167
  138. data/lib/oci/core/models/virtual_circuit.rb +254 -269
  139. data/lib/oci/core/models/virtual_circuit_bandwidth_shape.rb +68 -48
  140. data/lib/oci/core/models/virtual_circuit_public_prefix.rb +79 -54
  141. data/lib/oci/core/models/vnic.rb +149 -166
  142. data/lib/oci/core/models/vnic_attachment.rb +132 -141
  143. data/lib/oci/core/models/volume.rb +138 -151
  144. data/lib/oci/core/models/volume_attachment.rb +126 -131
  145. data/lib/oci/core/models/volume_backup.rb +185 -200
  146. data/lib/oci/core/models/volume_backup_policy.rb +75 -61
  147. data/lib/oci/core/models/volume_backup_policy_assignment.rb +75 -63
  148. data/lib/oci/core/models/volume_backup_schedule.rb +101 -76
  149. data/lib/oci/core/models/volume_source_details.rb +62 -37
  150. data/lib/oci/core/models/volume_source_from_volume_backup_details.rb +62 -38
  151. data/lib/oci/core/models/volume_source_from_volume_details.rb +62 -38
  152. data/lib/oci/core/virtual_network_client.rb +2683 -1457
  153. data/lib/oci/core/virtual_network_client_composite_operations.rb +1849 -0
  154. data/lib/oci/database/database.rb +3 -0
  155. data/lib/oci/database/database_client.rb +894 -454
  156. data/lib/oci/database/database_client_composite_operations.rb +462 -0
  157. data/lib/oci/database/models/backup.rb +131 -128
  158. data/lib/oci/database/models/backup_summary.rb +131 -128
  159. data/lib/oci/database/models/create_backup_details.rb +66 -47
  160. data/lib/oci/database/models/create_data_guard_association_details.rb +112 -102
  161. data/lib/oci/database/models/create_data_guard_association_to_existing_db_system_details.rb +73 -51
  162. data/lib/oci/database/models/create_database_details.rb +140 -105
  163. data/lib/oci/database/models/create_database_from_backup_details.rb +71 -56
  164. data/lib/oci/database/models/create_db_home_details.rb +70 -53
  165. data/lib/oci/database/models/create_db_home_with_db_system_id_base.rb +83 -67
  166. data/lib/oci/database/models/create_db_home_with_db_system_id_details.rb +74 -53
  167. data/lib/oci/database/models/create_db_home_with_db_system_id_from_backup_details.rb +69 -44
  168. data/lib/oci/database/models/data_guard_association.rb +205 -204
  169. data/lib/oci/database/models/data_guard_association_summary.rb +205 -204
  170. data/lib/oci/database/models/database.rb +175 -156
  171. data/lib/oci/database/models/database_summary.rb +175 -156
  172. data/lib/oci/database/models/db_backup_config.rb +60 -38
  173. data/lib/oci/database/models/db_home.rb +110 -107
  174. data/lib/oci/database/models/db_home_summary.rb +110 -107
  175. data/lib/oci/database/models/db_node.rb +113 -108
  176. data/lib/oci/database/models/db_node_summary.rb +113 -108
  177. data/lib/oci/database/models/db_system.rb +299 -314
  178. data/lib/oci/database/models/db_system_shape_summary.rb +88 -86
  179. data/lib/oci/database/models/db_system_summary.rb +299 -314
  180. data/lib/oci/database/models/db_version_summary.rb +64 -44
  181. data/lib/oci/database/models/failover_data_guard_association_details.rb +60 -38
  182. data/lib/oci/database/models/launch_db_system_details.rb +231 -234
  183. data/lib/oci/database/models/patch.rb +136 -113
  184. data/lib/oci/database/models/patch_details.rb +73 -53
  185. data/lib/oci/database/models/patch_history_entry.rb +114 -99
  186. data/lib/oci/database/models/patch_history_entry_summary.rb +114 -99
  187. data/lib/oci/database/models/patch_summary.rb +136 -113
  188. data/lib/oci/database/models/reinstate_data_guard_association_details.rb +60 -38
  189. data/lib/oci/database/models/restore_database_details.rb +72 -53
  190. data/lib/oci/database/models/switchover_data_guard_association_details.rb +60 -38
  191. data/lib/oci/database/models/update_database_details.rb +97 -38
  192. data/lib/oci/database/models/update_db_home_details.rb +60 -38
  193. data/lib/oci/database/models/update_db_system_details.rb +112 -64
  194. data/lib/oci/dns/dns.rb +3 -0
  195. data/lib/oci/dns/dns_client.rb +489 -302
  196. data/lib/oci/dns/dns_client_composite_operations.rb +143 -0
  197. data/lib/oci/dns/models/create_zone_details.rb +84 -72
  198. data/lib/oci/dns/models/external_master.rb +67 -47
  199. data/lib/oci/dns/models/patch_domain_records_details.rb +60 -35
  200. data/lib/oci/dns/models/patch_rr_set_details.rb +60 -35
  201. data/lib/oci/dns/models/patch_zone_records_details.rb +60 -35
  202. data/lib/oci/dns/models/record.rb +92 -86
  203. data/lib/oci/dns/models/record_collection.rb +59 -35
  204. data/lib/oci/dns/models/record_details.rb +92 -86
  205. data/lib/oci/dns/models/record_operation.rb +113 -110
  206. data/lib/oci/dns/models/rr_set.rb +59 -35
  207. data/lib/oci/dns/models/sort_order.rb +0 -2
  208. data/lib/oci/dns/models/tsig.rb +68 -48
  209. data/lib/oci/dns/models/update_domain_records_details.rb +60 -35
  210. data/lib/oci/dns/models/update_rr_set_details.rb +60 -35
  211. data/lib/oci/dns/models/update_zone_details.rb +60 -38
  212. data/lib/oci/dns/models/update_zone_records_details.rb +60 -35
  213. data/lib/oci/dns/models/zone.rb +133 -126
  214. data/lib/oci/dns/models/zone_summary.rb +108 -99
  215. data/lib/oci/email/email.rb +3 -0
  216. data/lib/oci/email/email_client.rb +223 -112
  217. data/lib/oci/email/email_client_composite_operations.rb +103 -0
  218. data/lib/oci/email/models/create_sender_details.rb +65 -47
  219. data/lib/oci/email/models/create_suppression_details.rb +66 -48
  220. data/lib/oci/email/models/sender.rb +97 -84
  221. data/lib/oci/email/models/sender_summary.rb +89 -70
  222. data/lib/oci/email/models/suppression.rb +90 -69
  223. data/lib/oci/email/models/suppression_summary.rb +90 -69
  224. data/lib/oci/errors.rb +16 -0
  225. data/lib/oci/file_storage/file_storage.rb +3 -0
  226. data/lib/oci/file_storage/file_storage_client.rb +587 -333
  227. data/lib/oci/file_storage/file_storage_client_composite_operations.rb +460 -0
  228. data/lib/oci/file_storage/models/create_export_details.rb +73 -56
  229. data/lib/oci/file_storage/models/create_file_system_details.rb +75 -60
  230. data/lib/oci/file_storage/models/create_mount_target_details.rb +96 -93
  231. data/lib/oci/file_storage/models/create_snapshot_details.rb +68 -47
  232. data/lib/oci/file_storage/models/export.rb +102 -89
  233. data/lib/oci/file_storage/models/export_set.rb +121 -122
  234. data/lib/oci/file_storage/models/export_set_summary.rb +109 -102
  235. data/lib/oci/file_storage/models/export_summary.rb +102 -89
  236. data/lib/oci/file_storage/models/file_system.rb +110 -103
  237. data/lib/oci/file_storage/models/file_system_summary.rb +110 -103
  238. data/lib/oci/file_storage/models/mount_target.rb +126 -131
  239. data/lib/oci/file_storage/models/mount_target_summary.rb +121 -122
  240. data/lib/oci/file_storage/models/snapshot.rb +98 -81
  241. data/lib/oci/file_storage/models/snapshot_summary.rb +98 -81
  242. data/lib/oci/file_storage/models/update_export_set_details.rb +75 -60
  243. data/lib/oci/file_storage/models/update_file_system_details.rb +63 -40
  244. data/lib/oci/file_storage/models/update_mount_target_details.rb +63 -40
  245. data/lib/oci/identity/identity.rb +3 -0
  246. data/lib/oci/identity/identity_client.rb +1671 -872
  247. data/lib/oci/identity/identity_client_composite_operations.rb +818 -0
  248. data/lib/oci/identity/models/add_user_to_group_details.rb +66 -47
  249. data/lib/oci/identity/models/api_key.rb +108 -101
  250. data/lib/oci/identity/models/availability_domain.rb +64 -44
  251. data/lib/oci/identity/models/compartment.rb +118 -115
  252. data/lib/oci/identity/models/create_api_key_details.rb +60 -35
  253. data/lib/oci/identity/models/create_compartment_details.rb +83 -72
  254. data/lib/oci/identity/models/create_customer_secret_key_details.rb +62 -39
  255. data/lib/oci/identity/models/create_dynamic_group_details.rb +75 -61
  256. data/lib/oci/identity/models/create_group_details.rb +82 -71
  257. data/lib/oci/identity/models/create_identity_provider_details.rb +115 -110
  258. data/lib/oci/identity/models/create_idp_group_mapping_details.rb +67 -48
  259. data/lib/oci/identity/models/create_policy_details.rb +94 -89
  260. data/lib/oci/identity/models/create_region_subscription_details.rb +64 -41
  261. data/lib/oci/identity/models/create_saml2_identity_provider_details.rb +88 -67
  262. data/lib/oci/identity/models/create_smtp_credential_details.rb +61 -36
  263. data/lib/oci/identity/models/create_swift_password_details.rb +61 -36
  264. data/lib/oci/identity/models/create_tag_details.rb +77 -62
  265. data/lib/oci/identity/models/create_tag_namespace_details.rb +82 -71
  266. data/lib/oci/identity/models/create_user_details.rb +82 -71
  267. data/lib/oci/identity/models/customer_secret_key.rb +114 -109
  268. data/lib/oci/identity/models/customer_secret_key_summary.rb +109 -102
  269. data/lib/oci/identity/models/dynamic_group.rb +112 -105
  270. data/lib/oci/identity/models/group.rb +118 -115
  271. data/lib/oci/identity/models/identity_provider.rb +135 -138
  272. data/lib/oci/identity/models/idp_group_mapping.rb +112 -109
  273. data/lib/oci/identity/models/policy.rb +129 -132
  274. data/lib/oci/identity/models/region.rb +67 -45
  275. data/lib/oci/identity/models/region_subscription.rb +90 -71
  276. data/lib/oci/identity/models/saml2_identity_provider.rb +106 -92
  277. data/lib/oci/identity/models/smtp_credential.rb +118 -113
  278. data/lib/oci/identity/models/smtp_credential_summary.rb +113 -106
  279. data/lib/oci/identity/models/swift_password.rb +113 -106
  280. data/lib/oci/identity/models/tag.rb +108 -116
  281. data/lib/oci/identity/models/tag_namespace.rb +97 -97
  282. data/lib/oci/identity/models/tag_namespace_summary.rb +97 -97
  283. data/lib/oci/identity/models/tag_summary.rb +97 -97
  284. data/lib/oci/identity/models/tenancy.rb +86 -78
  285. data/lib/oci/identity/models/ui_password.rb +97 -82
  286. data/lib/oci/identity/models/update_compartment_details.rb +77 -62
  287. data/lib/oci/identity/models/update_customer_secret_key_details.rb +61 -38
  288. data/lib/oci/identity/models/update_dynamic_group_details.rb +65 -45
  289. data/lib/oci/identity/models/update_group_details.rb +72 -55
  290. data/lib/oci/identity/models/update_identity_provider_details.rb +89 -74
  291. data/lib/oci/identity/models/update_idp_group_mapping_details.rb +66 -47
  292. data/lib/oci/identity/models/update_policy_details.rb +83 -72
  293. data/lib/oci/identity/models/update_saml2_identity_provider_details.rb +79 -58
  294. data/lib/oci/identity/models/update_smtp_credential_details.rb +60 -35
  295. data/lib/oci/identity/models/update_state_details.rb +61 -36
  296. data/lib/oci/identity/models/update_swift_password_details.rb +60 -35
  297. data/lib/oci/identity/models/update_tag_details.rb +78 -65
  298. data/lib/oci/identity/models/update_tag_namespace_details.rb +78 -65
  299. data/lib/oci/identity/models/update_user_details.rb +72 -55
  300. data/lib/oci/identity/models/user.rb +120 -117
  301. data/lib/oci/identity/models/user_group_membership.rb +107 -100
  302. data/lib/oci/load_balancer/load_balancer.rb +3 -0
  303. data/lib/oci/load_balancer/load_balancer_client.rb +918 -500
  304. data/lib/oci/load_balancer/load_balancer_client_composite_operations.rb +795 -0
  305. data/lib/oci/load_balancer/models/backend.rb +101 -94
  306. data/lib/oci/load_balancer/models/backend_details.rb +95 -86
  307. data/lib/oci/load_balancer/models/backend_health.rb +84 -57
  308. data/lib/oci/load_balancer/models/backend_set.rb +87 -79
  309. data/lib/oci/load_balancer/models/backend_set_details.rb +80 -70
  310. data/lib/oci/load_balancer/models/backend_set_health.rb +106 -91
  311. data/lib/oci/load_balancer/models/certificate.rb +78 -64
  312. data/lib/oci/load_balancer/models/certificate_details.rb +92 -84
  313. data/lib/oci/load_balancer/models/connection_configuration.rb +73 -51
  314. data/lib/oci/load_balancer/models/create_backend_details.rb +95 -86
  315. data/lib/oci/load_balancer/models/create_backend_set_details.rb +87 -79
  316. data/lib/oci/load_balancer/models/create_certificate_details.rb +92 -84
  317. data/lib/oci/load_balancer/models/create_listener_details.rb +97 -93
  318. data/lib/oci/load_balancer/models/create_load_balancer_details.rb +109 -117
  319. data/lib/oci/load_balancer/models/create_path_route_set_details.rb +66 -46
  320. data/lib/oci/load_balancer/models/health_check_result.rb +98 -79
  321. data/lib/oci/load_balancer/models/health_checker.rb +108 -108
  322. data/lib/oci/load_balancer/models/health_checker_details.rb +108 -108
  323. data/lib/oci/load_balancer/models/ip_address.rb +70 -52
  324. data/lib/oci/load_balancer/models/listener.rb +97 -93
  325. data/lib/oci/load_balancer/models/listener_details.rb +91 -85
  326. data/lib/oci/load_balancer/models/load_balancer.rb +144 -157
  327. data/lib/oci/load_balancer/models/load_balancer_health.rb +110 -95
  328. data/lib/oci/load_balancer/models/load_balancer_health_summary.rb +88 -61
  329. data/lib/oci/load_balancer/models/load_balancer_policy.rb +59 -35
  330. data/lib/oci/load_balancer/models/load_balancer_protocol.rb +59 -35
  331. data/lib/oci/load_balancer/models/load_balancer_shape.rb +59 -35
  332. data/lib/oci/load_balancer/models/path_match_type.rb +80 -51
  333. data/lib/oci/load_balancer/models/path_route.rb +76 -60
  334. data/lib/oci/load_balancer/models/path_route_set.rb +66 -46
  335. data/lib/oci/load_balancer/models/path_route_set_details.rb +60 -38
  336. data/lib/oci/load_balancer/models/session_persistence_configuration_details.rb +71 -55
  337. data/lib/oci/load_balancer/models/ssl_configuration.rb +78 -66
  338. data/lib/oci/load_balancer/models/ssl_configuration_details.rb +78 -66
  339. data/lib/oci/load_balancer/models/update_backend_details.rb +82 -67
  340. data/lib/oci/load_balancer/models/update_backend_set_details.rb +80 -70
  341. data/lib/oci/load_balancer/models/update_health_checker_details.rb +108 -108
  342. data/lib/oci/load_balancer/models/update_listener_details.rb +91 -85
  343. data/lib/oci/load_balancer/models/update_load_balancer_details.rb +62 -40
  344. data/lib/oci/load_balancer/models/update_path_route_set_details.rb +60 -38
  345. data/lib/oci/load_balancer/models/work_request.rb +115 -108
  346. data/lib/oci/load_balancer/models/work_request_error.rb +76 -49
  347. data/lib/oci/object_storage/models/bucket.rb +136 -133
  348. data/lib/oci/object_storage/models/bucket_summary.rb +95 -95
  349. data/lib/oci/object_storage/models/commit_multipart_upload_details.rb +66 -48
  350. data/lib/oci/object_storage/models/commit_multipart_upload_part_details.rb +64 -44
  351. data/lib/oci/object_storage/models/create_bucket_details.rb +113 -111
  352. data/lib/oci/object_storage/models/create_multipart_upload_details.rb +80 -70
  353. data/lib/oci/object_storage/models/create_preauthenticated_request_details.rb +87 -74
  354. data/lib/oci/object_storage/models/list_objects.rb +71 -53
  355. data/lib/oci/object_storage/models/multipart_upload.rb +77 -65
  356. data/lib/oci/object_storage/models/multipart_upload_part_summary.rb +72 -56
  357. data/lib/oci/object_storage/models/namespace_metadata.rb +69 -53
  358. data/lib/oci/object_storage/models/object_summary.rb +73 -57
  359. data/lib/oci/object_storage/models/preauthenticated_request.rb +105 -96
  360. data/lib/oci/object_storage/models/preauthenticated_request_summary.rb +99 -86
  361. data/lib/oci/object_storage/models/rename_object_details.rb +80 -74
  362. data/lib/oci/object_storage/models/restore_objects_details.rb +66 -45
  363. data/lib/oci/object_storage/models/update_bucket_details.rb +101 -97
  364. data/lib/oci/object_storage/models/update_namespace_metadata_details.rb +65 -47
  365. data/lib/oci/object_storage/object_storage.rb +2 -0
  366. data/lib/oci/object_storage/object_storage_client.rb +737 -435
  367. data/lib/oci/object_storage/object_storage_client_composite_operations.rb +24 -0
  368. data/lib/oci/signer.rb +20 -7
  369. data/lib/oci/version.rb +1 -1
  370. metadata +13 -2
@@ -0,0 +1,818 @@
1
+ # Copyright (c) 2016, 2018, Oracle and/or its affiliates. All rights reserved.
2
+
3
+ # rubocop:disable Lint/UnneededCopDisableDirective, Metrics/LineLength
4
+ module OCI
5
+ # This class provides a wrapper around {OCI::Identity::IdentityClient} and offers convenience methods
6
+ # for operations that would otherwise need to be chained together. For example, instead of performing an action
7
+ # on a resource (e.g. launching an instance, creating a load balancer) and then using a waiter to wait for the resource
8
+ # to enter a given state, you can call a single method in this class to accomplish the same functionality
9
+ class Identity::IdentityClientCompositeOperations
10
+ # The {OCI::Identity::IdentityClient} used to communicate with the service_client
11
+ #
12
+ # @return [OCI::Identity::IdentityClient]
13
+ attr_reader :service_client
14
+
15
+ # Initializes a new IdentityClientCompositeOperations
16
+ #
17
+ # @param [OCI::Identity::IdentityClient] service_client The client used to communicate with the service.
18
+ # Defaults to a new service client created via {OCI::Identity::IdentityClient#initialize} with no arguments
19
+ def initialize(service_client = OCI::Identity::IdentityClient.new)
20
+ @service_client = service_client
21
+ end
22
+
23
+ # rubocop:disable Metrics/CyclomaticComplexity, Metrics/AbcSize, Metrics/ParameterLists, Metrics/PerceivedComplexity
24
+ # rubocop:disable Layout/EmptyLines
25
+
26
+
27
+ # Calls {OCI::Identity::IdentityClient#add_user_to_group} and then waits for the {OCI::Identity::Models::UserGroupMembership} acted upon
28
+ # to enter the given state(s).
29
+ #
30
+ # @param [OCI::Identity::Models::AddUserToGroupDetails] add_user_to_group_details Request object for adding a user to a group.
31
+ # @param [Array<String>] wait_for_states An array of states to wait on. These should be valid values for {OCI::Identity::Models::UserGroupMembership#lifecycle_state}
32
+ # @param [Hash] base_operation_opts Any optional arguments accepted by {OCI::Identity::IdentityClient#add_user_to_group}
33
+ # @param [Hash] waiter_opts Optional arguments for the waiter. Keys should be symbols, and the following keys are supported:
34
+ # * max_interval_seconds: The maximum interval between queries, in seconds.
35
+ # * max_wait_seconds The maximum time to wait, in seconds
36
+ #
37
+ # @return [OCI::Response] A {OCI::Response} object with data of type {OCI::Identity::Models::UserGroupMembership}
38
+ def add_user_to_group_and_wait_for_state(add_user_to_group_details, wait_for_states = [], base_operation_opts = {}, waiter_opts = {})
39
+ operation_result = @service_client.add_user_to_group(add_user_to_group_details, base_operation_opts)
40
+
41
+ return operation_result if wait_for_states.empty?
42
+
43
+ lowered_wait_for_states = wait_for_states.map(&:downcase)
44
+ wait_for_resource_id = operation_result.data.id
45
+
46
+ begin
47
+ waiter_result = @service_client.get_user_group_membership(wait_for_resource_id).wait_until(
48
+ eval_proc: ->(response) { response.data.respond_to?(:lifecycle_state) && lowered_wait_for_states.include?(response.data.lifecycle_state.downcase) },
49
+ max_interval_seconds: waiter_opts.key?(:max_interval_seconds) ? waiter_opts[:max_interval_seconds] : 30,
50
+ max_wait_seconds: waiter_opts.key?(:max_wait_seconds) ? waiter_opts[:max_wait_seconds] : 1200
51
+ )
52
+ result_to_return = waiter_result
53
+
54
+ return result_to_return
55
+ rescue StandardError
56
+ raise OCI::Errors::CompositeOperationError.new(partial_results: [operation_result])
57
+ end
58
+ end
59
+ # rubocop:enable Metrics/CyclomaticComplexity, Metrics/AbcSize, Metrics/ParameterLists, Metrics/PerceivedComplexity
60
+ # rubocop:enable Layout/EmptyLines
61
+
62
+ # rubocop:disable Metrics/CyclomaticComplexity, Metrics/AbcSize, Metrics/ParameterLists, Metrics/PerceivedComplexity
63
+ # rubocop:disable Layout/EmptyLines
64
+
65
+
66
+ # Calls {OCI::Identity::IdentityClient#create_compartment} and then waits for the {OCI::Identity::Models::Compartment} acted upon
67
+ # to enter the given state(s).
68
+ #
69
+ # @param [OCI::Identity::Models::CreateCompartmentDetails] create_compartment_details Request object for creating a new compartment.
70
+ # @param [Array<String>] wait_for_states An array of states to wait on. These should be valid values for {OCI::Identity::Models::Compartment#lifecycle_state}
71
+ # @param [Hash] base_operation_opts Any optional arguments accepted by {OCI::Identity::IdentityClient#create_compartment}
72
+ # @param [Hash] waiter_opts Optional arguments for the waiter. Keys should be symbols, and the following keys are supported:
73
+ # * max_interval_seconds: The maximum interval between queries, in seconds.
74
+ # * max_wait_seconds The maximum time to wait, in seconds
75
+ #
76
+ # @return [OCI::Response] A {OCI::Response} object with data of type {OCI::Identity::Models::Compartment}
77
+ def create_compartment_and_wait_for_state(create_compartment_details, wait_for_states = [], base_operation_opts = {}, waiter_opts = {})
78
+ operation_result = @service_client.create_compartment(create_compartment_details, base_operation_opts)
79
+
80
+ return operation_result if wait_for_states.empty?
81
+
82
+ lowered_wait_for_states = wait_for_states.map(&:downcase)
83
+ wait_for_resource_id = operation_result.data.id
84
+
85
+ begin
86
+ waiter_result = @service_client.get_compartment(wait_for_resource_id).wait_until(
87
+ eval_proc: ->(response) { response.data.respond_to?(:lifecycle_state) && lowered_wait_for_states.include?(response.data.lifecycle_state.downcase) },
88
+ max_interval_seconds: waiter_opts.key?(:max_interval_seconds) ? waiter_opts[:max_interval_seconds] : 30,
89
+ max_wait_seconds: waiter_opts.key?(:max_wait_seconds) ? waiter_opts[:max_wait_seconds] : 1200
90
+ )
91
+ result_to_return = waiter_result
92
+
93
+ return result_to_return
94
+ rescue StandardError
95
+ raise OCI::Errors::CompositeOperationError.new(partial_results: [operation_result])
96
+ end
97
+ end
98
+ # rubocop:enable Metrics/CyclomaticComplexity, Metrics/AbcSize, Metrics/ParameterLists, Metrics/PerceivedComplexity
99
+ # rubocop:enable Layout/EmptyLines
100
+
101
+ # rubocop:disable Metrics/CyclomaticComplexity, Metrics/AbcSize, Metrics/ParameterLists, Metrics/PerceivedComplexity
102
+ # rubocop:disable Layout/EmptyLines
103
+
104
+
105
+ # Calls {OCI::Identity::IdentityClient#create_dynamic_group} and then waits for the {OCI::Identity::Models::DynamicGroup} acted upon
106
+ # to enter the given state(s).
107
+ #
108
+ # @param [OCI::Identity::Models::CreateDynamicGroupDetails] create_dynamic_group_details Request object for creating a new dynamic group.
109
+ # @param [Array<String>] wait_for_states An array of states to wait on. These should be valid values for {OCI::Identity::Models::DynamicGroup#lifecycle_state}
110
+ # @param [Hash] base_operation_opts Any optional arguments accepted by {OCI::Identity::IdentityClient#create_dynamic_group}
111
+ # @param [Hash] waiter_opts Optional arguments for the waiter. Keys should be symbols, and the following keys are supported:
112
+ # * max_interval_seconds: The maximum interval between queries, in seconds.
113
+ # * max_wait_seconds The maximum time to wait, in seconds
114
+ #
115
+ # @return [OCI::Response] A {OCI::Response} object with data of type {OCI::Identity::Models::DynamicGroup}
116
+ def create_dynamic_group_and_wait_for_state(create_dynamic_group_details, wait_for_states = [], base_operation_opts = {}, waiter_opts = {})
117
+ operation_result = @service_client.create_dynamic_group(create_dynamic_group_details, base_operation_opts)
118
+
119
+ return operation_result if wait_for_states.empty?
120
+
121
+ lowered_wait_for_states = wait_for_states.map(&:downcase)
122
+ wait_for_resource_id = operation_result.data.id
123
+
124
+ begin
125
+ waiter_result = @service_client.get_dynamic_group(wait_for_resource_id).wait_until(
126
+ eval_proc: ->(response) { response.data.respond_to?(:lifecycle_state) && lowered_wait_for_states.include?(response.data.lifecycle_state.downcase) },
127
+ max_interval_seconds: waiter_opts.key?(:max_interval_seconds) ? waiter_opts[:max_interval_seconds] : 30,
128
+ max_wait_seconds: waiter_opts.key?(:max_wait_seconds) ? waiter_opts[:max_wait_seconds] : 1200
129
+ )
130
+ result_to_return = waiter_result
131
+
132
+ return result_to_return
133
+ rescue StandardError
134
+ raise OCI::Errors::CompositeOperationError.new(partial_results: [operation_result])
135
+ end
136
+ end
137
+ # rubocop:enable Metrics/CyclomaticComplexity, Metrics/AbcSize, Metrics/ParameterLists, Metrics/PerceivedComplexity
138
+ # rubocop:enable Layout/EmptyLines
139
+
140
+ # rubocop:disable Metrics/CyclomaticComplexity, Metrics/AbcSize, Metrics/ParameterLists, Metrics/PerceivedComplexity
141
+ # rubocop:disable Layout/EmptyLines
142
+
143
+
144
+ # Calls {OCI::Identity::IdentityClient#create_group} and then waits for the {OCI::Identity::Models::Group} acted upon
145
+ # to enter the given state(s).
146
+ #
147
+ # @param [OCI::Identity::Models::CreateGroupDetails] create_group_details Request object for creating a new group.
148
+ # @param [Array<String>] wait_for_states An array of states to wait on. These should be valid values for {OCI::Identity::Models::Group#lifecycle_state}
149
+ # @param [Hash] base_operation_opts Any optional arguments accepted by {OCI::Identity::IdentityClient#create_group}
150
+ # @param [Hash] waiter_opts Optional arguments for the waiter. Keys should be symbols, and the following keys are supported:
151
+ # * max_interval_seconds: The maximum interval between queries, in seconds.
152
+ # * max_wait_seconds The maximum time to wait, in seconds
153
+ #
154
+ # @return [OCI::Response] A {OCI::Response} object with data of type {OCI::Identity::Models::Group}
155
+ def create_group_and_wait_for_state(create_group_details, wait_for_states = [], base_operation_opts = {}, waiter_opts = {})
156
+ operation_result = @service_client.create_group(create_group_details, base_operation_opts)
157
+
158
+ return operation_result if wait_for_states.empty?
159
+
160
+ lowered_wait_for_states = wait_for_states.map(&:downcase)
161
+ wait_for_resource_id = operation_result.data.id
162
+
163
+ begin
164
+ waiter_result = @service_client.get_group(wait_for_resource_id).wait_until(
165
+ eval_proc: ->(response) { response.data.respond_to?(:lifecycle_state) && lowered_wait_for_states.include?(response.data.lifecycle_state.downcase) },
166
+ max_interval_seconds: waiter_opts.key?(:max_interval_seconds) ? waiter_opts[:max_interval_seconds] : 30,
167
+ max_wait_seconds: waiter_opts.key?(:max_wait_seconds) ? waiter_opts[:max_wait_seconds] : 1200
168
+ )
169
+ result_to_return = waiter_result
170
+
171
+ return result_to_return
172
+ rescue StandardError
173
+ raise OCI::Errors::CompositeOperationError.new(partial_results: [operation_result])
174
+ end
175
+ end
176
+ # rubocop:enable Metrics/CyclomaticComplexity, Metrics/AbcSize, Metrics/ParameterLists, Metrics/PerceivedComplexity
177
+ # rubocop:enable Layout/EmptyLines
178
+
179
+ # rubocop:disable Metrics/CyclomaticComplexity, Metrics/AbcSize, Metrics/ParameterLists, Metrics/PerceivedComplexity
180
+ # rubocop:disable Layout/EmptyLines
181
+
182
+
183
+ # Calls {OCI::Identity::IdentityClient#create_identity_provider} and then waits for the {OCI::Identity::Models::IdentityProvider} acted upon
184
+ # to enter the given state(s).
185
+ #
186
+ # @param [OCI::Identity::Models::CreateIdentityProviderDetails] create_identity_provider_details Request object for creating a new SAML2 identity provider.
187
+ # @param [Array<String>] wait_for_states An array of states to wait on. These should be valid values for {OCI::Identity::Models::IdentityProvider#lifecycle_state}
188
+ # @param [Hash] base_operation_opts Any optional arguments accepted by {OCI::Identity::IdentityClient#create_identity_provider}
189
+ # @param [Hash] waiter_opts Optional arguments for the waiter. Keys should be symbols, and the following keys are supported:
190
+ # * max_interval_seconds: The maximum interval between queries, in seconds.
191
+ # * max_wait_seconds The maximum time to wait, in seconds
192
+ #
193
+ # @return [OCI::Response] A {OCI::Response} object with data of type {OCI::Identity::Models::IdentityProvider}
194
+ def create_identity_provider_and_wait_for_state(create_identity_provider_details, wait_for_states = [], base_operation_opts = {}, waiter_opts = {})
195
+ operation_result = @service_client.create_identity_provider(create_identity_provider_details, base_operation_opts)
196
+
197
+ return operation_result if wait_for_states.empty?
198
+
199
+ lowered_wait_for_states = wait_for_states.map(&:downcase)
200
+ wait_for_resource_id = operation_result.data.id
201
+
202
+ begin
203
+ waiter_result = @service_client.get_identity_provider(wait_for_resource_id).wait_until(
204
+ eval_proc: ->(response) { response.data.respond_to?(:lifecycle_state) && lowered_wait_for_states.include?(response.data.lifecycle_state.downcase) },
205
+ max_interval_seconds: waiter_opts.key?(:max_interval_seconds) ? waiter_opts[:max_interval_seconds] : 30,
206
+ max_wait_seconds: waiter_opts.key?(:max_wait_seconds) ? waiter_opts[:max_wait_seconds] : 1200
207
+ )
208
+ result_to_return = waiter_result
209
+
210
+ return result_to_return
211
+ rescue StandardError
212
+ raise OCI::Errors::CompositeOperationError.new(partial_results: [operation_result])
213
+ end
214
+ end
215
+ # rubocop:enable Metrics/CyclomaticComplexity, Metrics/AbcSize, Metrics/ParameterLists, Metrics/PerceivedComplexity
216
+ # rubocop:enable Layout/EmptyLines
217
+
218
+ # rubocop:disable Metrics/CyclomaticComplexity, Metrics/AbcSize, Metrics/ParameterLists, Metrics/PerceivedComplexity
219
+ # rubocop:disable Layout/EmptyLines
220
+
221
+
222
+ # Calls {OCI::Identity::IdentityClient#create_idp_group_mapping} and then waits for the {OCI::Identity::Models::IdpGroupMapping} acted upon
223
+ # to enter the given state(s).
224
+ #
225
+ # @param [OCI::Identity::Models::CreateIdpGroupMappingDetails] create_idp_group_mapping_details Add a mapping from an SAML2.0 identity provider group to a BMC group.
226
+ # @param [String] identity_provider_id The OCID of the identity provider.
227
+ # @param [Array<String>] wait_for_states An array of states to wait on. These should be valid values for {OCI::Identity::Models::IdpGroupMapping#lifecycle_state}
228
+ # @param [Hash] base_operation_opts Any optional arguments accepted by {OCI::Identity::IdentityClient#create_idp_group_mapping}
229
+ # @param [Hash] waiter_opts Optional arguments for the waiter. Keys should be symbols, and the following keys are supported:
230
+ # * max_interval_seconds: The maximum interval between queries, in seconds.
231
+ # * max_wait_seconds The maximum time to wait, in seconds
232
+ #
233
+ # @return [OCI::Response] A {OCI::Response} object with data of type {OCI::Identity::Models::IdpGroupMapping}
234
+ def create_idp_group_mapping_and_wait_for_state(create_idp_group_mapping_details, identity_provider_id, wait_for_states = [], base_operation_opts = {}, waiter_opts = {})
235
+ operation_result = @service_client.create_idp_group_mapping(create_idp_group_mapping_details, identity_provider_id, base_operation_opts)
236
+
237
+ return operation_result if wait_for_states.empty?
238
+
239
+ lowered_wait_for_states = wait_for_states.map(&:downcase)
240
+ wait_for_resource_id = operation_result.data.id
241
+
242
+ begin
243
+ waiter_result = @service_client.get_idp_group_mapping(wait_for_resource_id).wait_until(
244
+ eval_proc: ->(response) { response.data.respond_to?(:lifecycle_state) && lowered_wait_for_states.include?(response.data.lifecycle_state.downcase) },
245
+ max_interval_seconds: waiter_opts.key?(:max_interval_seconds) ? waiter_opts[:max_interval_seconds] : 30,
246
+ max_wait_seconds: waiter_opts.key?(:max_wait_seconds) ? waiter_opts[:max_wait_seconds] : 1200
247
+ )
248
+ result_to_return = waiter_result
249
+
250
+ return result_to_return
251
+ rescue StandardError
252
+ raise OCI::Errors::CompositeOperationError.new(partial_results: [operation_result])
253
+ end
254
+ end
255
+ # rubocop:enable Metrics/CyclomaticComplexity, Metrics/AbcSize, Metrics/ParameterLists, Metrics/PerceivedComplexity
256
+ # rubocop:enable Layout/EmptyLines
257
+
258
+ # rubocop:disable Metrics/CyclomaticComplexity, Metrics/AbcSize, Metrics/ParameterLists, Metrics/PerceivedComplexity
259
+ # rubocop:disable Layout/EmptyLines
260
+
261
+
262
+ # Calls {OCI::Identity::IdentityClient#create_policy} and then waits for the {OCI::Identity::Models::Policy} acted upon
263
+ # to enter the given state(s).
264
+ #
265
+ # @param [OCI::Identity::Models::CreatePolicyDetails] create_policy_details Request object for creating a new policy.
266
+ # @param [Array<String>] wait_for_states An array of states to wait on. These should be valid values for {OCI::Identity::Models::Policy#lifecycle_state}
267
+ # @param [Hash] base_operation_opts Any optional arguments accepted by {OCI::Identity::IdentityClient#create_policy}
268
+ # @param [Hash] waiter_opts Optional arguments for the waiter. Keys should be symbols, and the following keys are supported:
269
+ # * max_interval_seconds: The maximum interval between queries, in seconds.
270
+ # * max_wait_seconds The maximum time to wait, in seconds
271
+ #
272
+ # @return [OCI::Response] A {OCI::Response} object with data of type {OCI::Identity::Models::Policy}
273
+ def create_policy_and_wait_for_state(create_policy_details, wait_for_states = [], base_operation_opts = {}, waiter_opts = {})
274
+ operation_result = @service_client.create_policy(create_policy_details, base_operation_opts)
275
+
276
+ return operation_result if wait_for_states.empty?
277
+
278
+ lowered_wait_for_states = wait_for_states.map(&:downcase)
279
+ wait_for_resource_id = operation_result.data.id
280
+
281
+ begin
282
+ waiter_result = @service_client.get_policy(wait_for_resource_id).wait_until(
283
+ eval_proc: ->(response) { response.data.respond_to?(:lifecycle_state) && lowered_wait_for_states.include?(response.data.lifecycle_state.downcase) },
284
+ max_interval_seconds: waiter_opts.key?(:max_interval_seconds) ? waiter_opts[:max_interval_seconds] : 30,
285
+ max_wait_seconds: waiter_opts.key?(:max_wait_seconds) ? waiter_opts[:max_wait_seconds] : 1200
286
+ )
287
+ result_to_return = waiter_result
288
+
289
+ return result_to_return
290
+ rescue StandardError
291
+ raise OCI::Errors::CompositeOperationError.new(partial_results: [operation_result])
292
+ end
293
+ end
294
+ # rubocop:enable Metrics/CyclomaticComplexity, Metrics/AbcSize, Metrics/ParameterLists, Metrics/PerceivedComplexity
295
+ # rubocop:enable Layout/EmptyLines
296
+
297
+ # rubocop:disable Metrics/CyclomaticComplexity, Metrics/AbcSize, Metrics/ParameterLists, Metrics/PerceivedComplexity
298
+ # rubocop:disable Layout/EmptyLines
299
+
300
+
301
+ # Calls {OCI::Identity::IdentityClient#create_user} and then waits for the {OCI::Identity::Models::User} acted upon
302
+ # to enter the given state(s).
303
+ #
304
+ # @param [OCI::Identity::Models::CreateUserDetails] create_user_details Request object for creating a new user.
305
+ # @param [Array<String>] wait_for_states An array of states to wait on. These should be valid values for {OCI::Identity::Models::User#lifecycle_state}
306
+ # @param [Hash] base_operation_opts Any optional arguments accepted by {OCI::Identity::IdentityClient#create_user}
307
+ # @param [Hash] waiter_opts Optional arguments for the waiter. Keys should be symbols, and the following keys are supported:
308
+ # * max_interval_seconds: The maximum interval between queries, in seconds.
309
+ # * max_wait_seconds The maximum time to wait, in seconds
310
+ #
311
+ # @return [OCI::Response] A {OCI::Response} object with data of type {OCI::Identity::Models::User}
312
+ def create_user_and_wait_for_state(create_user_details, wait_for_states = [], base_operation_opts = {}, waiter_opts = {})
313
+ operation_result = @service_client.create_user(create_user_details, base_operation_opts)
314
+
315
+ return operation_result if wait_for_states.empty?
316
+
317
+ lowered_wait_for_states = wait_for_states.map(&:downcase)
318
+ wait_for_resource_id = operation_result.data.id
319
+
320
+ begin
321
+ waiter_result = @service_client.get_user(wait_for_resource_id).wait_until(
322
+ eval_proc: ->(response) { response.data.respond_to?(:lifecycle_state) && lowered_wait_for_states.include?(response.data.lifecycle_state.downcase) },
323
+ max_interval_seconds: waiter_opts.key?(:max_interval_seconds) ? waiter_opts[:max_interval_seconds] : 30,
324
+ max_wait_seconds: waiter_opts.key?(:max_wait_seconds) ? waiter_opts[:max_wait_seconds] : 1200
325
+ )
326
+ result_to_return = waiter_result
327
+
328
+ return result_to_return
329
+ rescue StandardError
330
+ raise OCI::Errors::CompositeOperationError.new(partial_results: [operation_result])
331
+ end
332
+ end
333
+ # rubocop:enable Metrics/CyclomaticComplexity, Metrics/AbcSize, Metrics/ParameterLists, Metrics/PerceivedComplexity
334
+ # rubocop:enable Layout/EmptyLines
335
+
336
+ # rubocop:disable Metrics/CyclomaticComplexity, Metrics/AbcSize, Metrics/ParameterLists, Metrics/PerceivedComplexity
337
+ # rubocop:disable Layout/EmptyLines
338
+
339
+
340
+ # Calls {OCI::Identity::IdentityClient#delete_dynamic_group} and then waits for the {OCI::Identity::Models::DynamicGroup} acted upon
341
+ # to enter the given state(s).
342
+ #
343
+ # @param [String] dynamic_group_id The OCID of the dynamic group.
344
+ # @param [Array<String>] wait_for_states An array of states to wait on. These should be valid values for {OCI::Identity::Models::DynamicGroup#lifecycle_state}
345
+ # @param [Hash] base_operation_opts Any optional arguments accepted by {OCI::Identity::IdentityClient#delete_dynamic_group}
346
+ # @param [Hash] waiter_opts Optional arguments for the waiter. Keys should be symbols, and the following keys are supported:
347
+ # * max_interval_seconds: The maximum interval between queries, in seconds.
348
+ # * max_wait_seconds The maximum time to wait, in seconds
349
+ #
350
+ # @return [OCI::Response] A {OCI::Response} object with data of type nil
351
+ def delete_dynamic_group_and_wait_for_state(dynamic_group_id, wait_for_states = [], base_operation_opts = {}, waiter_opts = {})
352
+ initial_get_result = @service_client.get_dynamic_group(dynamic_group_id)
353
+ operation_result = @service_client.delete_dynamic_group(dynamic_group_id, base_operation_opts)
354
+
355
+ return operation_result if wait_for_states.empty?
356
+
357
+ lowered_wait_for_states = wait_for_states.map(&:downcase)
358
+
359
+ begin
360
+ waiter_result = initial_get_result.wait_until(
361
+ eval_proc: ->(response) { response.data.respond_to?(:lifecycle_state) && lowered_wait_for_states.include?(response.data.lifecycle_state.downcase) },
362
+ max_interval_seconds: waiter_opts.key?(:max_interval_seconds) ? waiter_opts[:max_interval_seconds] : 30,
363
+ max_wait_seconds: waiter_opts.key?(:max_wait_seconds) ? waiter_opts[:max_wait_seconds] : 1200,
364
+ succeed_on_not_found: true
365
+ )
366
+ result_to_return = waiter_result
367
+
368
+ return result_to_return
369
+ rescue StandardError
370
+ raise OCI::Errors::CompositeOperationError.new(partial_results: [operation_result])
371
+ end
372
+ end
373
+ # rubocop:enable Metrics/CyclomaticComplexity, Metrics/AbcSize, Metrics/ParameterLists, Metrics/PerceivedComplexity
374
+ # rubocop:enable Layout/EmptyLines
375
+
376
+ # rubocop:disable Metrics/CyclomaticComplexity, Metrics/AbcSize, Metrics/ParameterLists, Metrics/PerceivedComplexity
377
+ # rubocop:disable Layout/EmptyLines
378
+
379
+
380
+ # Calls {OCI::Identity::IdentityClient#delete_group} and then waits for the {OCI::Identity::Models::Group} acted upon
381
+ # to enter the given state(s).
382
+ #
383
+ # @param [String] group_id The OCID of the group.
384
+ # @param [Array<String>] wait_for_states An array of states to wait on. These should be valid values for {OCI::Identity::Models::Group#lifecycle_state}
385
+ # @param [Hash] base_operation_opts Any optional arguments accepted by {OCI::Identity::IdentityClient#delete_group}
386
+ # @param [Hash] waiter_opts Optional arguments for the waiter. Keys should be symbols, and the following keys are supported:
387
+ # * max_interval_seconds: The maximum interval between queries, in seconds.
388
+ # * max_wait_seconds The maximum time to wait, in seconds
389
+ #
390
+ # @return [OCI::Response] A {OCI::Response} object with data of type nil
391
+ def delete_group_and_wait_for_state(group_id, wait_for_states = [], base_operation_opts = {}, waiter_opts = {})
392
+ initial_get_result = @service_client.get_group(group_id)
393
+ operation_result = @service_client.delete_group(group_id, base_operation_opts)
394
+
395
+ return operation_result if wait_for_states.empty?
396
+
397
+ lowered_wait_for_states = wait_for_states.map(&:downcase)
398
+
399
+ begin
400
+ waiter_result = initial_get_result.wait_until(
401
+ eval_proc: ->(response) { response.data.respond_to?(:lifecycle_state) && lowered_wait_for_states.include?(response.data.lifecycle_state.downcase) },
402
+ max_interval_seconds: waiter_opts.key?(:max_interval_seconds) ? waiter_opts[:max_interval_seconds] : 30,
403
+ max_wait_seconds: waiter_opts.key?(:max_wait_seconds) ? waiter_opts[:max_wait_seconds] : 1200,
404
+ succeed_on_not_found: true
405
+ )
406
+ result_to_return = waiter_result
407
+
408
+ return result_to_return
409
+ rescue StandardError
410
+ raise OCI::Errors::CompositeOperationError.new(partial_results: [operation_result])
411
+ end
412
+ end
413
+ # rubocop:enable Metrics/CyclomaticComplexity, Metrics/AbcSize, Metrics/ParameterLists, Metrics/PerceivedComplexity
414
+ # rubocop:enable Layout/EmptyLines
415
+
416
+ # rubocop:disable Metrics/CyclomaticComplexity, Metrics/AbcSize, Metrics/ParameterLists, Metrics/PerceivedComplexity
417
+ # rubocop:disable Layout/EmptyLines
418
+
419
+
420
+ # Calls {OCI::Identity::IdentityClient#delete_identity_provider} and then waits for the {OCI::Identity::Models::IdentityProvider} acted upon
421
+ # to enter the given state(s).
422
+ #
423
+ # @param [String] identity_provider_id The OCID of the identity provider.
424
+ # @param [Array<String>] wait_for_states An array of states to wait on. These should be valid values for {OCI::Identity::Models::IdentityProvider#lifecycle_state}
425
+ # @param [Hash] base_operation_opts Any optional arguments accepted by {OCI::Identity::IdentityClient#delete_identity_provider}
426
+ # @param [Hash] waiter_opts Optional arguments for the waiter. Keys should be symbols, and the following keys are supported:
427
+ # * max_interval_seconds: The maximum interval between queries, in seconds.
428
+ # * max_wait_seconds The maximum time to wait, in seconds
429
+ #
430
+ # @return [OCI::Response] A {OCI::Response} object with data of type nil
431
+ def delete_identity_provider_and_wait_for_state(identity_provider_id, wait_for_states = [], base_operation_opts = {}, waiter_opts = {})
432
+ initial_get_result = @service_client.get_identity_provider(identity_provider_id)
433
+ operation_result = @service_client.delete_identity_provider(identity_provider_id, base_operation_opts)
434
+
435
+ return operation_result if wait_for_states.empty?
436
+
437
+ lowered_wait_for_states = wait_for_states.map(&:downcase)
438
+
439
+ begin
440
+ waiter_result = initial_get_result.wait_until(
441
+ eval_proc: ->(response) { response.data.respond_to?(:lifecycle_state) && lowered_wait_for_states.include?(response.data.lifecycle_state.downcase) },
442
+ max_interval_seconds: waiter_opts.key?(:max_interval_seconds) ? waiter_opts[:max_interval_seconds] : 30,
443
+ max_wait_seconds: waiter_opts.key?(:max_wait_seconds) ? waiter_opts[:max_wait_seconds] : 1200,
444
+ succeed_on_not_found: true
445
+ )
446
+ result_to_return = waiter_result
447
+
448
+ return result_to_return
449
+ rescue StandardError
450
+ raise OCI::Errors::CompositeOperationError.new(partial_results: [operation_result])
451
+ end
452
+ end
453
+ # rubocop:enable Metrics/CyclomaticComplexity, Metrics/AbcSize, Metrics/ParameterLists, Metrics/PerceivedComplexity
454
+ # rubocop:enable Layout/EmptyLines
455
+
456
+ # rubocop:disable Metrics/CyclomaticComplexity, Metrics/AbcSize, Metrics/ParameterLists, Metrics/PerceivedComplexity
457
+ # rubocop:disable Layout/EmptyLines
458
+
459
+
460
+ # Calls {OCI::Identity::IdentityClient#delete_policy} and then waits for the {OCI::Identity::Models::Policy} acted upon
461
+ # to enter the given state(s).
462
+ #
463
+ # @param [String] policy_id The OCID of the policy.
464
+ # @param [Array<String>] wait_for_states An array of states to wait on. These should be valid values for {OCI::Identity::Models::Policy#lifecycle_state}
465
+ # @param [Hash] base_operation_opts Any optional arguments accepted by {OCI::Identity::IdentityClient#delete_policy}
466
+ # @param [Hash] waiter_opts Optional arguments for the waiter. Keys should be symbols, and the following keys are supported:
467
+ # * max_interval_seconds: The maximum interval between queries, in seconds.
468
+ # * max_wait_seconds The maximum time to wait, in seconds
469
+ #
470
+ # @return [OCI::Response] A {OCI::Response} object with data of type nil
471
+ def delete_policy_and_wait_for_state(policy_id, wait_for_states = [], base_operation_opts = {}, waiter_opts = {})
472
+ initial_get_result = @service_client.get_policy(policy_id)
473
+ operation_result = @service_client.delete_policy(policy_id, base_operation_opts)
474
+
475
+ return operation_result if wait_for_states.empty?
476
+
477
+ lowered_wait_for_states = wait_for_states.map(&:downcase)
478
+
479
+ begin
480
+ waiter_result = initial_get_result.wait_until(
481
+ eval_proc: ->(response) { response.data.respond_to?(:lifecycle_state) && lowered_wait_for_states.include?(response.data.lifecycle_state.downcase) },
482
+ max_interval_seconds: waiter_opts.key?(:max_interval_seconds) ? waiter_opts[:max_interval_seconds] : 30,
483
+ max_wait_seconds: waiter_opts.key?(:max_wait_seconds) ? waiter_opts[:max_wait_seconds] : 1200,
484
+ succeed_on_not_found: true
485
+ )
486
+ result_to_return = waiter_result
487
+
488
+ return result_to_return
489
+ rescue StandardError
490
+ raise OCI::Errors::CompositeOperationError.new(partial_results: [operation_result])
491
+ end
492
+ end
493
+ # rubocop:enable Metrics/CyclomaticComplexity, Metrics/AbcSize, Metrics/ParameterLists, Metrics/PerceivedComplexity
494
+ # rubocop:enable Layout/EmptyLines
495
+
496
+ # rubocop:disable Metrics/CyclomaticComplexity, Metrics/AbcSize, Metrics/ParameterLists, Metrics/PerceivedComplexity
497
+ # rubocop:disable Layout/EmptyLines
498
+
499
+
500
+ # Calls {OCI::Identity::IdentityClient#delete_user} and then waits for the {OCI::Identity::Models::User} acted upon
501
+ # to enter the given state(s).
502
+ #
503
+ # @param [String] user_id The OCID of the user.
504
+ # @param [Array<String>] wait_for_states An array of states to wait on. These should be valid values for {OCI::Identity::Models::User#lifecycle_state}
505
+ # @param [Hash] base_operation_opts Any optional arguments accepted by {OCI::Identity::IdentityClient#delete_user}
506
+ # @param [Hash] waiter_opts Optional arguments for the waiter. Keys should be symbols, and the following keys are supported:
507
+ # * max_interval_seconds: The maximum interval between queries, in seconds.
508
+ # * max_wait_seconds The maximum time to wait, in seconds
509
+ #
510
+ # @return [OCI::Response] A {OCI::Response} object with data of type nil
511
+ def delete_user_and_wait_for_state(user_id, wait_for_states = [], base_operation_opts = {}, waiter_opts = {})
512
+ initial_get_result = @service_client.get_user(user_id)
513
+ operation_result = @service_client.delete_user(user_id, base_operation_opts)
514
+
515
+ return operation_result if wait_for_states.empty?
516
+
517
+ lowered_wait_for_states = wait_for_states.map(&:downcase)
518
+
519
+ begin
520
+ waiter_result = initial_get_result.wait_until(
521
+ eval_proc: ->(response) { response.data.respond_to?(:lifecycle_state) && lowered_wait_for_states.include?(response.data.lifecycle_state.downcase) },
522
+ max_interval_seconds: waiter_opts.key?(:max_interval_seconds) ? waiter_opts[:max_interval_seconds] : 30,
523
+ max_wait_seconds: waiter_opts.key?(:max_wait_seconds) ? waiter_opts[:max_wait_seconds] : 1200,
524
+ succeed_on_not_found: true
525
+ )
526
+ result_to_return = waiter_result
527
+
528
+ return result_to_return
529
+ rescue StandardError
530
+ raise OCI::Errors::CompositeOperationError.new(partial_results: [operation_result])
531
+ end
532
+ end
533
+ # rubocop:enable Metrics/CyclomaticComplexity, Metrics/AbcSize, Metrics/ParameterLists, Metrics/PerceivedComplexity
534
+ # rubocop:enable Layout/EmptyLines
535
+
536
+ # rubocop:disable Metrics/CyclomaticComplexity, Metrics/AbcSize, Metrics/ParameterLists, Metrics/PerceivedComplexity
537
+ # rubocop:disable Layout/EmptyLines
538
+
539
+
540
+ # Calls {OCI::Identity::IdentityClient#update_compartment} and then waits for the {OCI::Identity::Models::Compartment} acted upon
541
+ # to enter the given state(s).
542
+ #
543
+ # @param [String] compartment_id The OCID of the compartment.
544
+ # @param [OCI::Identity::Models::UpdateCompartmentDetails] update_compartment_details Request object for updating a compartment.
545
+ # @param [Array<String>] wait_for_states An array of states to wait on. These should be valid values for {OCI::Identity::Models::Compartment#lifecycle_state}
546
+ # @param [Hash] base_operation_opts Any optional arguments accepted by {OCI::Identity::IdentityClient#update_compartment}
547
+ # @param [Hash] waiter_opts Optional arguments for the waiter. Keys should be symbols, and the following keys are supported:
548
+ # * max_interval_seconds: The maximum interval between queries, in seconds.
549
+ # * max_wait_seconds The maximum time to wait, in seconds
550
+ #
551
+ # @return [OCI::Response] A {OCI::Response} object with data of type {OCI::Identity::Models::Compartment}
552
+ def update_compartment_and_wait_for_state(compartment_id, update_compartment_details, wait_for_states = [], base_operation_opts = {}, waiter_opts = {})
553
+ operation_result = @service_client.update_compartment(compartment_id, update_compartment_details, base_operation_opts)
554
+
555
+ return operation_result if wait_for_states.empty?
556
+
557
+ lowered_wait_for_states = wait_for_states.map(&:downcase)
558
+ wait_for_resource_id = operation_result.data.id
559
+
560
+ begin
561
+ waiter_result = @service_client.get_compartment(wait_for_resource_id).wait_until(
562
+ eval_proc: ->(response) { response.data.respond_to?(:lifecycle_state) && lowered_wait_for_states.include?(response.data.lifecycle_state.downcase) },
563
+ max_interval_seconds: waiter_opts.key?(:max_interval_seconds) ? waiter_opts[:max_interval_seconds] : 30,
564
+ max_wait_seconds: waiter_opts.key?(:max_wait_seconds) ? waiter_opts[:max_wait_seconds] : 1200
565
+ )
566
+ result_to_return = waiter_result
567
+
568
+ return result_to_return
569
+ rescue StandardError
570
+ raise OCI::Errors::CompositeOperationError.new(partial_results: [operation_result])
571
+ end
572
+ end
573
+ # rubocop:enable Metrics/CyclomaticComplexity, Metrics/AbcSize, Metrics/ParameterLists, Metrics/PerceivedComplexity
574
+ # rubocop:enable Layout/EmptyLines
575
+
576
+ # rubocop:disable Metrics/CyclomaticComplexity, Metrics/AbcSize, Metrics/ParameterLists, Metrics/PerceivedComplexity
577
+ # rubocop:disable Layout/EmptyLines
578
+
579
+
580
+ # Calls {OCI::Identity::IdentityClient#update_dynamic_group} and then waits for the {OCI::Identity::Models::DynamicGroup} acted upon
581
+ # to enter the given state(s).
582
+ #
583
+ # @param [String] dynamic_group_id The OCID of the dynamic group.
584
+ # @param [OCI::Identity::Models::UpdateDynamicGroupDetails] update_dynamic_group_details Request object for updating an dynamic group.
585
+ # @param [Array<String>] wait_for_states An array of states to wait on. These should be valid values for {OCI::Identity::Models::DynamicGroup#lifecycle_state}
586
+ # @param [Hash] base_operation_opts Any optional arguments accepted by {OCI::Identity::IdentityClient#update_dynamic_group}
587
+ # @param [Hash] waiter_opts Optional arguments for the waiter. Keys should be symbols, and the following keys are supported:
588
+ # * max_interval_seconds: The maximum interval between queries, in seconds.
589
+ # * max_wait_seconds The maximum time to wait, in seconds
590
+ #
591
+ # @return [OCI::Response] A {OCI::Response} object with data of type {OCI::Identity::Models::DynamicGroup}
592
+ def update_dynamic_group_and_wait_for_state(dynamic_group_id, update_dynamic_group_details, wait_for_states = [], base_operation_opts = {}, waiter_opts = {})
593
+ operation_result = @service_client.update_dynamic_group(dynamic_group_id, update_dynamic_group_details, base_operation_opts)
594
+
595
+ return operation_result if wait_for_states.empty?
596
+
597
+ lowered_wait_for_states = wait_for_states.map(&:downcase)
598
+ wait_for_resource_id = operation_result.data.id
599
+
600
+ begin
601
+ waiter_result = @service_client.get_dynamic_group(wait_for_resource_id).wait_until(
602
+ eval_proc: ->(response) { response.data.respond_to?(:lifecycle_state) && lowered_wait_for_states.include?(response.data.lifecycle_state.downcase) },
603
+ max_interval_seconds: waiter_opts.key?(:max_interval_seconds) ? waiter_opts[:max_interval_seconds] : 30,
604
+ max_wait_seconds: waiter_opts.key?(:max_wait_seconds) ? waiter_opts[:max_wait_seconds] : 1200
605
+ )
606
+ result_to_return = waiter_result
607
+
608
+ return result_to_return
609
+ rescue StandardError
610
+ raise OCI::Errors::CompositeOperationError.new(partial_results: [operation_result])
611
+ end
612
+ end
613
+ # rubocop:enable Metrics/CyclomaticComplexity, Metrics/AbcSize, Metrics/ParameterLists, Metrics/PerceivedComplexity
614
+ # rubocop:enable Layout/EmptyLines
615
+
616
+ # rubocop:disable Metrics/CyclomaticComplexity, Metrics/AbcSize, Metrics/ParameterLists, Metrics/PerceivedComplexity
617
+ # rubocop:disable Layout/EmptyLines
618
+
619
+
620
+ # Calls {OCI::Identity::IdentityClient#update_group} and then waits for the {OCI::Identity::Models::Group} acted upon
621
+ # to enter the given state(s).
622
+ #
623
+ # @param [String] group_id The OCID of the group.
624
+ # @param [OCI::Identity::Models::UpdateGroupDetails] update_group_details Request object for updating a group.
625
+ # @param [Array<String>] wait_for_states An array of states to wait on. These should be valid values for {OCI::Identity::Models::Group#lifecycle_state}
626
+ # @param [Hash] base_operation_opts Any optional arguments accepted by {OCI::Identity::IdentityClient#update_group}
627
+ # @param [Hash] waiter_opts Optional arguments for the waiter. Keys should be symbols, and the following keys are supported:
628
+ # * max_interval_seconds: The maximum interval between queries, in seconds.
629
+ # * max_wait_seconds The maximum time to wait, in seconds
630
+ #
631
+ # @return [OCI::Response] A {OCI::Response} object with data of type {OCI::Identity::Models::Group}
632
+ def update_group_and_wait_for_state(group_id, update_group_details, wait_for_states = [], base_operation_opts = {}, waiter_opts = {})
633
+ operation_result = @service_client.update_group(group_id, update_group_details, base_operation_opts)
634
+
635
+ return operation_result if wait_for_states.empty?
636
+
637
+ lowered_wait_for_states = wait_for_states.map(&:downcase)
638
+ wait_for_resource_id = operation_result.data.id
639
+
640
+ begin
641
+ waiter_result = @service_client.get_group(wait_for_resource_id).wait_until(
642
+ eval_proc: ->(response) { response.data.respond_to?(:lifecycle_state) && lowered_wait_for_states.include?(response.data.lifecycle_state.downcase) },
643
+ max_interval_seconds: waiter_opts.key?(:max_interval_seconds) ? waiter_opts[:max_interval_seconds] : 30,
644
+ max_wait_seconds: waiter_opts.key?(:max_wait_seconds) ? waiter_opts[:max_wait_seconds] : 1200
645
+ )
646
+ result_to_return = waiter_result
647
+
648
+ return result_to_return
649
+ rescue StandardError
650
+ raise OCI::Errors::CompositeOperationError.new(partial_results: [operation_result])
651
+ end
652
+ end
653
+ # rubocop:enable Metrics/CyclomaticComplexity, Metrics/AbcSize, Metrics/ParameterLists, Metrics/PerceivedComplexity
654
+ # rubocop:enable Layout/EmptyLines
655
+
656
+ # rubocop:disable Metrics/CyclomaticComplexity, Metrics/AbcSize, Metrics/ParameterLists, Metrics/PerceivedComplexity
657
+ # rubocop:disable Layout/EmptyLines
658
+
659
+
660
+ # Calls {OCI::Identity::IdentityClient#update_identity_provider} and then waits for the {OCI::Identity::Models::IdentityProvider} acted upon
661
+ # to enter the given state(s).
662
+ #
663
+ # @param [String] identity_provider_id The OCID of the identity provider.
664
+ # @param [OCI::Identity::Models::UpdateIdentityProviderDetails] update_identity_provider_details Request object for updating a identity provider.
665
+ # @param [Array<String>] wait_for_states An array of states to wait on. These should be valid values for {OCI::Identity::Models::IdentityProvider#lifecycle_state}
666
+ # @param [Hash] base_operation_opts Any optional arguments accepted by {OCI::Identity::IdentityClient#update_identity_provider}
667
+ # @param [Hash] waiter_opts Optional arguments for the waiter. Keys should be symbols, and the following keys are supported:
668
+ # * max_interval_seconds: The maximum interval between queries, in seconds.
669
+ # * max_wait_seconds The maximum time to wait, in seconds
670
+ #
671
+ # @return [OCI::Response] A {OCI::Response} object with data of type {OCI::Identity::Models::IdentityProvider}
672
+ def update_identity_provider_and_wait_for_state(identity_provider_id, update_identity_provider_details, wait_for_states = [], base_operation_opts = {}, waiter_opts = {})
673
+ operation_result = @service_client.update_identity_provider(identity_provider_id, update_identity_provider_details, base_operation_opts)
674
+
675
+ return operation_result if wait_for_states.empty?
676
+
677
+ lowered_wait_for_states = wait_for_states.map(&:downcase)
678
+ wait_for_resource_id = operation_result.data.id
679
+
680
+ begin
681
+ waiter_result = @service_client.get_identity_provider(wait_for_resource_id).wait_until(
682
+ eval_proc: ->(response) { response.data.respond_to?(:lifecycle_state) && lowered_wait_for_states.include?(response.data.lifecycle_state.downcase) },
683
+ max_interval_seconds: waiter_opts.key?(:max_interval_seconds) ? waiter_opts[:max_interval_seconds] : 30,
684
+ max_wait_seconds: waiter_opts.key?(:max_wait_seconds) ? waiter_opts[:max_wait_seconds] : 1200
685
+ )
686
+ result_to_return = waiter_result
687
+
688
+ return result_to_return
689
+ rescue StandardError
690
+ raise OCI::Errors::CompositeOperationError.new(partial_results: [operation_result])
691
+ end
692
+ end
693
+ # rubocop:enable Metrics/CyclomaticComplexity, Metrics/AbcSize, Metrics/ParameterLists, Metrics/PerceivedComplexity
694
+ # rubocop:enable Layout/EmptyLines
695
+
696
+ # rubocop:disable Metrics/CyclomaticComplexity, Metrics/AbcSize, Metrics/ParameterLists, Metrics/PerceivedComplexity
697
+ # rubocop:disable Layout/EmptyLines
698
+
699
+
700
+ # Calls {OCI::Identity::IdentityClient#update_idp_group_mapping} and then waits for the {OCI::Identity::Models::IdpGroupMapping} acted upon
701
+ # to enter the given state(s).
702
+ #
703
+ # @param [String] identity_provider_id The OCID of the identity provider.
704
+ # @param [String] mapping_id The OCID of the group mapping.
705
+ # @param [OCI::Identity::Models::UpdateIdpGroupMappingDetails] update_idp_group_mapping_details Request object for updating an identity provider group mapping
706
+ # @param [Array<String>] wait_for_states An array of states to wait on. These should be valid values for {OCI::Identity::Models::IdpGroupMapping#lifecycle_state}
707
+ # @param [Hash] base_operation_opts Any optional arguments accepted by {OCI::Identity::IdentityClient#update_idp_group_mapping}
708
+ # @param [Hash] waiter_opts Optional arguments for the waiter. Keys should be symbols, and the following keys are supported:
709
+ # * max_interval_seconds: The maximum interval between queries, in seconds.
710
+ # * max_wait_seconds The maximum time to wait, in seconds
711
+ #
712
+ # @return [OCI::Response] A {OCI::Response} object with data of type {OCI::Identity::Models::IdpGroupMapping}
713
+ def update_idp_group_mapping_and_wait_for_state(identity_provider_id, mapping_id, update_idp_group_mapping_details, wait_for_states = [], base_operation_opts = {}, waiter_opts = {})
714
+ operation_result = @service_client.update_idp_group_mapping(identity_provider_id, mapping_id, update_idp_group_mapping_details, base_operation_opts)
715
+
716
+ return operation_result if wait_for_states.empty?
717
+
718
+ lowered_wait_for_states = wait_for_states.map(&:downcase)
719
+ wait_for_resource_id = operation_result.data.id
720
+
721
+ begin
722
+ waiter_result = @service_client.get_idp_group_mapping(wait_for_resource_id).wait_until(
723
+ eval_proc: ->(response) { response.data.respond_to?(:lifecycle_state) && lowered_wait_for_states.include?(response.data.lifecycle_state.downcase) },
724
+ max_interval_seconds: waiter_opts.key?(:max_interval_seconds) ? waiter_opts[:max_interval_seconds] : 30,
725
+ max_wait_seconds: waiter_opts.key?(:max_wait_seconds) ? waiter_opts[:max_wait_seconds] : 1200
726
+ )
727
+ result_to_return = waiter_result
728
+
729
+ return result_to_return
730
+ rescue StandardError
731
+ raise OCI::Errors::CompositeOperationError.new(partial_results: [operation_result])
732
+ end
733
+ end
734
+ # rubocop:enable Metrics/CyclomaticComplexity, Metrics/AbcSize, Metrics/ParameterLists, Metrics/PerceivedComplexity
735
+ # rubocop:enable Layout/EmptyLines
736
+
737
+ # rubocop:disable Metrics/CyclomaticComplexity, Metrics/AbcSize, Metrics/ParameterLists, Metrics/PerceivedComplexity
738
+ # rubocop:disable Layout/EmptyLines
739
+
740
+
741
+ # Calls {OCI::Identity::IdentityClient#update_policy} and then waits for the {OCI::Identity::Models::Policy} acted upon
742
+ # to enter the given state(s).
743
+ #
744
+ # @param [String] policy_id The OCID of the policy.
745
+ # @param [OCI::Identity::Models::UpdatePolicyDetails] update_policy_details Request object for updating a policy.
746
+ # @param [Array<String>] wait_for_states An array of states to wait on. These should be valid values for {OCI::Identity::Models::Policy#lifecycle_state}
747
+ # @param [Hash] base_operation_opts Any optional arguments accepted by {OCI::Identity::IdentityClient#update_policy}
748
+ # @param [Hash] waiter_opts Optional arguments for the waiter. Keys should be symbols, and the following keys are supported:
749
+ # * max_interval_seconds: The maximum interval between queries, in seconds.
750
+ # * max_wait_seconds The maximum time to wait, in seconds
751
+ #
752
+ # @return [OCI::Response] A {OCI::Response} object with data of type {OCI::Identity::Models::Policy}
753
+ def update_policy_and_wait_for_state(policy_id, update_policy_details, wait_for_states = [], base_operation_opts = {}, waiter_opts = {})
754
+ operation_result = @service_client.update_policy(policy_id, update_policy_details, base_operation_opts)
755
+
756
+ return operation_result if wait_for_states.empty?
757
+
758
+ lowered_wait_for_states = wait_for_states.map(&:downcase)
759
+ wait_for_resource_id = operation_result.data.id
760
+
761
+ begin
762
+ waiter_result = @service_client.get_policy(wait_for_resource_id).wait_until(
763
+ eval_proc: ->(response) { response.data.respond_to?(:lifecycle_state) && lowered_wait_for_states.include?(response.data.lifecycle_state.downcase) },
764
+ max_interval_seconds: waiter_opts.key?(:max_interval_seconds) ? waiter_opts[:max_interval_seconds] : 30,
765
+ max_wait_seconds: waiter_opts.key?(:max_wait_seconds) ? waiter_opts[:max_wait_seconds] : 1200
766
+ )
767
+ result_to_return = waiter_result
768
+
769
+ return result_to_return
770
+ rescue StandardError
771
+ raise OCI::Errors::CompositeOperationError.new(partial_results: [operation_result])
772
+ end
773
+ end
774
+ # rubocop:enable Metrics/CyclomaticComplexity, Metrics/AbcSize, Metrics/ParameterLists, Metrics/PerceivedComplexity
775
+ # rubocop:enable Layout/EmptyLines
776
+
777
+ # rubocop:disable Metrics/CyclomaticComplexity, Metrics/AbcSize, Metrics/ParameterLists, Metrics/PerceivedComplexity
778
+ # rubocop:disable Layout/EmptyLines
779
+
780
+
781
+ # Calls {OCI::Identity::IdentityClient#update_user} and then waits for the {OCI::Identity::Models::User} acted upon
782
+ # to enter the given state(s).
783
+ #
784
+ # @param [String] user_id The OCID of the user.
785
+ # @param [OCI::Identity::Models::UpdateUserDetails] update_user_details Request object for updating a user.
786
+ # @param [Array<String>] wait_for_states An array of states to wait on. These should be valid values for {OCI::Identity::Models::User#lifecycle_state}
787
+ # @param [Hash] base_operation_opts Any optional arguments accepted by {OCI::Identity::IdentityClient#update_user}
788
+ # @param [Hash] waiter_opts Optional arguments for the waiter. Keys should be symbols, and the following keys are supported:
789
+ # * max_interval_seconds: The maximum interval between queries, in seconds.
790
+ # * max_wait_seconds The maximum time to wait, in seconds
791
+ #
792
+ # @return [OCI::Response] A {OCI::Response} object with data of type {OCI::Identity::Models::User}
793
+ def update_user_and_wait_for_state(user_id, update_user_details, wait_for_states = [], base_operation_opts = {}, waiter_opts = {})
794
+ operation_result = @service_client.update_user(user_id, update_user_details, base_operation_opts)
795
+
796
+ return operation_result if wait_for_states.empty?
797
+
798
+ lowered_wait_for_states = wait_for_states.map(&:downcase)
799
+ wait_for_resource_id = operation_result.data.id
800
+
801
+ begin
802
+ waiter_result = @service_client.get_user(wait_for_resource_id).wait_until(
803
+ eval_proc: ->(response) { response.data.respond_to?(:lifecycle_state) && lowered_wait_for_states.include?(response.data.lifecycle_state.downcase) },
804
+ max_interval_seconds: waiter_opts.key?(:max_interval_seconds) ? waiter_opts[:max_interval_seconds] : 30,
805
+ max_wait_seconds: waiter_opts.key?(:max_wait_seconds) ? waiter_opts[:max_wait_seconds] : 1200
806
+ )
807
+ result_to_return = waiter_result
808
+
809
+ return result_to_return
810
+ rescue StandardError
811
+ raise OCI::Errors::CompositeOperationError.new(partial_results: [operation_result])
812
+ end
813
+ end
814
+ # rubocop:enable Metrics/CyclomaticComplexity, Metrics/AbcSize, Metrics/ParameterLists, Metrics/PerceivedComplexity
815
+ # rubocop:enable Layout/EmptyLines
816
+ end
817
+ end
818
+ # rubocop:enable Lint/UnneededCopDisableDirective, Metrics/LineLength