linode-api4 5.45.0__tar.gz → 5.46.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 (380) hide show
  1. {linode_api4-5.45.0/linode_api4.egg-info → linode_api4-5.46.0}/PKG-INFO +1 -1
  2. {linode_api4-5.45.0 → linode_api4-5.46.0}/linode_api4/groups/monitor.py +94 -0
  3. {linode_api4-5.45.0 → linode_api4-5.46.0}/linode_api4/groups/object_storage.py +2 -2
  4. {linode_api4-5.45.0 → linode_api4-5.46.0}/linode_api4/groups/vpc.py +24 -1
  5. {linode_api4-5.45.0 → linode_api4-5.46.0}/linode_api4/objects/monitor.py +1 -0
  6. {linode_api4-5.45.0 → linode_api4-5.46.0}/linode_api4/objects/vpc.py +34 -0
  7. {linode_api4-5.45.0 → linode_api4-5.46.0}/linode_api4/version.py +1 -1
  8. {linode_api4-5.45.0 → linode_api4-5.46.0/linode_api4.egg-info}/PKG-INFO +1 -1
  9. {linode_api4-5.45.0 → linode_api4-5.46.0}/linode_api4.egg-info/SOURCES.txt +2 -0
  10. {linode_api4-5.45.0 → linode_api4-5.46.0}/test/fixtures/monitor_alert-definitions.json +3 -0
  11. {linode_api4-5.45.0 → linode_api4-5.46.0}/test/fixtures/monitor_services_dbaas_alert-definitions.json +5 -2
  12. {linode_api4-5.45.0 → linode_api4-5.46.0}/test/fixtures/monitor_services_dbaas_alert-definitions_12345.json +5 -2
  13. linode_api4-5.46.0/test/fixtures/monitor_services_dbaas_alert-definitions_12345_clone.json +57 -0
  14. {linode_api4-5.45.0 → linode_api4-5.46.0}/test/fixtures/vpcs.json +5 -0
  15. {linode_api4-5.45.0 → linode_api4-5.46.0}/test/fixtures/vpcs_123456.json +5 -0
  16. linode_api4-5.46.0/test/fixtures/vpcs_default-ranges.json +10 -0
  17. {linode_api4-5.45.0 → linode_api4-5.46.0}/test/integration/conftest.py +23 -1
  18. {linode_api4-5.45.0 → linode_api4-5.46.0}/test/integration/models/linode/test_linode.py +3 -10
  19. {linode_api4-5.45.0 → linode_api4-5.46.0}/test/integration/models/lke/test_lke.py +0 -11
  20. {linode_api4-5.45.0 → linode_api4-5.46.0}/test/integration/models/monitor/test_monitor.py +142 -24
  21. {linode_api4-5.45.0 → linode_api4-5.46.0}/test/integration/models/networking/test_networking.py +1 -5
  22. {linode_api4-5.45.0 → linode_api4-5.46.0}/test/integration/models/vpc/test_vpc.py +31 -1
  23. {linode_api4-5.45.0 → linode_api4-5.46.0}/test/unit/groups/monitor_api_test.py +77 -1
  24. {linode_api4-5.45.0 → linode_api4-5.46.0}/test/unit/groups/vpc_test.py +18 -1
  25. {linode_api4-5.45.0 → linode_api4-5.46.0}/test/unit/linode_client_test.py +1 -0
  26. {linode_api4-5.45.0 → linode_api4-5.46.0}/test/unit/objects/lke_test.py +0 -11
  27. {linode_api4-5.45.0 → linode_api4-5.46.0}/test/unit/objects/vpc_test.py +1 -0
  28. {linode_api4-5.45.0 → linode_api4-5.46.0}/LICENSE +0 -0
  29. {linode_api4-5.45.0 → linode_api4-5.46.0}/MANIFEST.in +0 -0
  30. {linode_api4-5.45.0 → linode_api4-5.46.0}/README.rst +0 -0
  31. {linode_api4-5.45.0 → linode_api4-5.46.0}/examples/install-on-linode/app.py +0 -0
  32. {linode_api4-5.45.0 → linode_api4-5.46.0}/examples/install-on-linode/make_stackscript.py +0 -0
  33. {linode_api4-5.45.0 → linode_api4-5.46.0}/linode_api4/__init__.py +0 -0
  34. {linode_api4-5.45.0 → linode_api4-5.46.0}/linode_api4/common.py +0 -0
  35. {linode_api4-5.45.0 → linode_api4-5.46.0}/linode_api4/errors.py +0 -0
  36. {linode_api4-5.45.0 → linode_api4-5.46.0}/linode_api4/groups/__init__.py +0 -0
  37. {linode_api4-5.45.0 → linode_api4-5.46.0}/linode_api4/groups/account.py +0 -0
  38. {linode_api4-5.45.0 → linode_api4-5.46.0}/linode_api4/groups/beta.py +0 -0
  39. {linode_api4-5.45.0 → linode_api4-5.46.0}/linode_api4/groups/database.py +0 -0
  40. {linode_api4-5.45.0 → linode_api4-5.46.0}/linode_api4/groups/domain.py +0 -0
  41. {linode_api4-5.45.0 → linode_api4-5.46.0}/linode_api4/groups/group.py +0 -0
  42. {linode_api4-5.45.0 → linode_api4-5.46.0}/linode_api4/groups/image.py +0 -0
  43. {linode_api4-5.45.0 → linode_api4-5.46.0}/linode_api4/groups/image_share_group.py +0 -0
  44. {linode_api4-5.45.0 → linode_api4-5.46.0}/linode_api4/groups/linode.py +0 -0
  45. {linode_api4-5.45.0 → linode_api4-5.46.0}/linode_api4/groups/lke.py +0 -0
  46. {linode_api4-5.45.0 → linode_api4-5.46.0}/linode_api4/groups/lke_tier.py +0 -0
  47. {linode_api4-5.45.0 → linode_api4-5.46.0}/linode_api4/groups/lock.py +0 -0
  48. {linode_api4-5.45.0 → linode_api4-5.46.0}/linode_api4/groups/longview.py +0 -0
  49. {linode_api4-5.45.0 → linode_api4-5.46.0}/linode_api4/groups/maintenance.py +0 -0
  50. {linode_api4-5.45.0 → linode_api4-5.46.0}/linode_api4/groups/monitor_api.py +0 -0
  51. {linode_api4-5.45.0 → linode_api4-5.46.0}/linode_api4/groups/networking.py +0 -0
  52. {linode_api4-5.45.0 → linode_api4-5.46.0}/linode_api4/groups/nodebalancer.py +0 -0
  53. {linode_api4-5.45.0 → linode_api4-5.46.0}/linode_api4/groups/placement.py +0 -0
  54. {linode_api4-5.45.0 → linode_api4-5.46.0}/linode_api4/groups/polling.py +0 -0
  55. {linode_api4-5.45.0 → linode_api4-5.46.0}/linode_api4/groups/profile.py +0 -0
  56. {linode_api4-5.45.0 → linode_api4-5.46.0}/linode_api4/groups/region.py +0 -0
  57. {linode_api4-5.45.0 → linode_api4-5.46.0}/linode_api4/groups/support.py +0 -0
  58. {linode_api4-5.45.0 → linode_api4-5.46.0}/linode_api4/groups/tag.py +0 -0
  59. {linode_api4-5.45.0 → linode_api4-5.46.0}/linode_api4/groups/volume.py +0 -0
  60. {linode_api4-5.45.0 → linode_api4-5.46.0}/linode_api4/linode_client.py +0 -0
  61. {linode_api4-5.45.0 → linode_api4-5.46.0}/linode_api4/login_client.py +0 -0
  62. {linode_api4-5.45.0 → linode_api4-5.46.0}/linode_api4/objects/__init__.py +0 -0
  63. {linode_api4-5.45.0 → linode_api4-5.46.0}/linode_api4/objects/account.py +0 -0
  64. {linode_api4-5.45.0 → linode_api4-5.46.0}/linode_api4/objects/base.py +0 -0
  65. {linode_api4-5.45.0 → linode_api4-5.46.0}/linode_api4/objects/beta.py +0 -0
  66. {linode_api4-5.45.0 → linode_api4-5.46.0}/linode_api4/objects/database.py +0 -0
  67. {linode_api4-5.45.0 → linode_api4-5.46.0}/linode_api4/objects/dbase.py +0 -0
  68. {linode_api4-5.45.0 → linode_api4-5.46.0}/linode_api4/objects/domain.py +0 -0
  69. {linode_api4-5.45.0 → linode_api4-5.46.0}/linode_api4/objects/filtering.py +0 -0
  70. {linode_api4-5.45.0 → linode_api4-5.46.0}/linode_api4/objects/image.py +0 -0
  71. {linode_api4-5.45.0 → linode_api4-5.46.0}/linode_api4/objects/image_share_group.py +0 -0
  72. {linode_api4-5.45.0 → linode_api4-5.46.0}/linode_api4/objects/linode.py +0 -0
  73. {linode_api4-5.45.0 → linode_api4-5.46.0}/linode_api4/objects/linode_interfaces.py +0 -0
  74. {linode_api4-5.45.0 → linode_api4-5.46.0}/linode_api4/objects/lke.py +0 -0
  75. {linode_api4-5.45.0 → linode_api4-5.46.0}/linode_api4/objects/lock.py +0 -0
  76. {linode_api4-5.45.0 → linode_api4-5.46.0}/linode_api4/objects/longview.py +0 -0
  77. {linode_api4-5.45.0 → linode_api4-5.46.0}/linode_api4/objects/monitor_api.py +0 -0
  78. {linode_api4-5.45.0 → linode_api4-5.46.0}/linode_api4/objects/networking.py +0 -0
  79. {linode_api4-5.45.0 → linode_api4-5.46.0}/linode_api4/objects/nodebalancer.py +0 -0
  80. {linode_api4-5.45.0 → linode_api4-5.46.0}/linode_api4/objects/object_storage.py +0 -0
  81. {linode_api4-5.45.0 → linode_api4-5.46.0}/linode_api4/objects/placement.py +0 -0
  82. {linode_api4-5.45.0 → linode_api4-5.46.0}/linode_api4/objects/profile.py +0 -0
  83. {linode_api4-5.45.0 → linode_api4-5.46.0}/linode_api4/objects/region.py +0 -0
  84. {linode_api4-5.45.0 → linode_api4-5.46.0}/linode_api4/objects/serializable.py +0 -0
  85. {linode_api4-5.45.0 → linode_api4-5.46.0}/linode_api4/objects/support.py +0 -0
  86. {linode_api4-5.45.0 → linode_api4-5.46.0}/linode_api4/objects/tag.py +0 -0
  87. {linode_api4-5.45.0 → linode_api4-5.46.0}/linode_api4/objects/volume.py +0 -0
  88. {linode_api4-5.45.0 → linode_api4-5.46.0}/linode_api4/paginated_list.py +0 -0
  89. {linode_api4-5.45.0 → linode_api4-5.46.0}/linode_api4/polling.py +0 -0
  90. {linode_api4-5.45.0 → linode_api4-5.46.0}/linode_api4/util.py +0 -0
  91. {linode_api4-5.45.0 → linode_api4-5.46.0}/linode_api4.egg-info/dependency_links.txt +0 -0
  92. {linode_api4-5.45.0 → linode_api4-5.46.0}/linode_api4.egg-info/requires.txt +0 -0
  93. {linode_api4-5.45.0 → linode_api4-5.46.0}/linode_api4.egg-info/top_level.txt +0 -0
  94. {linode_api4-5.45.0 → linode_api4-5.46.0}/pyproject.toml +0 -0
  95. {linode_api4-5.45.0 → linode_api4-5.46.0}/setup.cfg +0 -0
  96. {linode_api4-5.45.0 → linode_api4-5.46.0}/setup.py +0 -0
  97. {linode_api4-5.45.0 → linode_api4-5.46.0}/test/__init__.py +0 -0
  98. {linode_api4-5.45.0 → linode_api4-5.46.0}/test/fixtures/account.json +0 -0
  99. {linode_api4-5.45.0 → linode_api4-5.46.0}/test/fixtures/account_availability.json +0 -0
  100. {linode_api4-5.45.0 → linode_api4-5.46.0}/test/fixtures/account_availability_us-east.json +0 -0
  101. {linode_api4-5.45.0 → linode_api4-5.46.0}/test/fixtures/account_betas.json +0 -0
  102. {linode_api4-5.45.0 → linode_api4-5.46.0}/test/fixtures/account_betas_cool.json +0 -0
  103. {linode_api4-5.45.0 → linode_api4-5.46.0}/test/fixtures/account_child-accounts.json +0 -0
  104. {linode_api4-5.45.0 → linode_api4-5.46.0}/test/fixtures/account_child-accounts_123456.json +0 -0
  105. {linode_api4-5.45.0 → linode_api4-5.46.0}/test/fixtures/account_child-accounts_123456_token.json +0 -0
  106. {linode_api4-5.45.0 → linode_api4-5.46.0}/test/fixtures/account_events_123.json +0 -0
  107. {linode_api4-5.45.0 → linode_api4-5.46.0}/test/fixtures/account_invoices.json +0 -0
  108. {linode_api4-5.45.0 → linode_api4-5.46.0}/test/fixtures/account_invoices_123.json +0 -0
  109. {linode_api4-5.45.0 → linode_api4-5.46.0}/test/fixtures/account_invoices_123456_items.json +0 -0
  110. {linode_api4-5.45.0 → linode_api4-5.46.0}/test/fixtures/account_logins.json +0 -0
  111. {linode_api4-5.45.0 → linode_api4-5.46.0}/test/fixtures/account_logins_123.json +0 -0
  112. {linode_api4-5.45.0 → linode_api4-5.46.0}/test/fixtures/account_maintenance.json +0 -0
  113. {linode_api4-5.45.0 → linode_api4-5.46.0}/test/fixtures/account_notifications.json +0 -0
  114. {linode_api4-5.45.0 → linode_api4-5.46.0}/test/fixtures/account_oauth-clients_2737bf16b39ab5d7b4a1.json +0 -0
  115. {linode_api4-5.45.0 → linode_api4-5.46.0}/test/fixtures/account_payment-method_123.json +0 -0
  116. {linode_api4-5.45.0 → linode_api4-5.46.0}/test/fixtures/account_payment-methods.json +0 -0
  117. {linode_api4-5.45.0 → linode_api4-5.46.0}/test/fixtures/account_payments.json +0 -0
  118. {linode_api4-5.45.0 → linode_api4-5.46.0}/test/fixtures/account_promo-codes.json +0 -0
  119. {linode_api4-5.45.0 → linode_api4-5.46.0}/test/fixtures/account_service-transfers.json +0 -0
  120. {linode_api4-5.45.0 → linode_api4-5.46.0}/test/fixtures/account_service-transfers_12345.json +0 -0
  121. {linode_api4-5.45.0 → linode_api4-5.46.0}/test/fixtures/account_settings.json +0 -0
  122. {linode_api4-5.45.0 → linode_api4-5.46.0}/test/fixtures/account_transfer.json +0 -0
  123. {linode_api4-5.45.0 → linode_api4-5.46.0}/test/fixtures/account_users_test-user.json +0 -0
  124. {linode_api4-5.45.0 → linode_api4-5.46.0}/test/fixtures/betas.json +0 -0
  125. {linode_api4-5.45.0 → linode_api4-5.46.0}/test/fixtures/betas_active.json +0 -0
  126. {linode_api4-5.45.0 → linode_api4-5.46.0}/test/fixtures/databases_engines.json +0 -0
  127. {linode_api4-5.45.0 → linode_api4-5.46.0}/test/fixtures/databases_instances.json +0 -0
  128. {linode_api4-5.45.0 → linode_api4-5.46.0}/test/fixtures/databases_mysql_config.json +0 -0
  129. {linode_api4-5.45.0 → linode_api4-5.46.0}/test/fixtures/databases_mysql_instances.json +0 -0
  130. {linode_api4-5.45.0 → linode_api4-5.46.0}/test/fixtures/databases_mysql_instances_123_credentials.json +0 -0
  131. {linode_api4-5.45.0 → linode_api4-5.46.0}/test/fixtures/databases_mysql_instances_123_credentials_reset.json +0 -0
  132. {linode_api4-5.45.0 → linode_api4-5.46.0}/test/fixtures/databases_mysql_instances_123_patch.json +0 -0
  133. {linode_api4-5.45.0 → linode_api4-5.46.0}/test/fixtures/databases_mysql_instances_123_resume.json +0 -0
  134. {linode_api4-5.45.0 → linode_api4-5.46.0}/test/fixtures/databases_mysql_instances_123_ssl.json +0 -0
  135. {linode_api4-5.45.0 → linode_api4-5.46.0}/test/fixtures/databases_mysql_instances_123_suspend.json +0 -0
  136. {linode_api4-5.45.0 → linode_api4-5.46.0}/test/fixtures/databases_postgresql_config.json +0 -0
  137. {linode_api4-5.45.0 → linode_api4-5.46.0}/test/fixtures/databases_postgresql_instances.json +0 -0
  138. {linode_api4-5.45.0 → linode_api4-5.46.0}/test/fixtures/databases_postgresql_instances_123_credentials.json +0 -0
  139. {linode_api4-5.45.0 → linode_api4-5.46.0}/test/fixtures/databases_postgresql_instances_123_credentials_reset.json +0 -0
  140. {linode_api4-5.45.0 → linode_api4-5.46.0}/test/fixtures/databases_postgresql_instances_123_patch.json +0 -0
  141. {linode_api4-5.45.0 → linode_api4-5.46.0}/test/fixtures/databases_postgresql_instances_123_resume.json +0 -0
  142. {linode_api4-5.45.0 → linode_api4-5.46.0}/test/fixtures/databases_postgresql_instances_123_ssl.json +0 -0
  143. {linode_api4-5.45.0 → linode_api4-5.46.0}/test/fixtures/databases_postgresql_instances_123_suspend.json +0 -0
  144. {linode_api4-5.45.0 → linode_api4-5.46.0}/test/fixtures/databases_types.json +0 -0
  145. {linode_api4-5.45.0 → linode_api4-5.46.0}/test/fixtures/domains.json +0 -0
  146. {linode_api4-5.45.0 → linode_api4-5.46.0}/test/fixtures/domains_12345_clone.json +0 -0
  147. {linode_api4-5.45.0 → linode_api4-5.46.0}/test/fixtures/domains_12345_records.json +0 -0
  148. {linode_api4-5.45.0 → linode_api4-5.46.0}/test/fixtures/domains_12345_zone-file.json +0 -0
  149. {linode_api4-5.45.0 → linode_api4-5.46.0}/test/fixtures/domains_import.json +0 -0
  150. {linode_api4-5.45.0 → linode_api4-5.46.0}/test/fixtures/images.json +0 -0
  151. {linode_api4-5.45.0 → linode_api4-5.46.0}/test/fixtures/images_private_1234_sharegroups.json +0 -0
  152. {linode_api4-5.45.0 → linode_api4-5.46.0}/test/fixtures/images_private_123_regions.json +0 -0
  153. {linode_api4-5.45.0 → linode_api4-5.46.0}/test/fixtures/images_private_1337.json +0 -0
  154. {linode_api4-5.45.0 → linode_api4-5.46.0}/test/fixtures/images_sharegroups.json +0 -0
  155. {linode_api4-5.45.0 → linode_api4-5.46.0}/test/fixtures/images_sharegroups_1234.json +0 -0
  156. {linode_api4-5.45.0 → linode_api4-5.46.0}/test/fixtures/images_sharegroups_1234_images.json +0 -0
  157. {linode_api4-5.45.0 → linode_api4-5.46.0}/test/fixtures/images_sharegroups_1234_images_shared_1.json +0 -0
  158. {linode_api4-5.45.0 → linode_api4-5.46.0}/test/fixtures/images_sharegroups_1234_members.json +0 -0
  159. {linode_api4-5.45.0 → linode_api4-5.46.0}/test/fixtures/images_sharegroups_1234_members_abc123.json +0 -0
  160. {linode_api4-5.45.0 → linode_api4-5.46.0}/test/fixtures/images_sharegroups_tokens.json +0 -0
  161. {linode_api4-5.45.0 → linode_api4-5.46.0}/test/fixtures/images_sharegroups_tokens_abc123.json +0 -0
  162. {linode_api4-5.45.0 → linode_api4-5.46.0}/test/fixtures/images_sharegroups_tokens_abc123_sharegroup.json +0 -0
  163. {linode_api4-5.45.0 → linode_api4-5.46.0}/test/fixtures/images_sharegroups_tokens_abc123_sharegroup_images.json +0 -0
  164. {linode_api4-5.45.0 → linode_api4-5.46.0}/test/fixtures/images_upload.json +0 -0
  165. {linode_api4-5.45.0 → linode_api4-5.46.0}/test/fixtures/linode_instances.json +0 -0
  166. {linode_api4-5.45.0 → linode_api4-5.46.0}/test/fixtures/linode_instances_123_backups.json +0 -0
  167. {linode_api4-5.45.0 → linode_api4-5.46.0}/test/fixtures/linode_instances_123_configs.json +0 -0
  168. {linode_api4-5.45.0 → linode_api4-5.46.0}/test/fixtures/linode_instances_123_configs_456789.json +0 -0
  169. {linode_api4-5.45.0 → linode_api4-5.46.0}/test/fixtures/linode_instances_123_configs_456789_interfaces.json +0 -0
  170. {linode_api4-5.45.0 → linode_api4-5.46.0}/test/fixtures/linode_instances_123_configs_456789_interfaces_123.json +0 -0
  171. {linode_api4-5.45.0 → linode_api4-5.46.0}/test/fixtures/linode_instances_123_configs_456789_interfaces_123_put.json +0 -0
  172. {linode_api4-5.45.0 → linode_api4-5.46.0}/test/fixtures/linode_instances_123_configs_456789_interfaces_321.json +0 -0
  173. {linode_api4-5.45.0 → linode_api4-5.46.0}/test/fixtures/linode_instances_123_configs_456789_interfaces_456.json +0 -0
  174. {linode_api4-5.45.0 → linode_api4-5.46.0}/test/fixtures/linode_instances_123_disks.json +0 -0
  175. {linode_api4-5.45.0 → linode_api4-5.46.0}/test/fixtures/linode_instances_123_disks_12345_clone.json +0 -0
  176. {linode_api4-5.45.0 → linode_api4-5.46.0}/test/fixtures/linode_instances_123_firewalls.json +0 -0
  177. {linode_api4-5.45.0 → linode_api4-5.46.0}/test/fixtures/linode_instances_123_ips.json +0 -0
  178. {linode_api4-5.45.0 → linode_api4-5.46.0}/test/fixtures/linode_instances_123_nodebalancers.json +0 -0
  179. {linode_api4-5.45.0 → linode_api4-5.46.0}/test/fixtures/linode_instances_123_transfer.json +0 -0
  180. {linode_api4-5.45.0 → linode_api4-5.46.0}/test/fixtures/linode_instances_123_transfer_2023_4.json +0 -0
  181. {linode_api4-5.45.0 → linode_api4-5.46.0}/test/fixtures/linode_instances_123_volumes.json +0 -0
  182. {linode_api4-5.45.0 → linode_api4-5.46.0}/test/fixtures/linode_instances_124.json +0 -0
  183. {linode_api4-5.45.0 → linode_api4-5.46.0}/test/fixtures/linode_instances_124_interfaces.json +0 -0
  184. {linode_api4-5.45.0 → linode_api4-5.46.0}/test/fixtures/linode_instances_124_interfaces_123.json +0 -0
  185. {linode_api4-5.45.0 → linode_api4-5.46.0}/test/fixtures/linode_instances_124_interfaces_123_firewalls.json +0 -0
  186. {linode_api4-5.45.0 → linode_api4-5.46.0}/test/fixtures/linode_instances_124_interfaces_456.json +0 -0
  187. {linode_api4-5.45.0 → linode_api4-5.46.0}/test/fixtures/linode_instances_124_interfaces_789.json +0 -0
  188. {linode_api4-5.45.0 → linode_api4-5.46.0}/test/fixtures/linode_instances_124_interfaces_settings.json +0 -0
  189. {linode_api4-5.45.0 → linode_api4-5.46.0}/test/fixtures/linode_instances_124_upgrade-interfaces.json +0 -0
  190. {linode_api4-5.45.0 → linode_api4-5.46.0}/test/fixtures/linode_stackscripts_10079.json +0 -0
  191. {linode_api4-5.45.0 → linode_api4-5.46.0}/test/fixtures/linode_types.json +0 -0
  192. {linode_api4-5.45.0 → linode_api4-5.46.0}/test/fixtures/linode_types_g6-nanode-1.json +0 -0
  193. {linode_api4-5.45.0 → linode_api4-5.46.0}/test/fixtures/lke_clusters.json +0 -0
  194. {linode_api4-5.45.0 → linode_api4-5.46.0}/test/fixtures/lke_clusters_18881.json +0 -0
  195. {linode_api4-5.45.0 → linode_api4-5.46.0}/test/fixtures/lke_clusters_18881_control__plane__acl.json +0 -0
  196. {linode_api4-5.45.0 → linode_api4-5.46.0}/test/fixtures/lke_clusters_18881_dashboard.json +0 -0
  197. {linode_api4-5.45.0 → linode_api4-5.46.0}/test/fixtures/lke_clusters_18881_nodes_123456.json +0 -0
  198. {linode_api4-5.45.0 → linode_api4-5.46.0}/test/fixtures/lke_clusters_18881_pools_456.json +0 -0
  199. {linode_api4-5.45.0 → linode_api4-5.46.0}/test/fixtures/lke_clusters_18882.json +0 -0
  200. {linode_api4-5.45.0 → linode_api4-5.46.0}/test/fixtures/lke_clusters_18882_pools_789.json +0 -0
  201. {linode_api4-5.45.0 → linode_api4-5.46.0}/test/fixtures/lke_tiers_standard_versions.json +0 -0
  202. {linode_api4-5.45.0 → linode_api4-5.46.0}/test/fixtures/lke_types.json +0 -0
  203. {linode_api4-5.45.0 → linode_api4-5.46.0}/test/fixtures/lke_versions.json +0 -0
  204. {linode_api4-5.45.0 → linode_api4-5.46.0}/test/fixtures/locks.json +0 -0
  205. {linode_api4-5.45.0 → linode_api4-5.46.0}/test/fixtures/locks_1.json +0 -0
  206. {linode_api4-5.45.0 → linode_api4-5.46.0}/test/fixtures/longview_clients.json +0 -0
  207. {linode_api4-5.45.0 → linode_api4-5.46.0}/test/fixtures/longview_plan.json +0 -0
  208. {linode_api4-5.45.0 → linode_api4-5.46.0}/test/fixtures/longview_subscriptions.json +0 -0
  209. {linode_api4-5.45.0 → linode_api4-5.46.0}/test/fixtures/maintenance_policies.json +0 -0
  210. {linode_api4-5.45.0 → linode_api4-5.46.0}/test/fixtures/mongodb.json +0 -0
  211. {linode_api4-5.45.0 → linode_api4-5.46.0}/test/fixtures/monitor_alert-channels.json +0 -0
  212. {linode_api4-5.45.0 → linode_api4-5.46.0}/test/fixtures/monitor_dashboards.json +0 -0
  213. {linode_api4-5.45.0 → linode_api4-5.46.0}/test/fixtures/monitor_dashboards_1.json +0 -0
  214. {linode_api4-5.45.0 → linode_api4-5.46.0}/test/fixtures/monitor_services.json +0 -0
  215. {linode_api4-5.45.0 → linode_api4-5.46.0}/test/fixtures/monitor_services_dbaas.json +0 -0
  216. {linode_api4-5.45.0 → linode_api4-5.46.0}/test/fixtures/monitor_services_dbaas_alert-definitions_12345_entities.json +0 -0
  217. {linode_api4-5.45.0 → linode_api4-5.46.0}/test/fixtures/monitor_services_dbaas_dashboards.json +0 -0
  218. {linode_api4-5.45.0 → linode_api4-5.46.0}/test/fixtures/monitor_services_dbaas_metric-definitions.json +0 -0
  219. {linode_api4-5.45.0 → linode_api4-5.46.0}/test/fixtures/monitor_services_dbaas_metrics.json +0 -0
  220. {linode_api4-5.45.0 → linode_api4-5.46.0}/test/fixtures/monitor_services_dbaas_token.json +0 -0
  221. {linode_api4-5.45.0 → linode_api4-5.46.0}/test/fixtures/monitor_services_linode_token.json +0 -0
  222. {linode_api4-5.45.0 → linode_api4-5.46.0}/test/fixtures/monitor_streams.json +0 -0
  223. {linode_api4-5.45.0 → linode_api4-5.46.0}/test/fixtures/monitor_streams_1_history.json +0 -0
  224. {linode_api4-5.45.0 → linode_api4-5.46.0}/test/fixtures/monitor_streams_2.json +0 -0
  225. {linode_api4-5.45.0 → linode_api4-5.46.0}/test/fixtures/monitor_streams_3.json +0 -0
  226. {linode_api4-5.45.0 → linode_api4-5.46.0}/test/fixtures/monitor_streams_destinations.json +0 -0
  227. {linode_api4-5.45.0 → linode_api4-5.46.0}/test/fixtures/monitor_streams_destinations_1_history.json +0 -0
  228. {linode_api4-5.45.0 → linode_api4-5.46.0}/test/fixtures/monitor_streams_destinations_2.json +0 -0
  229. {linode_api4-5.45.0 → linode_api4-5.46.0}/test/fixtures/network-transfer_prices.json +0 -0
  230. {linode_api4-5.45.0 → linode_api4-5.46.0}/test/fixtures/networking_firewalls.json +0 -0
  231. {linode_api4-5.45.0 → linode_api4-5.46.0}/test/fixtures/networking_firewalls_123.json +0 -0
  232. {linode_api4-5.45.0 → linode_api4-5.46.0}/test/fixtures/networking_firewalls_123_devices.json +0 -0
  233. {linode_api4-5.45.0 → linode_api4-5.46.0}/test/fixtures/networking_firewalls_123_devices_123.json +0 -0
  234. {linode_api4-5.45.0 → linode_api4-5.46.0}/test/fixtures/networking_firewalls_123_devices_456.json +0 -0
  235. {linode_api4-5.45.0 → linode_api4-5.46.0}/test/fixtures/networking_firewalls_123_history.json +0 -0
  236. {linode_api4-5.45.0 → linode_api4-5.46.0}/test/fixtures/networking_firewalls_123_history_rules_2.json +0 -0
  237. {linode_api4-5.45.0 → linode_api4-5.46.0}/test/fixtures/networking_firewalls_123_rules.json +0 -0
  238. {linode_api4-5.45.0 → linode_api4-5.46.0}/test/fixtures/networking_firewalls_settings.json +0 -0
  239. {linode_api4-5.45.0 → linode_api4-5.46.0}/test/fixtures/networking_firewalls_templates.json +0 -0
  240. {linode_api4-5.45.0 → linode_api4-5.46.0}/test/fixtures/networking_firewalls_templates_public.json +0 -0
  241. {linode_api4-5.45.0 → linode_api4-5.46.0}/test/fixtures/networking_firewalls_templates_vpc.json +0 -0
  242. {linode_api4-5.45.0 → linode_api4-5.46.0}/test/fixtures/networking_ips_127.0.0.1.json +0 -0
  243. {linode_api4-5.45.0 → linode_api4-5.46.0}/test/fixtures/networking_ipv6_pools.json +0 -0
  244. {linode_api4-5.45.0 → linode_api4-5.46.0}/test/fixtures/networking_ipv6_ranges.json +0 -0
  245. {linode_api4-5.45.0 → linode_api4-5.46.0}/test/fixtures/networking_ipv6_ranges_2600%3A3c01%3A%3A.json +0 -0
  246. {linode_api4-5.45.0 → linode_api4-5.46.0}/test/fixtures/networking_reserved_ips.json +0 -0
  247. {linode_api4-5.45.0 → linode_api4-5.46.0}/test/fixtures/networking_reserved_ips_types.json +0 -0
  248. {linode_api4-5.45.0 → linode_api4-5.46.0}/test/fixtures/networking_vlans.json +0 -0
  249. {linode_api4-5.45.0 → linode_api4-5.46.0}/test/fixtures/nodebalancers.json +0 -0
  250. {linode_api4-5.45.0 → linode_api4-5.46.0}/test/fixtures/nodebalancers_123456.json +0 -0
  251. {linode_api4-5.45.0 → linode_api4-5.46.0}/test/fixtures/nodebalancers_123456_configs.json +0 -0
  252. {linode_api4-5.45.0 → linode_api4-5.46.0}/test/fixtures/nodebalancers_123456_configs_65432_nodes.json +0 -0
  253. {linode_api4-5.45.0 → linode_api4-5.46.0}/test/fixtures/nodebalancers_12345_configs_4567_rebuild.json +0 -0
  254. {linode_api4-5.45.0 → linode_api4-5.46.0}/test/fixtures/nodebalancers_12345_firewalls.json +0 -0
  255. {linode_api4-5.45.0 → linode_api4-5.46.0}/test/fixtures/nodebalancers_12345_stats.json +0 -0
  256. {linode_api4-5.45.0 → linode_api4-5.46.0}/test/fixtures/nodebalancers_types.json +0 -0
  257. {linode_api4-5.45.0 → linode_api4-5.46.0}/test/fixtures/object-storage_buckets.json +0 -0
  258. {linode_api4-5.45.0 → linode_api4-5.46.0}/test/fixtures/object-storage_buckets_us-east-1.json +0 -0
  259. {linode_api4-5.45.0 → linode_api4-5.46.0}/test/fixtures/object-storage_buckets_us-east-1_example-bucket.json +0 -0
  260. {linode_api4-5.45.0 → linode_api4-5.46.0}/test/fixtures/object-storage_buckets_us-east-1_example-bucket_object-acl.json +0 -0
  261. {linode_api4-5.45.0 → linode_api4-5.46.0}/test/fixtures/object-storage_buckets_us-east-1_example-bucket_object-list.json +0 -0
  262. {linode_api4-5.45.0 → linode_api4-5.46.0}/test/fixtures/object-storage_buckets_us-east-1_example-bucket_object-url.json +0 -0
  263. {linode_api4-5.45.0 → linode_api4-5.46.0}/test/fixtures/object-storage_buckets_us-east-1_example-bucket_ssl.json +0 -0
  264. {linode_api4-5.45.0 → linode_api4-5.46.0}/test/fixtures/object-storage_buckets_us-east_example-bucket_access.json +0 -0
  265. {linode_api4-5.45.0 → linode_api4-5.46.0}/test/fixtures/object-storage_clusters.json +0 -0
  266. {linode_api4-5.45.0 → linode_api4-5.46.0}/test/fixtures/object-storage_global-quotas.json +0 -0
  267. {linode_api4-5.45.0 → linode_api4-5.46.0}/test/fixtures/object-storage_global-quotas_obj-access-keys-per-account.json +0 -0
  268. {linode_api4-5.45.0 → linode_api4-5.46.0}/test/fixtures/object-storage_global-quotas_obj-access-keys-per-account_usage.json +0 -0
  269. {linode_api4-5.45.0 → linode_api4-5.46.0}/test/fixtures/object-storage_keys.json +0 -0
  270. {linode_api4-5.45.0 → linode_api4-5.46.0}/test/fixtures/object-storage_quotas.json +0 -0
  271. {linode_api4-5.45.0 → linode_api4-5.46.0}/test/fixtures/object-storage_quotas_obj-objects-us-ord-1.json +0 -0
  272. {linode_api4-5.45.0 → linode_api4-5.46.0}/test/fixtures/object-storage_quotas_obj-objects-us-ord-1_usage.json +0 -0
  273. {linode_api4-5.45.0 → linode_api4-5.46.0}/test/fixtures/object-storage_transfer.json +0 -0
  274. {linode_api4-5.45.0 → linode_api4-5.46.0}/test/fixtures/object-storage_types.json +0 -0
  275. {linode_api4-5.45.0 → linode_api4-5.46.0}/test/fixtures/placement_groups.json +0 -0
  276. {linode_api4-5.45.0 → linode_api4-5.46.0}/test/fixtures/placement_groups_123.json +0 -0
  277. {linode_api4-5.45.0 → linode_api4-5.46.0}/test/fixtures/profile.json +0 -0
  278. {linode_api4-5.45.0 → linode_api4-5.46.0}/test/fixtures/profile_device_123.json +0 -0
  279. {linode_api4-5.45.0 → linode_api4-5.46.0}/test/fixtures/profile_devices.json +0 -0
  280. {linode_api4-5.45.0 → linode_api4-5.46.0}/test/fixtures/profile_logins.json +0 -0
  281. {linode_api4-5.45.0 → linode_api4-5.46.0}/test/fixtures/profile_logins_123.json +0 -0
  282. {linode_api4-5.45.0 → linode_api4-5.46.0}/test/fixtures/profile_preferences.json +0 -0
  283. {linode_api4-5.45.0 → linode_api4-5.46.0}/test/fixtures/profile_security-questions.json +0 -0
  284. {linode_api4-5.45.0 → linode_api4-5.46.0}/test/fixtures/profile_sshkeys.json +0 -0
  285. {linode_api4-5.45.0 → linode_api4-5.46.0}/test/fixtures/regions.json +0 -0
  286. {linode_api4-5.45.0 → linode_api4-5.46.0}/test/fixtures/regions_availability.json +0 -0
  287. {linode_api4-5.45.0 → linode_api4-5.46.0}/test/fixtures/regions_us-east_availability.json +0 -0
  288. {linode_api4-5.45.0 → linode_api4-5.46.0}/test/fixtures/regions_us-east_vpc-availability.json +0 -0
  289. {linode_api4-5.45.0 → linode_api4-5.46.0}/test/fixtures/regions_vpc-availability.json +0 -0
  290. {linode_api4-5.45.0 → linode_api4-5.46.0}/test/fixtures/support_tickets_123.json +0 -0
  291. {linode_api4-5.45.0 → linode_api4-5.46.0}/test/fixtures/tags.json +0 -0
  292. {linode_api4-5.45.0 → linode_api4-5.46.0}/test/fixtures/tags_nothing.json +0 -0
  293. {linode_api4-5.45.0 → linode_api4-5.46.0}/test/fixtures/tags_something.json +0 -0
  294. {linode_api4-5.45.0 → linode_api4-5.46.0}/test/fixtures/testmappedobj1.json +0 -0
  295. {linode_api4-5.45.0 → linode_api4-5.46.0}/test/fixtures/volumes.json +0 -0
  296. {linode_api4-5.45.0 → linode_api4-5.46.0}/test/fixtures/volumes_types.json +0 -0
  297. {linode_api4-5.45.0 → linode_api4-5.46.0}/test/fixtures/vpcs_123456_ips.json +0 -0
  298. {linode_api4-5.45.0 → linode_api4-5.46.0}/test/fixtures/vpcs_123456_subnets.json +0 -0
  299. {linode_api4-5.45.0 → linode_api4-5.46.0}/test/fixtures/vpcs_123456_subnets_789.json +0 -0
  300. {linode_api4-5.45.0 → linode_api4-5.46.0}/test/fixtures/vpcs_ips.json +0 -0
  301. {linode_api4-5.45.0 → linode_api4-5.46.0}/test/integration/__init__.py +0 -0
  302. {linode_api4-5.45.0 → linode_api4-5.46.0}/test/integration/filters/fixtures.py +0 -0
  303. {linode_api4-5.45.0 → linode_api4-5.46.0}/test/integration/filters/model_filters_test.py +0 -0
  304. {linode_api4-5.45.0 → linode_api4-5.46.0}/test/integration/helpers.py +0 -0
  305. {linode_api4-5.45.0 → linode_api4-5.46.0}/test/integration/linode_client/__init__.py +0 -0
  306. {linode_api4-5.45.0 → linode_api4-5.46.0}/test/integration/linode_client/test_errors.py +0 -0
  307. {linode_api4-5.45.0 → linode_api4-5.46.0}/test/integration/linode_client/test_linode_client.py +0 -0
  308. {linode_api4-5.45.0 → linode_api4-5.46.0}/test/integration/linode_client/test_retry.py +0 -0
  309. {linode_api4-5.45.0 → linode_api4-5.46.0}/test/integration/login_client/test_login_client.py +0 -0
  310. {linode_api4-5.45.0 → linode_api4-5.46.0}/test/integration/models/__init__.py +0 -0
  311. {linode_api4-5.45.0 → linode_api4-5.46.0}/test/integration/models/account/test_account.py +0 -0
  312. {linode_api4-5.45.0 → linode_api4-5.46.0}/test/integration/models/database/helpers.py +0 -0
  313. {linode_api4-5.45.0 → linode_api4-5.46.0}/test/integration/models/database/test_database.py +0 -0
  314. {linode_api4-5.45.0 → linode_api4-5.46.0}/test/integration/models/database/test_database_engine_config.py +0 -0
  315. {linode_api4-5.45.0 → linode_api4-5.46.0}/test/integration/models/domain/test_domain.py +0 -0
  316. {linode_api4-5.45.0 → linode_api4-5.46.0}/test/integration/models/firewall/test_firewall.py +0 -0
  317. {linode_api4-5.45.0 → linode_api4-5.46.0}/test/integration/models/firewall/test_firewall_templates.py +0 -0
  318. {linode_api4-5.45.0 → linode_api4-5.46.0}/test/integration/models/image/test_image.py +0 -0
  319. {linode_api4-5.45.0 → linode_api4-5.46.0}/test/integration/models/linode/interfaces/test_interfaces.py +0 -0
  320. {linode_api4-5.45.0 → linode_api4-5.46.0}/test/integration/models/lock/__init__.py +0 -0
  321. {linode_api4-5.45.0 → linode_api4-5.46.0}/test/integration/models/lock/test_lock.py +0 -0
  322. {linode_api4-5.45.0 → linode_api4-5.46.0}/test/integration/models/longview/test_longview.py +0 -0
  323. {linode_api4-5.45.0 → linode_api4-5.46.0}/test/integration/models/maintenance/test_maintenance.py +0 -0
  324. {linode_api4-5.45.0 → linode_api4-5.46.0}/test/integration/models/monitor/test_monitor_logs.py +0 -0
  325. {linode_api4-5.45.0 → linode_api4-5.46.0}/test/integration/models/monitor_api/test_monitor_api.py +0 -0
  326. {linode_api4-5.45.0 → linode_api4-5.46.0}/test/integration/models/nodebalancer/test_nodebalancer.py +0 -0
  327. {linode_api4-5.45.0 → linode_api4-5.46.0}/test/integration/models/object_storage/test_obj.py +0 -0
  328. {linode_api4-5.45.0 → linode_api4-5.46.0}/test/integration/models/object_storage/test_obj_quotas.py +0 -0
  329. {linode_api4-5.45.0 → linode_api4-5.46.0}/test/integration/models/placement/test_placement.py +0 -0
  330. {linode_api4-5.45.0 → linode_api4-5.46.0}/test/integration/models/profile/test_profile.py +0 -0
  331. {linode_api4-5.45.0 → linode_api4-5.46.0}/test/integration/models/region/test_region.py +0 -0
  332. {linode_api4-5.45.0 → linode_api4-5.46.0}/test/integration/models/sharegroups/test_sharegroups.py +0 -0
  333. {linode_api4-5.45.0 → linode_api4-5.46.0}/test/integration/models/tag/test_tag.py +0 -0
  334. {linode_api4-5.45.0 → linode_api4-5.46.0}/test/integration/models/volume/test_blockstorage.py +0 -0
  335. {linode_api4-5.45.0 → linode_api4-5.46.0}/test/integration/models/volume/test_volume.py +0 -0
  336. {linode_api4-5.45.0 → linode_api4-5.46.0}/test/unit/__init__.py +0 -0
  337. {linode_api4-5.45.0 → linode_api4-5.46.0}/test/unit/base.py +0 -0
  338. {linode_api4-5.45.0 → linode_api4-5.46.0}/test/unit/errors_test.py +0 -0
  339. {linode_api4-5.45.0 → linode_api4-5.46.0}/test/unit/fixtures.py +0 -0
  340. {linode_api4-5.45.0 → linode_api4-5.46.0}/test/unit/groups/__init__.py +0 -0
  341. {linode_api4-5.45.0 → linode_api4-5.46.0}/test/unit/groups/database_test.py +0 -0
  342. {linode_api4-5.45.0 → linode_api4-5.46.0}/test/unit/groups/image_share_group_test.py +0 -0
  343. {linode_api4-5.45.0 → linode_api4-5.46.0}/test/unit/groups/image_test.py +0 -0
  344. {linode_api4-5.45.0 → linode_api4-5.46.0}/test/unit/groups/linode_test.py +0 -0
  345. {linode_api4-5.45.0 → linode_api4-5.46.0}/test/unit/groups/lke_test.py +0 -0
  346. {linode_api4-5.45.0 → linode_api4-5.46.0}/test/unit/groups/lke_tier_test.py +0 -0
  347. {linode_api4-5.45.0 → linode_api4-5.46.0}/test/unit/groups/lock_test.py +0 -0
  348. {linode_api4-5.45.0 → linode_api4-5.46.0}/test/unit/groups/networking_test.py +0 -0
  349. {linode_api4-5.45.0 → linode_api4-5.46.0}/test/unit/groups/object_storage_test.py +0 -0
  350. {linode_api4-5.45.0 → linode_api4-5.46.0}/test/unit/groups/placement_test.py +0 -0
  351. {linode_api4-5.45.0 → linode_api4-5.46.0}/test/unit/groups/polling_test.py +0 -0
  352. {linode_api4-5.45.0 → linode_api4-5.46.0}/test/unit/groups/region_test.py +0 -0
  353. {linode_api4-5.45.0 → linode_api4-5.46.0}/test/unit/login_client_test.py +0 -0
  354. {linode_api4-5.45.0 → linode_api4-5.46.0}/test/unit/objects/account_test.py +0 -0
  355. {linode_api4-5.45.0 → linode_api4-5.46.0}/test/unit/objects/base_test.py +0 -0
  356. {linode_api4-5.45.0 → linode_api4-5.46.0}/test/unit/objects/beta_test.py +0 -0
  357. {linode_api4-5.45.0 → linode_api4-5.46.0}/test/unit/objects/database_test.py +0 -0
  358. {linode_api4-5.45.0 → linode_api4-5.46.0}/test/unit/objects/domain_test.py +0 -0
  359. {linode_api4-5.45.0 → linode_api4-5.46.0}/test/unit/objects/firewall_test.py +0 -0
  360. {linode_api4-5.45.0 → linode_api4-5.46.0}/test/unit/objects/image_share_group_test.py +0 -0
  361. {linode_api4-5.45.0 → linode_api4-5.46.0}/test/unit/objects/image_test.py +0 -0
  362. {linode_api4-5.45.0 → linode_api4-5.46.0}/test/unit/objects/linode_interface_test.py +0 -0
  363. {linode_api4-5.45.0 → linode_api4-5.46.0}/test/unit/objects/linode_test.py +0 -0
  364. {linode_api4-5.45.0 → linode_api4-5.46.0}/test/unit/objects/lock_test.py +0 -0
  365. {linode_api4-5.45.0 → linode_api4-5.46.0}/test/unit/objects/longview_test.py +0 -0
  366. {linode_api4-5.45.0 → linode_api4-5.46.0}/test/unit/objects/mapped_object_test.py +0 -0
  367. {linode_api4-5.45.0 → linode_api4-5.46.0}/test/unit/objects/monitor_test.py +0 -0
  368. {linode_api4-5.45.0 → linode_api4-5.46.0}/test/unit/objects/networking_test.py +0 -0
  369. {linode_api4-5.45.0 → linode_api4-5.46.0}/test/unit/objects/nodebalancers_test.py +0 -0
  370. {linode_api4-5.45.0 → linode_api4-5.46.0}/test/unit/objects/object_storage_test.py +0 -0
  371. {linode_api4-5.45.0 → linode_api4-5.46.0}/test/unit/objects/placement_test.py +0 -0
  372. {linode_api4-5.45.0 → linode_api4-5.46.0}/test/unit/objects/profile_test.py +0 -0
  373. {linode_api4-5.45.0 → linode_api4-5.46.0}/test/unit/objects/property_alias_test.py +0 -0
  374. {linode_api4-5.45.0 → linode_api4-5.46.0}/test/unit/objects/region_test.py +0 -0
  375. {linode_api4-5.45.0 → linode_api4-5.46.0}/test/unit/objects/serializable_test.py +0 -0
  376. {linode_api4-5.45.0 → linode_api4-5.46.0}/test/unit/objects/support_test.py +0 -0
  377. {linode_api4-5.45.0 → linode_api4-5.46.0}/test/unit/objects/tag_test.py +0 -0
  378. {linode_api4-5.45.0 → linode_api4-5.46.0}/test/unit/objects/volume_test.py +0 -0
  379. {linode_api4-5.45.0 → linode_api4-5.46.0}/test/unit/paginated_list_test.py +0 -0
  380. {linode_api4-5.45.0 → linode_api4-5.46.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.45.0
3
+ Version: 5.46.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
@@ -225,6 +225,7 @@ class MonitorGroup(Group):
225
225
  description: Optional[str] = None,
226
226
  scope: Optional[Union[AlertScope, str]] = None,
227
227
  regions: Optional[list[str]] = None,
228
+ group_by: Optional[list[str]] = None,
228
229
  ) -> AlertDefinition:
229
230
  """
230
231
  Create a new alert definition for a given service type.
@@ -258,6 +259,8 @@ class MonitorGroup(Group):
258
259
  :type scope: Optional[Union[AlertScope, str]]
259
260
  :param regions: (Optional) Regions to monitor.
260
261
  :type regions: Optional[list[str]]
262
+ :param group_by: (Optional) Aggregates metric data by dimension so that alert conditions are evaluated independently for each dimension value.
263
+ :type group_by: Optional[list[str]]
261
264
 
262
265
  :returns: The newly created :class:`AlertDefinition`.
263
266
  :rtype: AlertDefinition
@@ -282,6 +285,8 @@ class MonitorGroup(Group):
282
285
  params["scope"] = scope
283
286
  if regions is not None:
284
287
  params["regions"] = regions
288
+ if group_by is not None:
289
+ params["group_by"] = group_by
285
290
 
286
291
  # API will validate service_type and return an error if missing
287
292
  result = self.client.post(
@@ -296,6 +301,95 @@ class MonitorGroup(Group):
296
301
 
297
302
  return AlertDefinition(self.client, result["id"], service_type, result)
298
303
 
304
+ def clone_alert_definition(
305
+ self,
306
+ service_type: str,
307
+ id: int,
308
+ label: str,
309
+ description: Optional[str] = None,
310
+ scope: Optional[Union[AlertScope, str]] = None,
311
+ regions: Optional[list[str]] = None,
312
+ entity_ids: Optional[list[str]] = None,
313
+ severity: Optional[int] = None,
314
+ rule_criteria: Optional[dict] = None,
315
+ trigger_conditions: Optional[dict] = None,
316
+ channel_ids: Optional[list[int]] = None,
317
+ group_by: Optional[list[str]] = None,
318
+ ) -> AlertDefinition:
319
+ """
320
+ Clone an existing alert definition for a given service type.
321
+ The clone request creates a new alert definition based on the source
322
+ definition identified by ``id``.
323
+
324
+ API Documentation: TODO
325
+
326
+ :param service_type: Service type for the source alert definition
327
+ (e.g. ``"dbaas"``).
328
+ :type service_type: str
329
+ :param id: Source alert definition identifier.
330
+ :type id: int (Alert identifier)
331
+ :param label: Human-readable label for the cloned alert definition.
332
+ This value is mandatory and must be unique.
333
+ :type label: str
334
+ :param description: (Optional) Longer description for the cloned alert definition.
335
+ :type description: Optional[str]
336
+ :param scope: (Optional) Alert scope provided in the clone request.
337
+ Scope is inherited from the source alert and is immutable.
338
+ :type scope: Optional[Union[AlertScope, str]]
339
+ :param regions: (Optional) Regions to monitor.
340
+ :type regions: Optional[list[str]]
341
+ :param entity_ids: (Optional) Restrict the alert to a subset of entity IDs.
342
+ :type entity_ids: Optional[list[str]]
343
+ :param severity: (Optional) Severity level for the alert.
344
+ :type severity: Optional[int]
345
+ :param rule_criteria: (Optional) Rule criteria used to evaluate the alert.
346
+ :type rule_criteria: Optional[dict]
347
+ :param trigger_conditions: (Optional) Trigger conditions for alert state transitions.
348
+ :type trigger_conditions: Optional[dict]
349
+ :param channel_ids: (Optional) List of alert channel IDs to notify.
350
+ :type channel_ids: Optional[list[int]]
351
+ :param group_by: (Optional) Aggregates metric data by dimension so that alert conditions are evaluated independently for each dimension value.
352
+ :type group_by: Optional[list[str]]
353
+
354
+ :returns: The newly created cloned :class:`AlertDefinition`.
355
+ :rtype: AlertDefinition
356
+ """
357
+ params = {
358
+ "label": label,
359
+ }
360
+
361
+ if description is not None:
362
+ params["description"] = description
363
+ if scope is not None:
364
+ params["scope"] = scope
365
+ if regions is not None:
366
+ params["regions"] = regions
367
+ if entity_ids is not None:
368
+ params["entity_ids"] = entity_ids
369
+ if severity is not None:
370
+ params["severity"] = severity
371
+ if rule_criteria is not None:
372
+ params["rule_criteria"] = rule_criteria
373
+ if trigger_conditions is not None:
374
+ params["trigger_conditions"] = trigger_conditions
375
+ if channel_ids is not None:
376
+ params["channel_ids"] = channel_ids
377
+ if group_by is not None:
378
+ params["group_by"] = group_by
379
+
380
+ result = self.client.post(
381
+ f"/monitor/services/{service_type}/alert-definitions/{id}/clone",
382
+ data=params,
383
+ )
384
+
385
+ if "id" not in result:
386
+ raise UnexpectedResponseError(
387
+ "Unexpected response when cloning alert definition!",
388
+ json=result,
389
+ )
390
+
391
+ return AlertDefinition(self.client, result["id"], service_type, result)
392
+
299
393
  def alert_definition_entities(
300
394
  self,
301
395
  service_type: str,
@@ -429,8 +429,8 @@ class ObjectStorageGroup(Group):
429
429
  json=result,
430
430
  )
431
431
 
432
- return ObjectStorageBucket(
433
- self.client, result["label"], result["cluster"], result
432
+ return ObjectStorageBucket.make_instance(
433
+ result["label"], self.client, json=result
434
434
  )
435
435
 
436
436
  def object_acl_config(self, cluster_or_region_id: str, bucket, name=None):
@@ -2,7 +2,14 @@ from typing import Any, Dict, List, Optional, Union
2
2
 
3
3
  from linode_api4.errors import UnexpectedResponseError
4
4
  from linode_api4.groups import Group
5
- from linode_api4.objects import VPC, Region, VPCIPAddress, VPCIPv6RangeOptions
5
+ from linode_api4.objects import (
6
+ VPC,
7
+ Region,
8
+ VPCIPAddress,
9
+ VPCIPv4DefaultRange,
10
+ VPCIPv4RangeOptions,
11
+ VPCIPv6RangeOptions,
12
+ )
6
13
  from linode_api4.objects.base import _flatten_request_body_recursive
7
14
  from linode_api4.paginated_list import PaginatedList
8
15
  from linode_api4.util import drop_null_keys
@@ -36,6 +43,7 @@ class VPCGroup(Group):
36
43
  description: Optional[str] = None,
37
44
  subnets: Optional[List[Dict[str, Any]]] = None,
38
45
  ipv6: Optional[List[Union[VPCIPv6RangeOptions, Dict[str, Any]]]] = None,
46
+ ipv4: Optional[List[Union[VPCIPv4RangeOptions, Dict[str, Any]]]] = None,
39
47
  **kwargs,
40
48
  ) -> VPC:
41
49
  """
@@ -53,6 +61,8 @@ class VPCGroup(Group):
53
61
  :type subnets: List[Dict[str, Any]]
54
62
  :param ipv6: The IPv6 address ranges for this VPC.
55
63
  :type ipv6: List[Union[VPCIPv6RangeOptions, Dict[str, Any]]]
64
+ :param ipv4: The IPv4 address ranges for this VPC. Note that IPv4 VPCs may not currently be available to all users.
65
+ :type ipv4: List[Union[VPCIPv4RangeOptions, Dict[str, Any]]]
56
66
 
57
67
  :returns: The new VPC object.
58
68
  :rtype: VPC
@@ -61,6 +71,7 @@ class VPCGroup(Group):
61
71
  "label": label,
62
72
  "region": region.id if isinstance(region, Region) else region,
63
73
  "description": description,
74
+ "ipv4": ipv4,
64
75
  "ipv6": ipv6,
65
76
  "subnets": subnets,
66
77
  }
@@ -108,3 +119,15 @@ class VPCGroup(Group):
108
119
  return self.client._get_and_filter(
109
120
  VPCIPAddress, *filters, endpoint="/vpcs/ips"
110
121
  )
122
+
123
+ def default_ranges(self) -> VPCIPv4DefaultRange:
124
+ """
125
+ Retrieve the default settings for the internal and forbidden IPv4 address ranges in VPCs.
126
+
127
+ API Documentation: https://techdocs.akamai.com/linode-api/reference/get-vpcs-default-ranges
128
+
129
+ :returns: The default IPv4 ranges for VPCs.
130
+ :rtype: VPCIPv4DefaultRange
131
+ """
132
+ result = self.client.get("/vpcs/default-ranges")
133
+ return VPCIPv4DefaultRange.from_json(result)
@@ -499,6 +499,7 @@ class AlertDefinition(DerivedBase):
499
499
  "regions": Property(mutable=True),
500
500
  "entities": Property(json_object=AlertEntities),
501
501
  "channel_ids": Property(mutable=True),
502
+ "group_by": Property(mutable=True),
502
503
  }
503
504
 
504
505
 
@@ -10,6 +10,36 @@ from linode_api4.paginated_list import PaginatedList
10
10
  from linode_api4.util import drop_null_keys
11
11
 
12
12
 
13
+ @dataclass
14
+ class VPCIPv4DefaultRange(JSONObject):
15
+ """
16
+ VPCIPv4DefaultRange represents the default settings for the internal and forbidden IPv4 address ranges in VPCs.
17
+ """
18
+
19
+ default_ipv4_ranges: Optional[List[str]] = None
20
+ forbidden_ipv4_ranges: Optional[List[str]] = None
21
+
22
+
23
+ @dataclass
24
+ class VPCIPv4RangeOptions(JSONObject):
25
+ """
26
+ VPCIPv4RangeOptions is used to specify an IPv4 range when creating or updating a VPC.
27
+ """
28
+
29
+ range: Optional[str] = None
30
+
31
+
32
+ @dataclass
33
+ class VPCIPv4Range(JSONObject):
34
+ """
35
+ VPCIPv4Range represents a single VPC IPv4 range.
36
+ """
37
+
38
+ put_class = VPCIPv4RangeOptions
39
+
40
+ range: str = ""
41
+
42
+
13
43
  @dataclass
14
44
  class VPCIPv6RangeOptions(JSONObject):
15
45
  """
@@ -108,6 +138,10 @@ class VPC(Base):
108
138
  "label": Property(mutable=True),
109
139
  "description": Property(mutable=True),
110
140
  "region": Property(slug_relationship=Region),
141
+ # Note that IPv4 VPCs may not currently be available to all users.
142
+ "ipv4": Property(
143
+ json_object=VPCIPv4Range, mutable=True, unordered=True
144
+ ),
111
145
  "ipv6": Property(json_object=VPCIPv6Range, unordered=True),
112
146
  "subnets": Property(derived_class=VPCSubnet),
113
147
  "created": Property(is_datetime=True),
@@ -2,4 +2,4 @@
2
2
  The version of this linode_api4 package.
3
3
  """
4
4
 
5
- __version__ = "v5.45.0"
5
+ __version__ = "v5.46.0"
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: linode_api4
3
- Version: 5.45.0
3
+ Version: 5.46.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
@@ -196,6 +196,7 @@ test/fixtures/monitor_services.json
196
196
  test/fixtures/monitor_services_dbaas.json
197
197
  test/fixtures/monitor_services_dbaas_alert-definitions.json
198
198
  test/fixtures/monitor_services_dbaas_alert-definitions_12345.json
199
+ test/fixtures/monitor_services_dbaas_alert-definitions_12345_clone.json
199
200
  test/fixtures/monitor_services_dbaas_alert-definitions_12345_entities.json
200
201
  test/fixtures/monitor_services_dbaas_dashboards.json
201
202
  test/fixtures/monitor_services_dbaas_metric-definitions.json
@@ -282,6 +283,7 @@ test/fixtures/vpcs_123456.json
282
283
  test/fixtures/vpcs_123456_ips.json
283
284
  test/fixtures/vpcs_123456_subnets.json
284
285
  test/fixtures/vpcs_123456_subnets_789.json
286
+ test/fixtures/vpcs_default-ranges.json
285
287
  test/fixtures/vpcs_ips.json
286
288
  test/integration/__init__.py
287
289
  test/integration/conftest.py
@@ -9,6 +9,9 @@
9
9
  "description": "A test alert for dbaas service",
10
10
  "scope": "entity",
11
11
  "regions": [],
12
+ "group_by": [
13
+ "entity_id"
14
+ ],
12
15
  "entities": {
13
16
  "url": "/monitor/services/dbaas/alert-definitions/12345/entities",
14
17
  "count": 1,
@@ -9,6 +9,9 @@
9
9
  "description": "A test alert for dbaas service",
10
10
  "scope": "entity",
11
11
  "regions": [],
12
+ "group_by": [
13
+ "entity_id"
14
+ ],
12
15
  "entities": {
13
16
  "url": "/monitor/services/dbaas/alert-definitions/12345/entities",
14
17
  "count": 1,
@@ -48,8 +51,8 @@
48
51
  "polling_interval_seconds": 60,
49
52
  "trigger_occurrences": 3
50
53
  },
51
- "class": "alert",
52
- "status": "active",
54
+ "class": "",
55
+ "status": "enabled",
53
56
  "created": "2024-01-01T00:00:00",
54
57
  "updated": "2024-01-01T00:00:00",
55
58
  "updated_by": "tester"
@@ -7,6 +7,9 @@
7
7
  "description": "A test alert for dbaas service",
8
8
  "scope": "entity",
9
9
  "regions": [],
10
+ "group_by": [
11
+ "entity_id"
12
+ ],
10
13
  "entities": {
11
14
  "url": "/monitor/services/dbaas/alert-definitions/12345/entities",
12
15
  "count": 1,
@@ -46,8 +49,8 @@
46
49
  "polling_interval_seconds": 60,
47
50
  "trigger_occurrences": 3
48
51
  },
49
- "class": "alert",
50
- "status": "active",
52
+ "class": "",
53
+ "status": "enabled",
51
54
  "created": "2024-01-01T00:00:00",
52
55
  "updated": "2024-01-01T00:00:00",
53
56
  "updated_by": "tester"
@@ -0,0 +1,57 @@
1
+ {
2
+ "id": 67891,
3
+ "label": "Cloned Alert",
4
+ "service_type": "dbaas",
5
+ "severity": 1,
6
+ "type": "user",
7
+ "description": "Cloned from source alert",
8
+ "scope": "entity",
9
+ "regions": [],
10
+ "group_by": [
11
+ "entity_id"
12
+ ],
13
+ "entities": {
14
+ "url": "/monitor/services/dbaas/alert-definitions/67891/entities",
15
+ "count": 1,
16
+ "has_more_resources": false
17
+ },
18
+ "alert_channels": [
19
+ {
20
+ "id": 10000,
21
+ "label": "Read-Write Channel",
22
+ "type": "email",
23
+ "url": "/monitor/alert-channels/10000"
24
+ }
25
+ ],
26
+ "rule_criteria": {
27
+ "rules": [
28
+ {
29
+ "aggregate_function": "avg",
30
+ "dimension_filters": [
31
+ {
32
+ "dimension_label": "node_type",
33
+ "label": "Node Type",
34
+ "operator": "eq",
35
+ "value": "primary"
36
+ }
37
+ ],
38
+ "label": "High CPU Usage",
39
+ "metric": "cpu_usage",
40
+ "operator": "gt",
41
+ "threshold": 90,
42
+ "unit": "percent"
43
+ }
44
+ ]
45
+ },
46
+ "trigger_conditions": {
47
+ "criteria_condition": "ALL",
48
+ "evaluation_period_seconds": 300,
49
+ "polling_interval_seconds": 60,
50
+ "trigger_occurrences": 3
51
+ },
52
+ "class": "",
53
+ "status": "enabled",
54
+ "created": "2024-01-01T00:00:00",
55
+ "updated": "2024-01-01T00:00:00",
56
+ "updated_by": "tester"
57
+ }
@@ -5,6 +5,11 @@
5
5
  "id": 123456,
6
6
  "description": "A very real VPC.",
7
7
  "region": "us-southeast",
8
+ "ipv4": [
9
+ {
10
+ "range": "10.0.0.0/8"
11
+ }
12
+ ],
8
13
  "ipv6": [
9
14
  {
10
15
  "range": "fd71:1140:a9d0::/52"
@@ -3,6 +3,11 @@
3
3
  "id": 123456,
4
4
  "description": "A very real VPC.",
5
5
  "region": "us-southeast",
6
+ "ipv4": [
7
+ {
8
+ "range": "10.0.0.0/8"
9
+ }
10
+ ],
6
11
  "ipv6": [
7
12
  {
8
13
  "range": "fd71:1140:a9d0::/52"
@@ -0,0 +1,10 @@
1
+ {
2
+ "default_ipv4_ranges": [
3
+ "10.0.0.0/8",
4
+ "192.168.0.0/17"
5
+ ],
6
+ "forbidden_ipv4_ranges": [
7
+ "172.17.0.0/16"
8
+ ]
9
+ }
10
+
@@ -473,7 +473,13 @@ def create_vpc(test_linode_client):
473
473
  vpc = client.vpcs.create(
474
474
  label=label,
475
475
  region=get_region(
476
- test_linode_client, {"VPCs", "VPC IPv6 Stack", "Linode Interfaces"}
476
+ test_linode_client,
477
+ {
478
+ "VPCs",
479
+ "VPC IPv6 Stack",
480
+ "Linode Interfaces",
481
+ "Custom VPC IPv4 Ranges",
482
+ },
477
483
  ),
478
484
  description="test description",
479
485
  ipv6=[{"range": "auto"}],
@@ -518,6 +524,22 @@ def create_vpc_with_subnet_and_linode(
518
524
  instance.delete()
519
525
 
520
526
 
527
+ @pytest.fixture
528
+ def create_vpc_with_ipv4(test_linode_client):
529
+ client = test_linode_client
530
+
531
+ vpc = client.vpcs.create(
532
+ label=get_test_label(length=10),
533
+ region=get_region(client, {"VPCs", "Custom VPC IPv4 Ranges"}),
534
+ description="integration test vpc with ipv4",
535
+ ipv4=[{"range": "10.0.0.0/8"}],
536
+ )
537
+
538
+ yield vpc
539
+
540
+ vpc.delete()
541
+
542
+
521
543
  @pytest.fixture(scope="session")
522
544
  def create_multiple_vpcs(test_linode_client):
523
545
  client = test_linode_client
@@ -848,21 +848,14 @@ def test_get_linode_types(test_linode_client):
848
848
  for linode_type in types:
849
849
  assert hasattr(linode_type, "accelerated_devices")
850
850
 
851
-
852
- def test_get_linode_types_overrides(test_linode_client):
853
- types = test_linode_client.linode.types()
854
-
855
- target_types = [
851
+ regional_priced_types = [
856
852
  v
857
853
  for v in types
858
854
  if len(v.region_prices) > 0 and v.region_prices[0].hourly > 0
859
855
  ]
860
856
 
861
- assert len(target_types) > 0
862
-
863
- for linode_type in target_types:
864
- assert linode_type.region_prices[0].hourly >= 0
865
- assert linode_type.region_prices[0].monthly >= 0
857
+ assert any(v.region_prices[0].hourly > 0 for v in regional_priced_types)
858
+ assert any(v.region_prices[0].monthly > 0 for v in regional_priced_types)
866
859
 
867
860
 
868
861
  @pytest.mark.flaky(reruns=3, reruns_delay=2)
@@ -1,5 +1,4 @@
1
1
  import base64
2
- import re
3
2
  from test.integration.conftest import get_region
4
3
  from test.integration.helpers import (
5
4
  get_test_label,
@@ -226,16 +225,6 @@ def test_node_pool_create_with_disk_encryption(test_linode_client, lke_cluster):
226
225
  pool.delete()
227
226
 
228
227
 
229
- def test_cluster_dashboard_url_view(lke_cluster):
230
- cluster = lke_cluster
231
-
232
- url = send_request_when_resource_available(
233
- 300, cluster.cluster_dashboard_url_view
234
- )
235
-
236
- assert re.search("https://+", url)
237
-
238
-
239
228
  def test_get_and_delete_kubeconfig(lke_cluster):
240
229
  cluster = lke_cluster
241
230