archil-openapi 0.0.32__tar.gz → 0.0.34__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 (177) hide show
  1. {archil_openapi-0.0.32 → archil_openapi-0.0.34}/PKG-INFO +1 -1
  2. {archil_openapi-0.0.32 → archil_openapi-0.0.34}/pyproject.toml +1 -1
  3. archil_openapi-0.0.34/src/archil_openapi/api/billing/get_billing_summary.py +145 -0
  4. archil_openapi-0.0.34/src/archil_openapi/api/sandboxes/__init__.py +1 -0
  5. {archil_openapi-0.0.32 → archil_openapi-0.0.34}/src/archil_openapi/api/sandboxes/create_sandbox.py +5 -0
  6. {archil_openapi-0.0.32 → archil_openapi-0.0.34}/src/archil_openapi/api/sandboxes/start_sandbox.py +29 -4
  7. {archil_openapi-0.0.32 → archil_openapi-0.0.34}/src/archil_openapi/models/__init__.py +30 -0
  8. archil_openapi-0.0.34/src/archil_openapi/models/api_response_billing_summary.py +73 -0
  9. archil_openapi-0.0.34/src/archil_openapi/models/billing_owner.py +69 -0
  10. archil_openapi-0.0.34/src/archil_openapi/models/billing_owner_type.py +9 -0
  11. archil_openapi-0.0.34/src/archil_openapi/models/billing_payment_health.py +97 -0
  12. archil_openapi-0.0.34/src/archil_openapi/models/billing_payment_health_status.py +12 -0
  13. archil_openapi-0.0.34/src/archil_openapi/models/billing_period.py +67 -0
  14. archil_openapi-0.0.34/src/archil_openapi/models/billing_scheduled_change.py +87 -0
  15. archil_openapi-0.0.34/src/archil_openapi/models/billing_scheduled_change_target_plan.py +10 -0
  16. archil_openapi-0.0.34/src/archil_openapi/models/billing_scheduled_change_type.py +9 -0
  17. archil_openapi-0.0.34/src/archil_openapi/models/billing_summary.py +166 -0
  18. archil_openapi-0.0.34/src/archil_openapi/models/billing_summary_actions.py +115 -0
  19. archil_openapi-0.0.34/src/archil_openapi/models/billing_summary_billing_mode.py +10 -0
  20. archil_openapi-0.0.34/src/archil_openapi/models/billing_summary_plan.py +11 -0
  21. {archil_openapi-0.0.32 → archil_openapi-0.0.34}/src/archil_openapi/models/create_sandbox_request.py +23 -0
  22. {archil_openapi-0.0.32 → archil_openapi-0.0.34}/src/archil_openapi/models/sandbox.py +21 -0
  23. archil_openapi-0.0.34/src/archil_openapi/models/sandbox_mount.py +110 -0
  24. archil_openapi-0.0.34/src/archil_openapi/models/start_sandbox_request.py +76 -0
  25. {archil_openapi-0.0.32 → archil_openapi-0.0.34}/LICENSE +0 -0
  26. {archil_openapi-0.0.32 → archil_openapi-0.0.34}/README.md +0 -0
  27. {archil_openapi-0.0.32 → archil_openapi-0.0.34}/src/archil_openapi/__init__.py +0 -0
  28. {archil_openapi-0.0.32 → archil_openapi-0.0.34}/src/archil_openapi/api/__init__.py +0 -0
  29. {archil_openapi-0.0.32 → archil_openapi-0.0.34}/src/archil_openapi/api/activity/__init__.py +0 -0
  30. {archil_openapi-0.0.32 → archil_openapi-0.0.34}/src/archil_openapi/api/activity/list_activity.py +0 -0
  31. {archil_openapi-0.0.32 → archil_openapi-0.0.34}/src/archil_openapi/api/api_tokens/__init__.py +0 -0
  32. {archil_openapi-0.0.32 → archil_openapi-0.0.34}/src/archil_openapi/api/api_tokens/create_api_token.py +0 -0
  33. {archil_openapi-0.0.32 → archil_openapi-0.0.34}/src/archil_openapi/api/api_tokens/delete_api_token.py +0 -0
  34. {archil_openapi-0.0.32 → archil_openapi-0.0.34}/src/archil_openapi/api/api_tokens/list_api_tokens.py +0 -0
  35. {archil_openapi-0.0.32/src/archil_openapi/api/disk_configuration → archil_openapi-0.0.34/src/archil_openapi/api/billing}/__init__.py +0 -0
  36. {archil_openapi-0.0.32/src/archil_openapi/api/disk_users → archil_openapi-0.0.34/src/archil_openapi/api/disk_configuration}/__init__.py +0 -0
  37. {archil_openapi-0.0.32 → archil_openapi-0.0.34}/src/archil_openapi/api/disk_configuration/get_allowed_i_ps.py +0 -0
  38. {archil_openapi-0.0.32 → archil_openapi-0.0.34}/src/archil_openapi/api/disk_configuration/list_delegations.py +0 -0
  39. {archil_openapi-0.0.32 → archil_openapi-0.0.34}/src/archil_openapi/api/disk_configuration/revoke_delegation.py +0 -0
  40. {archil_openapi-0.0.32 → archil_openapi-0.0.34}/src/archil_openapi/api/disk_configuration/set_allowed_i_ps.py +0 -0
  41. {archil_openapi-0.0.32/src/archil_openapi/api/disks → archil_openapi-0.0.34/src/archil_openapi/api/disk_users}/__init__.py +0 -0
  42. {archil_openapi-0.0.32 → archil_openapi-0.0.34}/src/archil_openapi/api/disk_users/add_disk_user.py +0 -0
  43. {archil_openapi-0.0.32 → archil_openapi-0.0.34}/src/archil_openapi/api/disk_users/remove_disk_user.py +0 -0
  44. {archil_openapi-0.0.32/src/archil_openapi/api/sandboxes → archil_openapi-0.0.34/src/archil_openapi/api/disks}/__init__.py +0 -0
  45. {archil_openapi-0.0.32 → archil_openapi-0.0.34}/src/archil_openapi/api/disks/create_disk.py +0 -0
  46. {archil_openapi-0.0.32 → archil_openapi-0.0.34}/src/archil_openapi/api/disks/create_share_url.py +0 -0
  47. {archil_openapi-0.0.32 → archil_openapi-0.0.34}/src/archil_openapi/api/disks/delete_disk.py +0 -0
  48. {archil_openapi-0.0.32 → archil_openapi-0.0.34}/src/archil_openapi/api/disks/exec_.py +0 -0
  49. {archil_openapi-0.0.32 → archil_openapi-0.0.34}/src/archil_openapi/api/disks/exec_disk.py +0 -0
  50. {archil_openapi-0.0.32 → archil_openapi-0.0.34}/src/archil_openapi/api/disks/get_disk.py +0 -0
  51. {archil_openapi-0.0.32 → archil_openapi-0.0.34}/src/archil_openapi/api/disks/grep_disk.py +0 -0
  52. {archil_openapi-0.0.32 → archil_openapi-0.0.34}/src/archil_openapi/api/disks/list_disks.py +0 -0
  53. {archil_openapi-0.0.32 → archil_openapi-0.0.34}/src/archil_openapi/api/sandboxes/create_sandbox_connection.py +0 -0
  54. {archil_openapi-0.0.32 → archil_openapi-0.0.34}/src/archil_openapi/api/sandboxes/create_sandbox_port_token.py +0 -0
  55. {archil_openapi-0.0.32 → archil_openapi-0.0.34}/src/archil_openapi/api/sandboxes/delete_sandbox.py +0 -0
  56. {archil_openapi-0.0.32 → archil_openapi-0.0.34}/src/archil_openapi/api/sandboxes/delete_sandbox_port.py +0 -0
  57. {archil_openapi-0.0.32 → archil_openapi-0.0.34}/src/archil_openapi/api/sandboxes/delete_sandbox_port_token.py +0 -0
  58. {archil_openapi-0.0.32 → archil_openapi-0.0.34}/src/archil_openapi/api/sandboxes/expose_sandbox_port.py +0 -0
  59. {archil_openapi-0.0.32 → archil_openapi-0.0.34}/src/archil_openapi/api/sandboxes/fork_sandbox.py +0 -0
  60. {archil_openapi-0.0.32 → archil_openapi-0.0.34}/src/archil_openapi/api/sandboxes/get_sandbox.py +0 -0
  61. {archil_openapi-0.0.32 → archil_openapi-0.0.34}/src/archil_openapi/api/sandboxes/get_sandbox_network.py +0 -0
  62. {archil_openapi-0.0.32 → archil_openapi-0.0.34}/src/archil_openapi/api/sandboxes/get_sandbox_port_token.py +0 -0
  63. {archil_openapi-0.0.32 → archil_openapi-0.0.34}/src/archil_openapi/api/sandboxes/list_sandbox_port_tokens.py +0 -0
  64. {archil_openapi-0.0.32 → archil_openapi-0.0.34}/src/archil_openapi/api/sandboxes/list_sandbox_ports.py +0 -0
  65. {archil_openapi-0.0.32 → archil_openapi-0.0.34}/src/archil_openapi/api/sandboxes/list_sandboxes.py +0 -0
  66. {archil_openapi-0.0.32 → archil_openapi-0.0.34}/src/archil_openapi/api/sandboxes/pause_sandbox.py +0 -0
  67. {archil_openapi-0.0.32 → archil_openapi-0.0.34}/src/archil_openapi/api/sandboxes/resume_sandbox.py +0 -0
  68. {archil_openapi-0.0.32 → archil_openapi-0.0.34}/src/archil_openapi/api/sandboxes/set_sandbox_timeout.py +0 -0
  69. {archil_openapi-0.0.32 → archil_openapi-0.0.34}/src/archil_openapi/api/sandboxes/stop_sandbox.py +0 -0
  70. {archil_openapi-0.0.32 → archil_openapi-0.0.34}/src/archil_openapi/api/sandboxes/update_sandbox_network.py +0 -0
  71. {archil_openapi-0.0.32 → archil_openapi-0.0.34}/src/archil_openapi/client.py +0 -0
  72. {archil_openapi-0.0.32 → archil_openapi-0.0.34}/src/archil_openapi/errors.py +0 -0
  73. {archil_openapi-0.0.32 → archil_openapi-0.0.34}/src/archil_openapi/models/activity_event.py +0 -0
  74. {archil_openapi-0.0.32 → archil_openapi-0.0.34}/src/archil_openapi/models/activity_event_details.py +0 -0
  75. {archil_openapi-0.0.32 → archil_openapi-0.0.34}/src/archil_openapi/models/activity_event_level.py +0 -0
  76. {archil_openapi-0.0.32 → archil_openapi-0.0.34}/src/archil_openapi/models/api_response_activity_list.py +0 -0
  77. {archil_openapi-0.0.32 → archil_openapi-0.0.34}/src/archil_openapi/models/api_response_allowed_i_ps.py +0 -0
  78. {archil_openapi-0.0.32 → archil_openapi-0.0.34}/src/archil_openapi/models/api_response_allowed_i_ps_data.py +0 -0
  79. {archil_openapi-0.0.32 → archil_openapi-0.0.34}/src/archil_openapi/models/api_response_authorized_user.py +0 -0
  80. {archil_openapi-0.0.32 → archil_openapi-0.0.34}/src/archil_openapi/models/api_response_create_disk.py +0 -0
  81. {archil_openapi-0.0.32 → archil_openapi-0.0.34}/src/archil_openapi/models/api_response_create_disk_data.py +0 -0
  82. {archil_openapi-0.0.32 → archil_openapi-0.0.34}/src/archil_openapi/models/api_response_created_sandbox_port_token.py +0 -0
  83. {archil_openapi-0.0.32 → archil_openapi-0.0.34}/src/archil_openapi/models/api_response_delegations.py +0 -0
  84. {archil_openapi-0.0.32 → archil_openapi-0.0.34}/src/archil_openapi/models/api_response_delegations_data.py +0 -0
  85. {archil_openapi-0.0.32 → archil_openapi-0.0.34}/src/archil_openapi/models/api_response_disk.py +0 -0
  86. {archil_openapi-0.0.32 → archil_openapi-0.0.34}/src/archil_openapi/models/api_response_disk_list.py +0 -0
  87. {archil_openapi-0.0.32 → archil_openapi-0.0.34}/src/archil_openapi/models/api_response_empty.py +0 -0
  88. {archil_openapi-0.0.32 → archil_openapi-0.0.34}/src/archil_openapi/models/api_response_exec.py +0 -0
  89. {archil_openapi-0.0.32 → archil_openapi-0.0.34}/src/archil_openapi/models/api_response_exec_disk.py +0 -0
  90. {archil_openapi-0.0.32 → archil_openapi-0.0.34}/src/archil_openapi/models/api_response_grep_disk.py +0 -0
  91. {archil_openapi-0.0.32 → archil_openapi-0.0.34}/src/archil_openapi/models/api_response_message.py +0 -0
  92. {archil_openapi-0.0.32 → archil_openapi-0.0.34}/src/archil_openapi/models/api_response_message_data.py +0 -0
  93. {archil_openapi-0.0.32 → archil_openapi-0.0.34}/src/archil_openapi/models/api_response_sandbox.py +0 -0
  94. {archil_openapi-0.0.32 → archil_openapi-0.0.34}/src/archil_openapi/models/api_response_sandbox_connection.py +0 -0
  95. {archil_openapi-0.0.32 → archil_openapi-0.0.34}/src/archil_openapi/models/api_response_sandbox_list.py +0 -0
  96. {archil_openapi-0.0.32 → archil_openapi-0.0.34}/src/archil_openapi/models/api_response_sandbox_list_data.py +0 -0
  97. {archil_openapi-0.0.32 → archil_openapi-0.0.34}/src/archil_openapi/models/api_response_sandbox_network.py +0 -0
  98. {archil_openapi-0.0.32 → archil_openapi-0.0.34}/src/archil_openapi/models/api_response_sandbox_port.py +0 -0
  99. {archil_openapi-0.0.32 → archil_openapi-0.0.34}/src/archil_openapi/models/api_response_sandbox_port_list.py +0 -0
  100. {archil_openapi-0.0.32 → archil_openapi-0.0.34}/src/archil_openapi/models/api_response_sandbox_port_token.py +0 -0
  101. {archil_openapi-0.0.32 → archil_openapi-0.0.34}/src/archil_openapi/models/api_response_sandbox_port_token_list.py +0 -0
  102. {archil_openapi-0.0.32 → archil_openapi-0.0.34}/src/archil_openapi/models/api_response_share_url.py +0 -0
  103. {archil_openapi-0.0.32 → archil_openapi-0.0.34}/src/archil_openapi/models/api_response_share_url_data.py +0 -0
  104. {archil_openapi-0.0.32 → archil_openapi-0.0.34}/src/archil_openapi/models/api_response_token_created.py +0 -0
  105. {archil_openapi-0.0.32 → archil_openapi-0.0.34}/src/archil_openapi/models/api_response_token_created_data.py +0 -0
  106. {archil_openapi-0.0.32 → archil_openapi-0.0.34}/src/archil_openapi/models/api_response_token_list.py +0 -0
  107. {archil_openapi-0.0.32 → archil_openapi-0.0.34}/src/archil_openapi/models/api_response_token_list_data.py +0 -0
  108. {archil_openapi-0.0.32 → archil_openapi-0.0.34}/src/archil_openapi/models/api_token_response.py +0 -0
  109. {archil_openapi-0.0.32 → archil_openapi-0.0.34}/src/archil_openapi/models/authorized_user.py +0 -0
  110. {archil_openapi-0.0.32 → archil_openapi-0.0.34}/src/archil_openapi/models/authorized_user_status.py +0 -0
  111. {archil_openapi-0.0.32 → archil_openapi-0.0.34}/src/archil_openapi/models/authorized_user_type.py +0 -0
  112. {archil_openapi-0.0.32 → archil_openapi-0.0.34}/src/archil_openapi/models/aws_sts_user.py +0 -0
  113. {archil_openapi-0.0.32 → archil_openapi-0.0.34}/src/archil_openapi/models/aws_sts_user_type.py +0 -0
  114. {archil_openapi-0.0.32 → archil_openapi-0.0.34}/src/archil_openapi/models/azure_blob_storage.py +0 -0
  115. {archil_openapi-0.0.32 → archil_openapi-0.0.34}/src/archil_openapi/models/azure_blob_storage_type.py +0 -0
  116. {archil_openapi-0.0.32 → archil_openapi-0.0.34}/src/archil_openapi/models/cloudflare_r2.py +0 -0
  117. {archil_openapi-0.0.32 → archil_openapi-0.0.34}/src/archil_openapi/models/cloudflare_r2_type.py +0 -0
  118. {archil_openapi-0.0.32 → archil_openapi-0.0.34}/src/archil_openapi/models/connected_client.py +0 -0
  119. {archil_openapi-0.0.32 → archil_openapi-0.0.34}/src/archil_openapi/models/create_api_token_request.py +0 -0
  120. {archil_openapi-0.0.32 → archil_openapi-0.0.34}/src/archil_openapi/models/create_disk_request.py +0 -0
  121. {archil_openapi-0.0.32 → archil_openapi-0.0.34}/src/archil_openapi/models/create_sandbox_port_token_request.py +0 -0
  122. {archil_openapi-0.0.32 → archil_openapi-0.0.34}/src/archil_openapi/models/create_sandbox_request_env.py +0 -0
  123. {archil_openapi-0.0.32 → archil_openapi-0.0.34}/src/archil_openapi/models/create_share_url_request.py +0 -0
  124. {archil_openapi-0.0.32 → archil_openapi-0.0.34}/src/archil_openapi/models/created_sandbox_port_token.py +0 -0
  125. {archil_openapi-0.0.32 → archil_openapi-0.0.34}/src/archil_openapi/models/delegation_entry.py +0 -0
  126. {archil_openapi-0.0.32 → archil_openapi-0.0.34}/src/archil_openapi/models/disk_metrics.py +0 -0
  127. {archil_openapi-0.0.32 → archil_openapi-0.0.34}/src/archil_openapi/models/disk_response.py +0 -0
  128. {archil_openapi-0.0.32 → archil_openapi-0.0.34}/src/archil_openapi/models/disk_response_capabilities_item.py +0 -0
  129. {archil_openapi-0.0.32 → archil_openapi-0.0.34}/src/archil_openapi/models/disk_response_status.py +0 -0
  130. {archil_openapi-0.0.32 → archil_openapi-0.0.34}/src/archil_openapi/models/error_response.py +0 -0
  131. {archil_openapi-0.0.32 → archil_openapi-0.0.34}/src/archil_openapi/models/exec_disk_request.py +0 -0
  132. {archil_openapi-0.0.32 → archil_openapi-0.0.34}/src/archil_openapi/models/exec_disk_result.py +0 -0
  133. {archil_openapi-0.0.32 → archil_openapi-0.0.34}/src/archil_openapi/models/exec_mount.py +0 -0
  134. {archil_openapi-0.0.32 → archil_openapi-0.0.34}/src/archil_openapi/models/exec_request.py +0 -0
  135. {archil_openapi-0.0.32 → archil_openapi-0.0.34}/src/archil_openapi/models/exec_request_disks.py +0 -0
  136. {archil_openapi-0.0.32 → archil_openapi-0.0.34}/src/archil_openapi/models/exec_timing.py +0 -0
  137. {archil_openapi-0.0.32 → archil_openapi-0.0.34}/src/archil_openapi/models/fork_sandbox_request.py +0 -0
  138. {archil_openapi-0.0.32 → archil_openapi-0.0.34}/src/archil_openapi/models/google_cloud_storage.py +0 -0
  139. {archil_openapi-0.0.32 → archil_openapi-0.0.34}/src/archil_openapi/models/google_cloud_storage_type.py +0 -0
  140. {archil_openapi-0.0.32 → archil_openapi-0.0.34}/src/archil_openapi/models/grep_disk_request.py +0 -0
  141. {archil_openapi-0.0.32 → archil_openapi-0.0.34}/src/archil_openapi/models/grep_disk_result.py +0 -0
  142. {archil_openapi-0.0.32 → archil_openapi-0.0.34}/src/archil_openapi/models/grep_match.py +0 -0
  143. {archil_openapi-0.0.32 → archil_openapi-0.0.34}/src/archil_openapi/models/grep_stopped_reason.py +0 -0
  144. {archil_openapi-0.0.32 → archil_openapi-0.0.34}/src/archil_openapi/models/list_activity_level_item.py +0 -0
  145. {archil_openapi-0.0.32 → archil_openapi-0.0.34}/src/archil_openapi/models/mount_config_response.py +0 -0
  146. {archil_openapi-0.0.32 → archil_openapi-0.0.34}/src/archil_openapi/models/mount_response.py +0 -0
  147. {archil_openapi-0.0.32 → archil_openapi-0.0.34}/src/archil_openapi/models/mount_response_access_mode.py +0 -0
  148. {archil_openapi-0.0.32 → archil_openapi-0.0.34}/src/archil_openapi/models/mount_response_authorization_type.py +0 -0
  149. {archil_openapi-0.0.32 → archil_openapi-0.0.34}/src/archil_openapi/models/mount_response_connection_status.py +0 -0
  150. {archil_openapi-0.0.32 → archil_openapi-0.0.34}/src/archil_openapi/models/mount_response_type.py +0 -0
  151. {archil_openapi-0.0.32 → archil_openapi-0.0.34}/src/archil_openapi/models/remove_disk_user_user_type.py +0 -0
  152. {archil_openapi-0.0.32 → archil_openapi-0.0.34}/src/archil_openapi/models/revoke_delegation_request.py +0 -0
  153. {archil_openapi-0.0.32 → archil_openapi-0.0.34}/src/archil_openapi/models/root_attrs.py +0 -0
  154. {archil_openapi-0.0.32 → archil_openapi-0.0.34}/src/archil_openapi/models/s3.py +0 -0
  155. {archil_openapi-0.0.32 → archil_openapi-0.0.34}/src/archil_openapi/models/s3_compatible.py +0 -0
  156. {archil_openapi-0.0.32 → archil_openapi-0.0.34}/src/archil_openapi/models/s3_compatible_type.py +0 -0
  157. {archil_openapi-0.0.32 → archil_openapi-0.0.34}/src/archil_openapi/models/s3_type.py +0 -0
  158. {archil_openapi-0.0.32 → archil_openapi-0.0.34}/src/archil_openapi/models/sandbox_connection.py +0 -0
  159. {archil_openapi-0.0.32 → archil_openapi-0.0.34}/src/archil_openapi/models/sandbox_egress_policy.py +0 -0
  160. {archil_openapi-0.0.32 → archil_openapi-0.0.34}/src/archil_openapi/models/sandbox_egress_rule.py +0 -0
  161. {archil_openapi-0.0.32 → archil_openapi-0.0.34}/src/archil_openapi/models/sandbox_egress_transform.py +0 -0
  162. {archil_openapi-0.0.32 → archil_openapi-0.0.34}/src/archil_openapi/models/sandbox_egress_transform_headers.py +0 -0
  163. {archil_openapi-0.0.32 → archil_openapi-0.0.34}/src/archil_openapi/models/sandbox_endpoint.py +0 -0
  164. {archil_openapi-0.0.32 → archil_openapi-0.0.34}/src/archil_openapi/models/sandbox_network.py +0 -0
  165. {archil_openapi-0.0.32 → archil_openapi-0.0.34}/src/archil_openapi/models/sandbox_network_action.py +0 -0
  166. {archil_openapi-0.0.32 → archil_openapi-0.0.34}/src/archil_openapi/models/sandbox_platform.py +0 -0
  167. {archil_openapi-0.0.32 → archil_openapi-0.0.34}/src/archil_openapi/models/sandbox_port.py +0 -0
  168. {archil_openapi-0.0.32 → archil_openapi-0.0.34}/src/archil_openapi/models/sandbox_port_list.py +0 -0
  169. {archil_openapi-0.0.32 → archil_openapi-0.0.34}/src/archil_openapi/models/sandbox_port_token.py +0 -0
  170. {archil_openapi-0.0.32 → archil_openapi-0.0.34}/src/archil_openapi/models/sandbox_port_token_list.py +0 -0
  171. {archil_openapi-0.0.32 → archil_openapi-0.0.34}/src/archil_openapi/models/sandbox_state.py +0 -0
  172. {archil_openapi-0.0.32 → archil_openapi-0.0.34}/src/archil_openapi/models/sandbox_timeout_request.py +0 -0
  173. {archil_openapi-0.0.32 → archil_openapi-0.0.34}/src/archil_openapi/models/set_allowed_i_ps_body.py +0 -0
  174. {archil_openapi-0.0.32 → archil_openapi-0.0.34}/src/archil_openapi/models/token_user.py +0 -0
  175. {archil_openapi-0.0.32 → archil_openapi-0.0.34}/src/archil_openapi/models/token_user_type.py +0 -0
  176. {archil_openapi-0.0.32 → archil_openapi-0.0.34}/src/archil_openapi/py.typed +0 -0
  177. {archil_openapi-0.0.32 → archil_openapi-0.0.34}/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.32
3
+ Version: 0.0.34
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.32"
3
+ version = "0.0.34"
4
4
  description = "Generated low-level Python client for the Archil control plane API"
5
5
  readme = "README.md"
6
6
  license = { file = "LICENSE" }
@@ -0,0 +1,145 @@
1
+ from http import HTTPStatus
2
+ from typing import Any, Optional, Union
3
+
4
+ import httpx
5
+
6
+ from ... import errors
7
+ from ...client import AuthenticatedClient, Client
8
+ from ...models.api_response_billing_summary import ApiResponseBillingSummary
9
+ from ...models.error_response import ErrorResponse
10
+ from ...types import Response
11
+
12
+
13
+ def _get_kwargs() -> dict[str, Any]:
14
+ _kwargs: dict[str, Any] = {
15
+ "method": "get",
16
+ "url": "/api/billing/summary",
17
+ }
18
+
19
+ return _kwargs
20
+
21
+
22
+ def _parse_response(
23
+ *, client: Union[AuthenticatedClient, Client], response: httpx.Response
24
+ ) -> Optional[Union[ApiResponseBillingSummary, ErrorResponse, str]]:
25
+ if response.status_code == 200:
26
+ response_200 = ApiResponseBillingSummary.from_dict(response.json())
27
+
28
+ return response_200
29
+
30
+ if response.status_code == 401:
31
+ response_401 = response.text
32
+ return response_401
33
+
34
+ if response.status_code == 502:
35
+ response_502 = ErrorResponse.from_dict(response.json())
36
+
37
+ return response_502
38
+
39
+ if client.raise_on_unexpected_status:
40
+ raise errors.UnexpectedStatus(response.status_code, response.content)
41
+ else:
42
+ return None
43
+
44
+
45
+ def _build_response(
46
+ *, client: Union[AuthenticatedClient, Client], response: httpx.Response
47
+ ) -> Response[Union[ApiResponseBillingSummary, ErrorResponse, str]]:
48
+ return Response(
49
+ status_code=HTTPStatus(response.status_code),
50
+ content=response.content,
51
+ headers=response.headers,
52
+ parsed=_parse_response(client=client, response=response),
53
+ )
54
+
55
+
56
+ def sync_detailed(
57
+ *,
58
+ client: AuthenticatedClient,
59
+ ) -> Response[Union[ApiResponseBillingSummary, ErrorResponse, str]]:
60
+ """Get billing summary
61
+
62
+ Returns the selected account's billing state and available actions.
63
+
64
+ Raises:
65
+ errors.UnexpectedStatus: If the server returns an undocumented status code and Client.raise_on_unexpected_status is True.
66
+ httpx.TimeoutException: If the request takes longer than Client.timeout.
67
+
68
+ Returns:
69
+ Response[Union[ApiResponseBillingSummary, ErrorResponse, str]]
70
+ """
71
+
72
+ kwargs = _get_kwargs()
73
+
74
+ response = client.get_httpx_client().request(
75
+ **kwargs,
76
+ )
77
+
78
+ return _build_response(client=client, response=response)
79
+
80
+
81
+ def sync(
82
+ *,
83
+ client: AuthenticatedClient,
84
+ ) -> Optional[Union[ApiResponseBillingSummary, ErrorResponse, str]]:
85
+ """Get billing summary
86
+
87
+ Returns the selected account's billing state and available actions.
88
+
89
+ Raises:
90
+ errors.UnexpectedStatus: If the server returns an undocumented status code and Client.raise_on_unexpected_status is True.
91
+ httpx.TimeoutException: If the request takes longer than Client.timeout.
92
+
93
+ Returns:
94
+ Union[ApiResponseBillingSummary, ErrorResponse, str]
95
+ """
96
+
97
+ return sync_detailed(
98
+ client=client,
99
+ ).parsed
100
+
101
+
102
+ async def asyncio_detailed(
103
+ *,
104
+ client: AuthenticatedClient,
105
+ ) -> Response[Union[ApiResponseBillingSummary, ErrorResponse, str]]:
106
+ """Get billing summary
107
+
108
+ Returns the selected account's billing state and available actions.
109
+
110
+ Raises:
111
+ errors.UnexpectedStatus: If the server returns an undocumented status code and Client.raise_on_unexpected_status is True.
112
+ httpx.TimeoutException: If the request takes longer than Client.timeout.
113
+
114
+ Returns:
115
+ Response[Union[ApiResponseBillingSummary, ErrorResponse, str]]
116
+ """
117
+
118
+ kwargs = _get_kwargs()
119
+
120
+ response = await client.get_async_httpx_client().request(**kwargs)
121
+
122
+ return _build_response(client=client, response=response)
123
+
124
+
125
+ async def asyncio(
126
+ *,
127
+ client: AuthenticatedClient,
128
+ ) -> Optional[Union[ApiResponseBillingSummary, ErrorResponse, str]]:
129
+ """Get billing summary
130
+
131
+ Returns the selected account's billing state and available actions.
132
+
133
+ Raises:
134
+ errors.UnexpectedStatus: If the server returns an undocumented status code and Client.raise_on_unexpected_status is True.
135
+ httpx.TimeoutException: If the request takes longer than Client.timeout.
136
+
137
+ Returns:
138
+ Union[ApiResponseBillingSummary, ErrorResponse, str]
139
+ """
140
+
141
+ return (
142
+ await asyncio_detailed(
143
+ client=client,
144
+ )
145
+ ).parsed
@@ -0,0 +1 @@
1
+ """Contains endpoint functions for accessing the API"""
@@ -56,6 +56,11 @@ def _parse_response(
56
56
 
57
57
  return response_401
58
58
 
59
+ if response.status_code == 404:
60
+ response_404 = ErrorResponse.from_dict(response.json())
61
+
62
+ return response_404
63
+
59
64
  if response.status_code == 409:
60
65
  response_409 = ErrorResponse.from_dict(response.json())
61
66
 
@@ -8,14 +8,18 @@ from ... import errors
8
8
  from ...client import AuthenticatedClient, Client
9
9
  from ...models.api_response_sandbox import ApiResponseSandbox
10
10
  from ...models.error_response import ErrorResponse
11
+ from ...models.start_sandbox_request import StartSandboxRequest
11
12
  from ...types import UNSET, Response, Unset
12
13
 
13
14
 
14
15
  def _get_kwargs(
15
16
  sid: UUID,
16
17
  *,
18
+ body: StartSandboxRequest,
17
19
  wait: Union[Unset, bool] = False,
18
20
  ) -> dict[str, Any]:
21
+ headers: dict[str, Any] = {}
22
+
19
23
  params: dict[str, Any] = {}
20
24
 
21
25
  params["wait"] = wait
@@ -30,6 +34,11 @@ def _get_kwargs(
30
34
  "params": params,
31
35
  }
32
36
 
37
+ _kwargs["json"] = body.to_dict()
38
+
39
+ headers["Content-Type"] = "application/json"
40
+
41
+ _kwargs["headers"] = headers
33
42
  return _kwargs
34
43
 
35
44
 
@@ -97,6 +106,7 @@ def sync_detailed(
97
106
  sid: UUID,
98
107
  *,
99
108
  client: Union[AuthenticatedClient, Client],
109
+ body: StartSandboxRequest,
100
110
  wait: Union[Unset, bool] = False,
101
111
  ) -> Response[Union[ApiResponseSandbox, ErrorResponse]]:
102
112
  """Cold-start a sandbox
@@ -105,11 +115,13 @@ def sync_detailed(
105
115
  was paused, its memory snapshot is consumed and discarded before the
106
116
  new VM runs; disk state remains. Starting a running sandbox or a pending
107
117
  cold start is idempotent. A sandbox that is stopping, pausing, or
108
- pending a resume returns 409.
118
+ pending a resume returns 409. An optional body replaces the sandbox's
119
+ disk mounts for this and later sessions.
109
120
 
110
121
  Args:
111
122
  sid (UUID):
112
123
  wait (Union[Unset, bool]): Default: False.
124
+ body (StartSandboxRequest):
113
125
 
114
126
  Raises:
115
127
  errors.UnexpectedStatus: If the server returns an undocumented status code and Client.raise_on_unexpected_status is True.
@@ -121,6 +133,7 @@ def sync_detailed(
121
133
 
122
134
  kwargs = _get_kwargs(
123
135
  sid=sid,
136
+ body=body,
124
137
  wait=wait,
125
138
  )
126
139
 
@@ -135,6 +148,7 @@ def sync(
135
148
  sid: UUID,
136
149
  *,
137
150
  client: Union[AuthenticatedClient, Client],
151
+ body: StartSandboxRequest,
138
152
  wait: Union[Unset, bool] = False,
139
153
  ) -> Optional[Union[ApiResponseSandbox, ErrorResponse]]:
140
154
  """Cold-start a sandbox
@@ -143,11 +157,13 @@ def sync(
143
157
  was paused, its memory snapshot is consumed and discarded before the
144
158
  new VM runs; disk state remains. Starting a running sandbox or a pending
145
159
  cold start is idempotent. A sandbox that is stopping, pausing, or
146
- pending a resume returns 409.
160
+ pending a resume returns 409. An optional body replaces the sandbox's
161
+ disk mounts for this and later sessions.
147
162
 
148
163
  Args:
149
164
  sid (UUID):
150
165
  wait (Union[Unset, bool]): Default: False.
166
+ body (StartSandboxRequest):
151
167
 
152
168
  Raises:
153
169
  errors.UnexpectedStatus: If the server returns an undocumented status code and Client.raise_on_unexpected_status is True.
@@ -160,6 +176,7 @@ def sync(
160
176
  return sync_detailed(
161
177
  sid=sid,
162
178
  client=client,
179
+ body=body,
163
180
  wait=wait,
164
181
  ).parsed
165
182
 
@@ -168,6 +185,7 @@ async def asyncio_detailed(
168
185
  sid: UUID,
169
186
  *,
170
187
  client: Union[AuthenticatedClient, Client],
188
+ body: StartSandboxRequest,
171
189
  wait: Union[Unset, bool] = False,
172
190
  ) -> Response[Union[ApiResponseSandbox, ErrorResponse]]:
173
191
  """Cold-start a sandbox
@@ -176,11 +194,13 @@ async def asyncio_detailed(
176
194
  was paused, its memory snapshot is consumed and discarded before the
177
195
  new VM runs; disk state remains. Starting a running sandbox or a pending
178
196
  cold start is idempotent. A sandbox that is stopping, pausing, or
179
- pending a resume returns 409.
197
+ pending a resume returns 409. An optional body replaces the sandbox's
198
+ disk mounts for this and later sessions.
180
199
 
181
200
  Args:
182
201
  sid (UUID):
183
202
  wait (Union[Unset, bool]): Default: False.
203
+ body (StartSandboxRequest):
184
204
 
185
205
  Raises:
186
206
  errors.UnexpectedStatus: If the server returns an undocumented status code and Client.raise_on_unexpected_status is True.
@@ -192,6 +212,7 @@ async def asyncio_detailed(
192
212
 
193
213
  kwargs = _get_kwargs(
194
214
  sid=sid,
215
+ body=body,
195
216
  wait=wait,
196
217
  )
197
218
 
@@ -204,6 +225,7 @@ async def asyncio(
204
225
  sid: UUID,
205
226
  *,
206
227
  client: Union[AuthenticatedClient, Client],
228
+ body: StartSandboxRequest,
207
229
  wait: Union[Unset, bool] = False,
208
230
  ) -> Optional[Union[ApiResponseSandbox, ErrorResponse]]:
209
231
  """Cold-start a sandbox
@@ -212,11 +234,13 @@ async def asyncio(
212
234
  was paused, its memory snapshot is consumed and discarded before the
213
235
  new VM runs; disk state remains. Starting a running sandbox or a pending
214
236
  cold start is idempotent. A sandbox that is stopping, pausing, or
215
- pending a resume returns 409.
237
+ pending a resume returns 409. An optional body replaces the sandbox's
238
+ disk mounts for this and later sessions.
216
239
 
217
240
  Args:
218
241
  sid (UUID):
219
242
  wait (Union[Unset, bool]): Default: False.
243
+ body (StartSandboxRequest):
220
244
 
221
245
  Raises:
222
246
  errors.UnexpectedStatus: If the server returns an undocumented status code and Client.raise_on_unexpected_status is True.
@@ -230,6 +254,7 @@ async def asyncio(
230
254
  await asyncio_detailed(
231
255
  sid=sid,
232
256
  client=client,
257
+ body=body,
233
258
  wait=wait,
234
259
  )
235
260
  ).parsed
@@ -7,6 +7,7 @@ from .api_response_activity_list import ApiResponseActivityList
7
7
  from .api_response_allowed_i_ps import ApiResponseAllowedIPs
8
8
  from .api_response_allowed_i_ps_data import ApiResponseAllowedIPsData
9
9
  from .api_response_authorized_user import ApiResponseAuthorizedUser
10
+ from .api_response_billing_summary import ApiResponseBillingSummary
10
11
  from .api_response_create_disk import ApiResponseCreateDisk
11
12
  from .api_response_create_disk_data import ApiResponseCreateDiskData
12
13
  from .api_response_created_sandbox_port_token import ApiResponseCreatedSandboxPortToken
@@ -43,6 +44,18 @@ from .aws_sts_user import AwsStsUser
43
44
  from .aws_sts_user_type import AwsStsUserType
44
45
  from .azure_blob_storage import AzureBlobStorage
45
46
  from .azure_blob_storage_type import AzureBlobStorageType
47
+ from .billing_owner import BillingOwner
48
+ from .billing_owner_type import BillingOwnerType
49
+ from .billing_payment_health import BillingPaymentHealth
50
+ from .billing_payment_health_status import BillingPaymentHealthStatus
51
+ from .billing_period import BillingPeriod
52
+ from .billing_scheduled_change import BillingScheduledChange
53
+ from .billing_scheduled_change_target_plan import BillingScheduledChangeTargetPlan
54
+ from .billing_scheduled_change_type import BillingScheduledChangeType
55
+ from .billing_summary import BillingSummary
56
+ from .billing_summary_actions import BillingSummaryActions
57
+ from .billing_summary_billing_mode import BillingSummaryBillingMode
58
+ from .billing_summary_plan import BillingSummaryPlan
46
59
  from .cloudflare_r2 import CloudflareR2
47
60
  from .cloudflare_r2_type import CloudflareR2Type
48
61
  from .connected_client import ConnectedClient
@@ -93,6 +106,7 @@ from .sandbox_egress_rule import SandboxEgressRule
93
106
  from .sandbox_egress_transform import SandboxEgressTransform
94
107
  from .sandbox_egress_transform_headers import SandboxEgressTransformHeaders
95
108
  from .sandbox_endpoint import SandboxEndpoint
109
+ from .sandbox_mount import SandboxMount
96
110
  from .sandbox_network import SandboxNetwork
97
111
  from .sandbox_network_action import SandboxNetworkAction
98
112
  from .sandbox_platform import SandboxPlatform
@@ -103,6 +117,7 @@ from .sandbox_port_token_list import SandboxPortTokenList
103
117
  from .sandbox_state import SandboxState
104
118
  from .sandbox_timeout_request import SandboxTimeoutRequest
105
119
  from .set_allowed_i_ps_body import SetAllowedIPsBody
120
+ from .start_sandbox_request import StartSandboxRequest
106
121
  from .token_user import TokenUser
107
122
  from .token_user_type import TokenUserType
108
123
 
@@ -114,6 +129,7 @@ __all__ = (
114
129
  "ApiResponseAllowedIPs",
115
130
  "ApiResponseAllowedIPsData",
116
131
  "ApiResponseAuthorizedUser",
132
+ "ApiResponseBillingSummary",
117
133
  "ApiResponseCreateDisk",
118
134
  "ApiResponseCreateDiskData",
119
135
  "ApiResponseCreatedSandboxPortToken",
@@ -150,6 +166,18 @@ __all__ = (
150
166
  "AwsStsUserType",
151
167
  "AzureBlobStorage",
152
168
  "AzureBlobStorageType",
169
+ "BillingOwner",
170
+ "BillingOwnerType",
171
+ "BillingPaymentHealth",
172
+ "BillingPaymentHealthStatus",
173
+ "BillingPeriod",
174
+ "BillingScheduledChange",
175
+ "BillingScheduledChangeTargetPlan",
176
+ "BillingScheduledChangeType",
177
+ "BillingSummary",
178
+ "BillingSummaryActions",
179
+ "BillingSummaryBillingMode",
180
+ "BillingSummaryPlan",
153
181
  "CloudflareR2",
154
182
  "CloudflareR2Type",
155
183
  "ConnectedClient",
@@ -200,6 +228,7 @@ __all__ = (
200
228
  "SandboxEgressTransform",
201
229
  "SandboxEgressTransformHeaders",
202
230
  "SandboxEndpoint",
231
+ "SandboxMount",
203
232
  "SandboxNetwork",
204
233
  "SandboxNetworkAction",
205
234
  "SandboxPlatform",
@@ -210,6 +239,7 @@ __all__ = (
210
239
  "SandboxState",
211
240
  "SandboxTimeoutRequest",
212
241
  "SetAllowedIPsBody",
242
+ "StartSandboxRequest",
213
243
  "TokenUser",
214
244
  "TokenUserType",
215
245
  )
@@ -0,0 +1,73 @@
1
+ from collections.abc import Mapping
2
+ from typing import TYPE_CHECKING, Any, TypeVar
3
+
4
+ from attrs import define as _attrs_define
5
+ from attrs import field as _attrs_field
6
+
7
+ if TYPE_CHECKING:
8
+ from ..models.billing_summary import BillingSummary
9
+
10
+
11
+ T = TypeVar("T", bound="ApiResponseBillingSummary")
12
+
13
+
14
+ @_attrs_define
15
+ class ApiResponseBillingSummary:
16
+ """
17
+ Attributes:
18
+ success (bool): Example: True.
19
+ data (BillingSummary):
20
+ """
21
+
22
+ success: bool
23
+ data: "BillingSummary"
24
+ additional_properties: dict[str, Any] = _attrs_field(init=False, factory=dict)
25
+
26
+ def to_dict(self) -> dict[str, Any]:
27
+ success = self.success
28
+
29
+ data = self.data.to_dict()
30
+
31
+ field_dict: dict[str, Any] = {}
32
+ field_dict.update(self.additional_properties)
33
+ field_dict.update(
34
+ {
35
+ "success": success,
36
+ "data": data,
37
+ }
38
+ )
39
+
40
+ return field_dict
41
+
42
+ @classmethod
43
+ def from_dict(cls: type[T], src_dict: Mapping[str, Any]) -> T:
44
+ from ..models.billing_summary import BillingSummary
45
+
46
+ d = dict(src_dict)
47
+ success = d.pop("success")
48
+
49
+ data = BillingSummary.from_dict(d.pop("data"))
50
+
51
+ api_response_billing_summary = cls(
52
+ success=success,
53
+ data=data,
54
+ )
55
+
56
+ api_response_billing_summary.additional_properties = d
57
+ return api_response_billing_summary
58
+
59
+ @property
60
+ def additional_keys(self) -> list[str]:
61
+ return list(self.additional_properties.keys())
62
+
63
+ def __getitem__(self, key: str) -> Any:
64
+ return self.additional_properties[key]
65
+
66
+ def __setitem__(self, key: str, value: Any) -> None:
67
+ self.additional_properties[key] = value
68
+
69
+ def __delitem__(self, key: str) -> None:
70
+ del self.additional_properties[key]
71
+
72
+ def __contains__(self, key: str) -> bool:
73
+ return key in self.additional_properties
@@ -0,0 +1,69 @@
1
+ from collections.abc import Mapping
2
+ from typing import Any, TypeVar
3
+
4
+ from attrs import define as _attrs_define
5
+ from attrs import field as _attrs_field
6
+
7
+ from ..models.billing_owner_type import BillingOwnerType
8
+
9
+ T = TypeVar("T", bound="BillingOwner")
10
+
11
+
12
+ @_attrs_define
13
+ class BillingOwner:
14
+ """
15
+ Attributes:
16
+ account_id (str): Selected account ID; linked accounts may share a Stripe customer.
17
+ type_ (BillingOwnerType):
18
+ """
19
+
20
+ account_id: str
21
+ type_: BillingOwnerType
22
+ additional_properties: dict[str, Any] = _attrs_field(init=False, factory=dict)
23
+
24
+ def to_dict(self) -> dict[str, Any]:
25
+ account_id = self.account_id
26
+
27
+ type_ = self.type_.value
28
+
29
+ field_dict: dict[str, Any] = {}
30
+ field_dict.update(self.additional_properties)
31
+ field_dict.update(
32
+ {
33
+ "accountId": account_id,
34
+ "type": type_,
35
+ }
36
+ )
37
+
38
+ return field_dict
39
+
40
+ @classmethod
41
+ def from_dict(cls: type[T], src_dict: Mapping[str, Any]) -> T:
42
+ d = dict(src_dict)
43
+ account_id = d.pop("accountId")
44
+
45
+ type_ = BillingOwnerType(d.pop("type"))
46
+
47
+ billing_owner = cls(
48
+ account_id=account_id,
49
+ type_=type_,
50
+ )
51
+
52
+ billing_owner.additional_properties = d
53
+ return billing_owner
54
+
55
+ @property
56
+ def additional_keys(self) -> list[str]:
57
+ return list(self.additional_properties.keys())
58
+
59
+ def __getitem__(self, key: str) -> Any:
60
+ return self.additional_properties[key]
61
+
62
+ def __setitem__(self, key: str, value: Any) -> None:
63
+ self.additional_properties[key] = value
64
+
65
+ def __delitem__(self, key: str) -> None:
66
+ del self.additional_properties[key]
67
+
68
+ def __contains__(self, key: str) -> bool:
69
+ return key in self.additional_properties
@@ -0,0 +1,9 @@
1
+ from enum import Enum
2
+
3
+
4
+ class BillingOwnerType(str, Enum):
5
+ ORGANIZATION = "organization"
6
+ PERSONAL = "personal"
7
+
8
+ def __str__(self) -> str:
9
+ return str(self.value)
@@ -0,0 +1,97 @@
1
+ from collections.abc import Mapping
2
+ from typing import Any, TypeVar, Union
3
+
4
+ from attrs import define as _attrs_define
5
+ from attrs import field as _attrs_field
6
+
7
+ from ..models.billing_payment_health_status import BillingPaymentHealthStatus
8
+ from ..types import UNSET, Unset
9
+
10
+ T = TypeVar("T", bound="BillingPaymentHealth")
11
+
12
+
13
+ @_attrs_define
14
+ class BillingPaymentHealth:
15
+ """
16
+ Attributes:
17
+ status (BillingPaymentHealthStatus):
18
+ has_default_payment_method (bool):
19
+ open_invoice_id (Union[Unset, str]):
20
+ amount_remaining_cents (Union[Unset, int]):
21
+ open_invoice_currency (Union[Unset, str]):
22
+ """
23
+
24
+ status: BillingPaymentHealthStatus
25
+ has_default_payment_method: bool
26
+ open_invoice_id: Union[Unset, str] = UNSET
27
+ amount_remaining_cents: Union[Unset, int] = UNSET
28
+ open_invoice_currency: Union[Unset, str] = UNSET
29
+ additional_properties: dict[str, Any] = _attrs_field(init=False, factory=dict)
30
+
31
+ def to_dict(self) -> dict[str, Any]:
32
+ status = self.status.value
33
+
34
+ has_default_payment_method = self.has_default_payment_method
35
+
36
+ open_invoice_id = self.open_invoice_id
37
+
38
+ amount_remaining_cents = self.amount_remaining_cents
39
+
40
+ open_invoice_currency = self.open_invoice_currency
41
+
42
+ field_dict: dict[str, Any] = {}
43
+ field_dict.update(self.additional_properties)
44
+ field_dict.update(
45
+ {
46
+ "status": status,
47
+ "hasDefaultPaymentMethod": has_default_payment_method,
48
+ }
49
+ )
50
+ if open_invoice_id is not UNSET:
51
+ field_dict["openInvoiceId"] = open_invoice_id
52
+ if amount_remaining_cents is not UNSET:
53
+ field_dict["amountRemainingCents"] = amount_remaining_cents
54
+ if open_invoice_currency is not UNSET:
55
+ field_dict["openInvoiceCurrency"] = open_invoice_currency
56
+
57
+ return field_dict
58
+
59
+ @classmethod
60
+ def from_dict(cls: type[T], src_dict: Mapping[str, Any]) -> T:
61
+ d = dict(src_dict)
62
+ status = BillingPaymentHealthStatus(d.pop("status"))
63
+
64
+ has_default_payment_method = d.pop("hasDefaultPaymentMethod")
65
+
66
+ open_invoice_id = d.pop("openInvoiceId", UNSET)
67
+
68
+ amount_remaining_cents = d.pop("amountRemainingCents", UNSET)
69
+
70
+ open_invoice_currency = d.pop("openInvoiceCurrency", UNSET)
71
+
72
+ billing_payment_health = cls(
73
+ status=status,
74
+ has_default_payment_method=has_default_payment_method,
75
+ open_invoice_id=open_invoice_id,
76
+ amount_remaining_cents=amount_remaining_cents,
77
+ open_invoice_currency=open_invoice_currency,
78
+ )
79
+
80
+ billing_payment_health.additional_properties = d
81
+ return billing_payment_health
82
+
83
+ @property
84
+ def additional_keys(self) -> list[str]:
85
+ return list(self.additional_properties.keys())
86
+
87
+ def __getitem__(self, key: str) -> Any:
88
+ return self.additional_properties[key]
89
+
90
+ def __setitem__(self, key: str, value: Any) -> None:
91
+ self.additional_properties[key] = value
92
+
93
+ def __delitem__(self, key: str) -> None:
94
+ del self.additional_properties[key]
95
+
96
+ def __contains__(self, key: str) -> bool:
97
+ return key in self.additional_properties
@@ -0,0 +1,12 @@
1
+ from enum import Enum
2
+
3
+
4
+ class BillingPaymentHealthStatus(str, Enum):
5
+ ACTION_REQUIRED = "action_required"
6
+ HEALTHY = "healthy"
7
+ INVOICE_OPEN = "invoice_open"
8
+ MISSING_PAYMENT_METHOD = "missing_payment_method"
9
+ NOT_APPLICABLE = "not_applicable"
10
+
11
+ def __str__(self) -> str:
12
+ return str(self.value)