archil-openapi 0.0.67__tar.gz → 0.0.69__tar.gz

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 (328) hide show
  1. {archil_openapi-0.0.67 → archil_openapi-0.0.69}/PKG-INFO +1 -1
  2. {archil_openapi-0.0.67 → archil_openapi-0.0.69}/pyproject.toml +1 -1
  3. {archil_openapi-0.0.67 → archil_openapi-0.0.69}/src/archil_openapi/api/disk_users/add_disk_user.py +28 -9
  4. {archil_openapi-0.0.67 → archil_openapi-0.0.69}/src/archil_openapi/api/disks/exec_.py +5 -0
  5. {archil_openapi-0.0.67 → archil_openapi-0.0.69}/src/archil_openapi/api/disks/exec_disk.py +5 -0
  6. {archil_openapi-0.0.67 → archil_openapi-0.0.69}/src/archil_openapi/api/disks/grep_disk.py +16 -12
  7. {archil_openapi-0.0.67 → archil_openapi-0.0.69}/src/archil_openapi/api/sandboxes/create_sandbox.py +5 -0
  8. {archil_openapi-0.0.67 → archil_openapi-0.0.69}/src/archil_openapi/api/sandboxes/fork_sandbox.py +5 -0
  9. {archil_openapi-0.0.67 → archil_openapi-0.0.69}/src/archil_openapi/api/sandboxes/resume_sandbox.py +5 -0
  10. {archil_openapi-0.0.67 → archil_openapi-0.0.69}/src/archil_openapi/api/sandboxes/set_sandbox_timeout.py +5 -0
  11. {archil_openapi-0.0.67 → archil_openapi-0.0.69}/src/archil_openapi/api/sandboxes/start_sandbox.py +5 -0
  12. {archil_openapi-0.0.67 → archil_openapi-0.0.69}/src/archil_openapi/models/__init__.py +4 -0
  13. {archil_openapi-0.0.67 → archil_openapi-0.0.69}/src/archil_openapi/models/authorized_user.py +22 -2
  14. {archil_openapi-0.0.67 → archil_openapi-0.0.69}/src/archil_openapi/models/authorized_user_status.py +1 -0
  15. {archil_openapi-0.0.67 → archil_openapi-0.0.69}/src/archil_openapi/models/authorized_user_type.py +1 -0
  16. {archil_openapi-0.0.67 → archil_openapi-0.0.69}/src/archil_openapi/models/create_disk_request.py +19 -6
  17. {archil_openapi-0.0.67 → archil_openapi-0.0.69}/src/archil_openapi/models/create_sandbox_request.py +4 -1
  18. {archil_openapi-0.0.67 → archil_openapi-0.0.69}/src/archil_openapi/models/grep_disk_result.py +2 -1
  19. {archil_openapi-0.0.67 → archil_openapi-0.0.69}/src/archil_openapi/models/remove_disk_user_user_type.py +1 -0
  20. archil_openapi-0.0.69/src/archil_openapi/models/s3_user.py +114 -0
  21. archil_openapi-0.0.69/src/archil_openapi/models/s3_user_type.py +8 -0
  22. {archil_openapi-0.0.67 → archil_openapi-0.0.69}/src/archil_openapi/models/sandbox.py +3 -2
  23. {archil_openapi-0.0.67 → archil_openapi-0.0.69}/src/archil_openapi/models/sandbox_timeout_request.py +3 -2
  24. {archil_openapi-0.0.67 → archil_openapi-0.0.69}/LICENSE +0 -0
  25. {archil_openapi-0.0.67 → archil_openapi-0.0.69}/README.md +0 -0
  26. {archil_openapi-0.0.67 → archil_openapi-0.0.69}/src/archil_openapi/__init__.py +0 -0
  27. {archil_openapi-0.0.67 → archil_openapi-0.0.69}/src/archil_openapi/api/__init__.py +0 -0
  28. {archil_openapi-0.0.67 → archil_openapi-0.0.69}/src/archil_openapi/api/activity/__init__.py +0 -0
  29. {archil_openapi-0.0.67 → archil_openapi-0.0.69}/src/archil_openapi/api/activity/list_activity.py +0 -0
  30. {archil_openapi-0.0.67 → archil_openapi-0.0.69}/src/archil_openapi/api/api_tokens/__init__.py +0 -0
  31. {archil_openapi-0.0.67 → archil_openapi-0.0.69}/src/archil_openapi/api/api_tokens/create_api_token.py +0 -0
  32. {archil_openapi-0.0.67 → archil_openapi-0.0.69}/src/archil_openapi/api/api_tokens/delete_api_token.py +0 -0
  33. {archil_openapi-0.0.67 → archil_openapi-0.0.69}/src/archil_openapi/api/api_tokens/list_api_tokens.py +0 -0
  34. {archil_openapi-0.0.67 → archil_openapi-0.0.69}/src/archil_openapi/api/billing/__init__.py +0 -0
  35. {archil_openapi-0.0.67 → archil_openapi-0.0.69}/src/archil_openapi/api/billing/cancel_billing_subscription.py +0 -0
  36. {archil_openapi-0.0.67 → archil_openapi-0.0.69}/src/archil_openapi/api/billing/change_billing_subscription.py +0 -0
  37. {archil_openapi-0.0.67 → archil_openapi-0.0.69}/src/archil_openapi/api/billing/create_billing_setup_intent.py +0 -0
  38. {archil_openapi-0.0.67 → archil_openapi-0.0.69}/src/archil_openapi/api/billing/create_billing_subscription.py +0 -0
  39. {archil_openapi-0.0.67 → archil_openapi-0.0.69}/src/archil_openapi/api/billing/delete_billing_payment_method.py +0 -0
  40. {archil_openapi-0.0.67 → archil_openapi-0.0.69}/src/archil_openapi/api/billing/get_billing_credits.py +0 -0
  41. {archil_openapi-0.0.67 → archil_openapi-0.0.69}/src/archil_openapi/api/billing/get_billing_invoice.py +0 -0
  42. {archil_openapi-0.0.67 → archil_openapi-0.0.69}/src/archil_openapi/api/billing/get_billing_operation.py +0 -0
  43. {archil_openapi-0.0.67 → archil_openapi-0.0.69}/src/archil_openapi/api/billing/get_billing_profile.py +0 -0
  44. {archil_openapi-0.0.67 → archil_openapi-0.0.69}/src/archil_openapi/api/billing/get_billing_subscription.py +0 -0
  45. {archil_openapi-0.0.67 → archil_openapi-0.0.69}/src/archil_openapi/api/billing/get_billing_summary.py +0 -0
  46. {archil_openapi-0.0.67 → archil_openapi-0.0.69}/src/archil_openapi/api/billing/get_billing_usage.py +0 -0
  47. {archil_openapi-0.0.67 → archil_openapi-0.0.69}/src/archil_openapi/api/billing/keep_billing_subscription.py +0 -0
  48. {archil_openapi-0.0.67 → archil_openapi-0.0.69}/src/archil_openapi/api/billing/list_billing_invoices.py +0 -0
  49. {archil_openapi-0.0.67 → archil_openapi-0.0.69}/src/archil_openapi/api/billing/list_billing_payment_methods.py +0 -0
  50. {archil_openapi-0.0.67 → archil_openapi-0.0.69}/src/archil_openapi/api/billing/pay_billing_invoice.py +0 -0
  51. {archil_openapi-0.0.67 → archil_openapi-0.0.69}/src/archil_openapi/api/billing/preview_billing_subscription.py +0 -0
  52. {archil_openapi-0.0.67 → archil_openapi-0.0.69}/src/archil_openapi/api/billing/set_billing_default_payment_method.py +0 -0
  53. {archil_openapi-0.0.67 → archil_openapi-0.0.69}/src/archil_openapi/api/billing/update_billing_payment_method.py +0 -0
  54. {archil_openapi-0.0.67 → archil_openapi-0.0.69}/src/archil_openapi/api/billing/update_billing_profile.py +0 -0
  55. {archil_openapi-0.0.67 → archil_openapi-0.0.69}/src/archil_openapi/api/billing/withdraw_billing_scheduled_change.py +0 -0
  56. {archil_openapi-0.0.67 → archil_openapi-0.0.69}/src/archil_openapi/api/disk_configuration/__init__.py +0 -0
  57. {archil_openapi-0.0.67 → archil_openapi-0.0.69}/src/archil_openapi/api/disk_configuration/get_allowed_i_ps.py +0 -0
  58. {archil_openapi-0.0.67 → archil_openapi-0.0.69}/src/archil_openapi/api/disk_configuration/get_sandbox_mount.py +0 -0
  59. {archil_openapi-0.0.67 → archil_openapi-0.0.69}/src/archil_openapi/api/disk_configuration/list_delegations.py +0 -0
  60. {archil_openapi-0.0.67 → archil_openapi-0.0.69}/src/archil_openapi/api/disk_configuration/revoke_delegation.py +0 -0
  61. {archil_openapi-0.0.67 → archil_openapi-0.0.69}/src/archil_openapi/api/disk_configuration/set_allowed_i_ps.py +0 -0
  62. {archil_openapi-0.0.67 → archil_openapi-0.0.69}/src/archil_openapi/api/disk_configuration/set_sandbox_mount.py +0 -0
  63. {archil_openapi-0.0.67 → archil_openapi-0.0.69}/src/archil_openapi/api/disk_users/__init__.py +0 -0
  64. {archil_openapi-0.0.67 → archil_openapi-0.0.69}/src/archil_openapi/api/disk_users/remove_disk_user.py +0 -0
  65. {archil_openapi-0.0.67 → archil_openapi-0.0.69}/src/archil_openapi/api/disks/__init__.py +0 -0
  66. {archil_openapi-0.0.67 → archil_openapi-0.0.69}/src/archil_openapi/api/disks/create_branch.py +0 -0
  67. {archil_openapi-0.0.67 → archil_openapi-0.0.69}/src/archil_openapi/api/disks/create_disk.py +0 -0
  68. {archil_openapi-0.0.67 → archil_openapi-0.0.69}/src/archil_openapi/api/disks/create_share_url.py +0 -0
  69. {archil_openapi-0.0.67 → archil_openapi-0.0.69}/src/archil_openapi/api/disks/delete_disk.py +0 -0
  70. {archil_openapi-0.0.67 → archil_openapi-0.0.69}/src/archil_openapi/api/disks/get_branch.py +0 -0
  71. {archil_openapi-0.0.67 → archil_openapi-0.0.69}/src/archil_openapi/api/disks/get_disk.py +0 -0
  72. {archil_openapi-0.0.67 → archil_openapi-0.0.69}/src/archil_openapi/api/disks/list_branches.py +0 -0
  73. {archil_openapi-0.0.67 → archil_openapi-0.0.69}/src/archil_openapi/api/disks/list_disks.py +0 -0
  74. {archil_openapi-0.0.67 → archil_openapi-0.0.69}/src/archil_openapi/api/disks/prefetch_disk.py +0 -0
  75. {archil_openapi-0.0.67 → archil_openapi-0.0.69}/src/archil_openapi/api/sandboxes/__init__.py +0 -0
  76. {archil_openapi-0.0.67 → archil_openapi-0.0.69}/src/archil_openapi/api/sandboxes/create_image.py +0 -0
  77. {archil_openapi-0.0.67 → archil_openapi-0.0.69}/src/archil_openapi/api/sandboxes/create_sandbox_connection.py +0 -0
  78. {archil_openapi-0.0.67 → archil_openapi-0.0.69}/src/archil_openapi/api/sandboxes/create_sandbox_port_token.py +0 -0
  79. {archil_openapi-0.0.67 → archil_openapi-0.0.69}/src/archil_openapi/api/sandboxes/delete_sandbox.py +0 -0
  80. {archil_openapi-0.0.67 → archil_openapi-0.0.69}/src/archil_openapi/api/sandboxes/delete_sandbox_port.py +0 -0
  81. {archil_openapi-0.0.67 → archil_openapi-0.0.69}/src/archil_openapi/api/sandboxes/delete_sandbox_port_token.py +0 -0
  82. {archil_openapi-0.0.67 → archil_openapi-0.0.69}/src/archil_openapi/api/sandboxes/expose_sandbox_port.py +0 -0
  83. {archil_openapi-0.0.67 → archil_openapi-0.0.69}/src/archil_openapi/api/sandboxes/get_image.py +0 -0
  84. {archil_openapi-0.0.67 → archil_openapi-0.0.69}/src/archil_openapi/api/sandboxes/get_sandbox.py +0 -0
  85. {archil_openapi-0.0.67 → archil_openapi-0.0.69}/src/archil_openapi/api/sandboxes/get_sandbox_network.py +0 -0
  86. {archil_openapi-0.0.67 → archil_openapi-0.0.69}/src/archil_openapi/api/sandboxes/get_sandbox_port_token.py +0 -0
  87. {archil_openapi-0.0.67 → archil_openapi-0.0.69}/src/archil_openapi/api/sandboxes/list_sandbox_port_tokens.py +0 -0
  88. {archil_openapi-0.0.67 → archil_openapi-0.0.69}/src/archil_openapi/api/sandboxes/list_sandbox_ports.py +0 -0
  89. {archil_openapi-0.0.67 → archil_openapi-0.0.69}/src/archil_openapi/api/sandboxes/list_sandboxes.py +0 -0
  90. {archil_openapi-0.0.67 → archil_openapi-0.0.69}/src/archil_openapi/api/sandboxes/pause_sandbox.py +0 -0
  91. {archil_openapi-0.0.67 → archil_openapi-0.0.69}/src/archil_openapi/api/sandboxes/stop_sandbox.py +0 -0
  92. {archil_openapi-0.0.67 → archil_openapi-0.0.69}/src/archil_openapi/api/sandboxes/update_sandbox_network.py +0 -0
  93. {archil_openapi-0.0.67 → archil_openapi-0.0.69}/src/archil_openapi/client.py +0 -0
  94. {archil_openapi-0.0.67 → archil_openapi-0.0.69}/src/archil_openapi/errors.py +0 -0
  95. {archil_openapi-0.0.67 → archil_openapi-0.0.69}/src/archil_openapi/models/activity_event.py +0 -0
  96. {archil_openapi-0.0.67 → archil_openapi-0.0.69}/src/archil_openapi/models/activity_event_details.py +0 -0
  97. {archil_openapi-0.0.67 → archil_openapi-0.0.69}/src/archil_openapi/models/activity_event_level.py +0 -0
  98. {archil_openapi-0.0.67 → archil_openapi-0.0.69}/src/archil_openapi/models/api_response_activity_list.py +0 -0
  99. {archil_openapi-0.0.67 → archil_openapi-0.0.69}/src/archil_openapi/models/api_response_allowed_i_ps.py +0 -0
  100. {archil_openapi-0.0.67 → archil_openapi-0.0.69}/src/archil_openapi/models/api_response_allowed_i_ps_data.py +0 -0
  101. {archil_openapi-0.0.67 → archil_openapi-0.0.69}/src/archil_openapi/models/api_response_authorized_user.py +0 -0
  102. {archil_openapi-0.0.67 → archil_openapi-0.0.69}/src/archil_openapi/models/api_response_billing_cancellation.py +0 -0
  103. {archil_openapi-0.0.67 → archil_openapi-0.0.69}/src/archil_openapi/models/api_response_billing_credits.py +0 -0
  104. {archil_openapi-0.0.67 → archil_openapi-0.0.69}/src/archil_openapi/models/api_response_billing_default_payment_method.py +0 -0
  105. {archil_openapi-0.0.67 → archil_openapi-0.0.69}/src/archil_openapi/models/api_response_billing_default_payment_method_data.py +0 -0
  106. {archil_openapi-0.0.67 → archil_openapi-0.0.69}/src/archil_openapi/models/api_response_billing_default_payment_method_data_scope.py +0 -0
  107. {archil_openapi-0.0.67 → archil_openapi-0.0.69}/src/archil_openapi/models/api_response_billing_invoice_detail.py +0 -0
  108. {archil_openapi-0.0.67 → archil_openapi-0.0.69}/src/archil_openapi/models/api_response_billing_invoices.py +0 -0
  109. {archil_openapi-0.0.67 → archil_openapi-0.0.69}/src/archil_openapi/models/api_response_billing_method_removed.py +0 -0
  110. {archil_openapi-0.0.67 → archil_openapi-0.0.69}/src/archil_openapi/models/api_response_billing_method_removed_data.py +0 -0
  111. {archil_openapi-0.0.67 → archil_openapi-0.0.69}/src/archil_openapi/models/api_response_billing_operation.py +0 -0
  112. {archil_openapi-0.0.67 → archil_openapi-0.0.69}/src/archil_openapi/models/api_response_billing_payment_method.py +0 -0
  113. {archil_openapi-0.0.67 → archil_openapi-0.0.69}/src/archil_openapi/models/api_response_billing_payment_methods.py +0 -0
  114. {archil_openapi-0.0.67 → archil_openapi-0.0.69}/src/archil_openapi/models/api_response_billing_profile.py +0 -0
  115. {archil_openapi-0.0.67 → archil_openapi-0.0.69}/src/archil_openapi/models/api_response_billing_setup_intent.py +0 -0
  116. {archil_openapi-0.0.67 → archil_openapi-0.0.69}/src/archil_openapi/models/api_response_billing_setup_intent_data.py +0 -0
  117. {archil_openapi-0.0.67 → archil_openapi-0.0.69}/src/archil_openapi/models/api_response_billing_subscription.py +0 -0
  118. {archil_openapi-0.0.67 → archil_openapi-0.0.69}/src/archil_openapi/models/api_response_billing_subscription_preview.py +0 -0
  119. {archil_openapi-0.0.67 → archil_openapi-0.0.69}/src/archil_openapi/models/api_response_billing_subscription_state.py +0 -0
  120. {archil_openapi-0.0.67 → archil_openapi-0.0.69}/src/archil_openapi/models/api_response_billing_summary.py +0 -0
  121. {archil_openapi-0.0.67 → archil_openapi-0.0.69}/src/archil_openapi/models/api_response_billing_usage.py +0 -0
  122. {archil_openapi-0.0.67 → archil_openapi-0.0.69}/src/archil_openapi/models/api_response_create_disk.py +0 -0
  123. {archil_openapi-0.0.67 → archil_openapi-0.0.69}/src/archil_openapi/models/api_response_create_disk_data.py +0 -0
  124. {archil_openapi-0.0.67 → archil_openapi-0.0.69}/src/archil_openapi/models/api_response_created_sandbox_port_token.py +0 -0
  125. {archil_openapi-0.0.67 → archil_openapi-0.0.69}/src/archil_openapi/models/api_response_delegations.py +0 -0
  126. {archil_openapi-0.0.67 → archil_openapi-0.0.69}/src/archil_openapi/models/api_response_delegations_data.py +0 -0
  127. {archil_openapi-0.0.67 → archil_openapi-0.0.69}/src/archil_openapi/models/api_response_disk.py +0 -0
  128. {archil_openapi-0.0.67 → archil_openapi-0.0.69}/src/archil_openapi/models/api_response_disk_list.py +0 -0
  129. {archil_openapi-0.0.67 → archil_openapi-0.0.69}/src/archil_openapi/models/api_response_empty.py +0 -0
  130. {archil_openapi-0.0.67 → archil_openapi-0.0.69}/src/archil_openapi/models/api_response_exec.py +0 -0
  131. {archil_openapi-0.0.67 → archil_openapi-0.0.69}/src/archil_openapi/models/api_response_exec_disk.py +0 -0
  132. {archil_openapi-0.0.67 → archil_openapi-0.0.69}/src/archil_openapi/models/api_response_grep_disk.py +0 -0
  133. {archil_openapi-0.0.67 → archil_openapi-0.0.69}/src/archil_openapi/models/api_response_image.py +0 -0
  134. {archil_openapi-0.0.67 → archil_openapi-0.0.69}/src/archil_openapi/models/api_response_message.py +0 -0
  135. {archil_openapi-0.0.67 → archil_openapi-0.0.69}/src/archil_openapi/models/api_response_message_data.py +0 -0
  136. {archil_openapi-0.0.67 → archil_openapi-0.0.69}/src/archil_openapi/models/api_response_prefetch.py +0 -0
  137. {archil_openapi-0.0.67 → archil_openapi-0.0.69}/src/archil_openapi/models/api_response_prefetch_data.py +0 -0
  138. {archil_openapi-0.0.67 → archil_openapi-0.0.69}/src/archil_openapi/models/api_response_sandbox.py +0 -0
  139. {archil_openapi-0.0.67 → archil_openapi-0.0.69}/src/archil_openapi/models/api_response_sandbox_connection.py +0 -0
  140. {archil_openapi-0.0.67 → archil_openapi-0.0.69}/src/archil_openapi/models/api_response_sandbox_list.py +0 -0
  141. {archil_openapi-0.0.67 → archil_openapi-0.0.69}/src/archil_openapi/models/api_response_sandbox_list_data.py +0 -0
  142. {archil_openapi-0.0.67 → archil_openapi-0.0.69}/src/archil_openapi/models/api_response_sandbox_mount.py +0 -0
  143. {archil_openapi-0.0.67 → archil_openapi-0.0.69}/src/archil_openapi/models/api_response_sandbox_mount_data.py +0 -0
  144. {archil_openapi-0.0.67 → archil_openapi-0.0.69}/src/archil_openapi/models/api_response_sandbox_network.py +0 -0
  145. {archil_openapi-0.0.67 → archil_openapi-0.0.69}/src/archil_openapi/models/api_response_sandbox_port.py +0 -0
  146. {archil_openapi-0.0.67 → archil_openapi-0.0.69}/src/archil_openapi/models/api_response_sandbox_port_list.py +0 -0
  147. {archil_openapi-0.0.67 → archil_openapi-0.0.69}/src/archil_openapi/models/api_response_sandbox_port_token.py +0 -0
  148. {archil_openapi-0.0.67 → archil_openapi-0.0.69}/src/archil_openapi/models/api_response_sandbox_port_token_list.py +0 -0
  149. {archil_openapi-0.0.67 → archil_openapi-0.0.69}/src/archil_openapi/models/api_response_share_url.py +0 -0
  150. {archil_openapi-0.0.67 → archil_openapi-0.0.69}/src/archil_openapi/models/api_response_share_url_data.py +0 -0
  151. {archil_openapi-0.0.67 → archil_openapi-0.0.69}/src/archil_openapi/models/api_response_token_created.py +0 -0
  152. {archil_openapi-0.0.67 → archil_openapi-0.0.69}/src/archil_openapi/models/api_response_token_created_data.py +0 -0
  153. {archil_openapi-0.0.67 → archil_openapi-0.0.69}/src/archil_openapi/models/api_response_token_list.py +0 -0
  154. {archil_openapi-0.0.67 → archil_openapi-0.0.69}/src/archil_openapi/models/api_response_token_list_data.py +0 -0
  155. {archil_openapi-0.0.67 → archil_openapi-0.0.69}/src/archil_openapi/models/api_token_response.py +0 -0
  156. {archil_openapi-0.0.67 → archil_openapi-0.0.69}/src/archil_openapi/models/aws_sts_user.py +0 -0
  157. {archil_openapi-0.0.67 → archil_openapi-0.0.69}/src/archil_openapi/models/aws_sts_user_type.py +0 -0
  158. {archil_openapi-0.0.67 → archil_openapi-0.0.69}/src/archil_openapi/models/azure_blob_storage.py +0 -0
  159. {archil_openapi-0.0.67 → archil_openapi-0.0.69}/src/archil_openapi/models/azure_blob_storage_type.py +0 -0
  160. {archil_openapi-0.0.67 → archil_openapi-0.0.69}/src/archil_openapi/models/billing_address.py +0 -0
  161. {archil_openapi-0.0.67 → archil_openapi-0.0.69}/src/archil_openapi/models/billing_address_patch.py +0 -0
  162. {archil_openapi-0.0.67 → archil_openapi-0.0.69}/src/archil_openapi/models/billing_balance_transaction.py +0 -0
  163. {archil_openapi-0.0.67 → archil_openapi-0.0.69}/src/archil_openapi/models/billing_cancel_request.py +0 -0
  164. {archil_openapi-0.0.67 → archil_openapi-0.0.69}/src/archil_openapi/models/billing_cancel_request_reason.py +0 -0
  165. {archil_openapi-0.0.67 → archil_openapi-0.0.69}/src/archil_openapi/models/billing_cancel_request_reason_feedback.py +0 -0
  166. {archil_openapi-0.0.67 → archil_openapi-0.0.69}/src/archil_openapi/models/billing_cancel_request_timing.py +0 -0
  167. {archil_openapi-0.0.67 → archil_openapi-0.0.69}/src/archil_openapi/models/billing_cancellation.py +0 -0
  168. {archil_openapi-0.0.67 → archil_openapi-0.0.69}/src/archil_openapi/models/billing_cancellation_settlement.py +0 -0
  169. {archil_openapi-0.0.67 → archil_openapi-0.0.69}/src/archil_openapi/models/billing_cancellation_settlement_method.py +0 -0
  170. {archil_openapi-0.0.67 → archil_openapi-0.0.69}/src/archil_openapi/models/billing_change_request.py +0 -0
  171. {archil_openapi-0.0.67 → archil_openapi-0.0.69}/src/archil_openapi/models/billing_change_request_plan.py +0 -0
  172. {archil_openapi-0.0.67 → archil_openapi-0.0.69}/src/archil_openapi/models/billing_change_request_timing.py +0 -0
  173. {archil_openapi-0.0.67 → archil_openapi-0.0.69}/src/archil_openapi/models/billing_credit_grant.py +0 -0
  174. {archil_openapi-0.0.67 → archil_openapi-0.0.69}/src/archil_openapi/models/billing_credit_note.py +0 -0
  175. {archil_openapi-0.0.67 → archil_openapi-0.0.69}/src/archil_openapi/models/billing_credits.py +0 -0
  176. {archil_openapi-0.0.67 → archil_openapi-0.0.69}/src/archil_openapi/models/billing_invoice_credit.py +0 -0
  177. {archil_openapi-0.0.67 → archil_openapi-0.0.69}/src/archil_openapi/models/billing_invoice_detail.py +0 -0
  178. {archil_openapi-0.0.67 → archil_openapi-0.0.69}/src/archil_openapi/models/billing_invoice_line.py +0 -0
  179. {archil_openapi-0.0.67 → archil_openapi-0.0.69}/src/archil_openapi/models/billing_invoice_summary.py +0 -0
  180. {archil_openapi-0.0.67 → archil_openapi-0.0.69}/src/archil_openapi/models/billing_invoice_tax.py +0 -0
  181. {archil_openapi-0.0.67 → archil_openapi-0.0.69}/src/archil_openapi/models/billing_issued_invoice.py +0 -0
  182. {archil_openapi-0.0.67 → archil_openapi-0.0.69}/src/archil_openapi/models/billing_issued_invoice_status.py +0 -0
  183. {archil_openapi-0.0.67 → archil_openapi-0.0.69}/src/archil_openapi/models/billing_keep_request.py +0 -0
  184. {archil_openapi-0.0.67 → archil_openapi-0.0.69}/src/archil_openapi/models/billing_line.py +0 -0
  185. {archil_openapi-0.0.67 → archil_openapi-0.0.69}/src/archil_openapi/models/billing_line_type.py +0 -0
  186. {archil_openapi-0.0.67 → archil_openapi-0.0.69}/src/archil_openapi/models/billing_next_action.py +0 -0
  187. {archil_openapi-0.0.67 → archil_openapi-0.0.69}/src/archil_openapi/models/billing_next_action_type.py +0 -0
  188. {archil_openapi-0.0.67 → archil_openapi-0.0.69}/src/archil_openapi/models/billing_operation.py +0 -0
  189. {archil_openapi-0.0.67 → archil_openapi-0.0.69}/src/archil_openapi/models/billing_operation_failure.py +0 -0
  190. {archil_openapi-0.0.67 → archil_openapi-0.0.69}/src/archil_openapi/models/billing_operation_invoice.py +0 -0
  191. {archil_openapi-0.0.67 → archil_openapi-0.0.69}/src/archil_openapi/models/billing_operation_plan.py +0 -0
  192. {archil_openapi-0.0.67 → archil_openapi-0.0.69}/src/archil_openapi/models/billing_operation_state.py +0 -0
  193. {archil_openapi-0.0.67 → archil_openapi-0.0.69}/src/archil_openapi/models/billing_operation_status.py +0 -0
  194. {archil_openapi-0.0.67 → archil_openapi-0.0.69}/src/archil_openapi/models/billing_operation_type.py +0 -0
  195. {archil_openapi-0.0.67 → archil_openapi-0.0.69}/src/archil_openapi/models/billing_owner.py +0 -0
  196. {archil_openapi-0.0.67 → archil_openapi-0.0.69}/src/archil_openapi/models/billing_owner_type.py +0 -0
  197. {archil_openapi-0.0.67 → archil_openapi-0.0.69}/src/archil_openapi/models/billing_pay_invoice_request.py +0 -0
  198. {archil_openapi-0.0.67 → archil_openapi-0.0.69}/src/archil_openapi/models/billing_payment_health.py +0 -0
  199. {archil_openapi-0.0.67 → archil_openapi-0.0.69}/src/archil_openapi/models/billing_payment_health_status.py +0 -0
  200. {archil_openapi-0.0.67 → archil_openapi-0.0.69}/src/archil_openapi/models/billing_payment_method.py +0 -0
  201. {archil_openapi-0.0.67 → archil_openapi-0.0.69}/src/archil_openapi/models/billing_payment_method_billing_details.py +0 -0
  202. {archil_openapi-0.0.67 → archil_openapi-0.0.69}/src/archil_openapi/models/billing_payment_method_card.py +0 -0
  203. {archil_openapi-0.0.67 → archil_openapi-0.0.69}/src/archil_openapi/models/billing_period.py +0 -0
  204. {archil_openapi-0.0.67 → archil_openapi-0.0.69}/src/archil_openapi/models/billing_preview_line.py +0 -0
  205. {archil_openapi-0.0.67 → archil_openapi-0.0.69}/src/archil_openapi/models/billing_preview_request.py +0 -0
  206. {archil_openapi-0.0.67 → archil_openapi-0.0.69}/src/archil_openapi/models/billing_preview_request_plan.py +0 -0
  207. {archil_openapi-0.0.67 → archil_openapi-0.0.69}/src/archil_openapi/models/billing_preview_request_timing.py +0 -0
  208. {archil_openapi-0.0.67 → archil_openapi-0.0.69}/src/archil_openapi/models/billing_profile.py +0 -0
  209. {archil_openapi-0.0.67 → archil_openapi-0.0.69}/src/archil_openapi/models/billing_profile_billing_mode.py +0 -0
  210. {archil_openapi-0.0.67 → archil_openapi-0.0.69}/src/archil_openapi/models/billing_profile_validation_error.py +0 -0
  211. {archil_openapi-0.0.67 → archil_openapi-0.0.69}/src/archil_openapi/models/billing_profile_validation_error_code.py +0 -0
  212. {archil_openapi-0.0.67 → archil_openapi-0.0.69}/src/archil_openapi/models/billing_profile_validation_error_data.py +0 -0
  213. {archil_openapi-0.0.67 → archil_openapi-0.0.69}/src/archil_openapi/models/billing_profile_validation_error_data_field_errors.py +0 -0
  214. {archil_openapi-0.0.67 → archil_openapi-0.0.69}/src/archil_openapi/models/billing_recurring_price.py +0 -0
  215. {archil_openapi-0.0.67 → archil_openapi-0.0.69}/src/archil_openapi/models/billing_recurring_price_component.py +0 -0
  216. {archil_openapi-0.0.67 → archil_openapi-0.0.69}/src/archil_openapi/models/billing_recurring_price_usage_type.py +0 -0
  217. {archil_openapi-0.0.67 → archil_openapi-0.0.69}/src/archil_openapi/models/billing_scheduled_change.py +0 -0
  218. {archil_openapi-0.0.67 → archil_openapi-0.0.69}/src/archil_openapi/models/billing_scheduled_change_target_plan.py +0 -0
  219. {archil_openapi-0.0.67 → archil_openapi-0.0.69}/src/archil_openapi/models/billing_scheduled_change_type.py +0 -0
  220. {archil_openapi-0.0.67 → archil_openapi-0.0.69}/src/archil_openapi/models/billing_state_conflict.py +0 -0
  221. {archil_openapi-0.0.67 → archil_openapi-0.0.69}/src/archil_openapi/models/billing_subscribe_request.py +0 -0
  222. {archil_openapi-0.0.67 → archil_openapi-0.0.69}/src/archil_openapi/models/billing_subscribe_request_plan.py +0 -0
  223. {archil_openapi-0.0.67 → archil_openapi-0.0.69}/src/archil_openapi/models/billing_subscription.py +0 -0
  224. {archil_openapi-0.0.67 → archil_openapi-0.0.69}/src/archil_openapi/models/billing_subscription_actions.py +0 -0
  225. {archil_openapi-0.0.67 → archil_openapi-0.0.69}/src/archil_openapi/models/billing_subscription_billing_mode.py +0 -0
  226. {archil_openapi-0.0.67 → archil_openapi-0.0.69}/src/archil_openapi/models/billing_subscription_plan.py +0 -0
  227. {archil_openapi-0.0.67 → archil_openapi-0.0.69}/src/archil_openapi/models/billing_subscription_preview.py +0 -0
  228. {archil_openapi-0.0.67 → archil_openapi-0.0.69}/src/archil_openapi/models/billing_subscription_preview_current_plan.py +0 -0
  229. {archil_openapi-0.0.67 → archil_openapi-0.0.69}/src/archil_openapi/models/billing_subscription_preview_kind.py +0 -0
  230. {archil_openapi-0.0.67 → archil_openapi-0.0.69}/src/archil_openapi/models/billing_subscription_preview_qualifications_item.py +0 -0
  231. {archil_openapi-0.0.67 → archil_openapi-0.0.69}/src/archil_openapi/models/billing_subscription_preview_target_plan.py +0 -0
  232. {archil_openapi-0.0.67 → archil_openapi-0.0.69}/src/archil_openapi/models/billing_subscription_preview_timing.py +0 -0
  233. {archil_openapi-0.0.67 → archil_openapi-0.0.69}/src/archil_openapi/models/billing_subscription_state.py +0 -0
  234. {archil_openapi-0.0.67 → archil_openapi-0.0.69}/src/archil_openapi/models/billing_subscription_state_plan.py +0 -0
  235. {archil_openapi-0.0.67 → archil_openapi-0.0.69}/src/archil_openapi/models/billing_subscription_state_subscription_status.py +0 -0
  236. {archil_openapi-0.0.67 → archil_openapi-0.0.69}/src/archil_openapi/models/billing_subscription_subscription_status.py +0 -0
  237. {archil_openapi-0.0.67 → archil_openapi-0.0.69}/src/archil_openapi/models/billing_summary.py +0 -0
  238. {archil_openapi-0.0.67 → archil_openapi-0.0.69}/src/archil_openapi/models/billing_summary_plan.py +0 -0
  239. {archil_openapi-0.0.67 → archil_openapi-0.0.69}/src/archil_openapi/models/billing_summary_projection.py +0 -0
  240. {archil_openapi-0.0.67 → archil_openapi-0.0.69}/src/archil_openapi/models/billing_usage.py +0 -0
  241. {archil_openapi-0.0.67 → archil_openapi-0.0.69}/src/archil_openapi/models/billing_usage_granularity.py +0 -0
  242. {archil_openapi-0.0.67 → archil_openapi-0.0.69}/src/archil_openapi/models/billing_usage_interval.py +0 -0
  243. {archil_openapi-0.0.67 → archil_openapi-0.0.69}/src/archil_openapi/models/billing_usage_interval_features.py +0 -0
  244. {archil_openapi-0.0.67 → archil_openapi-0.0.69}/src/archil_openapi/models/billing_usage_quantity.py +0 -0
  245. {archil_openapi-0.0.67 → archil_openapi-0.0.69}/src/archil_openapi/models/billing_usage_rates_per_unit.py +0 -0
  246. {archil_openapi-0.0.67 → archil_openapi-0.0.69}/src/archil_openapi/models/billing_usage_window.py +0 -0
  247. {archil_openapi-0.0.67 → archil_openapi-0.0.69}/src/archil_openapi/models/billing_usage_window_features.py +0 -0
  248. {archil_openapi-0.0.67 → archil_openapi-0.0.69}/src/archil_openapi/models/branch_api_response.py +0 -0
  249. {archil_openapi-0.0.67 → archil_openapi-0.0.69}/src/archil_openapi/models/branch_list_api_response.py +0 -0
  250. {archil_openapi-0.0.67 → archil_openapi-0.0.69}/src/archil_openapi/models/branch_response.py +0 -0
  251. {archil_openapi-0.0.67 → archil_openapi-0.0.69}/src/archil_openapi/models/cloudflare_r2.py +0 -0
  252. {archil_openapi-0.0.67 → archil_openapi-0.0.69}/src/archil_openapi/models/cloudflare_r2_type.py +0 -0
  253. {archil_openapi-0.0.67 → archil_openapi-0.0.69}/src/archil_openapi/models/connected_client.py +0 -0
  254. {archil_openapi-0.0.67 → archil_openapi-0.0.69}/src/archil_openapi/models/create_api_token_request.py +0 -0
  255. {archil_openapi-0.0.67 → archil_openapi-0.0.69}/src/archil_openapi/models/create_branch_request.py +0 -0
  256. {archil_openapi-0.0.67 → archil_openapi-0.0.69}/src/archil_openapi/models/create_image_request.py +0 -0
  257. {archil_openapi-0.0.67 → archil_openapi-0.0.69}/src/archil_openapi/models/create_sandbox_port_token_request.py +0 -0
  258. {archil_openapi-0.0.67 → archil_openapi-0.0.69}/src/archil_openapi/models/create_sandbox_request_env.py +0 -0
  259. {archil_openapi-0.0.67 → archil_openapi-0.0.69}/src/archil_openapi/models/create_share_url_request.py +0 -0
  260. {archil_openapi-0.0.67 → archil_openapi-0.0.69}/src/archil_openapi/models/created_sandbox_port_token.py +0 -0
  261. {archil_openapi-0.0.67 → archil_openapi-0.0.69}/src/archil_openapi/models/delegation_entry.py +0 -0
  262. {archil_openapi-0.0.67 → archil_openapi-0.0.69}/src/archil_openapi/models/disk_metrics.py +0 -0
  263. {archil_openapi-0.0.67 → archil_openapi-0.0.69}/src/archil_openapi/models/disk_response.py +0 -0
  264. {archil_openapi-0.0.67 → archil_openapi-0.0.69}/src/archil_openapi/models/disk_response_capabilities_item.py +0 -0
  265. {archil_openapi-0.0.67 → archil_openapi-0.0.69}/src/archil_openapi/models/disk_response_status.py +0 -0
  266. {archil_openapi-0.0.67 → archil_openapi-0.0.69}/src/archil_openapi/models/error_response.py +0 -0
  267. {archil_openapi-0.0.67 → archil_openapi-0.0.69}/src/archil_openapi/models/exec_disk_request.py +0 -0
  268. {archil_openapi-0.0.67 → archil_openapi-0.0.69}/src/archil_openapi/models/exec_disk_result.py +0 -0
  269. {archil_openapi-0.0.67 → archil_openapi-0.0.69}/src/archil_openapi/models/exec_mount.py +0 -0
  270. {archil_openapi-0.0.67 → archil_openapi-0.0.69}/src/archil_openapi/models/exec_request.py +0 -0
  271. {archil_openapi-0.0.67 → archil_openapi-0.0.69}/src/archil_openapi/models/exec_request_disks.py +0 -0
  272. {archil_openapi-0.0.67 → archil_openapi-0.0.69}/src/archil_openapi/models/exec_timing.py +0 -0
  273. {archil_openapi-0.0.67 → archil_openapi-0.0.69}/src/archil_openapi/models/fork_sandbox_request.py +0 -0
  274. {archil_openapi-0.0.67 → archil_openapi-0.0.69}/src/archil_openapi/models/get_billing_usage_for.py +0 -0
  275. {archil_openapi-0.0.67 → archil_openapi-0.0.69}/src/archil_openapi/models/get_billing_usage_granularity.py +0 -0
  276. {archil_openapi-0.0.67 → archil_openapi-0.0.69}/src/archil_openapi/models/google_cloud_storage.py +0 -0
  277. {archil_openapi-0.0.67 → archil_openapi-0.0.69}/src/archil_openapi/models/google_cloud_storage_type.py +0 -0
  278. {archil_openapi-0.0.67 → archil_openapi-0.0.69}/src/archil_openapi/models/grep_disk_request.py +0 -0
  279. {archil_openapi-0.0.67 → archil_openapi-0.0.69}/src/archil_openapi/models/grep_group.py +0 -0
  280. {archil_openapi-0.0.67 → archil_openapi-0.0.69}/src/archil_openapi/models/grep_group_line.py +0 -0
  281. {archil_openapi-0.0.67 → archil_openapi-0.0.69}/src/archil_openapi/models/grep_match.py +0 -0
  282. {archil_openapi-0.0.67 → archil_openapi-0.0.69}/src/archil_openapi/models/grep_stopped_reason.py +0 -0
  283. {archil_openapi-0.0.67 → archil_openapi-0.0.69}/src/archil_openapi/models/image.py +0 -0
  284. {archil_openapi-0.0.67 → archil_openapi-0.0.69}/src/archil_openapi/models/image_failure_reason.py +0 -0
  285. {archil_openapi-0.0.67 → archil_openapi-0.0.69}/src/archil_openapi/models/image_state.py +0 -0
  286. {archil_openapi-0.0.67 → archil_openapi-0.0.69}/src/archil_openapi/models/list_activity_level_item.py +0 -0
  287. {archil_openapi-0.0.67 → archil_openapi-0.0.69}/src/archil_openapi/models/mount_config_response.py +0 -0
  288. {archil_openapi-0.0.67 → archil_openapi-0.0.69}/src/archil_openapi/models/mount_response.py +0 -0
  289. {archil_openapi-0.0.67 → archil_openapi-0.0.69}/src/archil_openapi/models/mount_response_access_mode.py +0 -0
  290. {archil_openapi-0.0.67 → archil_openapi-0.0.69}/src/archil_openapi/models/mount_response_authorization_type.py +0 -0
  291. {archil_openapi-0.0.67 → archil_openapi-0.0.69}/src/archil_openapi/models/mount_response_connection_status.py +0 -0
  292. {archil_openapi-0.0.67 → archil_openapi-0.0.69}/src/archil_openapi/models/mount_response_type.py +0 -0
  293. {archil_openapi-0.0.67 → archil_openapi-0.0.69}/src/archil_openapi/models/prefetch_range.py +0 -0
  294. {archil_openapi-0.0.67 → archil_openapi-0.0.69}/src/archil_openapi/models/prefetch_range_result.py +0 -0
  295. {archil_openapi-0.0.67 → archil_openapi-0.0.69}/src/archil_openapi/models/prefetch_range_result_error.py +0 -0
  296. {archil_openapi-0.0.67 → archil_openapi-0.0.69}/src/archil_openapi/models/prefetch_request.py +0 -0
  297. {archil_openapi-0.0.67 → archil_openapi-0.0.69}/src/archil_openapi/models/registry_auth.py +0 -0
  298. {archil_openapi-0.0.67 → archil_openapi-0.0.69}/src/archil_openapi/models/revoke_delegation_request.py +0 -0
  299. {archil_openapi-0.0.67 → archil_openapi-0.0.69}/src/archil_openapi/models/root_attrs.py +0 -0
  300. {archil_openapi-0.0.67 → archil_openapi-0.0.69}/src/archil_openapi/models/s3.py +0 -0
  301. {archil_openapi-0.0.67 → archil_openapi-0.0.69}/src/archil_openapi/models/s3_compatible.py +0 -0
  302. {archil_openapi-0.0.67 → archil_openapi-0.0.69}/src/archil_openapi/models/s3_compatible_type.py +0 -0
  303. {archil_openapi-0.0.67 → archil_openapi-0.0.69}/src/archil_openapi/models/s3_type.py +0 -0
  304. {archil_openapi-0.0.67 → archil_openapi-0.0.69}/src/archil_openapi/models/sandbox_connection.py +0 -0
  305. {archil_openapi-0.0.67 → archil_openapi-0.0.69}/src/archil_openapi/models/sandbox_egress_policy.py +0 -0
  306. {archil_openapi-0.0.67 → archil_openapi-0.0.69}/src/archil_openapi/models/sandbox_egress_rule.py +0 -0
  307. {archil_openapi-0.0.67 → archil_openapi-0.0.69}/src/archil_openapi/models/sandbox_egress_transform.py +0 -0
  308. {archil_openapi-0.0.67 → archil_openapi-0.0.69}/src/archil_openapi/models/sandbox_egress_transform_headers.py +0 -0
  309. {archil_openapi-0.0.67 → archil_openapi-0.0.69}/src/archil_openapi/models/sandbox_endpoint.py +0 -0
  310. {archil_openapi-0.0.67 → archil_openapi-0.0.69}/src/archil_openapi/models/sandbox_mount.py +0 -0
  311. {archil_openapi-0.0.67 → archil_openapi-0.0.69}/src/archil_openapi/models/sandbox_network.py +0 -0
  312. {archil_openapi-0.0.67 → archil_openapi-0.0.69}/src/archil_openapi/models/sandbox_network_action.py +0 -0
  313. {archil_openapi-0.0.67 → archil_openapi-0.0.69}/src/archil_openapi/models/sandbox_platform.py +0 -0
  314. {archil_openapi-0.0.67 → archil_openapi-0.0.69}/src/archil_openapi/models/sandbox_port.py +0 -0
  315. {archil_openapi-0.0.67 → archil_openapi-0.0.69}/src/archil_openapi/models/sandbox_port_list.py +0 -0
  316. {archil_openapi-0.0.67 → archil_openapi-0.0.69}/src/archil_openapi/models/sandbox_port_token.py +0 -0
  317. {archil_openapi-0.0.67 → archil_openapi-0.0.69}/src/archil_openapi/models/sandbox_port_token_list.py +0 -0
  318. {archil_openapi-0.0.67 → archil_openapi-0.0.69}/src/archil_openapi/models/sandbox_state.py +0 -0
  319. {archil_openapi-0.0.67 → archil_openapi-0.0.69}/src/archil_openapi/models/set_allowed_i_ps_body.py +0 -0
  320. {archil_openapi-0.0.67 → archil_openapi-0.0.69}/src/archil_openapi/models/set_billing_default_payment_method_body.py +0 -0
  321. {archil_openapi-0.0.67 → archil_openapi-0.0.69}/src/archil_openapi/models/set_sandbox_mount_body.py +0 -0
  322. {archil_openapi-0.0.67 → archil_openapi-0.0.69}/src/archil_openapi/models/start_sandbox_request.py +0 -0
  323. {archil_openapi-0.0.67 → archil_openapi-0.0.69}/src/archil_openapi/models/token_user.py +0 -0
  324. {archil_openapi-0.0.67 → archil_openapi-0.0.69}/src/archil_openapi/models/token_user_type.py +0 -0
  325. {archil_openapi-0.0.67 → archil_openapi-0.0.69}/src/archil_openapi/models/update_billing_payment_method_body.py +0 -0
  326. {archil_openapi-0.0.67 → archil_openapi-0.0.69}/src/archil_openapi/models/update_billing_profile_body.py +0 -0
  327. {archil_openapi-0.0.67 → archil_openapi-0.0.69}/src/archil_openapi/py.typed +0 -0
  328. {archil_openapi-0.0.67 → archil_openapi-0.0.69}/src/archil_openapi/types.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.3
2
2
  Name: archil-openapi
3
- Version: 0.0.67
3
+ Version: 0.0.69
4
4
  Summary: Generated low-level Python client for the Archil control plane API
5
5
  Keywords: archil,openapi
6
6
  Author: Archil, Inc.
@@ -1,6 +1,6 @@
1
1
  [project]
2
2
  name = "archil-openapi"
3
- version = "0.0.67"
3
+ version = "0.0.69"
4
4
  description = "Generated low-level Python client for the Archil control plane API"
5
5
  readme = "README.md"
6
6
  license = { file = "LICENSE" }
@@ -8,6 +8,7 @@ from ...client import AuthenticatedClient, Client
8
8
  from ...models.api_response_authorized_user import ApiResponseAuthorizedUser
9
9
  from ...models.aws_sts_user import AwsStsUser
10
10
  from ...models.error_response import ErrorResponse
11
+ from ...models.s3_user import S3User
11
12
  from ...models.token_user import TokenUser
12
13
  from ...types import Response
13
14
 
@@ -15,7 +16,7 @@ from ...types import Response
15
16
  def _get_kwargs(
16
17
  id: str,
17
18
  *,
18
- body: Union["AwsStsUser", "TokenUser"],
19
+ body: Union["AwsStsUser", "S3User", "TokenUser"],
19
20
  ) -> dict[str, Any]:
20
21
  headers: dict[str, Any] = {}
21
22
 
@@ -29,6 +30,8 @@ def _get_kwargs(
29
30
  _kwargs["json"]: dict[str, Any]
30
31
  if isinstance(body, TokenUser):
31
32
  _kwargs["json"] = body.to_dict()
33
+ elif isinstance(body, AwsStsUser):
34
+ _kwargs["json"] = body.to_dict()
32
35
  else:
33
36
  _kwargs["json"] = body.to_dict()
34
37
 
@@ -82,17 +85,21 @@ def sync_detailed(
82
85
  id: str,
83
86
  *,
84
87
  client: AuthenticatedClient,
85
- body: Union["AwsStsUser", "TokenUser"],
88
+ body: Union["AwsStsUser", "S3User", "TokenUser"],
86
89
  ) -> Response[Union[ApiResponseAuthorizedUser, ErrorResponse]]:
87
90
  """Add user to disk
88
91
 
89
92
  Adds an authorized user to a disk. Users can authenticate via:
90
93
  - **token**: A shared token with a nickname and 4-character suffix
91
94
  - **awssts**: AWS STS role assumption with an IAM principal ARN
95
+ - **s3**: An S3 access key pair for the disk's S3-compatible endpoint.
96
+ The server generates both keys; the secret key is returned only in
97
+ this response. The credential covers the whole disk, so keep it on
98
+ your server and hand clients presigned URLs instead of the keys.
92
99
 
93
100
  Args:
94
101
  id (str): Example: dsk-0123456789abcdef.
95
- body (Union['AwsStsUser', 'TokenUser']):
102
+ body (Union['AwsStsUser', 'S3User', 'TokenUser']):
96
103
 
97
104
  Raises:
98
105
  errors.UnexpectedStatus: If the server returns an undocumented status code and Client.raise_on_unexpected_status is True.
@@ -118,17 +125,21 @@ def sync(
118
125
  id: str,
119
126
  *,
120
127
  client: AuthenticatedClient,
121
- body: Union["AwsStsUser", "TokenUser"],
128
+ body: Union["AwsStsUser", "S3User", "TokenUser"],
122
129
  ) -> Optional[Union[ApiResponseAuthorizedUser, ErrorResponse]]:
123
130
  """Add user to disk
124
131
 
125
132
  Adds an authorized user to a disk. Users can authenticate via:
126
133
  - **token**: A shared token with a nickname and 4-character suffix
127
134
  - **awssts**: AWS STS role assumption with an IAM principal ARN
135
+ - **s3**: An S3 access key pair for the disk's S3-compatible endpoint.
136
+ The server generates both keys; the secret key is returned only in
137
+ this response. The credential covers the whole disk, so keep it on
138
+ your server and hand clients presigned URLs instead of the keys.
128
139
 
129
140
  Args:
130
141
  id (str): Example: dsk-0123456789abcdef.
131
- body (Union['AwsStsUser', 'TokenUser']):
142
+ body (Union['AwsStsUser', 'S3User', 'TokenUser']):
132
143
 
133
144
  Raises:
134
145
  errors.UnexpectedStatus: If the server returns an undocumented status code and Client.raise_on_unexpected_status is True.
@@ -149,17 +160,21 @@ async def asyncio_detailed(
149
160
  id: str,
150
161
  *,
151
162
  client: AuthenticatedClient,
152
- body: Union["AwsStsUser", "TokenUser"],
163
+ body: Union["AwsStsUser", "S3User", "TokenUser"],
153
164
  ) -> Response[Union[ApiResponseAuthorizedUser, ErrorResponse]]:
154
165
  """Add user to disk
155
166
 
156
167
  Adds an authorized user to a disk. Users can authenticate via:
157
168
  - **token**: A shared token with a nickname and 4-character suffix
158
169
  - **awssts**: AWS STS role assumption with an IAM principal ARN
170
+ - **s3**: An S3 access key pair for the disk's S3-compatible endpoint.
171
+ The server generates both keys; the secret key is returned only in
172
+ this response. The credential covers the whole disk, so keep it on
173
+ your server and hand clients presigned URLs instead of the keys.
159
174
 
160
175
  Args:
161
176
  id (str): Example: dsk-0123456789abcdef.
162
- body (Union['AwsStsUser', 'TokenUser']):
177
+ body (Union['AwsStsUser', 'S3User', 'TokenUser']):
163
178
 
164
179
  Raises:
165
180
  errors.UnexpectedStatus: If the server returns an undocumented status code and Client.raise_on_unexpected_status is True.
@@ -183,17 +198,21 @@ async def asyncio(
183
198
  id: str,
184
199
  *,
185
200
  client: AuthenticatedClient,
186
- body: Union["AwsStsUser", "TokenUser"],
201
+ body: Union["AwsStsUser", "S3User", "TokenUser"],
187
202
  ) -> Optional[Union[ApiResponseAuthorizedUser, ErrorResponse]]:
188
203
  """Add user to disk
189
204
 
190
205
  Adds an authorized user to a disk. Users can authenticate via:
191
206
  - **token**: A shared token with a nickname and 4-character suffix
192
207
  - **awssts**: AWS STS role assumption with an IAM principal ARN
208
+ - **s3**: An S3 access key pair for the disk's S3-compatible endpoint.
209
+ The server generates both keys; the secret key is returned only in
210
+ this response. The credential covers the whole disk, so keep it on
211
+ your server and hand clients presigned URLs instead of the keys.
193
212
 
194
213
  Args:
195
214
  id (str): Example: dsk-0123456789abcdef.
196
- body (Union['AwsStsUser', 'TokenUser']):
215
+ body (Union['AwsStsUser', 'S3User', 'TokenUser']):
197
216
 
198
217
  Raises:
199
218
  errors.UnexpectedStatus: If the server returns an undocumented status code and Client.raise_on_unexpected_status is True.
@@ -48,6 +48,11 @@ def _parse_response(
48
48
 
49
49
  return response_401
50
50
 
51
+ if response.status_code == 403:
52
+ response_403 = ErrorResponse.from_dict(response.json())
53
+
54
+ return response_403
55
+
51
56
  if response.status_code == 404:
52
57
  response_404 = ErrorResponse.from_dict(response.json())
53
58
 
@@ -51,6 +51,11 @@ def _parse_response(
51
51
 
52
52
  return response_401
53
53
 
54
+ if response.status_code == 403:
55
+ response_403 = ErrorResponse.from_dict(response.json())
56
+
57
+ return response_403
58
+
54
59
  if response.status_code == 404:
55
60
  response_404 = ErrorResponse.from_dict(response.json())
56
61
 
@@ -105,9 +105,10 @@ def sync_detailed(
105
105
  breadth-first and grep workers are dispatched as soon as each level
106
106
  finishes listing — listing and matching overlap.
107
107
 
108
- The matches returned when stopping early on `maxResults` are a sample
109
- of whichever workers reported first, not the lexicographically first
110
- N. The response surfaces `stoppedReason` so callers can distinguish
108
+ The matches returned when stopping early on `maxResults`, or on the
109
+ 32 MiB limit on match and context text, are a sample of whichever
110
+ workers reported first, not the lexicographically first N. The
111
+ response surfaces `stoppedReason` so callers can distinguish
111
112
  completion from early termination.
112
113
 
113
114
  Args:
@@ -161,9 +162,10 @@ def sync(
161
162
  breadth-first and grep workers are dispatched as soon as each level
162
163
  finishes listing — listing and matching overlap.
163
164
 
164
- The matches returned when stopping early on `maxResults` are a sample
165
- of whichever workers reported first, not the lexicographically first
166
- N. The response surfaces `stoppedReason` so callers can distinguish
165
+ The matches returned when stopping early on `maxResults`, or on the
166
+ 32 MiB limit on match and context text, are a sample of whichever
167
+ workers reported first, not the lexicographically first N. The
168
+ response surfaces `stoppedReason` so callers can distinguish
167
169
  completion from early termination.
168
170
 
169
171
  Args:
@@ -212,9 +214,10 @@ async def asyncio_detailed(
212
214
  breadth-first and grep workers are dispatched as soon as each level
213
215
  finishes listing — listing and matching overlap.
214
216
 
215
- The matches returned when stopping early on `maxResults` are a sample
216
- of whichever workers reported first, not the lexicographically first
217
- N. The response surfaces `stoppedReason` so callers can distinguish
217
+ The matches returned when stopping early on `maxResults`, or on the
218
+ 32 MiB limit on match and context text, are a sample of whichever
219
+ workers reported first, not the lexicographically first N. The
220
+ response surfaces `stoppedReason` so callers can distinguish
218
221
  completion from early termination.
219
222
 
220
223
  Args:
@@ -266,9 +269,10 @@ async def asyncio(
266
269
  breadth-first and grep workers are dispatched as soon as each level
267
270
  finishes listing — listing and matching overlap.
268
271
 
269
- The matches returned when stopping early on `maxResults` are a sample
270
- of whichever workers reported first, not the lexicographically first
271
- N. The response surfaces `stoppedReason` so callers can distinguish
272
+ The matches returned when stopping early on `maxResults`, or on the
273
+ 32 MiB limit on match and context text, are a sample of whichever
274
+ workers reported first, not the lexicographically first N. The
275
+ response surfaces `stoppedReason` so callers can distinguish
272
276
  completion from early termination.
273
277
 
274
278
  Args:
@@ -56,6 +56,11 @@ def _parse_response(
56
56
 
57
57
  return response_401
58
58
 
59
+ if response.status_code == 403:
60
+ response_403 = ErrorResponse.from_dict(response.json())
61
+
62
+ return response_403
63
+
59
64
  if response.status_code == 404:
60
65
  response_404 = ErrorResponse.from_dict(response.json())
61
66
 
@@ -60,6 +60,11 @@ def _parse_response(
60
60
 
61
61
  return response_401
62
62
 
63
+ if response.status_code == 403:
64
+ response_403 = ErrorResponse.from_dict(response.json())
65
+
66
+ return response_403
67
+
63
68
  if response.status_code == 404:
64
69
  response_404 = ErrorResponse.from_dict(response.json())
65
70
 
@@ -56,6 +56,11 @@ def _parse_response(
56
56
 
57
57
  return response_401
58
58
 
59
+ if response.status_code == 403:
60
+ response_403 = ErrorResponse.from_dict(response.json())
61
+
62
+ return response_403
63
+
59
64
  if response.status_code == 404:
60
65
  response_404 = ErrorResponse.from_dict(response.json())
61
66
 
@@ -52,6 +52,11 @@ def _parse_response(
52
52
 
53
53
  return response_401
54
54
 
55
+ if response.status_code == 403:
56
+ response_403 = ErrorResponse.from_dict(response.json())
57
+
58
+ return response_403
59
+
55
60
  if response.status_code == 404:
56
61
  response_404 = ErrorResponse.from_dict(response.json())
57
62
 
@@ -65,6 +65,11 @@ def _parse_response(
65
65
 
66
66
  return response_401
67
67
 
68
+ if response.status_code == 403:
69
+ response_403 = ErrorResponse.from_dict(response.json())
70
+
71
+ return response_403
72
+
68
73
  if response.status_code == 404:
69
74
  response_404 = ErrorResponse.from_dict(response.json())
70
75
 
@@ -216,6 +216,8 @@ from .s3 import S3
216
216
  from .s3_compatible import S3Compatible
217
217
  from .s3_compatible_type import S3CompatibleType
218
218
  from .s3_type import S3Type
219
+ from .s3_user import S3User
220
+ from .s3_user_type import S3UserType
219
221
  from .sandbox import Sandbox
220
222
  from .sandbox_connection import SandboxConnection
221
223
  from .sandbox_egress_policy import SandboxEgressPolicy
@@ -459,6 +461,8 @@ __all__ = (
459
461
  "S3Compatible",
460
462
  "S3CompatibleType",
461
463
  "S3Type",
464
+ "S3User",
465
+ "S3UserType",
462
466
  "Sandbox",
463
467
  "SandboxConnection",
464
468
  "SandboxEgressPolicy",
@@ -23,16 +23,20 @@ class AuthorizedUser:
23
23
  token_suffix (Union[Unset, str]):
24
24
  token (Union[Unset, str]): The generated mount token. Only present in the response when the server generates the
25
25
  token (i.e. principal was not provided). This value is shown exactly once and cannot be retrieved again.
26
+ s_3_access_key_id (Union[Unset, str]): The S3 access key ID. Only present for s3 users.
27
+ s_3_secret_key (Union[Unset, str]): The generated S3 secret access key. Only present in the creation response
28
+ for s3 users. This value is shown exactly once and cannot be retrieved again.
26
29
  identifier (Union[Unset, str]): Stable identifier for this user, returned in creation and list responses. Use
27
30
  this value with DELETE /api/disks/{id}/users/{type}?identifier={identifier} to remove the user. For awssts
28
- users, this is the IAM ARN.
31
+ users, this is the IAM ARN; for s3 users, the access key ID.
29
32
  created_at (Union[Unset, datetime.datetime]):
30
33
  expires_at (Union[Unset, datetime.datetime]): When the token expires. Absent for tokens without a TTL.
31
34
  one_use (Union[Unset, bool]): Whether this token is single-use.
32
35
  consumed_at (Union[Unset, datetime.datetime]): When the one-use token was consumed (first successful mount
33
36
  auth). Absent if the token has not been consumed or is not one-use.
34
37
  read_only (Union[Unset, bool]): Whether this token grants read-only access.
35
- status (Union[Unset, AuthorizedUserStatus]): Current lifecycle status of the token.
38
+ status (Union[Unset, AuthorizedUserStatus]): Current lifecycle status of the token. `in_use` means a one-use
39
+ token is being consumed by a mount that is still in progress.
36
40
  """
37
41
 
38
42
  type_: Union[Unset, AuthorizedUserType] = UNSET
@@ -40,6 +44,8 @@ class AuthorizedUser:
40
44
  nickname: Union[Unset, str] = UNSET
41
45
  token_suffix: Union[Unset, str] = UNSET
42
46
  token: Union[Unset, str] = UNSET
47
+ s_3_access_key_id: Union[Unset, str] = UNSET
48
+ s_3_secret_key: Union[Unset, str] = UNSET
43
49
  identifier: Union[Unset, str] = UNSET
44
50
  created_at: Union[Unset, datetime.datetime] = UNSET
45
51
  expires_at: Union[Unset, datetime.datetime] = UNSET
@@ -62,6 +68,10 @@ class AuthorizedUser:
62
68
 
63
69
  token = self.token
64
70
 
71
+ s_3_access_key_id = self.s_3_access_key_id
72
+
73
+ s_3_secret_key = self.s_3_secret_key
74
+
65
75
  identifier = self.identifier
66
76
 
67
77
  created_at: Union[Unset, str] = UNSET
@@ -97,6 +107,10 @@ class AuthorizedUser:
97
107
  field_dict["tokenSuffix"] = token_suffix
98
108
  if token is not UNSET:
99
109
  field_dict["token"] = token
110
+ if s_3_access_key_id is not UNSET:
111
+ field_dict["s3AccessKeyId"] = s_3_access_key_id
112
+ if s_3_secret_key is not UNSET:
113
+ field_dict["s3SecretKey"] = s_3_secret_key
100
114
  if identifier is not UNSET:
101
115
  field_dict["identifier"] = identifier
102
116
  if created_at is not UNSET:
@@ -132,6 +146,10 @@ class AuthorizedUser:
132
146
 
133
147
  token = d.pop("token", UNSET)
134
148
 
149
+ s_3_access_key_id = d.pop("s3AccessKeyId", UNSET)
150
+
151
+ s_3_secret_key = d.pop("s3SecretKey", UNSET)
152
+
135
153
  identifier = d.pop("identifier", UNSET)
136
154
 
137
155
  _created_at = d.pop("createdAt", UNSET)
@@ -172,6 +190,8 @@ class AuthorizedUser:
172
190
  nickname=nickname,
173
191
  token_suffix=token_suffix,
174
192
  token=token,
193
+ s_3_access_key_id=s_3_access_key_id,
194
+ s_3_secret_key=s_3_secret_key,
175
195
  identifier=identifier,
176
196
  created_at=created_at,
177
197
  expires_at=expires_at,
@@ -5,6 +5,7 @@ class AuthorizedUserStatus(str, Enum):
5
5
  ACTIVE = "active"
6
6
  CONSUMED = "consumed"
7
7
  EXPIRED = "expired"
8
+ IN_USE = "in_use"
8
9
 
9
10
  def __str__(self) -> str:
10
11
  return str(self.value)
@@ -3,6 +3,7 @@ from enum import Enum
3
3
 
4
4
  class AuthorizedUserType(str, Enum):
5
5
  AWSSTS = "awssts"
6
+ S3 = "s3"
6
7
  TOKEN = "token"
7
8
 
8
9
  def __str__(self) -> str:
@@ -14,6 +14,7 @@ if TYPE_CHECKING:
14
14
  from ..models.root_attrs import RootAttrs
15
15
  from ..models.s3 import S3
16
16
  from ..models.s3_compatible import S3Compatible
17
+ from ..models.s3_user import S3User
17
18
  from ..models.token_user import TokenUser
18
19
 
19
20
 
@@ -30,8 +31,8 @@ class CreateDiskRequest:
30
31
  allowed_ips (Union[Unset, list[str]]): IP allowlist for mount access. When non-empty, only clients connecting
31
32
  from these IPs or CIDR ranges can mount the disk. An empty list (default) allows all IPs.
32
33
  Example: ['203.0.113.0/24', '198.51.100.42'].
33
- auth_methods (Union[Unset, list[Union['AwsStsUser', 'TokenUser']]]): Deprecated. Use AddDiskUser after creation
34
- instead. When provided, suppresses the default auto-generated token user.
34
+ auth_methods (Union[Unset, list[Union['AwsStsUser', 'S3User', 'TokenUser']]]): Deprecated. Use AddDiskUser after
35
+ creation instead. When provided, suppresses the default auto-generated token user.
35
36
  root_attrs (Union[Unset, RootAttrs]): POSIX attributes for the disk's root directory, applied when the disk is
36
37
  created. Lets an unprivileged process own the mount root without a post-mount `chown`. Can only be set at
37
38
  creation; a later `chown`/`chmod` through a mount changes the live attributes as usual. Defaults to uid 0, gid
@@ -45,12 +46,13 @@ class CreateDiskRequest:
45
46
  Unset, list[Union["AzureBlobStorage", "CloudflareR2", "GoogleCloudStorage", "S3", "S3Compatible"]]
46
47
  ] = UNSET
47
48
  allowed_ips: Union[Unset, list[str]] = UNSET
48
- auth_methods: Union[Unset, list[Union["AwsStsUser", "TokenUser"]]] = UNSET
49
+ auth_methods: Union[Unset, list[Union["AwsStsUser", "S3User", "TokenUser"]]] = UNSET
49
50
  root_attrs: Union[Unset, "RootAttrs"] = UNSET
50
51
  min_client_version: Union[Unset, str] = UNSET
51
52
  additional_properties: dict[str, Any] = _attrs_field(init=False, factory=dict)
52
53
 
53
54
  def to_dict(self) -> dict[str, Any]:
55
+ from ..models.aws_sts_user import AwsStsUser
54
56
  from ..models.cloudflare_r2 import CloudflareR2
55
57
  from ..models.google_cloud_storage import GoogleCloudStorage
56
58
  from ..models.s3 import S3
@@ -88,6 +90,8 @@ class CreateDiskRequest:
88
90
  auth_methods_item: dict[str, Any]
89
91
  if isinstance(auth_methods_item_data, TokenUser):
90
92
  auth_methods_item = auth_methods_item_data.to_dict()
93
+ elif isinstance(auth_methods_item_data, AwsStsUser):
94
+ auth_methods_item = auth_methods_item_data.to_dict()
91
95
  else:
92
96
  auth_methods_item = auth_methods_item_data.to_dict()
93
97
 
@@ -128,6 +132,7 @@ class CreateDiskRequest:
128
132
  from ..models.root_attrs import RootAttrs
129
133
  from ..models.s3 import S3
130
134
  from ..models.s3_compatible import S3Compatible
135
+ from ..models.s3_user import S3User
131
136
  from ..models.token_user import TokenUser
132
137
 
133
138
  d = dict(src_dict)
@@ -188,7 +193,7 @@ class CreateDiskRequest:
188
193
  _auth_methods = d.pop("authMethods", UNSET)
189
194
  for auth_methods_item_data in _auth_methods or []:
190
195
 
191
- def _parse_auth_methods_item(data: object) -> Union["AwsStsUser", "TokenUser"]:
196
+ def _parse_auth_methods_item(data: object) -> Union["AwsStsUser", "S3User", "TokenUser"]:
192
197
  try:
193
198
  if not isinstance(data, dict):
194
199
  raise TypeError()
@@ -197,11 +202,19 @@ class CreateDiskRequest:
197
202
  return componentsschemas_disk_user_type_0
198
203
  except: # noqa: E722
199
204
  pass
205
+ try:
206
+ if not isinstance(data, dict):
207
+ raise TypeError()
208
+ componentsschemas_disk_user_type_1 = AwsStsUser.from_dict(data)
209
+
210
+ return componentsschemas_disk_user_type_1
211
+ except: # noqa: E722
212
+ pass
200
213
  if not isinstance(data, dict):
201
214
  raise TypeError()
202
- componentsschemas_disk_user_type_1 = AwsStsUser.from_dict(data)
215
+ componentsschemas_disk_user_type_2 = S3User.from_dict(data)
203
216
 
204
- return componentsschemas_disk_user_type_1
217
+ return componentsschemas_disk_user_type_2
205
218
 
206
219
  auth_methods_item = _parse_auth_methods_item(auth_methods_item_data)
207
220
 
@@ -45,7 +45,10 @@ class CreateSandboxRequest:
45
45
  `start` can replace them for later sessions. Inherited by forks. A sandbox with mounts must be stopped before it
46
46
  can be forked.
47
47
  max_ttl_seconds (Union[Unset, int]): Lifetime budget applied independently to each powered-on session. Expiry
48
- pauses the sandbox, preserving memory and processes for resume. Default: 86400.
48
+ pauses the sandbox, preserving memory and processes for resume. An omitted value is lowered to the longest
49
+ session the plan allows for the sandbox's size (its session ceiling, then the remaining monthly allowance); an
50
+ explicit value past that is refused with 403 (`sandbox_ttl_limit_exceeded` or `allowance_insufficient`).
51
+ Default: 86400.
49
52
  idle_ttl_seconds (Union[Unset, int]): Pause after this many seconds without a direct process connection,
50
53
  preserving memory and processes for resume. Defaults to 30 minutes; zero disables idle expiry. Default: 1800.
51
54
  max_concurrent_execs (Union[Unset, int]): Maximum number of concurrently attached process sessions. Detached
@@ -26,7 +26,8 @@ class GrepDiskResult:
26
26
  batches errored (invalid regex, unreadable file, runtime issue) or
27
27
  exceeded the 4 MiB output limit.
28
28
  Results may be partial or wrong; do not rely on completeness.
29
- - `max_results`: hit `maxResults` before scanning everything.
29
+ - `max_results`: hit `maxResults`, or the response size limit
30
+ (32 MiB of match and context text), before scanning everything.
30
31
  - `deadline`: hit `maxDurationSeconds`.
31
32
  - `list_failed`: directory listing failed; partial results
32
33
  may be present.
@@ -3,6 +3,7 @@ from enum import Enum
3
3
 
4
4
  class RemoveDiskUserUserType(str, Enum):
5
5
  AWSSTS = "awssts"
6
+ S3 = "s3"
6
7
  TOKEN = "token"
7
8
 
8
9
  def __str__(self) -> str:
@@ -0,0 +1,114 @@
1
+ import datetime
2
+ from collections.abc import Mapping
3
+ from typing import Any, TypeVar, Union
4
+
5
+ from attrs import define as _attrs_define
6
+ from attrs import field as _attrs_field
7
+ from dateutil.parser import isoparse
8
+
9
+ from ..models.s3_user_type import S3UserType
10
+ from ..types import UNSET, Unset
11
+
12
+ T = TypeVar("T", bound="S3User")
13
+
14
+
15
+ @_attrs_define
16
+ class S3User:
17
+ """S3 access key pair for the disk's S3-compatible endpoint. Both keys are generated by the server. The credential
18
+ grants access to every object on the disk; there is no per-prefix scoping, so do not expose the keys to browsers or
19
+ other untrusted clients. Sign presigned URLs with them server-side instead.
20
+
21
+ Attributes:
22
+ type_ (S3UserType):
23
+ nickname (Union[Unset, str]):
24
+ ttl (Union[Unset, str]): Optional time-to-live as a Go duration string (e.g. "1h", "30m"). Maximum 365 days
25
+ ("8760h"). Requests signed with an expired key, including presigned URLs, are rejected. Mutually exclusive with
26
+ expiresAt.
27
+ expires_at (Union[Unset, datetime.datetime]): Optional absolute expiration time as an RFC3339 timestamp. Must be
28
+ in the future. Mutually exclusive with ttl.
29
+ read_only (Union[Unset, bool]): When true, the credential may only issue GET and HEAD requests. Writes, deletes,
30
+ and multipart operations are rejected with AccessDenied.
31
+ """
32
+
33
+ type_: S3UserType
34
+ nickname: Union[Unset, str] = UNSET
35
+ ttl: Union[Unset, str] = UNSET
36
+ expires_at: Union[Unset, datetime.datetime] = UNSET
37
+ read_only: Union[Unset, bool] = UNSET
38
+ additional_properties: dict[str, Any] = _attrs_field(init=False, factory=dict)
39
+
40
+ def to_dict(self) -> dict[str, Any]:
41
+ type_ = self.type_.value
42
+
43
+ nickname = self.nickname
44
+
45
+ ttl = self.ttl
46
+
47
+ expires_at: Union[Unset, str] = UNSET
48
+ if not isinstance(self.expires_at, Unset):
49
+ expires_at = self.expires_at.isoformat()
50
+
51
+ read_only = self.read_only
52
+
53
+ field_dict: dict[str, Any] = {}
54
+ field_dict.update(self.additional_properties)
55
+ field_dict.update(
56
+ {
57
+ "type": type_,
58
+ }
59
+ )
60
+ if nickname is not UNSET:
61
+ field_dict["nickname"] = nickname
62
+ if ttl is not UNSET:
63
+ field_dict["ttl"] = ttl
64
+ if expires_at is not UNSET:
65
+ field_dict["expiresAt"] = expires_at
66
+ if read_only is not UNSET:
67
+ field_dict["readOnly"] = read_only
68
+
69
+ return field_dict
70
+
71
+ @classmethod
72
+ def from_dict(cls: type[T], src_dict: Mapping[str, Any]) -> T:
73
+ d = dict(src_dict)
74
+ type_ = S3UserType(d.pop("type"))
75
+
76
+ nickname = d.pop("nickname", UNSET)
77
+
78
+ ttl = d.pop("ttl", UNSET)
79
+
80
+ _expires_at = d.pop("expiresAt", UNSET)
81
+ expires_at: Union[Unset, datetime.datetime]
82
+ if isinstance(_expires_at, Unset):
83
+ expires_at = UNSET
84
+ else:
85
+ expires_at = isoparse(_expires_at)
86
+
87
+ read_only = d.pop("readOnly", UNSET)
88
+
89
+ s3_user = cls(
90
+ type_=type_,
91
+ nickname=nickname,
92
+ ttl=ttl,
93
+ expires_at=expires_at,
94
+ read_only=read_only,
95
+ )
96
+
97
+ s3_user.additional_properties = d
98
+ return s3_user
99
+
100
+ @property
101
+ def additional_keys(self) -> list[str]:
102
+ return list(self.additional_properties.keys())
103
+
104
+ def __getitem__(self, key: str) -> Any:
105
+ return self.additional_properties[key]
106
+
107
+ def __setitem__(self, key: str, value: Any) -> None:
108
+ self.additional_properties[key] = value
109
+
110
+ def __delitem__(self, key: str) -> None:
111
+ del self.additional_properties[key]
112
+
113
+ def __contains__(self, key: str) -> bool:
114
+ return key in self.additional_properties
@@ -0,0 +1,8 @@
1
+ from enum import Enum
2
+
3
+
4
+ class S3UserType(str, Enum):
5
+ S3 = "s3"
6
+
7
+ def __str__(self) -> str:
8
+ return str(self.value)
@@ -29,8 +29,9 @@ class Sandbox:
29
29
  vcpu_count (int):
30
30
  mem_size_mib (int):
31
31
  max_ttl_seconds (int): Lifetime budget applied independently to each powered-on session. Expiry pauses the
32
- sandbox, preserving memory and processes for resume. Defaults to 24 hours. The timeout endpoint can move the
33
- deadline, but no session runs longer than 24 hours.
32
+ sandbox, preserving memory and processes for resume. Defaults to 24 hours, or to the longest session the plan
33
+ allows; a start, resume or fork lowers a stored value the plan no longer allows. The timeout endpoint can move
34
+ the deadline, but no session runs longer than 24 hours.
34
35
  idle_ttl_seconds (int): Seconds without a direct process connection before the sandbox pauses, preserving memory
35
36
  and processes for resume. Zero disables idle expiry.
36
37
  max_concurrent_execs (int): Maximum number of concurrently attached process sessions. Detached processes and