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
@@ -1,7 +1,9 @@
1
1
  # Copyright (c) 2016, 2018, Oracle and/or its affiliates. All rights reserved.
2
2
 
3
3
  require 'date'
4
+ require 'logger'
4
5
 
6
+ # rubocop:disable Lint/UnneededCopDisableDirective
5
7
  module OCI
6
8
  # For use with Oracle Cloud Infrastructure FastConnect. A cross-connect group
7
9
  # is a link aggregation group (LAG), which can contain one or more
@@ -17,14 +19,15 @@ module OCI
17
19
  # talk to an administrator. If you're an administrator who needs to write policies to give users access, see
18
20
  # [Getting Started with Policies](https://docs.us-phoenix-1.oraclecloud.com/Content/Identity/Concepts/policygetstarted.htm).
19
21
  #
20
- class Core::Models::CrossConnectGroup
21
-
22
- LIFECYCLE_STATE_ENUM = [LIFECYCLE_STATE_PROVISIONING = 'PROVISIONING',
23
- LIFECYCLE_STATE_PROVISIONED = 'PROVISIONED',
24
- LIFECYCLE_STATE_INACTIVE = 'INACTIVE',
25
- LIFECYCLE_STATE_TERMINATING = 'TERMINATING',
26
- LIFECYCLE_STATE_TERMINATED = 'TERMINATED',
27
- LIFECYCLE_STATE_UNKNOWN_ENUM_VALUE = 'UNKNOWN_ENUM_VALUE']
22
+ class Core::Models::CrossConnectGroup # rubocop:disable Metrics/LineLength
23
+ LIFECYCLE_STATE_ENUM = [
24
+ LIFECYCLE_STATE_PROVISIONING = 'PROVISIONING'.freeze,
25
+ LIFECYCLE_STATE_PROVISIONED = 'PROVISIONED'.freeze,
26
+ LIFECYCLE_STATE_INACTIVE = 'INACTIVE'.freeze,
27
+ LIFECYCLE_STATE_TERMINATING = 'TERMINATING'.freeze,
28
+ LIFECYCLE_STATE_TERMINATED = 'TERMINATED'.freeze,
29
+ LIFECYCLE_STATE_UNKNOWN_ENUM_VALUE = 'UNKNOWN_ENUM_VALUE'.freeze
30
+ ].freeze
28
31
 
29
32
  # The OCID of the compartment containing the cross-connect group.
30
33
  # @return [String]
@@ -32,7 +35,7 @@ module OCI
32
35
 
33
36
  # The display name of A user-friendly name. Does not have to be unique, and it's changeable.
34
37
  # Avoid entering confidential information.
35
- #
38
+ #
36
39
  # @return [String]
37
40
  attr_accessor :display_name
38
41
 
@@ -42,15 +45,44 @@ module OCI
42
45
 
43
46
  # The cross-connect group's current state.
44
47
  # @return [String]
45
- attr_accessor :lifecycle_state
48
+ attr_reader :lifecycle_state
46
49
 
47
50
  # The date and time the cross-connect group was created, in the format defined by RFC3339.
48
- #
51
+ #
49
52
  # Example: `2016-08-25T21:10:29.600Z`
50
- #
53
+ #
51
54
  # @return [DateTime]
52
55
  attr_accessor :time_created
53
56
 
57
+ # Attribute mapping from ruby-style variable name to JSON key.
58
+ def self.attribute_map
59
+ {
60
+ # rubocop:disable Style/SymbolLiteral
61
+ 'compartment_id': :'compartmentId',
62
+ 'display_name': :'displayName',
63
+ 'id': :'id',
64
+ 'lifecycle_state': :'lifecycleState',
65
+ 'time_created': :'timeCreated'
66
+ # rubocop:enable Style/SymbolLiteral
67
+ }
68
+ end
69
+
70
+ # Attribute type mapping.
71
+ def self.swagger_types
72
+ {
73
+ # rubocop:disable Style/SymbolLiteral
74
+ 'compartment_id': :'String',
75
+ 'display_name': :'String',
76
+ 'id': :'String',
77
+ 'lifecycle_state': :'String',
78
+ 'time_created': :'DateTime'
79
+ # rubocop:enable Style/SymbolLiteral
80
+ }
81
+ end
82
+
83
+ # rubocop:disable Metrics/CyclomaticComplexity, Metrics/AbcSize, Metrics/PerceivedComplexity
84
+ # rubocop:disable Metrics/LineLength, Metrics/MethodLength, Layout/EmptyLines, Style/SymbolLiteral
85
+
54
86
 
55
87
  # Initializes the object
56
88
  # @param [Hash] attributes Model attributes in the form of hash
@@ -63,87 +95,86 @@ module OCI
63
95
  return unless attributes.is_a?(Hash)
64
96
 
65
97
  # convert string to symbol for hash key
66
- attributes = attributes.each_with_object({}){|(k,v), h| h[k.to_sym] = v}
98
+ attributes = attributes.each_with_object({}) { |(k, v), h| h[k.to_sym] = v }
67
99
 
68
- if attributes[:'compartmentId']
69
- self.compartment_id = attributes[:'compartmentId']
70
- end
100
+ self.compartment_id = attributes[:'compartmentId'] if attributes[:'compartmentId']
71
101
 
72
102
  raise 'You cannot provide both :compartmentId and :compartment_id' if attributes.key?(:'compartmentId') && attributes.key?(:'compartment_id')
73
103
 
74
- if attributes[:'compartment_id']
75
- self.compartment_id = attributes[:'compartment_id']
76
- end
104
+ self.compartment_id = attributes[:'compartment_id'] if attributes[:'compartment_id']
77
105
 
78
- if attributes[:'displayName']
79
- self.display_name = attributes[:'displayName']
80
- end
106
+ self.display_name = attributes[:'displayName'] if attributes[:'displayName']
81
107
 
82
108
  raise 'You cannot provide both :displayName and :display_name' if attributes.key?(:'displayName') && attributes.key?(:'display_name')
83
109
 
84
- if attributes[:'display_name']
85
- self.display_name = attributes[:'display_name']
86
- end
110
+ self.display_name = attributes[:'display_name'] if attributes[:'display_name']
87
111
 
88
- if attributes[:'id']
89
- self.id = attributes[:'id']
90
- end
112
+ self.id = attributes[:'id'] if attributes[:'id']
91
113
 
92
- if attributes[:'lifecycleState']
93
- self.lifecycle_state = attributes[:'lifecycleState']
94
- end
114
+ self.lifecycle_state = attributes[:'lifecycleState'] if attributes[:'lifecycleState']
95
115
 
96
116
  raise 'You cannot provide both :lifecycleState and :lifecycle_state' if attributes.key?(:'lifecycleState') && attributes.key?(:'lifecycle_state')
97
117
 
98
- if attributes[:'lifecycle_state']
99
- self.lifecycle_state = attributes[:'lifecycle_state']
100
- end
118
+ self.lifecycle_state = attributes[:'lifecycle_state'] if attributes[:'lifecycle_state']
101
119
 
102
- if attributes[:'timeCreated']
103
- self.time_created = attributes[:'timeCreated']
104
- end
120
+ self.time_created = attributes[:'timeCreated'] if attributes[:'timeCreated']
105
121
 
106
122
  raise 'You cannot provide both :timeCreated and :time_created' if attributes.key?(:'timeCreated') && attributes.key?(:'time_created')
107
123
 
108
- if attributes[:'time_created']
109
- self.time_created = attributes[:'time_created']
110
- end
111
-
124
+ self.time_created = attributes[:'time_created'] if attributes[:'time_created']
112
125
  end
126
+ # rubocop:enable Metrics/CyclomaticComplexity, Metrics/AbcSize, Metrics/PerceivedComplexity
127
+ # rubocop:enable Metrics/LineLength, Metrics/MethodLength, Layout/EmptyLines, Style/SymbolLiteral
113
128
 
114
129
  # Custom attribute writer method checking allowed values (enum).
115
130
  # @param [Object] lifecycle_state Object to be assigned
116
131
  def lifecycle_state=(lifecycle_state)
132
+ # rubocop:disable Style/ConditionalAssignment
117
133
  if lifecycle_state && !LIFECYCLE_STATE_ENUM.include?(lifecycle_state)
134
+ # rubocop: disable Metrics/LineLength
135
+ OCI.logger.debug("Unknown value for 'lifecycle_state' [" + lifecycle_state + "]. Mapping to 'LIFECYCLE_STATE_UNKNOWN_ENUM_VALUE'") if OCI.logger
136
+ # rubocop: enable Metrics/LineLength
118
137
  @lifecycle_state = LIFECYCLE_STATE_UNKNOWN_ENUM_VALUE
119
138
  else
120
139
  @lifecycle_state = lifecycle_state
121
140
  end
141
+ # rubocop:enable Style/ConditionalAssignment
122
142
  end
123
143
 
144
+ # rubocop:disable Metrics/CyclomaticComplexity, Metrics/AbcSize, Metrics/PerceivedComplexity, Layout/EmptyLines
145
+
146
+
124
147
  # Checks equality by comparing each attribute.
125
- # @param [Object] other_object to be compared
126
- def ==(other_object)
127
- return true if self.equal?(other_object)
128
- self.class == other_object.class &&
129
- compartment_id == other_object.compartment_id &&
130
- display_name == other_object.display_name &&
131
- id == other_object.id &&
132
- lifecycle_state == other_object.lifecycle_state &&
133
- time_created == other_object.time_created
148
+ # @param [Object] other the other object to be compared
149
+ def ==(other)
150
+ return true if equal?(other)
151
+ self.class == other.class &&
152
+ compartment_id == other.compartment_id &&
153
+ display_name == other.display_name &&
154
+ id == other.id &&
155
+ lifecycle_state == other.lifecycle_state &&
156
+ time_created == other.time_created
134
157
  end
158
+ # rubocop:enable Metrics/CyclomaticComplexity, Metrics/AbcSize, Metrics/PerceivedComplexity, Layout/EmptyLines
135
159
 
136
160
  # @see the `==` method
137
- # @param [Object] other_object to be compared
138
- def eql?(other_object)
139
- self == other_object
161
+ # @param [Object] other the other object to be compared
162
+ def eql?(other)
163
+ self == other
140
164
  end
141
165
 
166
+ # rubocop:disable Metrics/AbcSize, Metrics/LineLength, Layout/EmptyLines
167
+
168
+
142
169
  # Calculates hash code according to all attributes.
143
170
  # @return [Fixnum] Hash code
144
171
  def hash
145
172
  [compartment_id, display_name, id, lifecycle_state, time_created].hash
146
173
  end
174
+ # rubocop:enable Metrics/AbcSize, Metrics/LineLength, Layout/EmptyLines
175
+
176
+ # rubocop:disable Metrics/AbcSize, Layout/EmptyLines
177
+
147
178
 
148
179
  # Builds the object from hash
149
180
  # @param [Hash] attributes Model attributes in the form of hash
@@ -155,15 +186,22 @@ module OCI
155
186
  # check to ensure the input is an array given that the the attribute
156
187
  # is documented as an array but the input is not
157
188
  if attributes[self.class.attribute_map[key]].is_a?(Array)
158
- self.public_method("#{key}=").call(attributes[self.class.attribute_map[key]].map{ |v| OCI::Internal::Util.convert_to_type($1, v) } )
189
+ public_method("#{key}=").call(
190
+ attributes[self.class.attribute_map[key]]
191
+ .map { |v| OCI::Internal::Util.convert_to_type(Regexp.last_match(1), v) }
192
+ )
159
193
  end
160
194
  elsif !attributes[self.class.attribute_map[key]].nil?
161
- self.public_method("#{key}=").call(OCI::Internal::Util.convert_to_type(type, attributes[self.class.attribute_map[key]]))
162
- end # or else data not found in attributes(hash), not an issue as the data can be optional
195
+ public_method("#{key}=").call(
196
+ OCI::Internal::Util.convert_to_type(type, attributes[self.class.attribute_map[key]])
197
+ )
198
+ end
199
+ # or else data not found in attributes(hash), not an issue as the data can be optional
163
200
  end
164
201
 
165
202
  self
166
203
  end
204
+ # rubocop:enable Metrics/AbcSize, Layout/EmptyLines
167
205
 
168
206
  # Returns the string representation of the object
169
207
  # @return [String] String presentation of the object
@@ -187,11 +225,11 @@ module OCI
187
225
 
188
226
  # Outputs non-array value in the form of hash
189
227
  # For object, use to_hash. Otherwise, just return the value
190
- # @param [Object] value Any valid value
228
+ # @param [Object] value Any valid value
191
229
  # @return [Hash] Returns the value in the form of hash
192
230
  def _to_hash(value)
193
231
  if value.is_a?(Array)
194
- value.compact.map{ |v| _to_hash(v) }
232
+ value.compact.map { |v| _to_hash(v) }
195
233
  elsif value.is_a?(Hash)
196
234
  {}.tap do |hash|
197
235
  value.each { |k, v| hash[k] = _to_hash(v) }
@@ -202,29 +240,6 @@ module OCI
202
240
  value
203
241
  end
204
242
  end
205
-
206
-
207
-
208
- # Attribute mapping from ruby-style variable name to JSON key.
209
- def self.attribute_map
210
- {
211
- :'compartment_id' => :'compartmentId',
212
- :'display_name' => :'displayName',
213
- :'id' => :'id',
214
- :'lifecycle_state' => :'lifecycleState',
215
- :'time_created' => :'timeCreated'
216
- }
217
- end
218
-
219
- # Attribute type mapping.
220
- def self.swagger_types
221
- {
222
- :'compartment_id' => :'String',
223
- :'display_name' => :'String',
224
- :'id' => :'String',
225
- :'lifecycle_state' => :'String',
226
- :'time_created' => :'DateTime'
227
- }
228
- end
229
243
  end
230
244
  end
245
+ # rubocop:enable Lint/UnneededCopDisableDirective
@@ -2,20 +2,44 @@
2
2
 
3
3
  require 'date'
4
4
 
5
+ # rubocop:disable Lint/UnneededCopDisableDirective
5
6
  module OCI
6
7
  # An individual FastConnect location.
7
- class Core::Models::CrossConnectLocation
8
+ class Core::Models::CrossConnectLocation # rubocop:disable Metrics/LineLength
8
9
  # **[Required]** A description of the location.
9
10
  # @return [String]
10
11
  attr_accessor :description
11
12
 
12
13
  # **[Required]** The name of the location.
13
- #
14
+ #
14
15
  # Example: `CyrusOne, Chandler, AZ`
15
- #
16
+ #
16
17
  # @return [String]
17
18
  attr_accessor :name
18
19
 
20
+ # Attribute mapping from ruby-style variable name to JSON key.
21
+ def self.attribute_map
22
+ {
23
+ # rubocop:disable Style/SymbolLiteral
24
+ 'description': :'description',
25
+ 'name': :'name'
26
+ # rubocop:enable Style/SymbolLiteral
27
+ }
28
+ end
29
+
30
+ # Attribute type mapping.
31
+ def self.swagger_types
32
+ {
33
+ # rubocop:disable Style/SymbolLiteral
34
+ 'description': :'String',
35
+ 'name': :'String'
36
+ # rubocop:enable Style/SymbolLiteral
37
+ }
38
+ end
39
+
40
+ # rubocop:disable Metrics/CyclomaticComplexity, Metrics/AbcSize, Metrics/PerceivedComplexity
41
+ # rubocop:disable Metrics/LineLength, Metrics/MethodLength, Layout/EmptyLines, Style/SymbolLiteral
42
+
19
43
 
20
44
  # Initializes the object
21
45
  # @param [Hash] attributes Model attributes in the form of hash
@@ -25,38 +49,46 @@ module OCI
25
49
  return unless attributes.is_a?(Hash)
26
50
 
27
51
  # convert string to symbol for hash key
28
- attributes = attributes.each_with_object({}){|(k,v), h| h[k.to_sym] = v}
29
-
30
- if attributes[:'description']
31
- self.description = attributes[:'description']
32
- end
52
+ attributes = attributes.each_with_object({}) { |(k, v), h| h[k.to_sym] = v }
33
53
 
34
- if attributes[:'name']
35
- self.name = attributes[:'name']
36
- end
54
+ self.description = attributes[:'description'] if attributes[:'description']
37
55
 
56
+ self.name = attributes[:'name'] if attributes[:'name']
38
57
  end
58
+ # rubocop:enable Metrics/CyclomaticComplexity, Metrics/AbcSize, Metrics/PerceivedComplexity
59
+ # rubocop:enable Metrics/LineLength, Metrics/MethodLength, Layout/EmptyLines, Style/SymbolLiteral
60
+
61
+ # rubocop:disable Metrics/CyclomaticComplexity, Metrics/AbcSize, Metrics/PerceivedComplexity, Layout/EmptyLines
62
+
39
63
 
40
64
  # Checks equality by comparing each attribute.
41
- # @param [Object] other_object to be compared
42
- def ==(other_object)
43
- return true if self.equal?(other_object)
44
- self.class == other_object.class &&
45
- description == other_object.description &&
46
- name == other_object.name
65
+ # @param [Object] other the other object to be compared
66
+ def ==(other)
67
+ return true if equal?(other)
68
+ self.class == other.class &&
69
+ description == other.description &&
70
+ name == other.name
47
71
  end
72
+ # rubocop:enable Metrics/CyclomaticComplexity, Metrics/AbcSize, Metrics/PerceivedComplexity, Layout/EmptyLines
48
73
 
49
74
  # @see the `==` method
50
- # @param [Object] other_object to be compared
51
- def eql?(other_object)
52
- self == other_object
75
+ # @param [Object] other the other object to be compared
76
+ def eql?(other)
77
+ self == other
53
78
  end
54
79
 
80
+ # rubocop:disable Metrics/AbcSize, Metrics/LineLength, Layout/EmptyLines
81
+
82
+
55
83
  # Calculates hash code according to all attributes.
56
84
  # @return [Fixnum] Hash code
57
85
  def hash
58
86
  [description, name].hash
59
87
  end
88
+ # rubocop:enable Metrics/AbcSize, Metrics/LineLength, Layout/EmptyLines
89
+
90
+ # rubocop:disable Metrics/AbcSize, Layout/EmptyLines
91
+
60
92
 
61
93
  # Builds the object from hash
62
94
  # @param [Hash] attributes Model attributes in the form of hash
@@ -68,15 +100,22 @@ module OCI
68
100
  # check to ensure the input is an array given that the the attribute
69
101
  # is documented as an array but the input is not
70
102
  if attributes[self.class.attribute_map[key]].is_a?(Array)
71
- self.public_method("#{key}=").call(attributes[self.class.attribute_map[key]].map{ |v| OCI::Internal::Util.convert_to_type($1, v) } )
103
+ public_method("#{key}=").call(
104
+ attributes[self.class.attribute_map[key]]
105
+ .map { |v| OCI::Internal::Util.convert_to_type(Regexp.last_match(1), v) }
106
+ )
72
107
  end
73
108
  elsif !attributes[self.class.attribute_map[key]].nil?
74
- self.public_method("#{key}=").call(OCI::Internal::Util.convert_to_type(type, attributes[self.class.attribute_map[key]]))
75
- end # or else data not found in attributes(hash), not an issue as the data can be optional
109
+ public_method("#{key}=").call(
110
+ OCI::Internal::Util.convert_to_type(type, attributes[self.class.attribute_map[key]])
111
+ )
112
+ end
113
+ # or else data not found in attributes(hash), not an issue as the data can be optional
76
114
  end
77
115
 
78
116
  self
79
117
  end
118
+ # rubocop:enable Metrics/AbcSize, Layout/EmptyLines
80
119
 
81
120
  # Returns the string representation of the object
82
121
  # @return [String] String presentation of the object
@@ -100,11 +139,11 @@ module OCI
100
139
 
101
140
  # Outputs non-array value in the form of hash
102
141
  # For object, use to_hash. Otherwise, just return the value
103
- # @param [Object] value Any valid value
142
+ # @param [Object] value Any valid value
104
143
  # @return [Hash] Returns the value in the form of hash
105
144
  def _to_hash(value)
106
145
  if value.is_a?(Array)
107
- value.compact.map{ |v| _to_hash(v) }
146
+ value.compact.map { |v| _to_hash(v) }
108
147
  elsif value.is_a?(Hash)
109
148
  {}.tap do |hash|
110
149
  value.each { |k, v| hash[k] = _to_hash(v) }
@@ -115,23 +154,6 @@ module OCI
115
154
  value
116
155
  end
117
156
  end
118
-
119
-
120
-
121
- # Attribute mapping from ruby-style variable name to JSON key.
122
- def self.attribute_map
123
- {
124
- :'description' => :'description',
125
- :'name' => :'name'
126
- }
127
- end
128
-
129
- # Attribute type mapping.
130
- def self.swagger_types
131
- {
132
- :'description' => :'String',
133
- :'name' => :'String'
134
- }
135
- end
136
157
  end
137
158
  end
159
+ # rubocop:enable Lint/UnneededCopDisableDirective