linode-api4 5.43.0__tar.gz → 5.45.0__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 (388) hide show
  1. {linode_api4-5.43.0/linode_api4.egg-info → linode_api4-5.45.0}/PKG-INFO +1 -1
  2. {linode_api4-5.43.0 → linode_api4-5.45.0}/linode_api4/groups/linode.py +60 -28
  3. {linode_api4-5.43.0 → linode_api4-5.45.0}/linode_api4/groups/lock.py +2 -2
  4. {linode_api4-5.43.0 → linode_api4-5.45.0}/linode_api4/groups/monitor.py +214 -15
  5. {linode_api4-5.43.0 → linode_api4-5.45.0}/linode_api4/groups/networking.py +126 -14
  6. {linode_api4-5.43.0 → linode_api4-5.45.0}/linode_api4/groups/nodebalancer.py +7 -1
  7. {linode_api4-5.43.0 → linode_api4-5.45.0}/linode_api4/groups/object_storage.py +16 -0
  8. {linode_api4-5.43.0 → linode_api4-5.45.0}/linode_api4/groups/tag.py +7 -1
  9. {linode_api4-5.43.0 → linode_api4-5.45.0}/linode_api4/objects/database.py +1 -6
  10. {linode_api4-5.43.0 → linode_api4-5.45.0}/linode_api4/objects/linode.py +48 -37
  11. {linode_api4-5.43.0 → linode_api4-5.45.0}/linode_api4/objects/linode_interfaces.py +0 -74
  12. {linode_api4-5.43.0 → linode_api4-5.45.0}/linode_api4/objects/lock.py +3 -3
  13. {linode_api4-5.43.0 → linode_api4-5.45.0}/linode_api4/objects/monitor.py +390 -2
  14. {linode_api4-5.43.0 → linode_api4-5.45.0}/linode_api4/objects/networking.py +68 -2
  15. {linode_api4-5.43.0 → linode_api4-5.45.0}/linode_api4/objects/object_storage.py +40 -0
  16. {linode_api4-5.43.0 → linode_api4-5.45.0}/linode_api4/objects/region.py +2 -0
  17. {linode_api4-5.43.0 → linode_api4-5.45.0}/linode_api4/objects/tag.py +4 -1
  18. {linode_api4-5.43.0 → linode_api4-5.45.0}/linode_api4/version.py +1 -1
  19. {linode_api4-5.43.0 → linode_api4-5.45.0/linode_api4.egg-info}/PKG-INFO +1 -1
  20. {linode_api4-5.43.0 → linode_api4-5.45.0}/linode_api4.egg-info/SOURCES.txt +13 -0
  21. {linode_api4-5.43.0 → linode_api4-5.45.0}/pyproject.toml +2 -0
  22. {linode_api4-5.43.0 → linode_api4-5.45.0}/test/fixtures/monitor_alert-definitions.json +0 -2
  23. linode_api4-5.45.0/test/fixtures/monitor_dashboards.json +404 -0
  24. linode_api4-5.45.0/test/fixtures/monitor_dashboards_1.json +83 -0
  25. {linode_api4-5.43.0 → linode_api4-5.45.0}/test/fixtures/monitor_services_dbaas_alert-definitions.json +0 -4
  26. {linode_api4-5.43.0 → linode_api4-5.45.0}/test/fixtures/monitor_services_dbaas_alert-definitions_12345.json +0 -4
  27. linode_api4-5.45.0/test/fixtures/monitor_services_dbaas_dashboards.json +90 -0
  28. linode_api4-5.45.0/test/fixtures/monitor_streams.json +31 -0
  29. linode_api4-5.45.0/test/fixtures/monitor_streams_1_history.json +31 -0
  30. linode_api4-5.45.0/test/fixtures/monitor_streams_2.json +43 -0
  31. linode_api4-5.45.0/test/fixtures/monitor_streams_3.json +29 -0
  32. linode_api4-5.45.0/test/fixtures/monitor_streams_destinations.json +24 -0
  33. linode_api4-5.45.0/test/fixtures/monitor_streams_destinations_1_history.json +24 -0
  34. linode_api4-5.45.0/test/fixtures/monitor_streams_destinations_2.json +36 -0
  35. {linode_api4-5.43.0 → linode_api4-5.45.0}/test/fixtures/networking_firewalls.json +5 -3
  36. {linode_api4-5.43.0 → linode_api4-5.45.0}/test/fixtures/networking_firewalls_123.json +5 -3
  37. linode_api4-5.45.0/test/fixtures/networking_firewalls_123_rules.json +8 -0
  38. linode_api4-5.45.0/test/fixtures/networking_reserved_ips.json +35 -0
  39. linode_api4-5.45.0/test/fixtures/networking_reserved_ips_types.json +27 -0
  40. linode_api4-5.45.0/test/fixtures/object-storage_global-quotas.json +25 -0
  41. linode_api4-5.45.0/test/fixtures/object-storage_global-quotas_obj-access-keys-per-account.json +9 -0
  42. linode_api4-5.45.0/test/fixtures/object-storage_global-quotas_obj-access-keys-per-account_usage.json +4 -0
  43. {linode_api4-5.43.0 → linode_api4-5.45.0}/test/fixtures/object-storage_quotas.json +6 -2
  44. {linode_api4-5.43.0 → linode_api4-5.45.0}/test/fixtures/object-storage_quotas_obj-objects-us-ord-1.json +3 -1
  45. {linode_api4-5.43.0 → linode_api4-5.45.0}/test/integration/conftest.py +81 -16
  46. {linode_api4-5.43.0 → linode_api4-5.45.0}/test/integration/linode_client/test_linode_client.py +39 -42
  47. {linode_api4-5.43.0 → linode_api4-5.45.0}/test/integration/models/account/test_account.py +4 -2
  48. {linode_api4-5.43.0 → linode_api4-5.45.0}/test/integration/models/domain/test_domain.py +1 -2
  49. {linode_api4-5.43.0 → linode_api4-5.45.0}/test/integration/models/firewall/test_firewall.py +14 -2
  50. {linode_api4-5.43.0 → linode_api4-5.45.0}/test/integration/models/linode/interfaces/test_interfaces.py +99 -0
  51. {linode_api4-5.43.0 → linode_api4-5.45.0}/test/integration/models/linode/test_linode.py +154 -26
  52. {linode_api4-5.43.0 → linode_api4-5.45.0}/test/integration/models/lock/test_lock.py +2 -1
  53. linode_api4-5.45.0/test/integration/models/monitor/test_monitor_logs.py +521 -0
  54. {linode_api4-5.43.0 → linode_api4-5.45.0}/test/integration/models/networking/test_networking.py +212 -4
  55. {linode_api4-5.43.0 → linode_api4-5.45.0}/test/integration/models/nodebalancer/test_nodebalancer.py +30 -1
  56. linode_api4-5.45.0/test/integration/models/object_storage/test_obj_quotas.py +116 -0
  57. {linode_api4-5.43.0 → linode_api4-5.45.0}/test/integration/models/placement/test_placement.py +1 -1
  58. {linode_api4-5.43.0 → linode_api4-5.45.0}/test/integration/models/sharegroups/test_sharegroups.py +4 -5
  59. linode_api4-5.45.0/test/integration/models/tag/test_tag.py +51 -0
  60. {linode_api4-5.43.0 → linode_api4-5.45.0}/test/integration/models/volume/test_blockstorage.py +6 -2
  61. {linode_api4-5.43.0 → linode_api4-5.45.0}/test/integration/models/volume/test_volume.py +2 -1
  62. {linode_api4-5.43.0 → linode_api4-5.45.0}/test/integration/models/vpc/test_vpc.py +3 -2
  63. linode_api4-5.45.0/test/unit/groups/networking_test.py +240 -0
  64. {linode_api4-5.43.0 → linode_api4-5.45.0}/test/unit/linode_client_test.py +134 -5
  65. {linode_api4-5.43.0 → linode_api4-5.45.0}/test/unit/objects/firewall_test.py +2 -0
  66. {linode_api4-5.43.0 → linode_api4-5.45.0}/test/unit/objects/linode_test.py +82 -8
  67. linode_api4-5.45.0/test/unit/objects/monitor_test.py +761 -0
  68. linode_api4-5.45.0/test/unit/objects/networking_test.py +457 -0
  69. {linode_api4-5.43.0 → linode_api4-5.45.0}/test/unit/objects/object_storage_test.py +59 -0
  70. linode_api4-5.45.0/test/unit/objects/tag_test.py +103 -0
  71. linode_api4-5.43.0/test/fixtures/monitor_dashboards.json +0 -41
  72. linode_api4-5.43.0/test/fixtures/monitor_dashboards_1.json +0 -34
  73. linode_api4-5.43.0/test/fixtures/monitor_services_dbaas_dashboards.json +0 -48
  74. linode_api4-5.43.0/test/fixtures/networking_firewalls_123_rules.json +0 -6
  75. linode_api4-5.43.0/test/integration/models/object_storage/test_obj_quotas.py +0 -45
  76. linode_api4-5.43.0/test/integration/models/tag/test_tag.py +0 -22
  77. linode_api4-5.43.0/test/unit/groups/networking_test.py +0 -17
  78. linode_api4-5.43.0/test/unit/objects/monitor_test.py +0 -171
  79. linode_api4-5.43.0/test/unit/objects/networking_test.py +0 -173
  80. linode_api4-5.43.0/test/unit/objects/tag_test.py +0 -46
  81. {linode_api4-5.43.0 → linode_api4-5.45.0}/LICENSE +0 -0
  82. {linode_api4-5.43.0 → linode_api4-5.45.0}/MANIFEST.in +0 -0
  83. {linode_api4-5.43.0 → linode_api4-5.45.0}/README.rst +0 -0
  84. {linode_api4-5.43.0 → linode_api4-5.45.0}/examples/install-on-linode/app.py +0 -0
  85. {linode_api4-5.43.0 → linode_api4-5.45.0}/examples/install-on-linode/make_stackscript.py +0 -0
  86. {linode_api4-5.43.0 → linode_api4-5.45.0}/linode_api4/__init__.py +0 -0
  87. {linode_api4-5.43.0 → linode_api4-5.45.0}/linode_api4/common.py +0 -0
  88. {linode_api4-5.43.0 → linode_api4-5.45.0}/linode_api4/errors.py +0 -0
  89. {linode_api4-5.43.0 → linode_api4-5.45.0}/linode_api4/groups/__init__.py +0 -0
  90. {linode_api4-5.43.0 → linode_api4-5.45.0}/linode_api4/groups/account.py +0 -0
  91. {linode_api4-5.43.0 → linode_api4-5.45.0}/linode_api4/groups/beta.py +0 -0
  92. {linode_api4-5.43.0 → linode_api4-5.45.0}/linode_api4/groups/database.py +0 -0
  93. {linode_api4-5.43.0 → linode_api4-5.45.0}/linode_api4/groups/domain.py +0 -0
  94. {linode_api4-5.43.0 → linode_api4-5.45.0}/linode_api4/groups/group.py +0 -0
  95. {linode_api4-5.43.0 → linode_api4-5.45.0}/linode_api4/groups/image.py +0 -0
  96. {linode_api4-5.43.0 → linode_api4-5.45.0}/linode_api4/groups/image_share_group.py +0 -0
  97. {linode_api4-5.43.0 → linode_api4-5.45.0}/linode_api4/groups/lke.py +0 -0
  98. {linode_api4-5.43.0 → linode_api4-5.45.0}/linode_api4/groups/lke_tier.py +0 -0
  99. {linode_api4-5.43.0 → linode_api4-5.45.0}/linode_api4/groups/longview.py +0 -0
  100. {linode_api4-5.43.0 → linode_api4-5.45.0}/linode_api4/groups/maintenance.py +0 -0
  101. {linode_api4-5.43.0 → linode_api4-5.45.0}/linode_api4/groups/monitor_api.py +0 -0
  102. {linode_api4-5.43.0 → linode_api4-5.45.0}/linode_api4/groups/placement.py +0 -0
  103. {linode_api4-5.43.0 → linode_api4-5.45.0}/linode_api4/groups/polling.py +0 -0
  104. {linode_api4-5.43.0 → linode_api4-5.45.0}/linode_api4/groups/profile.py +0 -0
  105. {linode_api4-5.43.0 → linode_api4-5.45.0}/linode_api4/groups/region.py +0 -0
  106. {linode_api4-5.43.0 → linode_api4-5.45.0}/linode_api4/groups/support.py +0 -0
  107. {linode_api4-5.43.0 → linode_api4-5.45.0}/linode_api4/groups/volume.py +0 -0
  108. {linode_api4-5.43.0 → linode_api4-5.45.0}/linode_api4/groups/vpc.py +0 -0
  109. {linode_api4-5.43.0 → linode_api4-5.45.0}/linode_api4/linode_client.py +0 -0
  110. {linode_api4-5.43.0 → linode_api4-5.45.0}/linode_api4/login_client.py +0 -0
  111. {linode_api4-5.43.0 → linode_api4-5.45.0}/linode_api4/objects/__init__.py +0 -0
  112. {linode_api4-5.43.0 → linode_api4-5.45.0}/linode_api4/objects/account.py +0 -0
  113. {linode_api4-5.43.0 → linode_api4-5.45.0}/linode_api4/objects/base.py +0 -0
  114. {linode_api4-5.43.0 → linode_api4-5.45.0}/linode_api4/objects/beta.py +0 -0
  115. {linode_api4-5.43.0 → linode_api4-5.45.0}/linode_api4/objects/dbase.py +0 -0
  116. {linode_api4-5.43.0 → linode_api4-5.45.0}/linode_api4/objects/domain.py +0 -0
  117. {linode_api4-5.43.0 → linode_api4-5.45.0}/linode_api4/objects/filtering.py +0 -0
  118. {linode_api4-5.43.0 → linode_api4-5.45.0}/linode_api4/objects/image.py +0 -0
  119. {linode_api4-5.43.0 → linode_api4-5.45.0}/linode_api4/objects/image_share_group.py +0 -0
  120. {linode_api4-5.43.0 → linode_api4-5.45.0}/linode_api4/objects/lke.py +0 -0
  121. {linode_api4-5.43.0 → linode_api4-5.45.0}/linode_api4/objects/longview.py +0 -0
  122. {linode_api4-5.43.0 → linode_api4-5.45.0}/linode_api4/objects/monitor_api.py +0 -0
  123. {linode_api4-5.43.0 → linode_api4-5.45.0}/linode_api4/objects/nodebalancer.py +0 -0
  124. {linode_api4-5.43.0 → linode_api4-5.45.0}/linode_api4/objects/placement.py +0 -0
  125. {linode_api4-5.43.0 → linode_api4-5.45.0}/linode_api4/objects/profile.py +0 -0
  126. {linode_api4-5.43.0 → linode_api4-5.45.0}/linode_api4/objects/serializable.py +0 -0
  127. {linode_api4-5.43.0 → linode_api4-5.45.0}/linode_api4/objects/support.py +0 -0
  128. {linode_api4-5.43.0 → linode_api4-5.45.0}/linode_api4/objects/volume.py +0 -0
  129. {linode_api4-5.43.0 → linode_api4-5.45.0}/linode_api4/objects/vpc.py +0 -0
  130. {linode_api4-5.43.0 → linode_api4-5.45.0}/linode_api4/paginated_list.py +0 -0
  131. {linode_api4-5.43.0 → linode_api4-5.45.0}/linode_api4/polling.py +0 -0
  132. {linode_api4-5.43.0 → linode_api4-5.45.0}/linode_api4/util.py +0 -0
  133. {linode_api4-5.43.0 → linode_api4-5.45.0}/linode_api4.egg-info/dependency_links.txt +0 -0
  134. {linode_api4-5.43.0 → linode_api4-5.45.0}/linode_api4.egg-info/requires.txt +0 -0
  135. {linode_api4-5.43.0 → linode_api4-5.45.0}/linode_api4.egg-info/top_level.txt +0 -0
  136. {linode_api4-5.43.0 → linode_api4-5.45.0}/setup.cfg +0 -0
  137. {linode_api4-5.43.0 → linode_api4-5.45.0}/setup.py +0 -0
  138. {linode_api4-5.43.0 → linode_api4-5.45.0}/test/__init__.py +0 -0
  139. {linode_api4-5.43.0 → linode_api4-5.45.0}/test/fixtures/account.json +0 -0
  140. {linode_api4-5.43.0 → linode_api4-5.45.0}/test/fixtures/account_availability.json +0 -0
  141. {linode_api4-5.43.0 → linode_api4-5.45.0}/test/fixtures/account_availability_us-east.json +0 -0
  142. {linode_api4-5.43.0 → linode_api4-5.45.0}/test/fixtures/account_betas.json +0 -0
  143. {linode_api4-5.43.0 → linode_api4-5.45.0}/test/fixtures/account_betas_cool.json +0 -0
  144. {linode_api4-5.43.0 → linode_api4-5.45.0}/test/fixtures/account_child-accounts.json +0 -0
  145. {linode_api4-5.43.0 → linode_api4-5.45.0}/test/fixtures/account_child-accounts_123456.json +0 -0
  146. {linode_api4-5.43.0 → linode_api4-5.45.0}/test/fixtures/account_child-accounts_123456_token.json +0 -0
  147. {linode_api4-5.43.0 → linode_api4-5.45.0}/test/fixtures/account_events_123.json +0 -0
  148. {linode_api4-5.43.0 → linode_api4-5.45.0}/test/fixtures/account_invoices.json +0 -0
  149. {linode_api4-5.43.0 → linode_api4-5.45.0}/test/fixtures/account_invoices_123.json +0 -0
  150. {linode_api4-5.43.0 → linode_api4-5.45.0}/test/fixtures/account_invoices_123456_items.json +0 -0
  151. {linode_api4-5.43.0 → linode_api4-5.45.0}/test/fixtures/account_logins.json +0 -0
  152. {linode_api4-5.43.0 → linode_api4-5.45.0}/test/fixtures/account_logins_123.json +0 -0
  153. {linode_api4-5.43.0 → linode_api4-5.45.0}/test/fixtures/account_maintenance.json +0 -0
  154. {linode_api4-5.43.0 → linode_api4-5.45.0}/test/fixtures/account_notifications.json +0 -0
  155. {linode_api4-5.43.0 → linode_api4-5.45.0}/test/fixtures/account_oauth-clients_2737bf16b39ab5d7b4a1.json +0 -0
  156. {linode_api4-5.43.0 → linode_api4-5.45.0}/test/fixtures/account_payment-method_123.json +0 -0
  157. {linode_api4-5.43.0 → linode_api4-5.45.0}/test/fixtures/account_payment-methods.json +0 -0
  158. {linode_api4-5.43.0 → linode_api4-5.45.0}/test/fixtures/account_payments.json +0 -0
  159. {linode_api4-5.43.0 → linode_api4-5.45.0}/test/fixtures/account_promo-codes.json +0 -0
  160. {linode_api4-5.43.0 → linode_api4-5.45.0}/test/fixtures/account_service-transfers.json +0 -0
  161. {linode_api4-5.43.0 → linode_api4-5.45.0}/test/fixtures/account_service-transfers_12345.json +0 -0
  162. {linode_api4-5.43.0 → linode_api4-5.45.0}/test/fixtures/account_settings.json +0 -0
  163. {linode_api4-5.43.0 → linode_api4-5.45.0}/test/fixtures/account_transfer.json +0 -0
  164. {linode_api4-5.43.0 → linode_api4-5.45.0}/test/fixtures/account_users_test-user.json +0 -0
  165. {linode_api4-5.43.0 → linode_api4-5.45.0}/test/fixtures/betas.json +0 -0
  166. {linode_api4-5.43.0 → linode_api4-5.45.0}/test/fixtures/betas_active.json +0 -0
  167. {linode_api4-5.43.0 → linode_api4-5.45.0}/test/fixtures/databases_engines.json +0 -0
  168. {linode_api4-5.43.0 → linode_api4-5.45.0}/test/fixtures/databases_instances.json +0 -0
  169. {linode_api4-5.43.0 → linode_api4-5.45.0}/test/fixtures/databases_mysql_config.json +0 -0
  170. {linode_api4-5.43.0 → linode_api4-5.45.0}/test/fixtures/databases_mysql_instances.json +0 -0
  171. {linode_api4-5.43.0 → linode_api4-5.45.0}/test/fixtures/databases_mysql_instances_123_credentials.json +0 -0
  172. {linode_api4-5.43.0 → linode_api4-5.45.0}/test/fixtures/databases_mysql_instances_123_credentials_reset.json +0 -0
  173. {linode_api4-5.43.0 → linode_api4-5.45.0}/test/fixtures/databases_mysql_instances_123_patch.json +0 -0
  174. {linode_api4-5.43.0 → linode_api4-5.45.0}/test/fixtures/databases_mysql_instances_123_resume.json +0 -0
  175. {linode_api4-5.43.0 → linode_api4-5.45.0}/test/fixtures/databases_mysql_instances_123_ssl.json +0 -0
  176. {linode_api4-5.43.0 → linode_api4-5.45.0}/test/fixtures/databases_mysql_instances_123_suspend.json +0 -0
  177. {linode_api4-5.43.0 → linode_api4-5.45.0}/test/fixtures/databases_postgresql_config.json +0 -0
  178. {linode_api4-5.43.0 → linode_api4-5.45.0}/test/fixtures/databases_postgresql_instances.json +0 -0
  179. {linode_api4-5.43.0 → linode_api4-5.45.0}/test/fixtures/databases_postgresql_instances_123_credentials.json +0 -0
  180. {linode_api4-5.43.0 → linode_api4-5.45.0}/test/fixtures/databases_postgresql_instances_123_credentials_reset.json +0 -0
  181. {linode_api4-5.43.0 → linode_api4-5.45.0}/test/fixtures/databases_postgresql_instances_123_patch.json +0 -0
  182. {linode_api4-5.43.0 → linode_api4-5.45.0}/test/fixtures/databases_postgresql_instances_123_resume.json +0 -0
  183. {linode_api4-5.43.0 → linode_api4-5.45.0}/test/fixtures/databases_postgresql_instances_123_ssl.json +0 -0
  184. {linode_api4-5.43.0 → linode_api4-5.45.0}/test/fixtures/databases_postgresql_instances_123_suspend.json +0 -0
  185. {linode_api4-5.43.0 → linode_api4-5.45.0}/test/fixtures/databases_types.json +0 -0
  186. {linode_api4-5.43.0 → linode_api4-5.45.0}/test/fixtures/domains.json +0 -0
  187. {linode_api4-5.43.0 → linode_api4-5.45.0}/test/fixtures/domains_12345_clone.json +0 -0
  188. {linode_api4-5.43.0 → linode_api4-5.45.0}/test/fixtures/domains_12345_records.json +0 -0
  189. {linode_api4-5.43.0 → linode_api4-5.45.0}/test/fixtures/domains_12345_zone-file.json +0 -0
  190. {linode_api4-5.43.0 → linode_api4-5.45.0}/test/fixtures/domains_import.json +0 -0
  191. {linode_api4-5.43.0 → linode_api4-5.45.0}/test/fixtures/images.json +0 -0
  192. {linode_api4-5.43.0 → linode_api4-5.45.0}/test/fixtures/images_private_1234_sharegroups.json +0 -0
  193. {linode_api4-5.43.0 → linode_api4-5.45.0}/test/fixtures/images_private_123_regions.json +0 -0
  194. {linode_api4-5.43.0 → linode_api4-5.45.0}/test/fixtures/images_private_1337.json +0 -0
  195. {linode_api4-5.43.0 → linode_api4-5.45.0}/test/fixtures/images_sharegroups.json +0 -0
  196. {linode_api4-5.43.0 → linode_api4-5.45.0}/test/fixtures/images_sharegroups_1234.json +0 -0
  197. {linode_api4-5.43.0 → linode_api4-5.45.0}/test/fixtures/images_sharegroups_1234_images.json +0 -0
  198. {linode_api4-5.43.0 → linode_api4-5.45.0}/test/fixtures/images_sharegroups_1234_images_shared_1.json +0 -0
  199. {linode_api4-5.43.0 → linode_api4-5.45.0}/test/fixtures/images_sharegroups_1234_members.json +0 -0
  200. {linode_api4-5.43.0 → linode_api4-5.45.0}/test/fixtures/images_sharegroups_1234_members_abc123.json +0 -0
  201. {linode_api4-5.43.0 → linode_api4-5.45.0}/test/fixtures/images_sharegroups_tokens.json +0 -0
  202. {linode_api4-5.43.0 → linode_api4-5.45.0}/test/fixtures/images_sharegroups_tokens_abc123.json +0 -0
  203. {linode_api4-5.43.0 → linode_api4-5.45.0}/test/fixtures/images_sharegroups_tokens_abc123_sharegroup.json +0 -0
  204. {linode_api4-5.43.0 → linode_api4-5.45.0}/test/fixtures/images_sharegroups_tokens_abc123_sharegroup_images.json +0 -0
  205. {linode_api4-5.43.0 → linode_api4-5.45.0}/test/fixtures/images_upload.json +0 -0
  206. {linode_api4-5.43.0 → linode_api4-5.45.0}/test/fixtures/linode_instances.json +0 -0
  207. {linode_api4-5.43.0 → linode_api4-5.45.0}/test/fixtures/linode_instances_123_backups.json +0 -0
  208. {linode_api4-5.43.0 → linode_api4-5.45.0}/test/fixtures/linode_instances_123_configs.json +0 -0
  209. {linode_api4-5.43.0 → linode_api4-5.45.0}/test/fixtures/linode_instances_123_configs_456789.json +0 -0
  210. {linode_api4-5.43.0 → linode_api4-5.45.0}/test/fixtures/linode_instances_123_configs_456789_interfaces.json +0 -0
  211. {linode_api4-5.43.0 → linode_api4-5.45.0}/test/fixtures/linode_instances_123_configs_456789_interfaces_123.json +0 -0
  212. {linode_api4-5.43.0 → linode_api4-5.45.0}/test/fixtures/linode_instances_123_configs_456789_interfaces_123_put.json +0 -0
  213. {linode_api4-5.43.0 → linode_api4-5.45.0}/test/fixtures/linode_instances_123_configs_456789_interfaces_321.json +0 -0
  214. {linode_api4-5.43.0 → linode_api4-5.45.0}/test/fixtures/linode_instances_123_configs_456789_interfaces_456.json +0 -0
  215. {linode_api4-5.43.0 → linode_api4-5.45.0}/test/fixtures/linode_instances_123_disks.json +0 -0
  216. {linode_api4-5.43.0 → linode_api4-5.45.0}/test/fixtures/linode_instances_123_disks_12345_clone.json +0 -0
  217. {linode_api4-5.43.0 → linode_api4-5.45.0}/test/fixtures/linode_instances_123_firewalls.json +0 -0
  218. {linode_api4-5.43.0 → linode_api4-5.45.0}/test/fixtures/linode_instances_123_ips.json +0 -0
  219. {linode_api4-5.43.0 → linode_api4-5.45.0}/test/fixtures/linode_instances_123_nodebalancers.json +0 -0
  220. {linode_api4-5.43.0 → linode_api4-5.45.0}/test/fixtures/linode_instances_123_transfer.json +0 -0
  221. {linode_api4-5.43.0 → linode_api4-5.45.0}/test/fixtures/linode_instances_123_transfer_2023_4.json +0 -0
  222. {linode_api4-5.43.0 → linode_api4-5.45.0}/test/fixtures/linode_instances_123_volumes.json +0 -0
  223. {linode_api4-5.43.0 → linode_api4-5.45.0}/test/fixtures/linode_instances_124.json +0 -0
  224. {linode_api4-5.43.0 → linode_api4-5.45.0}/test/fixtures/linode_instances_124_interfaces.json +0 -0
  225. {linode_api4-5.43.0 → linode_api4-5.45.0}/test/fixtures/linode_instances_124_interfaces_123.json +0 -0
  226. {linode_api4-5.43.0 → linode_api4-5.45.0}/test/fixtures/linode_instances_124_interfaces_123_firewalls.json +0 -0
  227. {linode_api4-5.43.0 → linode_api4-5.45.0}/test/fixtures/linode_instances_124_interfaces_456.json +0 -0
  228. {linode_api4-5.43.0 → linode_api4-5.45.0}/test/fixtures/linode_instances_124_interfaces_789.json +0 -0
  229. {linode_api4-5.43.0 → linode_api4-5.45.0}/test/fixtures/linode_instances_124_interfaces_settings.json +0 -0
  230. {linode_api4-5.43.0 → linode_api4-5.45.0}/test/fixtures/linode_instances_124_upgrade-interfaces.json +0 -0
  231. {linode_api4-5.43.0 → linode_api4-5.45.0}/test/fixtures/linode_stackscripts_10079.json +0 -0
  232. {linode_api4-5.43.0 → linode_api4-5.45.0}/test/fixtures/linode_types.json +0 -0
  233. {linode_api4-5.43.0 → linode_api4-5.45.0}/test/fixtures/linode_types_g6-nanode-1.json +0 -0
  234. {linode_api4-5.43.0 → linode_api4-5.45.0}/test/fixtures/lke_clusters.json +0 -0
  235. {linode_api4-5.43.0 → linode_api4-5.45.0}/test/fixtures/lke_clusters_18881.json +0 -0
  236. {linode_api4-5.43.0 → linode_api4-5.45.0}/test/fixtures/lke_clusters_18881_control__plane__acl.json +0 -0
  237. {linode_api4-5.43.0 → linode_api4-5.45.0}/test/fixtures/lke_clusters_18881_dashboard.json +0 -0
  238. {linode_api4-5.43.0 → linode_api4-5.45.0}/test/fixtures/lke_clusters_18881_nodes_123456.json +0 -0
  239. {linode_api4-5.43.0 → linode_api4-5.45.0}/test/fixtures/lke_clusters_18881_pools_456.json +0 -0
  240. {linode_api4-5.43.0 → linode_api4-5.45.0}/test/fixtures/lke_clusters_18882.json +0 -0
  241. {linode_api4-5.43.0 → linode_api4-5.45.0}/test/fixtures/lke_clusters_18882_pools_789.json +0 -0
  242. {linode_api4-5.43.0 → linode_api4-5.45.0}/test/fixtures/lke_tiers_standard_versions.json +0 -0
  243. {linode_api4-5.43.0 → linode_api4-5.45.0}/test/fixtures/lke_types.json +0 -0
  244. {linode_api4-5.43.0 → linode_api4-5.45.0}/test/fixtures/lke_versions.json +0 -0
  245. {linode_api4-5.43.0 → linode_api4-5.45.0}/test/fixtures/locks.json +0 -0
  246. {linode_api4-5.43.0 → linode_api4-5.45.0}/test/fixtures/locks_1.json +0 -0
  247. {linode_api4-5.43.0 → linode_api4-5.45.0}/test/fixtures/longview_clients.json +0 -0
  248. {linode_api4-5.43.0 → linode_api4-5.45.0}/test/fixtures/longview_plan.json +0 -0
  249. {linode_api4-5.43.0 → linode_api4-5.45.0}/test/fixtures/longview_subscriptions.json +0 -0
  250. {linode_api4-5.43.0 → linode_api4-5.45.0}/test/fixtures/maintenance_policies.json +0 -0
  251. {linode_api4-5.43.0 → linode_api4-5.45.0}/test/fixtures/mongodb.json +0 -0
  252. {linode_api4-5.43.0 → linode_api4-5.45.0}/test/fixtures/monitor_alert-channels.json +0 -0
  253. {linode_api4-5.43.0 → linode_api4-5.45.0}/test/fixtures/monitor_services.json +0 -0
  254. {linode_api4-5.43.0 → linode_api4-5.45.0}/test/fixtures/monitor_services_dbaas.json +0 -0
  255. {linode_api4-5.43.0 → linode_api4-5.45.0}/test/fixtures/monitor_services_dbaas_alert-definitions_12345_entities.json +0 -0
  256. {linode_api4-5.43.0 → linode_api4-5.45.0}/test/fixtures/monitor_services_dbaas_metric-definitions.json +0 -0
  257. {linode_api4-5.43.0 → linode_api4-5.45.0}/test/fixtures/monitor_services_dbaas_metrics.json +0 -0
  258. {linode_api4-5.43.0 → linode_api4-5.45.0}/test/fixtures/monitor_services_dbaas_token.json +0 -0
  259. {linode_api4-5.43.0 → linode_api4-5.45.0}/test/fixtures/monitor_services_linode_token.json +0 -0
  260. {linode_api4-5.43.0 → linode_api4-5.45.0}/test/fixtures/network-transfer_prices.json +0 -0
  261. {linode_api4-5.43.0 → linode_api4-5.45.0}/test/fixtures/networking_firewalls_123_devices.json +0 -0
  262. {linode_api4-5.43.0 → linode_api4-5.45.0}/test/fixtures/networking_firewalls_123_devices_123.json +0 -0
  263. {linode_api4-5.43.0 → linode_api4-5.45.0}/test/fixtures/networking_firewalls_123_devices_456.json +0 -0
  264. {linode_api4-5.43.0 → linode_api4-5.45.0}/test/fixtures/networking_firewalls_123_history.json +0 -0
  265. {linode_api4-5.43.0 → linode_api4-5.45.0}/test/fixtures/networking_firewalls_123_history_rules_2.json +0 -0
  266. {linode_api4-5.43.0 → linode_api4-5.45.0}/test/fixtures/networking_firewalls_settings.json +0 -0
  267. {linode_api4-5.43.0 → linode_api4-5.45.0}/test/fixtures/networking_firewalls_templates.json +0 -0
  268. {linode_api4-5.43.0 → linode_api4-5.45.0}/test/fixtures/networking_firewalls_templates_public.json +0 -0
  269. {linode_api4-5.43.0 → linode_api4-5.45.0}/test/fixtures/networking_firewalls_templates_vpc.json +0 -0
  270. {linode_api4-5.43.0 → linode_api4-5.45.0}/test/fixtures/networking_ips_127.0.0.1.json +0 -0
  271. {linode_api4-5.43.0 → linode_api4-5.45.0}/test/fixtures/networking_ipv6_pools.json +0 -0
  272. {linode_api4-5.43.0 → linode_api4-5.45.0}/test/fixtures/networking_ipv6_ranges.json +0 -0
  273. {linode_api4-5.43.0 → linode_api4-5.45.0}/test/fixtures/networking_ipv6_ranges_2600%3A3c01%3A%3A.json +0 -0
  274. {linode_api4-5.43.0 → linode_api4-5.45.0}/test/fixtures/networking_vlans.json +0 -0
  275. {linode_api4-5.43.0 → linode_api4-5.45.0}/test/fixtures/nodebalancers.json +0 -0
  276. {linode_api4-5.43.0 → linode_api4-5.45.0}/test/fixtures/nodebalancers_123456.json +0 -0
  277. {linode_api4-5.43.0 → linode_api4-5.45.0}/test/fixtures/nodebalancers_123456_configs.json +0 -0
  278. {linode_api4-5.43.0 → linode_api4-5.45.0}/test/fixtures/nodebalancers_123456_configs_65432_nodes.json +0 -0
  279. {linode_api4-5.43.0 → linode_api4-5.45.0}/test/fixtures/nodebalancers_12345_configs_4567_rebuild.json +0 -0
  280. {linode_api4-5.43.0 → linode_api4-5.45.0}/test/fixtures/nodebalancers_12345_firewalls.json +0 -0
  281. {linode_api4-5.43.0 → linode_api4-5.45.0}/test/fixtures/nodebalancers_12345_stats.json +0 -0
  282. {linode_api4-5.43.0 → linode_api4-5.45.0}/test/fixtures/nodebalancers_types.json +0 -0
  283. {linode_api4-5.43.0 → linode_api4-5.45.0}/test/fixtures/object-storage_buckets.json +0 -0
  284. {linode_api4-5.43.0 → linode_api4-5.45.0}/test/fixtures/object-storage_buckets_us-east-1.json +0 -0
  285. {linode_api4-5.43.0 → linode_api4-5.45.0}/test/fixtures/object-storage_buckets_us-east-1_example-bucket.json +0 -0
  286. {linode_api4-5.43.0 → linode_api4-5.45.0}/test/fixtures/object-storage_buckets_us-east-1_example-bucket_object-acl.json +0 -0
  287. {linode_api4-5.43.0 → linode_api4-5.45.0}/test/fixtures/object-storage_buckets_us-east-1_example-bucket_object-list.json +0 -0
  288. {linode_api4-5.43.0 → linode_api4-5.45.0}/test/fixtures/object-storage_buckets_us-east-1_example-bucket_object-url.json +0 -0
  289. {linode_api4-5.43.0 → linode_api4-5.45.0}/test/fixtures/object-storage_buckets_us-east-1_example-bucket_ssl.json +0 -0
  290. {linode_api4-5.43.0 → linode_api4-5.45.0}/test/fixtures/object-storage_buckets_us-east_example-bucket_access.json +0 -0
  291. {linode_api4-5.43.0 → linode_api4-5.45.0}/test/fixtures/object-storage_clusters.json +0 -0
  292. {linode_api4-5.43.0 → linode_api4-5.45.0}/test/fixtures/object-storage_keys.json +0 -0
  293. {linode_api4-5.43.0 → linode_api4-5.45.0}/test/fixtures/object-storage_quotas_obj-objects-us-ord-1_usage.json +0 -0
  294. {linode_api4-5.43.0 → linode_api4-5.45.0}/test/fixtures/object-storage_transfer.json +0 -0
  295. {linode_api4-5.43.0 → linode_api4-5.45.0}/test/fixtures/object-storage_types.json +0 -0
  296. {linode_api4-5.43.0 → linode_api4-5.45.0}/test/fixtures/placement_groups.json +0 -0
  297. {linode_api4-5.43.0 → linode_api4-5.45.0}/test/fixtures/placement_groups_123.json +0 -0
  298. {linode_api4-5.43.0 → linode_api4-5.45.0}/test/fixtures/profile.json +0 -0
  299. {linode_api4-5.43.0 → linode_api4-5.45.0}/test/fixtures/profile_device_123.json +0 -0
  300. {linode_api4-5.43.0 → linode_api4-5.45.0}/test/fixtures/profile_devices.json +0 -0
  301. {linode_api4-5.43.0 → linode_api4-5.45.0}/test/fixtures/profile_logins.json +0 -0
  302. {linode_api4-5.43.0 → linode_api4-5.45.0}/test/fixtures/profile_logins_123.json +0 -0
  303. {linode_api4-5.43.0 → linode_api4-5.45.0}/test/fixtures/profile_preferences.json +0 -0
  304. {linode_api4-5.43.0 → linode_api4-5.45.0}/test/fixtures/profile_security-questions.json +0 -0
  305. {linode_api4-5.43.0 → linode_api4-5.45.0}/test/fixtures/profile_sshkeys.json +0 -0
  306. {linode_api4-5.43.0 → linode_api4-5.45.0}/test/fixtures/regions.json +0 -0
  307. {linode_api4-5.43.0 → linode_api4-5.45.0}/test/fixtures/regions_availability.json +0 -0
  308. {linode_api4-5.43.0 → linode_api4-5.45.0}/test/fixtures/regions_us-east_availability.json +0 -0
  309. {linode_api4-5.43.0 → linode_api4-5.45.0}/test/fixtures/regions_us-east_vpc-availability.json +0 -0
  310. {linode_api4-5.43.0 → linode_api4-5.45.0}/test/fixtures/regions_vpc-availability.json +0 -0
  311. {linode_api4-5.43.0 → linode_api4-5.45.0}/test/fixtures/support_tickets_123.json +0 -0
  312. {linode_api4-5.43.0 → linode_api4-5.45.0}/test/fixtures/tags.json +0 -0
  313. {linode_api4-5.43.0 → linode_api4-5.45.0}/test/fixtures/tags_nothing.json +0 -0
  314. {linode_api4-5.43.0 → linode_api4-5.45.0}/test/fixtures/tags_something.json +0 -0
  315. {linode_api4-5.43.0 → linode_api4-5.45.0}/test/fixtures/testmappedobj1.json +0 -0
  316. {linode_api4-5.43.0 → linode_api4-5.45.0}/test/fixtures/volumes.json +0 -0
  317. {linode_api4-5.43.0 → linode_api4-5.45.0}/test/fixtures/volumes_types.json +0 -0
  318. {linode_api4-5.43.0 → linode_api4-5.45.0}/test/fixtures/vpcs.json +0 -0
  319. {linode_api4-5.43.0 → linode_api4-5.45.0}/test/fixtures/vpcs_123456.json +0 -0
  320. {linode_api4-5.43.0 → linode_api4-5.45.0}/test/fixtures/vpcs_123456_ips.json +0 -0
  321. {linode_api4-5.43.0 → linode_api4-5.45.0}/test/fixtures/vpcs_123456_subnets.json +0 -0
  322. {linode_api4-5.43.0 → linode_api4-5.45.0}/test/fixtures/vpcs_123456_subnets_789.json +0 -0
  323. {linode_api4-5.43.0 → linode_api4-5.45.0}/test/fixtures/vpcs_ips.json +0 -0
  324. {linode_api4-5.43.0 → linode_api4-5.45.0}/test/integration/__init__.py +0 -0
  325. {linode_api4-5.43.0 → linode_api4-5.45.0}/test/integration/filters/fixtures.py +0 -0
  326. {linode_api4-5.43.0 → linode_api4-5.45.0}/test/integration/filters/model_filters_test.py +0 -0
  327. {linode_api4-5.43.0 → linode_api4-5.45.0}/test/integration/helpers.py +0 -0
  328. {linode_api4-5.43.0 → linode_api4-5.45.0}/test/integration/linode_client/__init__.py +0 -0
  329. {linode_api4-5.43.0 → linode_api4-5.45.0}/test/integration/linode_client/test_errors.py +0 -0
  330. {linode_api4-5.43.0 → linode_api4-5.45.0}/test/integration/linode_client/test_retry.py +0 -0
  331. {linode_api4-5.43.0 → linode_api4-5.45.0}/test/integration/login_client/test_login_client.py +0 -0
  332. {linode_api4-5.43.0 → linode_api4-5.45.0}/test/integration/models/__init__.py +0 -0
  333. {linode_api4-5.43.0 → linode_api4-5.45.0}/test/integration/models/database/helpers.py +0 -0
  334. {linode_api4-5.43.0 → linode_api4-5.45.0}/test/integration/models/database/test_database.py +0 -0
  335. {linode_api4-5.43.0 → linode_api4-5.45.0}/test/integration/models/database/test_database_engine_config.py +0 -0
  336. {linode_api4-5.43.0 → linode_api4-5.45.0}/test/integration/models/firewall/test_firewall_templates.py +0 -0
  337. {linode_api4-5.43.0 → linode_api4-5.45.0}/test/integration/models/image/test_image.py +0 -0
  338. {linode_api4-5.43.0 → linode_api4-5.45.0}/test/integration/models/lke/test_lke.py +0 -0
  339. {linode_api4-5.43.0 → linode_api4-5.45.0}/test/integration/models/lock/__init__.py +0 -0
  340. {linode_api4-5.43.0 → linode_api4-5.45.0}/test/integration/models/longview/test_longview.py +0 -0
  341. {linode_api4-5.43.0 → linode_api4-5.45.0}/test/integration/models/maintenance/test_maintenance.py +0 -0
  342. {linode_api4-5.43.0 → linode_api4-5.45.0}/test/integration/models/monitor/test_monitor.py +0 -0
  343. {linode_api4-5.43.0 → linode_api4-5.45.0}/test/integration/models/monitor_api/test_monitor_api.py +0 -0
  344. {linode_api4-5.43.0 → linode_api4-5.45.0}/test/integration/models/object_storage/test_obj.py +0 -0
  345. {linode_api4-5.43.0 → linode_api4-5.45.0}/test/integration/models/profile/test_profile.py +0 -0
  346. {linode_api4-5.43.0 → linode_api4-5.45.0}/test/integration/models/region/test_region.py +0 -0
  347. {linode_api4-5.43.0 → linode_api4-5.45.0}/test/unit/__init__.py +0 -0
  348. {linode_api4-5.43.0 → linode_api4-5.45.0}/test/unit/base.py +0 -0
  349. {linode_api4-5.43.0 → linode_api4-5.45.0}/test/unit/errors_test.py +0 -0
  350. {linode_api4-5.43.0 → linode_api4-5.45.0}/test/unit/fixtures.py +0 -0
  351. {linode_api4-5.43.0 → linode_api4-5.45.0}/test/unit/groups/__init__.py +0 -0
  352. {linode_api4-5.43.0 → linode_api4-5.45.0}/test/unit/groups/database_test.py +0 -0
  353. {linode_api4-5.43.0 → linode_api4-5.45.0}/test/unit/groups/image_share_group_test.py +0 -0
  354. {linode_api4-5.43.0 → linode_api4-5.45.0}/test/unit/groups/image_test.py +0 -0
  355. {linode_api4-5.43.0 → linode_api4-5.45.0}/test/unit/groups/linode_test.py +0 -0
  356. {linode_api4-5.43.0 → linode_api4-5.45.0}/test/unit/groups/lke_test.py +0 -0
  357. {linode_api4-5.43.0 → linode_api4-5.45.0}/test/unit/groups/lke_tier_test.py +0 -0
  358. {linode_api4-5.43.0 → linode_api4-5.45.0}/test/unit/groups/lock_test.py +0 -0
  359. {linode_api4-5.43.0 → linode_api4-5.45.0}/test/unit/groups/monitor_api_test.py +0 -0
  360. {linode_api4-5.43.0 → linode_api4-5.45.0}/test/unit/groups/object_storage_test.py +0 -0
  361. {linode_api4-5.43.0 → linode_api4-5.45.0}/test/unit/groups/placement_test.py +0 -0
  362. {linode_api4-5.43.0 → linode_api4-5.45.0}/test/unit/groups/polling_test.py +0 -0
  363. {linode_api4-5.43.0 → linode_api4-5.45.0}/test/unit/groups/region_test.py +0 -0
  364. {linode_api4-5.43.0 → linode_api4-5.45.0}/test/unit/groups/vpc_test.py +0 -0
  365. {linode_api4-5.43.0 → linode_api4-5.45.0}/test/unit/login_client_test.py +0 -0
  366. {linode_api4-5.43.0 → linode_api4-5.45.0}/test/unit/objects/account_test.py +0 -0
  367. {linode_api4-5.43.0 → linode_api4-5.45.0}/test/unit/objects/base_test.py +0 -0
  368. {linode_api4-5.43.0 → linode_api4-5.45.0}/test/unit/objects/beta_test.py +0 -0
  369. {linode_api4-5.43.0 → linode_api4-5.45.0}/test/unit/objects/database_test.py +0 -0
  370. {linode_api4-5.43.0 → linode_api4-5.45.0}/test/unit/objects/domain_test.py +0 -0
  371. {linode_api4-5.43.0 → linode_api4-5.45.0}/test/unit/objects/image_share_group_test.py +0 -0
  372. {linode_api4-5.43.0 → linode_api4-5.45.0}/test/unit/objects/image_test.py +0 -0
  373. {linode_api4-5.43.0 → linode_api4-5.45.0}/test/unit/objects/linode_interface_test.py +0 -0
  374. {linode_api4-5.43.0 → linode_api4-5.45.0}/test/unit/objects/lke_test.py +0 -0
  375. {linode_api4-5.43.0 → linode_api4-5.45.0}/test/unit/objects/lock_test.py +0 -0
  376. {linode_api4-5.43.0 → linode_api4-5.45.0}/test/unit/objects/longview_test.py +0 -0
  377. {linode_api4-5.43.0 → linode_api4-5.45.0}/test/unit/objects/mapped_object_test.py +0 -0
  378. {linode_api4-5.43.0 → linode_api4-5.45.0}/test/unit/objects/nodebalancers_test.py +0 -0
  379. {linode_api4-5.43.0 → linode_api4-5.45.0}/test/unit/objects/placement_test.py +0 -0
  380. {linode_api4-5.43.0 → linode_api4-5.45.0}/test/unit/objects/profile_test.py +0 -0
  381. {linode_api4-5.43.0 → linode_api4-5.45.0}/test/unit/objects/property_alias_test.py +0 -0
  382. {linode_api4-5.43.0 → linode_api4-5.45.0}/test/unit/objects/region_test.py +0 -0
  383. {linode_api4-5.43.0 → linode_api4-5.45.0}/test/unit/objects/serializable_test.py +0 -0
  384. {linode_api4-5.43.0 → linode_api4-5.45.0}/test/unit/objects/support_test.py +0 -0
  385. {linode_api4-5.43.0 → linode_api4-5.45.0}/test/unit/objects/volume_test.py +0 -0
  386. {linode_api4-5.43.0 → linode_api4-5.45.0}/test/unit/objects/vpc_test.py +0 -0
  387. {linode_api4-5.43.0 → linode_api4-5.45.0}/test/unit/paginated_list_test.py +0 -0
  388. {linode_api4-5.43.0 → linode_api4-5.45.0}/test/unit/util_test.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: linode_api4
3
- Version: 5.43.0
3
+ Version: 5.45.0
4
4
  Summary: The official Python SDK for Linode API v4
5
5
  Author-email: Linode <devs@linode.com>
6
6
  License: BSD-3-Clause
@@ -162,6 +162,11 @@ class LinodeGroup(Group):
162
162
  interface_generation: Optional[Union[InterfaceGeneration, str]] = None,
163
163
  network_helper: Optional[bool] = None,
164
164
  maintenance_policy: Optional[str] = None,
165
+ root_pass: Optional[str] = None,
166
+ kernel: Optional[str] = None,
167
+ boot_size: Optional[int] = None,
168
+ authorized_users: Optional[List[str]] = None,
169
+ ipv4: Optional[List[str]] = None,
165
170
  **kwargs,
166
171
  ):
167
172
  """
@@ -172,27 +177,26 @@ class LinodeGroup(Group):
172
177
  To create an Instance from an :any:`Image`, call `instance_create` with
173
178
  a :any:`Type`, a :any:`Region`, and an :any:`Image`. All three of
174
179
  these fields may be provided as either the ID or the appropriate object.
175
- In this mode, a root password will be generated and returned with the
176
- new Instance object.
180
+ When an Image is provided, at least one of ``root_pass``, ``authorized_users``, or
181
+ ``authorized_keys`` must also be given.
177
182
 
178
183
  For example::
179
184
 
180
- new_linode, password = client.linode.instance_create(
185
+ new_linode = client.linode.instance_create(
181
186
  "g6-standard-2",
182
187
  "us-east",
183
- image="linode/debian9")
188
+ image="linode/debian13",
189
+ root_pass="aComplex@Password123")
184
190
 
185
191
  ltype = client.linode.types().first()
186
192
  region = client.regions().first()
187
193
  image = client.images().first()
188
194
 
189
- another_linode, password = client.linode.instance_create(
195
+ another_linode = client.linode.instance_create(
190
196
  ltype,
191
197
  region,
192
- image=image)
193
-
194
- To output the password from the above example:
195
- print(password)
198
+ image=image,
199
+ authorized_keys="ssh-rsa AAAA")
196
200
 
197
201
  To output the first IPv4 address of the new Linode:
198
202
  print(new_linode.ipv4[0])
@@ -210,10 +214,11 @@ class LinodeGroup(Group):
210
214
 
211
215
  stackscript = StackScript(client, 10079)
212
216
 
213
- new_linode, password = client.linode.instance_create(
217
+ new_linode = client.linode.instance_create(
214
218
  "g6-standard-2",
215
219
  "us-east",
216
- image="linode/debian9",
220
+ image="linode/debian13",
221
+ root_pass="aComplex@Password123",
217
222
  stackscript=stackscript,
218
223
  stackscript_data={"gh_username": "example"})
219
224
 
@@ -244,10 +249,11 @@ class LinodeGroup(Group):
244
249
  To create a new Instance with explicit interfaces, provide list of
245
250
  LinodeInterfaceOptions objects or dicts to the "interfaces" field::
246
251
 
247
- linode, password = client.linode.instance_create(
252
+ linode = client.linode.instance_create(
248
253
  "g6-standard-1",
249
254
  "us-mia",
250
255
  image="linode/ubuntu24.04",
256
+ root_pass="aComplex@Password123",
251
257
 
252
258
  # This can be configured as an account-wide default
253
259
  interface_generation=InterfaceGeneration.LINODE,
@@ -280,10 +286,14 @@ class LinodeGroup(Group):
280
286
  :type ltype: str or Type
281
287
  :param region: The Region in which we are creating the Instance
282
288
  :type region: str or Region
283
- :param image: The Image to deploy to this Instance. If this is provided
284
- and no root_pass is given, a password will be generated
285
- and returned along with the new Instance.
289
+ :param image: The Image to deploy to this Instance. If this is provided,
290
+ at least one of root_pass, authorized_users, or authorized_keys must also be
291
+ provided.
286
292
  :type image: str or Image
293
+ :param root_pass: The root password for the new Instance. Required when
294
+ an image is provided and neither authorized_users nor
295
+ authorized_keys are given.
296
+ :type root_pass: str
287
297
  :param stackscript: The StackScript to deploy to the new Instance. If
288
298
  provided, "image" is required and must be compatible
289
299
  with the chosen StackScript.
@@ -300,6 +310,11 @@ class LinodeGroup(Group):
300
310
  be a single key, or a path to a file containing
301
311
  the key.
302
312
  :type authorized_keys: list or str
313
+ :param authorized_users: A list of usernames whose keys should be installed
314
+ as trusted for the root user. These user's keys
315
+ should already be set up, see :any:`ProfileGroup.ssh_keys`
316
+ for details.
317
+ :type authorized_users: list[str]
303
318
  :param label: The display label for the new Instance
304
319
  :type label: str
305
320
  :param group: The display group for the new Instance
@@ -335,26 +350,42 @@ class LinodeGroup(Group):
335
350
  :param maintenance_policy: The slug of the maintenance policy to apply during maintenance.
336
351
  If not provided, the default policy (linode/migrate) will be applied.
337
352
  :type maintenance_policy: str
338
-
339
- :returns: A new Instance object, or a tuple containing the new Instance and
340
- the generated password.
341
- :rtype: Instance or tuple(Instance, str)
353
+ :param kernel: The kernel to boot the Instance with. If provided, this will be used as the
354
+ kernel for the default configuration profile.
355
+ :type kernel: str
356
+ :param boot_size: The size of the boot disk in MB. If provided, this will be used to create
357
+ the boot disk for the Instance.
358
+ :type boot_size: int
359
+ :param ipv4: A list of reserved IPv4 addresses to assign to this Instance.
360
+ NOTE: Reserved IP feature may not currently be available to all users.
361
+ :type ipv4: list[str]
362
+
363
+ :returns: A new Instance object
364
+ :rtype: Instance
342
365
  :raises ApiError: If contacting the API fails
343
366
  :raises UnexpectedResponseError: If the API response is somehow malformed.
344
367
  This usually indicates that you are using
345
368
  an outdated library.
346
369
  """
347
370
 
348
- ret_pass = None
349
- if image and not "root_pass" in kwargs:
350
- ret_pass = Instance.generate_root_password()
351
- kwargs["root_pass"] = ret_pass
371
+ if (
372
+ image
373
+ and not root_pass
374
+ and not authorized_keys
375
+ and not authorized_users
376
+ ):
377
+ raise ValueError(
378
+ "When creating an Instance from an Image, at least one of "
379
+ "root_pass, authorized_users, or authorized_keys must be provided."
380
+ )
352
381
 
353
382
  params = {
354
383
  "type": ltype,
355
384
  "region": region,
356
385
  "image": image,
386
+ "root_pass": root_pass,
357
387
  "authorized_keys": load_and_validate_keys(authorized_keys),
388
+ "authorized_users": authorized_users,
358
389
  # These will automatically be flattened below
359
390
  "firewall_id": firewall,
360
391
  "backup_id": backup,
@@ -372,6 +403,9 @@ class LinodeGroup(Group):
372
403
  "interfaces": interfaces,
373
404
  "interface_generation": interface_generation,
374
405
  "network_helper": network_helper,
406
+ "kernel": kernel,
407
+ "boot_size": boot_size,
408
+ "ipv4": ipv4,
375
409
  }
376
410
 
377
411
  params.update(kwargs)
@@ -386,10 +420,7 @@ class LinodeGroup(Group):
386
420
  "Unexpected response when creating linode!", json=result
387
421
  )
388
422
 
389
- l = Instance(self.client, result["id"], result)
390
- if not ret_pass:
391
- return l
392
- return l, ret_pass
423
+ return Instance(self.client, result["id"], result)
393
424
 
394
425
  @staticmethod
395
426
  def build_instance_metadata(user_data=None, encode_user_data=True):
@@ -398,10 +429,11 @@ class LinodeGroup(Group):
398
429
  the :any:`instance_create` method. This helper can also be used
399
430
  when cloning and rebuilding Instances.
400
431
  **Creating an Instance with User Data**::
401
- new_linode, password = client.linode.instance_create(
432
+ new_linode = client.linode.instance_create(
402
433
  "g6-standard-2",
403
434
  "us-east",
404
435
  image="linode/ubuntu22.04",
436
+ root_pass="aComplex@Password123",
405
437
  metadata=client.linode.build_instance_metadata(user_data="myuserdata")
406
438
  )
407
439
  :param user_data: User-defined data to provide to the Linode Instance through
@@ -24,7 +24,7 @@ class LockGroup(Group):
24
24
 
25
25
  locks = client.locks()
26
26
 
27
- API Documentation: TBD
27
+ API Documentation: https://techdocs.akamai.com/linode-api/reference/get-resource-locks
28
28
 
29
29
  :param filters: Any number of filters to apply to this query.
30
30
  See :doc:`Filtering Collections</linode_api4/objects/filtering>`
@@ -44,7 +44,7 @@ class LockGroup(Group):
44
44
  """
45
45
  Creates a new Resource Lock for the specified entity.
46
46
 
47
- API Documentation: TBD
47
+ API Documentation: https://techdocs.akamai.com/linode-api/reference/post-resource-lock
48
48
 
49
49
  :param entity_type: The type of entity to lock (e.g., "linode").
50
50
  :type entity_type: str
@@ -8,11 +8,21 @@ from linode_api4.objects import (
8
8
  AlertDefinition,
9
9
  AlertDefinitionEntity,
10
10
  AlertScope,
11
+ LogsDestination,
12
+ LogsDestinationType,
13
+ LogsStream,
14
+ LogsStreamStatus,
15
+ LogsStreamType,
11
16
  MonitorDashboard,
12
17
  MonitorMetricsDefinition,
13
18
  MonitorService,
14
19
  MonitorServiceToken,
15
20
  )
21
+ from linode_api4.objects.monitor import (
22
+ AkamaiObjectStorageLogsDestinationDetails,
23
+ CustomHTTPSLogsDestinationDetails,
24
+ LogsStreamDetails,
25
+ )
16
26
 
17
27
  __all__ = [
18
28
  "MonitorGroup",
@@ -37,8 +47,6 @@ class MonitorGroup(Group):
37
47
  dashboard = client.load(MonitorDashboard, 1)
38
48
  dashboards_by_service = client.monitor.dashboards(service_type="dbaas")
39
49
 
40
- .. note:: This endpoint is in beta. This will only function if base_url is set to `https://api.linode.com/v4beta`.
41
-
42
50
  API Documentation:
43
51
  - All Dashboards: https://techdocs.akamai.com/linode-api/reference/get-dashboards-all
44
52
  - Dashboards by Service: https://techdocs.akamai.com/linode-api/reference/get-dashboards
@@ -73,8 +81,6 @@ class MonitorGroup(Group):
73
81
  supported_services = client.monitor.services()
74
82
  service_details = client.monitor.load(MonitorService, "dbaas")
75
83
 
76
- .. note:: This endpoint is in beta. This will only function if base_url is set to `https://api.linode.com/v4beta`.
77
-
78
84
  API Documentation: https://techdocs.akamai.com/linode-api/reference/get-monitor-services
79
85
  API Documentation: https://techdocs.akamai.com/linode-api/reference/get-monitor-services-for-service-type
80
86
 
@@ -100,7 +106,6 @@ class MonitorGroup(Group):
100
106
  Returns metrics for a specific service type.
101
107
 
102
108
  metrics = client.monitor.list_metric_definitions(service_type="dbaas")
103
- .. note:: This endpoint is in beta. This will only function if base_url is set to `https://api.linode.com/v4beta`.
104
109
 
105
110
  API Documentation: https://techdocs.akamai.com/linode-api/reference/get-monitor-information
106
111
 
@@ -126,8 +131,6 @@ class MonitorGroup(Group):
126
131
  Returns a JWE Token for a specific service type.
127
132
  token = client.monitor.create_token(service_type="dbaas", entity_ids=[1234])
128
133
 
129
- .. note:: This endpoint is in beta. This will only function if base_url is set to `https://api.linode.com/v4beta`.
130
-
131
134
  API Documentation: https://techdocs.akamai.com/linode-api/reference/post-get-token
132
135
 
133
136
  :param service_type: The service type to create token for.
@@ -165,7 +168,6 @@ class MonitorGroup(Group):
165
168
 
166
169
  alerts = client.monitor.alert_definitions()
167
170
  alerts_by_service = client.monitor.alert_definitions(service_type="dbaas")
168
- .. note:: This endpoint is in beta and requires using the v4beta base URL.
169
171
 
170
172
  API Documentation:
171
173
  https://techdocs.akamai.com/linode-api/reference/get-alert-definitions
@@ -202,8 +204,6 @@ class MonitorGroup(Group):
202
204
  Examples:
203
205
  channels = client.monitor.alert_channels()
204
206
 
205
- .. note:: This endpoint is in beta and requires using the v4beta base URL.
206
-
207
207
  API Documentation: https://techdocs.akamai.com/linode-api/reference/get-notification-channels
208
208
 
209
209
  :param filters: Optional filter expressions to apply to the collection.
@@ -232,8 +232,6 @@ class MonitorGroup(Group):
232
232
  The alert definition configures when alerts are fired and which channels
233
233
  are notified.
234
234
 
235
- .. note:: This endpoint is in beta and requires using the v4beta base URL.
236
-
237
235
  API Documentation: https://techdocs.akamai.com/linode-api/reference/post-alert-definition-for-service-type
238
236
 
239
237
  :param service_type: Service type for which to create the alert definition
@@ -309,9 +307,7 @@ class MonitorGroup(Group):
309
307
 
310
308
  This endpoint supports pagination fields (`page`, `page_size`) in the API.
311
309
 
312
- .. note:: This endpoint is in beta and requires using the v4beta base URL.
313
-
314
- API Documentation: TODO
310
+ API Documentation: https://techdocs.akamai.com/linode-api/reference/get-alert-definition-entities
315
311
 
316
312
  :param service_type: Service type for the alert definition (e.g. `dbaas`).
317
313
  :type service_type: str
@@ -332,3 +328,206 @@ class MonitorGroup(Group):
332
328
  *filters,
333
329
  endpoint=endpoint,
334
330
  )
331
+
332
+ def destinations(self, *filters) -> PaginatedList:
333
+ """
334
+ List available logs destinations.
335
+
336
+ Returns a paginated collection of :class:`LogsDestination` objects which
337
+ describe logs destinations. By default, this method returns all available
338
+ destinations; you can supply optional filter expressions to restrict
339
+ the results, for example::
340
+
341
+ # Get destinations created by username and with id 111
342
+ destinations = client.monitor.destinations(LogsDestination.created_by == "username",
343
+ LogsDestination.id == 111)
344
+
345
+ API Documentation: https://techdocs.akamai.com/linode-api/reference/get-destinations
346
+
347
+ :param filters: Any number of filters to apply to this query.
348
+ See :doc:`Filtering Collections</linode_api4/objects/filtering>`
349
+ for more details on filtering.
350
+
351
+ :returns: A list of :class:`LogsDestination` objects matching the query.
352
+ :rtype: PaginatedList of LogsDestination
353
+ """
354
+
355
+ return self.client._get_and_filter(LogsDestination, *filters)
356
+
357
+ def destination_create(
358
+ self,
359
+ label: str,
360
+ type: Union[LogsDestinationType, str],
361
+ details: Union[
362
+ AkamaiObjectStorageLogsDestinationDetails,
363
+ CustomHTTPSLogsDestinationDetails,
364
+ ],
365
+ ) -> LogsDestination:
366
+ """
367
+ Creates a new :any:`LogsDestination` for logs on this account.
368
+
369
+ For an ``akamai_object_storage`` destination::
370
+
371
+ client = LinodeClient(TOKEN)
372
+
373
+ new_destination = client.monitor.destination_create(
374
+ label="OBJ_logs_destination",
375
+ type="akamai_object_storage",
376
+ details=AkamaiObjectStorageLogsDestinationDetails(
377
+ access_key_id="1ABCD23EFG4HIJKLMNO5",
378
+ access_key_secret="1aB2CD3e4fgHi5JK6lmnop7qR8STU9VxYzabcdefHh",
379
+ bucket_name="primary-bucket",
380
+ host="primary-bucket-1.us-east-12.linodeobjects.com",
381
+ path="audit-logs",
382
+ )
383
+ )
384
+
385
+ For a ``custom_https`` destination::
386
+
387
+ new_destination = client.monitor.destination_create(
388
+ label="custom_logs_destination",
389
+ type="custom_https",
390
+ details=CustomHTTPSLogsDestinationDetails(
391
+ endpoint_url="https://my-site.com/log-storage/basicAuth",
392
+ authentication=DestinationAuthentication(
393
+ type="basic",
394
+ details=BasicAuthenticationDetails(
395
+ basic_authentication_user="user",
396
+ basic_authentication_password="pass",
397
+ ),
398
+ ),
399
+ data_compression="gzip",
400
+ content_type="application/json",
401
+ )
402
+ )
403
+
404
+ API Documentation: https://techdocs.akamai.com/linode-api/reference/post-destination
405
+
406
+ :param label: The name for this logs destination.
407
+ :type label: str
408
+ :param type: The type of destination — ``akamai_object_storage`` or ``custom_https``.
409
+ :type type: str or LogsDestinationType
410
+ :param details: A typed details object matching the destination type.
411
+ Use :class:`AkamaiObjectStorageLogsDestinationDetails` for
412
+ ``akamai_object_storage`` or :class:`CustomHTTPSLogsDestinationDetails`
413
+ for ``custom_https``.
414
+ :type details: AkamaiObjectStorageLogsDestinationDetails or CustomHTTPSLogsDestinationDetails
415
+
416
+ :returns: The newly created logs destination.
417
+ :rtype: LogsDestination
418
+ """
419
+
420
+ params = {
421
+ "label": label,
422
+ "type": type,
423
+ "details": details.dict,
424
+ }
425
+
426
+ result = self.client.post("/monitor/streams/destinations", data=params)
427
+
428
+ if "id" not in result:
429
+ raise UnexpectedResponseError(
430
+ "Unexpected response when creating destination!",
431
+ json=result,
432
+ )
433
+
434
+ return LogsDestination(self.client, result["id"], result)
435
+
436
+ def streams(self, *filters) -> PaginatedList:
437
+ """
438
+ List available logs streams.
439
+
440
+ Returns a paginated collection of :class:`LogsStream` objects which
441
+ describe logs streams. By default, this method returns all available
442
+ streams; you can supply optional filter expressions to restrict
443
+ the results, for example::
444
+
445
+ # Get all streams with status ``provisioning``
446
+ provisioning_streams = client.monitor.streams(LogsStream.status == "provisioning")
447
+
448
+ API Documentation: https://techdocs.akamai.com/linode-api/reference/get-streams
449
+
450
+ :param filters: Any number of filters to apply to this query.
451
+ See :doc:`Filtering Collections</linode_api4/objects/filtering>`
452
+ for more details on filtering.
453
+ :returns: A list of :class:`LogsStream` objects matching the query.
454
+ :rtype: PaginatedList of LogsStream
455
+ """
456
+
457
+ return self.client._get_and_filter(LogsStream, *filters)
458
+
459
+ def stream_create(
460
+ self,
461
+ destinations: list[int],
462
+ label: str,
463
+ type: Union[LogsStreamType, str],
464
+ status: Optional[Union[LogsStreamStatus, str]] = None,
465
+ details: Optional[LogsStreamDetails] = None,
466
+ ) -> LogsStream:
467
+ """
468
+ Creates a new :any:`LogsStream` for logs on this account. For example::
469
+
470
+ client = LinodeClient(TOKEN)
471
+
472
+ # audit_logs stream (no details required)
473
+ new_stream = client.monitor.stream_create(
474
+ destinations=[1234],
475
+ label="Linode_services",
476
+ status="active",
477
+ type="audit_logs"
478
+ )
479
+
480
+ # lke_audit_logs stream with specific clusters
481
+ lke_stream = client.monitor.stream_create(
482
+ destinations=[1234],
483
+ label="LKE_audit_stream",
484
+ type="lke_audit_logs",
485
+ details=LogsStreamDetails(
486
+ cluster_ids=[1111, 2222],
487
+ is_auto_add_all_clusters_enabled=False,
488
+ )
489
+ )
490
+
491
+ API Documentation: https://techdocs.akamai.com/linode-api/reference/post-stream
492
+
493
+ :param destinations: The unique identifier for the sync point that will receive logs data.
494
+ Run the List destinations operation and store the id values for each applicable destination.
495
+ At the moment only single destination is supported.
496
+ :type destinations: list[int]
497
+ :param label: The name of the stream. This is used for display purposes in Akamai Cloud Manager.
498
+ :type label: str
499
+ :param type: The type of stream — ``audit_logs`` for Linode control plane logs,
500
+ or ``lke_audit_logs`` for LKE enterprise cluster audit logs.
501
+ :type type: str or LogsStreamType
502
+ :param status: (Optional) The availability status of the stream. Possible values are: ``active``, ``inactive``.
503
+ Defaults to ``active``.
504
+ :type status: str
505
+ :param details: (Optional) Additional stream details. Only applicable for
506
+ ``lke_audit_logs`` streams. Omit for ``audit_logs`` streams.
507
+ :type details: LogsStreamDetails
508
+
509
+ :returns: The newly created logs stream.
510
+ :rtype: LogsStream
511
+ """
512
+
513
+ params = {
514
+ "label": label,
515
+ "type": type,
516
+ "destinations": destinations,
517
+ }
518
+
519
+ if status is not None:
520
+ params["status"] = status
521
+
522
+ if details is not None:
523
+ params["details"] = details.dict
524
+
525
+ result = self.client.post("/monitor/streams", data=params)
526
+
527
+ if "id" not in result:
528
+ raise UnexpectedResponseError(
529
+ "Unexpected response when creating logs stream!",
530
+ json=result,
531
+ )
532
+
533
+ return LogsStream(self.client, result["id"], result)