oci-cli 3.63.2__py3-none-any.whl → 3.64.0__py3-none-any.whl

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 (341) hide show
  1. oci_cli/bin/devops.psm1 +5 -1
  2. oci_cli/bin/multicloud.psm1 +53 -0
  3. oci_cli/bin/redis.psm1 +28 -3
  4. oci_cli/help_text_producer/data_files/text/cmdref/ai-vision/stream-group/change-compartment.txt +133 -0
  5. oci_cli/help_text_producer/data_files/text/cmdref/ai-vision/stream-group/create.txt +180 -0
  6. oci_cli/help_text_producer/data_files/text/cmdref/ai-vision/stream-group/delete.txt +131 -0
  7. oci_cli/help_text_producer/data_files/text/cmdref/ai-vision/stream-group/get.txt +93 -0
  8. oci_cli/help_text_producer/data_files/text/cmdref/ai-vision/stream-group/update.txt +194 -0
  9. oci_cli/help_text_producer/data_files/text/cmdref/ai-vision/stream-group-collection/list-stream-groups.txt +129 -0
  10. oci_cli/help_text_producer/data_files/text/cmdref/ai-vision/stream-group-collection.txt +14 -0
  11. oci_cli/help_text_producer/data_files/text/cmdref/ai-vision/stream-group.txt +22 -0
  12. oci_cli/help_text_producer/data_files/text/cmdref/ai-vision/stream-job/change-compartment.txt +142 -0
  13. oci_cli/help_text_producer/data_files/text/cmdref/ai-vision/stream-job/create-stream-job-object-storage-output-location.txt +187 -0
  14. oci_cli/help_text_producer/data_files/text/cmdref/ai-vision/stream-job/create.txt +184 -0
  15. oci_cli/help_text_producer/data_files/text/cmdref/ai-vision/stream-job/delete.txt +141 -0
  16. oci_cli/help_text_producer/data_files/text/cmdref/ai-vision/stream-job/get.txt +103 -0
  17. oci_cli/help_text_producer/data_files/text/cmdref/ai-vision/stream-job/start.txt +137 -0
  18. oci_cli/help_text_producer/data_files/text/cmdref/ai-vision/stream-job/stop.txt +137 -0
  19. oci_cli/help_text_producer/data_files/text/cmdref/ai-vision/stream-job/update-stream-job-object-storage-output-location.txt +206 -0
  20. oci_cli/help_text_producer/data_files/text/cmdref/ai-vision/stream-job/update.txt +202 -0
  21. oci_cli/help_text_producer/data_files/text/cmdref/ai-vision/stream-job-collection/list-stream-jobs.txt +137 -0
  22. oci_cli/help_text_producer/data_files/text/cmdref/ai-vision/stream-job-collection.txt +14 -0
  23. oci_cli/help_text_producer/data_files/text/cmdref/ai-vision/stream-job.txt +30 -0
  24. oci_cli/help_text_producer/data_files/text/cmdref/ai-vision/stream-source/change-compartment.txt +138 -0
  25. oci_cli/help_text_producer/data_files/text/cmdref/ai-vision/stream-source/create-stream-source-rtsp-source-details.txt +173 -0
  26. oci_cli/help_text_producer/data_files/text/cmdref/ai-vision/stream-source/create.txt +163 -0
  27. oci_cli/help_text_producer/data_files/text/cmdref/ai-vision/stream-source/delete.txt +136 -0
  28. oci_cli/help_text_producer/data_files/text/cmdref/ai-vision/stream-source/get.txt +98 -0
  29. oci_cli/help_text_producer/data_files/text/cmdref/ai-vision/stream-source/update-stream-source-rtsp-source-details.txt +189 -0
  30. oci_cli/help_text_producer/data_files/text/cmdref/ai-vision/stream-source/update.txt +177 -0
  31. oci_cli/help_text_producer/data_files/text/cmdref/ai-vision/stream-source-collection/list-stream-sources.txt +137 -0
  32. oci_cli/help_text_producer/data_files/text/cmdref/ai-vision/stream-source-collection.txt +14 -0
  33. oci_cli/help_text_producer/data_files/text/cmdref/ai-vision/stream-source.txt +26 -0
  34. oci_cli/help_text_producer/data_files/text/cmdref/ai-vision/vision-private-endpoint/change-compartment.txt +108 -0
  35. oci_cli/help_text_producer/data_files/text/cmdref/ai-vision/vision-private-endpoint/create.txt +157 -0
  36. oci_cli/help_text_producer/data_files/text/cmdref/ai-vision/vision-private-endpoint/delete.txt +132 -0
  37. oci_cli/help_text_producer/data_files/text/cmdref/ai-vision/vision-private-endpoint/get.txt +94 -0
  38. oci_cli/help_text_producer/data_files/text/cmdref/ai-vision/vision-private-endpoint/update.txt +167 -0
  39. oci_cli/help_text_producer/data_files/text/cmdref/ai-vision/vision-private-endpoint-collection/list-vision-private-endpoints.txt +137 -0
  40. oci_cli/help_text_producer/data_files/text/cmdref/ai-vision/vision-private-endpoint-collection.txt +14 -0
  41. oci_cli/help_text_producer/data_files/text/cmdref/ai-vision/vision-private-endpoint.txt +22 -0
  42. oci_cli/help_text_producer/data_files/text/cmdref/ai-vision.txt +76 -0
  43. oci_cli/help_text_producer/data_files/text/cmdref/compute/{compute-gpu-memory-cluster-collection/list-compute-gpu-memory-clusters.txt → compute-gpu-memory-cluster/list.txt} +5 -5
  44. oci_cli/help_text_producer/data_files/text/cmdref/compute/compute-gpu-memory-cluster.txt +2 -0
  45. oci_cli/help_text_producer/data_files/text/cmdref/compute/instance/launch-instance-compute-bare-metal-host-placement-constraint-details.txt +0 -5
  46. oci_cli/help_text_producer/data_files/text/cmdref/compute/instance/launch-instance-host-group-placement-constraint-details.txt +0 -5
  47. oci_cli/help_text_producer/data_files/text/cmdref/compute/instance/launch.txt +0 -5
  48. oci_cli/help_text_producer/data_files/text/cmdref/compute/instance/terminate.txt +11 -0
  49. oci_cli/help_text_producer/data_files/text/cmdref/compute.txt +2 -4
  50. oci_cli/help_text_producer/data_files/text/cmdref/data-safe/alert-summary/list-alert-analytics.txt +2 -2
  51. oci_cli/help_text_producer/data_files/text/cmdref/data-safe/alert-summary/list-alerts.txt +2 -2
  52. oci_cli/help_text_producer/data_files/text/cmdref/data-safe/attribute-set/change-compartment.txt +140 -0
  53. oci_cli/help_text_producer/data_files/text/cmdref/data-safe/attribute-set/create.txt +182 -0
  54. oci_cli/help_text_producer/data_files/text/cmdref/data-safe/attribute-set/delete.txt +138 -0
  55. oci_cli/help_text_producer/data_files/text/cmdref/data-safe/attribute-set/get.txt +108 -0
  56. oci_cli/help_text_producer/data_files/text/cmdref/data-safe/attribute-set/list-associated-resources.txt +145 -0
  57. oci_cli/help_text_producer/data_files/text/cmdref/data-safe/attribute-set/list.txt +211 -0
  58. oci_cli/help_text_producer/data_files/text/cmdref/data-safe/attribute-set/update.txt +192 -0
  59. oci_cli/help_text_producer/data_files/text/cmdref/data-safe/attribute-set.txt +28 -0
  60. oci_cli/help_text_producer/data_files/text/cmdref/data-safe/audit-archive-retrieval/list.txt +5 -0
  61. oci_cli/help_text_producer/data_files/text/cmdref/data-safe/audit-event-summary/list-audit-event-analytics.txt +11 -10
  62. oci_cli/help_text_producer/data_files/text/cmdref/data-safe/audit-event-summary/list-audit-events.txt +9 -8
  63. oci_cli/help_text_producer/data_files/text/cmdref/data-safe/audit-policy-analytics/list.txt +5 -0
  64. oci_cli/help_text_producer/data_files/text/cmdref/data-safe/audit-policy-collection/list-audit-policies.txt +5 -0
  65. oci_cli/help_text_producer/data_files/text/cmdref/data-safe/audit-profile/calculate-audit-volume-available.txt +5 -1
  66. oci_cli/help_text_producer/data_files/text/cmdref/data-safe/audit-profile/calculate-audit-volume-collected.txt +5 -1
  67. oci_cli/help_text_producer/data_files/text/cmdref/data-safe/audit-profile/change-compartment.txt +5 -2
  68. oci_cli/help_text_producer/data_files/text/cmdref/data-safe/audit-profile/change-retention.txt +14 -10
  69. oci_cli/help_text_producer/data_files/text/cmdref/data-safe/audit-profile/create.txt +205 -0
  70. oci_cli/help_text_producer/data_files/text/cmdref/data-safe/audit-profile/delete.txt +135 -0
  71. oci_cli/help_text_producer/data_files/text/cmdref/data-safe/audit-profile/discover-audit-trails.txt +5 -1
  72. oci_cli/help_text_producer/data_files/text/cmdref/data-safe/audit-profile/get.txt +5 -1
  73. oci_cli/help_text_producer/data_files/text/cmdref/data-safe/audit-profile/list-available-audit-volumes.txt +5 -1
  74. oci_cli/help_text_producer/data_files/text/cmdref/data-safe/audit-profile/list-collected-audit-volumes.txt +5 -1
  75. oci_cli/help_text_producer/data_files/text/cmdref/data-safe/audit-profile/list-target-overrides.txt +143 -0
  76. oci_cli/help_text_producer/data_files/text/cmdref/data-safe/audit-profile/list.txt +14 -0
  77. oci_cli/help_text_producer/data_files/text/cmdref/data-safe/audit-profile/update.txt +14 -1
  78. oci_cli/help_text_producer/data_files/text/cmdref/data-safe/audit-profile-analytic-collection/list-audit-profile-analytics.txt +10 -1
  79. oci_cli/help_text_producer/data_files/text/cmdref/data-safe/audit-profile.txt +6 -0
  80. oci_cli/help_text_producer/data_files/text/cmdref/data-safe/audit-trail/list.txt +5 -0
  81. oci_cli/help_text_producer/data_files/text/cmdref/data-safe/audit-trail/start.txt +6 -0
  82. oci_cli/help_text_producer/data_files/text/cmdref/data-safe/audit-trail/update.txt +6 -0
  83. oci_cli/help_text_producer/data_files/text/cmdref/data-safe/audit-trail-analytic-collection/list-audit-trail-analytics.txt +187 -0
  84. oci_cli/help_text_producer/data_files/text/cmdref/data-safe/database-security-config/list.txt +5 -0
  85. oci_cli/help_text_producer/data_files/text/cmdref/data-safe/database-table-access-entry-collection/list-database-table-access-entries.txt +1 -1
  86. oci_cli/help_text_producer/data_files/text/cmdref/data-safe/database-view-access-entry-collection/list-database-view-access-entries.txt +1 -1
  87. oci_cli/help_text_producer/data_files/text/cmdref/data-safe/masking-column/list.txt +1 -1
  88. oci_cli/help_text_producer/data_files/text/cmdref/data-safe/masking-policy/list-masking-analytics.txt +28 -1
  89. oci_cli/help_text_producer/data_files/text/cmdref/data-safe/masking-policy-referential-relation-summary/list-masking-policy-referential-relations.txt +1 -1
  90. oci_cli/help_text_producer/data_files/text/cmdref/data-safe/on-prem-connector/list.txt +9 -9
  91. oci_cli/help_text_producer/data_files/text/cmdref/data-safe/peer-target-database/create-peer-target-database-database-cloud-service-details.txt +10 -6
  92. oci_cli/help_text_producer/data_files/text/cmdref/data-safe/peer-target-database/update-peer-target-database-database-cloud-service-details.txt +10 -6
  93. oci_cli/help_text_producer/data_files/text/cmdref/data-safe/report-definition/generate-report.txt +13 -2
  94. oci_cli/help_text_producer/data_files/text/cmdref/data-safe/report-summary/list-reports.txt +9 -0
  95. oci_cli/help_text_producer/data_files/text/cmdref/data-safe/security-assessment/apply-security-assessment-template.txt +134 -0
  96. oci_cli/help_text_producer/data_files/text/cmdref/data-safe/security-assessment/compare-to-template-baseline.txt +135 -0
  97. oci_cli/help_text_producer/data_files/text/cmdref/data-safe/security-assessment/create.txt +33 -2
  98. oci_cli/help_text_producer/data_files/text/cmdref/data-safe/security-assessment/download-security-assessment-report.txt +2 -2
  99. oci_cli/help_text_producer/data_files/text/cmdref/data-safe/security-assessment/generate-security-assessment-report.txt +2 -2
  100. oci_cli/help_text_producer/data_files/text/cmdref/data-safe/security-assessment/get-template-baseline-comparison.txt +112 -0
  101. oci_cli/help_text_producer/data_files/text/cmdref/data-safe/security-assessment/list-checks.txt +186 -0
  102. oci_cli/help_text_producer/data_files/text/cmdref/data-safe/security-assessment/list-finding-analytics.txt +35 -1
  103. oci_cli/help_text_producer/data_files/text/cmdref/data-safe/security-assessment/list-findings.txt +33 -2
  104. oci_cli/help_text_producer/data_files/text/cmdref/data-safe/security-assessment/list-security-feature-analytics.txt +5 -0
  105. oci_cli/help_text_producer/data_files/text/cmdref/data-safe/security-assessment/list-security-features.txt +5 -0
  106. oci_cli/help_text_producer/data_files/text/cmdref/data-safe/security-assessment/list-template-analytics.txt +188 -0
  107. oci_cli/help_text_producer/data_files/text/cmdref/data-safe/security-assessment/list-template-association-analytics.txt +174 -0
  108. oci_cli/help_text_producer/data_files/text/cmdref/data-safe/security-assessment/list.txt +21 -3
  109. oci_cli/help_text_producer/data_files/text/cmdref/data-safe/security-assessment/patch-checks.txt +145 -0
  110. oci_cli/help_text_producer/data_files/text/cmdref/data-safe/security-assessment/patch-findings.txt +145 -0
  111. oci_cli/help_text_producer/data_files/text/cmdref/data-safe/security-assessment/remove.txt +129 -0
  112. oci_cli/help_text_producer/data_files/text/cmdref/data-safe/security-assessment.txt +18 -0
  113. oci_cli/help_text_producer/data_files/text/cmdref/data-safe/security-policy/change-compartment.txt +3 -2
  114. oci_cli/help_text_producer/data_files/text/cmdref/data-safe/security-policy/create.txt +159 -0
  115. oci_cli/help_text_producer/data_files/text/cmdref/data-safe/security-policy/delete.txt +131 -0
  116. oci_cli/help_text_producer/data_files/text/cmdref/data-safe/security-policy/get.txt +3 -1
  117. oci_cli/help_text_producer/data_files/text/cmdref/data-safe/security-policy/list.txt +8 -0
  118. oci_cli/help_text_producer/data_files/text/cmdref/data-safe/security-policy/update.txt +3 -1
  119. oci_cli/help_text_producer/data_files/text/cmdref/data-safe/security-policy-config/change-compartment.txt +135 -0
  120. oci_cli/help_text_producer/data_files/text/cmdref/data-safe/security-policy-config/create.txt +189 -0
  121. oci_cli/help_text_producer/data_files/text/cmdref/data-safe/security-policy-config/delete.txt +133 -0
  122. oci_cli/help_text_producer/data_files/text/cmdref/data-safe/security-policy-config/get.txt +95 -0
  123. oci_cli/help_text_producer/data_files/text/cmdref/data-safe/security-policy-config/update.txt +197 -0
  124. oci_cli/help_text_producer/data_files/text/cmdref/data-safe/security-policy-config-collection/list-security-policy-configs.txt +375 -0
  125. oci_cli/help_text_producer/data_files/text/cmdref/data-safe/security-policy-config-collection.txt +14 -0
  126. oci_cli/help_text_producer/data_files/text/cmdref/data-safe/security-policy-config.txt +23 -0
  127. oci_cli/help_text_producer/data_files/text/cmdref/data-safe/security-policy-deployment/change-compartment.txt +7 -2
  128. oci_cli/help_text_producer/data_files/text/cmdref/data-safe/security-policy-deployment/create.txt +179 -0
  129. oci_cli/help_text_producer/data_files/text/cmdref/data-safe/security-policy-deployment/delete.txt +135 -0
  130. oci_cli/help_text_producer/data_files/text/cmdref/data-safe/security-policy-deployment/deploy.txt +131 -0
  131. oci_cli/help_text_producer/data_files/text/cmdref/data-safe/security-policy-deployment/get.txt +7 -1
  132. oci_cli/help_text_producer/data_files/text/cmdref/data-safe/security-policy-deployment/list.txt +10 -1
  133. oci_cli/help_text_producer/data_files/text/cmdref/data-safe/security-policy-deployment/refresh.txt +132 -0
  134. oci_cli/help_text_producer/data_files/text/cmdref/data-safe/security-policy-deployment/update.txt +7 -1
  135. oci_cli/help_text_producer/data_files/text/cmdref/data-safe/security-policy-deployment.txt +8 -0
  136. oci_cli/help_text_producer/data_files/text/cmdref/data-safe/security-policy-entry-state/get.txt +7 -1
  137. oci_cli/help_text_producer/data_files/text/cmdref/data-safe/security-policy-entry-state/list.txt +21 -2
  138. oci_cli/help_text_producer/data_files/text/cmdref/data-safe/security-policy.txt +4 -0
  139. oci_cli/help_text_producer/data_files/text/cmdref/data-safe/sensitive-data-model/list-discovery-analytics.txt +27 -0
  140. oci_cli/help_text_producer/data_files/text/cmdref/data-safe/sensitive-data-model/list-sensitive-column-analytics.txt +5 -0
  141. oci_cli/help_text_producer/data_files/text/cmdref/data-safe/sql-collection/list.txt +5 -0
  142. oci_cli/help_text_producer/data_files/text/cmdref/data-safe/sql-collection-analytics/list.txt +5 -0
  143. oci_cli/help_text_producer/data_files/text/cmdref/data-safe/sql-firewall-allowed-sql/list.txt +1 -1
  144. oci_cli/help_text_producer/data_files/text/cmdref/data-safe/sql-firewall-allowed-sql-analytics/list.txt +1 -1
  145. oci_cli/help_text_producer/data_files/text/cmdref/data-safe/sql-firewall-violation-summary/list-sql-firewall-violation-analytics.txt +2 -2
  146. oci_cli/help_text_producer/data_files/text/cmdref/data-safe/sql-firewall-violation-summary/list-sql-firewall-violations.txt +2 -2
  147. oci_cli/help_text_producer/data_files/text/cmdref/data-safe/target-database-group/change-compartment.txt +138 -0
  148. oci_cli/help_text_producer/data_files/text/cmdref/data-safe/target-database-group/create.txt +175 -0
  149. oci_cli/help_text_producer/data_files/text/cmdref/data-safe/target-database-group/delete.txt +137 -0
  150. oci_cli/help_text_producer/data_files/text/cmdref/data-safe/target-database-group/get-group-members.txt +118 -0
  151. oci_cli/help_text_producer/data_files/text/cmdref/data-safe/target-database-group/get.txt +99 -0
  152. oci_cli/help_text_producer/data_files/text/cmdref/data-safe/target-database-group/update.txt +189 -0
  153. oci_cli/help_text_producer/data_files/text/cmdref/data-safe/target-database-group-summary/list-target-database-groups.txt +365 -0
  154. oci_cli/help_text_producer/data_files/text/cmdref/data-safe/target-database-group-summary.txt +15 -0
  155. oci_cli/help_text_producer/data_files/text/cmdref/data-safe/target-database-group.txt +25 -0
  156. oci_cli/help_text_producer/data_files/text/cmdref/data-safe/unified-audit-policy/bulk-create.txt +164 -0
  157. oci_cli/help_text_producer/data_files/text/cmdref/data-safe/unified-audit-policy/change-compartment.txt +142 -0
  158. oci_cli/help_text_producer/data_files/text/cmdref/data-safe/unified-audit-policy/create.txt +195 -0
  159. oci_cli/help_text_producer/data_files/text/cmdref/data-safe/unified-audit-policy/delete.txt +140 -0
  160. oci_cli/help_text_producer/data_files/text/cmdref/data-safe/unified-audit-policy/get.txt +102 -0
  161. oci_cli/help_text_producer/data_files/text/cmdref/data-safe/unified-audit-policy/update.txt +202 -0
  162. oci_cli/help_text_producer/data_files/text/cmdref/data-safe/unified-audit-policy-collection/list-unified-audit-policies.txt +385 -0
  163. oci_cli/help_text_producer/data_files/text/cmdref/data-safe/unified-audit-policy-collection.txt +14 -0
  164. oci_cli/help_text_producer/data_files/text/cmdref/data-safe/unified-audit-policy-definition/change-compartment.txt +132 -0
  165. oci_cli/help_text_producer/data_files/text/cmdref/data-safe/unified-audit-policy-definition/delete.txt +129 -0
  166. oci_cli/help_text_producer/data_files/text/cmdref/data-safe/unified-audit-policy-definition/get.txt +92 -0
  167. oci_cli/help_text_producer/data_files/text/cmdref/data-safe/unified-audit-policy-definition/update.txt +171 -0
  168. oci_cli/help_text_producer/data_files/text/cmdref/data-safe/unified-audit-policy-definition-collection/list-unified-audit-policy-definitions.txt +205 -0
  169. oci_cli/help_text_producer/data_files/text/cmdref/data-safe/unified-audit-policy-definition-collection.txt +14 -0
  170. oci_cli/help_text_producer/data_files/text/cmdref/data-safe/unified-audit-policy-definition.txt +20 -0
  171. oci_cli/help_text_producer/data_files/text/cmdref/data-safe/unified-audit-policy.txt +25 -0
  172. oci_cli/help_text_producer/data_files/text/cmdref/data-safe/user-assessment/create.txt +13 -2
  173. oci_cli/help_text_producer/data_files/text/cmdref/data-safe/user-assessment/list.txt +14 -0
  174. oci_cli/help_text_producer/data_files/text/cmdref/data-safe.txt +118 -0
  175. oci_cli/help_text_producer/data_files/text/cmdref/data-science/job/change-compartment.txt +1 -7
  176. oci_cli/help_text_producer/data_files/text/cmdref/data-science/job/create-job-artifact.txt +1 -7
  177. oci_cli/help_text_producer/data_files/text/cmdref/data-science/job/create.txt +29 -24
  178. oci_cli/help_text_producer/data_files/text/cmdref/data-science/job/delete.txt +1 -7
  179. oci_cli/help_text_producer/data_files/text/cmdref/data-science/job/get-artifact-content.txt +2 -7
  180. oci_cli/help_text_producer/data_files/text/cmdref/data-science/job/get.txt +1 -7
  181. oci_cli/help_text_producer/data_files/text/cmdref/data-science/job/head-job-artifact.txt +1 -7
  182. oci_cli/help_text_producer/data_files/text/cmdref/data-science/job/update.txt +1 -7
  183. oci_cli/help_text_producer/data_files/text/cmdref/data-science/job-run/cancel.txt +1 -7
  184. oci_cli/help_text_producer/data_files/text/cmdref/data-science/job-run/change-compartment.txt +1 -7
  185. oci_cli/help_text_producer/data_files/text/cmdref/data-science/job-run/create.txt +23 -7
  186. oci_cli/help_text_producer/data_files/text/cmdref/data-science/job-run/delete.txt +1 -7
  187. oci_cli/help_text_producer/data_files/text/cmdref/data-science/job-run/get.txt +1 -7
  188. oci_cli/help_text_producer/data_files/text/cmdref/data-science/job-run/update.txt +1 -7
  189. oci_cli/help_text_producer/data_files/text/cmdref/data-science/pipeline-run/create.txt +11 -0
  190. oci_cli/help_text_producer/data_files/text/cmdref/db/database/create-standby-database.txt +114 -1
  191. oci_cli/help_text_producer/data_files/text/cmdref/delegate-access-control/work-request/work-request-error/{list-errors.txt → list.txt} +5 -5
  192. oci_cli/help_text_producer/data_files/text/cmdref/delegate-access-control/work-request/work-request-error.txt +1 -1
  193. oci_cli/help_text_producer/data_files/text/cmdref/delegate-access-control/work-request.txt +1 -1
  194. oci_cli/help_text_producer/data_files/text/cmdref/delegate-access-control.txt +1 -1
  195. oci_cli/help_text_producer/data_files/text/cmdref/devops/protected-branch/create-or-update.txt +1 -1
  196. oci_cli/help_text_producer/data_files/text/cmdref/devops/protected-branch/delete.txt +1 -1
  197. oci_cli/help_text_producer/data_files/text/cmdref/devops/pull-request/reopen-pull-request-comment.txt +119 -0
  198. oci_cli/help_text_producer/data_files/text/cmdref/devops/pull-request/resolve-pull-request-comment.txt +119 -0
  199. oci_cli/help_text_producer/data_files/text/cmdref/devops/pull-request.txt +4 -0
  200. oci_cli/help_text_producer/data_files/text/cmdref/devops.txt +4 -0
  201. oci_cli/help_text_producer/data_files/text/cmdref/email-data-plane/email-raw-submitted-response/submit-raw-email.txt +128 -0
  202. oci_cli/help_text_producer/data_files/text/cmdref/email-data-plane/email-raw-submitted-response.txt +15 -0
  203. oci_cli/help_text_producer/data_files/text/cmdref/email-data-plane.txt +4 -0
  204. oci_cli/help_text_producer/data_files/text/cmdref/goldengate/connection/create-amazon-kinesis-connection.txt +9 -0
  205. oci_cli/help_text_producer/data_files/text/cmdref/goldengate/connection/create-amazon-s3-connection.txt +4 -3
  206. oci_cli/help_text_producer/data_files/text/cmdref/goldengate/connection/create-azure-data-lake-storage-connection.txt +9 -0
  207. oci_cli/help_text_producer/data_files/text/cmdref/goldengate/connection/create-db2-connection.txt +20 -8
  208. oci_cli/help_text_producer/data_files/text/cmdref/goldengate/connection/create-google-pub-sub-connection.txt +8 -9
  209. oci_cli/help_text_producer/data_files/text/cmdref/goldengate/connection/create-jms-connection.txt +1 -1
  210. oci_cli/help_text_producer/data_files/text/cmdref/goldengate/connection/create-object-storage-connection.txt +2 -2
  211. oci_cli/help_text_producer/data_files/text/cmdref/goldengate/connection/create-oracle-nosql-connection.txt +2 -2
  212. oci_cli/help_text_producer/data_files/text/cmdref/goldengate/connection/update-amazon-kinesis-connection.txt +9 -0
  213. oci_cli/help_text_producer/data_files/text/cmdref/goldengate/connection/update-amazon-s3-connection.txt +4 -3
  214. oci_cli/help_text_producer/data_files/text/cmdref/goldengate/connection/update-azure-data-lake-storage-connection.txt +9 -0
  215. oci_cli/help_text_producer/data_files/text/cmdref/goldengate/connection/update-db2-connection.txt +20 -8
  216. oci_cli/help_text_producer/data_files/text/cmdref/goldengate/connection/update-jms-connection.txt +1 -1
  217. oci_cli/help_text_producer/data_files/text/cmdref/goldengate/connection/update-object-storage-connection.txt +2 -2
  218. oci_cli/help_text_producer/data_files/text/cmdref/goldengate/connection/update-oracle-nosql-connection.txt +2 -2
  219. oci_cli/help_text_producer/data_files/text/cmdref/governance-rules-control-plane/work-request/work-request-error/{list-errors.txt → list.txt} +5 -5
  220. oci_cli/help_text_producer/data_files/text/cmdref/governance-rules-control-plane/work-request/work-request-error.txt +1 -1
  221. oci_cli/help_text_producer/data_files/text/cmdref/governance-rules-control-plane/work-request/{work-request-log/list.txt → work-request-log-entry/list-work-request-logs.txt} +5 -5
  222. oci_cli/help_text_producer/data_files/text/cmdref/governance-rules-control-plane/work-request/{work-request-log.txt → work-request-log-entry.txt} +3 -3
  223. oci_cli/help_text_producer/data_files/text/cmdref/governance-rules-control-plane/work-request.txt +3 -3
  224. oci_cli/help_text_producer/data_files/text/cmdref/governance-rules-control-plane.txt +3 -3
  225. oci_cli/help_text_producer/data_files/text/cmdref/multicloud/metadata/external-location-mapping-metadatum-summary-collection/list-external-location-mapping-metadata.txt +167 -0
  226. oci_cli/help_text_producer/data_files/text/cmdref/multicloud/metadata/external-location-mapping-metadatum-summary-collection.txt +14 -0
  227. oci_cli/help_text_producer/data_files/text/cmdref/multicloud/metadata/external-location-summaries-metadatum-summary-collection/list-external-location-summaries-metadata.txt +162 -0
  228. oci_cli/help_text_producer/data_files/text/cmdref/multicloud/metadata/external-location-summaries-metadatum-summary-collection.txt +15 -0
  229. oci_cli/help_text_producer/data_files/text/cmdref/multicloud/metadata/external-locations-metadatum-collection/list-external-location-details-metadata.txt +216 -0
  230. oci_cli/help_text_producer/data_files/text/cmdref/multicloud/metadata/external-locations-metadatum-collection.txt +14 -0
  231. oci_cli/help_text_producer/data_files/text/cmdref/multicloud/metadata.txt +26 -0
  232. oci_cli/help_text_producer/data_files/text/cmdref/multicloud/multi-clouds-metadata/multi-cloud-metadata/get.txt +96 -0
  233. oci_cli/help_text_producer/data_files/text/cmdref/multicloud/multi-clouds-metadata/multi-cloud-metadata-collection/list-multi-cloud-metadata.txt +133 -0
  234. oci_cli/help_text_producer/data_files/text/cmdref/multicloud/multi-clouds-metadata/multi-cloud-metadata-collection.txt +14 -0
  235. oci_cli/help_text_producer/data_files/text/cmdref/multicloud/multi-clouds-metadata/multi-cloud-metadata.txt +15 -0
  236. oci_cli/help_text_producer/data_files/text/cmdref/multicloud/multi-clouds-metadata.txt +22 -0
  237. oci_cli/help_text_producer/data_files/text/cmdref/multicloud/omhub-network-anchor/network-anchor/get.txt +111 -0
  238. oci_cli/help_text_producer/data_files/text/cmdref/multicloud/omhub-network-anchor/network-anchor-collection/list-network-anchors.txt +180 -0
  239. oci_cli/help_text_producer/data_files/text/cmdref/multicloud/omhub-network-anchor/network-anchor-collection.txt +15 -0
  240. oci_cli/help_text_producer/data_files/text/cmdref/multicloud/omhub-network-anchor/network-anchor.txt +19 -0
  241. oci_cli/help_text_producer/data_files/text/cmdref/multicloud/omhub-network-anchor.txt +22 -0
  242. oci_cli/help_text_producer/data_files/text/cmdref/multicloud/omhub-resource-anchor/resource-anchor/get.txt +106 -0
  243. oci_cli/help_text_producer/data_files/text/cmdref/multicloud/omhub-resource-anchor/resource-anchor-collection/list-resource-anchors.txt +172 -0
  244. oci_cli/help_text_producer/data_files/text/cmdref/multicloud/omhub-resource-anchor/resource-anchor-collection.txt +15 -0
  245. oci_cli/help_text_producer/data_files/text/cmdref/multicloud/omhub-resource-anchor/resource-anchor.txt +19 -0
  246. oci_cli/help_text_producer/data_files/text/cmdref/multicloud/omhub-resource-anchor.txt +22 -0
  247. oci_cli/help_text_producer/data_files/text/cmdref/multicloud.txt +58 -0
  248. oci_cli/help_text_producer/data_files/text/cmdref/network/drg-route-distribution/create.txt +2 -2
  249. oci_cli/help_text_producer/data_files/text/cmdref/network/drg-route-distribution.txt +12 -10
  250. oci_cli/help_text_producer/data_files/text/cmdref/network/ip-sec-connection/create.txt +11 -16
  251. oci_cli/help_text_producer/data_files/text/cmdref/ocvs/work-request-error/{list-errors.txt → list.txt} +5 -5
  252. oci_cli/help_text_producer/data_files/text/cmdref/ocvs/work-request-error.txt +1 -1
  253. oci_cli/help_text_producer/data_files/text/cmdref/ocvs.txt +1 -1
  254. oci_cli/help_text_producer/data_files/text/cmdref/organizations/work-request-error/{list-errors.txt → list.txt} +5 -5
  255. oci_cli/help_text_producer/data_files/text/cmdref/organizations/work-request-error.txt +1 -1
  256. oci_cli/help_text_producer/data_files/text/cmdref/organizations/{work-request-log → work-request-log-entry}/list.txt +1 -19
  257. oci_cli/help_text_producer/data_files/text/cmdref/organizations/{work-request-log.txt → work-request-log-entry.txt} +2 -2
  258. oci_cli/help_text_producer/data_files/text/cmdref/organizations.txt +2 -2
  259. oci_cli/help_text_producer/data_files/text/cmdref/redis/oci-cache-config-set/associated-oci-cache-cluster-summary/list-associated-oci-cache-clusters.txt +139 -0
  260. oci_cli/help_text_producer/data_files/text/cmdref/redis/oci-cache-config-set/associated-oci-cache-cluster-summary.txt +14 -0
  261. oci_cli/help_text_producer/data_files/text/cmdref/redis/oci-cache-config-set/oci-cache-config-set/change-compartment.txt +139 -0
  262. oci_cli/help_text_producer/data_files/text/cmdref/redis/oci-cache-config-set/oci-cache-config-set/create.txt +175 -0
  263. oci_cli/help_text_producer/data_files/text/cmdref/redis/oci-cache-config-set/oci-cache-config-set/delete.txt +138 -0
  264. oci_cli/help_text_producer/data_files/text/cmdref/redis/oci-cache-config-set/oci-cache-config-set/get.txt +100 -0
  265. oci_cli/help_text_producer/data_files/text/cmdref/redis/oci-cache-config-set/oci-cache-config-set/update.txt +173 -0
  266. oci_cli/help_text_producer/data_files/text/cmdref/redis/oci-cache-config-set/oci-cache-config-set-summary/list-oci-cache-config-sets.txt +148 -0
  267. oci_cli/help_text_producer/data_files/text/cmdref/redis/oci-cache-config-set/oci-cache-config-set-summary.txt +14 -0
  268. oci_cli/help_text_producer/data_files/text/cmdref/redis/oci-cache-config-set/oci-cache-config-set.txt +23 -0
  269. oci_cli/help_text_producer/data_files/text/cmdref/redis/oci-cache-config-set.txt +33 -0
  270. oci_cli/help_text_producer/data_files/text/cmdref/redis/oci-cache-default-config-set/oci-cache-default-config-set/get.txt +96 -0
  271. oci_cli/help_text_producer/data_files/text/cmdref/redis/oci-cache-default-config-set/oci-cache-default-config-set-summary/list-oci-cache-default-config-sets.txt +156 -0
  272. oci_cli/help_text_producer/data_files/text/cmdref/redis/oci-cache-default-config-set/oci-cache-default-config-set-summary.txt +14 -0
  273. oci_cli/help_text_producer/data_files/text/cmdref/redis/oci-cache-default-config-set/oci-cache-default-config-set.txt +15 -0
  274. oci_cli/help_text_producer/data_files/text/cmdref/redis/oci-cache-default-config-set.txt +21 -0
  275. oci_cli/help_text_producer/data_files/text/cmdref/redis/redis-cluster/redis-cluster/create.txt +4 -0
  276. oci_cli/help_text_producer/data_files/text/cmdref/redis/redis-cluster/redis-cluster/update.txt +4 -0
  277. oci_cli/help_text_producer/data_files/text/cmdref/redis.txt +32 -0
  278. oci_cli/help_text_producer/data_files/text/cmdref/session/authenticate.txt +5 -4
  279. oci_cli/help_text_producer/data_files/text/cmdref/support/incident/create.txt +15 -12
  280. oci_cli/help_text_producer/data_files/text/cmdref/support/incident/get.txt +2 -2
  281. oci_cli/help_text_producer/data_files/text/cmdref/support/incident/list.txt +2 -2
  282. oci_cli/help_text_producer/data_files/text/cmdref/support/incident/put-attachment.txt +153 -0
  283. oci_cli/help_text_producer/data_files/text/cmdref/support/incident/update.txt +20 -14
  284. oci_cli/help_text_producer/data_files/text/cmdref/support/incident-resource-type/list.txt +2 -2
  285. oci_cli/help_text_producer/data_files/text/cmdref/support/incident.txt +3 -1
  286. oci_cli/help_text_producer/data_files/text/cmdref/support.txt +2 -0
  287. oci_cli/help_text_producer/data_files/text/index.txt +2 -0
  288. oci_cli/service_mapping.py +5 -0
  289. oci_cli/version.py +1 -1
  290. {oci_cli-3.63.2.dist-info → oci_cli-3.64.0.dist-info}/METADATA +2 -2
  291. {oci_cli-3.63.2.dist-info → oci_cli-3.64.0.dist-info}/RECORD +340 -169
  292. services/ai_vision/src/oci_cli_ai_service_vision/generated/aiservicevision_cli.py +2349 -448
  293. services/cims/src/oci_cli_incident/cims_cli_extended.py +70 -14
  294. services/cims/src/oci_cli_incident/generated/incident_cli.py +76 -15
  295. services/core/src/oci_cli_compute/generated/compute_cli.py +19 -79
  296. services/core/src/oci_cli_virtual_network/generated/virtualnetwork_cli.py +16 -14
  297. services/data_safe/src/oci_cli_data_safe/generated/datasafe_cli.py +3822 -391
  298. services/data_science/src/oci_cli_data_science/datascience_cli_extended.py +47 -6
  299. services/data_science/src/oci_cli_data_science/generated/datascience_cli.py +1351 -139
  300. services/database/src/oci_cli_database/database_cli_extended.py +16 -1
  301. services/devops/src/oci_cli_devops/generated/devops_cli.py +62 -2
  302. services/email_data_plane/src/oci_cli_email_dp/generated/emaildp_cli.py +41 -0
  303. services/golden_gate/src/oci_cli_golden_gate/generated/goldengate_cli.py +67 -25
  304. services/golden_gate/src/oci_cli_golden_gate/golden_gate_cli_extended.py +38 -4
  305. services/multicloud/__init__.py +4 -0
  306. services/multicloud/src/__init__.py +4 -0
  307. services/multicloud/src/oci_cli_metadata/__init__.py +4 -0
  308. services/multicloud/src/oci_cli_metadata/generated/__init__.py +4 -0
  309. services/multicloud/src/oci_cli_metadata/generated/client_mappings.py +14 -0
  310. services/multicloud/src/oci_cli_metadata/generated/metadata_cli.py +239 -0
  311. services/multicloud/src/oci_cli_multi_clouds_metadata/__init__.py +4 -0
  312. services/multicloud/src/oci_cli_multi_clouds_metadata/generated/__init__.py +4 -0
  313. services/multicloud/src/oci_cli_multi_clouds_metadata/generated/client_mappings.py +14 -0
  314. services/multicloud/src/oci_cli_multi_clouds_metadata/generated/multicloudsmetadata_cli.py +117 -0
  315. services/multicloud/src/oci_cli_multicloud/__init__.py +4 -0
  316. services/multicloud/src/oci_cli_multicloud/generated/__init__.py +4 -0
  317. services/multicloud/src/oci_cli_multicloud/generated/multicloud_service_cli.py +14 -0
  318. services/multicloud/src/oci_cli_omhub_network_anchor/__init__.py +4 -0
  319. services/multicloud/src/oci_cli_omhub_network_anchor/generated/__init__.py +4 -0
  320. services/multicloud/src/oci_cli_omhub_network_anchor/generated/client_mappings.py +14 -0
  321. services/multicloud/src/oci_cli_omhub_network_anchor/generated/omhubnetworkanchor_cli.py +150 -0
  322. services/multicloud/src/oci_cli_omhub_resource_anchor/__init__.py +4 -0
  323. services/multicloud/src/oci_cli_omhub_resource_anchor/generated/__init__.py +4 -0
  324. services/multicloud/src/oci_cli_omhub_resource_anchor/generated/client_mappings.py +14 -0
  325. services/multicloud/src/oci_cli_omhub_resource_anchor/generated/omhubresourceanchor_cli.py +143 -0
  326. services/multicloud/tests/__init__.py +4 -0
  327. services/redis/src/oci_cli_oci_cache_config_set/__init__.py +4 -0
  328. services/redis/src/oci_cli_oci_cache_config_set/generated/__init__.py +4 -0
  329. services/redis/src/oci_cli_oci_cache_config_set/generated/client_mappings.py +14 -0
  330. services/redis/src/oci_cli_oci_cache_config_set/generated/ocicacheconfigset_cli.py +458 -0
  331. services/redis/src/oci_cli_oci_cache_default_config_set/__init__.py +4 -0
  332. services/redis/src/oci_cli_oci_cache_default_config_set/generated/__init__.py +4 -0
  333. services/redis/src/oci_cli_oci_cache_default_config_set/generated/client_mappings.py +14 -0
  334. services/redis/src/oci_cli_oci_cache_default_config_set/generated/ocicachedefaultconfigset_cli.py +129 -0
  335. services/redis/src/oci_cli_redis_cluster/generated/rediscluster_cli.py +10 -2
  336. oci_cli/help_text_producer/data_files/text/cmdref/compute/compute-gpu-memory-cluster-collection.txt +0 -14
  337. {oci_cli-3.63.2.dist-info → oci_cli-3.64.0.dist-info}/LICENSE.txt +0 -0
  338. {oci_cli-3.63.2.dist-info → oci_cli-3.64.0.dist-info}/THIRD_PARTY_LICENSES.txt +0 -0
  339. {oci_cli-3.63.2.dist-info → oci_cli-3.64.0.dist-info}/WHEEL +0 -0
  340. {oci_cli-3.63.2.dist-info → oci_cli-3.64.0.dist-info}/entry_points.txt +0 -0
  341. {oci_cli-3.63.2.dist-info → oci_cli-3.64.0.dist-info}/top_level.txt +0 -0
@@ -1343,35 +1343,127 @@ def create_data_science_private_endpoint(ctx, from_json, wait_for_state, max_wai
1343
1343
  @job_group.command(name=cli_util.override('data_science.create_job.command_name', 'create'), help=u"""Creates a job. \n[Command Reference](createJob)""")
1344
1344
  @cli_util.option('--project-id', required=True, help=u"""The [OCID] of the project to associate the job with.""")
1345
1345
  @cli_util.option('--compartment-id', required=True, help=u"""The [OCID] of the compartment where you want to create the job.""")
1346
- @cli_util.option('--job-configuration-details', required=True, type=custom_types.CLI_COMPLEX_TYPE, help=u"""""" + custom_types.cli_complex_type.COMPLEX_TYPE_HELP)
1347
- @cli_util.option('--job-infrastructure-configuration-details', required=True, type=custom_types.CLI_COMPLEX_TYPE, help=u"""""" + custom_types.cli_complex_type.COMPLEX_TYPE_HELP)
1348
1346
  @cli_util.option('--display-name', help=u"""A user-friendly display name for the resource.""")
1349
1347
  @cli_util.option('--description', help=u"""A short description of the job.""")
1348
+ @cli_util.option('--job-configuration-details', type=custom_types.CLI_COMPLEX_TYPE, help=u"""""" + custom_types.cli_complex_type.COMPLEX_TYPE_HELP)
1349
+ @cli_util.option('--job-infrastructure-configuration-details', type=custom_types.CLI_COMPLEX_TYPE, help=u"""""" + custom_types.cli_complex_type.COMPLEX_TYPE_HELP)
1350
+ @cli_util.option('--job-environment-configuration-details', type=custom_types.CLI_COMPLEX_TYPE, help=u"""""" + custom_types.cli_complex_type.COMPLEX_TYPE_HELP)
1351
+ @cli_util.option('--job-log-configuration-details', type=custom_types.CLI_COMPLEX_TYPE, help=u"""""" + custom_types.cli_complex_type.COMPLEX_TYPE_HELP)
1352
+ @cli_util.option('--job-storage-mount-configuration-details-list', type=custom_types.CLI_COMPLEX_TYPE, help=u"""Collection of JobStorageMountConfigurationDetails.
1353
+
1354
+ This option is a JSON list with items of type StorageMountConfigurationDetails. For documentation on StorageMountConfigurationDetails please see our API reference: https://docs.cloud.oracle.com/api/#/en/datascience/20190101/datatypes/StorageMountConfigurationDetails.""" + custom_types.cli_complex_type.COMPLEX_TYPE_HELP)
1355
+ @cli_util.option('--job-node-configuration-details', type=custom_types.CLI_COMPLEX_TYPE, help=u"""""" + custom_types.cli_complex_type.COMPLEX_TYPE_HELP)
1356
+ @cli_util.option('--freeform-tags', type=custom_types.CLI_COMPLEX_TYPE, help=u"""Free-form tags for this resource. Each tag is a simple key-value pair with no predefined name, type, or namespace. See [Resource Tags]. Example: `{\"Department\": \"Finance\"}`""" + custom_types.cli_complex_type.COMPLEX_TYPE_HELP)
1357
+ @cli_util.option('--defined-tags', type=custom_types.CLI_COMPLEX_TYPE, help=u"""Defined tags for this resource. Each key is predefined and scoped to a namespace. See [Resource Tags]. Example: `{\"Operations\": {\"CostCenter\": \"42\"}}`""" + custom_types.cli_complex_type.COMPLEX_TYPE_HELP)
1358
+ @cli_util.option('--wait-for-state', type=custom_types.CliCaseInsensitiveChoice(["CREATING", "ACTIVE", "DELETING", "FAILED", "DELETED"]), multiple=True, help="""This operation creates, modifies or deletes a resource that has a defined lifecycle state. Specify this option to perform the action and then wait until the resource reaches a given lifecycle state. Multiple states can be specified, returning on the first state. For example, --wait-for-state SUCCEEDED --wait-for-state FAILED would return on whichever lifecycle state is reached first. If timeout is reached, a return code of 2 is returned. For any other error, a return code of 1 is returned.""")
1359
+ @cli_util.option('--max-wait-seconds', type=click.INT, help="""The maximum time to wait for the resource to reach the lifecycle state defined by --wait-for-state. Defaults to 1200 seconds.""")
1360
+ @cli_util.option('--wait-interval-seconds', type=click.INT, help="""Check every --wait-interval-seconds to see whether the resource has reached the lifecycle state defined by --wait-for-state. Defaults to 30 seconds.""")
1361
+ @json_skeleton_utils.get_cli_json_input_option({'job-configuration-details': {'module': 'data_science', 'class': 'JobConfigurationDetails'}, 'job-infrastructure-configuration-details': {'module': 'data_science', 'class': 'JobInfrastructureConfigurationDetails'}, 'job-environment-configuration-details': {'module': 'data_science', 'class': 'JobEnvironmentConfigurationDetails'}, 'job-log-configuration-details': {'module': 'data_science', 'class': 'JobLogConfigurationDetails'}, 'job-storage-mount-configuration-details-list': {'module': 'data_science', 'class': 'list[StorageMountConfigurationDetails]'}, 'job-node-configuration-details': {'module': 'data_science', 'class': 'JobNodeConfigurationDetails'}, 'freeform-tags': {'module': 'data_science', 'class': 'dict(str, string)'}, 'defined-tags': {'module': 'data_science', 'class': 'dict(str, dict(str, object))'}})
1362
+ @cli_util.help_option
1363
+ @click.pass_context
1364
+ @json_skeleton_utils.json_skeleton_generation_handler(input_params_to_complex_types={'job-configuration-details': {'module': 'data_science', 'class': 'JobConfigurationDetails'}, 'job-infrastructure-configuration-details': {'module': 'data_science', 'class': 'JobInfrastructureConfigurationDetails'}, 'job-environment-configuration-details': {'module': 'data_science', 'class': 'JobEnvironmentConfigurationDetails'}, 'job-log-configuration-details': {'module': 'data_science', 'class': 'JobLogConfigurationDetails'}, 'job-storage-mount-configuration-details-list': {'module': 'data_science', 'class': 'list[StorageMountConfigurationDetails]'}, 'job-node-configuration-details': {'module': 'data_science', 'class': 'JobNodeConfigurationDetails'}, 'freeform-tags': {'module': 'data_science', 'class': 'dict(str, string)'}, 'defined-tags': {'module': 'data_science', 'class': 'dict(str, dict(str, object))'}}, output_type={'module': 'data_science', 'class': 'Job'})
1365
+ @cli_util.wrap_exceptions
1366
+ def create_job(ctx, from_json, wait_for_state, max_wait_seconds, wait_interval_seconds, project_id, compartment_id, display_name, description, job_configuration_details, job_infrastructure_configuration_details, job_environment_configuration_details, job_log_configuration_details, job_storage_mount_configuration_details_list, job_node_configuration_details, freeform_tags, defined_tags):
1367
+
1368
+ kwargs = {}
1369
+ kwargs['opc_request_id'] = cli_util.use_or_generate_request_id(ctx.obj['request_id'])
1370
+
1371
+ _details = {}
1372
+ _details['projectId'] = project_id
1373
+ _details['compartmentId'] = compartment_id
1374
+
1375
+ if display_name is not None:
1376
+ _details['displayName'] = display_name
1377
+
1378
+ if description is not None:
1379
+ _details['description'] = description
1380
+
1381
+ if job_configuration_details is not None:
1382
+ _details['jobConfigurationDetails'] = cli_util.parse_json_parameter("job_configuration_details", job_configuration_details)
1383
+
1384
+ if job_infrastructure_configuration_details is not None:
1385
+ _details['jobInfrastructureConfigurationDetails'] = cli_util.parse_json_parameter("job_infrastructure_configuration_details", job_infrastructure_configuration_details)
1386
+
1387
+ if job_environment_configuration_details is not None:
1388
+ _details['jobEnvironmentConfigurationDetails'] = cli_util.parse_json_parameter("job_environment_configuration_details", job_environment_configuration_details)
1389
+
1390
+ if job_log_configuration_details is not None:
1391
+ _details['jobLogConfigurationDetails'] = cli_util.parse_json_parameter("job_log_configuration_details", job_log_configuration_details)
1392
+
1393
+ if job_storage_mount_configuration_details_list is not None:
1394
+ _details['jobStorageMountConfigurationDetailsList'] = cli_util.parse_json_parameter("job_storage_mount_configuration_details_list", job_storage_mount_configuration_details_list)
1395
+
1396
+ if job_node_configuration_details is not None:
1397
+ _details['jobNodeConfigurationDetails'] = cli_util.parse_json_parameter("job_node_configuration_details", job_node_configuration_details)
1398
+
1399
+ if freeform_tags is not None:
1400
+ _details['freeformTags'] = cli_util.parse_json_parameter("freeform_tags", freeform_tags)
1401
+
1402
+ if defined_tags is not None:
1403
+ _details['definedTags'] = cli_util.parse_json_parameter("defined_tags", defined_tags)
1404
+
1405
+ client = cli_util.build_client('data_science', 'data_science', ctx)
1406
+ result = client.create_job(
1407
+ create_job_details=_details,
1408
+ **kwargs
1409
+ )
1410
+ if wait_for_state:
1411
+
1412
+ if hasattr(client, 'get_job') and callable(getattr(client, 'get_job')):
1413
+ try:
1414
+ wait_period_kwargs = {}
1415
+ if max_wait_seconds is not None:
1416
+ wait_period_kwargs['max_wait_seconds'] = max_wait_seconds
1417
+ if wait_interval_seconds is not None:
1418
+ wait_period_kwargs['max_interval_seconds'] = wait_interval_seconds
1419
+
1420
+ click.echo('Action completed. Waiting until the resource has entered state: {}'.format(wait_for_state), file=sys.stderr)
1421
+ result = oci.wait_until(client, client.get_job(result.data.id), 'lifecycle_state', wait_for_state, **wait_period_kwargs)
1422
+ except oci.exceptions.MaximumWaitTimeExceeded as e:
1423
+ # If we fail, we should show an error, but we should still provide the information to the customer
1424
+ click.echo('Failed to wait until the resource entered the specified state. Outputting last known resource state', file=sys.stderr)
1425
+ cli_util.render_response(result, ctx)
1426
+ sys.exit(2)
1427
+ except Exception:
1428
+ click.echo('Encountered error while waiting for resource to enter the specified state. Outputting last known resource state', file=sys.stderr)
1429
+ cli_util.render_response(result, ctx)
1430
+ raise
1431
+ else:
1432
+ click.echo('Unable to wait for the resource to enter the specified state', file=sys.stderr)
1433
+ cli_util.render_response(result, ctx)
1434
+
1435
+
1436
+ @job_group.command(name=cli_util.override('data_science.create_job_empty_job_configuration_details.command_name', 'create-job-empty-job-configuration-details'), help=u"""Creates a job. \n[Command Reference](createJob)""")
1437
+ @cli_util.option('--project-id', required=True, help=u"""The [OCID] of the project to associate the job with.""")
1438
+ @cli_util.option('--compartment-id', required=True, help=u"""The [OCID] of the compartment where you want to create the job.""")
1439
+ @cli_util.option('--display-name', help=u"""A user-friendly display name for the resource.""")
1440
+ @cli_util.option('--description', help=u"""A short description of the job.""")
1441
+ @cli_util.option('--job-infrastructure-configuration-details', type=custom_types.CLI_COMPLEX_TYPE, help=u"""""" + custom_types.cli_complex_type.COMPLEX_TYPE_HELP)
1350
1442
  @cli_util.option('--job-environment-configuration-details', type=custom_types.CLI_COMPLEX_TYPE, help=u"""""" + custom_types.cli_complex_type.COMPLEX_TYPE_HELP)
1351
1443
  @cli_util.option('--job-log-configuration-details', type=custom_types.CLI_COMPLEX_TYPE, help=u"""""" + custom_types.cli_complex_type.COMPLEX_TYPE_HELP)
1352
1444
  @cli_util.option('--job-storage-mount-configuration-details-list', type=custom_types.CLI_COMPLEX_TYPE, help=u"""Collection of JobStorageMountConfigurationDetails.
1353
1445
 
1354
1446
  This option is a JSON list with items of type StorageMountConfigurationDetails. For documentation on StorageMountConfigurationDetails please see our API reference: https://docs.cloud.oracle.com/api/#/en/datascience/20190101/datatypes/StorageMountConfigurationDetails.""" + custom_types.cli_complex_type.COMPLEX_TYPE_HELP)
1447
+ @cli_util.option('--job-node-configuration-details', type=custom_types.CLI_COMPLEX_TYPE, help=u"""""" + custom_types.cli_complex_type.COMPLEX_TYPE_HELP)
1355
1448
  @cli_util.option('--freeform-tags', type=custom_types.CLI_COMPLEX_TYPE, help=u"""Free-form tags for this resource. Each tag is a simple key-value pair with no predefined name, type, or namespace. See [Resource Tags]. Example: `{\"Department\": \"Finance\"}`""" + custom_types.cli_complex_type.COMPLEX_TYPE_HELP)
1356
1449
  @cli_util.option('--defined-tags', type=custom_types.CLI_COMPLEX_TYPE, help=u"""Defined tags for this resource. Each key is predefined and scoped to a namespace. See [Resource Tags]. Example: `{\"Operations\": {\"CostCenter\": \"42\"}}`""" + custom_types.cli_complex_type.COMPLEX_TYPE_HELP)
1357
1450
  @cli_util.option('--wait-for-state', type=custom_types.CliCaseInsensitiveChoice(["CREATING", "ACTIVE", "DELETING", "FAILED", "DELETED"]), multiple=True, help="""This operation creates, modifies or deletes a resource that has a defined lifecycle state. Specify this option to perform the action and then wait until the resource reaches a given lifecycle state. Multiple states can be specified, returning on the first state. For example, --wait-for-state SUCCEEDED --wait-for-state FAILED would return on whichever lifecycle state is reached first. If timeout is reached, a return code of 2 is returned. For any other error, a return code of 1 is returned.""")
1358
1451
  @cli_util.option('--max-wait-seconds', type=click.INT, help="""The maximum time to wait for the resource to reach the lifecycle state defined by --wait-for-state. Defaults to 1200 seconds.""")
1359
1452
  @cli_util.option('--wait-interval-seconds', type=click.INT, help="""Check every --wait-interval-seconds to see whether the resource has reached the lifecycle state defined by --wait-for-state. Defaults to 30 seconds.""")
1360
- @json_skeleton_utils.get_cli_json_input_option({'job-configuration-details': {'module': 'data_science', 'class': 'JobConfigurationDetails'}, 'job-infrastructure-configuration-details': {'module': 'data_science', 'class': 'JobInfrastructureConfigurationDetails'}, 'job-environment-configuration-details': {'module': 'data_science', 'class': 'JobEnvironmentConfigurationDetails'}, 'job-log-configuration-details': {'module': 'data_science', 'class': 'JobLogConfigurationDetails'}, 'job-storage-mount-configuration-details-list': {'module': 'data_science', 'class': 'list[StorageMountConfigurationDetails]'}, 'freeform-tags': {'module': 'data_science', 'class': 'dict(str, string)'}, 'defined-tags': {'module': 'data_science', 'class': 'dict(str, dict(str, object))'}})
1453
+ @json_skeleton_utils.get_cli_json_input_option({'job-infrastructure-configuration-details': {'module': 'data_science', 'class': 'JobInfrastructureConfigurationDetails'}, 'job-environment-configuration-details': {'module': 'data_science', 'class': 'JobEnvironmentConfigurationDetails'}, 'job-log-configuration-details': {'module': 'data_science', 'class': 'JobLogConfigurationDetails'}, 'job-storage-mount-configuration-details-list': {'module': 'data_science', 'class': 'list[StorageMountConfigurationDetails]'}, 'job-node-configuration-details': {'module': 'data_science', 'class': 'JobNodeConfigurationDetails'}, 'freeform-tags': {'module': 'data_science', 'class': 'dict(str, string)'}, 'defined-tags': {'module': 'data_science', 'class': 'dict(str, dict(str, object))'}})
1361
1454
  @cli_util.help_option
1362
1455
  @click.pass_context
1363
- @json_skeleton_utils.json_skeleton_generation_handler(input_params_to_complex_types={'job-configuration-details': {'module': 'data_science', 'class': 'JobConfigurationDetails'}, 'job-infrastructure-configuration-details': {'module': 'data_science', 'class': 'JobInfrastructureConfigurationDetails'}, 'job-environment-configuration-details': {'module': 'data_science', 'class': 'JobEnvironmentConfigurationDetails'}, 'job-log-configuration-details': {'module': 'data_science', 'class': 'JobLogConfigurationDetails'}, 'job-storage-mount-configuration-details-list': {'module': 'data_science', 'class': 'list[StorageMountConfigurationDetails]'}, 'freeform-tags': {'module': 'data_science', 'class': 'dict(str, string)'}, 'defined-tags': {'module': 'data_science', 'class': 'dict(str, dict(str, object))'}}, output_type={'module': 'data_science', 'class': 'Job'})
1456
+ @json_skeleton_utils.json_skeleton_generation_handler(input_params_to_complex_types={'job-infrastructure-configuration-details': {'module': 'data_science', 'class': 'JobInfrastructureConfigurationDetails'}, 'job-environment-configuration-details': {'module': 'data_science', 'class': 'JobEnvironmentConfigurationDetails'}, 'job-log-configuration-details': {'module': 'data_science', 'class': 'JobLogConfigurationDetails'}, 'job-storage-mount-configuration-details-list': {'module': 'data_science', 'class': 'list[StorageMountConfigurationDetails]'}, 'job-node-configuration-details': {'module': 'data_science', 'class': 'JobNodeConfigurationDetails'}, 'freeform-tags': {'module': 'data_science', 'class': 'dict(str, string)'}, 'defined-tags': {'module': 'data_science', 'class': 'dict(str, dict(str, object))'}}, output_type={'module': 'data_science', 'class': 'Job'})
1364
1457
  @cli_util.wrap_exceptions
1365
- def create_job(ctx, from_json, wait_for_state, max_wait_seconds, wait_interval_seconds, project_id, compartment_id, job_configuration_details, job_infrastructure_configuration_details, display_name, description, job_environment_configuration_details, job_log_configuration_details, job_storage_mount_configuration_details_list, freeform_tags, defined_tags):
1458
+ def create_job_empty_job_configuration_details(ctx, from_json, wait_for_state, max_wait_seconds, wait_interval_seconds, project_id, compartment_id, display_name, description, job_infrastructure_configuration_details, job_environment_configuration_details, job_log_configuration_details, job_storage_mount_configuration_details_list, job_node_configuration_details, freeform_tags, defined_tags):
1366
1459
 
1367
1460
  kwargs = {}
1368
1461
  kwargs['opc_request_id'] = cli_util.use_or_generate_request_id(ctx.obj['request_id'])
1369
1462
 
1370
1463
  _details = {}
1464
+ _details['jobConfigurationDetails'] = {}
1371
1465
  _details['projectId'] = project_id
1372
1466
  _details['compartmentId'] = compartment_id
1373
- _details['jobConfigurationDetails'] = cli_util.parse_json_parameter("job_configuration_details", job_configuration_details)
1374
- _details['jobInfrastructureConfigurationDetails'] = cli_util.parse_json_parameter("job_infrastructure_configuration_details", job_infrastructure_configuration_details)
1375
1467
 
1376
1468
  if display_name is not None:
1377
1469
  _details['displayName'] = display_name
@@ -1379,6 +1471,9 @@ def create_job(ctx, from_json, wait_for_state, max_wait_seconds, wait_interval_s
1379
1471
  if description is not None:
1380
1472
  _details['description'] = description
1381
1473
 
1474
+ if job_infrastructure_configuration_details is not None:
1475
+ _details['jobInfrastructureConfigurationDetails'] = cli_util.parse_json_parameter("job_infrastructure_configuration_details", job_infrastructure_configuration_details)
1476
+
1382
1477
  if job_environment_configuration_details is not None:
1383
1478
  _details['jobEnvironmentConfigurationDetails'] = cli_util.parse_json_parameter("job_environment_configuration_details", job_environment_configuration_details)
1384
1479
 
@@ -1388,12 +1483,17 @@ def create_job(ctx, from_json, wait_for_state, max_wait_seconds, wait_interval_s
1388
1483
  if job_storage_mount_configuration_details_list is not None:
1389
1484
  _details['jobStorageMountConfigurationDetailsList'] = cli_util.parse_json_parameter("job_storage_mount_configuration_details_list", job_storage_mount_configuration_details_list)
1390
1485
 
1486
+ if job_node_configuration_details is not None:
1487
+ _details['jobNodeConfigurationDetails'] = cli_util.parse_json_parameter("job_node_configuration_details", job_node_configuration_details)
1488
+
1391
1489
  if freeform_tags is not None:
1392
1490
  _details['freeformTags'] = cli_util.parse_json_parameter("freeform_tags", freeform_tags)
1393
1491
 
1394
1492
  if defined_tags is not None:
1395
1493
  _details['definedTags'] = cli_util.parse_json_parameter("defined_tags", defined_tags)
1396
1494
 
1495
+ _details['jobConfigurationDetails']['jobType'] = 'EMPTY'
1496
+
1397
1497
  client = cli_util.build_client('data_science', 'data_science', ctx)
1398
1498
  result = client.create_job(
1399
1499
  create_job_details=_details,
@@ -1428,28 +1528,30 @@ def create_job(ctx, from_json, wait_for_state, max_wait_seconds, wait_interval_s
1428
1528
  @job_group.command(name=cli_util.override('data_science.create_job_default_job_configuration_details.command_name', 'create-job-default-job-configuration-details'), help=u"""Creates a job. \n[Command Reference](createJob)""")
1429
1529
  @cli_util.option('--project-id', required=True, help=u"""The [OCID] of the project to associate the job with.""")
1430
1530
  @cli_util.option('--compartment-id', required=True, help=u"""The [OCID] of the compartment where you want to create the job.""")
1431
- @cli_util.option('--job-infrastructure-configuration-details', required=True, type=custom_types.CLI_COMPLEX_TYPE, help=u"""""" + custom_types.cli_complex_type.COMPLEX_TYPE_HELP)
1432
1531
  @cli_util.option('--display-name', help=u"""A user-friendly display name for the resource.""")
1433
1532
  @cli_util.option('--description', help=u"""A short description of the job.""")
1533
+ @cli_util.option('--job-infrastructure-configuration-details', type=custom_types.CLI_COMPLEX_TYPE, help=u"""""" + custom_types.cli_complex_type.COMPLEX_TYPE_HELP)
1434
1534
  @cli_util.option('--job-environment-configuration-details', type=custom_types.CLI_COMPLEX_TYPE, help=u"""""" + custom_types.cli_complex_type.COMPLEX_TYPE_HELP)
1435
1535
  @cli_util.option('--job-log-configuration-details', type=custom_types.CLI_COMPLEX_TYPE, help=u"""""" + custom_types.cli_complex_type.COMPLEX_TYPE_HELP)
1436
1536
  @cli_util.option('--job-storage-mount-configuration-details-list', type=custom_types.CLI_COMPLEX_TYPE, help=u"""Collection of JobStorageMountConfigurationDetails.
1437
1537
 
1438
1538
  This option is a JSON list with items of type StorageMountConfigurationDetails. For documentation on StorageMountConfigurationDetails please see our API reference: https://docs.cloud.oracle.com/api/#/en/datascience/20190101/datatypes/StorageMountConfigurationDetails.""" + custom_types.cli_complex_type.COMPLEX_TYPE_HELP)
1539
+ @cli_util.option('--job-node-configuration-details', type=custom_types.CLI_COMPLEX_TYPE, help=u"""""" + custom_types.cli_complex_type.COMPLEX_TYPE_HELP)
1439
1540
  @cli_util.option('--freeform-tags', type=custom_types.CLI_COMPLEX_TYPE, help=u"""Free-form tags for this resource. Each tag is a simple key-value pair with no predefined name, type, or namespace. See [Resource Tags]. Example: `{\"Department\": \"Finance\"}`""" + custom_types.cli_complex_type.COMPLEX_TYPE_HELP)
1440
1541
  @cli_util.option('--defined-tags', type=custom_types.CLI_COMPLEX_TYPE, help=u"""Defined tags for this resource. Each key is predefined and scoped to a namespace. See [Resource Tags]. Example: `{\"Operations\": {\"CostCenter\": \"42\"}}`""" + custom_types.cli_complex_type.COMPLEX_TYPE_HELP)
1441
1542
  @cli_util.option('--job-configuration-details-environment-variables', type=custom_types.CLI_COMPLEX_TYPE, help=u"""Environment variables to set for the job.""" + custom_types.cli_complex_type.COMPLEX_TYPE_HELP)
1442
1543
  @cli_util.option('--job-configuration-details-command-line-arguments', help=u"""The arguments to pass to the job.""")
1443
1544
  @cli_util.option('--job-configuration-details-maximum-runtime-in-minutes', type=click.INT, help=u"""A time bound for the execution of the job. Timer starts when the job becomes active.""")
1545
+ @cli_util.option('--job-configuration-details-startup-probe-details', type=custom_types.CLI_COMPLEX_TYPE, help=u"""""" + custom_types.cli_complex_type.COMPLEX_TYPE_HELP)
1444
1546
  @cli_util.option('--wait-for-state', type=custom_types.CliCaseInsensitiveChoice(["CREATING", "ACTIVE", "DELETING", "FAILED", "DELETED"]), multiple=True, help="""This operation creates, modifies or deletes a resource that has a defined lifecycle state. Specify this option to perform the action and then wait until the resource reaches a given lifecycle state. Multiple states can be specified, returning on the first state. For example, --wait-for-state SUCCEEDED --wait-for-state FAILED would return on whichever lifecycle state is reached first. If timeout is reached, a return code of 2 is returned. For any other error, a return code of 1 is returned.""")
1445
1547
  @cli_util.option('--max-wait-seconds', type=click.INT, help="""The maximum time to wait for the resource to reach the lifecycle state defined by --wait-for-state. Defaults to 1200 seconds.""")
1446
1548
  @cli_util.option('--wait-interval-seconds', type=click.INT, help="""Check every --wait-interval-seconds to see whether the resource has reached the lifecycle state defined by --wait-for-state. Defaults to 30 seconds.""")
1447
- @json_skeleton_utils.get_cli_json_input_option({'job-infrastructure-configuration-details': {'module': 'data_science', 'class': 'JobInfrastructureConfigurationDetails'}, 'job-environment-configuration-details': {'module': 'data_science', 'class': 'JobEnvironmentConfigurationDetails'}, 'job-log-configuration-details': {'module': 'data_science', 'class': 'JobLogConfigurationDetails'}, 'job-storage-mount-configuration-details-list': {'module': 'data_science', 'class': 'list[StorageMountConfigurationDetails]'}, 'freeform-tags': {'module': 'data_science', 'class': 'dict(str, string)'}, 'defined-tags': {'module': 'data_science', 'class': 'dict(str, dict(str, object))'}, 'job-configuration-details-environment-variables': {'module': 'data_science', 'class': 'dict(str, string)'}})
1549
+ @json_skeleton_utils.get_cli_json_input_option({'job-infrastructure-configuration-details': {'module': 'data_science', 'class': 'JobInfrastructureConfigurationDetails'}, 'job-environment-configuration-details': {'module': 'data_science', 'class': 'JobEnvironmentConfigurationDetails'}, 'job-log-configuration-details': {'module': 'data_science', 'class': 'JobLogConfigurationDetails'}, 'job-storage-mount-configuration-details-list': {'module': 'data_science', 'class': 'list[StorageMountConfigurationDetails]'}, 'job-node-configuration-details': {'module': 'data_science', 'class': 'JobNodeConfigurationDetails'}, 'freeform-tags': {'module': 'data_science', 'class': 'dict(str, string)'}, 'defined-tags': {'module': 'data_science', 'class': 'dict(str, dict(str, object))'}, 'job-configuration-details-environment-variables': {'module': 'data_science', 'class': 'dict(str, string)'}, 'job-configuration-details-startup-probe-details': {'module': 'data_science', 'class': 'JobProbeDetails'}})
1448
1550
  @cli_util.help_option
1449
1551
  @click.pass_context
1450
- @json_skeleton_utils.json_skeleton_generation_handler(input_params_to_complex_types={'job-infrastructure-configuration-details': {'module': 'data_science', 'class': 'JobInfrastructureConfigurationDetails'}, 'job-environment-configuration-details': {'module': 'data_science', 'class': 'JobEnvironmentConfigurationDetails'}, 'job-log-configuration-details': {'module': 'data_science', 'class': 'JobLogConfigurationDetails'}, 'job-storage-mount-configuration-details-list': {'module': 'data_science', 'class': 'list[StorageMountConfigurationDetails]'}, 'freeform-tags': {'module': 'data_science', 'class': 'dict(str, string)'}, 'defined-tags': {'module': 'data_science', 'class': 'dict(str, dict(str, object))'}, 'job-configuration-details-environment-variables': {'module': 'data_science', 'class': 'dict(str, string)'}}, output_type={'module': 'data_science', 'class': 'Job'})
1552
+ @json_skeleton_utils.json_skeleton_generation_handler(input_params_to_complex_types={'job-infrastructure-configuration-details': {'module': 'data_science', 'class': 'JobInfrastructureConfigurationDetails'}, 'job-environment-configuration-details': {'module': 'data_science', 'class': 'JobEnvironmentConfigurationDetails'}, 'job-log-configuration-details': {'module': 'data_science', 'class': 'JobLogConfigurationDetails'}, 'job-storage-mount-configuration-details-list': {'module': 'data_science', 'class': 'list[StorageMountConfigurationDetails]'}, 'job-node-configuration-details': {'module': 'data_science', 'class': 'JobNodeConfigurationDetails'}, 'freeform-tags': {'module': 'data_science', 'class': 'dict(str, string)'}, 'defined-tags': {'module': 'data_science', 'class': 'dict(str, dict(str, object))'}, 'job-configuration-details-environment-variables': {'module': 'data_science', 'class': 'dict(str, string)'}, 'job-configuration-details-startup-probe-details': {'module': 'data_science', 'class': 'JobProbeDetails'}}, output_type={'module': 'data_science', 'class': 'Job'})
1451
1553
  @cli_util.wrap_exceptions
1452
- def create_job_default_job_configuration_details(ctx, from_json, wait_for_state, max_wait_seconds, wait_interval_seconds, project_id, compartment_id, job_infrastructure_configuration_details, display_name, description, job_environment_configuration_details, job_log_configuration_details, job_storage_mount_configuration_details_list, freeform_tags, defined_tags, job_configuration_details_environment_variables, job_configuration_details_command_line_arguments, job_configuration_details_maximum_runtime_in_minutes):
1554
+ def create_job_default_job_configuration_details(ctx, from_json, wait_for_state, max_wait_seconds, wait_interval_seconds, project_id, compartment_id, display_name, description, job_infrastructure_configuration_details, job_environment_configuration_details, job_log_configuration_details, job_storage_mount_configuration_details_list, job_node_configuration_details, freeform_tags, defined_tags, job_configuration_details_environment_variables, job_configuration_details_command_line_arguments, job_configuration_details_maximum_runtime_in_minutes, job_configuration_details_startup_probe_details):
1453
1555
 
1454
1556
  kwargs = {}
1455
1557
  kwargs['opc_request_id'] = cli_util.use_or_generate_request_id(ctx.obj['request_id'])
@@ -1458,7 +1560,6 @@ def create_job_default_job_configuration_details(ctx, from_json, wait_for_state,
1458
1560
  _details['jobConfigurationDetails'] = {}
1459
1561
  _details['projectId'] = project_id
1460
1562
  _details['compartmentId'] = compartment_id
1461
- _details['jobInfrastructureConfigurationDetails'] = cli_util.parse_json_parameter("job_infrastructure_configuration_details", job_infrastructure_configuration_details)
1462
1563
 
1463
1564
  if display_name is not None:
1464
1565
  _details['displayName'] = display_name
@@ -1466,6 +1567,9 @@ def create_job_default_job_configuration_details(ctx, from_json, wait_for_state,
1466
1567
  if description is not None:
1467
1568
  _details['description'] = description
1468
1569
 
1570
+ if job_infrastructure_configuration_details is not None:
1571
+ _details['jobInfrastructureConfigurationDetails'] = cli_util.parse_json_parameter("job_infrastructure_configuration_details", job_infrastructure_configuration_details)
1572
+
1469
1573
  if job_environment_configuration_details is not None:
1470
1574
  _details['jobEnvironmentConfigurationDetails'] = cli_util.parse_json_parameter("job_environment_configuration_details", job_environment_configuration_details)
1471
1575
 
@@ -1475,6 +1579,9 @@ def create_job_default_job_configuration_details(ctx, from_json, wait_for_state,
1475
1579
  if job_storage_mount_configuration_details_list is not None:
1476
1580
  _details['jobStorageMountConfigurationDetailsList'] = cli_util.parse_json_parameter("job_storage_mount_configuration_details_list", job_storage_mount_configuration_details_list)
1477
1581
 
1582
+ if job_node_configuration_details is not None:
1583
+ _details['jobNodeConfigurationDetails'] = cli_util.parse_json_parameter("job_node_configuration_details", job_node_configuration_details)
1584
+
1478
1585
  if freeform_tags is not None:
1479
1586
  _details['freeformTags'] = cli_util.parse_json_parameter("freeform_tags", freeform_tags)
1480
1587
 
@@ -1490,6 +1597,9 @@ def create_job_default_job_configuration_details(ctx, from_json, wait_for_state,
1490
1597
  if job_configuration_details_maximum_runtime_in_minutes is not None:
1491
1598
  _details['jobConfigurationDetails']['maximumRuntimeInMinutes'] = job_configuration_details_maximum_runtime_in_minutes
1492
1599
 
1600
+ if job_configuration_details_startup_probe_details is not None:
1601
+ _details['jobConfigurationDetails']['startupProbeDetails'] = cli_util.parse_json_parameter("job_configuration_details_startup_probe_details", job_configuration_details_startup_probe_details)
1602
+
1493
1603
  _details['jobConfigurationDetails']['jobType'] = 'DEFAULT'
1494
1604
 
1495
1605
  client = cli_util.build_client('data_science', 'data_science', ctx)
@@ -1523,31 +1633,32 @@ def create_job_default_job_configuration_details(ctx, from_json, wait_for_state,
1523
1633
  cli_util.render_response(result, ctx)
1524
1634
 
1525
1635
 
1526
- @job_group.command(name=cli_util.override('data_science.create_job_managed_egress_standalone_job_infrastructure_configuration_details.command_name', 'create-job-managed-egress-standalone-job-infrastructure-configuration-details'), help=u"""Creates a job. \n[Command Reference](createJob)""")
1636
+ @job_group.command(name=cli_util.override('data_science.create_job_multi_node_job_infrastructure_configuration_details.command_name', 'create-job-multi-node-job-infrastructure-configuration-details'), help=u"""Creates a job. \n[Command Reference](createJob)""")
1527
1637
  @cli_util.option('--project-id', required=True, help=u"""The [OCID] of the project to associate the job with.""")
1528
1638
  @cli_util.option('--compartment-id', required=True, help=u"""The [OCID] of the compartment where you want to create the job.""")
1529
- @cli_util.option('--job-configuration-details', required=True, type=custom_types.CLI_COMPLEX_TYPE, help=u"""""" + custom_types.cli_complex_type.COMPLEX_TYPE_HELP)
1530
- @cli_util.option('--job-infrastructure-configuration-details-shape-name', required=True, help=u"""The shape used to launch the job run instances.""")
1639
+ @cli_util.option('--job-infrastructure-configuration-details-shape-name', required=True, help=u"""The name that corresponds to the JobShapeSummary to use for the job node""")
1531
1640
  @cli_util.option('--job-infrastructure-configuration-details-block-storage-size-in-gbs', required=True, type=click.INT, help=u"""The size of the block storage volume to attach to the instance running the job""")
1532
1641
  @cli_util.option('--display-name', help=u"""A user-friendly display name for the resource.""")
1533
1642
  @cli_util.option('--description', help=u"""A short description of the job.""")
1643
+ @cli_util.option('--job-configuration-details', type=custom_types.CLI_COMPLEX_TYPE, help=u"""""" + custom_types.cli_complex_type.COMPLEX_TYPE_HELP)
1534
1644
  @cli_util.option('--job-environment-configuration-details', type=custom_types.CLI_COMPLEX_TYPE, help=u"""""" + custom_types.cli_complex_type.COMPLEX_TYPE_HELP)
1535
1645
  @cli_util.option('--job-log-configuration-details', type=custom_types.CLI_COMPLEX_TYPE, help=u"""""" + custom_types.cli_complex_type.COMPLEX_TYPE_HELP)
1536
1646
  @cli_util.option('--job-storage-mount-configuration-details-list', type=custom_types.CLI_COMPLEX_TYPE, help=u"""Collection of JobStorageMountConfigurationDetails.
1537
1647
 
1538
1648
  This option is a JSON list with items of type StorageMountConfigurationDetails. For documentation on StorageMountConfigurationDetails please see our API reference: https://docs.cloud.oracle.com/api/#/en/datascience/20190101/datatypes/StorageMountConfigurationDetails.""" + custom_types.cli_complex_type.COMPLEX_TYPE_HELP)
1649
+ @cli_util.option('--job-node-configuration-details', type=custom_types.CLI_COMPLEX_TYPE, help=u"""""" + custom_types.cli_complex_type.COMPLEX_TYPE_HELP)
1539
1650
  @cli_util.option('--freeform-tags', type=custom_types.CLI_COMPLEX_TYPE, help=u"""Free-form tags for this resource. Each tag is a simple key-value pair with no predefined name, type, or namespace. See [Resource Tags]. Example: `{\"Department\": \"Finance\"}`""" + custom_types.cli_complex_type.COMPLEX_TYPE_HELP)
1540
1651
  @cli_util.option('--defined-tags', type=custom_types.CLI_COMPLEX_TYPE, help=u"""Defined tags for this resource. Each key is predefined and scoped to a namespace. See [Resource Tags]. Example: `{\"Operations\": {\"CostCenter\": \"42\"}}`""" + custom_types.cli_complex_type.COMPLEX_TYPE_HELP)
1541
1652
  @cli_util.option('--job-infrastructure-configuration-details-job-shape-config-details', type=custom_types.CLI_COMPLEX_TYPE, help=u"""""" + custom_types.cli_complex_type.COMPLEX_TYPE_HELP)
1542
1653
  @cli_util.option('--wait-for-state', type=custom_types.CliCaseInsensitiveChoice(["CREATING", "ACTIVE", "DELETING", "FAILED", "DELETED"]), multiple=True, help="""This operation creates, modifies or deletes a resource that has a defined lifecycle state. Specify this option to perform the action and then wait until the resource reaches a given lifecycle state. Multiple states can be specified, returning on the first state. For example, --wait-for-state SUCCEEDED --wait-for-state FAILED would return on whichever lifecycle state is reached first. If timeout is reached, a return code of 2 is returned. For any other error, a return code of 1 is returned.""")
1543
1654
  @cli_util.option('--max-wait-seconds', type=click.INT, help="""The maximum time to wait for the resource to reach the lifecycle state defined by --wait-for-state. Defaults to 1200 seconds.""")
1544
1655
  @cli_util.option('--wait-interval-seconds', type=click.INT, help="""Check every --wait-interval-seconds to see whether the resource has reached the lifecycle state defined by --wait-for-state. Defaults to 30 seconds.""")
1545
- @json_skeleton_utils.get_cli_json_input_option({'job-configuration-details': {'module': 'data_science', 'class': 'JobConfigurationDetails'}, 'job-environment-configuration-details': {'module': 'data_science', 'class': 'JobEnvironmentConfigurationDetails'}, 'job-log-configuration-details': {'module': 'data_science', 'class': 'JobLogConfigurationDetails'}, 'job-storage-mount-configuration-details-list': {'module': 'data_science', 'class': 'list[StorageMountConfigurationDetails]'}, 'freeform-tags': {'module': 'data_science', 'class': 'dict(str, string)'}, 'defined-tags': {'module': 'data_science', 'class': 'dict(str, dict(str, object))'}, 'job-infrastructure-configuration-details-job-shape-config-details': {'module': 'data_science', 'class': 'JobShapeConfigDetails'}})
1656
+ @json_skeleton_utils.get_cli_json_input_option({'job-configuration-details': {'module': 'data_science', 'class': 'JobConfigurationDetails'}, 'job-environment-configuration-details': {'module': 'data_science', 'class': 'JobEnvironmentConfigurationDetails'}, 'job-log-configuration-details': {'module': 'data_science', 'class': 'JobLogConfigurationDetails'}, 'job-storage-mount-configuration-details-list': {'module': 'data_science', 'class': 'list[StorageMountConfigurationDetails]'}, 'job-node-configuration-details': {'module': 'data_science', 'class': 'JobNodeConfigurationDetails'}, 'freeform-tags': {'module': 'data_science', 'class': 'dict(str, string)'}, 'defined-tags': {'module': 'data_science', 'class': 'dict(str, dict(str, object))'}, 'job-infrastructure-configuration-details-job-shape-config-details': {'module': 'data_science', 'class': 'JobShapeConfigDetails'}})
1546
1657
  @cli_util.help_option
1547
1658
  @click.pass_context
1548
- @json_skeleton_utils.json_skeleton_generation_handler(input_params_to_complex_types={'job-configuration-details': {'module': 'data_science', 'class': 'JobConfigurationDetails'}, 'job-environment-configuration-details': {'module': 'data_science', 'class': 'JobEnvironmentConfigurationDetails'}, 'job-log-configuration-details': {'module': 'data_science', 'class': 'JobLogConfigurationDetails'}, 'job-storage-mount-configuration-details-list': {'module': 'data_science', 'class': 'list[StorageMountConfigurationDetails]'}, 'freeform-tags': {'module': 'data_science', 'class': 'dict(str, string)'}, 'defined-tags': {'module': 'data_science', 'class': 'dict(str, dict(str, object))'}, 'job-infrastructure-configuration-details-job-shape-config-details': {'module': 'data_science', 'class': 'JobShapeConfigDetails'}}, output_type={'module': 'data_science', 'class': 'Job'})
1659
+ @json_skeleton_utils.json_skeleton_generation_handler(input_params_to_complex_types={'job-configuration-details': {'module': 'data_science', 'class': 'JobConfigurationDetails'}, 'job-environment-configuration-details': {'module': 'data_science', 'class': 'JobEnvironmentConfigurationDetails'}, 'job-log-configuration-details': {'module': 'data_science', 'class': 'JobLogConfigurationDetails'}, 'job-storage-mount-configuration-details-list': {'module': 'data_science', 'class': 'list[StorageMountConfigurationDetails]'}, 'job-node-configuration-details': {'module': 'data_science', 'class': 'JobNodeConfigurationDetails'}, 'freeform-tags': {'module': 'data_science', 'class': 'dict(str, string)'}, 'defined-tags': {'module': 'data_science', 'class': 'dict(str, dict(str, object))'}, 'job-infrastructure-configuration-details-job-shape-config-details': {'module': 'data_science', 'class': 'JobShapeConfigDetails'}}, output_type={'module': 'data_science', 'class': 'Job'})
1549
1660
  @cli_util.wrap_exceptions
1550
- def create_job_managed_egress_standalone_job_infrastructure_configuration_details(ctx, from_json, wait_for_state, max_wait_seconds, wait_interval_seconds, project_id, compartment_id, job_configuration_details, job_infrastructure_configuration_details_shape_name, job_infrastructure_configuration_details_block_storage_size_in_gbs, display_name, description, job_environment_configuration_details, job_log_configuration_details, job_storage_mount_configuration_details_list, freeform_tags, defined_tags, job_infrastructure_configuration_details_job_shape_config_details):
1661
+ def create_job_multi_node_job_infrastructure_configuration_details(ctx, from_json, wait_for_state, max_wait_seconds, wait_interval_seconds, project_id, compartment_id, job_infrastructure_configuration_details_shape_name, job_infrastructure_configuration_details_block_storage_size_in_gbs, display_name, description, job_configuration_details, job_environment_configuration_details, job_log_configuration_details, job_storage_mount_configuration_details_list, job_node_configuration_details, freeform_tags, defined_tags, job_infrastructure_configuration_details_job_shape_config_details):
1551
1662
 
1552
1663
  kwargs = {}
1553
1664
  kwargs['opc_request_id'] = cli_util.use_or_generate_request_id(ctx.obj['request_id'])
@@ -1556,7 +1667,6 @@ def create_job_managed_egress_standalone_job_infrastructure_configuration_detail
1556
1667
  _details['jobInfrastructureConfigurationDetails'] = {}
1557
1668
  _details['projectId'] = project_id
1558
1669
  _details['compartmentId'] = compartment_id
1559
- _details['jobConfigurationDetails'] = cli_util.parse_json_parameter("job_configuration_details", job_configuration_details)
1560
1670
  _details['jobInfrastructureConfigurationDetails']['shapeName'] = job_infrastructure_configuration_details_shape_name
1561
1671
  _details['jobInfrastructureConfigurationDetails']['blockStorageSizeInGBs'] = job_infrastructure_configuration_details_block_storage_size_in_gbs
1562
1672
 
@@ -1566,6 +1676,9 @@ def create_job_managed_egress_standalone_job_infrastructure_configuration_detail
1566
1676
  if description is not None:
1567
1677
  _details['description'] = description
1568
1678
 
1679
+ if job_configuration_details is not None:
1680
+ _details['jobConfigurationDetails'] = cli_util.parse_json_parameter("job_configuration_details", job_configuration_details)
1681
+
1569
1682
  if job_environment_configuration_details is not None:
1570
1683
  _details['jobEnvironmentConfigurationDetails'] = cli_util.parse_json_parameter("job_environment_configuration_details", job_environment_configuration_details)
1571
1684
 
@@ -1575,6 +1688,9 @@ def create_job_managed_egress_standalone_job_infrastructure_configuration_detail
1575
1688
  if job_storage_mount_configuration_details_list is not None:
1576
1689
  _details['jobStorageMountConfigurationDetailsList'] = cli_util.parse_json_parameter("job_storage_mount_configuration_details_list", job_storage_mount_configuration_details_list)
1577
1690
 
1691
+ if job_node_configuration_details is not None:
1692
+ _details['jobNodeConfigurationDetails'] = cli_util.parse_json_parameter("job_node_configuration_details", job_node_configuration_details)
1693
+
1578
1694
  if freeform_tags is not None:
1579
1695
  _details['freeformTags'] = cli_util.parse_json_parameter("freeform_tags", freeform_tags)
1580
1696
 
@@ -1584,7 +1700,7 @@ def create_job_managed_egress_standalone_job_infrastructure_configuration_detail
1584
1700
  if job_infrastructure_configuration_details_job_shape_config_details is not None:
1585
1701
  _details['jobInfrastructureConfigurationDetails']['jobShapeConfigDetails'] = cli_util.parse_json_parameter("job_infrastructure_configuration_details_job_shape_config_details", job_infrastructure_configuration_details_job_shape_config_details)
1586
1702
 
1587
- _details['jobInfrastructureConfigurationDetails']['jobInfrastructureType'] = 'ME_STANDALONE'
1703
+ _details['jobInfrastructureConfigurationDetails']['jobInfrastructureType'] = 'MULTI_NODE'
1588
1704
 
1589
1705
  client = cli_util.build_client('data_science', 'data_science', ctx)
1590
1706
  result = client.create_job(
@@ -1617,32 +1733,124 @@ def create_job_managed_egress_standalone_job_infrastructure_configuration_detail
1617
1733
  cli_util.render_response(result, ctx)
1618
1734
 
1619
1735
 
1620
- @job_group.command(name=cli_util.override('data_science.create_job_standalone_job_infrastructure_configuration_details.command_name', 'create-job-standalone-job-infrastructure-configuration-details'), help=u"""Creates a job. \n[Command Reference](createJob)""")
1736
+ @job_group.command(name=cli_util.override('data_science.create_job_empty_job_infrastructure_configuration_details.command_name', 'create-job-empty-job-infrastructure-configuration-details'), help=u"""Creates a job. \n[Command Reference](createJob)""")
1737
+ @cli_util.option('--project-id', required=True, help=u"""The [OCID] of the project to associate the job with.""")
1738
+ @cli_util.option('--compartment-id', required=True, help=u"""The [OCID] of the compartment where you want to create the job.""")
1739
+ @cli_util.option('--display-name', help=u"""A user-friendly display name for the resource.""")
1740
+ @cli_util.option('--description', help=u"""A short description of the job.""")
1741
+ @cli_util.option('--job-configuration-details', type=custom_types.CLI_COMPLEX_TYPE, help=u"""""" + custom_types.cli_complex_type.COMPLEX_TYPE_HELP)
1742
+ @cli_util.option('--job-environment-configuration-details', type=custom_types.CLI_COMPLEX_TYPE, help=u"""""" + custom_types.cli_complex_type.COMPLEX_TYPE_HELP)
1743
+ @cli_util.option('--job-log-configuration-details', type=custom_types.CLI_COMPLEX_TYPE, help=u"""""" + custom_types.cli_complex_type.COMPLEX_TYPE_HELP)
1744
+ @cli_util.option('--job-storage-mount-configuration-details-list', type=custom_types.CLI_COMPLEX_TYPE, help=u"""Collection of JobStorageMountConfigurationDetails.
1745
+
1746
+ This option is a JSON list with items of type StorageMountConfigurationDetails. For documentation on StorageMountConfigurationDetails please see our API reference: https://docs.cloud.oracle.com/api/#/en/datascience/20190101/datatypes/StorageMountConfigurationDetails.""" + custom_types.cli_complex_type.COMPLEX_TYPE_HELP)
1747
+ @cli_util.option('--job-node-configuration-details', type=custom_types.CLI_COMPLEX_TYPE, help=u"""""" + custom_types.cli_complex_type.COMPLEX_TYPE_HELP)
1748
+ @cli_util.option('--freeform-tags', type=custom_types.CLI_COMPLEX_TYPE, help=u"""Free-form tags for this resource. Each tag is a simple key-value pair with no predefined name, type, or namespace. See [Resource Tags]. Example: `{\"Department\": \"Finance\"}`""" + custom_types.cli_complex_type.COMPLEX_TYPE_HELP)
1749
+ @cli_util.option('--defined-tags', type=custom_types.CLI_COMPLEX_TYPE, help=u"""Defined tags for this resource. Each key is predefined and scoped to a namespace. See [Resource Tags]. Example: `{\"Operations\": {\"CostCenter\": \"42\"}}`""" + custom_types.cli_complex_type.COMPLEX_TYPE_HELP)
1750
+ @cli_util.option('--wait-for-state', type=custom_types.CliCaseInsensitiveChoice(["CREATING", "ACTIVE", "DELETING", "FAILED", "DELETED"]), multiple=True, help="""This operation creates, modifies or deletes a resource that has a defined lifecycle state. Specify this option to perform the action and then wait until the resource reaches a given lifecycle state. Multiple states can be specified, returning on the first state. For example, --wait-for-state SUCCEEDED --wait-for-state FAILED would return on whichever lifecycle state is reached first. If timeout is reached, a return code of 2 is returned. For any other error, a return code of 1 is returned.""")
1751
+ @cli_util.option('--max-wait-seconds', type=click.INT, help="""The maximum time to wait for the resource to reach the lifecycle state defined by --wait-for-state. Defaults to 1200 seconds.""")
1752
+ @cli_util.option('--wait-interval-seconds', type=click.INT, help="""Check every --wait-interval-seconds to see whether the resource has reached the lifecycle state defined by --wait-for-state. Defaults to 30 seconds.""")
1753
+ @json_skeleton_utils.get_cli_json_input_option({'job-configuration-details': {'module': 'data_science', 'class': 'JobConfigurationDetails'}, 'job-environment-configuration-details': {'module': 'data_science', 'class': 'JobEnvironmentConfigurationDetails'}, 'job-log-configuration-details': {'module': 'data_science', 'class': 'JobLogConfigurationDetails'}, 'job-storage-mount-configuration-details-list': {'module': 'data_science', 'class': 'list[StorageMountConfigurationDetails]'}, 'job-node-configuration-details': {'module': 'data_science', 'class': 'JobNodeConfigurationDetails'}, 'freeform-tags': {'module': 'data_science', 'class': 'dict(str, string)'}, 'defined-tags': {'module': 'data_science', 'class': 'dict(str, dict(str, object))'}})
1754
+ @cli_util.help_option
1755
+ @click.pass_context
1756
+ @json_skeleton_utils.json_skeleton_generation_handler(input_params_to_complex_types={'job-configuration-details': {'module': 'data_science', 'class': 'JobConfigurationDetails'}, 'job-environment-configuration-details': {'module': 'data_science', 'class': 'JobEnvironmentConfigurationDetails'}, 'job-log-configuration-details': {'module': 'data_science', 'class': 'JobLogConfigurationDetails'}, 'job-storage-mount-configuration-details-list': {'module': 'data_science', 'class': 'list[StorageMountConfigurationDetails]'}, 'job-node-configuration-details': {'module': 'data_science', 'class': 'JobNodeConfigurationDetails'}, 'freeform-tags': {'module': 'data_science', 'class': 'dict(str, string)'}, 'defined-tags': {'module': 'data_science', 'class': 'dict(str, dict(str, object))'}}, output_type={'module': 'data_science', 'class': 'Job'})
1757
+ @cli_util.wrap_exceptions
1758
+ def create_job_empty_job_infrastructure_configuration_details(ctx, from_json, wait_for_state, max_wait_seconds, wait_interval_seconds, project_id, compartment_id, display_name, description, job_configuration_details, job_environment_configuration_details, job_log_configuration_details, job_storage_mount_configuration_details_list, job_node_configuration_details, freeform_tags, defined_tags):
1759
+
1760
+ kwargs = {}
1761
+ kwargs['opc_request_id'] = cli_util.use_or_generate_request_id(ctx.obj['request_id'])
1762
+
1763
+ _details = {}
1764
+ _details['jobInfrastructureConfigurationDetails'] = {}
1765
+ _details['projectId'] = project_id
1766
+ _details['compartmentId'] = compartment_id
1767
+
1768
+ if display_name is not None:
1769
+ _details['displayName'] = display_name
1770
+
1771
+ if description is not None:
1772
+ _details['description'] = description
1773
+
1774
+ if job_configuration_details is not None:
1775
+ _details['jobConfigurationDetails'] = cli_util.parse_json_parameter("job_configuration_details", job_configuration_details)
1776
+
1777
+ if job_environment_configuration_details is not None:
1778
+ _details['jobEnvironmentConfigurationDetails'] = cli_util.parse_json_parameter("job_environment_configuration_details", job_environment_configuration_details)
1779
+
1780
+ if job_log_configuration_details is not None:
1781
+ _details['jobLogConfigurationDetails'] = cli_util.parse_json_parameter("job_log_configuration_details", job_log_configuration_details)
1782
+
1783
+ if job_storage_mount_configuration_details_list is not None:
1784
+ _details['jobStorageMountConfigurationDetailsList'] = cli_util.parse_json_parameter("job_storage_mount_configuration_details_list", job_storage_mount_configuration_details_list)
1785
+
1786
+ if job_node_configuration_details is not None:
1787
+ _details['jobNodeConfigurationDetails'] = cli_util.parse_json_parameter("job_node_configuration_details", job_node_configuration_details)
1788
+
1789
+ if freeform_tags is not None:
1790
+ _details['freeformTags'] = cli_util.parse_json_parameter("freeform_tags", freeform_tags)
1791
+
1792
+ if defined_tags is not None:
1793
+ _details['definedTags'] = cli_util.parse_json_parameter("defined_tags", defined_tags)
1794
+
1795
+ _details['jobInfrastructureConfigurationDetails']['jobInfrastructureType'] = 'EMPTY'
1796
+
1797
+ client = cli_util.build_client('data_science', 'data_science', ctx)
1798
+ result = client.create_job(
1799
+ create_job_details=_details,
1800
+ **kwargs
1801
+ )
1802
+ if wait_for_state:
1803
+
1804
+ if hasattr(client, 'get_job') and callable(getattr(client, 'get_job')):
1805
+ try:
1806
+ wait_period_kwargs = {}
1807
+ if max_wait_seconds is not None:
1808
+ wait_period_kwargs['max_wait_seconds'] = max_wait_seconds
1809
+ if wait_interval_seconds is not None:
1810
+ wait_period_kwargs['max_interval_seconds'] = wait_interval_seconds
1811
+
1812
+ click.echo('Action completed. Waiting until the resource has entered state: {}'.format(wait_for_state), file=sys.stderr)
1813
+ result = oci.wait_until(client, client.get_job(result.data.id), 'lifecycle_state', wait_for_state, **wait_period_kwargs)
1814
+ except oci.exceptions.MaximumWaitTimeExceeded as e:
1815
+ # If we fail, we should show an error, but we should still provide the information to the customer
1816
+ click.echo('Failed to wait until the resource entered the specified state. Outputting last known resource state', file=sys.stderr)
1817
+ cli_util.render_response(result, ctx)
1818
+ sys.exit(2)
1819
+ except Exception:
1820
+ click.echo('Encountered error while waiting for resource to enter the specified state. Outputting last known resource state', file=sys.stderr)
1821
+ cli_util.render_response(result, ctx)
1822
+ raise
1823
+ else:
1824
+ click.echo('Unable to wait for the resource to enter the specified state', file=sys.stderr)
1825
+ cli_util.render_response(result, ctx)
1826
+
1827
+
1828
+ @job_group.command(name=cli_util.override('data_science.create_job_managed_egress_standalone_job_infrastructure_configuration_details.command_name', 'create-job-managed-egress-standalone-job-infrastructure-configuration-details'), help=u"""Creates a job. \n[Command Reference](createJob)""")
1621
1829
  @cli_util.option('--project-id', required=True, help=u"""The [OCID] of the project to associate the job with.""")
1622
1830
  @cli_util.option('--compartment-id', required=True, help=u"""The [OCID] of the compartment where you want to create the job.""")
1623
- @cli_util.option('--job-configuration-details', required=True, type=custom_types.CLI_COMPLEX_TYPE, help=u"""""" + custom_types.cli_complex_type.COMPLEX_TYPE_HELP)
1624
1831
  @cli_util.option('--job-infrastructure-configuration-details-shape-name', required=True, help=u"""The shape used to launch the job run instances.""")
1625
- @cli_util.option('--job-infrastructure-configuration-details-subnet-id', required=True, help=u"""The subnet to create a secondary vnic in to attach to the instance running the job""")
1626
1832
  @cli_util.option('--job-infrastructure-configuration-details-block-storage-size-in-gbs', required=True, type=click.INT, help=u"""The size of the block storage volume to attach to the instance running the job""")
1627
1833
  @cli_util.option('--display-name', help=u"""A user-friendly display name for the resource.""")
1628
1834
  @cli_util.option('--description', help=u"""A short description of the job.""")
1835
+ @cli_util.option('--job-configuration-details', type=custom_types.CLI_COMPLEX_TYPE, help=u"""""" + custom_types.cli_complex_type.COMPLEX_TYPE_HELP)
1629
1836
  @cli_util.option('--job-environment-configuration-details', type=custom_types.CLI_COMPLEX_TYPE, help=u"""""" + custom_types.cli_complex_type.COMPLEX_TYPE_HELP)
1630
1837
  @cli_util.option('--job-log-configuration-details', type=custom_types.CLI_COMPLEX_TYPE, help=u"""""" + custom_types.cli_complex_type.COMPLEX_TYPE_HELP)
1631
1838
  @cli_util.option('--job-storage-mount-configuration-details-list', type=custom_types.CLI_COMPLEX_TYPE, help=u"""Collection of JobStorageMountConfigurationDetails.
1632
1839
 
1633
1840
  This option is a JSON list with items of type StorageMountConfigurationDetails. For documentation on StorageMountConfigurationDetails please see our API reference: https://docs.cloud.oracle.com/api/#/en/datascience/20190101/datatypes/StorageMountConfigurationDetails.""" + custom_types.cli_complex_type.COMPLEX_TYPE_HELP)
1841
+ @cli_util.option('--job-node-configuration-details', type=custom_types.CLI_COMPLEX_TYPE, help=u"""""" + custom_types.cli_complex_type.COMPLEX_TYPE_HELP)
1634
1842
  @cli_util.option('--freeform-tags', type=custom_types.CLI_COMPLEX_TYPE, help=u"""Free-form tags for this resource. Each tag is a simple key-value pair with no predefined name, type, or namespace. See [Resource Tags]. Example: `{\"Department\": \"Finance\"}`""" + custom_types.cli_complex_type.COMPLEX_TYPE_HELP)
1635
1843
  @cli_util.option('--defined-tags', type=custom_types.CLI_COMPLEX_TYPE, help=u"""Defined tags for this resource. Each key is predefined and scoped to a namespace. See [Resource Tags]. Example: `{\"Operations\": {\"CostCenter\": \"42\"}}`""" + custom_types.cli_complex_type.COMPLEX_TYPE_HELP)
1636
1844
  @cli_util.option('--job-infrastructure-configuration-details-job-shape-config-details', type=custom_types.CLI_COMPLEX_TYPE, help=u"""""" + custom_types.cli_complex_type.COMPLEX_TYPE_HELP)
1637
1845
  @cli_util.option('--wait-for-state', type=custom_types.CliCaseInsensitiveChoice(["CREATING", "ACTIVE", "DELETING", "FAILED", "DELETED"]), multiple=True, help="""This operation creates, modifies or deletes a resource that has a defined lifecycle state. Specify this option to perform the action and then wait until the resource reaches a given lifecycle state. Multiple states can be specified, returning on the first state. For example, --wait-for-state SUCCEEDED --wait-for-state FAILED would return on whichever lifecycle state is reached first. If timeout is reached, a return code of 2 is returned. For any other error, a return code of 1 is returned.""")
1638
1846
  @cli_util.option('--max-wait-seconds', type=click.INT, help="""The maximum time to wait for the resource to reach the lifecycle state defined by --wait-for-state. Defaults to 1200 seconds.""")
1639
1847
  @cli_util.option('--wait-interval-seconds', type=click.INT, help="""Check every --wait-interval-seconds to see whether the resource has reached the lifecycle state defined by --wait-for-state. Defaults to 30 seconds.""")
1640
- @json_skeleton_utils.get_cli_json_input_option({'job-configuration-details': {'module': 'data_science', 'class': 'JobConfigurationDetails'}, 'job-environment-configuration-details': {'module': 'data_science', 'class': 'JobEnvironmentConfigurationDetails'}, 'job-log-configuration-details': {'module': 'data_science', 'class': 'JobLogConfigurationDetails'}, 'job-storage-mount-configuration-details-list': {'module': 'data_science', 'class': 'list[StorageMountConfigurationDetails]'}, 'freeform-tags': {'module': 'data_science', 'class': 'dict(str, string)'}, 'defined-tags': {'module': 'data_science', 'class': 'dict(str, dict(str, object))'}, 'job-infrastructure-configuration-details-job-shape-config-details': {'module': 'data_science', 'class': 'JobShapeConfigDetails'}})
1848
+ @json_skeleton_utils.get_cli_json_input_option({'job-configuration-details': {'module': 'data_science', 'class': 'JobConfigurationDetails'}, 'job-environment-configuration-details': {'module': 'data_science', 'class': 'JobEnvironmentConfigurationDetails'}, 'job-log-configuration-details': {'module': 'data_science', 'class': 'JobLogConfigurationDetails'}, 'job-storage-mount-configuration-details-list': {'module': 'data_science', 'class': 'list[StorageMountConfigurationDetails]'}, 'job-node-configuration-details': {'module': 'data_science', 'class': 'JobNodeConfigurationDetails'}, 'freeform-tags': {'module': 'data_science', 'class': 'dict(str, string)'}, 'defined-tags': {'module': 'data_science', 'class': 'dict(str, dict(str, object))'}, 'job-infrastructure-configuration-details-job-shape-config-details': {'module': 'data_science', 'class': 'JobShapeConfigDetails'}})
1641
1849
  @cli_util.help_option
1642
1850
  @click.pass_context
1643
- @json_skeleton_utils.json_skeleton_generation_handler(input_params_to_complex_types={'job-configuration-details': {'module': 'data_science', 'class': 'JobConfigurationDetails'}, 'job-environment-configuration-details': {'module': 'data_science', 'class': 'JobEnvironmentConfigurationDetails'}, 'job-log-configuration-details': {'module': 'data_science', 'class': 'JobLogConfigurationDetails'}, 'job-storage-mount-configuration-details-list': {'module': 'data_science', 'class': 'list[StorageMountConfigurationDetails]'}, 'freeform-tags': {'module': 'data_science', 'class': 'dict(str, string)'}, 'defined-tags': {'module': 'data_science', 'class': 'dict(str, dict(str, object))'}, 'job-infrastructure-configuration-details-job-shape-config-details': {'module': 'data_science', 'class': 'JobShapeConfigDetails'}}, output_type={'module': 'data_science', 'class': 'Job'})
1851
+ @json_skeleton_utils.json_skeleton_generation_handler(input_params_to_complex_types={'job-configuration-details': {'module': 'data_science', 'class': 'JobConfigurationDetails'}, 'job-environment-configuration-details': {'module': 'data_science', 'class': 'JobEnvironmentConfigurationDetails'}, 'job-log-configuration-details': {'module': 'data_science', 'class': 'JobLogConfigurationDetails'}, 'job-storage-mount-configuration-details-list': {'module': 'data_science', 'class': 'list[StorageMountConfigurationDetails]'}, 'job-node-configuration-details': {'module': 'data_science', 'class': 'JobNodeConfigurationDetails'}, 'freeform-tags': {'module': 'data_science', 'class': 'dict(str, string)'}, 'defined-tags': {'module': 'data_science', 'class': 'dict(str, dict(str, object))'}, 'job-infrastructure-configuration-details-job-shape-config-details': {'module': 'data_science', 'class': 'JobShapeConfigDetails'}}, output_type={'module': 'data_science', 'class': 'Job'})
1644
1852
  @cli_util.wrap_exceptions
1645
- def create_job_standalone_job_infrastructure_configuration_details(ctx, from_json, wait_for_state, max_wait_seconds, wait_interval_seconds, project_id, compartment_id, job_configuration_details, job_infrastructure_configuration_details_shape_name, job_infrastructure_configuration_details_subnet_id, job_infrastructure_configuration_details_block_storage_size_in_gbs, display_name, description, job_environment_configuration_details, job_log_configuration_details, job_storage_mount_configuration_details_list, freeform_tags, defined_tags, job_infrastructure_configuration_details_job_shape_config_details):
1853
+ def create_job_managed_egress_standalone_job_infrastructure_configuration_details(ctx, from_json, wait_for_state, max_wait_seconds, wait_interval_seconds, project_id, compartment_id, job_infrastructure_configuration_details_shape_name, job_infrastructure_configuration_details_block_storage_size_in_gbs, display_name, description, job_configuration_details, job_environment_configuration_details, job_log_configuration_details, job_storage_mount_configuration_details_list, job_node_configuration_details, freeform_tags, defined_tags, job_infrastructure_configuration_details_job_shape_config_details):
1646
1854
 
1647
1855
  kwargs = {}
1648
1856
  kwargs['opc_request_id'] = cli_util.use_or_generate_request_id(ctx.obj['request_id'])
@@ -1651,9 +1859,7 @@ def create_job_standalone_job_infrastructure_configuration_details(ctx, from_jso
1651
1859
  _details['jobInfrastructureConfigurationDetails'] = {}
1652
1860
  _details['projectId'] = project_id
1653
1861
  _details['compartmentId'] = compartment_id
1654
- _details['jobConfigurationDetails'] = cli_util.parse_json_parameter("job_configuration_details", job_configuration_details)
1655
1862
  _details['jobInfrastructureConfigurationDetails']['shapeName'] = job_infrastructure_configuration_details_shape_name
1656
- _details['jobInfrastructureConfigurationDetails']['subnetId'] = job_infrastructure_configuration_details_subnet_id
1657
1863
  _details['jobInfrastructureConfigurationDetails']['blockStorageSizeInGBs'] = job_infrastructure_configuration_details_block_storage_size_in_gbs
1658
1864
 
1659
1865
  if display_name is not None:
@@ -1662,6 +1868,9 @@ def create_job_standalone_job_infrastructure_configuration_details(ctx, from_jso
1662
1868
  if description is not None:
1663
1869
  _details['description'] = description
1664
1870
 
1871
+ if job_configuration_details is not None:
1872
+ _details['jobConfigurationDetails'] = cli_util.parse_json_parameter("job_configuration_details", job_configuration_details)
1873
+
1665
1874
  if job_environment_configuration_details is not None:
1666
1875
  _details['jobEnvironmentConfigurationDetails'] = cli_util.parse_json_parameter("job_environment_configuration_details", job_environment_configuration_details)
1667
1876
 
@@ -1671,6 +1880,9 @@ def create_job_standalone_job_infrastructure_configuration_details(ctx, from_jso
1671
1880
  if job_storage_mount_configuration_details_list is not None:
1672
1881
  _details['jobStorageMountConfigurationDetailsList'] = cli_util.parse_json_parameter("job_storage_mount_configuration_details_list", job_storage_mount_configuration_details_list)
1673
1882
 
1883
+ if job_node_configuration_details is not None:
1884
+ _details['jobNodeConfigurationDetails'] = cli_util.parse_json_parameter("job_node_configuration_details", job_node_configuration_details)
1885
+
1674
1886
  if freeform_tags is not None:
1675
1887
  _details['freeformTags'] = cli_util.parse_json_parameter("freeform_tags", freeform_tags)
1676
1888
 
@@ -1680,7 +1892,7 @@ def create_job_standalone_job_infrastructure_configuration_details(ctx, from_jso
1680
1892
  if job_infrastructure_configuration_details_job_shape_config_details is not None:
1681
1893
  _details['jobInfrastructureConfigurationDetails']['jobShapeConfigDetails'] = cli_util.parse_json_parameter("job_infrastructure_configuration_details_job_shape_config_details", job_infrastructure_configuration_details_job_shape_config_details)
1682
1894
 
1683
- _details['jobInfrastructureConfigurationDetails']['jobInfrastructureType'] = 'STANDALONE'
1895
+ _details['jobInfrastructureConfigurationDetails']['jobInfrastructureType'] = 'ME_STANDALONE'
1684
1896
 
1685
1897
  client = cli_util.build_client('data_science', 'data_science', ctx)
1686
1898
  result = client.create_job(
@@ -1713,44 +1925,44 @@ def create_job_standalone_job_infrastructure_configuration_details(ctx, from_jso
1713
1925
  cli_util.render_response(result, ctx)
1714
1926
 
1715
1927
 
1716
- @job_group.command(name=cli_util.override('data_science.create_job_ocir_container_job_environment_configuration_details.command_name', 'create-job-ocir-container-job-environment-configuration-details'), help=u"""Creates a job. \n[Command Reference](createJob)""")
1928
+ @job_group.command(name=cli_util.override('data_science.create_job_standalone_job_infrastructure_configuration_details.command_name', 'create-job-standalone-job-infrastructure-configuration-details'), help=u"""Creates a job. \n[Command Reference](createJob)""")
1717
1929
  @cli_util.option('--project-id', required=True, help=u"""The [OCID] of the project to associate the job with.""")
1718
1930
  @cli_util.option('--compartment-id', required=True, help=u"""The [OCID] of the compartment where you want to create the job.""")
1719
- @cli_util.option('--job-configuration-details', required=True, type=custom_types.CLI_COMPLEX_TYPE, help=u"""""" + custom_types.cli_complex_type.COMPLEX_TYPE_HELP)
1720
- @cli_util.option('--job-infrastructure-configuration-details', required=True, type=custom_types.CLI_COMPLEX_TYPE, help=u"""""" + custom_types.cli_complex_type.COMPLEX_TYPE_HELP)
1721
- @cli_util.option('--job-environment-configuration-details-image', required=True, help=u"""The full path to the Oracle Container Repository (OCIR) registry, image, and tag in a canonical format. Acceptable format: `<region>.ocir.io/<registry>/<image>:<tag>` `<region>.ocir.io/<registry>/<image>:<tag>@digest`""")
1931
+ @cli_util.option('--job-infrastructure-configuration-details-shape-name', required=True, help=u"""The shape used to launch the job run instances.""")
1932
+ @cli_util.option('--job-infrastructure-configuration-details-subnet-id', required=True, help=u"""The subnet to create a secondary vnic in to attach to the instance running the job""")
1933
+ @cli_util.option('--job-infrastructure-configuration-details-block-storage-size-in-gbs', required=True, type=click.INT, help=u"""The size of the block storage volume to attach to the instance running the job""")
1722
1934
  @cli_util.option('--display-name', help=u"""A user-friendly display name for the resource.""")
1723
1935
  @cli_util.option('--description', help=u"""A short description of the job.""")
1936
+ @cli_util.option('--job-configuration-details', type=custom_types.CLI_COMPLEX_TYPE, help=u"""""" + custom_types.cli_complex_type.COMPLEX_TYPE_HELP)
1937
+ @cli_util.option('--job-environment-configuration-details', type=custom_types.CLI_COMPLEX_TYPE, help=u"""""" + custom_types.cli_complex_type.COMPLEX_TYPE_HELP)
1724
1938
  @cli_util.option('--job-log-configuration-details', type=custom_types.CLI_COMPLEX_TYPE, help=u"""""" + custom_types.cli_complex_type.COMPLEX_TYPE_HELP)
1725
1939
  @cli_util.option('--job-storage-mount-configuration-details-list', type=custom_types.CLI_COMPLEX_TYPE, help=u"""Collection of JobStorageMountConfigurationDetails.
1726
1940
 
1727
1941
  This option is a JSON list with items of type StorageMountConfigurationDetails. For documentation on StorageMountConfigurationDetails please see our API reference: https://docs.cloud.oracle.com/api/#/en/datascience/20190101/datatypes/StorageMountConfigurationDetails.""" + custom_types.cli_complex_type.COMPLEX_TYPE_HELP)
1942
+ @cli_util.option('--job-node-configuration-details', type=custom_types.CLI_COMPLEX_TYPE, help=u"""""" + custom_types.cli_complex_type.COMPLEX_TYPE_HELP)
1728
1943
  @cli_util.option('--freeform-tags', type=custom_types.CLI_COMPLEX_TYPE, help=u"""Free-form tags for this resource. Each tag is a simple key-value pair with no predefined name, type, or namespace. See [Resource Tags]. Example: `{\"Department\": \"Finance\"}`""" + custom_types.cli_complex_type.COMPLEX_TYPE_HELP)
1729
1944
  @cli_util.option('--defined-tags', type=custom_types.CLI_COMPLEX_TYPE, help=u"""Defined tags for this resource. Each key is predefined and scoped to a namespace. See [Resource Tags]. Example: `{\"Operations\": {\"CostCenter\": \"42\"}}`""" + custom_types.cli_complex_type.COMPLEX_TYPE_HELP)
1730
- @cli_util.option('--job-environment-configuration-details-cmd', type=custom_types.CLI_COMPLEX_TYPE, help=u"""The container image run [CMD] as a list of strings. Use `CMD` as arguments to the `ENTRYPOINT` or the only command to run in the absence of an `ENTRYPOINT`. The combined size of `CMD` and `ENTRYPOINT` must be less than 2048 bytes.""" + custom_types.cli_complex_type.COMPLEX_TYPE_HELP)
1731
- @cli_util.option('--job-environment-configuration-details-entrypoint', type=custom_types.CLI_COMPLEX_TYPE, help=u"""The container image run [ENTRYPOINT] as a list of strings. Accept the `CMD` as extra arguments. The combined size of `CMD` and `ENTRYPOINT` must be less than 2048 bytes. More information on how `CMD` and `ENTRYPOINT` interact are [here].""" + custom_types.cli_complex_type.COMPLEX_TYPE_HELP)
1732
- @cli_util.option('--job-environment-configuration-details-image-digest', help=u"""The digest of the container image. For example, `sha256:881303a6b2738834d795a32b4a98eb0e5e3d1cad590a712d1e04f9b2fa90a030`""")
1733
- @cli_util.option('--job-environment-configuration-details-image-signature-id', help=u"""OCID of the container image signature""")
1945
+ @cli_util.option('--job-infrastructure-configuration-details-job-shape-config-details', type=custom_types.CLI_COMPLEX_TYPE, help=u"""""" + custom_types.cli_complex_type.COMPLEX_TYPE_HELP)
1734
1946
  @cli_util.option('--wait-for-state', type=custom_types.CliCaseInsensitiveChoice(["CREATING", "ACTIVE", "DELETING", "FAILED", "DELETED"]), multiple=True, help="""This operation creates, modifies or deletes a resource that has a defined lifecycle state. Specify this option to perform the action and then wait until the resource reaches a given lifecycle state. Multiple states can be specified, returning on the first state. For example, --wait-for-state SUCCEEDED --wait-for-state FAILED would return on whichever lifecycle state is reached first. If timeout is reached, a return code of 2 is returned. For any other error, a return code of 1 is returned.""")
1735
1947
  @cli_util.option('--max-wait-seconds', type=click.INT, help="""The maximum time to wait for the resource to reach the lifecycle state defined by --wait-for-state. Defaults to 1200 seconds.""")
1736
1948
  @cli_util.option('--wait-interval-seconds', type=click.INT, help="""Check every --wait-interval-seconds to see whether the resource has reached the lifecycle state defined by --wait-for-state. Defaults to 30 seconds.""")
1737
- @json_skeleton_utils.get_cli_json_input_option({'job-configuration-details': {'module': 'data_science', 'class': 'JobConfigurationDetails'}, 'job-infrastructure-configuration-details': {'module': 'data_science', 'class': 'JobInfrastructureConfigurationDetails'}, 'job-log-configuration-details': {'module': 'data_science', 'class': 'JobLogConfigurationDetails'}, 'job-storage-mount-configuration-details-list': {'module': 'data_science', 'class': 'list[StorageMountConfigurationDetails]'}, 'freeform-tags': {'module': 'data_science', 'class': 'dict(str, string)'}, 'defined-tags': {'module': 'data_science', 'class': 'dict(str, dict(str, object))'}, 'job-environment-configuration-details-cmd': {'module': 'data_science', 'class': 'list[string]'}, 'job-environment-configuration-details-entrypoint': {'module': 'data_science', 'class': 'list[string]'}})
1949
+ @json_skeleton_utils.get_cli_json_input_option({'job-configuration-details': {'module': 'data_science', 'class': 'JobConfigurationDetails'}, 'job-environment-configuration-details': {'module': 'data_science', 'class': 'JobEnvironmentConfigurationDetails'}, 'job-log-configuration-details': {'module': 'data_science', 'class': 'JobLogConfigurationDetails'}, 'job-storage-mount-configuration-details-list': {'module': 'data_science', 'class': 'list[StorageMountConfigurationDetails]'}, 'job-node-configuration-details': {'module': 'data_science', 'class': 'JobNodeConfigurationDetails'}, 'freeform-tags': {'module': 'data_science', 'class': 'dict(str, string)'}, 'defined-tags': {'module': 'data_science', 'class': 'dict(str, dict(str, object))'}, 'job-infrastructure-configuration-details-job-shape-config-details': {'module': 'data_science', 'class': 'JobShapeConfigDetails'}})
1738
1950
  @cli_util.help_option
1739
1951
  @click.pass_context
1740
- @json_skeleton_utils.json_skeleton_generation_handler(input_params_to_complex_types={'job-configuration-details': {'module': 'data_science', 'class': 'JobConfigurationDetails'}, 'job-infrastructure-configuration-details': {'module': 'data_science', 'class': 'JobInfrastructureConfigurationDetails'}, 'job-log-configuration-details': {'module': 'data_science', 'class': 'JobLogConfigurationDetails'}, 'job-storage-mount-configuration-details-list': {'module': 'data_science', 'class': 'list[StorageMountConfigurationDetails]'}, 'freeform-tags': {'module': 'data_science', 'class': 'dict(str, string)'}, 'defined-tags': {'module': 'data_science', 'class': 'dict(str, dict(str, object))'}, 'job-environment-configuration-details-cmd': {'module': 'data_science', 'class': 'list[string]'}, 'job-environment-configuration-details-entrypoint': {'module': 'data_science', 'class': 'list[string]'}}, output_type={'module': 'data_science', 'class': 'Job'})
1952
+ @json_skeleton_utils.json_skeleton_generation_handler(input_params_to_complex_types={'job-configuration-details': {'module': 'data_science', 'class': 'JobConfigurationDetails'}, 'job-environment-configuration-details': {'module': 'data_science', 'class': 'JobEnvironmentConfigurationDetails'}, 'job-log-configuration-details': {'module': 'data_science', 'class': 'JobLogConfigurationDetails'}, 'job-storage-mount-configuration-details-list': {'module': 'data_science', 'class': 'list[StorageMountConfigurationDetails]'}, 'job-node-configuration-details': {'module': 'data_science', 'class': 'JobNodeConfigurationDetails'}, 'freeform-tags': {'module': 'data_science', 'class': 'dict(str, string)'}, 'defined-tags': {'module': 'data_science', 'class': 'dict(str, dict(str, object))'}, 'job-infrastructure-configuration-details-job-shape-config-details': {'module': 'data_science', 'class': 'JobShapeConfigDetails'}}, output_type={'module': 'data_science', 'class': 'Job'})
1741
1953
  @cli_util.wrap_exceptions
1742
- def create_job_ocir_container_job_environment_configuration_details(ctx, from_json, wait_for_state, max_wait_seconds, wait_interval_seconds, project_id, compartment_id, job_configuration_details, job_infrastructure_configuration_details, job_environment_configuration_details_image, display_name, description, job_log_configuration_details, job_storage_mount_configuration_details_list, freeform_tags, defined_tags, job_environment_configuration_details_cmd, job_environment_configuration_details_entrypoint, job_environment_configuration_details_image_digest, job_environment_configuration_details_image_signature_id):
1954
+ def create_job_standalone_job_infrastructure_configuration_details(ctx, from_json, wait_for_state, max_wait_seconds, wait_interval_seconds, project_id, compartment_id, job_infrastructure_configuration_details_shape_name, job_infrastructure_configuration_details_subnet_id, job_infrastructure_configuration_details_block_storage_size_in_gbs, display_name, description, job_configuration_details, job_environment_configuration_details, job_log_configuration_details, job_storage_mount_configuration_details_list, job_node_configuration_details, freeform_tags, defined_tags, job_infrastructure_configuration_details_job_shape_config_details):
1743
1955
 
1744
1956
  kwargs = {}
1745
1957
  kwargs['opc_request_id'] = cli_util.use_or_generate_request_id(ctx.obj['request_id'])
1746
1958
 
1747
1959
  _details = {}
1748
- _details['jobEnvironmentConfigurationDetails'] = {}
1960
+ _details['jobInfrastructureConfigurationDetails'] = {}
1749
1961
  _details['projectId'] = project_id
1750
1962
  _details['compartmentId'] = compartment_id
1751
- _details['jobConfigurationDetails'] = cli_util.parse_json_parameter("job_configuration_details", job_configuration_details)
1752
- _details['jobInfrastructureConfigurationDetails'] = cli_util.parse_json_parameter("job_infrastructure_configuration_details", job_infrastructure_configuration_details)
1753
- _details['jobEnvironmentConfigurationDetails']['image'] = job_environment_configuration_details_image
1963
+ _details['jobInfrastructureConfigurationDetails']['shapeName'] = job_infrastructure_configuration_details_shape_name
1964
+ _details['jobInfrastructureConfigurationDetails']['subnetId'] = job_infrastructure_configuration_details_subnet_id
1965
+ _details['jobInfrastructureConfigurationDetails']['blockStorageSizeInGBs'] = job_infrastructure_configuration_details_block_storage_size_in_gbs
1754
1966
 
1755
1967
  if display_name is not None:
1756
1968
  _details['displayName'] = display_name
@@ -1758,31 +1970,31 @@ def create_job_ocir_container_job_environment_configuration_details(ctx, from_js
1758
1970
  if description is not None:
1759
1971
  _details['description'] = description
1760
1972
 
1973
+ if job_configuration_details is not None:
1974
+ _details['jobConfigurationDetails'] = cli_util.parse_json_parameter("job_configuration_details", job_configuration_details)
1975
+
1976
+ if job_environment_configuration_details is not None:
1977
+ _details['jobEnvironmentConfigurationDetails'] = cli_util.parse_json_parameter("job_environment_configuration_details", job_environment_configuration_details)
1978
+
1761
1979
  if job_log_configuration_details is not None:
1762
1980
  _details['jobLogConfigurationDetails'] = cli_util.parse_json_parameter("job_log_configuration_details", job_log_configuration_details)
1763
1981
 
1764
1982
  if job_storage_mount_configuration_details_list is not None:
1765
1983
  _details['jobStorageMountConfigurationDetailsList'] = cli_util.parse_json_parameter("job_storage_mount_configuration_details_list", job_storage_mount_configuration_details_list)
1766
1984
 
1985
+ if job_node_configuration_details is not None:
1986
+ _details['jobNodeConfigurationDetails'] = cli_util.parse_json_parameter("job_node_configuration_details", job_node_configuration_details)
1987
+
1767
1988
  if freeform_tags is not None:
1768
1989
  _details['freeformTags'] = cli_util.parse_json_parameter("freeform_tags", freeform_tags)
1769
1990
 
1770
1991
  if defined_tags is not None:
1771
1992
  _details['definedTags'] = cli_util.parse_json_parameter("defined_tags", defined_tags)
1772
1993
 
1773
- if job_environment_configuration_details_cmd is not None:
1774
- _details['jobEnvironmentConfigurationDetails']['cmd'] = cli_util.parse_json_parameter("job_environment_configuration_details_cmd", job_environment_configuration_details_cmd)
1775
-
1776
- if job_environment_configuration_details_entrypoint is not None:
1777
- _details['jobEnvironmentConfigurationDetails']['entrypoint'] = cli_util.parse_json_parameter("job_environment_configuration_details_entrypoint", job_environment_configuration_details_entrypoint)
1778
-
1779
- if job_environment_configuration_details_image_digest is not None:
1780
- _details['jobEnvironmentConfigurationDetails']['imageDigest'] = job_environment_configuration_details_image_digest
1781
-
1782
- if job_environment_configuration_details_image_signature_id is not None:
1783
- _details['jobEnvironmentConfigurationDetails']['imageSignatureId'] = job_environment_configuration_details_image_signature_id
1994
+ if job_infrastructure_configuration_details_job_shape_config_details is not None:
1995
+ _details['jobInfrastructureConfigurationDetails']['jobShapeConfigDetails'] = cli_util.parse_json_parameter("job_infrastructure_configuration_details_job_shape_config_details", job_infrastructure_configuration_details_job_shape_config_details)
1784
1996
 
1785
- _details['jobEnvironmentConfigurationDetails']['jobEnvironmentType'] = 'OCIR_CONTAINER'
1997
+ _details['jobInfrastructureConfigurationDetails']['jobInfrastructureType'] = 'STANDALONE'
1786
1998
 
1787
1999
  client = cli_util.build_client('data_science', 'data_science', ctx)
1788
2000
  result = client.create_job(
@@ -1791,7 +2003,826 @@ def create_job_ocir_container_job_environment_configuration_details(ctx, from_js
1791
2003
  )
1792
2004
  if wait_for_state:
1793
2005
 
1794
- if hasattr(client, 'get_job') and callable(getattr(client, 'get_job')):
2006
+ if hasattr(client, 'get_job') and callable(getattr(client, 'get_job')):
2007
+ try:
2008
+ wait_period_kwargs = {}
2009
+ if max_wait_seconds is not None:
2010
+ wait_period_kwargs['max_wait_seconds'] = max_wait_seconds
2011
+ if wait_interval_seconds is not None:
2012
+ wait_period_kwargs['max_interval_seconds'] = wait_interval_seconds
2013
+
2014
+ click.echo('Action completed. Waiting until the resource has entered state: {}'.format(wait_for_state), file=sys.stderr)
2015
+ result = oci.wait_until(client, client.get_job(result.data.id), 'lifecycle_state', wait_for_state, **wait_period_kwargs)
2016
+ except oci.exceptions.MaximumWaitTimeExceeded as e:
2017
+ # If we fail, we should show an error, but we should still provide the information to the customer
2018
+ click.echo('Failed to wait until the resource entered the specified state. Outputting last known resource state', file=sys.stderr)
2019
+ cli_util.render_response(result, ctx)
2020
+ sys.exit(2)
2021
+ except Exception:
2022
+ click.echo('Encountered error while waiting for resource to enter the specified state. Outputting last known resource state', file=sys.stderr)
2023
+ cli_util.render_response(result, ctx)
2024
+ raise
2025
+ else:
2026
+ click.echo('Unable to wait for the resource to enter the specified state', file=sys.stderr)
2027
+ cli_util.render_response(result, ctx)
2028
+
2029
+
2030
+ @job_group.command(name=cli_util.override('data_science.create_job_ocir_container_job_environment_configuration_details.command_name', 'create-job-ocir-container-job-environment-configuration-details'), help=u"""Creates a job. \n[Command Reference](createJob)""")
2031
+ @cli_util.option('--project-id', required=True, help=u"""The [OCID] of the project to associate the job with.""")
2032
+ @cli_util.option('--compartment-id', required=True, help=u"""The [OCID] of the compartment where you want to create the job.""")
2033
+ @cli_util.option('--job-environment-configuration-details-image', required=True, help=u"""The full path to the Oracle Container Repository (OCIR) registry, image, and tag in a canonical format. Acceptable format: `<region>.ocir.io/<registry>/<image>:<tag>` `<region>.ocir.io/<registry>/<image>:<tag>@digest`""")
2034
+ @cli_util.option('--display-name', help=u"""A user-friendly display name for the resource.""")
2035
+ @cli_util.option('--description', help=u"""A short description of the job.""")
2036
+ @cli_util.option('--job-configuration-details', type=custom_types.CLI_COMPLEX_TYPE, help=u"""""" + custom_types.cli_complex_type.COMPLEX_TYPE_HELP)
2037
+ @cli_util.option('--job-infrastructure-configuration-details', type=custom_types.CLI_COMPLEX_TYPE, help=u"""""" + custom_types.cli_complex_type.COMPLEX_TYPE_HELP)
2038
+ @cli_util.option('--job-log-configuration-details', type=custom_types.CLI_COMPLEX_TYPE, help=u"""""" + custom_types.cli_complex_type.COMPLEX_TYPE_HELP)
2039
+ @cli_util.option('--job-storage-mount-configuration-details-list', type=custom_types.CLI_COMPLEX_TYPE, help=u"""Collection of JobStorageMountConfigurationDetails.
2040
+
2041
+ This option is a JSON list with items of type StorageMountConfigurationDetails. For documentation on StorageMountConfigurationDetails please see our API reference: https://docs.cloud.oracle.com/api/#/en/datascience/20190101/datatypes/StorageMountConfigurationDetails.""" + custom_types.cli_complex_type.COMPLEX_TYPE_HELP)
2042
+ @cli_util.option('--job-node-configuration-details', type=custom_types.CLI_COMPLEX_TYPE, help=u"""""" + custom_types.cli_complex_type.COMPLEX_TYPE_HELP)
2043
+ @cli_util.option('--freeform-tags', type=custom_types.CLI_COMPLEX_TYPE, help=u"""Free-form tags for this resource. Each tag is a simple key-value pair with no predefined name, type, or namespace. See [Resource Tags]. Example: `{\"Department\": \"Finance\"}`""" + custom_types.cli_complex_type.COMPLEX_TYPE_HELP)
2044
+ @cli_util.option('--defined-tags', type=custom_types.CLI_COMPLEX_TYPE, help=u"""Defined tags for this resource. Each key is predefined and scoped to a namespace. See [Resource Tags]. Example: `{\"Operations\": {\"CostCenter\": \"42\"}}`""" + custom_types.cli_complex_type.COMPLEX_TYPE_HELP)
2045
+ @cli_util.option('--job-environment-configuration-details-cmd', type=custom_types.CLI_COMPLEX_TYPE, help=u"""The container image run [CMD] as a list of strings. Use `CMD` as arguments to the `ENTRYPOINT` or the only command to run in the absence of an `ENTRYPOINT`. The combined size of `CMD` and `ENTRYPOINT` must be less than 2048 bytes.""" + custom_types.cli_complex_type.COMPLEX_TYPE_HELP)
2046
+ @cli_util.option('--job-environment-configuration-details-entrypoint', type=custom_types.CLI_COMPLEX_TYPE, help=u"""The container image run [ENTRYPOINT] as a list of strings. Accept the `CMD` as extra arguments. The combined size of `CMD` and `ENTRYPOINT` must be less than 2048 bytes. More information on how `CMD` and `ENTRYPOINT` interact are [here].""" + custom_types.cli_complex_type.COMPLEX_TYPE_HELP)
2047
+ @cli_util.option('--job-environment-configuration-details-image-digest', help=u"""The digest of the container image. For example, `sha256:881303a6b2738834d795a32b4a98eb0e5e3d1cad590a712d1e04f9b2fa90a030`""")
2048
+ @cli_util.option('--job-environment-configuration-details-image-signature-id', help=u"""OCID of the container image signature""")
2049
+ @cli_util.option('--wait-for-state', type=custom_types.CliCaseInsensitiveChoice(["CREATING", "ACTIVE", "DELETING", "FAILED", "DELETED"]), multiple=True, help="""This operation creates, modifies or deletes a resource that has a defined lifecycle state. Specify this option to perform the action and then wait until the resource reaches a given lifecycle state. Multiple states can be specified, returning on the first state. For example, --wait-for-state SUCCEEDED --wait-for-state FAILED would return on whichever lifecycle state is reached first. If timeout is reached, a return code of 2 is returned. For any other error, a return code of 1 is returned.""")
2050
+ @cli_util.option('--max-wait-seconds', type=click.INT, help="""The maximum time to wait for the resource to reach the lifecycle state defined by --wait-for-state. Defaults to 1200 seconds.""")
2051
+ @cli_util.option('--wait-interval-seconds', type=click.INT, help="""Check every --wait-interval-seconds to see whether the resource has reached the lifecycle state defined by --wait-for-state. Defaults to 30 seconds.""")
2052
+ @json_skeleton_utils.get_cli_json_input_option({'job-configuration-details': {'module': 'data_science', 'class': 'JobConfigurationDetails'}, 'job-infrastructure-configuration-details': {'module': 'data_science', 'class': 'JobInfrastructureConfigurationDetails'}, 'job-log-configuration-details': {'module': 'data_science', 'class': 'JobLogConfigurationDetails'}, 'job-storage-mount-configuration-details-list': {'module': 'data_science', 'class': 'list[StorageMountConfigurationDetails]'}, 'job-node-configuration-details': {'module': 'data_science', 'class': 'JobNodeConfigurationDetails'}, 'freeform-tags': {'module': 'data_science', 'class': 'dict(str, string)'}, 'defined-tags': {'module': 'data_science', 'class': 'dict(str, dict(str, object))'}, 'job-environment-configuration-details-cmd': {'module': 'data_science', 'class': 'list[string]'}, 'job-environment-configuration-details-entrypoint': {'module': 'data_science', 'class': 'list[string]'}})
2053
+ @cli_util.help_option
2054
+ @click.pass_context
2055
+ @json_skeleton_utils.json_skeleton_generation_handler(input_params_to_complex_types={'job-configuration-details': {'module': 'data_science', 'class': 'JobConfigurationDetails'}, 'job-infrastructure-configuration-details': {'module': 'data_science', 'class': 'JobInfrastructureConfigurationDetails'}, 'job-log-configuration-details': {'module': 'data_science', 'class': 'JobLogConfigurationDetails'}, 'job-storage-mount-configuration-details-list': {'module': 'data_science', 'class': 'list[StorageMountConfigurationDetails]'}, 'job-node-configuration-details': {'module': 'data_science', 'class': 'JobNodeConfigurationDetails'}, 'freeform-tags': {'module': 'data_science', 'class': 'dict(str, string)'}, 'defined-tags': {'module': 'data_science', 'class': 'dict(str, dict(str, object))'}, 'job-environment-configuration-details-cmd': {'module': 'data_science', 'class': 'list[string]'}, 'job-environment-configuration-details-entrypoint': {'module': 'data_science', 'class': 'list[string]'}}, output_type={'module': 'data_science', 'class': 'Job'})
2056
+ @cli_util.wrap_exceptions
2057
+ def create_job_ocir_container_job_environment_configuration_details(ctx, from_json, wait_for_state, max_wait_seconds, wait_interval_seconds, project_id, compartment_id, job_environment_configuration_details_image, display_name, description, job_configuration_details, job_infrastructure_configuration_details, job_log_configuration_details, job_storage_mount_configuration_details_list, job_node_configuration_details, freeform_tags, defined_tags, job_environment_configuration_details_cmd, job_environment_configuration_details_entrypoint, job_environment_configuration_details_image_digest, job_environment_configuration_details_image_signature_id):
2058
+
2059
+ kwargs = {}
2060
+ kwargs['opc_request_id'] = cli_util.use_or_generate_request_id(ctx.obj['request_id'])
2061
+
2062
+ _details = {}
2063
+ _details['jobEnvironmentConfigurationDetails'] = {}
2064
+ _details['projectId'] = project_id
2065
+ _details['compartmentId'] = compartment_id
2066
+ _details['jobEnvironmentConfigurationDetails']['image'] = job_environment_configuration_details_image
2067
+
2068
+ if display_name is not None:
2069
+ _details['displayName'] = display_name
2070
+
2071
+ if description is not None:
2072
+ _details['description'] = description
2073
+
2074
+ if job_configuration_details is not None:
2075
+ _details['jobConfigurationDetails'] = cli_util.parse_json_parameter("job_configuration_details", job_configuration_details)
2076
+
2077
+ if job_infrastructure_configuration_details is not None:
2078
+ _details['jobInfrastructureConfigurationDetails'] = cli_util.parse_json_parameter("job_infrastructure_configuration_details", job_infrastructure_configuration_details)
2079
+
2080
+ if job_log_configuration_details is not None:
2081
+ _details['jobLogConfigurationDetails'] = cli_util.parse_json_parameter("job_log_configuration_details", job_log_configuration_details)
2082
+
2083
+ if job_storage_mount_configuration_details_list is not None:
2084
+ _details['jobStorageMountConfigurationDetailsList'] = cli_util.parse_json_parameter("job_storage_mount_configuration_details_list", job_storage_mount_configuration_details_list)
2085
+
2086
+ if job_node_configuration_details is not None:
2087
+ _details['jobNodeConfigurationDetails'] = cli_util.parse_json_parameter("job_node_configuration_details", job_node_configuration_details)
2088
+
2089
+ if freeform_tags is not None:
2090
+ _details['freeformTags'] = cli_util.parse_json_parameter("freeform_tags", freeform_tags)
2091
+
2092
+ if defined_tags is not None:
2093
+ _details['definedTags'] = cli_util.parse_json_parameter("defined_tags", defined_tags)
2094
+
2095
+ if job_environment_configuration_details_cmd is not None:
2096
+ _details['jobEnvironmentConfigurationDetails']['cmd'] = cli_util.parse_json_parameter("job_environment_configuration_details_cmd", job_environment_configuration_details_cmd)
2097
+
2098
+ if job_environment_configuration_details_entrypoint is not None:
2099
+ _details['jobEnvironmentConfigurationDetails']['entrypoint'] = cli_util.parse_json_parameter("job_environment_configuration_details_entrypoint", job_environment_configuration_details_entrypoint)
2100
+
2101
+ if job_environment_configuration_details_image_digest is not None:
2102
+ _details['jobEnvironmentConfigurationDetails']['imageDigest'] = job_environment_configuration_details_image_digest
2103
+
2104
+ if job_environment_configuration_details_image_signature_id is not None:
2105
+ _details['jobEnvironmentConfigurationDetails']['imageSignatureId'] = job_environment_configuration_details_image_signature_id
2106
+
2107
+ _details['jobEnvironmentConfigurationDetails']['jobEnvironmentType'] = 'OCIR_CONTAINER'
2108
+
2109
+ client = cli_util.build_client('data_science', 'data_science', ctx)
2110
+ result = client.create_job(
2111
+ create_job_details=_details,
2112
+ **kwargs
2113
+ )
2114
+ if wait_for_state:
2115
+
2116
+ if hasattr(client, 'get_job') and callable(getattr(client, 'get_job')):
2117
+ try:
2118
+ wait_period_kwargs = {}
2119
+ if max_wait_seconds is not None:
2120
+ wait_period_kwargs['max_wait_seconds'] = max_wait_seconds
2121
+ if wait_interval_seconds is not None:
2122
+ wait_period_kwargs['max_interval_seconds'] = wait_interval_seconds
2123
+
2124
+ click.echo('Action completed. Waiting until the resource has entered state: {}'.format(wait_for_state), file=sys.stderr)
2125
+ result = oci.wait_until(client, client.get_job(result.data.id), 'lifecycle_state', wait_for_state, **wait_period_kwargs)
2126
+ except oci.exceptions.MaximumWaitTimeExceeded as e:
2127
+ # If we fail, we should show an error, but we should still provide the information to the customer
2128
+ click.echo('Failed to wait until the resource entered the specified state. Outputting last known resource state', file=sys.stderr)
2129
+ cli_util.render_response(result, ctx)
2130
+ sys.exit(2)
2131
+ except Exception:
2132
+ click.echo('Encountered error while waiting for resource to enter the specified state. Outputting last known resource state', file=sys.stderr)
2133
+ cli_util.render_response(result, ctx)
2134
+ raise
2135
+ else:
2136
+ click.echo('Unable to wait for the resource to enter the specified state', file=sys.stderr)
2137
+ cli_util.render_response(result, ctx)
2138
+
2139
+
2140
+ @job_group.command(name=cli_util.override('data_science.create_job_multi_node_job_node_configuration_details.command_name', 'create-job-multi-node-job-node-configuration-details'), help=u"""Creates a job. \n[Command Reference](createJob)""")
2141
+ @cli_util.option('--project-id', required=True, help=u"""The [OCID] of the project to associate the job with.""")
2142
+ @cli_util.option('--compartment-id', required=True, help=u"""The [OCID] of the compartment where you want to create the job.""")
2143
+ @cli_util.option('--display-name', help=u"""A user-friendly display name for the resource.""")
2144
+ @cli_util.option('--description', help=u"""A short description of the job.""")
2145
+ @cli_util.option('--job-configuration-details', type=custom_types.CLI_COMPLEX_TYPE, help=u"""""" + custom_types.cli_complex_type.COMPLEX_TYPE_HELP)
2146
+ @cli_util.option('--job-infrastructure-configuration-details', type=custom_types.CLI_COMPLEX_TYPE, help=u"""""" + custom_types.cli_complex_type.COMPLEX_TYPE_HELP)
2147
+ @cli_util.option('--job-environment-configuration-details', type=custom_types.CLI_COMPLEX_TYPE, help=u"""""" + custom_types.cli_complex_type.COMPLEX_TYPE_HELP)
2148
+ @cli_util.option('--job-log-configuration-details', type=custom_types.CLI_COMPLEX_TYPE, help=u"""""" + custom_types.cli_complex_type.COMPLEX_TYPE_HELP)
2149
+ @cli_util.option('--job-storage-mount-configuration-details-list', type=custom_types.CLI_COMPLEX_TYPE, help=u"""Collection of JobStorageMountConfigurationDetails.
2150
+
2151
+ This option is a JSON list with items of type StorageMountConfigurationDetails. For documentation on StorageMountConfigurationDetails please see our API reference: https://docs.cloud.oracle.com/api/#/en/datascience/20190101/datatypes/StorageMountConfigurationDetails.""" + custom_types.cli_complex_type.COMPLEX_TYPE_HELP)
2152
+ @cli_util.option('--freeform-tags', type=custom_types.CLI_COMPLEX_TYPE, help=u"""Free-form tags for this resource. Each tag is a simple key-value pair with no predefined name, type, or namespace. See [Resource Tags]. Example: `{\"Department\": \"Finance\"}`""" + custom_types.cli_complex_type.COMPLEX_TYPE_HELP)
2153
+ @cli_util.option('--defined-tags', type=custom_types.CLI_COMPLEX_TYPE, help=u"""Defined tags for this resource. Each key is predefined and scoped to a namespace. See [Resource Tags]. Example: `{\"Operations\": {\"CostCenter\": \"42\"}}`""" + custom_types.cli_complex_type.COMPLEX_TYPE_HELP)
2154
+ @cli_util.option('--job-node-configuration-details-startup-order', type=custom_types.CliCaseInsensitiveChoice(["IN_ORDER", "IN_PARALLEL"]), help=u"""The execution order of node groups""")
2155
+ @cli_util.option('--job-node-configuration-details-maximum-runtime-in-minutes', type=click.INT, help=u"""A time bound for the execution of the job run. Timer starts when the job run is in progress.""")
2156
+ @cli_util.option('--job-node-configuration-details-job-network-configuration', type=custom_types.CLI_COMPLEX_TYPE, help=u"""""" + custom_types.cli_complex_type.COMPLEX_TYPE_HELP)
2157
+ @cli_util.option('--job-node-configuration-details-job-node-group-configuration-details-list', type=custom_types.CLI_COMPLEX_TYPE, help=u"""List of JobNodeGroupConfigurationDetails
2158
+
2159
+ This option is a JSON list with items of type JobNodeGroupConfigurationDetails. For documentation on JobNodeGroupConfigurationDetails please see our API reference: https://docs.cloud.oracle.com/api/#/en/datascience/20190101/datatypes/JobNodeGroupConfigurationDetails.""" + custom_types.cli_complex_type.COMPLEX_TYPE_HELP)
2160
+ @cli_util.option('--wait-for-state', type=custom_types.CliCaseInsensitiveChoice(["CREATING", "ACTIVE", "DELETING", "FAILED", "DELETED"]), multiple=True, help="""This operation creates, modifies or deletes a resource that has a defined lifecycle state. Specify this option to perform the action and then wait until the resource reaches a given lifecycle state. Multiple states can be specified, returning on the first state. For example, --wait-for-state SUCCEEDED --wait-for-state FAILED would return on whichever lifecycle state is reached first. If timeout is reached, a return code of 2 is returned. For any other error, a return code of 1 is returned.""")
2161
+ @cli_util.option('--max-wait-seconds', type=click.INT, help="""The maximum time to wait for the resource to reach the lifecycle state defined by --wait-for-state. Defaults to 1200 seconds.""")
2162
+ @cli_util.option('--wait-interval-seconds', type=click.INT, help="""Check every --wait-interval-seconds to see whether the resource has reached the lifecycle state defined by --wait-for-state. Defaults to 30 seconds.""")
2163
+ @json_skeleton_utils.get_cli_json_input_option({'job-configuration-details': {'module': 'data_science', 'class': 'JobConfigurationDetails'}, 'job-infrastructure-configuration-details': {'module': 'data_science', 'class': 'JobInfrastructureConfigurationDetails'}, 'job-environment-configuration-details': {'module': 'data_science', 'class': 'JobEnvironmentConfigurationDetails'}, 'job-log-configuration-details': {'module': 'data_science', 'class': 'JobLogConfigurationDetails'}, 'job-storage-mount-configuration-details-list': {'module': 'data_science', 'class': 'list[StorageMountConfigurationDetails]'}, 'freeform-tags': {'module': 'data_science', 'class': 'dict(str, string)'}, 'defined-tags': {'module': 'data_science', 'class': 'dict(str, dict(str, object))'}, 'job-node-configuration-details-job-network-configuration': {'module': 'data_science', 'class': 'JobNetworkConfiguration'}, 'job-node-configuration-details-job-node-group-configuration-details-list': {'module': 'data_science', 'class': 'list[JobNodeGroupConfigurationDetails]'}})
2164
+ @cli_util.help_option
2165
+ @click.pass_context
2166
+ @json_skeleton_utils.json_skeleton_generation_handler(input_params_to_complex_types={'job-configuration-details': {'module': 'data_science', 'class': 'JobConfigurationDetails'}, 'job-infrastructure-configuration-details': {'module': 'data_science', 'class': 'JobInfrastructureConfigurationDetails'}, 'job-environment-configuration-details': {'module': 'data_science', 'class': 'JobEnvironmentConfigurationDetails'}, 'job-log-configuration-details': {'module': 'data_science', 'class': 'JobLogConfigurationDetails'}, 'job-storage-mount-configuration-details-list': {'module': 'data_science', 'class': 'list[StorageMountConfigurationDetails]'}, 'freeform-tags': {'module': 'data_science', 'class': 'dict(str, string)'}, 'defined-tags': {'module': 'data_science', 'class': 'dict(str, dict(str, object))'}, 'job-node-configuration-details-job-network-configuration': {'module': 'data_science', 'class': 'JobNetworkConfiguration'}, 'job-node-configuration-details-job-node-group-configuration-details-list': {'module': 'data_science', 'class': 'list[JobNodeGroupConfigurationDetails]'}}, output_type={'module': 'data_science', 'class': 'Job'})
2167
+ @cli_util.wrap_exceptions
2168
+ def create_job_multi_node_job_node_configuration_details(ctx, from_json, wait_for_state, max_wait_seconds, wait_interval_seconds, project_id, compartment_id, display_name, description, job_configuration_details, job_infrastructure_configuration_details, job_environment_configuration_details, job_log_configuration_details, job_storage_mount_configuration_details_list, freeform_tags, defined_tags, job_node_configuration_details_startup_order, job_node_configuration_details_maximum_runtime_in_minutes, job_node_configuration_details_job_network_configuration, job_node_configuration_details_job_node_group_configuration_details_list):
2169
+
2170
+ kwargs = {}
2171
+ kwargs['opc_request_id'] = cli_util.use_or_generate_request_id(ctx.obj['request_id'])
2172
+
2173
+ _details = {}
2174
+ _details['jobNodeConfigurationDetails'] = {}
2175
+ _details['projectId'] = project_id
2176
+ _details['compartmentId'] = compartment_id
2177
+
2178
+ if display_name is not None:
2179
+ _details['displayName'] = display_name
2180
+
2181
+ if description is not None:
2182
+ _details['description'] = description
2183
+
2184
+ if job_configuration_details is not None:
2185
+ _details['jobConfigurationDetails'] = cli_util.parse_json_parameter("job_configuration_details", job_configuration_details)
2186
+
2187
+ if job_infrastructure_configuration_details is not None:
2188
+ _details['jobInfrastructureConfigurationDetails'] = cli_util.parse_json_parameter("job_infrastructure_configuration_details", job_infrastructure_configuration_details)
2189
+
2190
+ if job_environment_configuration_details is not None:
2191
+ _details['jobEnvironmentConfigurationDetails'] = cli_util.parse_json_parameter("job_environment_configuration_details", job_environment_configuration_details)
2192
+
2193
+ if job_log_configuration_details is not None:
2194
+ _details['jobLogConfigurationDetails'] = cli_util.parse_json_parameter("job_log_configuration_details", job_log_configuration_details)
2195
+
2196
+ if job_storage_mount_configuration_details_list is not None:
2197
+ _details['jobStorageMountConfigurationDetailsList'] = cli_util.parse_json_parameter("job_storage_mount_configuration_details_list", job_storage_mount_configuration_details_list)
2198
+
2199
+ if freeform_tags is not None:
2200
+ _details['freeformTags'] = cli_util.parse_json_parameter("freeform_tags", freeform_tags)
2201
+
2202
+ if defined_tags is not None:
2203
+ _details['definedTags'] = cli_util.parse_json_parameter("defined_tags", defined_tags)
2204
+
2205
+ if job_node_configuration_details_startup_order is not None:
2206
+ _details['jobNodeConfigurationDetails']['startupOrder'] = job_node_configuration_details_startup_order
2207
+
2208
+ if job_node_configuration_details_maximum_runtime_in_minutes is not None:
2209
+ _details['jobNodeConfigurationDetails']['maximumRuntimeInMinutes'] = job_node_configuration_details_maximum_runtime_in_minutes
2210
+
2211
+ if job_node_configuration_details_job_network_configuration is not None:
2212
+ _details['jobNodeConfigurationDetails']['jobNetworkConfiguration'] = cli_util.parse_json_parameter("job_node_configuration_details_job_network_configuration", job_node_configuration_details_job_network_configuration)
2213
+
2214
+ if job_node_configuration_details_job_node_group_configuration_details_list is not None:
2215
+ _details['jobNodeConfigurationDetails']['jobNodeGroupConfigurationDetailsList'] = cli_util.parse_json_parameter("job_node_configuration_details_job_node_group_configuration_details_list", job_node_configuration_details_job_node_group_configuration_details_list)
2216
+
2217
+ _details['jobNodeConfigurationDetails']['jobNodeType'] = 'MULTI_NODE'
2218
+
2219
+ client = cli_util.build_client('data_science', 'data_science', ctx)
2220
+ result = client.create_job(
2221
+ create_job_details=_details,
2222
+ **kwargs
2223
+ )
2224
+ if wait_for_state:
2225
+
2226
+ if hasattr(client, 'get_job') and callable(getattr(client, 'get_job')):
2227
+ try:
2228
+ wait_period_kwargs = {}
2229
+ if max_wait_seconds is not None:
2230
+ wait_period_kwargs['max_wait_seconds'] = max_wait_seconds
2231
+ if wait_interval_seconds is not None:
2232
+ wait_period_kwargs['max_interval_seconds'] = wait_interval_seconds
2233
+
2234
+ click.echo('Action completed. Waiting until the resource has entered state: {}'.format(wait_for_state), file=sys.stderr)
2235
+ result = oci.wait_until(client, client.get_job(result.data.id), 'lifecycle_state', wait_for_state, **wait_period_kwargs)
2236
+ except oci.exceptions.MaximumWaitTimeExceeded as e:
2237
+ # If we fail, we should show an error, but we should still provide the information to the customer
2238
+ click.echo('Failed to wait until the resource entered the specified state. Outputting last known resource state', file=sys.stderr)
2239
+ cli_util.render_response(result, ctx)
2240
+ sys.exit(2)
2241
+ except Exception:
2242
+ click.echo('Encountered error while waiting for resource to enter the specified state. Outputting last known resource state', file=sys.stderr)
2243
+ cli_util.render_response(result, ctx)
2244
+ raise
2245
+ else:
2246
+ click.echo('Unable to wait for the resource to enter the specified state', file=sys.stderr)
2247
+ cli_util.render_response(result, ctx)
2248
+
2249
+
2250
+ @job_group.command(name=cli_util.override('data_science.create_job_artifact.command_name', 'create-job-artifact'), help=u"""Uploads a job artifact. \n[Command Reference](createJobArtifact)""")
2251
+ @cli_util.option('--job-id', required=True, help=u"""The [OCID] of the job.""")
2252
+ @cli_util.option('--job-artifact', required=True, help=u"""The job artifact to upload.""")
2253
+ @cli_util.option('--content-length', type=click.INT, help=u"""The content length of the body.""")
2254
+ @cli_util.option('--content-disposition', help=u"""This header is for specifying a filename during upload. It is used to identify the file type and validate if the file type is supported. Example: `--content-disposition \"attachment; filename=hello-world.py\"`""")
2255
+ @json_skeleton_utils.get_cli_json_input_option({})
2256
+ @cli_util.help_option
2257
+ @click.pass_context
2258
+ @json_skeleton_utils.json_skeleton_generation_handler(input_params_to_complex_types={})
2259
+ @cli_util.wrap_exceptions
2260
+ def create_job_artifact(ctx, from_json, job_id, job_artifact, content_length, content_disposition):
2261
+
2262
+ if isinstance(job_id, six.string_types) and len(job_id.strip()) == 0:
2263
+ raise click.UsageError('Parameter --job-id cannot be whitespace or empty string')
2264
+
2265
+ kwargs = {}
2266
+ if content_length is not None:
2267
+ kwargs['content_length'] = content_length
2268
+ if content_disposition is not None:
2269
+ kwargs['content_disposition'] = content_disposition
2270
+ kwargs['opc_request_id'] = cli_util.use_or_generate_request_id(ctx.obj['request_id'])
2271
+
2272
+ # do not automatically retry operations with binary inputs
2273
+ kwargs['retry_strategy'] = oci.retry.NoneRetryStrategy()
2274
+
2275
+ client = cli_util.build_client('data_science', 'data_science', ctx)
2276
+ result = client.create_job_artifact(
2277
+ job_id=job_id,
2278
+ job_artifact=job_artifact,
2279
+ **kwargs
2280
+ )
2281
+ cli_util.render_response(result, ctx)
2282
+
2283
+
2284
+ @job_run_group.command(name=cli_util.override('data_science.create_job_run.command_name', 'create'), help=u"""Creates a job run. \n[Command Reference](createJobRun)""")
2285
+ @cli_util.option('--project-id', required=True, help=u"""The [OCID] of the project to associate the job run with.""")
2286
+ @cli_util.option('--compartment-id', required=True, help=u"""The [OCID] of the compartment where you want to create the job run.""")
2287
+ @cli_util.option('--job-id', required=True, help=u"""The [OCID] of the job to create a run for.""")
2288
+ @cli_util.option('--display-name', help=u"""A user-friendly display name for the resource.""")
2289
+ @cli_util.option('--job-configuration-override-details', type=custom_types.CLI_COMPLEX_TYPE, help=u"""""" + custom_types.cli_complex_type.COMPLEX_TYPE_HELP)
2290
+ @cli_util.option('--job-log-configuration-override-details', type=custom_types.CLI_COMPLEX_TYPE, help=u"""""" + custom_types.cli_complex_type.COMPLEX_TYPE_HELP)
2291
+ @cli_util.option('--job-environment-configuration-override-details', type=custom_types.CLI_COMPLEX_TYPE, help=u"""""" + custom_types.cli_complex_type.COMPLEX_TYPE_HELP)
2292
+ @cli_util.option('--job-infrastructure-configuration-override-details', type=custom_types.CLI_COMPLEX_TYPE, help=u"""""" + custom_types.cli_complex_type.COMPLEX_TYPE_HELP)
2293
+ @cli_util.option('--job-node-configuration-override-details', type=custom_types.CLI_COMPLEX_TYPE, help=u"""""" + custom_types.cli_complex_type.COMPLEX_TYPE_HELP)
2294
+ @cli_util.option('--freeform-tags', type=custom_types.CLI_COMPLEX_TYPE, help=u"""Free-form tags for this resource. Each tag is a simple key-value pair with no predefined name, type, or namespace. See [Resource Tags]. Example: `{\"Department\": \"Finance\"}`""" + custom_types.cli_complex_type.COMPLEX_TYPE_HELP)
2295
+ @cli_util.option('--defined-tags', type=custom_types.CLI_COMPLEX_TYPE, help=u"""Defined tags for this resource. Each key is predefined and scoped to a namespace. See [Resource Tags]. Example: `{\"Operations\": {\"CostCenter\": \"42\"}}`""" + custom_types.cli_complex_type.COMPLEX_TYPE_HELP)
2296
+ @cli_util.option('--opc-parent-rpt-url', help=u"""URL to fetch the Resource Principal Token from the parent resource.""")
2297
+ @cli_util.option('--wait-for-state', type=custom_types.CliCaseInsensitiveChoice(["ACCEPTED", "IN_PROGRESS", "FAILED", "SUCCEEDED", "CANCELING", "CANCELED", "DELETED", "NEEDS_ATTENTION"]), multiple=True, help="""This operation creates, modifies or deletes a resource that has a defined lifecycle state. Specify this option to perform the action and then wait until the resource reaches a given lifecycle state. Multiple states can be specified, returning on the first state. For example, --wait-for-state SUCCEEDED --wait-for-state FAILED would return on whichever lifecycle state is reached first. If timeout is reached, a return code of 2 is returned. For any other error, a return code of 1 is returned.""")
2298
+ @cli_util.option('--max-wait-seconds', type=click.INT, help="""The maximum time to wait for the resource to reach the lifecycle state defined by --wait-for-state. Defaults to 1200 seconds.""")
2299
+ @cli_util.option('--wait-interval-seconds', type=click.INT, help="""Check every --wait-interval-seconds to see whether the resource has reached the lifecycle state defined by --wait-for-state. Defaults to 30 seconds.""")
2300
+ @json_skeleton_utils.get_cli_json_input_option({'job-configuration-override-details': {'module': 'data_science', 'class': 'JobConfigurationDetails'}, 'job-log-configuration-override-details': {'module': 'data_science', 'class': 'JobLogConfigurationDetails'}, 'job-environment-configuration-override-details': {'module': 'data_science', 'class': 'JobEnvironmentConfigurationDetails'}, 'job-infrastructure-configuration-override-details': {'module': 'data_science', 'class': 'JobInfrastructureConfigurationDetails'}, 'job-node-configuration-override-details': {'module': 'data_science', 'class': 'JobNodeConfigurationDetails'}, 'freeform-tags': {'module': 'data_science', 'class': 'dict(str, string)'}, 'defined-tags': {'module': 'data_science', 'class': 'dict(str, dict(str, object))'}})
2301
+ @cli_util.help_option
2302
+ @click.pass_context
2303
+ @json_skeleton_utils.json_skeleton_generation_handler(input_params_to_complex_types={'job-configuration-override-details': {'module': 'data_science', 'class': 'JobConfigurationDetails'}, 'job-log-configuration-override-details': {'module': 'data_science', 'class': 'JobLogConfigurationDetails'}, 'job-environment-configuration-override-details': {'module': 'data_science', 'class': 'JobEnvironmentConfigurationDetails'}, 'job-infrastructure-configuration-override-details': {'module': 'data_science', 'class': 'JobInfrastructureConfigurationDetails'}, 'job-node-configuration-override-details': {'module': 'data_science', 'class': 'JobNodeConfigurationDetails'}, 'freeform-tags': {'module': 'data_science', 'class': 'dict(str, string)'}, 'defined-tags': {'module': 'data_science', 'class': 'dict(str, dict(str, object))'}}, output_type={'module': 'data_science', 'class': 'JobRun'})
2304
+ @cli_util.wrap_exceptions
2305
+ def create_job_run(ctx, from_json, wait_for_state, max_wait_seconds, wait_interval_seconds, project_id, compartment_id, job_id, display_name, job_configuration_override_details, job_log_configuration_override_details, job_environment_configuration_override_details, job_infrastructure_configuration_override_details, job_node_configuration_override_details, freeform_tags, defined_tags, opc_parent_rpt_url):
2306
+
2307
+ kwargs = {}
2308
+ if opc_parent_rpt_url is not None:
2309
+ kwargs['opc_parent_rpt_url'] = opc_parent_rpt_url
2310
+ kwargs['opc_request_id'] = cli_util.use_or_generate_request_id(ctx.obj['request_id'])
2311
+
2312
+ _details = {}
2313
+ _details['projectId'] = project_id
2314
+ _details['compartmentId'] = compartment_id
2315
+ _details['jobId'] = job_id
2316
+
2317
+ if display_name is not None:
2318
+ _details['displayName'] = display_name
2319
+
2320
+ if job_configuration_override_details is not None:
2321
+ _details['jobConfigurationOverrideDetails'] = cli_util.parse_json_parameter("job_configuration_override_details", job_configuration_override_details)
2322
+
2323
+ if job_log_configuration_override_details is not None:
2324
+ _details['jobLogConfigurationOverrideDetails'] = cli_util.parse_json_parameter("job_log_configuration_override_details", job_log_configuration_override_details)
2325
+
2326
+ if job_environment_configuration_override_details is not None:
2327
+ _details['jobEnvironmentConfigurationOverrideDetails'] = cli_util.parse_json_parameter("job_environment_configuration_override_details", job_environment_configuration_override_details)
2328
+
2329
+ if job_infrastructure_configuration_override_details is not None:
2330
+ _details['jobInfrastructureConfigurationOverrideDetails'] = cli_util.parse_json_parameter("job_infrastructure_configuration_override_details", job_infrastructure_configuration_override_details)
2331
+
2332
+ if job_node_configuration_override_details is not None:
2333
+ _details['jobNodeConfigurationOverrideDetails'] = cli_util.parse_json_parameter("job_node_configuration_override_details", job_node_configuration_override_details)
2334
+
2335
+ if freeform_tags is not None:
2336
+ _details['freeformTags'] = cli_util.parse_json_parameter("freeform_tags", freeform_tags)
2337
+
2338
+ if defined_tags is not None:
2339
+ _details['definedTags'] = cli_util.parse_json_parameter("defined_tags", defined_tags)
2340
+
2341
+ client = cli_util.build_client('data_science', 'data_science', ctx)
2342
+ result = client.create_job_run(
2343
+ create_job_run_details=_details,
2344
+ **kwargs
2345
+ )
2346
+ if wait_for_state:
2347
+
2348
+ if hasattr(client, 'get_job_run') and callable(getattr(client, 'get_job_run')):
2349
+ try:
2350
+ wait_period_kwargs = {}
2351
+ if max_wait_seconds is not None:
2352
+ wait_period_kwargs['max_wait_seconds'] = max_wait_seconds
2353
+ if wait_interval_seconds is not None:
2354
+ wait_period_kwargs['max_interval_seconds'] = wait_interval_seconds
2355
+
2356
+ click.echo('Action completed. Waiting until the resource has entered state: {}'.format(wait_for_state), file=sys.stderr)
2357
+ result = oci.wait_until(client, client.get_job_run(result.data.id), 'lifecycle_state', wait_for_state, **wait_period_kwargs)
2358
+ except oci.exceptions.MaximumWaitTimeExceeded as e:
2359
+ # If we fail, we should show an error, but we should still provide the information to the customer
2360
+ click.echo('Failed to wait until the resource entered the specified state. Outputting last known resource state', file=sys.stderr)
2361
+ cli_util.render_response(result, ctx)
2362
+ sys.exit(2)
2363
+ except Exception:
2364
+ click.echo('Encountered error while waiting for resource to enter the specified state. Outputting last known resource state', file=sys.stderr)
2365
+ cli_util.render_response(result, ctx)
2366
+ raise
2367
+ else:
2368
+ click.echo('Unable to wait for the resource to enter the specified state', file=sys.stderr)
2369
+ cli_util.render_response(result, ctx)
2370
+
2371
+
2372
+ @job_run_group.command(name=cli_util.override('data_science.create_job_run_empty_job_configuration_details.command_name', 'create-job-run-empty-job-configuration-details'), help=u"""Creates a job run. \n[Command Reference](createJobRun)""")
2373
+ @cli_util.option('--project-id', required=True, help=u"""The [OCID] of the project to associate the job run with.""")
2374
+ @cli_util.option('--compartment-id', required=True, help=u"""The [OCID] of the compartment where you want to create the job run.""")
2375
+ @cli_util.option('--job-id', required=True, help=u"""The [OCID] of the job to create a run for.""")
2376
+ @cli_util.option('--display-name', help=u"""A user-friendly display name for the resource.""")
2377
+ @cli_util.option('--job-log-configuration-override-details', type=custom_types.CLI_COMPLEX_TYPE, help=u"""""" + custom_types.cli_complex_type.COMPLEX_TYPE_HELP)
2378
+ @cli_util.option('--job-environment-configuration-override-details', type=custom_types.CLI_COMPLEX_TYPE, help=u"""""" + custom_types.cli_complex_type.COMPLEX_TYPE_HELP)
2379
+ @cli_util.option('--job-infrastructure-configuration-override-details', type=custom_types.CLI_COMPLEX_TYPE, help=u"""""" + custom_types.cli_complex_type.COMPLEX_TYPE_HELP)
2380
+ @cli_util.option('--job-node-configuration-override-details', type=custom_types.CLI_COMPLEX_TYPE, help=u"""""" + custom_types.cli_complex_type.COMPLEX_TYPE_HELP)
2381
+ @cli_util.option('--freeform-tags', type=custom_types.CLI_COMPLEX_TYPE, help=u"""Free-form tags for this resource. Each tag is a simple key-value pair with no predefined name, type, or namespace. See [Resource Tags]. Example: `{\"Department\": \"Finance\"}`""" + custom_types.cli_complex_type.COMPLEX_TYPE_HELP)
2382
+ @cli_util.option('--defined-tags', type=custom_types.CLI_COMPLEX_TYPE, help=u"""Defined tags for this resource. Each key is predefined and scoped to a namespace. See [Resource Tags]. Example: `{\"Operations\": {\"CostCenter\": \"42\"}}`""" + custom_types.cli_complex_type.COMPLEX_TYPE_HELP)
2383
+ @cli_util.option('--opc-parent-rpt-url', help=u"""URL to fetch the Resource Principal Token from the parent resource.""")
2384
+ @cli_util.option('--wait-for-state', type=custom_types.CliCaseInsensitiveChoice(["ACCEPTED", "IN_PROGRESS", "FAILED", "SUCCEEDED", "CANCELING", "CANCELED", "DELETED", "NEEDS_ATTENTION"]), multiple=True, help="""This operation creates, modifies or deletes a resource that has a defined lifecycle state. Specify this option to perform the action and then wait until the resource reaches a given lifecycle state. Multiple states can be specified, returning on the first state. For example, --wait-for-state SUCCEEDED --wait-for-state FAILED would return on whichever lifecycle state is reached first. If timeout is reached, a return code of 2 is returned. For any other error, a return code of 1 is returned.""")
2385
+ @cli_util.option('--max-wait-seconds', type=click.INT, help="""The maximum time to wait for the resource to reach the lifecycle state defined by --wait-for-state. Defaults to 1200 seconds.""")
2386
+ @cli_util.option('--wait-interval-seconds', type=click.INT, help="""Check every --wait-interval-seconds to see whether the resource has reached the lifecycle state defined by --wait-for-state. Defaults to 30 seconds.""")
2387
+ @json_skeleton_utils.get_cli_json_input_option({'job-log-configuration-override-details': {'module': 'data_science', 'class': 'JobLogConfigurationDetails'}, 'job-environment-configuration-override-details': {'module': 'data_science', 'class': 'JobEnvironmentConfigurationDetails'}, 'job-infrastructure-configuration-override-details': {'module': 'data_science', 'class': 'JobInfrastructureConfigurationDetails'}, 'job-node-configuration-override-details': {'module': 'data_science', 'class': 'JobNodeConfigurationDetails'}, 'freeform-tags': {'module': 'data_science', 'class': 'dict(str, string)'}, 'defined-tags': {'module': 'data_science', 'class': 'dict(str, dict(str, object))'}})
2388
+ @cli_util.help_option
2389
+ @click.pass_context
2390
+ @json_skeleton_utils.json_skeleton_generation_handler(input_params_to_complex_types={'job-log-configuration-override-details': {'module': 'data_science', 'class': 'JobLogConfigurationDetails'}, 'job-environment-configuration-override-details': {'module': 'data_science', 'class': 'JobEnvironmentConfigurationDetails'}, 'job-infrastructure-configuration-override-details': {'module': 'data_science', 'class': 'JobInfrastructureConfigurationDetails'}, 'job-node-configuration-override-details': {'module': 'data_science', 'class': 'JobNodeConfigurationDetails'}, 'freeform-tags': {'module': 'data_science', 'class': 'dict(str, string)'}, 'defined-tags': {'module': 'data_science', 'class': 'dict(str, dict(str, object))'}}, output_type={'module': 'data_science', 'class': 'JobRun'})
2391
+ @cli_util.wrap_exceptions
2392
+ def create_job_run_empty_job_configuration_details(ctx, from_json, wait_for_state, max_wait_seconds, wait_interval_seconds, project_id, compartment_id, job_id, display_name, job_log_configuration_override_details, job_environment_configuration_override_details, job_infrastructure_configuration_override_details, job_node_configuration_override_details, freeform_tags, defined_tags, opc_parent_rpt_url):
2393
+
2394
+ kwargs = {}
2395
+ if opc_parent_rpt_url is not None:
2396
+ kwargs['opc_parent_rpt_url'] = opc_parent_rpt_url
2397
+ kwargs['opc_request_id'] = cli_util.use_or_generate_request_id(ctx.obj['request_id'])
2398
+
2399
+ _details = {}
2400
+ _details['jobConfigurationOverrideDetails'] = {}
2401
+ _details['projectId'] = project_id
2402
+ _details['compartmentId'] = compartment_id
2403
+ _details['jobId'] = job_id
2404
+
2405
+ if display_name is not None:
2406
+ _details['displayName'] = display_name
2407
+
2408
+ if job_log_configuration_override_details is not None:
2409
+ _details['jobLogConfigurationOverrideDetails'] = cli_util.parse_json_parameter("job_log_configuration_override_details", job_log_configuration_override_details)
2410
+
2411
+ if job_environment_configuration_override_details is not None:
2412
+ _details['jobEnvironmentConfigurationOverrideDetails'] = cli_util.parse_json_parameter("job_environment_configuration_override_details", job_environment_configuration_override_details)
2413
+
2414
+ if job_infrastructure_configuration_override_details is not None:
2415
+ _details['jobInfrastructureConfigurationOverrideDetails'] = cli_util.parse_json_parameter("job_infrastructure_configuration_override_details", job_infrastructure_configuration_override_details)
2416
+
2417
+ if job_node_configuration_override_details is not None:
2418
+ _details['jobNodeConfigurationOverrideDetails'] = cli_util.parse_json_parameter("job_node_configuration_override_details", job_node_configuration_override_details)
2419
+
2420
+ if freeform_tags is not None:
2421
+ _details['freeformTags'] = cli_util.parse_json_parameter("freeform_tags", freeform_tags)
2422
+
2423
+ if defined_tags is not None:
2424
+ _details['definedTags'] = cli_util.parse_json_parameter("defined_tags", defined_tags)
2425
+
2426
+ _details['jobConfigurationOverrideDetails']['jobType'] = 'EMPTY'
2427
+
2428
+ client = cli_util.build_client('data_science', 'data_science', ctx)
2429
+ result = client.create_job_run(
2430
+ create_job_run_details=_details,
2431
+ **kwargs
2432
+ )
2433
+ if wait_for_state:
2434
+
2435
+ if hasattr(client, 'get_job_run') and callable(getattr(client, 'get_job_run')):
2436
+ try:
2437
+ wait_period_kwargs = {}
2438
+ if max_wait_seconds is not None:
2439
+ wait_period_kwargs['max_wait_seconds'] = max_wait_seconds
2440
+ if wait_interval_seconds is not None:
2441
+ wait_period_kwargs['max_interval_seconds'] = wait_interval_seconds
2442
+
2443
+ click.echo('Action completed. Waiting until the resource has entered state: {}'.format(wait_for_state), file=sys.stderr)
2444
+ result = oci.wait_until(client, client.get_job_run(result.data.id), 'lifecycle_state', wait_for_state, **wait_period_kwargs)
2445
+ except oci.exceptions.MaximumWaitTimeExceeded as e:
2446
+ # If we fail, we should show an error, but we should still provide the information to the customer
2447
+ click.echo('Failed to wait until the resource entered the specified state. Outputting last known resource state', file=sys.stderr)
2448
+ cli_util.render_response(result, ctx)
2449
+ sys.exit(2)
2450
+ except Exception:
2451
+ click.echo('Encountered error while waiting for resource to enter the specified state. Outputting last known resource state', file=sys.stderr)
2452
+ cli_util.render_response(result, ctx)
2453
+ raise
2454
+ else:
2455
+ click.echo('Unable to wait for the resource to enter the specified state', file=sys.stderr)
2456
+ cli_util.render_response(result, ctx)
2457
+
2458
+
2459
+ @job_run_group.command(name=cli_util.override('data_science.create_job_run_default_job_configuration_details.command_name', 'create-job-run-default-job-configuration-details'), help=u"""Creates a job run. \n[Command Reference](createJobRun)""")
2460
+ @cli_util.option('--project-id', required=True, help=u"""The [OCID] of the project to associate the job run with.""")
2461
+ @cli_util.option('--compartment-id', required=True, help=u"""The [OCID] of the compartment where you want to create the job run.""")
2462
+ @cli_util.option('--job-id', required=True, help=u"""The [OCID] of the job to create a run for.""")
2463
+ @cli_util.option('--display-name', help=u"""A user-friendly display name for the resource.""")
2464
+ @cli_util.option('--job-log-configuration-override-details', type=custom_types.CLI_COMPLEX_TYPE, help=u"""""" + custom_types.cli_complex_type.COMPLEX_TYPE_HELP)
2465
+ @cli_util.option('--job-environment-configuration-override-details', type=custom_types.CLI_COMPLEX_TYPE, help=u"""""" + custom_types.cli_complex_type.COMPLEX_TYPE_HELP)
2466
+ @cli_util.option('--job-infrastructure-configuration-override-details', type=custom_types.CLI_COMPLEX_TYPE, help=u"""""" + custom_types.cli_complex_type.COMPLEX_TYPE_HELP)
2467
+ @cli_util.option('--job-node-configuration-override-details', type=custom_types.CLI_COMPLEX_TYPE, help=u"""""" + custom_types.cli_complex_type.COMPLEX_TYPE_HELP)
2468
+ @cli_util.option('--freeform-tags', type=custom_types.CLI_COMPLEX_TYPE, help=u"""Free-form tags for this resource. Each tag is a simple key-value pair with no predefined name, type, or namespace. See [Resource Tags]. Example: `{\"Department\": \"Finance\"}`""" + custom_types.cli_complex_type.COMPLEX_TYPE_HELP)
2469
+ @cli_util.option('--defined-tags', type=custom_types.CLI_COMPLEX_TYPE, help=u"""Defined tags for this resource. Each key is predefined and scoped to a namespace. See [Resource Tags]. Example: `{\"Operations\": {\"CostCenter\": \"42\"}}`""" + custom_types.cli_complex_type.COMPLEX_TYPE_HELP)
2470
+ @cli_util.option('--opc-parent-rpt-url', help=u"""URL to fetch the Resource Principal Token from the parent resource.""")
2471
+ @cli_util.option('--job-configuration-override-details-environment-variables', type=custom_types.CLI_COMPLEX_TYPE, help=u"""Environment variables to set for the job.""" + custom_types.cli_complex_type.COMPLEX_TYPE_HELP)
2472
+ @cli_util.option('--job-configuration-override-details-command-line-arguments', help=u"""The arguments to pass to the job.""")
2473
+ @cli_util.option('--job-configuration-override-details-maximum-runtime-in-minutes', type=click.INT, help=u"""A time bound for the execution of the job. Timer starts when the job becomes active.""")
2474
+ @cli_util.option('--job-configuration-override-details-startup-probe-details', type=custom_types.CLI_COMPLEX_TYPE, help=u"""""" + custom_types.cli_complex_type.COMPLEX_TYPE_HELP)
2475
+ @cli_util.option('--wait-for-state', type=custom_types.CliCaseInsensitiveChoice(["ACCEPTED", "IN_PROGRESS", "FAILED", "SUCCEEDED", "CANCELING", "CANCELED", "DELETED", "NEEDS_ATTENTION"]), multiple=True, help="""This operation creates, modifies or deletes a resource that has a defined lifecycle state. Specify this option to perform the action and then wait until the resource reaches a given lifecycle state. Multiple states can be specified, returning on the first state. For example, --wait-for-state SUCCEEDED --wait-for-state FAILED would return on whichever lifecycle state is reached first. If timeout is reached, a return code of 2 is returned. For any other error, a return code of 1 is returned.""")
2476
+ @cli_util.option('--max-wait-seconds', type=click.INT, help="""The maximum time to wait for the resource to reach the lifecycle state defined by --wait-for-state. Defaults to 1200 seconds.""")
2477
+ @cli_util.option('--wait-interval-seconds', type=click.INT, help="""Check every --wait-interval-seconds to see whether the resource has reached the lifecycle state defined by --wait-for-state. Defaults to 30 seconds.""")
2478
+ @json_skeleton_utils.get_cli_json_input_option({'job-log-configuration-override-details': {'module': 'data_science', 'class': 'JobLogConfigurationDetails'}, 'job-environment-configuration-override-details': {'module': 'data_science', 'class': 'JobEnvironmentConfigurationDetails'}, 'job-infrastructure-configuration-override-details': {'module': 'data_science', 'class': 'JobInfrastructureConfigurationDetails'}, 'job-node-configuration-override-details': {'module': 'data_science', 'class': 'JobNodeConfigurationDetails'}, 'freeform-tags': {'module': 'data_science', 'class': 'dict(str, string)'}, 'defined-tags': {'module': 'data_science', 'class': 'dict(str, dict(str, object))'}, 'job-configuration-override-details-environment-variables': {'module': 'data_science', 'class': 'dict(str, string)'}, 'job-configuration-override-details-startup-probe-details': {'module': 'data_science', 'class': 'JobProbeDetails'}})
2479
+ @cli_util.help_option
2480
+ @click.pass_context
2481
+ @json_skeleton_utils.json_skeleton_generation_handler(input_params_to_complex_types={'job-log-configuration-override-details': {'module': 'data_science', 'class': 'JobLogConfigurationDetails'}, 'job-environment-configuration-override-details': {'module': 'data_science', 'class': 'JobEnvironmentConfigurationDetails'}, 'job-infrastructure-configuration-override-details': {'module': 'data_science', 'class': 'JobInfrastructureConfigurationDetails'}, 'job-node-configuration-override-details': {'module': 'data_science', 'class': 'JobNodeConfigurationDetails'}, 'freeform-tags': {'module': 'data_science', 'class': 'dict(str, string)'}, 'defined-tags': {'module': 'data_science', 'class': 'dict(str, dict(str, object))'}, 'job-configuration-override-details-environment-variables': {'module': 'data_science', 'class': 'dict(str, string)'}, 'job-configuration-override-details-startup-probe-details': {'module': 'data_science', 'class': 'JobProbeDetails'}}, output_type={'module': 'data_science', 'class': 'JobRun'})
2482
+ @cli_util.wrap_exceptions
2483
+ def create_job_run_default_job_configuration_details(ctx, from_json, wait_for_state, max_wait_seconds, wait_interval_seconds, project_id, compartment_id, job_id, display_name, job_log_configuration_override_details, job_environment_configuration_override_details, job_infrastructure_configuration_override_details, job_node_configuration_override_details, freeform_tags, defined_tags, opc_parent_rpt_url, job_configuration_override_details_environment_variables, job_configuration_override_details_command_line_arguments, job_configuration_override_details_maximum_runtime_in_minutes, job_configuration_override_details_startup_probe_details):
2484
+
2485
+ kwargs = {}
2486
+ if opc_parent_rpt_url is not None:
2487
+ kwargs['opc_parent_rpt_url'] = opc_parent_rpt_url
2488
+ kwargs['opc_request_id'] = cli_util.use_or_generate_request_id(ctx.obj['request_id'])
2489
+
2490
+ _details = {}
2491
+ _details['jobConfigurationOverrideDetails'] = {}
2492
+ _details['projectId'] = project_id
2493
+ _details['compartmentId'] = compartment_id
2494
+ _details['jobId'] = job_id
2495
+
2496
+ if display_name is not None:
2497
+ _details['displayName'] = display_name
2498
+
2499
+ if job_log_configuration_override_details is not None:
2500
+ _details['jobLogConfigurationOverrideDetails'] = cli_util.parse_json_parameter("job_log_configuration_override_details", job_log_configuration_override_details)
2501
+
2502
+ if job_environment_configuration_override_details is not None:
2503
+ _details['jobEnvironmentConfigurationOverrideDetails'] = cli_util.parse_json_parameter("job_environment_configuration_override_details", job_environment_configuration_override_details)
2504
+
2505
+ if job_infrastructure_configuration_override_details is not None:
2506
+ _details['jobInfrastructureConfigurationOverrideDetails'] = cli_util.parse_json_parameter("job_infrastructure_configuration_override_details", job_infrastructure_configuration_override_details)
2507
+
2508
+ if job_node_configuration_override_details is not None:
2509
+ _details['jobNodeConfigurationOverrideDetails'] = cli_util.parse_json_parameter("job_node_configuration_override_details", job_node_configuration_override_details)
2510
+
2511
+ if freeform_tags is not None:
2512
+ _details['freeformTags'] = cli_util.parse_json_parameter("freeform_tags", freeform_tags)
2513
+
2514
+ if defined_tags is not None:
2515
+ _details['definedTags'] = cli_util.parse_json_parameter("defined_tags", defined_tags)
2516
+
2517
+ if job_configuration_override_details_environment_variables is not None:
2518
+ _details['jobConfigurationOverrideDetails']['environmentVariables'] = cli_util.parse_json_parameter("job_configuration_override_details_environment_variables", job_configuration_override_details_environment_variables)
2519
+
2520
+ if job_configuration_override_details_command_line_arguments is not None:
2521
+ _details['jobConfigurationOverrideDetails']['commandLineArguments'] = job_configuration_override_details_command_line_arguments
2522
+
2523
+ if job_configuration_override_details_maximum_runtime_in_minutes is not None:
2524
+ _details['jobConfigurationOverrideDetails']['maximumRuntimeInMinutes'] = job_configuration_override_details_maximum_runtime_in_minutes
2525
+
2526
+ if job_configuration_override_details_startup_probe_details is not None:
2527
+ _details['jobConfigurationOverrideDetails']['startupProbeDetails'] = cli_util.parse_json_parameter("job_configuration_override_details_startup_probe_details", job_configuration_override_details_startup_probe_details)
2528
+
2529
+ _details['jobConfigurationOverrideDetails']['jobType'] = 'DEFAULT'
2530
+
2531
+ client = cli_util.build_client('data_science', 'data_science', ctx)
2532
+ result = client.create_job_run(
2533
+ create_job_run_details=_details,
2534
+ **kwargs
2535
+ )
2536
+ if wait_for_state:
2537
+
2538
+ if hasattr(client, 'get_job_run') and callable(getattr(client, 'get_job_run')):
2539
+ try:
2540
+ wait_period_kwargs = {}
2541
+ if max_wait_seconds is not None:
2542
+ wait_period_kwargs['max_wait_seconds'] = max_wait_seconds
2543
+ if wait_interval_seconds is not None:
2544
+ wait_period_kwargs['max_interval_seconds'] = wait_interval_seconds
2545
+
2546
+ click.echo('Action completed. Waiting until the resource has entered state: {}'.format(wait_for_state), file=sys.stderr)
2547
+ result = oci.wait_until(client, client.get_job_run(result.data.id), 'lifecycle_state', wait_for_state, **wait_period_kwargs)
2548
+ except oci.exceptions.MaximumWaitTimeExceeded as e:
2549
+ # If we fail, we should show an error, but we should still provide the information to the customer
2550
+ click.echo('Failed to wait until the resource entered the specified state. Outputting last known resource state', file=sys.stderr)
2551
+ cli_util.render_response(result, ctx)
2552
+ sys.exit(2)
2553
+ except Exception:
2554
+ click.echo('Encountered error while waiting for resource to enter the specified state. Outputting last known resource state', file=sys.stderr)
2555
+ cli_util.render_response(result, ctx)
2556
+ raise
2557
+ else:
2558
+ click.echo('Unable to wait for the resource to enter the specified state', file=sys.stderr)
2559
+ cli_util.render_response(result, ctx)
2560
+
2561
+
2562
+ @job_run_group.command(name=cli_util.override('data_science.create_job_run_ocir_container_job_environment_configuration_details.command_name', 'create-job-run-ocir-container-job-environment-configuration-details'), help=u"""Creates a job run. \n[Command Reference](createJobRun)""")
2563
+ @cli_util.option('--project-id', required=True, help=u"""The [OCID] of the project to associate the job run with.""")
2564
+ @cli_util.option('--compartment-id', required=True, help=u"""The [OCID] of the compartment where you want to create the job run.""")
2565
+ @cli_util.option('--job-id', required=True, help=u"""The [OCID] of the job to create a run for.""")
2566
+ @cli_util.option('--job-environment-configuration-override-details-image', required=True, help=u"""The full path to the Oracle Container Repository (OCIR) registry, image, and tag in a canonical format. Acceptable format: `<region>.ocir.io/<registry>/<image>:<tag>` `<region>.ocir.io/<registry>/<image>:<tag>@digest`""")
2567
+ @cli_util.option('--display-name', help=u"""A user-friendly display name for the resource.""")
2568
+ @cli_util.option('--job-configuration-override-details', type=custom_types.CLI_COMPLEX_TYPE, help=u"""""" + custom_types.cli_complex_type.COMPLEX_TYPE_HELP)
2569
+ @cli_util.option('--job-log-configuration-override-details', type=custom_types.CLI_COMPLEX_TYPE, help=u"""""" + custom_types.cli_complex_type.COMPLEX_TYPE_HELP)
2570
+ @cli_util.option('--job-infrastructure-configuration-override-details', type=custom_types.CLI_COMPLEX_TYPE, help=u"""""" + custom_types.cli_complex_type.COMPLEX_TYPE_HELP)
2571
+ @cli_util.option('--job-node-configuration-override-details', type=custom_types.CLI_COMPLEX_TYPE, help=u"""""" + custom_types.cli_complex_type.COMPLEX_TYPE_HELP)
2572
+ @cli_util.option('--freeform-tags', type=custom_types.CLI_COMPLEX_TYPE, help=u"""Free-form tags for this resource. Each tag is a simple key-value pair with no predefined name, type, or namespace. See [Resource Tags]. Example: `{\"Department\": \"Finance\"}`""" + custom_types.cli_complex_type.COMPLEX_TYPE_HELP)
2573
+ @cli_util.option('--defined-tags', type=custom_types.CLI_COMPLEX_TYPE, help=u"""Defined tags for this resource. Each key is predefined and scoped to a namespace. See [Resource Tags]. Example: `{\"Operations\": {\"CostCenter\": \"42\"}}`""" + custom_types.cli_complex_type.COMPLEX_TYPE_HELP)
2574
+ @cli_util.option('--opc-parent-rpt-url', help=u"""URL to fetch the Resource Principal Token from the parent resource.""")
2575
+ @cli_util.option('--job-environment-configuration-override-details-cmd', type=custom_types.CLI_COMPLEX_TYPE, help=u"""The container image run [CMD] as a list of strings. Use `CMD` as arguments to the `ENTRYPOINT` or the only command to run in the absence of an `ENTRYPOINT`. The combined size of `CMD` and `ENTRYPOINT` must be less than 2048 bytes.""" + custom_types.cli_complex_type.COMPLEX_TYPE_HELP)
2576
+ @cli_util.option('--job-environment-configuration-override-details-entrypoint', type=custom_types.CLI_COMPLEX_TYPE, help=u"""The container image run [ENTRYPOINT] as a list of strings. Accept the `CMD` as extra arguments. The combined size of `CMD` and `ENTRYPOINT` must be less than 2048 bytes. More information on how `CMD` and `ENTRYPOINT` interact are [here].""" + custom_types.cli_complex_type.COMPLEX_TYPE_HELP)
2577
+ @cli_util.option('--job-environment-configuration-override-details-image-digest', help=u"""The digest of the container image. For example, `sha256:881303a6b2738834d795a32b4a98eb0e5e3d1cad590a712d1e04f9b2fa90a030`""")
2578
+ @cli_util.option('--job-environment-configuration-override-details-image-signature-id', help=u"""OCID of the container image signature""")
2579
+ @cli_util.option('--wait-for-state', type=custom_types.CliCaseInsensitiveChoice(["ACCEPTED", "IN_PROGRESS", "FAILED", "SUCCEEDED", "CANCELING", "CANCELED", "DELETED", "NEEDS_ATTENTION"]), multiple=True, help="""This operation creates, modifies or deletes a resource that has a defined lifecycle state. Specify this option to perform the action and then wait until the resource reaches a given lifecycle state. Multiple states can be specified, returning on the first state. For example, --wait-for-state SUCCEEDED --wait-for-state FAILED would return on whichever lifecycle state is reached first. If timeout is reached, a return code of 2 is returned. For any other error, a return code of 1 is returned.""")
2580
+ @cli_util.option('--max-wait-seconds', type=click.INT, help="""The maximum time to wait for the resource to reach the lifecycle state defined by --wait-for-state. Defaults to 1200 seconds.""")
2581
+ @cli_util.option('--wait-interval-seconds', type=click.INT, help="""Check every --wait-interval-seconds to see whether the resource has reached the lifecycle state defined by --wait-for-state. Defaults to 30 seconds.""")
2582
+ @json_skeleton_utils.get_cli_json_input_option({'job-configuration-override-details': {'module': 'data_science', 'class': 'JobConfigurationDetails'}, 'job-log-configuration-override-details': {'module': 'data_science', 'class': 'JobLogConfigurationDetails'}, 'job-infrastructure-configuration-override-details': {'module': 'data_science', 'class': 'JobInfrastructureConfigurationDetails'}, 'job-node-configuration-override-details': {'module': 'data_science', 'class': 'JobNodeConfigurationDetails'}, 'freeform-tags': {'module': 'data_science', 'class': 'dict(str, string)'}, 'defined-tags': {'module': 'data_science', 'class': 'dict(str, dict(str, object))'}, 'job-environment-configuration-override-details-cmd': {'module': 'data_science', 'class': 'list[string]'}, 'job-environment-configuration-override-details-entrypoint': {'module': 'data_science', 'class': 'list[string]'}})
2583
+ @cli_util.help_option
2584
+ @click.pass_context
2585
+ @json_skeleton_utils.json_skeleton_generation_handler(input_params_to_complex_types={'job-configuration-override-details': {'module': 'data_science', 'class': 'JobConfigurationDetails'}, 'job-log-configuration-override-details': {'module': 'data_science', 'class': 'JobLogConfigurationDetails'}, 'job-infrastructure-configuration-override-details': {'module': 'data_science', 'class': 'JobInfrastructureConfigurationDetails'}, 'job-node-configuration-override-details': {'module': 'data_science', 'class': 'JobNodeConfigurationDetails'}, 'freeform-tags': {'module': 'data_science', 'class': 'dict(str, string)'}, 'defined-tags': {'module': 'data_science', 'class': 'dict(str, dict(str, object))'}, 'job-environment-configuration-override-details-cmd': {'module': 'data_science', 'class': 'list[string]'}, 'job-environment-configuration-override-details-entrypoint': {'module': 'data_science', 'class': 'list[string]'}}, output_type={'module': 'data_science', 'class': 'JobRun'})
2586
+ @cli_util.wrap_exceptions
2587
+ def create_job_run_ocir_container_job_environment_configuration_details(ctx, from_json, wait_for_state, max_wait_seconds, wait_interval_seconds, project_id, compartment_id, job_id, job_environment_configuration_override_details_image, display_name, job_configuration_override_details, job_log_configuration_override_details, job_infrastructure_configuration_override_details, job_node_configuration_override_details, freeform_tags, defined_tags, opc_parent_rpt_url, job_environment_configuration_override_details_cmd, job_environment_configuration_override_details_entrypoint, job_environment_configuration_override_details_image_digest, job_environment_configuration_override_details_image_signature_id):
2588
+
2589
+ kwargs = {}
2590
+ if opc_parent_rpt_url is not None:
2591
+ kwargs['opc_parent_rpt_url'] = opc_parent_rpt_url
2592
+ kwargs['opc_request_id'] = cli_util.use_or_generate_request_id(ctx.obj['request_id'])
2593
+
2594
+ _details = {}
2595
+ _details['jobEnvironmentConfigurationOverrideDetails'] = {}
2596
+ _details['projectId'] = project_id
2597
+ _details['compartmentId'] = compartment_id
2598
+ _details['jobId'] = job_id
2599
+ _details['jobEnvironmentConfigurationOverrideDetails']['image'] = job_environment_configuration_override_details_image
2600
+
2601
+ if display_name is not None:
2602
+ _details['displayName'] = display_name
2603
+
2604
+ if job_configuration_override_details is not None:
2605
+ _details['jobConfigurationOverrideDetails'] = cli_util.parse_json_parameter("job_configuration_override_details", job_configuration_override_details)
2606
+
2607
+ if job_log_configuration_override_details is not None:
2608
+ _details['jobLogConfigurationOverrideDetails'] = cli_util.parse_json_parameter("job_log_configuration_override_details", job_log_configuration_override_details)
2609
+
2610
+ if job_infrastructure_configuration_override_details is not None:
2611
+ _details['jobInfrastructureConfigurationOverrideDetails'] = cli_util.parse_json_parameter("job_infrastructure_configuration_override_details", job_infrastructure_configuration_override_details)
2612
+
2613
+ if job_node_configuration_override_details is not None:
2614
+ _details['jobNodeConfigurationOverrideDetails'] = cli_util.parse_json_parameter("job_node_configuration_override_details", job_node_configuration_override_details)
2615
+
2616
+ if freeform_tags is not None:
2617
+ _details['freeformTags'] = cli_util.parse_json_parameter("freeform_tags", freeform_tags)
2618
+
2619
+ if defined_tags is not None:
2620
+ _details['definedTags'] = cli_util.parse_json_parameter("defined_tags", defined_tags)
2621
+
2622
+ if job_environment_configuration_override_details_cmd is not None:
2623
+ _details['jobEnvironmentConfigurationOverrideDetails']['cmd'] = cli_util.parse_json_parameter("job_environment_configuration_override_details_cmd", job_environment_configuration_override_details_cmd)
2624
+
2625
+ if job_environment_configuration_override_details_entrypoint is not None:
2626
+ _details['jobEnvironmentConfigurationOverrideDetails']['entrypoint'] = cli_util.parse_json_parameter("job_environment_configuration_override_details_entrypoint", job_environment_configuration_override_details_entrypoint)
2627
+
2628
+ if job_environment_configuration_override_details_image_digest is not None:
2629
+ _details['jobEnvironmentConfigurationOverrideDetails']['imageDigest'] = job_environment_configuration_override_details_image_digest
2630
+
2631
+ if job_environment_configuration_override_details_image_signature_id is not None:
2632
+ _details['jobEnvironmentConfigurationOverrideDetails']['imageSignatureId'] = job_environment_configuration_override_details_image_signature_id
2633
+
2634
+ _details['jobEnvironmentConfigurationOverrideDetails']['jobEnvironmentType'] = 'OCIR_CONTAINER'
2635
+
2636
+ client = cli_util.build_client('data_science', 'data_science', ctx)
2637
+ result = client.create_job_run(
2638
+ create_job_run_details=_details,
2639
+ **kwargs
2640
+ )
2641
+ if wait_for_state:
2642
+
2643
+ if hasattr(client, 'get_job_run') and callable(getattr(client, 'get_job_run')):
2644
+ try:
2645
+ wait_period_kwargs = {}
2646
+ if max_wait_seconds is not None:
2647
+ wait_period_kwargs['max_wait_seconds'] = max_wait_seconds
2648
+ if wait_interval_seconds is not None:
2649
+ wait_period_kwargs['max_interval_seconds'] = wait_interval_seconds
2650
+
2651
+ click.echo('Action completed. Waiting until the resource has entered state: {}'.format(wait_for_state), file=sys.stderr)
2652
+ result = oci.wait_until(client, client.get_job_run(result.data.id), 'lifecycle_state', wait_for_state, **wait_period_kwargs)
2653
+ except oci.exceptions.MaximumWaitTimeExceeded as e:
2654
+ # If we fail, we should show an error, but we should still provide the information to the customer
2655
+ click.echo('Failed to wait until the resource entered the specified state. Outputting last known resource state', file=sys.stderr)
2656
+ cli_util.render_response(result, ctx)
2657
+ sys.exit(2)
2658
+ except Exception:
2659
+ click.echo('Encountered error while waiting for resource to enter the specified state. Outputting last known resource state', file=sys.stderr)
2660
+ cli_util.render_response(result, ctx)
2661
+ raise
2662
+ else:
2663
+ click.echo('Unable to wait for the resource to enter the specified state', file=sys.stderr)
2664
+ cli_util.render_response(result, ctx)
2665
+
2666
+
2667
+ @job_run_group.command(name=cli_util.override('data_science.create_job_run_multi_node_job_infrastructure_configuration_details.command_name', 'create-job-run-multi-node-job-infrastructure-configuration-details'), help=u"""Creates a job run. \n[Command Reference](createJobRun)""")
2668
+ @cli_util.option('--project-id', required=True, help=u"""The [OCID] of the project to associate the job run with.""")
2669
+ @cli_util.option('--compartment-id', required=True, help=u"""The [OCID] of the compartment where you want to create the job run.""")
2670
+ @cli_util.option('--job-id', required=True, help=u"""The [OCID] of the job to create a run for.""")
2671
+ @cli_util.option('--job-infrastructure-configuration-override-details-shape-name', required=True, help=u"""The name that corresponds to the JobShapeSummary to use for the job node""")
2672
+ @cli_util.option('--job-infrastructure-configuration-override-details-block-storage-size-in-gbs', required=True, type=click.INT, help=u"""The size of the block storage volume to attach to the instance running the job""")
2673
+ @cli_util.option('--display-name', help=u"""A user-friendly display name for the resource.""")
2674
+ @cli_util.option('--job-configuration-override-details', type=custom_types.CLI_COMPLEX_TYPE, help=u"""""" + custom_types.cli_complex_type.COMPLEX_TYPE_HELP)
2675
+ @cli_util.option('--job-log-configuration-override-details', type=custom_types.CLI_COMPLEX_TYPE, help=u"""""" + custom_types.cli_complex_type.COMPLEX_TYPE_HELP)
2676
+ @cli_util.option('--job-environment-configuration-override-details', type=custom_types.CLI_COMPLEX_TYPE, help=u"""""" + custom_types.cli_complex_type.COMPLEX_TYPE_HELP)
2677
+ @cli_util.option('--job-node-configuration-override-details', type=custom_types.CLI_COMPLEX_TYPE, help=u"""""" + custom_types.cli_complex_type.COMPLEX_TYPE_HELP)
2678
+ @cli_util.option('--freeform-tags', type=custom_types.CLI_COMPLEX_TYPE, help=u"""Free-form tags for this resource. Each tag is a simple key-value pair with no predefined name, type, or namespace. See [Resource Tags]. Example: `{\"Department\": \"Finance\"}`""" + custom_types.cli_complex_type.COMPLEX_TYPE_HELP)
2679
+ @cli_util.option('--defined-tags', type=custom_types.CLI_COMPLEX_TYPE, help=u"""Defined tags for this resource. Each key is predefined and scoped to a namespace. See [Resource Tags]. Example: `{\"Operations\": {\"CostCenter\": \"42\"}}`""" + custom_types.cli_complex_type.COMPLEX_TYPE_HELP)
2680
+ @cli_util.option('--opc-parent-rpt-url', help=u"""URL to fetch the Resource Principal Token from the parent resource.""")
2681
+ @cli_util.option('--job-infrastructure-configuration-override-details-job-shape-config-details', type=custom_types.CLI_COMPLEX_TYPE, help=u"""""" + custom_types.cli_complex_type.COMPLEX_TYPE_HELP)
2682
+ @cli_util.option('--wait-for-state', type=custom_types.CliCaseInsensitiveChoice(["ACCEPTED", "IN_PROGRESS", "FAILED", "SUCCEEDED", "CANCELING", "CANCELED", "DELETED", "NEEDS_ATTENTION"]), multiple=True, help="""This operation creates, modifies or deletes a resource that has a defined lifecycle state. Specify this option to perform the action and then wait until the resource reaches a given lifecycle state. Multiple states can be specified, returning on the first state. For example, --wait-for-state SUCCEEDED --wait-for-state FAILED would return on whichever lifecycle state is reached first. If timeout is reached, a return code of 2 is returned. For any other error, a return code of 1 is returned.""")
2683
+ @cli_util.option('--max-wait-seconds', type=click.INT, help="""The maximum time to wait for the resource to reach the lifecycle state defined by --wait-for-state. Defaults to 1200 seconds.""")
2684
+ @cli_util.option('--wait-interval-seconds', type=click.INT, help="""Check every --wait-interval-seconds to see whether the resource has reached the lifecycle state defined by --wait-for-state. Defaults to 30 seconds.""")
2685
+ @json_skeleton_utils.get_cli_json_input_option({'job-configuration-override-details': {'module': 'data_science', 'class': 'JobConfigurationDetails'}, 'job-log-configuration-override-details': {'module': 'data_science', 'class': 'JobLogConfigurationDetails'}, 'job-environment-configuration-override-details': {'module': 'data_science', 'class': 'JobEnvironmentConfigurationDetails'}, 'job-node-configuration-override-details': {'module': 'data_science', 'class': 'JobNodeConfigurationDetails'}, 'freeform-tags': {'module': 'data_science', 'class': 'dict(str, string)'}, 'defined-tags': {'module': 'data_science', 'class': 'dict(str, dict(str, object))'}, 'job-infrastructure-configuration-override-details-job-shape-config-details': {'module': 'data_science', 'class': 'JobShapeConfigDetails'}})
2686
+ @cli_util.help_option
2687
+ @click.pass_context
2688
+ @json_skeleton_utils.json_skeleton_generation_handler(input_params_to_complex_types={'job-configuration-override-details': {'module': 'data_science', 'class': 'JobConfigurationDetails'}, 'job-log-configuration-override-details': {'module': 'data_science', 'class': 'JobLogConfigurationDetails'}, 'job-environment-configuration-override-details': {'module': 'data_science', 'class': 'JobEnvironmentConfigurationDetails'}, 'job-node-configuration-override-details': {'module': 'data_science', 'class': 'JobNodeConfigurationDetails'}, 'freeform-tags': {'module': 'data_science', 'class': 'dict(str, string)'}, 'defined-tags': {'module': 'data_science', 'class': 'dict(str, dict(str, object))'}, 'job-infrastructure-configuration-override-details-job-shape-config-details': {'module': 'data_science', 'class': 'JobShapeConfigDetails'}}, output_type={'module': 'data_science', 'class': 'JobRun'})
2689
+ @cli_util.wrap_exceptions
2690
+ def create_job_run_multi_node_job_infrastructure_configuration_details(ctx, from_json, wait_for_state, max_wait_seconds, wait_interval_seconds, project_id, compartment_id, job_id, job_infrastructure_configuration_override_details_shape_name, job_infrastructure_configuration_override_details_block_storage_size_in_gbs, display_name, job_configuration_override_details, job_log_configuration_override_details, job_environment_configuration_override_details, job_node_configuration_override_details, freeform_tags, defined_tags, opc_parent_rpt_url, job_infrastructure_configuration_override_details_job_shape_config_details):
2691
+
2692
+ kwargs = {}
2693
+ if opc_parent_rpt_url is not None:
2694
+ kwargs['opc_parent_rpt_url'] = opc_parent_rpt_url
2695
+ kwargs['opc_request_id'] = cli_util.use_or_generate_request_id(ctx.obj['request_id'])
2696
+
2697
+ _details = {}
2698
+ _details['jobInfrastructureConfigurationOverrideDetails'] = {}
2699
+ _details['projectId'] = project_id
2700
+ _details['compartmentId'] = compartment_id
2701
+ _details['jobId'] = job_id
2702
+ _details['jobInfrastructureConfigurationOverrideDetails']['shapeName'] = job_infrastructure_configuration_override_details_shape_name
2703
+ _details['jobInfrastructureConfigurationOverrideDetails']['blockStorageSizeInGBs'] = job_infrastructure_configuration_override_details_block_storage_size_in_gbs
2704
+
2705
+ if display_name is not None:
2706
+ _details['displayName'] = display_name
2707
+
2708
+ if job_configuration_override_details is not None:
2709
+ _details['jobConfigurationOverrideDetails'] = cli_util.parse_json_parameter("job_configuration_override_details", job_configuration_override_details)
2710
+
2711
+ if job_log_configuration_override_details is not None:
2712
+ _details['jobLogConfigurationOverrideDetails'] = cli_util.parse_json_parameter("job_log_configuration_override_details", job_log_configuration_override_details)
2713
+
2714
+ if job_environment_configuration_override_details is not None:
2715
+ _details['jobEnvironmentConfigurationOverrideDetails'] = cli_util.parse_json_parameter("job_environment_configuration_override_details", job_environment_configuration_override_details)
2716
+
2717
+ if job_node_configuration_override_details is not None:
2718
+ _details['jobNodeConfigurationOverrideDetails'] = cli_util.parse_json_parameter("job_node_configuration_override_details", job_node_configuration_override_details)
2719
+
2720
+ if freeform_tags is not None:
2721
+ _details['freeformTags'] = cli_util.parse_json_parameter("freeform_tags", freeform_tags)
2722
+
2723
+ if defined_tags is not None:
2724
+ _details['definedTags'] = cli_util.parse_json_parameter("defined_tags", defined_tags)
2725
+
2726
+ if job_infrastructure_configuration_override_details_job_shape_config_details is not None:
2727
+ _details['jobInfrastructureConfigurationOverrideDetails']['jobShapeConfigDetails'] = cli_util.parse_json_parameter("job_infrastructure_configuration_override_details_job_shape_config_details", job_infrastructure_configuration_override_details_job_shape_config_details)
2728
+
2729
+ _details['jobInfrastructureConfigurationOverrideDetails']['jobInfrastructureType'] = 'MULTI_NODE'
2730
+
2731
+ client = cli_util.build_client('data_science', 'data_science', ctx)
2732
+ result = client.create_job_run(
2733
+ create_job_run_details=_details,
2734
+ **kwargs
2735
+ )
2736
+ if wait_for_state:
2737
+
2738
+ if hasattr(client, 'get_job_run') and callable(getattr(client, 'get_job_run')):
2739
+ try:
2740
+ wait_period_kwargs = {}
2741
+ if max_wait_seconds is not None:
2742
+ wait_period_kwargs['max_wait_seconds'] = max_wait_seconds
2743
+ if wait_interval_seconds is not None:
2744
+ wait_period_kwargs['max_interval_seconds'] = wait_interval_seconds
2745
+
2746
+ click.echo('Action completed. Waiting until the resource has entered state: {}'.format(wait_for_state), file=sys.stderr)
2747
+ result = oci.wait_until(client, client.get_job_run(result.data.id), 'lifecycle_state', wait_for_state, **wait_period_kwargs)
2748
+ except oci.exceptions.MaximumWaitTimeExceeded as e:
2749
+ # If we fail, we should show an error, but we should still provide the information to the customer
2750
+ click.echo('Failed to wait until the resource entered the specified state. Outputting last known resource state', file=sys.stderr)
2751
+ cli_util.render_response(result, ctx)
2752
+ sys.exit(2)
2753
+ except Exception:
2754
+ click.echo('Encountered error while waiting for resource to enter the specified state. Outputting last known resource state', file=sys.stderr)
2755
+ cli_util.render_response(result, ctx)
2756
+ raise
2757
+ else:
2758
+ click.echo('Unable to wait for the resource to enter the specified state', file=sys.stderr)
2759
+ cli_util.render_response(result, ctx)
2760
+
2761
+
2762
+ @job_run_group.command(name=cli_util.override('data_science.create_job_run_empty_job_infrastructure_configuration_details.command_name', 'create-job-run-empty-job-infrastructure-configuration-details'), help=u"""Creates a job run. \n[Command Reference](createJobRun)""")
2763
+ @cli_util.option('--project-id', required=True, help=u"""The [OCID] of the project to associate the job run with.""")
2764
+ @cli_util.option('--compartment-id', required=True, help=u"""The [OCID] of the compartment where you want to create the job run.""")
2765
+ @cli_util.option('--job-id', required=True, help=u"""The [OCID] of the job to create a run for.""")
2766
+ @cli_util.option('--display-name', help=u"""A user-friendly display name for the resource.""")
2767
+ @cli_util.option('--job-configuration-override-details', type=custom_types.CLI_COMPLEX_TYPE, help=u"""""" + custom_types.cli_complex_type.COMPLEX_TYPE_HELP)
2768
+ @cli_util.option('--job-log-configuration-override-details', type=custom_types.CLI_COMPLEX_TYPE, help=u"""""" + custom_types.cli_complex_type.COMPLEX_TYPE_HELP)
2769
+ @cli_util.option('--job-environment-configuration-override-details', type=custom_types.CLI_COMPLEX_TYPE, help=u"""""" + custom_types.cli_complex_type.COMPLEX_TYPE_HELP)
2770
+ @cli_util.option('--job-node-configuration-override-details', type=custom_types.CLI_COMPLEX_TYPE, help=u"""""" + custom_types.cli_complex_type.COMPLEX_TYPE_HELP)
2771
+ @cli_util.option('--freeform-tags', type=custom_types.CLI_COMPLEX_TYPE, help=u"""Free-form tags for this resource. Each tag is a simple key-value pair with no predefined name, type, or namespace. See [Resource Tags]. Example: `{\"Department\": \"Finance\"}`""" + custom_types.cli_complex_type.COMPLEX_TYPE_HELP)
2772
+ @cli_util.option('--defined-tags', type=custom_types.CLI_COMPLEX_TYPE, help=u"""Defined tags for this resource. Each key is predefined and scoped to a namespace. See [Resource Tags]. Example: `{\"Operations\": {\"CostCenter\": \"42\"}}`""" + custom_types.cli_complex_type.COMPLEX_TYPE_HELP)
2773
+ @cli_util.option('--opc-parent-rpt-url', help=u"""URL to fetch the Resource Principal Token from the parent resource.""")
2774
+ @cli_util.option('--wait-for-state', type=custom_types.CliCaseInsensitiveChoice(["ACCEPTED", "IN_PROGRESS", "FAILED", "SUCCEEDED", "CANCELING", "CANCELED", "DELETED", "NEEDS_ATTENTION"]), multiple=True, help="""This operation creates, modifies or deletes a resource that has a defined lifecycle state. Specify this option to perform the action and then wait until the resource reaches a given lifecycle state. Multiple states can be specified, returning on the first state. For example, --wait-for-state SUCCEEDED --wait-for-state FAILED would return on whichever lifecycle state is reached first. If timeout is reached, a return code of 2 is returned. For any other error, a return code of 1 is returned.""")
2775
+ @cli_util.option('--max-wait-seconds', type=click.INT, help="""The maximum time to wait for the resource to reach the lifecycle state defined by --wait-for-state. Defaults to 1200 seconds.""")
2776
+ @cli_util.option('--wait-interval-seconds', type=click.INT, help="""Check every --wait-interval-seconds to see whether the resource has reached the lifecycle state defined by --wait-for-state. Defaults to 30 seconds.""")
2777
+ @json_skeleton_utils.get_cli_json_input_option({'job-configuration-override-details': {'module': 'data_science', 'class': 'JobConfigurationDetails'}, 'job-log-configuration-override-details': {'module': 'data_science', 'class': 'JobLogConfigurationDetails'}, 'job-environment-configuration-override-details': {'module': 'data_science', 'class': 'JobEnvironmentConfigurationDetails'}, 'job-node-configuration-override-details': {'module': 'data_science', 'class': 'JobNodeConfigurationDetails'}, 'freeform-tags': {'module': 'data_science', 'class': 'dict(str, string)'}, 'defined-tags': {'module': 'data_science', 'class': 'dict(str, dict(str, object))'}})
2778
+ @cli_util.help_option
2779
+ @click.pass_context
2780
+ @json_skeleton_utils.json_skeleton_generation_handler(input_params_to_complex_types={'job-configuration-override-details': {'module': 'data_science', 'class': 'JobConfigurationDetails'}, 'job-log-configuration-override-details': {'module': 'data_science', 'class': 'JobLogConfigurationDetails'}, 'job-environment-configuration-override-details': {'module': 'data_science', 'class': 'JobEnvironmentConfigurationDetails'}, 'job-node-configuration-override-details': {'module': 'data_science', 'class': 'JobNodeConfigurationDetails'}, 'freeform-tags': {'module': 'data_science', 'class': 'dict(str, string)'}, 'defined-tags': {'module': 'data_science', 'class': 'dict(str, dict(str, object))'}}, output_type={'module': 'data_science', 'class': 'JobRun'})
2781
+ @cli_util.wrap_exceptions
2782
+ def create_job_run_empty_job_infrastructure_configuration_details(ctx, from_json, wait_for_state, max_wait_seconds, wait_interval_seconds, project_id, compartment_id, job_id, display_name, job_configuration_override_details, job_log_configuration_override_details, job_environment_configuration_override_details, job_node_configuration_override_details, freeform_tags, defined_tags, opc_parent_rpt_url):
2783
+
2784
+ kwargs = {}
2785
+ if opc_parent_rpt_url is not None:
2786
+ kwargs['opc_parent_rpt_url'] = opc_parent_rpt_url
2787
+ kwargs['opc_request_id'] = cli_util.use_or_generate_request_id(ctx.obj['request_id'])
2788
+
2789
+ _details = {}
2790
+ _details['jobInfrastructureConfigurationOverrideDetails'] = {}
2791
+ _details['projectId'] = project_id
2792
+ _details['compartmentId'] = compartment_id
2793
+ _details['jobId'] = job_id
2794
+
2795
+ if display_name is not None:
2796
+ _details['displayName'] = display_name
2797
+
2798
+ if job_configuration_override_details is not None:
2799
+ _details['jobConfigurationOverrideDetails'] = cli_util.parse_json_parameter("job_configuration_override_details", job_configuration_override_details)
2800
+
2801
+ if job_log_configuration_override_details is not None:
2802
+ _details['jobLogConfigurationOverrideDetails'] = cli_util.parse_json_parameter("job_log_configuration_override_details", job_log_configuration_override_details)
2803
+
2804
+ if job_environment_configuration_override_details is not None:
2805
+ _details['jobEnvironmentConfigurationOverrideDetails'] = cli_util.parse_json_parameter("job_environment_configuration_override_details", job_environment_configuration_override_details)
2806
+
2807
+ if job_node_configuration_override_details is not None:
2808
+ _details['jobNodeConfigurationOverrideDetails'] = cli_util.parse_json_parameter("job_node_configuration_override_details", job_node_configuration_override_details)
2809
+
2810
+ if freeform_tags is not None:
2811
+ _details['freeformTags'] = cli_util.parse_json_parameter("freeform_tags", freeform_tags)
2812
+
2813
+ if defined_tags is not None:
2814
+ _details['definedTags'] = cli_util.parse_json_parameter("defined_tags", defined_tags)
2815
+
2816
+ _details['jobInfrastructureConfigurationOverrideDetails']['jobInfrastructureType'] = 'EMPTY'
2817
+
2818
+ client = cli_util.build_client('data_science', 'data_science', ctx)
2819
+ result = client.create_job_run(
2820
+ create_job_run_details=_details,
2821
+ **kwargs
2822
+ )
2823
+ if wait_for_state:
2824
+
2825
+ if hasattr(client, 'get_job_run') and callable(getattr(client, 'get_job_run')):
1795
2826
  try:
1796
2827
  wait_period_kwargs = {}
1797
2828
  if max_wait_seconds is not None:
@@ -1800,7 +2831,7 @@ def create_job_ocir_container_job_environment_configuration_details(ctx, from_js
1800
2831
  wait_period_kwargs['max_interval_seconds'] = wait_interval_seconds
1801
2832
 
1802
2833
  click.echo('Action completed. Waiting until the resource has entered state: {}'.format(wait_for_state), file=sys.stderr)
1803
- result = oci.wait_until(client, client.get_job(result.data.id), 'lifecycle_state', wait_for_state, **wait_period_kwargs)
2834
+ result = oci.wait_until(client, client.get_job_run(result.data.id), 'lifecycle_state', wait_for_state, **wait_period_kwargs)
1804
2835
  except oci.exceptions.MaximumWaitTimeExceeded as e:
1805
2836
  # If we fail, we should show an error, but we should still provide the information to the customer
1806
2837
  click.echo('Failed to wait until the resource entered the specified state. Outputting last known resource state', file=sys.stderr)
@@ -1815,60 +2846,30 @@ def create_job_ocir_container_job_environment_configuration_details(ctx, from_js
1815
2846
  cli_util.render_response(result, ctx)
1816
2847
 
1817
2848
 
1818
- @job_group.command(name=cli_util.override('data_science.create_job_artifact.command_name', 'create-job-artifact'), help=u"""Uploads a job artifact. \n[Command Reference](createJobArtifact)""")
1819
- @cli_util.option('--job-id', required=True, help=u"""The [OCID] of the job.""")
1820
- @cli_util.option('--job-artifact', required=True, help=u"""The job artifact to upload.""")
1821
- @cli_util.option('--content-length', type=click.INT, help=u"""The content length of the body.""")
1822
- @cli_util.option('--content-disposition', help=u"""This header is for specifying a filename during upload. It is used to identify the file type and validate if the file type is supported. Example: `--content-disposition \"attachment; filename=hello-world.py\"`""")
1823
- @json_skeleton_utils.get_cli_json_input_option({})
1824
- @cli_util.help_option
1825
- @click.pass_context
1826
- @json_skeleton_utils.json_skeleton_generation_handler(input_params_to_complex_types={})
1827
- @cli_util.wrap_exceptions
1828
- def create_job_artifact(ctx, from_json, job_id, job_artifact, content_length, content_disposition):
1829
-
1830
- if isinstance(job_id, six.string_types) and len(job_id.strip()) == 0:
1831
- raise click.UsageError('Parameter --job-id cannot be whitespace or empty string')
1832
-
1833
- kwargs = {}
1834
- if content_length is not None:
1835
- kwargs['content_length'] = content_length
1836
- if content_disposition is not None:
1837
- kwargs['content_disposition'] = content_disposition
1838
- kwargs['opc_request_id'] = cli_util.use_or_generate_request_id(ctx.obj['request_id'])
1839
-
1840
- # do not automatically retry operations with binary inputs
1841
- kwargs['retry_strategy'] = oci.retry.NoneRetryStrategy()
1842
-
1843
- client = cli_util.build_client('data_science', 'data_science', ctx)
1844
- result = client.create_job_artifact(
1845
- job_id=job_id,
1846
- job_artifact=job_artifact,
1847
- **kwargs
1848
- )
1849
- cli_util.render_response(result, ctx)
1850
-
1851
-
1852
- @job_run_group.command(name=cli_util.override('data_science.create_job_run.command_name', 'create'), help=u"""Creates a job run. \n[Command Reference](createJobRun)""")
2849
+ @job_run_group.command(name=cli_util.override('data_science.create_job_run_managed_egress_standalone_job_infrastructure_configuration_details.command_name', 'create-job-run-managed-egress-standalone-job-infrastructure-configuration-details'), help=u"""Creates a job run. \n[Command Reference](createJobRun)""")
1853
2850
  @cli_util.option('--project-id', required=True, help=u"""The [OCID] of the project to associate the job run with.""")
1854
2851
  @cli_util.option('--compartment-id', required=True, help=u"""The [OCID] of the compartment where you want to create the job run.""")
1855
2852
  @cli_util.option('--job-id', required=True, help=u"""The [OCID] of the job to create a run for.""")
2853
+ @cli_util.option('--job-infrastructure-configuration-override-details-shape-name', required=True, help=u"""The shape used to launch the job run instances.""")
2854
+ @cli_util.option('--job-infrastructure-configuration-override-details-block-storage-size-in-gbs', required=True, type=click.INT, help=u"""The size of the block storage volume to attach to the instance running the job""")
1856
2855
  @cli_util.option('--display-name', help=u"""A user-friendly display name for the resource.""")
1857
2856
  @cli_util.option('--job-configuration-override-details', type=custom_types.CLI_COMPLEX_TYPE, help=u"""""" + custom_types.cli_complex_type.COMPLEX_TYPE_HELP)
1858
2857
  @cli_util.option('--job-log-configuration-override-details', type=custom_types.CLI_COMPLEX_TYPE, help=u"""""" + custom_types.cli_complex_type.COMPLEX_TYPE_HELP)
1859
2858
  @cli_util.option('--job-environment-configuration-override-details', type=custom_types.CLI_COMPLEX_TYPE, help=u"""""" + custom_types.cli_complex_type.COMPLEX_TYPE_HELP)
2859
+ @cli_util.option('--job-node-configuration-override-details', type=custom_types.CLI_COMPLEX_TYPE, help=u"""""" + custom_types.cli_complex_type.COMPLEX_TYPE_HELP)
1860
2860
  @cli_util.option('--freeform-tags', type=custom_types.CLI_COMPLEX_TYPE, help=u"""Free-form tags for this resource. Each tag is a simple key-value pair with no predefined name, type, or namespace. See [Resource Tags]. Example: `{\"Department\": \"Finance\"}`""" + custom_types.cli_complex_type.COMPLEX_TYPE_HELP)
1861
2861
  @cli_util.option('--defined-tags', type=custom_types.CLI_COMPLEX_TYPE, help=u"""Defined tags for this resource. Each key is predefined and scoped to a namespace. See [Resource Tags]. Example: `{\"Operations\": {\"CostCenter\": \"42\"}}`""" + custom_types.cli_complex_type.COMPLEX_TYPE_HELP)
1862
2862
  @cli_util.option('--opc-parent-rpt-url', help=u"""URL to fetch the Resource Principal Token from the parent resource.""")
2863
+ @cli_util.option('--job-infrastructure-configuration-override-details-job-shape-config-details', type=custom_types.CLI_COMPLEX_TYPE, help=u"""""" + custom_types.cli_complex_type.COMPLEX_TYPE_HELP)
1863
2864
  @cli_util.option('--wait-for-state', type=custom_types.CliCaseInsensitiveChoice(["ACCEPTED", "IN_PROGRESS", "FAILED", "SUCCEEDED", "CANCELING", "CANCELED", "DELETED", "NEEDS_ATTENTION"]), multiple=True, help="""This operation creates, modifies or deletes a resource that has a defined lifecycle state. Specify this option to perform the action and then wait until the resource reaches a given lifecycle state. Multiple states can be specified, returning on the first state. For example, --wait-for-state SUCCEEDED --wait-for-state FAILED would return on whichever lifecycle state is reached first. If timeout is reached, a return code of 2 is returned. For any other error, a return code of 1 is returned.""")
1864
2865
  @cli_util.option('--max-wait-seconds', type=click.INT, help="""The maximum time to wait for the resource to reach the lifecycle state defined by --wait-for-state. Defaults to 1200 seconds.""")
1865
2866
  @cli_util.option('--wait-interval-seconds', type=click.INT, help="""Check every --wait-interval-seconds to see whether the resource has reached the lifecycle state defined by --wait-for-state. Defaults to 30 seconds.""")
1866
- @json_skeleton_utils.get_cli_json_input_option({'job-configuration-override-details': {'module': 'data_science', 'class': 'JobConfigurationDetails'}, 'job-log-configuration-override-details': {'module': 'data_science', 'class': 'JobLogConfigurationDetails'}, 'job-environment-configuration-override-details': {'module': 'data_science', 'class': 'JobEnvironmentConfigurationDetails'}, 'freeform-tags': {'module': 'data_science', 'class': 'dict(str, string)'}, 'defined-tags': {'module': 'data_science', 'class': 'dict(str, dict(str, object))'}})
2867
+ @json_skeleton_utils.get_cli_json_input_option({'job-configuration-override-details': {'module': 'data_science', 'class': 'JobConfigurationDetails'}, 'job-log-configuration-override-details': {'module': 'data_science', 'class': 'JobLogConfigurationDetails'}, 'job-environment-configuration-override-details': {'module': 'data_science', 'class': 'JobEnvironmentConfigurationDetails'}, 'job-node-configuration-override-details': {'module': 'data_science', 'class': 'JobNodeConfigurationDetails'}, 'freeform-tags': {'module': 'data_science', 'class': 'dict(str, string)'}, 'defined-tags': {'module': 'data_science', 'class': 'dict(str, dict(str, object))'}, 'job-infrastructure-configuration-override-details-job-shape-config-details': {'module': 'data_science', 'class': 'JobShapeConfigDetails'}})
1867
2868
  @cli_util.help_option
1868
2869
  @click.pass_context
1869
- @json_skeleton_utils.json_skeleton_generation_handler(input_params_to_complex_types={'job-configuration-override-details': {'module': 'data_science', 'class': 'JobConfigurationDetails'}, 'job-log-configuration-override-details': {'module': 'data_science', 'class': 'JobLogConfigurationDetails'}, 'job-environment-configuration-override-details': {'module': 'data_science', 'class': 'JobEnvironmentConfigurationDetails'}, 'freeform-tags': {'module': 'data_science', 'class': 'dict(str, string)'}, 'defined-tags': {'module': 'data_science', 'class': 'dict(str, dict(str, object))'}}, output_type={'module': 'data_science', 'class': 'JobRun'})
2870
+ @json_skeleton_utils.json_skeleton_generation_handler(input_params_to_complex_types={'job-configuration-override-details': {'module': 'data_science', 'class': 'JobConfigurationDetails'}, 'job-log-configuration-override-details': {'module': 'data_science', 'class': 'JobLogConfigurationDetails'}, 'job-environment-configuration-override-details': {'module': 'data_science', 'class': 'JobEnvironmentConfigurationDetails'}, 'job-node-configuration-override-details': {'module': 'data_science', 'class': 'JobNodeConfigurationDetails'}, 'freeform-tags': {'module': 'data_science', 'class': 'dict(str, string)'}, 'defined-tags': {'module': 'data_science', 'class': 'dict(str, dict(str, object))'}, 'job-infrastructure-configuration-override-details-job-shape-config-details': {'module': 'data_science', 'class': 'JobShapeConfigDetails'}}, output_type={'module': 'data_science', 'class': 'JobRun'})
1870
2871
  @cli_util.wrap_exceptions
1871
- def create_job_run(ctx, from_json, wait_for_state, max_wait_seconds, wait_interval_seconds, project_id, compartment_id, job_id, display_name, job_configuration_override_details, job_log_configuration_override_details, job_environment_configuration_override_details, freeform_tags, defined_tags, opc_parent_rpt_url):
2872
+ def create_job_run_managed_egress_standalone_job_infrastructure_configuration_details(ctx, from_json, wait_for_state, max_wait_seconds, wait_interval_seconds, project_id, compartment_id, job_id, job_infrastructure_configuration_override_details_shape_name, job_infrastructure_configuration_override_details_block_storage_size_in_gbs, display_name, job_configuration_override_details, job_log_configuration_override_details, job_environment_configuration_override_details, job_node_configuration_override_details, freeform_tags, defined_tags, opc_parent_rpt_url, job_infrastructure_configuration_override_details_job_shape_config_details):
1872
2873
 
1873
2874
  kwargs = {}
1874
2875
  if opc_parent_rpt_url is not None:
@@ -1876,9 +2877,12 @@ def create_job_run(ctx, from_json, wait_for_state, max_wait_seconds, wait_interv
1876
2877
  kwargs['opc_request_id'] = cli_util.use_or_generate_request_id(ctx.obj['request_id'])
1877
2878
 
1878
2879
  _details = {}
2880
+ _details['jobInfrastructureConfigurationOverrideDetails'] = {}
1879
2881
  _details['projectId'] = project_id
1880
2882
  _details['compartmentId'] = compartment_id
1881
2883
  _details['jobId'] = job_id
2884
+ _details['jobInfrastructureConfigurationOverrideDetails']['shapeName'] = job_infrastructure_configuration_override_details_shape_name
2885
+ _details['jobInfrastructureConfigurationOverrideDetails']['blockStorageSizeInGBs'] = job_infrastructure_configuration_override_details_block_storage_size_in_gbs
1882
2886
 
1883
2887
  if display_name is not None:
1884
2888
  _details['displayName'] = display_name
@@ -1892,12 +2896,20 @@ def create_job_run(ctx, from_json, wait_for_state, max_wait_seconds, wait_interv
1892
2896
  if job_environment_configuration_override_details is not None:
1893
2897
  _details['jobEnvironmentConfigurationOverrideDetails'] = cli_util.parse_json_parameter("job_environment_configuration_override_details", job_environment_configuration_override_details)
1894
2898
 
2899
+ if job_node_configuration_override_details is not None:
2900
+ _details['jobNodeConfigurationOverrideDetails'] = cli_util.parse_json_parameter("job_node_configuration_override_details", job_node_configuration_override_details)
2901
+
1895
2902
  if freeform_tags is not None:
1896
2903
  _details['freeformTags'] = cli_util.parse_json_parameter("freeform_tags", freeform_tags)
1897
2904
 
1898
2905
  if defined_tags is not None:
1899
2906
  _details['definedTags'] = cli_util.parse_json_parameter("defined_tags", defined_tags)
1900
2907
 
2908
+ if job_infrastructure_configuration_override_details_job_shape_config_details is not None:
2909
+ _details['jobInfrastructureConfigurationOverrideDetails']['jobShapeConfigDetails'] = cli_util.parse_json_parameter("job_infrastructure_configuration_override_details_job_shape_config_details", job_infrastructure_configuration_override_details_job_shape_config_details)
2910
+
2911
+ _details['jobInfrastructureConfigurationOverrideDetails']['jobInfrastructureType'] = 'ME_STANDALONE'
2912
+
1901
2913
  client = cli_util.build_client('data_science', 'data_science', ctx)
1902
2914
  result = client.create_job_run(
1903
2915
  create_job_run_details=_details,
@@ -1929,28 +2941,31 @@ def create_job_run(ctx, from_json, wait_for_state, max_wait_seconds, wait_interv
1929
2941
  cli_util.render_response(result, ctx)
1930
2942
 
1931
2943
 
1932
- @job_run_group.command(name=cli_util.override('data_science.create_job_run_default_job_configuration_details.command_name', 'create-job-run-default-job-configuration-details'), help=u"""Creates a job run. \n[Command Reference](createJobRun)""")
2944
+ @job_run_group.command(name=cli_util.override('data_science.create_job_run_standalone_job_infrastructure_configuration_details.command_name', 'create-job-run-standalone-job-infrastructure-configuration-details'), help=u"""Creates a job run. \n[Command Reference](createJobRun)""")
1933
2945
  @cli_util.option('--project-id', required=True, help=u"""The [OCID] of the project to associate the job run with.""")
1934
2946
  @cli_util.option('--compartment-id', required=True, help=u"""The [OCID] of the compartment where you want to create the job run.""")
1935
2947
  @cli_util.option('--job-id', required=True, help=u"""The [OCID] of the job to create a run for.""")
2948
+ @cli_util.option('--job-infrastructure-configuration-override-details-shape-name', required=True, help=u"""The shape used to launch the job run instances.""")
2949
+ @cli_util.option('--job-infrastructure-configuration-override-details-subnet-id', required=True, help=u"""The subnet to create a secondary vnic in to attach to the instance running the job""")
2950
+ @cli_util.option('--job-infrastructure-configuration-override-details-block-storage-size-in-gbs', required=True, type=click.INT, help=u"""The size of the block storage volume to attach to the instance running the job""")
1936
2951
  @cli_util.option('--display-name', help=u"""A user-friendly display name for the resource.""")
2952
+ @cli_util.option('--job-configuration-override-details', type=custom_types.CLI_COMPLEX_TYPE, help=u"""""" + custom_types.cli_complex_type.COMPLEX_TYPE_HELP)
1937
2953
  @cli_util.option('--job-log-configuration-override-details', type=custom_types.CLI_COMPLEX_TYPE, help=u"""""" + custom_types.cli_complex_type.COMPLEX_TYPE_HELP)
1938
2954
  @cli_util.option('--job-environment-configuration-override-details', type=custom_types.CLI_COMPLEX_TYPE, help=u"""""" + custom_types.cli_complex_type.COMPLEX_TYPE_HELP)
2955
+ @cli_util.option('--job-node-configuration-override-details', type=custom_types.CLI_COMPLEX_TYPE, help=u"""""" + custom_types.cli_complex_type.COMPLEX_TYPE_HELP)
1939
2956
  @cli_util.option('--freeform-tags', type=custom_types.CLI_COMPLEX_TYPE, help=u"""Free-form tags for this resource. Each tag is a simple key-value pair with no predefined name, type, or namespace. See [Resource Tags]. Example: `{\"Department\": \"Finance\"}`""" + custom_types.cli_complex_type.COMPLEX_TYPE_HELP)
1940
2957
  @cli_util.option('--defined-tags', type=custom_types.CLI_COMPLEX_TYPE, help=u"""Defined tags for this resource. Each key is predefined and scoped to a namespace. See [Resource Tags]. Example: `{\"Operations\": {\"CostCenter\": \"42\"}}`""" + custom_types.cli_complex_type.COMPLEX_TYPE_HELP)
1941
2958
  @cli_util.option('--opc-parent-rpt-url', help=u"""URL to fetch the Resource Principal Token from the parent resource.""")
1942
- @cli_util.option('--job-configuration-override-details-environment-variables', type=custom_types.CLI_COMPLEX_TYPE, help=u"""Environment variables to set for the job.""" + custom_types.cli_complex_type.COMPLEX_TYPE_HELP)
1943
- @cli_util.option('--job-configuration-override-details-command-line-arguments', help=u"""The arguments to pass to the job.""")
1944
- @cli_util.option('--job-configuration-override-details-maximum-runtime-in-minutes', type=click.INT, help=u"""A time bound for the execution of the job. Timer starts when the job becomes active.""")
2959
+ @cli_util.option('--job-infrastructure-configuration-override-details-job-shape-config-details', type=custom_types.CLI_COMPLEX_TYPE, help=u"""""" + custom_types.cli_complex_type.COMPLEX_TYPE_HELP)
1945
2960
  @cli_util.option('--wait-for-state', type=custom_types.CliCaseInsensitiveChoice(["ACCEPTED", "IN_PROGRESS", "FAILED", "SUCCEEDED", "CANCELING", "CANCELED", "DELETED", "NEEDS_ATTENTION"]), multiple=True, help="""This operation creates, modifies or deletes a resource that has a defined lifecycle state. Specify this option to perform the action and then wait until the resource reaches a given lifecycle state. Multiple states can be specified, returning on the first state. For example, --wait-for-state SUCCEEDED --wait-for-state FAILED would return on whichever lifecycle state is reached first. If timeout is reached, a return code of 2 is returned. For any other error, a return code of 1 is returned.""")
1946
2961
  @cli_util.option('--max-wait-seconds', type=click.INT, help="""The maximum time to wait for the resource to reach the lifecycle state defined by --wait-for-state. Defaults to 1200 seconds.""")
1947
2962
  @cli_util.option('--wait-interval-seconds', type=click.INT, help="""Check every --wait-interval-seconds to see whether the resource has reached the lifecycle state defined by --wait-for-state. Defaults to 30 seconds.""")
1948
- @json_skeleton_utils.get_cli_json_input_option({'job-log-configuration-override-details': {'module': 'data_science', 'class': 'JobLogConfigurationDetails'}, 'job-environment-configuration-override-details': {'module': 'data_science', 'class': 'JobEnvironmentConfigurationDetails'}, 'freeform-tags': {'module': 'data_science', 'class': 'dict(str, string)'}, 'defined-tags': {'module': 'data_science', 'class': 'dict(str, dict(str, object))'}, 'job-configuration-override-details-environment-variables': {'module': 'data_science', 'class': 'dict(str, string)'}})
2963
+ @json_skeleton_utils.get_cli_json_input_option({'job-configuration-override-details': {'module': 'data_science', 'class': 'JobConfigurationDetails'}, 'job-log-configuration-override-details': {'module': 'data_science', 'class': 'JobLogConfigurationDetails'}, 'job-environment-configuration-override-details': {'module': 'data_science', 'class': 'JobEnvironmentConfigurationDetails'}, 'job-node-configuration-override-details': {'module': 'data_science', 'class': 'JobNodeConfigurationDetails'}, 'freeform-tags': {'module': 'data_science', 'class': 'dict(str, string)'}, 'defined-tags': {'module': 'data_science', 'class': 'dict(str, dict(str, object))'}, 'job-infrastructure-configuration-override-details-job-shape-config-details': {'module': 'data_science', 'class': 'JobShapeConfigDetails'}})
1949
2964
  @cli_util.help_option
1950
2965
  @click.pass_context
1951
- @json_skeleton_utils.json_skeleton_generation_handler(input_params_to_complex_types={'job-log-configuration-override-details': {'module': 'data_science', 'class': 'JobLogConfigurationDetails'}, 'job-environment-configuration-override-details': {'module': 'data_science', 'class': 'JobEnvironmentConfigurationDetails'}, 'freeform-tags': {'module': 'data_science', 'class': 'dict(str, string)'}, 'defined-tags': {'module': 'data_science', 'class': 'dict(str, dict(str, object))'}, 'job-configuration-override-details-environment-variables': {'module': 'data_science', 'class': 'dict(str, string)'}}, output_type={'module': 'data_science', 'class': 'JobRun'})
2966
+ @json_skeleton_utils.json_skeleton_generation_handler(input_params_to_complex_types={'job-configuration-override-details': {'module': 'data_science', 'class': 'JobConfigurationDetails'}, 'job-log-configuration-override-details': {'module': 'data_science', 'class': 'JobLogConfigurationDetails'}, 'job-environment-configuration-override-details': {'module': 'data_science', 'class': 'JobEnvironmentConfigurationDetails'}, 'job-node-configuration-override-details': {'module': 'data_science', 'class': 'JobNodeConfigurationDetails'}, 'freeform-tags': {'module': 'data_science', 'class': 'dict(str, string)'}, 'defined-tags': {'module': 'data_science', 'class': 'dict(str, dict(str, object))'}, 'job-infrastructure-configuration-override-details-job-shape-config-details': {'module': 'data_science', 'class': 'JobShapeConfigDetails'}}, output_type={'module': 'data_science', 'class': 'JobRun'})
1952
2967
  @cli_util.wrap_exceptions
1953
- def create_job_run_default_job_configuration_details(ctx, from_json, wait_for_state, max_wait_seconds, wait_interval_seconds, project_id, compartment_id, job_id, display_name, job_log_configuration_override_details, job_environment_configuration_override_details, freeform_tags, defined_tags, opc_parent_rpt_url, job_configuration_override_details_environment_variables, job_configuration_override_details_command_line_arguments, job_configuration_override_details_maximum_runtime_in_minutes):
2968
+ def create_job_run_standalone_job_infrastructure_configuration_details(ctx, from_json, wait_for_state, max_wait_seconds, wait_interval_seconds, project_id, compartment_id, job_id, job_infrastructure_configuration_override_details_shape_name, job_infrastructure_configuration_override_details_subnet_id, job_infrastructure_configuration_override_details_block_storage_size_in_gbs, display_name, job_configuration_override_details, job_log_configuration_override_details, job_environment_configuration_override_details, job_node_configuration_override_details, freeform_tags, defined_tags, opc_parent_rpt_url, job_infrastructure_configuration_override_details_job_shape_config_details):
1954
2969
 
1955
2970
  kwargs = {}
1956
2971
  if opc_parent_rpt_url is not None:
@@ -1958,36 +2973,39 @@ def create_job_run_default_job_configuration_details(ctx, from_json, wait_for_st
1958
2973
  kwargs['opc_request_id'] = cli_util.use_or_generate_request_id(ctx.obj['request_id'])
1959
2974
 
1960
2975
  _details = {}
1961
- _details['jobConfigurationOverrideDetails'] = {}
2976
+ _details['jobInfrastructureConfigurationOverrideDetails'] = {}
1962
2977
  _details['projectId'] = project_id
1963
2978
  _details['compartmentId'] = compartment_id
1964
2979
  _details['jobId'] = job_id
2980
+ _details['jobInfrastructureConfigurationOverrideDetails']['shapeName'] = job_infrastructure_configuration_override_details_shape_name
2981
+ _details['jobInfrastructureConfigurationOverrideDetails']['subnetId'] = job_infrastructure_configuration_override_details_subnet_id
2982
+ _details['jobInfrastructureConfigurationOverrideDetails']['blockStorageSizeInGBs'] = job_infrastructure_configuration_override_details_block_storage_size_in_gbs
1965
2983
 
1966
2984
  if display_name is not None:
1967
2985
  _details['displayName'] = display_name
1968
2986
 
2987
+ if job_configuration_override_details is not None:
2988
+ _details['jobConfigurationOverrideDetails'] = cli_util.parse_json_parameter("job_configuration_override_details", job_configuration_override_details)
2989
+
1969
2990
  if job_log_configuration_override_details is not None:
1970
2991
  _details['jobLogConfigurationOverrideDetails'] = cli_util.parse_json_parameter("job_log_configuration_override_details", job_log_configuration_override_details)
1971
2992
 
1972
2993
  if job_environment_configuration_override_details is not None:
1973
2994
  _details['jobEnvironmentConfigurationOverrideDetails'] = cli_util.parse_json_parameter("job_environment_configuration_override_details", job_environment_configuration_override_details)
1974
2995
 
2996
+ if job_node_configuration_override_details is not None:
2997
+ _details['jobNodeConfigurationOverrideDetails'] = cli_util.parse_json_parameter("job_node_configuration_override_details", job_node_configuration_override_details)
2998
+
1975
2999
  if freeform_tags is not None:
1976
3000
  _details['freeformTags'] = cli_util.parse_json_parameter("freeform_tags", freeform_tags)
1977
3001
 
1978
3002
  if defined_tags is not None:
1979
3003
  _details['definedTags'] = cli_util.parse_json_parameter("defined_tags", defined_tags)
1980
3004
 
1981
- if job_configuration_override_details_environment_variables is not None:
1982
- _details['jobConfigurationOverrideDetails']['environmentVariables'] = cli_util.parse_json_parameter("job_configuration_override_details_environment_variables", job_configuration_override_details_environment_variables)
1983
-
1984
- if job_configuration_override_details_command_line_arguments is not None:
1985
- _details['jobConfigurationOverrideDetails']['commandLineArguments'] = job_configuration_override_details_command_line_arguments
1986
-
1987
- if job_configuration_override_details_maximum_runtime_in_minutes is not None:
1988
- _details['jobConfigurationOverrideDetails']['maximumRuntimeInMinutes'] = job_configuration_override_details_maximum_runtime_in_minutes
3005
+ if job_infrastructure_configuration_override_details_job_shape_config_details is not None:
3006
+ _details['jobInfrastructureConfigurationOverrideDetails']['jobShapeConfigDetails'] = cli_util.parse_json_parameter("job_infrastructure_configuration_override_details_job_shape_config_details", job_infrastructure_configuration_override_details_job_shape_config_details)
1989
3007
 
1990
- _details['jobConfigurationOverrideDetails']['jobType'] = 'DEFAULT'
3008
+ _details['jobInfrastructureConfigurationOverrideDetails']['jobInfrastructureType'] = 'STANDALONE'
1991
3009
 
1992
3010
  client = cli_util.build_client('data_science', 'data_science', ctx)
1993
3011
  result = client.create_job_run(
@@ -2020,30 +3038,33 @@ def create_job_run_default_job_configuration_details(ctx, from_json, wait_for_st
2020
3038
  cli_util.render_response(result, ctx)
2021
3039
 
2022
3040
 
2023
- @job_run_group.command(name=cli_util.override('data_science.create_job_run_ocir_container_job_environment_configuration_details.command_name', 'create-job-run-ocir-container-job-environment-configuration-details'), help=u"""Creates a job run. \n[Command Reference](createJobRun)""")
3041
+ @job_run_group.command(name=cli_util.override('data_science.create_job_run_multi_node_job_node_configuration_details.command_name', 'create-job-run-multi-node-job-node-configuration-details'), help=u"""Creates a job run. \n[Command Reference](createJobRun)""")
2024
3042
  @cli_util.option('--project-id', required=True, help=u"""The [OCID] of the project to associate the job run with.""")
2025
3043
  @cli_util.option('--compartment-id', required=True, help=u"""The [OCID] of the compartment where you want to create the job run.""")
2026
3044
  @cli_util.option('--job-id', required=True, help=u"""The [OCID] of the job to create a run for.""")
2027
- @cli_util.option('--job-environment-configuration-override-details-image', required=True, help=u"""The full path to the Oracle Container Repository (OCIR) registry, image, and tag in a canonical format. Acceptable format: `<region>.ocir.io/<registry>/<image>:<tag>` `<region>.ocir.io/<registry>/<image>:<tag>@digest`""")
2028
3045
  @cli_util.option('--display-name', help=u"""A user-friendly display name for the resource.""")
2029
3046
  @cli_util.option('--job-configuration-override-details', type=custom_types.CLI_COMPLEX_TYPE, help=u"""""" + custom_types.cli_complex_type.COMPLEX_TYPE_HELP)
2030
3047
  @cli_util.option('--job-log-configuration-override-details', type=custom_types.CLI_COMPLEX_TYPE, help=u"""""" + custom_types.cli_complex_type.COMPLEX_TYPE_HELP)
3048
+ @cli_util.option('--job-environment-configuration-override-details', type=custom_types.CLI_COMPLEX_TYPE, help=u"""""" + custom_types.cli_complex_type.COMPLEX_TYPE_HELP)
3049
+ @cli_util.option('--job-infrastructure-configuration-override-details', type=custom_types.CLI_COMPLEX_TYPE, help=u"""""" + custom_types.cli_complex_type.COMPLEX_TYPE_HELP)
2031
3050
  @cli_util.option('--freeform-tags', type=custom_types.CLI_COMPLEX_TYPE, help=u"""Free-form tags for this resource. Each tag is a simple key-value pair with no predefined name, type, or namespace. See [Resource Tags]. Example: `{\"Department\": \"Finance\"}`""" + custom_types.cli_complex_type.COMPLEX_TYPE_HELP)
2032
3051
  @cli_util.option('--defined-tags', type=custom_types.CLI_COMPLEX_TYPE, help=u"""Defined tags for this resource. Each key is predefined and scoped to a namespace. See [Resource Tags]. Example: `{\"Operations\": {\"CostCenter\": \"42\"}}`""" + custom_types.cli_complex_type.COMPLEX_TYPE_HELP)
2033
3052
  @cli_util.option('--opc-parent-rpt-url', help=u"""URL to fetch the Resource Principal Token from the parent resource.""")
2034
- @cli_util.option('--job-environment-configuration-override-details-cmd', type=custom_types.CLI_COMPLEX_TYPE, help=u"""The container image run [CMD] as a list of strings. Use `CMD` as arguments to the `ENTRYPOINT` or the only command to run in the absence of an `ENTRYPOINT`. The combined size of `CMD` and `ENTRYPOINT` must be less than 2048 bytes.""" + custom_types.cli_complex_type.COMPLEX_TYPE_HELP)
2035
- @cli_util.option('--job-environment-configuration-override-details-entrypoint', type=custom_types.CLI_COMPLEX_TYPE, help=u"""The container image run [ENTRYPOINT] as a list of strings. Accept the `CMD` as extra arguments. The combined size of `CMD` and `ENTRYPOINT` must be less than 2048 bytes. More information on how `CMD` and `ENTRYPOINT` interact are [here].""" + custom_types.cli_complex_type.COMPLEX_TYPE_HELP)
2036
- @cli_util.option('--job-environment-configuration-override-details-image-digest', help=u"""The digest of the container image. For example, `sha256:881303a6b2738834d795a32b4a98eb0e5e3d1cad590a712d1e04f9b2fa90a030`""")
2037
- @cli_util.option('--job-environment-configuration-override-details-image-signature-id', help=u"""OCID of the container image signature""")
3053
+ @cli_util.option('--job-node-configuration-override-details-startup-order', type=custom_types.CliCaseInsensitiveChoice(["IN_ORDER", "IN_PARALLEL"]), help=u"""The execution order of node groups""")
3054
+ @cli_util.option('--job-node-configuration-override-details-maximum-runtime-in-minutes', type=click.INT, help=u"""A time bound for the execution of the job run. Timer starts when the job run is in progress.""")
3055
+ @cli_util.option('--job-node-configuration-override-details-job-network-configuration', type=custom_types.CLI_COMPLEX_TYPE, help=u"""""" + custom_types.cli_complex_type.COMPLEX_TYPE_HELP)
3056
+ @cli_util.option('--job-node-configuration-override-details-job-node-group-configuration-details-list', type=custom_types.CLI_COMPLEX_TYPE, help=u"""List of JobNodeGroupConfigurationDetails
3057
+
3058
+ This option is a JSON list with items of type JobNodeGroupConfigurationDetails. For documentation on JobNodeGroupConfigurationDetails please see our API reference: https://docs.cloud.oracle.com/api/#/en/datascience/20190101/datatypes/JobNodeGroupConfigurationDetails.""" + custom_types.cli_complex_type.COMPLEX_TYPE_HELP)
2038
3059
  @cli_util.option('--wait-for-state', type=custom_types.CliCaseInsensitiveChoice(["ACCEPTED", "IN_PROGRESS", "FAILED", "SUCCEEDED", "CANCELING", "CANCELED", "DELETED", "NEEDS_ATTENTION"]), multiple=True, help="""This operation creates, modifies or deletes a resource that has a defined lifecycle state. Specify this option to perform the action and then wait until the resource reaches a given lifecycle state. Multiple states can be specified, returning on the first state. For example, --wait-for-state SUCCEEDED --wait-for-state FAILED would return on whichever lifecycle state is reached first. If timeout is reached, a return code of 2 is returned. For any other error, a return code of 1 is returned.""")
2039
3060
  @cli_util.option('--max-wait-seconds', type=click.INT, help="""The maximum time to wait for the resource to reach the lifecycle state defined by --wait-for-state. Defaults to 1200 seconds.""")
2040
3061
  @cli_util.option('--wait-interval-seconds', type=click.INT, help="""Check every --wait-interval-seconds to see whether the resource has reached the lifecycle state defined by --wait-for-state. Defaults to 30 seconds.""")
2041
- @json_skeleton_utils.get_cli_json_input_option({'job-configuration-override-details': {'module': 'data_science', 'class': 'JobConfigurationDetails'}, 'job-log-configuration-override-details': {'module': 'data_science', 'class': 'JobLogConfigurationDetails'}, 'freeform-tags': {'module': 'data_science', 'class': 'dict(str, string)'}, 'defined-tags': {'module': 'data_science', 'class': 'dict(str, dict(str, object))'}, 'job-environment-configuration-override-details-cmd': {'module': 'data_science', 'class': 'list[string]'}, 'job-environment-configuration-override-details-entrypoint': {'module': 'data_science', 'class': 'list[string]'}})
3062
+ @json_skeleton_utils.get_cli_json_input_option({'job-configuration-override-details': {'module': 'data_science', 'class': 'JobConfigurationDetails'}, 'job-log-configuration-override-details': {'module': 'data_science', 'class': 'JobLogConfigurationDetails'}, 'job-environment-configuration-override-details': {'module': 'data_science', 'class': 'JobEnvironmentConfigurationDetails'}, 'job-infrastructure-configuration-override-details': {'module': 'data_science', 'class': 'JobInfrastructureConfigurationDetails'}, 'freeform-tags': {'module': 'data_science', 'class': 'dict(str, string)'}, 'defined-tags': {'module': 'data_science', 'class': 'dict(str, dict(str, object))'}, 'job-node-configuration-override-details-job-network-configuration': {'module': 'data_science', 'class': 'JobNetworkConfiguration'}, 'job-node-configuration-override-details-job-node-group-configuration-details-list': {'module': 'data_science', 'class': 'list[JobNodeGroupConfigurationDetails]'}})
2042
3063
  @cli_util.help_option
2043
3064
  @click.pass_context
2044
- @json_skeleton_utils.json_skeleton_generation_handler(input_params_to_complex_types={'job-configuration-override-details': {'module': 'data_science', 'class': 'JobConfigurationDetails'}, 'job-log-configuration-override-details': {'module': 'data_science', 'class': 'JobLogConfigurationDetails'}, 'freeform-tags': {'module': 'data_science', 'class': 'dict(str, string)'}, 'defined-tags': {'module': 'data_science', 'class': 'dict(str, dict(str, object))'}, 'job-environment-configuration-override-details-cmd': {'module': 'data_science', 'class': 'list[string]'}, 'job-environment-configuration-override-details-entrypoint': {'module': 'data_science', 'class': 'list[string]'}}, output_type={'module': 'data_science', 'class': 'JobRun'})
3065
+ @json_skeleton_utils.json_skeleton_generation_handler(input_params_to_complex_types={'job-configuration-override-details': {'module': 'data_science', 'class': 'JobConfigurationDetails'}, 'job-log-configuration-override-details': {'module': 'data_science', 'class': 'JobLogConfigurationDetails'}, 'job-environment-configuration-override-details': {'module': 'data_science', 'class': 'JobEnvironmentConfigurationDetails'}, 'job-infrastructure-configuration-override-details': {'module': 'data_science', 'class': 'JobInfrastructureConfigurationDetails'}, 'freeform-tags': {'module': 'data_science', 'class': 'dict(str, string)'}, 'defined-tags': {'module': 'data_science', 'class': 'dict(str, dict(str, object))'}, 'job-node-configuration-override-details-job-network-configuration': {'module': 'data_science', 'class': 'JobNetworkConfiguration'}, 'job-node-configuration-override-details-job-node-group-configuration-details-list': {'module': 'data_science', 'class': 'list[JobNodeGroupConfigurationDetails]'}}, output_type={'module': 'data_science', 'class': 'JobRun'})
2045
3066
  @cli_util.wrap_exceptions
2046
- def create_job_run_ocir_container_job_environment_configuration_details(ctx, from_json, wait_for_state, max_wait_seconds, wait_interval_seconds, project_id, compartment_id, job_id, job_environment_configuration_override_details_image, display_name, job_configuration_override_details, job_log_configuration_override_details, freeform_tags, defined_tags, opc_parent_rpt_url, job_environment_configuration_override_details_cmd, job_environment_configuration_override_details_entrypoint, job_environment_configuration_override_details_image_digest, job_environment_configuration_override_details_image_signature_id):
3067
+ def create_job_run_multi_node_job_node_configuration_details(ctx, from_json, wait_for_state, max_wait_seconds, wait_interval_seconds, project_id, compartment_id, job_id, display_name, job_configuration_override_details, job_log_configuration_override_details, job_environment_configuration_override_details, job_infrastructure_configuration_override_details, freeform_tags, defined_tags, opc_parent_rpt_url, job_node_configuration_override_details_startup_order, job_node_configuration_override_details_maximum_runtime_in_minutes, job_node_configuration_override_details_job_network_configuration, job_node_configuration_override_details_job_node_group_configuration_details_list):
2047
3068
 
2048
3069
  kwargs = {}
2049
3070
  if opc_parent_rpt_url is not None:
@@ -2051,11 +3072,10 @@ def create_job_run_ocir_container_job_environment_configuration_details(ctx, fro
2051
3072
  kwargs['opc_request_id'] = cli_util.use_or_generate_request_id(ctx.obj['request_id'])
2052
3073
 
2053
3074
  _details = {}
2054
- _details['jobEnvironmentConfigurationOverrideDetails'] = {}
3075
+ _details['jobNodeConfigurationOverrideDetails'] = {}
2055
3076
  _details['projectId'] = project_id
2056
3077
  _details['compartmentId'] = compartment_id
2057
3078
  _details['jobId'] = job_id
2058
- _details['jobEnvironmentConfigurationOverrideDetails']['image'] = job_environment_configuration_override_details_image
2059
3079
 
2060
3080
  if display_name is not None:
2061
3081
  _details['displayName'] = display_name
@@ -2066,25 +3086,31 @@ def create_job_run_ocir_container_job_environment_configuration_details(ctx, fro
2066
3086
  if job_log_configuration_override_details is not None:
2067
3087
  _details['jobLogConfigurationOverrideDetails'] = cli_util.parse_json_parameter("job_log_configuration_override_details", job_log_configuration_override_details)
2068
3088
 
3089
+ if job_environment_configuration_override_details is not None:
3090
+ _details['jobEnvironmentConfigurationOverrideDetails'] = cli_util.parse_json_parameter("job_environment_configuration_override_details", job_environment_configuration_override_details)
3091
+
3092
+ if job_infrastructure_configuration_override_details is not None:
3093
+ _details['jobInfrastructureConfigurationOverrideDetails'] = cli_util.parse_json_parameter("job_infrastructure_configuration_override_details", job_infrastructure_configuration_override_details)
3094
+
2069
3095
  if freeform_tags is not None:
2070
3096
  _details['freeformTags'] = cli_util.parse_json_parameter("freeform_tags", freeform_tags)
2071
3097
 
2072
3098
  if defined_tags is not None:
2073
3099
  _details['definedTags'] = cli_util.parse_json_parameter("defined_tags", defined_tags)
2074
3100
 
2075
- if job_environment_configuration_override_details_cmd is not None:
2076
- _details['jobEnvironmentConfigurationOverrideDetails']['cmd'] = cli_util.parse_json_parameter("job_environment_configuration_override_details_cmd", job_environment_configuration_override_details_cmd)
3101
+ if job_node_configuration_override_details_startup_order is not None:
3102
+ _details['jobNodeConfigurationOverrideDetails']['startupOrder'] = job_node_configuration_override_details_startup_order
2077
3103
 
2078
- if job_environment_configuration_override_details_entrypoint is not None:
2079
- _details['jobEnvironmentConfigurationOverrideDetails']['entrypoint'] = cli_util.parse_json_parameter("job_environment_configuration_override_details_entrypoint", job_environment_configuration_override_details_entrypoint)
3104
+ if job_node_configuration_override_details_maximum_runtime_in_minutes is not None:
3105
+ _details['jobNodeConfigurationOverrideDetails']['maximumRuntimeInMinutes'] = job_node_configuration_override_details_maximum_runtime_in_minutes
2080
3106
 
2081
- if job_environment_configuration_override_details_image_digest is not None:
2082
- _details['jobEnvironmentConfigurationOverrideDetails']['imageDigest'] = job_environment_configuration_override_details_image_digest
3107
+ if job_node_configuration_override_details_job_network_configuration is not None:
3108
+ _details['jobNodeConfigurationOverrideDetails']['jobNetworkConfiguration'] = cli_util.parse_json_parameter("job_node_configuration_override_details_job_network_configuration", job_node_configuration_override_details_job_network_configuration)
2083
3109
 
2084
- if job_environment_configuration_override_details_image_signature_id is not None:
2085
- _details['jobEnvironmentConfigurationOverrideDetails']['imageSignatureId'] = job_environment_configuration_override_details_image_signature_id
3110
+ if job_node_configuration_override_details_job_node_group_configuration_details_list is not None:
3111
+ _details['jobNodeConfigurationOverrideDetails']['jobNodeGroupConfigurationDetailsList'] = cli_util.parse_json_parameter("job_node_configuration_override_details_job_node_group_configuration_details_list", job_node_configuration_override_details_job_node_group_configuration_details_list)
2086
3112
 
2087
- _details['jobEnvironmentConfigurationOverrideDetails']['jobEnvironmentType'] = 'OCIR_CONTAINER'
3113
+ _details['jobNodeConfigurationOverrideDetails']['jobNodeType'] = 'MULTI_NODE'
2088
3114
 
2089
3115
  client = cli_util.build_client('data_science', 'data_science', ctx)
2090
3116
  result = client.create_job_run(
@@ -3773,6 +4799,7 @@ def create_pipeline_pipeline_default_configuration_details(ctx, from_json, wait_
3773
4799
  @cli_util.option('--display-name', help=u"""A user-friendly display name for the resource.""")
3774
4800
  @cli_util.option('--configuration-override-details', type=custom_types.CLI_COMPLEX_TYPE, help=u"""""" + custom_types.cli_complex_type.COMPLEX_TYPE_HELP)
3775
4801
  @cli_util.option('--log-configuration-override-details', type=custom_types.CLI_COMPLEX_TYPE, help=u"""""" + custom_types.cli_complex_type.COMPLEX_TYPE_HELP)
4802
+ @cli_util.option('--infrastructure-configuration-override-details', type=custom_types.CLI_COMPLEX_TYPE, help=u"""""" + custom_types.cli_complex_type.COMPLEX_TYPE_HELP)
3776
4803
  @cli_util.option('--step-override-details', type=custom_types.CLI_COMPLEX_TYPE, help=u"""Array of step override details. Only Step Configuration is allowed to be overridden.
3777
4804
 
3778
4805
  This option is a JSON list with items of type PipelineStepOverrideDetails. For documentation on PipelineStepOverrideDetails please see our API reference: https://docs.cloud.oracle.com/api/#/en/datascience/20190101/datatypes/PipelineStepOverrideDetails.""" + custom_types.cli_complex_type.COMPLEX_TYPE_HELP)
@@ -3783,12 +4810,12 @@ This option is a JSON list with items of type PipelineStepOverrideDetails. For
3783
4810
  @cli_util.option('--wait-for-state', type=custom_types.CliCaseInsensitiveChoice(["ACCEPTED", "IN_PROGRESS", "FAILED", "SUCCEEDED", "CANCELING", "CANCELED", "DELETING", "DELETED"]), multiple=True, help="""This operation creates, modifies or deletes a resource that has a defined lifecycle state. Specify this option to perform the action and then wait until the resource reaches a given lifecycle state. Multiple states can be specified, returning on the first state. For example, --wait-for-state SUCCEEDED --wait-for-state FAILED would return on whichever lifecycle state is reached first. If timeout is reached, a return code of 2 is returned. For any other error, a return code of 1 is returned.""")
3784
4811
  @cli_util.option('--max-wait-seconds', type=click.INT, help="""The maximum time to wait for the resource to reach the lifecycle state defined by --wait-for-state. Defaults to 1200 seconds.""")
3785
4812
  @cli_util.option('--wait-interval-seconds', type=click.INT, help="""Check every --wait-interval-seconds to see whether the resource has reached the lifecycle state defined by --wait-for-state. Defaults to 30 seconds.""")
3786
- @json_skeleton_utils.get_cli_json_input_option({'configuration-override-details': {'module': 'data_science', 'class': 'PipelineConfigurationDetails'}, 'log-configuration-override-details': {'module': 'data_science', 'class': 'PipelineLogConfigurationDetails'}, 'step-override-details': {'module': 'data_science', 'class': 'list[PipelineStepOverrideDetails]'}, 'freeform-tags': {'module': 'data_science', 'class': 'dict(str, string)'}, 'defined-tags': {'module': 'data_science', 'class': 'dict(str, dict(str, object))'}, 'system-tags': {'module': 'data_science', 'class': 'dict(str, dict(str, object))'}})
4813
+ @json_skeleton_utils.get_cli_json_input_option({'configuration-override-details': {'module': 'data_science', 'class': 'PipelineConfigurationDetails'}, 'log-configuration-override-details': {'module': 'data_science', 'class': 'PipelineLogConfigurationDetails'}, 'infrastructure-configuration-override-details': {'module': 'data_science', 'class': 'PipelineInfrastructureConfigurationDetails'}, 'step-override-details': {'module': 'data_science', 'class': 'list[PipelineStepOverrideDetails]'}, 'freeform-tags': {'module': 'data_science', 'class': 'dict(str, string)'}, 'defined-tags': {'module': 'data_science', 'class': 'dict(str, dict(str, object))'}, 'system-tags': {'module': 'data_science', 'class': 'dict(str, dict(str, object))'}})
3787
4814
  @cli_util.help_option
3788
4815
  @click.pass_context
3789
- @json_skeleton_utils.json_skeleton_generation_handler(input_params_to_complex_types={'configuration-override-details': {'module': 'data_science', 'class': 'PipelineConfigurationDetails'}, 'log-configuration-override-details': {'module': 'data_science', 'class': 'PipelineLogConfigurationDetails'}, 'step-override-details': {'module': 'data_science', 'class': 'list[PipelineStepOverrideDetails]'}, 'freeform-tags': {'module': 'data_science', 'class': 'dict(str, string)'}, 'defined-tags': {'module': 'data_science', 'class': 'dict(str, dict(str, object))'}, 'system-tags': {'module': 'data_science', 'class': 'dict(str, dict(str, object))'}}, output_type={'module': 'data_science', 'class': 'PipelineRun'})
4816
+ @json_skeleton_utils.json_skeleton_generation_handler(input_params_to_complex_types={'configuration-override-details': {'module': 'data_science', 'class': 'PipelineConfigurationDetails'}, 'log-configuration-override-details': {'module': 'data_science', 'class': 'PipelineLogConfigurationDetails'}, 'infrastructure-configuration-override-details': {'module': 'data_science', 'class': 'PipelineInfrastructureConfigurationDetails'}, 'step-override-details': {'module': 'data_science', 'class': 'list[PipelineStepOverrideDetails]'}, 'freeform-tags': {'module': 'data_science', 'class': 'dict(str, string)'}, 'defined-tags': {'module': 'data_science', 'class': 'dict(str, dict(str, object))'}, 'system-tags': {'module': 'data_science', 'class': 'dict(str, dict(str, object))'}}, output_type={'module': 'data_science', 'class': 'PipelineRun'})
3790
4817
  @cli_util.wrap_exceptions
3791
- def create_pipeline_run(ctx, from_json, wait_for_state, max_wait_seconds, wait_interval_seconds, compartment_id, pipeline_id, project_id, display_name, configuration_override_details, log_configuration_override_details, step_override_details, freeform_tags, defined_tags, system_tags, opc_parent_rpt_url):
4818
+ def create_pipeline_run(ctx, from_json, wait_for_state, max_wait_seconds, wait_interval_seconds, compartment_id, pipeline_id, project_id, display_name, configuration_override_details, log_configuration_override_details, infrastructure_configuration_override_details, step_override_details, freeform_tags, defined_tags, system_tags, opc_parent_rpt_url):
3792
4819
 
3793
4820
  kwargs = {}
3794
4821
  if opc_parent_rpt_url is not None:
@@ -3811,6 +4838,9 @@ def create_pipeline_run(ctx, from_json, wait_for_state, max_wait_seconds, wait_i
3811
4838
  if log_configuration_override_details is not None:
3812
4839
  _details['logConfigurationOverrideDetails'] = cli_util.parse_json_parameter("log_configuration_override_details", log_configuration_override_details)
3813
4840
 
4841
+ if infrastructure_configuration_override_details is not None:
4842
+ _details['infrastructureConfigurationOverrideDetails'] = cli_util.parse_json_parameter("infrastructure_configuration_override_details", infrastructure_configuration_override_details)
4843
+
3814
4844
  if step_override_details is not None:
3815
4845
  _details['stepOverrideDetails'] = cli_util.parse_json_parameter("step_override_details", step_override_details)
3816
4846
 
@@ -3860,6 +4890,7 @@ def create_pipeline_run(ctx, from_json, wait_for_state, max_wait_seconds, wait_i
3860
4890
  @cli_util.option('--project-id', help=u"""The [OCID] of the project to associate the pipeline run with.""")
3861
4891
  @cli_util.option('--display-name', help=u"""A user-friendly display name for the resource.""")
3862
4892
  @cli_util.option('--log-configuration-override-details', type=custom_types.CLI_COMPLEX_TYPE, help=u"""""" + custom_types.cli_complex_type.COMPLEX_TYPE_HELP)
4893
+ @cli_util.option('--infrastructure-configuration-override-details', type=custom_types.CLI_COMPLEX_TYPE, help=u"""""" + custom_types.cli_complex_type.COMPLEX_TYPE_HELP)
3863
4894
  @cli_util.option('--step-override-details', type=custom_types.CLI_COMPLEX_TYPE, help=u"""Array of step override details. Only Step Configuration is allowed to be overridden.
3864
4895
 
3865
4896
  This option is a JSON list with items of type PipelineStepOverrideDetails. For documentation on PipelineStepOverrideDetails please see our API reference: https://docs.cloud.oracle.com/api/#/en/datascience/20190101/datatypes/PipelineStepOverrideDetails.""" + custom_types.cli_complex_type.COMPLEX_TYPE_HELP)
@@ -3873,12 +4904,12 @@ This option is a JSON list with items of type PipelineStepOverrideDetails. For
3873
4904
  @cli_util.option('--wait-for-state', type=custom_types.CliCaseInsensitiveChoice(["ACCEPTED", "IN_PROGRESS", "FAILED", "SUCCEEDED", "CANCELING", "CANCELED", "DELETING", "DELETED"]), multiple=True, help="""This operation creates, modifies or deletes a resource that has a defined lifecycle state. Specify this option to perform the action and then wait until the resource reaches a given lifecycle state. Multiple states can be specified, returning on the first state. For example, --wait-for-state SUCCEEDED --wait-for-state FAILED would return on whichever lifecycle state is reached first. If timeout is reached, a return code of 2 is returned. For any other error, a return code of 1 is returned.""")
3874
4905
  @cli_util.option('--max-wait-seconds', type=click.INT, help="""The maximum time to wait for the resource to reach the lifecycle state defined by --wait-for-state. Defaults to 1200 seconds.""")
3875
4906
  @cli_util.option('--wait-interval-seconds', type=click.INT, help="""Check every --wait-interval-seconds to see whether the resource has reached the lifecycle state defined by --wait-for-state. Defaults to 30 seconds.""")
3876
- @json_skeleton_utils.get_cli_json_input_option({'log-configuration-override-details': {'module': 'data_science', 'class': 'PipelineLogConfigurationDetails'}, 'step-override-details': {'module': 'data_science', 'class': 'list[PipelineStepOverrideDetails]'}, 'freeform-tags': {'module': 'data_science', 'class': 'dict(str, string)'}, 'defined-tags': {'module': 'data_science', 'class': 'dict(str, dict(str, object))'}, 'system-tags': {'module': 'data_science', 'class': 'dict(str, dict(str, object))'}, 'configuration-override-details-environment-variables': {'module': 'data_science', 'class': 'dict(str, string)'}})
4907
+ @json_skeleton_utils.get_cli_json_input_option({'log-configuration-override-details': {'module': 'data_science', 'class': 'PipelineLogConfigurationDetails'}, 'infrastructure-configuration-override-details': {'module': 'data_science', 'class': 'PipelineInfrastructureConfigurationDetails'}, 'step-override-details': {'module': 'data_science', 'class': 'list[PipelineStepOverrideDetails]'}, 'freeform-tags': {'module': 'data_science', 'class': 'dict(str, string)'}, 'defined-tags': {'module': 'data_science', 'class': 'dict(str, dict(str, object))'}, 'system-tags': {'module': 'data_science', 'class': 'dict(str, dict(str, object))'}, 'configuration-override-details-environment-variables': {'module': 'data_science', 'class': 'dict(str, string)'}})
3877
4908
  @cli_util.help_option
3878
4909
  @click.pass_context
3879
- @json_skeleton_utils.json_skeleton_generation_handler(input_params_to_complex_types={'log-configuration-override-details': {'module': 'data_science', 'class': 'PipelineLogConfigurationDetails'}, 'step-override-details': {'module': 'data_science', 'class': 'list[PipelineStepOverrideDetails]'}, 'freeform-tags': {'module': 'data_science', 'class': 'dict(str, string)'}, 'defined-tags': {'module': 'data_science', 'class': 'dict(str, dict(str, object))'}, 'system-tags': {'module': 'data_science', 'class': 'dict(str, dict(str, object))'}, 'configuration-override-details-environment-variables': {'module': 'data_science', 'class': 'dict(str, string)'}}, output_type={'module': 'data_science', 'class': 'PipelineRun'})
4910
+ @json_skeleton_utils.json_skeleton_generation_handler(input_params_to_complex_types={'log-configuration-override-details': {'module': 'data_science', 'class': 'PipelineLogConfigurationDetails'}, 'infrastructure-configuration-override-details': {'module': 'data_science', 'class': 'PipelineInfrastructureConfigurationDetails'}, 'step-override-details': {'module': 'data_science', 'class': 'list[PipelineStepOverrideDetails]'}, 'freeform-tags': {'module': 'data_science', 'class': 'dict(str, string)'}, 'defined-tags': {'module': 'data_science', 'class': 'dict(str, dict(str, object))'}, 'system-tags': {'module': 'data_science', 'class': 'dict(str, dict(str, object))'}, 'configuration-override-details-environment-variables': {'module': 'data_science', 'class': 'dict(str, string)'}}, output_type={'module': 'data_science', 'class': 'PipelineRun'})
3880
4911
  @cli_util.wrap_exceptions
3881
- def create_pipeline_run_pipeline_default_configuration_details(ctx, from_json, wait_for_state, max_wait_seconds, wait_interval_seconds, compartment_id, pipeline_id, project_id, display_name, log_configuration_override_details, step_override_details, freeform_tags, defined_tags, system_tags, opc_parent_rpt_url, configuration_override_details_maximum_runtime_in_minutes, configuration_override_details_environment_variables, configuration_override_details_command_line_arguments):
4912
+ def create_pipeline_run_pipeline_default_configuration_details(ctx, from_json, wait_for_state, max_wait_seconds, wait_interval_seconds, compartment_id, pipeline_id, project_id, display_name, log_configuration_override_details, infrastructure_configuration_override_details, step_override_details, freeform_tags, defined_tags, system_tags, opc_parent_rpt_url, configuration_override_details_maximum_runtime_in_minutes, configuration_override_details_environment_variables, configuration_override_details_command_line_arguments):
3882
4913
 
3883
4914
  kwargs = {}
3884
4915
  if opc_parent_rpt_url is not None:
@@ -3899,6 +4930,9 @@ def create_pipeline_run_pipeline_default_configuration_details(ctx, from_json, w
3899
4930
  if log_configuration_override_details is not None:
3900
4931
  _details['logConfigurationOverrideDetails'] = cli_util.parse_json_parameter("log_configuration_override_details", log_configuration_override_details)
3901
4932
 
4933
+ if infrastructure_configuration_override_details is not None:
4934
+ _details['infrastructureConfigurationOverrideDetails'] = cli_util.parse_json_parameter("infrastructure_configuration_override_details", infrastructure_configuration_override_details)
4935
+
3902
4936
  if step_override_details is not None:
3903
4937
  _details['stepOverrideDetails'] = cli_util.parse_json_parameter("step_override_details", step_override_details)
3904
4938
 
@@ -9565,6 +10599,184 @@ def update_job(ctx, from_json, force, wait_for_state, max_wait_seconds, wait_int
9565
10599
  cli_util.render_response(result, ctx)
9566
10600
 
9567
10601
 
10602
+ @job_group.command(name=cli_util.override('data_science.update_job_multi_node_job_infrastructure_configuration_details.command_name', 'update-job-multi-node-job-infrastructure-configuration-details'), help=u"""Updates a job. \n[Command Reference](updateJob)""")
10603
+ @cli_util.option('--job-id', required=True, help=u"""The [OCID] of the job.""")
10604
+ @cli_util.option('--job-infrastructure-configuration-details-shape-name', required=True, help=u"""The name that corresponds to the JobShapeSummary to use for the job node""")
10605
+ @cli_util.option('--job-infrastructure-configuration-details-block-storage-size-in-gbs', required=True, type=click.INT, help=u"""The size of the block storage volume to attach to the instance running the job""")
10606
+ @cli_util.option('--display-name', help=u"""A user-friendly display name for the resource.""")
10607
+ @cli_util.option('--description', help=u"""A short description of the job.""")
10608
+ @cli_util.option('--job-storage-mount-configuration-details-list', type=custom_types.CLI_COMPLEX_TYPE, help=u"""Collection of JobStorageMountConfigurationDetails.
10609
+
10610
+ This option is a JSON list with items of type StorageMountConfigurationDetails. For documentation on StorageMountConfigurationDetails please see our API reference: https://docs.cloud.oracle.com/api/#/en/datascience/20190101/datatypes/StorageMountConfigurationDetails.""" + custom_types.cli_complex_type.COMPLEX_TYPE_HELP)
10611
+ @cli_util.option('--freeform-tags', type=custom_types.CLI_COMPLEX_TYPE, help=u"""Free-form tags for this resource. Each tag is a simple key-value pair with no predefined name, type, or namespace. See [Resource Tags]. Example: `{\"Department\": \"Finance\"}`""" + custom_types.cli_complex_type.COMPLEX_TYPE_HELP)
10612
+ @cli_util.option('--defined-tags', type=custom_types.CLI_COMPLEX_TYPE, help=u"""Defined tags for this resource. Each key is predefined and scoped to a namespace. See [Resource Tags]. Example: `{\"Operations\": {\"CostCenter\": \"42\"}}`""" + custom_types.cli_complex_type.COMPLEX_TYPE_HELP)
10613
+ @cli_util.option('--if-match', help=u"""For optimistic concurrency control. In the PUT or DELETE call for a resource, set the `if-match` parameter to the value of the etag from a previous GET or POST response for that resource. The resource is updated or deleted only if the `etag` you provide matches the resource's current `etag` value.""")
10614
+ @cli_util.option('--job-infrastructure-configuration-details-job-shape-config-details', type=custom_types.CLI_COMPLEX_TYPE, help=u"""""" + custom_types.cli_complex_type.COMPLEX_TYPE_HELP)
10615
+ @cli_util.option('--force', help="""Perform update without prompting for confirmation.""", is_flag=True)
10616
+ @cli_util.option('--wait-for-state', type=custom_types.CliCaseInsensitiveChoice(["CREATING", "ACTIVE", "DELETING", "FAILED", "DELETED"]), multiple=True, help="""This operation creates, modifies or deletes a resource that has a defined lifecycle state. Specify this option to perform the action and then wait until the resource reaches a given lifecycle state. Multiple states can be specified, returning on the first state. For example, --wait-for-state SUCCEEDED --wait-for-state FAILED would return on whichever lifecycle state is reached first. If timeout is reached, a return code of 2 is returned. For any other error, a return code of 1 is returned.""")
10617
+ @cli_util.option('--max-wait-seconds', type=click.INT, help="""The maximum time to wait for the resource to reach the lifecycle state defined by --wait-for-state. Defaults to 1200 seconds.""")
10618
+ @cli_util.option('--wait-interval-seconds', type=click.INT, help="""Check every --wait-interval-seconds to see whether the resource has reached the lifecycle state defined by --wait-for-state. Defaults to 30 seconds.""")
10619
+ @json_skeleton_utils.get_cli_json_input_option({'job-storage-mount-configuration-details-list': {'module': 'data_science', 'class': 'list[StorageMountConfigurationDetails]'}, 'freeform-tags': {'module': 'data_science', 'class': 'dict(str, string)'}, 'defined-tags': {'module': 'data_science', 'class': 'dict(str, dict(str, object))'}, 'job-infrastructure-configuration-details-job-shape-config-details': {'module': 'data_science', 'class': 'JobShapeConfigDetails'}})
10620
+ @cli_util.help_option
10621
+ @click.pass_context
10622
+ @json_skeleton_utils.json_skeleton_generation_handler(input_params_to_complex_types={'job-storage-mount-configuration-details-list': {'module': 'data_science', 'class': 'list[StorageMountConfigurationDetails]'}, 'freeform-tags': {'module': 'data_science', 'class': 'dict(str, string)'}, 'defined-tags': {'module': 'data_science', 'class': 'dict(str, dict(str, object))'}, 'job-infrastructure-configuration-details-job-shape-config-details': {'module': 'data_science', 'class': 'JobShapeConfigDetails'}}, output_type={'module': 'data_science', 'class': 'Job'})
10623
+ @cli_util.wrap_exceptions
10624
+ def update_job_multi_node_job_infrastructure_configuration_details(ctx, from_json, force, wait_for_state, max_wait_seconds, wait_interval_seconds, job_id, job_infrastructure_configuration_details_shape_name, job_infrastructure_configuration_details_block_storage_size_in_gbs, display_name, description, job_storage_mount_configuration_details_list, freeform_tags, defined_tags, if_match, job_infrastructure_configuration_details_job_shape_config_details):
10625
+
10626
+ if isinstance(job_id, six.string_types) and len(job_id.strip()) == 0:
10627
+ raise click.UsageError('Parameter --job-id cannot be whitespace or empty string')
10628
+ if not force:
10629
+ if job_storage_mount_configuration_details_list or freeform_tags or defined_tags:
10630
+ if not click.confirm("WARNING: Updates to job-storage-mount-configuration-details-list and freeform-tags and defined-tags will replace any existing values. Are you sure you want to continue?"):
10631
+ ctx.abort()
10632
+
10633
+ kwargs = {}
10634
+ if if_match is not None:
10635
+ kwargs['if_match'] = if_match
10636
+ kwargs['opc_request_id'] = cli_util.use_or_generate_request_id(ctx.obj['request_id'])
10637
+
10638
+ _details = {}
10639
+ _details['jobInfrastructureConfigurationDetails'] = {}
10640
+ _details['jobInfrastructureConfigurationDetails']['shapeName'] = job_infrastructure_configuration_details_shape_name
10641
+ _details['jobInfrastructureConfigurationDetails']['blockStorageSizeInGBs'] = job_infrastructure_configuration_details_block_storage_size_in_gbs
10642
+
10643
+ if display_name is not None:
10644
+ _details['displayName'] = display_name
10645
+
10646
+ if description is not None:
10647
+ _details['description'] = description
10648
+
10649
+ if job_storage_mount_configuration_details_list is not None:
10650
+ _details['jobStorageMountConfigurationDetailsList'] = cli_util.parse_json_parameter("job_storage_mount_configuration_details_list", job_storage_mount_configuration_details_list)
10651
+
10652
+ if freeform_tags is not None:
10653
+ _details['freeformTags'] = cli_util.parse_json_parameter("freeform_tags", freeform_tags)
10654
+
10655
+ if defined_tags is not None:
10656
+ _details['definedTags'] = cli_util.parse_json_parameter("defined_tags", defined_tags)
10657
+
10658
+ if job_infrastructure_configuration_details_job_shape_config_details is not None:
10659
+ _details['jobInfrastructureConfigurationDetails']['jobShapeConfigDetails'] = cli_util.parse_json_parameter("job_infrastructure_configuration_details_job_shape_config_details", job_infrastructure_configuration_details_job_shape_config_details)
10660
+
10661
+ _details['jobInfrastructureConfigurationDetails']['jobInfrastructureType'] = 'MULTI_NODE'
10662
+
10663
+ client = cli_util.build_client('data_science', 'data_science', ctx)
10664
+ result = client.update_job(
10665
+ job_id=job_id,
10666
+ update_job_details=_details,
10667
+ **kwargs
10668
+ )
10669
+ if wait_for_state:
10670
+
10671
+ if hasattr(client, 'get_job') and callable(getattr(client, 'get_job')):
10672
+ try:
10673
+ wait_period_kwargs = {}
10674
+ if max_wait_seconds is not None:
10675
+ wait_period_kwargs['max_wait_seconds'] = max_wait_seconds
10676
+ if wait_interval_seconds is not None:
10677
+ wait_period_kwargs['max_interval_seconds'] = wait_interval_seconds
10678
+
10679
+ click.echo('Action completed. Waiting until the resource has entered state: {}'.format(wait_for_state), file=sys.stderr)
10680
+ result = oci.wait_until(client, client.get_job(result.data.id), 'lifecycle_state', wait_for_state, **wait_period_kwargs)
10681
+ except oci.exceptions.MaximumWaitTimeExceeded as e:
10682
+ # If we fail, we should show an error, but we should still provide the information to the customer
10683
+ click.echo('Failed to wait until the resource entered the specified state. Outputting last known resource state', file=sys.stderr)
10684
+ cli_util.render_response(result, ctx)
10685
+ sys.exit(2)
10686
+ except Exception:
10687
+ click.echo('Encountered error while waiting for resource to enter the specified state. Outputting last known resource state', file=sys.stderr)
10688
+ cli_util.render_response(result, ctx)
10689
+ raise
10690
+ else:
10691
+ click.echo('Unable to wait for the resource to enter the specified state', file=sys.stderr)
10692
+ cli_util.render_response(result, ctx)
10693
+
10694
+
10695
+ @job_group.command(name=cli_util.override('data_science.update_job_empty_job_infrastructure_configuration_details.command_name', 'update-job-empty-job-infrastructure-configuration-details'), help=u"""Updates a job. \n[Command Reference](updateJob)""")
10696
+ @cli_util.option('--job-id', required=True, help=u"""The [OCID] of the job.""")
10697
+ @cli_util.option('--display-name', help=u"""A user-friendly display name for the resource.""")
10698
+ @cli_util.option('--description', help=u"""A short description of the job.""")
10699
+ @cli_util.option('--job-storage-mount-configuration-details-list', type=custom_types.CLI_COMPLEX_TYPE, help=u"""Collection of JobStorageMountConfigurationDetails.
10700
+
10701
+ This option is a JSON list with items of type StorageMountConfigurationDetails. For documentation on StorageMountConfigurationDetails please see our API reference: https://docs.cloud.oracle.com/api/#/en/datascience/20190101/datatypes/StorageMountConfigurationDetails.""" + custom_types.cli_complex_type.COMPLEX_TYPE_HELP)
10702
+ @cli_util.option('--freeform-tags', type=custom_types.CLI_COMPLEX_TYPE, help=u"""Free-form tags for this resource. Each tag is a simple key-value pair with no predefined name, type, or namespace. See [Resource Tags]. Example: `{\"Department\": \"Finance\"}`""" + custom_types.cli_complex_type.COMPLEX_TYPE_HELP)
10703
+ @cli_util.option('--defined-tags', type=custom_types.CLI_COMPLEX_TYPE, help=u"""Defined tags for this resource. Each key is predefined and scoped to a namespace. See [Resource Tags]. Example: `{\"Operations\": {\"CostCenter\": \"42\"}}`""" + custom_types.cli_complex_type.COMPLEX_TYPE_HELP)
10704
+ @cli_util.option('--if-match', help=u"""For optimistic concurrency control. In the PUT or DELETE call for a resource, set the `if-match` parameter to the value of the etag from a previous GET or POST response for that resource. The resource is updated or deleted only if the `etag` you provide matches the resource's current `etag` value.""")
10705
+ @cli_util.option('--force', help="""Perform update without prompting for confirmation.""", is_flag=True)
10706
+ @cli_util.option('--wait-for-state', type=custom_types.CliCaseInsensitiveChoice(["CREATING", "ACTIVE", "DELETING", "FAILED", "DELETED"]), multiple=True, help="""This operation creates, modifies or deletes a resource that has a defined lifecycle state. Specify this option to perform the action and then wait until the resource reaches a given lifecycle state. Multiple states can be specified, returning on the first state. For example, --wait-for-state SUCCEEDED --wait-for-state FAILED would return on whichever lifecycle state is reached first. If timeout is reached, a return code of 2 is returned. For any other error, a return code of 1 is returned.""")
10707
+ @cli_util.option('--max-wait-seconds', type=click.INT, help="""The maximum time to wait for the resource to reach the lifecycle state defined by --wait-for-state. Defaults to 1200 seconds.""")
10708
+ @cli_util.option('--wait-interval-seconds', type=click.INT, help="""Check every --wait-interval-seconds to see whether the resource has reached the lifecycle state defined by --wait-for-state. Defaults to 30 seconds.""")
10709
+ @json_skeleton_utils.get_cli_json_input_option({'job-storage-mount-configuration-details-list': {'module': 'data_science', 'class': 'list[StorageMountConfigurationDetails]'}, 'freeform-tags': {'module': 'data_science', 'class': 'dict(str, string)'}, 'defined-tags': {'module': 'data_science', 'class': 'dict(str, dict(str, object))'}})
10710
+ @cli_util.help_option
10711
+ @click.pass_context
10712
+ @json_skeleton_utils.json_skeleton_generation_handler(input_params_to_complex_types={'job-storage-mount-configuration-details-list': {'module': 'data_science', 'class': 'list[StorageMountConfigurationDetails]'}, 'freeform-tags': {'module': 'data_science', 'class': 'dict(str, string)'}, 'defined-tags': {'module': 'data_science', 'class': 'dict(str, dict(str, object))'}}, output_type={'module': 'data_science', 'class': 'Job'})
10713
+ @cli_util.wrap_exceptions
10714
+ def update_job_empty_job_infrastructure_configuration_details(ctx, from_json, force, wait_for_state, max_wait_seconds, wait_interval_seconds, job_id, display_name, description, job_storage_mount_configuration_details_list, freeform_tags, defined_tags, if_match):
10715
+
10716
+ if isinstance(job_id, six.string_types) and len(job_id.strip()) == 0:
10717
+ raise click.UsageError('Parameter --job-id cannot be whitespace or empty string')
10718
+ if not force:
10719
+ if job_storage_mount_configuration_details_list or freeform_tags or defined_tags:
10720
+ if not click.confirm("WARNING: Updates to job-storage-mount-configuration-details-list and freeform-tags and defined-tags will replace any existing values. Are you sure you want to continue?"):
10721
+ ctx.abort()
10722
+
10723
+ kwargs = {}
10724
+ if if_match is not None:
10725
+ kwargs['if_match'] = if_match
10726
+ kwargs['opc_request_id'] = cli_util.use_or_generate_request_id(ctx.obj['request_id'])
10727
+
10728
+ _details = {}
10729
+ _details['jobInfrastructureConfigurationDetails'] = {}
10730
+
10731
+ if display_name is not None:
10732
+ _details['displayName'] = display_name
10733
+
10734
+ if description is not None:
10735
+ _details['description'] = description
10736
+
10737
+ if job_storage_mount_configuration_details_list is not None:
10738
+ _details['jobStorageMountConfigurationDetailsList'] = cli_util.parse_json_parameter("job_storage_mount_configuration_details_list", job_storage_mount_configuration_details_list)
10739
+
10740
+ if freeform_tags is not None:
10741
+ _details['freeformTags'] = cli_util.parse_json_parameter("freeform_tags", freeform_tags)
10742
+
10743
+ if defined_tags is not None:
10744
+ _details['definedTags'] = cli_util.parse_json_parameter("defined_tags", defined_tags)
10745
+
10746
+ _details['jobInfrastructureConfigurationDetails']['jobInfrastructureType'] = 'EMPTY'
10747
+
10748
+ client = cli_util.build_client('data_science', 'data_science', ctx)
10749
+ result = client.update_job(
10750
+ job_id=job_id,
10751
+ update_job_details=_details,
10752
+ **kwargs
10753
+ )
10754
+ if wait_for_state:
10755
+
10756
+ if hasattr(client, 'get_job') and callable(getattr(client, 'get_job')):
10757
+ try:
10758
+ wait_period_kwargs = {}
10759
+ if max_wait_seconds is not None:
10760
+ wait_period_kwargs['max_wait_seconds'] = max_wait_seconds
10761
+ if wait_interval_seconds is not None:
10762
+ wait_period_kwargs['max_interval_seconds'] = wait_interval_seconds
10763
+
10764
+ click.echo('Action completed. Waiting until the resource has entered state: {}'.format(wait_for_state), file=sys.stderr)
10765
+ result = oci.wait_until(client, client.get_job(result.data.id), 'lifecycle_state', wait_for_state, **wait_period_kwargs)
10766
+ except oci.exceptions.MaximumWaitTimeExceeded as e:
10767
+ # If we fail, we should show an error, but we should still provide the information to the customer
10768
+ click.echo('Failed to wait until the resource entered the specified state. Outputting last known resource state', file=sys.stderr)
10769
+ cli_util.render_response(result, ctx)
10770
+ sys.exit(2)
10771
+ except Exception:
10772
+ click.echo('Encountered error while waiting for resource to enter the specified state. Outputting last known resource state', file=sys.stderr)
10773
+ cli_util.render_response(result, ctx)
10774
+ raise
10775
+ else:
10776
+ click.echo('Unable to wait for the resource to enter the specified state', file=sys.stderr)
10777
+ cli_util.render_response(result, ctx)
10778
+
10779
+
9568
10780
  @job_group.command(name=cli_util.override('data_science.update_job_managed_egress_standalone_job_infrastructure_configuration_details.command_name', 'update-job-managed-egress-standalone-job-infrastructure-configuration-details'), help=u"""Updates a job. \n[Command Reference](updateJob)""")
9569
10781
  @cli_util.option('--job-id', required=True, help=u"""The [OCID] of the job.""")
9570
10782
  @cli_util.option('--job-infrastructure-configuration-details-shape-name', required=True, help=u"""The shape used to launch the job run instances.""")