linode-api4 5.42.0__tar.gz → 5.44.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 (370) hide show
  1. {linode_api4-5.42.0/linode_api4.egg-info → linode_api4-5.44.0}/PKG-INFO +1 -1
  2. {linode_api4-5.42.0 → linode_api4-5.44.0}/linode_api4/groups/linode.py +55 -29
  3. {linode_api4-5.42.0 → linode_api4-5.44.0}/linode_api4/groups/lock.py +2 -2
  4. {linode_api4-5.42.0 → linode_api4-5.44.0}/linode_api4/groups/monitor.py +52 -4
  5. {linode_api4-5.42.0 → linode_api4-5.44.0}/linode_api4/groups/networking.py +2 -2
  6. {linode_api4-5.42.0 → linode_api4-5.44.0}/linode_api4/groups/object_storage.py +16 -0
  7. {linode_api4-5.42.0 → linode_api4-5.44.0}/linode_api4/groups/volume.py +0 -1
  8. {linode_api4-5.42.0 → linode_api4-5.44.0}/linode_api4/objects/database.py +1 -6
  9. {linode_api4-5.42.0 → linode_api4-5.44.0}/linode_api4/objects/linode.py +34 -34
  10. {linode_api4-5.42.0 → linode_api4-5.44.0}/linode_api4/objects/linode_interfaces.py +0 -74
  11. {linode_api4-5.42.0 → linode_api4-5.44.0}/linode_api4/objects/lock.py +3 -3
  12. {linode_api4-5.42.0 → linode_api4-5.44.0}/linode_api4/objects/monitor.py +53 -43
  13. {linode_api4-5.42.0 → linode_api4-5.44.0}/linode_api4/objects/networking.py +0 -2
  14. {linode_api4-5.42.0 → linode_api4-5.44.0}/linode_api4/objects/object_storage.py +40 -0
  15. {linode_api4-5.42.0 → linode_api4-5.44.0}/linode_api4/version.py +1 -1
  16. {linode_api4-5.42.0 → linode_api4-5.44.0/linode_api4.egg-info}/PKG-INFO +1 -1
  17. {linode_api4-5.42.0 → linode_api4-5.44.0}/linode_api4.egg-info/SOURCES.txt +5 -0
  18. linode_api4-5.44.0/test/fixtures/monitor_alert-channels.json +31 -0
  19. {linode_api4-5.42.0 → linode_api4-5.44.0}/test/fixtures/monitor_alert-definitions.json +15 -4
  20. {linode_api4-5.42.0 → linode_api4-5.44.0}/test/fixtures/monitor_services_dbaas_alert-definitions.json +14 -5
  21. {linode_api4-5.42.0 → linode_api4-5.44.0}/test/fixtures/monitor_services_dbaas_alert-definitions_12345.json +14 -4
  22. linode_api4-5.44.0/test/fixtures/monitor_services_dbaas_alert-definitions_12345_entities.json +25 -0
  23. {linode_api4-5.42.0 → linode_api4-5.44.0}/test/fixtures/networking_firewalls.json +5 -3
  24. {linode_api4-5.42.0 → linode_api4-5.44.0}/test/fixtures/networking_firewalls_123.json +5 -3
  25. linode_api4-5.44.0/test/fixtures/networking_firewalls_123_rules.json +8 -0
  26. linode_api4-5.44.0/test/fixtures/object-storage_global-quotas.json +25 -0
  27. linode_api4-5.44.0/test/fixtures/object-storage_global-quotas_obj-access-keys-per-account.json +9 -0
  28. linode_api4-5.44.0/test/fixtures/object-storage_global-quotas_obj-access-keys-per-account_usage.json +4 -0
  29. {linode_api4-5.42.0 → linode_api4-5.44.0}/test/fixtures/object-storage_quotas.json +6 -2
  30. {linode_api4-5.42.0 → linode_api4-5.44.0}/test/fixtures/object-storage_quotas_obj-objects-us-ord-1.json +3 -1
  31. {linode_api4-5.42.0 → linode_api4-5.44.0}/test/integration/conftest.py +13 -8
  32. {linode_api4-5.42.0 → linode_api4-5.44.0}/test/integration/linode_client/test_linode_client.py +6 -7
  33. {linode_api4-5.42.0 → linode_api4-5.44.0}/test/integration/models/account/test_account.py +2 -1
  34. {linode_api4-5.42.0 → linode_api4-5.44.0}/test/integration/models/firewall/test_firewall.py +14 -2
  35. {linode_api4-5.42.0 → linode_api4-5.44.0}/test/integration/models/linode/test_linode.py +112 -25
  36. {linode_api4-5.42.0 → linode_api4-5.44.0}/test/integration/models/lock/test_lock.py +2 -1
  37. {linode_api4-5.42.0 → linode_api4-5.44.0}/test/integration/models/monitor/test_monitor.py +37 -1
  38. {linode_api4-5.42.0 → linode_api4-5.44.0}/test/integration/models/networking/test_networking.py +3 -2
  39. {linode_api4-5.42.0 → linode_api4-5.44.0}/test/integration/models/nodebalancer/test_nodebalancer.py +2 -1
  40. linode_api4-5.44.0/test/integration/models/object_storage/test_obj_quotas.py +116 -0
  41. {linode_api4-5.42.0 → linode_api4-5.44.0}/test/integration/models/sharegroups/test_sharegroups.py +4 -5
  42. {linode_api4-5.42.0 → linode_api4-5.44.0}/test/integration/models/volume/test_blockstorage.py +6 -2
  43. {linode_api4-5.42.0 → linode_api4-5.44.0}/test/integration/models/volume/test_volume.py +2 -1
  44. {linode_api4-5.42.0 → linode_api4-5.44.0}/test/unit/groups/monitor_api_test.py +64 -0
  45. {linode_api4-5.42.0 → linode_api4-5.44.0}/test/unit/linode_client_test.py +134 -5
  46. {linode_api4-5.42.0 → linode_api4-5.44.0}/test/unit/objects/firewall_test.py +2 -0
  47. {linode_api4-5.42.0 → linode_api4-5.44.0}/test/unit/objects/linode_test.py +82 -8
  48. {linode_api4-5.42.0 → linode_api4-5.44.0}/test/unit/objects/monitor_test.py +24 -1
  49. {linode_api4-5.42.0 → linode_api4-5.44.0}/test/unit/objects/object_storage_test.py +59 -0
  50. linode_api4-5.42.0/test/fixtures/networking_firewalls_123_rules.json +0 -6
  51. linode_api4-5.42.0/test/integration/models/object_storage/test_obj_quotas.py +0 -45
  52. {linode_api4-5.42.0 → linode_api4-5.44.0}/LICENSE +0 -0
  53. {linode_api4-5.42.0 → linode_api4-5.44.0}/MANIFEST.in +0 -0
  54. {linode_api4-5.42.0 → linode_api4-5.44.0}/README.rst +0 -0
  55. {linode_api4-5.42.0 → linode_api4-5.44.0}/examples/install-on-linode/app.py +0 -0
  56. {linode_api4-5.42.0 → linode_api4-5.44.0}/examples/install-on-linode/make_stackscript.py +0 -0
  57. {linode_api4-5.42.0 → linode_api4-5.44.0}/linode_api4/__init__.py +0 -0
  58. {linode_api4-5.42.0 → linode_api4-5.44.0}/linode_api4/common.py +0 -0
  59. {linode_api4-5.42.0 → linode_api4-5.44.0}/linode_api4/errors.py +0 -0
  60. {linode_api4-5.42.0 → linode_api4-5.44.0}/linode_api4/groups/__init__.py +0 -0
  61. {linode_api4-5.42.0 → linode_api4-5.44.0}/linode_api4/groups/account.py +0 -0
  62. {linode_api4-5.42.0 → linode_api4-5.44.0}/linode_api4/groups/beta.py +0 -0
  63. {linode_api4-5.42.0 → linode_api4-5.44.0}/linode_api4/groups/database.py +0 -0
  64. {linode_api4-5.42.0 → linode_api4-5.44.0}/linode_api4/groups/domain.py +0 -0
  65. {linode_api4-5.42.0 → linode_api4-5.44.0}/linode_api4/groups/group.py +0 -0
  66. {linode_api4-5.42.0 → linode_api4-5.44.0}/linode_api4/groups/image.py +0 -0
  67. {linode_api4-5.42.0 → linode_api4-5.44.0}/linode_api4/groups/image_share_group.py +0 -0
  68. {linode_api4-5.42.0 → linode_api4-5.44.0}/linode_api4/groups/lke.py +0 -0
  69. {linode_api4-5.42.0 → linode_api4-5.44.0}/linode_api4/groups/lke_tier.py +0 -0
  70. {linode_api4-5.42.0 → linode_api4-5.44.0}/linode_api4/groups/longview.py +0 -0
  71. {linode_api4-5.42.0 → linode_api4-5.44.0}/linode_api4/groups/maintenance.py +0 -0
  72. {linode_api4-5.42.0 → linode_api4-5.44.0}/linode_api4/groups/monitor_api.py +0 -0
  73. {linode_api4-5.42.0 → linode_api4-5.44.0}/linode_api4/groups/nodebalancer.py +0 -0
  74. {linode_api4-5.42.0 → linode_api4-5.44.0}/linode_api4/groups/placement.py +0 -0
  75. {linode_api4-5.42.0 → linode_api4-5.44.0}/linode_api4/groups/polling.py +0 -0
  76. {linode_api4-5.42.0 → linode_api4-5.44.0}/linode_api4/groups/profile.py +0 -0
  77. {linode_api4-5.42.0 → linode_api4-5.44.0}/linode_api4/groups/region.py +0 -0
  78. {linode_api4-5.42.0 → linode_api4-5.44.0}/linode_api4/groups/support.py +0 -0
  79. {linode_api4-5.42.0 → linode_api4-5.44.0}/linode_api4/groups/tag.py +0 -0
  80. {linode_api4-5.42.0 → linode_api4-5.44.0}/linode_api4/groups/vpc.py +0 -0
  81. {linode_api4-5.42.0 → linode_api4-5.44.0}/linode_api4/linode_client.py +0 -0
  82. {linode_api4-5.42.0 → linode_api4-5.44.0}/linode_api4/login_client.py +0 -0
  83. {linode_api4-5.42.0 → linode_api4-5.44.0}/linode_api4/objects/__init__.py +0 -0
  84. {linode_api4-5.42.0 → linode_api4-5.44.0}/linode_api4/objects/account.py +0 -0
  85. {linode_api4-5.42.0 → linode_api4-5.44.0}/linode_api4/objects/base.py +0 -0
  86. {linode_api4-5.42.0 → linode_api4-5.44.0}/linode_api4/objects/beta.py +0 -0
  87. {linode_api4-5.42.0 → linode_api4-5.44.0}/linode_api4/objects/dbase.py +0 -0
  88. {linode_api4-5.42.0 → linode_api4-5.44.0}/linode_api4/objects/domain.py +0 -0
  89. {linode_api4-5.42.0 → linode_api4-5.44.0}/linode_api4/objects/filtering.py +0 -0
  90. {linode_api4-5.42.0 → linode_api4-5.44.0}/linode_api4/objects/image.py +0 -0
  91. {linode_api4-5.42.0 → linode_api4-5.44.0}/linode_api4/objects/image_share_group.py +0 -0
  92. {linode_api4-5.42.0 → linode_api4-5.44.0}/linode_api4/objects/lke.py +0 -0
  93. {linode_api4-5.42.0 → linode_api4-5.44.0}/linode_api4/objects/longview.py +0 -0
  94. {linode_api4-5.42.0 → linode_api4-5.44.0}/linode_api4/objects/monitor_api.py +0 -0
  95. {linode_api4-5.42.0 → linode_api4-5.44.0}/linode_api4/objects/nodebalancer.py +0 -0
  96. {linode_api4-5.42.0 → linode_api4-5.44.0}/linode_api4/objects/placement.py +0 -0
  97. {linode_api4-5.42.0 → linode_api4-5.44.0}/linode_api4/objects/profile.py +0 -0
  98. {linode_api4-5.42.0 → linode_api4-5.44.0}/linode_api4/objects/region.py +0 -0
  99. {linode_api4-5.42.0 → linode_api4-5.44.0}/linode_api4/objects/serializable.py +0 -0
  100. {linode_api4-5.42.0 → linode_api4-5.44.0}/linode_api4/objects/support.py +0 -0
  101. {linode_api4-5.42.0 → linode_api4-5.44.0}/linode_api4/objects/tag.py +0 -0
  102. {linode_api4-5.42.0 → linode_api4-5.44.0}/linode_api4/objects/volume.py +0 -0
  103. {linode_api4-5.42.0 → linode_api4-5.44.0}/linode_api4/objects/vpc.py +0 -0
  104. {linode_api4-5.42.0 → linode_api4-5.44.0}/linode_api4/paginated_list.py +0 -0
  105. {linode_api4-5.42.0 → linode_api4-5.44.0}/linode_api4/polling.py +0 -0
  106. {linode_api4-5.42.0 → linode_api4-5.44.0}/linode_api4/util.py +0 -0
  107. {linode_api4-5.42.0 → linode_api4-5.44.0}/linode_api4.egg-info/dependency_links.txt +0 -0
  108. {linode_api4-5.42.0 → linode_api4-5.44.0}/linode_api4.egg-info/requires.txt +0 -0
  109. {linode_api4-5.42.0 → linode_api4-5.44.0}/linode_api4.egg-info/top_level.txt +0 -0
  110. {linode_api4-5.42.0 → linode_api4-5.44.0}/pyproject.toml +0 -0
  111. {linode_api4-5.42.0 → linode_api4-5.44.0}/setup.cfg +0 -0
  112. {linode_api4-5.42.0 → linode_api4-5.44.0}/setup.py +0 -0
  113. {linode_api4-5.42.0 → linode_api4-5.44.0}/test/__init__.py +0 -0
  114. {linode_api4-5.42.0 → linode_api4-5.44.0}/test/fixtures/account.json +0 -0
  115. {linode_api4-5.42.0 → linode_api4-5.44.0}/test/fixtures/account_availability.json +0 -0
  116. {linode_api4-5.42.0 → linode_api4-5.44.0}/test/fixtures/account_availability_us-east.json +0 -0
  117. {linode_api4-5.42.0 → linode_api4-5.44.0}/test/fixtures/account_betas.json +0 -0
  118. {linode_api4-5.42.0 → linode_api4-5.44.0}/test/fixtures/account_betas_cool.json +0 -0
  119. {linode_api4-5.42.0 → linode_api4-5.44.0}/test/fixtures/account_child-accounts.json +0 -0
  120. {linode_api4-5.42.0 → linode_api4-5.44.0}/test/fixtures/account_child-accounts_123456.json +0 -0
  121. {linode_api4-5.42.0 → linode_api4-5.44.0}/test/fixtures/account_child-accounts_123456_token.json +0 -0
  122. {linode_api4-5.42.0 → linode_api4-5.44.0}/test/fixtures/account_events_123.json +0 -0
  123. {linode_api4-5.42.0 → linode_api4-5.44.0}/test/fixtures/account_invoices.json +0 -0
  124. {linode_api4-5.42.0 → linode_api4-5.44.0}/test/fixtures/account_invoices_123.json +0 -0
  125. {linode_api4-5.42.0 → linode_api4-5.44.0}/test/fixtures/account_invoices_123456_items.json +0 -0
  126. {linode_api4-5.42.0 → linode_api4-5.44.0}/test/fixtures/account_logins.json +0 -0
  127. {linode_api4-5.42.0 → linode_api4-5.44.0}/test/fixtures/account_logins_123.json +0 -0
  128. {linode_api4-5.42.0 → linode_api4-5.44.0}/test/fixtures/account_maintenance.json +0 -0
  129. {linode_api4-5.42.0 → linode_api4-5.44.0}/test/fixtures/account_notifications.json +0 -0
  130. {linode_api4-5.42.0 → linode_api4-5.44.0}/test/fixtures/account_oauth-clients_2737bf16b39ab5d7b4a1.json +0 -0
  131. {linode_api4-5.42.0 → linode_api4-5.44.0}/test/fixtures/account_payment-method_123.json +0 -0
  132. {linode_api4-5.42.0 → linode_api4-5.44.0}/test/fixtures/account_payment-methods.json +0 -0
  133. {linode_api4-5.42.0 → linode_api4-5.44.0}/test/fixtures/account_payments.json +0 -0
  134. {linode_api4-5.42.0 → linode_api4-5.44.0}/test/fixtures/account_promo-codes.json +0 -0
  135. {linode_api4-5.42.0 → linode_api4-5.44.0}/test/fixtures/account_service-transfers.json +0 -0
  136. {linode_api4-5.42.0 → linode_api4-5.44.0}/test/fixtures/account_service-transfers_12345.json +0 -0
  137. {linode_api4-5.42.0 → linode_api4-5.44.0}/test/fixtures/account_settings.json +0 -0
  138. {linode_api4-5.42.0 → linode_api4-5.44.0}/test/fixtures/account_transfer.json +0 -0
  139. {linode_api4-5.42.0 → linode_api4-5.44.0}/test/fixtures/account_users_test-user.json +0 -0
  140. {linode_api4-5.42.0 → linode_api4-5.44.0}/test/fixtures/betas.json +0 -0
  141. {linode_api4-5.42.0 → linode_api4-5.44.0}/test/fixtures/betas_active.json +0 -0
  142. {linode_api4-5.42.0 → linode_api4-5.44.0}/test/fixtures/databases_engines.json +0 -0
  143. {linode_api4-5.42.0 → linode_api4-5.44.0}/test/fixtures/databases_instances.json +0 -0
  144. {linode_api4-5.42.0 → linode_api4-5.44.0}/test/fixtures/databases_mysql_config.json +0 -0
  145. {linode_api4-5.42.0 → linode_api4-5.44.0}/test/fixtures/databases_mysql_instances.json +0 -0
  146. {linode_api4-5.42.0 → linode_api4-5.44.0}/test/fixtures/databases_mysql_instances_123_credentials.json +0 -0
  147. {linode_api4-5.42.0 → linode_api4-5.44.0}/test/fixtures/databases_mysql_instances_123_credentials_reset.json +0 -0
  148. {linode_api4-5.42.0 → linode_api4-5.44.0}/test/fixtures/databases_mysql_instances_123_patch.json +0 -0
  149. {linode_api4-5.42.0 → linode_api4-5.44.0}/test/fixtures/databases_mysql_instances_123_resume.json +0 -0
  150. {linode_api4-5.42.0 → linode_api4-5.44.0}/test/fixtures/databases_mysql_instances_123_ssl.json +0 -0
  151. {linode_api4-5.42.0 → linode_api4-5.44.0}/test/fixtures/databases_mysql_instances_123_suspend.json +0 -0
  152. {linode_api4-5.42.0 → linode_api4-5.44.0}/test/fixtures/databases_postgresql_config.json +0 -0
  153. {linode_api4-5.42.0 → linode_api4-5.44.0}/test/fixtures/databases_postgresql_instances.json +0 -0
  154. {linode_api4-5.42.0 → linode_api4-5.44.0}/test/fixtures/databases_postgresql_instances_123_credentials.json +0 -0
  155. {linode_api4-5.42.0 → linode_api4-5.44.0}/test/fixtures/databases_postgresql_instances_123_credentials_reset.json +0 -0
  156. {linode_api4-5.42.0 → linode_api4-5.44.0}/test/fixtures/databases_postgresql_instances_123_patch.json +0 -0
  157. {linode_api4-5.42.0 → linode_api4-5.44.0}/test/fixtures/databases_postgresql_instances_123_resume.json +0 -0
  158. {linode_api4-5.42.0 → linode_api4-5.44.0}/test/fixtures/databases_postgresql_instances_123_ssl.json +0 -0
  159. {linode_api4-5.42.0 → linode_api4-5.44.0}/test/fixtures/databases_postgresql_instances_123_suspend.json +0 -0
  160. {linode_api4-5.42.0 → linode_api4-5.44.0}/test/fixtures/databases_types.json +0 -0
  161. {linode_api4-5.42.0 → linode_api4-5.44.0}/test/fixtures/domains.json +0 -0
  162. {linode_api4-5.42.0 → linode_api4-5.44.0}/test/fixtures/domains_12345_clone.json +0 -0
  163. {linode_api4-5.42.0 → linode_api4-5.44.0}/test/fixtures/domains_12345_records.json +0 -0
  164. {linode_api4-5.42.0 → linode_api4-5.44.0}/test/fixtures/domains_12345_zone-file.json +0 -0
  165. {linode_api4-5.42.0 → linode_api4-5.44.0}/test/fixtures/domains_import.json +0 -0
  166. {linode_api4-5.42.0 → linode_api4-5.44.0}/test/fixtures/images.json +0 -0
  167. {linode_api4-5.42.0 → linode_api4-5.44.0}/test/fixtures/images_private_1234_sharegroups.json +0 -0
  168. {linode_api4-5.42.0 → linode_api4-5.44.0}/test/fixtures/images_private_123_regions.json +0 -0
  169. {linode_api4-5.42.0 → linode_api4-5.44.0}/test/fixtures/images_private_1337.json +0 -0
  170. {linode_api4-5.42.0 → linode_api4-5.44.0}/test/fixtures/images_sharegroups.json +0 -0
  171. {linode_api4-5.42.0 → linode_api4-5.44.0}/test/fixtures/images_sharegroups_1234.json +0 -0
  172. {linode_api4-5.42.0 → linode_api4-5.44.0}/test/fixtures/images_sharegroups_1234_images.json +0 -0
  173. {linode_api4-5.42.0 → linode_api4-5.44.0}/test/fixtures/images_sharegroups_1234_images_shared_1.json +0 -0
  174. {linode_api4-5.42.0 → linode_api4-5.44.0}/test/fixtures/images_sharegroups_1234_members.json +0 -0
  175. {linode_api4-5.42.0 → linode_api4-5.44.0}/test/fixtures/images_sharegroups_1234_members_abc123.json +0 -0
  176. {linode_api4-5.42.0 → linode_api4-5.44.0}/test/fixtures/images_sharegroups_tokens.json +0 -0
  177. {linode_api4-5.42.0 → linode_api4-5.44.0}/test/fixtures/images_sharegroups_tokens_abc123.json +0 -0
  178. {linode_api4-5.42.0 → linode_api4-5.44.0}/test/fixtures/images_sharegroups_tokens_abc123_sharegroup.json +0 -0
  179. {linode_api4-5.42.0 → linode_api4-5.44.0}/test/fixtures/images_sharegroups_tokens_abc123_sharegroup_images.json +0 -0
  180. {linode_api4-5.42.0 → linode_api4-5.44.0}/test/fixtures/images_upload.json +0 -0
  181. {linode_api4-5.42.0 → linode_api4-5.44.0}/test/fixtures/linode_instances.json +0 -0
  182. {linode_api4-5.42.0 → linode_api4-5.44.0}/test/fixtures/linode_instances_123_backups.json +0 -0
  183. {linode_api4-5.42.0 → linode_api4-5.44.0}/test/fixtures/linode_instances_123_configs.json +0 -0
  184. {linode_api4-5.42.0 → linode_api4-5.44.0}/test/fixtures/linode_instances_123_configs_456789.json +0 -0
  185. {linode_api4-5.42.0 → linode_api4-5.44.0}/test/fixtures/linode_instances_123_configs_456789_interfaces.json +0 -0
  186. {linode_api4-5.42.0 → linode_api4-5.44.0}/test/fixtures/linode_instances_123_configs_456789_interfaces_123.json +0 -0
  187. {linode_api4-5.42.0 → linode_api4-5.44.0}/test/fixtures/linode_instances_123_configs_456789_interfaces_123_put.json +0 -0
  188. {linode_api4-5.42.0 → linode_api4-5.44.0}/test/fixtures/linode_instances_123_configs_456789_interfaces_321.json +0 -0
  189. {linode_api4-5.42.0 → linode_api4-5.44.0}/test/fixtures/linode_instances_123_configs_456789_interfaces_456.json +0 -0
  190. {linode_api4-5.42.0 → linode_api4-5.44.0}/test/fixtures/linode_instances_123_disks.json +0 -0
  191. {linode_api4-5.42.0 → linode_api4-5.44.0}/test/fixtures/linode_instances_123_disks_12345_clone.json +0 -0
  192. {linode_api4-5.42.0 → linode_api4-5.44.0}/test/fixtures/linode_instances_123_firewalls.json +0 -0
  193. {linode_api4-5.42.0 → linode_api4-5.44.0}/test/fixtures/linode_instances_123_ips.json +0 -0
  194. {linode_api4-5.42.0 → linode_api4-5.44.0}/test/fixtures/linode_instances_123_nodebalancers.json +0 -0
  195. {linode_api4-5.42.0 → linode_api4-5.44.0}/test/fixtures/linode_instances_123_transfer.json +0 -0
  196. {linode_api4-5.42.0 → linode_api4-5.44.0}/test/fixtures/linode_instances_123_transfer_2023_4.json +0 -0
  197. {linode_api4-5.42.0 → linode_api4-5.44.0}/test/fixtures/linode_instances_123_volumes.json +0 -0
  198. {linode_api4-5.42.0 → linode_api4-5.44.0}/test/fixtures/linode_instances_124.json +0 -0
  199. {linode_api4-5.42.0 → linode_api4-5.44.0}/test/fixtures/linode_instances_124_interfaces.json +0 -0
  200. {linode_api4-5.42.0 → linode_api4-5.44.0}/test/fixtures/linode_instances_124_interfaces_123.json +0 -0
  201. {linode_api4-5.42.0 → linode_api4-5.44.0}/test/fixtures/linode_instances_124_interfaces_123_firewalls.json +0 -0
  202. {linode_api4-5.42.0 → linode_api4-5.44.0}/test/fixtures/linode_instances_124_interfaces_456.json +0 -0
  203. {linode_api4-5.42.0 → linode_api4-5.44.0}/test/fixtures/linode_instances_124_interfaces_789.json +0 -0
  204. {linode_api4-5.42.0 → linode_api4-5.44.0}/test/fixtures/linode_instances_124_interfaces_settings.json +0 -0
  205. {linode_api4-5.42.0 → linode_api4-5.44.0}/test/fixtures/linode_instances_124_upgrade-interfaces.json +0 -0
  206. {linode_api4-5.42.0 → linode_api4-5.44.0}/test/fixtures/linode_stackscripts_10079.json +0 -0
  207. {linode_api4-5.42.0 → linode_api4-5.44.0}/test/fixtures/linode_types.json +0 -0
  208. {linode_api4-5.42.0 → linode_api4-5.44.0}/test/fixtures/linode_types_g6-nanode-1.json +0 -0
  209. {linode_api4-5.42.0 → linode_api4-5.44.0}/test/fixtures/lke_clusters.json +0 -0
  210. {linode_api4-5.42.0 → linode_api4-5.44.0}/test/fixtures/lke_clusters_18881.json +0 -0
  211. {linode_api4-5.42.0 → linode_api4-5.44.0}/test/fixtures/lke_clusters_18881_control__plane__acl.json +0 -0
  212. {linode_api4-5.42.0 → linode_api4-5.44.0}/test/fixtures/lke_clusters_18881_dashboard.json +0 -0
  213. {linode_api4-5.42.0 → linode_api4-5.44.0}/test/fixtures/lke_clusters_18881_nodes_123456.json +0 -0
  214. {linode_api4-5.42.0 → linode_api4-5.44.0}/test/fixtures/lke_clusters_18881_pools_456.json +0 -0
  215. {linode_api4-5.42.0 → linode_api4-5.44.0}/test/fixtures/lke_clusters_18882.json +0 -0
  216. {linode_api4-5.42.0 → linode_api4-5.44.0}/test/fixtures/lke_clusters_18882_pools_789.json +0 -0
  217. {linode_api4-5.42.0 → linode_api4-5.44.0}/test/fixtures/lke_tiers_standard_versions.json +0 -0
  218. {linode_api4-5.42.0 → linode_api4-5.44.0}/test/fixtures/lke_types.json +0 -0
  219. {linode_api4-5.42.0 → linode_api4-5.44.0}/test/fixtures/lke_versions.json +0 -0
  220. {linode_api4-5.42.0 → linode_api4-5.44.0}/test/fixtures/locks.json +0 -0
  221. {linode_api4-5.42.0 → linode_api4-5.44.0}/test/fixtures/locks_1.json +0 -0
  222. {linode_api4-5.42.0 → linode_api4-5.44.0}/test/fixtures/longview_clients.json +0 -0
  223. {linode_api4-5.42.0 → linode_api4-5.44.0}/test/fixtures/longview_plan.json +0 -0
  224. {linode_api4-5.42.0 → linode_api4-5.44.0}/test/fixtures/longview_subscriptions.json +0 -0
  225. {linode_api4-5.42.0 → linode_api4-5.44.0}/test/fixtures/maintenance_policies.json +0 -0
  226. {linode_api4-5.42.0 → linode_api4-5.44.0}/test/fixtures/mongodb.json +0 -0
  227. {linode_api4-5.42.0 → linode_api4-5.44.0}/test/fixtures/monitor_dashboards.json +0 -0
  228. {linode_api4-5.42.0 → linode_api4-5.44.0}/test/fixtures/monitor_dashboards_1.json +0 -0
  229. {linode_api4-5.42.0 → linode_api4-5.44.0}/test/fixtures/monitor_services.json +0 -0
  230. {linode_api4-5.42.0 → linode_api4-5.44.0}/test/fixtures/monitor_services_dbaas.json +0 -0
  231. {linode_api4-5.42.0 → linode_api4-5.44.0}/test/fixtures/monitor_services_dbaas_dashboards.json +0 -0
  232. {linode_api4-5.42.0 → linode_api4-5.44.0}/test/fixtures/monitor_services_dbaas_metric-definitions.json +0 -0
  233. {linode_api4-5.42.0 → linode_api4-5.44.0}/test/fixtures/monitor_services_dbaas_metrics.json +0 -0
  234. {linode_api4-5.42.0 → linode_api4-5.44.0}/test/fixtures/monitor_services_dbaas_token.json +0 -0
  235. {linode_api4-5.42.0 → linode_api4-5.44.0}/test/fixtures/monitor_services_linode_token.json +0 -0
  236. {linode_api4-5.42.0 → linode_api4-5.44.0}/test/fixtures/network-transfer_prices.json +0 -0
  237. {linode_api4-5.42.0 → linode_api4-5.44.0}/test/fixtures/networking_firewalls_123_devices.json +0 -0
  238. {linode_api4-5.42.0 → linode_api4-5.44.0}/test/fixtures/networking_firewalls_123_devices_123.json +0 -0
  239. {linode_api4-5.42.0 → linode_api4-5.44.0}/test/fixtures/networking_firewalls_123_devices_456.json +0 -0
  240. {linode_api4-5.42.0 → linode_api4-5.44.0}/test/fixtures/networking_firewalls_123_history.json +0 -0
  241. {linode_api4-5.42.0 → linode_api4-5.44.0}/test/fixtures/networking_firewalls_123_history_rules_2.json +0 -0
  242. {linode_api4-5.42.0 → linode_api4-5.44.0}/test/fixtures/networking_firewalls_settings.json +0 -0
  243. {linode_api4-5.42.0 → linode_api4-5.44.0}/test/fixtures/networking_firewalls_templates.json +0 -0
  244. {linode_api4-5.42.0 → linode_api4-5.44.0}/test/fixtures/networking_firewalls_templates_public.json +0 -0
  245. {linode_api4-5.42.0 → linode_api4-5.44.0}/test/fixtures/networking_firewalls_templates_vpc.json +0 -0
  246. {linode_api4-5.42.0 → linode_api4-5.44.0}/test/fixtures/networking_ips_127.0.0.1.json +0 -0
  247. {linode_api4-5.42.0 → linode_api4-5.44.0}/test/fixtures/networking_ipv6_pools.json +0 -0
  248. {linode_api4-5.42.0 → linode_api4-5.44.0}/test/fixtures/networking_ipv6_ranges.json +0 -0
  249. {linode_api4-5.42.0 → linode_api4-5.44.0}/test/fixtures/networking_ipv6_ranges_2600%3A3c01%3A%3A.json +0 -0
  250. {linode_api4-5.42.0 → linode_api4-5.44.0}/test/fixtures/networking_vlans.json +0 -0
  251. {linode_api4-5.42.0 → linode_api4-5.44.0}/test/fixtures/nodebalancers.json +0 -0
  252. {linode_api4-5.42.0 → linode_api4-5.44.0}/test/fixtures/nodebalancers_123456.json +0 -0
  253. {linode_api4-5.42.0 → linode_api4-5.44.0}/test/fixtures/nodebalancers_123456_configs.json +0 -0
  254. {linode_api4-5.42.0 → linode_api4-5.44.0}/test/fixtures/nodebalancers_123456_configs_65432_nodes.json +0 -0
  255. {linode_api4-5.42.0 → linode_api4-5.44.0}/test/fixtures/nodebalancers_12345_configs_4567_rebuild.json +0 -0
  256. {linode_api4-5.42.0 → linode_api4-5.44.0}/test/fixtures/nodebalancers_12345_firewalls.json +0 -0
  257. {linode_api4-5.42.0 → linode_api4-5.44.0}/test/fixtures/nodebalancers_12345_stats.json +0 -0
  258. {linode_api4-5.42.0 → linode_api4-5.44.0}/test/fixtures/nodebalancers_types.json +0 -0
  259. {linode_api4-5.42.0 → linode_api4-5.44.0}/test/fixtures/object-storage_buckets.json +0 -0
  260. {linode_api4-5.42.0 → linode_api4-5.44.0}/test/fixtures/object-storage_buckets_us-east-1.json +0 -0
  261. {linode_api4-5.42.0 → linode_api4-5.44.0}/test/fixtures/object-storage_buckets_us-east-1_example-bucket.json +0 -0
  262. {linode_api4-5.42.0 → linode_api4-5.44.0}/test/fixtures/object-storage_buckets_us-east-1_example-bucket_object-acl.json +0 -0
  263. {linode_api4-5.42.0 → linode_api4-5.44.0}/test/fixtures/object-storage_buckets_us-east-1_example-bucket_object-list.json +0 -0
  264. {linode_api4-5.42.0 → linode_api4-5.44.0}/test/fixtures/object-storage_buckets_us-east-1_example-bucket_object-url.json +0 -0
  265. {linode_api4-5.42.0 → linode_api4-5.44.0}/test/fixtures/object-storage_buckets_us-east-1_example-bucket_ssl.json +0 -0
  266. {linode_api4-5.42.0 → linode_api4-5.44.0}/test/fixtures/object-storage_buckets_us-east_example-bucket_access.json +0 -0
  267. {linode_api4-5.42.0 → linode_api4-5.44.0}/test/fixtures/object-storage_clusters.json +0 -0
  268. {linode_api4-5.42.0 → linode_api4-5.44.0}/test/fixtures/object-storage_keys.json +0 -0
  269. {linode_api4-5.42.0 → linode_api4-5.44.0}/test/fixtures/object-storage_quotas_obj-objects-us-ord-1_usage.json +0 -0
  270. {linode_api4-5.42.0 → linode_api4-5.44.0}/test/fixtures/object-storage_transfer.json +0 -0
  271. {linode_api4-5.42.0 → linode_api4-5.44.0}/test/fixtures/object-storage_types.json +0 -0
  272. {linode_api4-5.42.0 → linode_api4-5.44.0}/test/fixtures/placement_groups.json +0 -0
  273. {linode_api4-5.42.0 → linode_api4-5.44.0}/test/fixtures/placement_groups_123.json +0 -0
  274. {linode_api4-5.42.0 → linode_api4-5.44.0}/test/fixtures/profile.json +0 -0
  275. {linode_api4-5.42.0 → linode_api4-5.44.0}/test/fixtures/profile_device_123.json +0 -0
  276. {linode_api4-5.42.0 → linode_api4-5.44.0}/test/fixtures/profile_devices.json +0 -0
  277. {linode_api4-5.42.0 → linode_api4-5.44.0}/test/fixtures/profile_logins.json +0 -0
  278. {linode_api4-5.42.0 → linode_api4-5.44.0}/test/fixtures/profile_logins_123.json +0 -0
  279. {linode_api4-5.42.0 → linode_api4-5.44.0}/test/fixtures/profile_preferences.json +0 -0
  280. {linode_api4-5.42.0 → linode_api4-5.44.0}/test/fixtures/profile_security-questions.json +0 -0
  281. {linode_api4-5.42.0 → linode_api4-5.44.0}/test/fixtures/profile_sshkeys.json +0 -0
  282. {linode_api4-5.42.0 → linode_api4-5.44.0}/test/fixtures/regions.json +0 -0
  283. {linode_api4-5.42.0 → linode_api4-5.44.0}/test/fixtures/regions_availability.json +0 -0
  284. {linode_api4-5.42.0 → linode_api4-5.44.0}/test/fixtures/regions_us-east_availability.json +0 -0
  285. {linode_api4-5.42.0 → linode_api4-5.44.0}/test/fixtures/regions_us-east_vpc-availability.json +0 -0
  286. {linode_api4-5.42.0 → linode_api4-5.44.0}/test/fixtures/regions_vpc-availability.json +0 -0
  287. {linode_api4-5.42.0 → linode_api4-5.44.0}/test/fixtures/support_tickets_123.json +0 -0
  288. {linode_api4-5.42.0 → linode_api4-5.44.0}/test/fixtures/tags.json +0 -0
  289. {linode_api4-5.42.0 → linode_api4-5.44.0}/test/fixtures/tags_nothing.json +0 -0
  290. {linode_api4-5.42.0 → linode_api4-5.44.0}/test/fixtures/tags_something.json +0 -0
  291. {linode_api4-5.42.0 → linode_api4-5.44.0}/test/fixtures/testmappedobj1.json +0 -0
  292. {linode_api4-5.42.0 → linode_api4-5.44.0}/test/fixtures/volumes.json +0 -0
  293. {linode_api4-5.42.0 → linode_api4-5.44.0}/test/fixtures/volumes_types.json +0 -0
  294. {linode_api4-5.42.0 → linode_api4-5.44.0}/test/fixtures/vpcs.json +0 -0
  295. {linode_api4-5.42.0 → linode_api4-5.44.0}/test/fixtures/vpcs_123456.json +0 -0
  296. {linode_api4-5.42.0 → linode_api4-5.44.0}/test/fixtures/vpcs_123456_ips.json +0 -0
  297. {linode_api4-5.42.0 → linode_api4-5.44.0}/test/fixtures/vpcs_123456_subnets.json +0 -0
  298. {linode_api4-5.42.0 → linode_api4-5.44.0}/test/fixtures/vpcs_123456_subnets_789.json +0 -0
  299. {linode_api4-5.42.0 → linode_api4-5.44.0}/test/fixtures/vpcs_ips.json +0 -0
  300. {linode_api4-5.42.0 → linode_api4-5.44.0}/test/integration/__init__.py +0 -0
  301. {linode_api4-5.42.0 → linode_api4-5.44.0}/test/integration/filters/fixtures.py +0 -0
  302. {linode_api4-5.42.0 → linode_api4-5.44.0}/test/integration/filters/model_filters_test.py +0 -0
  303. {linode_api4-5.42.0 → linode_api4-5.44.0}/test/integration/helpers.py +0 -0
  304. {linode_api4-5.42.0 → linode_api4-5.44.0}/test/integration/linode_client/__init__.py +0 -0
  305. {linode_api4-5.42.0 → linode_api4-5.44.0}/test/integration/linode_client/test_errors.py +0 -0
  306. {linode_api4-5.42.0 → linode_api4-5.44.0}/test/integration/linode_client/test_retry.py +0 -0
  307. {linode_api4-5.42.0 → linode_api4-5.44.0}/test/integration/login_client/test_login_client.py +0 -0
  308. {linode_api4-5.42.0 → linode_api4-5.44.0}/test/integration/models/__init__.py +0 -0
  309. {linode_api4-5.42.0 → linode_api4-5.44.0}/test/integration/models/database/helpers.py +0 -0
  310. {linode_api4-5.42.0 → linode_api4-5.44.0}/test/integration/models/database/test_database.py +0 -0
  311. {linode_api4-5.42.0 → linode_api4-5.44.0}/test/integration/models/database/test_database_engine_config.py +0 -0
  312. {linode_api4-5.42.0 → linode_api4-5.44.0}/test/integration/models/domain/test_domain.py +0 -0
  313. {linode_api4-5.42.0 → linode_api4-5.44.0}/test/integration/models/firewall/test_firewall_templates.py +0 -0
  314. {linode_api4-5.42.0 → linode_api4-5.44.0}/test/integration/models/image/test_image.py +0 -0
  315. {linode_api4-5.42.0 → linode_api4-5.44.0}/test/integration/models/linode/interfaces/test_interfaces.py +0 -0
  316. {linode_api4-5.42.0 → linode_api4-5.44.0}/test/integration/models/lke/test_lke.py +0 -0
  317. {linode_api4-5.42.0 → linode_api4-5.44.0}/test/integration/models/lock/__init__.py +0 -0
  318. {linode_api4-5.42.0 → linode_api4-5.44.0}/test/integration/models/longview/test_longview.py +0 -0
  319. {linode_api4-5.42.0 → linode_api4-5.44.0}/test/integration/models/maintenance/test_maintenance.py +0 -0
  320. {linode_api4-5.42.0 → linode_api4-5.44.0}/test/integration/models/monitor_api/test_monitor_api.py +0 -0
  321. {linode_api4-5.42.0 → linode_api4-5.44.0}/test/integration/models/object_storage/test_obj.py +0 -0
  322. {linode_api4-5.42.0 → linode_api4-5.44.0}/test/integration/models/placement/test_placement.py +0 -0
  323. {linode_api4-5.42.0 → linode_api4-5.44.0}/test/integration/models/profile/test_profile.py +0 -0
  324. {linode_api4-5.42.0 → linode_api4-5.44.0}/test/integration/models/region/test_region.py +0 -0
  325. {linode_api4-5.42.0 → linode_api4-5.44.0}/test/integration/models/tag/test_tag.py +0 -0
  326. {linode_api4-5.42.0 → linode_api4-5.44.0}/test/integration/models/vpc/test_vpc.py +0 -0
  327. {linode_api4-5.42.0 → linode_api4-5.44.0}/test/unit/__init__.py +0 -0
  328. {linode_api4-5.42.0 → linode_api4-5.44.0}/test/unit/base.py +0 -0
  329. {linode_api4-5.42.0 → linode_api4-5.44.0}/test/unit/errors_test.py +0 -0
  330. {linode_api4-5.42.0 → linode_api4-5.44.0}/test/unit/fixtures.py +0 -0
  331. {linode_api4-5.42.0 → linode_api4-5.44.0}/test/unit/groups/__init__.py +0 -0
  332. {linode_api4-5.42.0 → linode_api4-5.44.0}/test/unit/groups/database_test.py +0 -0
  333. {linode_api4-5.42.0 → linode_api4-5.44.0}/test/unit/groups/image_share_group_test.py +0 -0
  334. {linode_api4-5.42.0 → linode_api4-5.44.0}/test/unit/groups/image_test.py +0 -0
  335. {linode_api4-5.42.0 → linode_api4-5.44.0}/test/unit/groups/linode_test.py +0 -0
  336. {linode_api4-5.42.0 → linode_api4-5.44.0}/test/unit/groups/lke_test.py +0 -0
  337. {linode_api4-5.42.0 → linode_api4-5.44.0}/test/unit/groups/lke_tier_test.py +0 -0
  338. {linode_api4-5.42.0 → linode_api4-5.44.0}/test/unit/groups/lock_test.py +0 -0
  339. {linode_api4-5.42.0 → linode_api4-5.44.0}/test/unit/groups/networking_test.py +0 -0
  340. {linode_api4-5.42.0 → linode_api4-5.44.0}/test/unit/groups/object_storage_test.py +0 -0
  341. {linode_api4-5.42.0 → linode_api4-5.44.0}/test/unit/groups/placement_test.py +0 -0
  342. {linode_api4-5.42.0 → linode_api4-5.44.0}/test/unit/groups/polling_test.py +0 -0
  343. {linode_api4-5.42.0 → linode_api4-5.44.0}/test/unit/groups/region_test.py +0 -0
  344. {linode_api4-5.42.0 → linode_api4-5.44.0}/test/unit/groups/vpc_test.py +0 -0
  345. {linode_api4-5.42.0 → linode_api4-5.44.0}/test/unit/login_client_test.py +0 -0
  346. {linode_api4-5.42.0 → linode_api4-5.44.0}/test/unit/objects/account_test.py +0 -0
  347. {linode_api4-5.42.0 → linode_api4-5.44.0}/test/unit/objects/base_test.py +0 -0
  348. {linode_api4-5.42.0 → linode_api4-5.44.0}/test/unit/objects/beta_test.py +0 -0
  349. {linode_api4-5.42.0 → linode_api4-5.44.0}/test/unit/objects/database_test.py +0 -0
  350. {linode_api4-5.42.0 → linode_api4-5.44.0}/test/unit/objects/domain_test.py +0 -0
  351. {linode_api4-5.42.0 → linode_api4-5.44.0}/test/unit/objects/image_share_group_test.py +0 -0
  352. {linode_api4-5.42.0 → linode_api4-5.44.0}/test/unit/objects/image_test.py +0 -0
  353. {linode_api4-5.42.0 → linode_api4-5.44.0}/test/unit/objects/linode_interface_test.py +0 -0
  354. {linode_api4-5.42.0 → linode_api4-5.44.0}/test/unit/objects/lke_test.py +0 -0
  355. {linode_api4-5.42.0 → linode_api4-5.44.0}/test/unit/objects/lock_test.py +0 -0
  356. {linode_api4-5.42.0 → linode_api4-5.44.0}/test/unit/objects/longview_test.py +0 -0
  357. {linode_api4-5.42.0 → linode_api4-5.44.0}/test/unit/objects/mapped_object_test.py +0 -0
  358. {linode_api4-5.42.0 → linode_api4-5.44.0}/test/unit/objects/networking_test.py +0 -0
  359. {linode_api4-5.42.0 → linode_api4-5.44.0}/test/unit/objects/nodebalancers_test.py +0 -0
  360. {linode_api4-5.42.0 → linode_api4-5.44.0}/test/unit/objects/placement_test.py +0 -0
  361. {linode_api4-5.42.0 → linode_api4-5.44.0}/test/unit/objects/profile_test.py +0 -0
  362. {linode_api4-5.42.0 → linode_api4-5.44.0}/test/unit/objects/property_alias_test.py +0 -0
  363. {linode_api4-5.42.0 → linode_api4-5.44.0}/test/unit/objects/region_test.py +0 -0
  364. {linode_api4-5.42.0 → linode_api4-5.44.0}/test/unit/objects/serializable_test.py +0 -0
  365. {linode_api4-5.42.0 → linode_api4-5.44.0}/test/unit/objects/support_test.py +0 -0
  366. {linode_api4-5.42.0 → linode_api4-5.44.0}/test/unit/objects/tag_test.py +0 -0
  367. {linode_api4-5.42.0 → linode_api4-5.44.0}/test/unit/objects/volume_test.py +0 -0
  368. {linode_api4-5.42.0 → linode_api4-5.44.0}/test/unit/objects/vpc_test.py +0 -0
  369. {linode_api4-5.42.0 → linode_api4-5.44.0}/test/unit/paginated_list_test.py +0 -0
  370. {linode_api4-5.42.0 → linode_api4-5.44.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.42.0
3
+ Version: 5.44.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,10 @@ 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,
165
169
  **kwargs,
166
170
  ):
167
171
  """
@@ -172,27 +176,26 @@ class LinodeGroup(Group):
172
176
  To create an Instance from an :any:`Image`, call `instance_create` with
173
177
  a :any:`Type`, a :any:`Region`, and an :any:`Image`. All three of
174
178
  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.
179
+ When an Image is provided, at least one of ``root_pass``, ``authorized_users``, or
180
+ ``authorized_keys`` must also be given.
177
181
 
178
182
  For example::
179
183
 
180
- new_linode, password = client.linode.instance_create(
184
+ new_linode = client.linode.instance_create(
181
185
  "g6-standard-2",
182
186
  "us-east",
183
- image="linode/debian9")
187
+ image="linode/debian13",
188
+ root_pass="aComplex@Password123")
184
189
 
185
190
  ltype = client.linode.types().first()
186
191
  region = client.regions().first()
187
192
  image = client.images().first()
188
193
 
189
- another_linode, password = client.linode.instance_create(
194
+ another_linode = client.linode.instance_create(
190
195
  ltype,
191
196
  region,
192
- image=image)
193
-
194
- To output the password from the above example:
195
- print(password)
197
+ image=image,
198
+ authorized_keys="ssh-rsa AAAA")
196
199
 
197
200
  To output the first IPv4 address of the new Linode:
198
201
  print(new_linode.ipv4[0])
@@ -210,10 +213,11 @@ class LinodeGroup(Group):
210
213
 
211
214
  stackscript = StackScript(client, 10079)
212
215
 
213
- new_linode, password = client.linode.instance_create(
216
+ new_linode = client.linode.instance_create(
214
217
  "g6-standard-2",
215
218
  "us-east",
216
- image="linode/debian9",
219
+ image="linode/debian13",
220
+ root_pass="aComplex@Password123",
217
221
  stackscript=stackscript,
218
222
  stackscript_data={"gh_username": "example"})
219
223
 
@@ -244,10 +248,11 @@ class LinodeGroup(Group):
244
248
  To create a new Instance with explicit interfaces, provide list of
245
249
  LinodeInterfaceOptions objects or dicts to the "interfaces" field::
246
250
 
247
- linode, password = client.linode.instance_create(
251
+ linode = client.linode.instance_create(
248
252
  "g6-standard-1",
249
253
  "us-mia",
250
254
  image="linode/ubuntu24.04",
255
+ root_pass="aComplex@Password123",
251
256
 
252
257
  # This can be configured as an account-wide default
253
258
  interface_generation=InterfaceGeneration.LINODE,
@@ -280,10 +285,14 @@ class LinodeGroup(Group):
280
285
  :type ltype: str or Type
281
286
  :param region: The Region in which we are creating the Instance
282
287
  :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.
288
+ :param image: The Image to deploy to this Instance. If this is provided,
289
+ at least one of root_pass, authorized_users, or authorized_keys must also be
290
+ provided.
286
291
  :type image: str or Image
292
+ :param root_pass: The root password for the new Instance. Required when
293
+ an image is provided and neither authorized_users nor
294
+ authorized_keys are given.
295
+ :type root_pass: str
287
296
  :param stackscript: The StackScript to deploy to the new Instance. If
288
297
  provided, "image" is required and must be compatible
289
298
  with the chosen StackScript.
@@ -300,6 +309,11 @@ class LinodeGroup(Group):
300
309
  be a single key, or a path to a file containing
301
310
  the key.
302
311
  :type authorized_keys: list or str
312
+ :param authorized_users: A list of usernames whose keys should be installed
313
+ as trusted for the root user. These user's keys
314
+ should already be set up, see :any:`ProfileGroup.ssh_keys`
315
+ for details.
316
+ :type authorized_users: list[str]
303
317
  :param label: The display label for the new Instance
304
318
  :type label: str
305
319
  :param group: The display group for the new Instance
@@ -322,7 +336,6 @@ class LinodeGroup(Group):
322
336
  :param firewall: The firewall to attach this Linode to.
323
337
  :type firewall: int or Firewall
324
338
  :param disk_encryption: The disk encryption policy for this Linode.
325
- NOTE: Disk encryption may not currently be available to all users.
326
339
  :type disk_encryption: InstanceDiskEncryptionType or str
327
340
  :param interfaces: An array of Network Interfaces to add to this Linode’s Configuration Profile.
328
341
  At least one and up to three Interface objects can exist in this array.
@@ -336,26 +349,39 @@ class LinodeGroup(Group):
336
349
  :param maintenance_policy: The slug of the maintenance policy to apply during maintenance.
337
350
  If not provided, the default policy (linode/migrate) will be applied.
338
351
  :type maintenance_policy: str
339
-
340
- :returns: A new Instance object, or a tuple containing the new Instance and
341
- the generated password.
342
- :rtype: Instance or tuple(Instance, str)
352
+ :param kernel: The kernel to boot the Instance with. If provided, this will be used as the
353
+ kernel for the default configuration profile.
354
+ :type kernel: str
355
+ :param boot_size: The size of the boot disk in MB. If provided, this will be used to create
356
+ the boot disk for the Instance.
357
+ :type boot_size: int
358
+
359
+ :returns: A new Instance object
360
+ :rtype: Instance
343
361
  :raises ApiError: If contacting the API fails
344
362
  :raises UnexpectedResponseError: If the API response is somehow malformed.
345
363
  This usually indicates that you are using
346
364
  an outdated library.
347
365
  """
348
366
 
349
- ret_pass = None
350
- if image and not "root_pass" in kwargs:
351
- ret_pass = Instance.generate_root_password()
352
- kwargs["root_pass"] = ret_pass
367
+ if (
368
+ image
369
+ and not root_pass
370
+ and not authorized_keys
371
+ and not authorized_users
372
+ ):
373
+ raise ValueError(
374
+ "When creating an Instance from an Image, at least one of "
375
+ "root_pass, authorized_users, or authorized_keys must be provided."
376
+ )
353
377
 
354
378
  params = {
355
379
  "type": ltype,
356
380
  "region": region,
357
381
  "image": image,
382
+ "root_pass": root_pass,
358
383
  "authorized_keys": load_and_validate_keys(authorized_keys),
384
+ "authorized_users": authorized_users,
359
385
  # These will automatically be flattened below
360
386
  "firewall_id": firewall,
361
387
  "backup_id": backup,
@@ -373,6 +399,8 @@ class LinodeGroup(Group):
373
399
  "interfaces": interfaces,
374
400
  "interface_generation": interface_generation,
375
401
  "network_helper": network_helper,
402
+ "kernel": kernel,
403
+ "boot_size": boot_size,
376
404
  }
377
405
 
378
406
  params.update(kwargs)
@@ -387,10 +415,7 @@ class LinodeGroup(Group):
387
415
  "Unexpected response when creating linode!", json=result
388
416
  )
389
417
 
390
- l = Instance(self.client, result["id"], result)
391
- if not ret_pass:
392
- return l
393
- return l, ret_pass
418
+ return Instance(self.client, result["id"], result)
394
419
 
395
420
  @staticmethod
396
421
  def build_instance_metadata(user_data=None, encode_user_data=True):
@@ -399,10 +424,11 @@ class LinodeGroup(Group):
399
424
  the :any:`instance_create` method. This helper can also be used
400
425
  when cloning and rebuilding Instances.
401
426
  **Creating an Instance with User Data**::
402
- new_linode, password = client.linode.instance_create(
427
+ new_linode = client.linode.instance_create(
403
428
  "g6-standard-2",
404
429
  "us-east",
405
430
  image="linode/ubuntu22.04",
431
+ root_pass="aComplex@Password123",
406
432
  metadata=client.linode.build_instance_metadata(user_data="myuserdata")
407
433
  )
408
434
  :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
@@ -1,4 +1,4 @@
1
- from typing import Any, Optional
1
+ from typing import Any, Optional, Union
2
2
 
3
3
  from linode_api4 import PaginatedList
4
4
  from linode_api4.errors import UnexpectedResponseError
@@ -6,6 +6,8 @@ from linode_api4.groups import Group
6
6
  from linode_api4.objects import (
7
7
  AlertChannel,
8
8
  AlertDefinition,
9
+ AlertDefinitionEntity,
10
+ AlertScope,
9
11
  MonitorDashboard,
10
12
  MonitorMetricsDefinition,
11
13
  MonitorService,
@@ -202,7 +204,7 @@ class MonitorGroup(Group):
202
204
 
203
205
  .. note:: This endpoint is in beta and requires using the v4beta base URL.
204
206
 
205
- API Documentation: https://techdocs.akamai.com/linode-api/reference/get-alert-channels
207
+ API Documentation: https://techdocs.akamai.com/linode-api/reference/get-notification-channels
206
208
 
207
209
  :param filters: Optional filter expressions to apply to the collection.
208
210
  See :doc:`Filtering Collections</linode_api4/objects/filtering>` for details.
@@ -221,6 +223,8 @@ class MonitorGroup(Group):
221
223
  trigger_conditions: dict,
222
224
  entity_ids: Optional[list[str]] = None,
223
225
  description: Optional[str] = None,
226
+ scope: Optional[Union[AlertScope, str]] = None,
227
+ regions: Optional[list[str]] = None,
224
228
  ) -> AlertDefinition:
225
229
  """
226
230
  Create a new alert definition for a given service type.
@@ -252,6 +256,10 @@ class MonitorGroup(Group):
252
256
  :type entity_ids: Optional[list[str]]
253
257
  :param description: (Optional) Longer description for the alert definition.
254
258
  :type description: Optional[str]
259
+ :param scope: (Optional) Alert scope (for example: `account`, `entity`, or `region`). Defaults to `entity`.
260
+ :type scope: Optional[Union[AlertScope, str]]
261
+ :param regions: (Optional) Regions to monitor.
262
+ :type regions: Optional[list[str]]
255
263
 
256
264
  :returns: The newly created :class:`AlertDefinition`.
257
265
  :rtype: AlertDefinition
@@ -267,10 +275,15 @@ class MonitorGroup(Group):
267
275
  "rule_criteria": rule_criteria,
268
276
  "trigger_conditions": trigger_conditions,
269
277
  }
270
- if description is not None:
271
- params["description"] = description
278
+
272
279
  if entity_ids is not None:
273
280
  params["entity_ids"] = entity_ids
281
+ if description is not None:
282
+ params["description"] = description
283
+ if scope is not None:
284
+ params["scope"] = scope
285
+ if regions is not None:
286
+ params["regions"] = regions
274
287
 
275
288
  # API will validate service_type and return an error if missing
276
289
  result = self.client.post(
@@ -284,3 +297,38 @@ class MonitorGroup(Group):
284
297
  )
285
298
 
286
299
  return AlertDefinition(self.client, result["id"], service_type, result)
300
+
301
+ def alert_definition_entities(
302
+ self,
303
+ service_type: str,
304
+ id: int,
305
+ *filters,
306
+ ) -> PaginatedList:
307
+ """
308
+ List entities associated with a specific alert definition.
309
+
310
+ This endpoint supports pagination fields (`page`, `page_size`) in the API.
311
+
312
+ .. note:: This endpoint is in beta and requires using the v4beta base URL.
313
+
314
+ API Documentation: TODO
315
+
316
+ :param service_type: Service type for the alert definition (e.g. `dbaas`).
317
+ :type service_type: str
318
+ :param id: Alert definition identifier.
319
+ :type id: int
320
+ :param filters: Optional filter expressions to apply to the collection.
321
+ See :doc:`Filtering Collections</linode_api4/objects/filtering>`.
322
+
323
+ :returns: A paginated list of entities associated with the alert definition.
324
+ :rtype: PaginatedList[AlertDefinitionEntity]
325
+ """
326
+
327
+ endpoint = (
328
+ f"/monitor/services/{service_type}/alert-definitions/{id}/entities"
329
+ )
330
+ return self.client._get_and_filter(
331
+ AlertDefinitionEntity,
332
+ *filters,
333
+ endpoint=endpoint,
334
+ )
@@ -452,10 +452,10 @@ class NetworkingGroup(Group):
452
452
  :param assignments: Any number of assignments to make. See
453
453
  :any:`IPAddress.to` for details on how to construct
454
454
  assignments.
455
- :type assignments: dct
455
+ :type assignments: list
456
456
  """
457
457
 
458
- for a in assignments["assignments"]:
458
+ for a in assignments:
459
459
  if not "address" in a or not "linode_id" in a:
460
460
  raise ValueError("Invalid assignment: {}".format(a))
461
461
 
@@ -19,6 +19,7 @@ from linode_api4.objects import (
19
19
  ObjectStorageACL,
20
20
  ObjectStorageBucket,
21
21
  ObjectStorageCluster,
22
+ ObjectStorageGlobalQuota,
22
23
  ObjectStorageKeyPermission,
23
24
  ObjectStorageKeys,
24
25
  ObjectStorageQuota,
@@ -533,3 +534,18 @@ class ObjectStorageGroup(Group):
533
534
  :rtype: PaginatedList of ObjectStorageQuota
534
535
  """
535
536
  return self.client._get_and_filter(ObjectStorageQuota, *filters)
537
+
538
+ def global_quotas(self, *filters):
539
+ """
540
+ Lists the active account-level Object Storage quotas applied to your account.
541
+
542
+ API Documentation: TBD
543
+
544
+ :param filters: Any number of filters to apply to this query.
545
+ See :doc:`Filtering Collections</linode_api4/objects/filtering>`
546
+ for more details on filtering.
547
+
548
+ :returns: A list of account-level Object Storage Quotas that matched the query.
549
+ :rtype: PaginatedList of ObjectStorageGlobalQuota
550
+ """
551
+ return self.client._get_and_filter(ObjectStorageGlobalQuota, *filters)
@@ -48,7 +48,6 @@ class VolumeGroup(Group):
48
48
  :type tags: list[str]
49
49
  :param encryption: Whether the new Volume should opt in or out of disk encryption.
50
50
  :type encryption: str
51
- Note: Block Storage Disk Encryption is not currently available to all users.
52
51
  :returns: The new Volume.
53
52
  :rtype: Volume
54
53
  """
@@ -1,12 +1,7 @@
1
1
  from dataclasses import dataclass, field
2
2
  from typing import Optional
3
3
 
4
- from linode_api4.objects import (
5
- Base,
6
- JSONObject,
7
- MappedObject,
8
- Property,
9
- )
4
+ from linode_api4.objects import Base, JSONObject, MappedObject, Property
10
5
 
11
6
 
12
7
  class DatabaseType(Base):
@@ -1437,29 +1437,36 @@ class Instance(Base):
1437
1437
  for the image deployed the disk will be used. Required
1438
1438
  if creating a disk without an image.
1439
1439
  :param read_only: If True, creates a read-only disk
1440
- :param image: The Image to deploy to the disk.
1440
+ :param image: The Image to deploy to the disk. If provided, at least one of
1441
+ root_pass, authorized_users or authorized_keys must also be given.
1441
1442
  :param root_pass: The password to configure for the root user when deploying an
1442
- image to this disk. Not used if image is not given. If an
1443
- image is given and root_pass is not, a password will be
1444
- generated and returned alongside the new disk.
1443
+ image to this disk. Not used if image is not given.
1445
1444
  :param authorized_keys: A list of SSH keys to install as trusted for the root user.
1446
1445
  :param authorized_users: A list of usernames whose keys should be installed
1447
1446
  as trusted for the root user. These user's keys
1448
1447
  should already be set up, see :any:`ProfileGroup.ssh_keys`
1449
1448
  for details.
1450
1449
  :param disk_encryption: The disk encryption policy for this Linode.
1451
- NOTE: Disk encryption may not currently be available to all users.
1452
1450
  :type disk_encryption: InstanceDiskEncryptionType or str
1453
1451
  :param stackscript: A StackScript object, or the ID of one, to deploy to this
1454
1452
  disk. Requires deploying a compatible image.
1455
1453
  :param **stackscript_args: Any arguments to pass to the StackScript, as defined
1456
1454
  by its User Defined Fields.
1455
+
1456
+ :returns: A new Disk object.
1457
+ :rtype: Disk
1457
1458
  """
1458
1459
 
1459
- gen_pass = None
1460
- if image and not root_pass:
1461
- gen_pass = Instance.generate_root_password()
1462
- root_pass = gen_pass
1460
+ if (
1461
+ image
1462
+ and not root_pass
1463
+ and not authorized_keys
1464
+ and not authorized_users
1465
+ ):
1466
+ raise ValueError(
1467
+ "When creating a Disk from an Image, at least one of "
1468
+ "root_pass, authorized_users, or authorized_keys must be provided."
1469
+ )
1463
1470
 
1464
1471
  authorized_keys = load_and_validate_keys(authorized_keys)
1465
1472
 
@@ -1506,11 +1513,7 @@ class Instance(Base):
1506
1513
  "Unexpected response creating disk!", json=result
1507
1514
  )
1508
1515
 
1509
- d = Disk(self._client, result["id"], self.id, result)
1510
-
1511
- if gen_pass:
1512
- return d, gen_pass
1513
- return d
1516
+ return Disk(self._client, result["id"], self.id, result)
1514
1517
 
1515
1518
  def enable_backups(self):
1516
1519
  """
@@ -1622,6 +1625,7 @@ class Instance(Base):
1622
1625
  disk_encryption: Optional[
1623
1626
  Union[InstanceDiskEncryptionType, str]
1624
1627
  ] = None,
1628
+ authorized_users: Optional[List[str]] = None,
1625
1629
  **kwargs,
1626
1630
  ):
1627
1631
  """
@@ -1633,26 +1637,30 @@ class Instance(Base):
1633
1637
 
1634
1638
  :param image: The Image to deploy to this Instance
1635
1639
  :type image: str or Image
1636
- :param root_pass: The root password for the newly rebuilt Instance. If
1637
- omitted, a password will be generated and returned.
1640
+ :param root_pass: The root password for the newly rebuilt Instance. At least
1641
+ one of root_pass, authorized_users, or authorized_keys must be provided.
1638
1642
  :type root_pass: str
1639
1643
  :param authorized_keys: The ssh public keys to install in the linode's
1640
1644
  /root/.ssh/authorized_keys file. Each entry may
1641
1645
  be a single key, or a path to a file containing
1642
1646
  the key.
1643
1647
  :type authorized_keys: list or str
1648
+ :param authorized_users: A list of usernames whose keys should be installed
1649
+ as trusted for the root user. These user's keys
1650
+ should already be set up, see :any:`ProfileGroup.ssh_keys`
1651
+ for details.
1652
+ :type authorized_users: list[str]
1644
1653
  :param disk_encryption: The disk encryption policy for this Linode.
1645
- NOTE: Disk encryption may not currently be available to all users.
1646
1654
  :type disk_encryption: InstanceDiskEncryptionType or str
1647
1655
 
1648
- :returns: The newly generated password, if one was not provided
1649
- (otherwise True)
1650
- :rtype: str or bool
1656
+ :returns: True.
1657
+ :rtype: bool
1651
1658
  """
1652
- ret_pass = None
1653
- if not root_pass:
1654
- ret_pass = Instance.generate_root_password()
1655
- root_pass = ret_pass
1659
+ if not root_pass and not authorized_keys and not authorized_users:
1660
+ raise ValueError(
1661
+ "When rebuilding an Instance, at least one of "
1662
+ "root_pass, authorized_users, or authorized_keys must be provided."
1663
+ )
1656
1664
 
1657
1665
  authorized_keys = load_and_validate_keys(authorized_keys)
1658
1666
 
@@ -1663,6 +1671,7 @@ class Instance(Base):
1663
1671
  "disk_encryption": (
1664
1672
  str(disk_encryption) if disk_encryption else None
1665
1673
  ),
1674
+ "authorized_users": authorized_users,
1666
1675
  }
1667
1676
 
1668
1677
  params.update(kwargs)
@@ -1681,10 +1690,7 @@ class Instance(Base):
1681
1690
  # update ourself with the newly-returned information
1682
1691
  self._populate(result)
1683
1692
 
1684
- if not ret_pass:
1685
- return True
1686
- else:
1687
- return ret_pass
1693
+ return True
1688
1694
 
1689
1695
  def rescue(self, *disks):
1690
1696
  """
@@ -2057,8 +2063,6 @@ class Instance(Base):
2057
2063
  Creates a new interface under this Linode.
2058
2064
  Linode interfaces are not interchangeable with Config interfaces.
2059
2065
 
2060
- NOTE: Linode interfaces may not currently be available to all users.
2061
-
2062
2066
  API Documentation: https://techdocs.akamai.com/linode-api/reference/post-linode-interface
2063
2067
 
2064
2068
  Example: Creating a simple public interface for this Linode::
@@ -2134,8 +2138,6 @@ class Instance(Base):
2134
2138
  """
2135
2139
  The settings for all interfaces under this Linode.
2136
2140
 
2137
- NOTE: Linode interfaces may not currently be available to all users.
2138
-
2139
2141
  :returns: The settings for instance-level interface settings for this Linode.
2140
2142
  :rtype: LinodeInterfacesSettings
2141
2143
  """
@@ -2204,8 +2206,6 @@ class Instance(Base):
2204
2206
  NOTE: If dry_run is True, interfaces in the result will be
2205
2207
  of type MappedObject rather than LinodeInterface.
2206
2208
 
2207
- NOTE: Linode interfaces may not currently be available to all users.
2208
-
2209
2209
  API Documentation: https://techdocs.akamai.com/linode-api/reference/post-upgrade-linode-interfaces
2210
2210
 
2211
2211
  :param config: The configuration profile the legacy interfaces to