linode-api4 5.46.1__tar.gz → 5.48.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 (381) hide show
  1. {linode_api4-5.46.1/linode_api4.egg-info → linode_api4-5.48.0}/PKG-INFO +26 -27
  2. {linode_api4-5.46.1 → linode_api4-5.48.0}/README.rst +4 -7
  3. {linode_api4-5.46.1 → linode_api4-5.48.0}/linode_api4/groups/nodebalancer.py +21 -0
  4. {linode_api4-5.46.1 → linode_api4-5.48.0}/linode_api4/groups/vpc.py +8 -0
  5. {linode_api4-5.46.1 → linode_api4-5.48.0}/linode_api4/login_client.py +47 -2
  6. {linode_api4-5.46.1 → linode_api4-5.48.0}/linode_api4/objects/linode.py +49 -1
  7. {linode_api4-5.46.1 → linode_api4-5.48.0}/linode_api4/objects/linode_interfaces.py +82 -0
  8. {linode_api4-5.46.1 → linode_api4-5.48.0}/linode_api4/objects/nodebalancer.py +17 -2
  9. {linode_api4-5.46.1 → linode_api4-5.48.0}/linode_api4/objects/region.py +1 -0
  10. {linode_api4-5.46.1 → linode_api4-5.48.0}/linode_api4/objects/vpc.py +12 -1
  11. {linode_api4-5.46.1 → linode_api4-5.48.0}/linode_api4/version.py +1 -1
  12. {linode_api4-5.46.1 → linode_api4-5.48.0/linode_api4.egg-info}/PKG-INFO +26 -27
  13. {linode_api4-5.46.1 → linode_api4-5.48.0}/linode_api4.egg-info/SOURCES.txt +1 -0
  14. {linode_api4-5.46.1 → linode_api4-5.48.0}/linode_api4.egg-info/requires.txt +21 -14
  15. {linode_api4-5.46.1 → linode_api4-5.48.0}/pyproject.toml +17 -12
  16. {linode_api4-5.46.1 → linode_api4-5.48.0}/test/fixtures/linode_instances.json +2 -0
  17. {linode_api4-5.46.1 → linode_api4-5.48.0}/test/fixtures/linode_instances_123_nodebalancers.json +3 -0
  18. linode_api4-5.48.0/test/fixtures/linode_instances_124_interfaces_999.json +27 -0
  19. {linode_api4-5.46.1 → linode_api4-5.48.0}/test/fixtures/nodebalancers.json +8 -2
  20. {linode_api4-5.46.1 → linode_api4-5.48.0}/test/fixtures/nodebalancers_123456.json +5 -2
  21. {linode_api4-5.46.1 → linode_api4-5.48.0}/test/fixtures/vpcs.json +1 -0
  22. {linode_api4-5.46.1 → linode_api4-5.48.0}/test/fixtures/vpcs_123456.json +1 -0
  23. {linode_api4-5.46.1 → linode_api4-5.48.0}/test/fixtures/vpcs_123456_subnets.json +1 -0
  24. {linode_api4-5.46.1 → linode_api4-5.48.0}/test/fixtures/vpcs_123456_subnets_789.json +1 -0
  25. {linode_api4-5.46.1 → linode_api4-5.48.0}/test/integration/conftest.py +38 -2
  26. {linode_api4-5.46.1 → linode_api4-5.48.0}/test/integration/models/account/test_account.py +7 -2
  27. {linode_api4-5.46.1 → linode_api4-5.48.0}/test/integration/models/image/test_image.py +1 -3
  28. {linode_api4-5.46.1 → linode_api4-5.48.0}/test/integration/models/linode/interfaces/test_interfaces.py +122 -1
  29. {linode_api4-5.46.1 → linode_api4-5.48.0}/test/integration/models/linode/test_linode.py +70 -39
  30. {linode_api4-5.46.1 → linode_api4-5.48.0}/test/integration/models/networking/test_networking.py +2 -2
  31. {linode_api4-5.46.1 → linode_api4-5.48.0}/test/integration/models/nodebalancer/test_nodebalancer.py +7 -0
  32. {linode_api4-5.46.1 → linode_api4-5.48.0}/test/integration/models/sharegroups/test_sharegroups.py +5 -3
  33. {linode_api4-5.46.1 → linode_api4-5.48.0}/test/integration/models/vpc/test_vpc.py +31 -0
  34. {linode_api4-5.46.1 → linode_api4-5.48.0}/test/unit/groups/linode_test.py +35 -0
  35. {linode_api4-5.46.1 → linode_api4-5.48.0}/test/unit/linode_client_test.py +79 -0
  36. {linode_api4-5.46.1 → linode_api4-5.48.0}/test/unit/login_client_test.py +18 -0
  37. {linode_api4-5.46.1 → linode_api4-5.48.0}/test/unit/objects/linode_interface_test.py +86 -0
  38. {linode_api4-5.46.1 → linode_api4-5.48.0}/test/unit/objects/linode_test.py +42 -0
  39. {linode_api4-5.46.1 → linode_api4-5.48.0}/test/unit/objects/nodebalancers_test.py +86 -0
  40. {linode_api4-5.46.1 → linode_api4-5.48.0}/test/unit/objects/vpc_test.py +41 -0
  41. {linode_api4-5.46.1 → linode_api4-5.48.0}/LICENSE +0 -0
  42. {linode_api4-5.46.1 → linode_api4-5.48.0}/MANIFEST.in +0 -0
  43. {linode_api4-5.46.1 → linode_api4-5.48.0}/examples/install-on-linode/app.py +0 -0
  44. {linode_api4-5.46.1 → linode_api4-5.48.0}/examples/install-on-linode/make_stackscript.py +0 -0
  45. {linode_api4-5.46.1 → linode_api4-5.48.0}/linode_api4/__init__.py +0 -0
  46. {linode_api4-5.46.1 → linode_api4-5.48.0}/linode_api4/common.py +0 -0
  47. {linode_api4-5.46.1 → linode_api4-5.48.0}/linode_api4/errors.py +0 -0
  48. {linode_api4-5.46.1 → linode_api4-5.48.0}/linode_api4/groups/__init__.py +0 -0
  49. {linode_api4-5.46.1 → linode_api4-5.48.0}/linode_api4/groups/account.py +0 -0
  50. {linode_api4-5.46.1 → linode_api4-5.48.0}/linode_api4/groups/beta.py +0 -0
  51. {linode_api4-5.46.1 → linode_api4-5.48.0}/linode_api4/groups/database.py +0 -0
  52. {linode_api4-5.46.1 → linode_api4-5.48.0}/linode_api4/groups/domain.py +0 -0
  53. {linode_api4-5.46.1 → linode_api4-5.48.0}/linode_api4/groups/group.py +0 -0
  54. {linode_api4-5.46.1 → linode_api4-5.48.0}/linode_api4/groups/image.py +0 -0
  55. {linode_api4-5.46.1 → linode_api4-5.48.0}/linode_api4/groups/image_share_group.py +0 -0
  56. {linode_api4-5.46.1 → linode_api4-5.48.0}/linode_api4/groups/linode.py +0 -0
  57. {linode_api4-5.46.1 → linode_api4-5.48.0}/linode_api4/groups/lke.py +0 -0
  58. {linode_api4-5.46.1 → linode_api4-5.48.0}/linode_api4/groups/lke_tier.py +0 -0
  59. {linode_api4-5.46.1 → linode_api4-5.48.0}/linode_api4/groups/lock.py +0 -0
  60. {linode_api4-5.46.1 → linode_api4-5.48.0}/linode_api4/groups/longview.py +0 -0
  61. {linode_api4-5.46.1 → linode_api4-5.48.0}/linode_api4/groups/maintenance.py +0 -0
  62. {linode_api4-5.46.1 → linode_api4-5.48.0}/linode_api4/groups/monitor.py +0 -0
  63. {linode_api4-5.46.1 → linode_api4-5.48.0}/linode_api4/groups/monitor_api.py +0 -0
  64. {linode_api4-5.46.1 → linode_api4-5.48.0}/linode_api4/groups/networking.py +0 -0
  65. {linode_api4-5.46.1 → linode_api4-5.48.0}/linode_api4/groups/object_storage.py +0 -0
  66. {linode_api4-5.46.1 → linode_api4-5.48.0}/linode_api4/groups/placement.py +0 -0
  67. {linode_api4-5.46.1 → linode_api4-5.48.0}/linode_api4/groups/polling.py +0 -0
  68. {linode_api4-5.46.1 → linode_api4-5.48.0}/linode_api4/groups/profile.py +0 -0
  69. {linode_api4-5.46.1 → linode_api4-5.48.0}/linode_api4/groups/region.py +0 -0
  70. {linode_api4-5.46.1 → linode_api4-5.48.0}/linode_api4/groups/support.py +0 -0
  71. {linode_api4-5.46.1 → linode_api4-5.48.0}/linode_api4/groups/tag.py +0 -0
  72. {linode_api4-5.46.1 → linode_api4-5.48.0}/linode_api4/groups/volume.py +0 -0
  73. {linode_api4-5.46.1 → linode_api4-5.48.0}/linode_api4/linode_client.py +0 -0
  74. {linode_api4-5.46.1 → linode_api4-5.48.0}/linode_api4/objects/__init__.py +0 -0
  75. {linode_api4-5.46.1 → linode_api4-5.48.0}/linode_api4/objects/account.py +0 -0
  76. {linode_api4-5.46.1 → linode_api4-5.48.0}/linode_api4/objects/base.py +0 -0
  77. {linode_api4-5.46.1 → linode_api4-5.48.0}/linode_api4/objects/beta.py +0 -0
  78. {linode_api4-5.46.1 → linode_api4-5.48.0}/linode_api4/objects/database.py +0 -0
  79. {linode_api4-5.46.1 → linode_api4-5.48.0}/linode_api4/objects/dbase.py +0 -0
  80. {linode_api4-5.46.1 → linode_api4-5.48.0}/linode_api4/objects/domain.py +0 -0
  81. {linode_api4-5.46.1 → linode_api4-5.48.0}/linode_api4/objects/filtering.py +0 -0
  82. {linode_api4-5.46.1 → linode_api4-5.48.0}/linode_api4/objects/image.py +0 -0
  83. {linode_api4-5.46.1 → linode_api4-5.48.0}/linode_api4/objects/image_share_group.py +0 -0
  84. {linode_api4-5.46.1 → linode_api4-5.48.0}/linode_api4/objects/lke.py +0 -0
  85. {linode_api4-5.46.1 → linode_api4-5.48.0}/linode_api4/objects/lock.py +0 -0
  86. {linode_api4-5.46.1 → linode_api4-5.48.0}/linode_api4/objects/longview.py +0 -0
  87. {linode_api4-5.46.1 → linode_api4-5.48.0}/linode_api4/objects/monitor.py +0 -0
  88. {linode_api4-5.46.1 → linode_api4-5.48.0}/linode_api4/objects/monitor_api.py +0 -0
  89. {linode_api4-5.46.1 → linode_api4-5.48.0}/linode_api4/objects/networking.py +0 -0
  90. {linode_api4-5.46.1 → linode_api4-5.48.0}/linode_api4/objects/object_storage.py +0 -0
  91. {linode_api4-5.46.1 → linode_api4-5.48.0}/linode_api4/objects/placement.py +0 -0
  92. {linode_api4-5.46.1 → linode_api4-5.48.0}/linode_api4/objects/profile.py +0 -0
  93. {linode_api4-5.46.1 → linode_api4-5.48.0}/linode_api4/objects/serializable.py +0 -0
  94. {linode_api4-5.46.1 → linode_api4-5.48.0}/linode_api4/objects/support.py +0 -0
  95. {linode_api4-5.46.1 → linode_api4-5.48.0}/linode_api4/objects/tag.py +0 -0
  96. {linode_api4-5.46.1 → linode_api4-5.48.0}/linode_api4/objects/volume.py +0 -0
  97. {linode_api4-5.46.1 → linode_api4-5.48.0}/linode_api4/paginated_list.py +0 -0
  98. {linode_api4-5.46.1 → linode_api4-5.48.0}/linode_api4/polling.py +0 -0
  99. {linode_api4-5.46.1 → linode_api4-5.48.0}/linode_api4/util.py +0 -0
  100. {linode_api4-5.46.1 → linode_api4-5.48.0}/linode_api4.egg-info/dependency_links.txt +0 -0
  101. {linode_api4-5.46.1 → linode_api4-5.48.0}/linode_api4.egg-info/top_level.txt +0 -0
  102. {linode_api4-5.46.1 → linode_api4-5.48.0}/setup.cfg +0 -0
  103. {linode_api4-5.46.1 → linode_api4-5.48.0}/setup.py +0 -0
  104. {linode_api4-5.46.1 → linode_api4-5.48.0}/test/__init__.py +0 -0
  105. {linode_api4-5.46.1 → linode_api4-5.48.0}/test/fixtures/account.json +0 -0
  106. {linode_api4-5.46.1 → linode_api4-5.48.0}/test/fixtures/account_availability.json +0 -0
  107. {linode_api4-5.46.1 → linode_api4-5.48.0}/test/fixtures/account_availability_us-east.json +0 -0
  108. {linode_api4-5.46.1 → linode_api4-5.48.0}/test/fixtures/account_betas.json +0 -0
  109. {linode_api4-5.46.1 → linode_api4-5.48.0}/test/fixtures/account_betas_cool.json +0 -0
  110. {linode_api4-5.46.1 → linode_api4-5.48.0}/test/fixtures/account_child-accounts.json +0 -0
  111. {linode_api4-5.46.1 → linode_api4-5.48.0}/test/fixtures/account_child-accounts_123456.json +0 -0
  112. {linode_api4-5.46.1 → linode_api4-5.48.0}/test/fixtures/account_child-accounts_123456_token.json +0 -0
  113. {linode_api4-5.46.1 → linode_api4-5.48.0}/test/fixtures/account_events_123.json +0 -0
  114. {linode_api4-5.46.1 → linode_api4-5.48.0}/test/fixtures/account_invoices.json +0 -0
  115. {linode_api4-5.46.1 → linode_api4-5.48.0}/test/fixtures/account_invoices_123.json +0 -0
  116. {linode_api4-5.46.1 → linode_api4-5.48.0}/test/fixtures/account_invoices_123456_items.json +0 -0
  117. {linode_api4-5.46.1 → linode_api4-5.48.0}/test/fixtures/account_logins.json +0 -0
  118. {linode_api4-5.46.1 → linode_api4-5.48.0}/test/fixtures/account_logins_123.json +0 -0
  119. {linode_api4-5.46.1 → linode_api4-5.48.0}/test/fixtures/account_maintenance.json +0 -0
  120. {linode_api4-5.46.1 → linode_api4-5.48.0}/test/fixtures/account_notifications.json +0 -0
  121. {linode_api4-5.46.1 → linode_api4-5.48.0}/test/fixtures/account_oauth-clients_2737bf16b39ab5d7b4a1.json +0 -0
  122. {linode_api4-5.46.1 → linode_api4-5.48.0}/test/fixtures/account_payment-method_123.json +0 -0
  123. {linode_api4-5.46.1 → linode_api4-5.48.0}/test/fixtures/account_payment-methods.json +0 -0
  124. {linode_api4-5.46.1 → linode_api4-5.48.0}/test/fixtures/account_payments.json +0 -0
  125. {linode_api4-5.46.1 → linode_api4-5.48.0}/test/fixtures/account_promo-codes.json +0 -0
  126. {linode_api4-5.46.1 → linode_api4-5.48.0}/test/fixtures/account_service-transfers.json +0 -0
  127. {linode_api4-5.46.1 → linode_api4-5.48.0}/test/fixtures/account_service-transfers_12345.json +0 -0
  128. {linode_api4-5.46.1 → linode_api4-5.48.0}/test/fixtures/account_settings.json +0 -0
  129. {linode_api4-5.46.1 → linode_api4-5.48.0}/test/fixtures/account_transfer.json +0 -0
  130. {linode_api4-5.46.1 → linode_api4-5.48.0}/test/fixtures/account_users_test-user.json +0 -0
  131. {linode_api4-5.46.1 → linode_api4-5.48.0}/test/fixtures/betas.json +0 -0
  132. {linode_api4-5.46.1 → linode_api4-5.48.0}/test/fixtures/betas_active.json +0 -0
  133. {linode_api4-5.46.1 → linode_api4-5.48.0}/test/fixtures/databases_engines.json +0 -0
  134. {linode_api4-5.46.1 → linode_api4-5.48.0}/test/fixtures/databases_instances.json +0 -0
  135. {linode_api4-5.46.1 → linode_api4-5.48.0}/test/fixtures/databases_mysql_config.json +0 -0
  136. {linode_api4-5.46.1 → linode_api4-5.48.0}/test/fixtures/databases_mysql_instances.json +0 -0
  137. {linode_api4-5.46.1 → linode_api4-5.48.0}/test/fixtures/databases_mysql_instances_123_credentials.json +0 -0
  138. {linode_api4-5.46.1 → linode_api4-5.48.0}/test/fixtures/databases_mysql_instances_123_credentials_reset.json +0 -0
  139. {linode_api4-5.46.1 → linode_api4-5.48.0}/test/fixtures/databases_mysql_instances_123_patch.json +0 -0
  140. {linode_api4-5.46.1 → linode_api4-5.48.0}/test/fixtures/databases_mysql_instances_123_resume.json +0 -0
  141. {linode_api4-5.46.1 → linode_api4-5.48.0}/test/fixtures/databases_mysql_instances_123_ssl.json +0 -0
  142. {linode_api4-5.46.1 → linode_api4-5.48.0}/test/fixtures/databases_mysql_instances_123_suspend.json +0 -0
  143. {linode_api4-5.46.1 → linode_api4-5.48.0}/test/fixtures/databases_postgresql_config.json +0 -0
  144. {linode_api4-5.46.1 → linode_api4-5.48.0}/test/fixtures/databases_postgresql_instances.json +0 -0
  145. {linode_api4-5.46.1 → linode_api4-5.48.0}/test/fixtures/databases_postgresql_instances_123_credentials.json +0 -0
  146. {linode_api4-5.46.1 → linode_api4-5.48.0}/test/fixtures/databases_postgresql_instances_123_credentials_reset.json +0 -0
  147. {linode_api4-5.46.1 → linode_api4-5.48.0}/test/fixtures/databases_postgresql_instances_123_patch.json +0 -0
  148. {linode_api4-5.46.1 → linode_api4-5.48.0}/test/fixtures/databases_postgresql_instances_123_resume.json +0 -0
  149. {linode_api4-5.46.1 → linode_api4-5.48.0}/test/fixtures/databases_postgresql_instances_123_ssl.json +0 -0
  150. {linode_api4-5.46.1 → linode_api4-5.48.0}/test/fixtures/databases_postgresql_instances_123_suspend.json +0 -0
  151. {linode_api4-5.46.1 → linode_api4-5.48.0}/test/fixtures/databases_types.json +0 -0
  152. {linode_api4-5.46.1 → linode_api4-5.48.0}/test/fixtures/domains.json +0 -0
  153. {linode_api4-5.46.1 → linode_api4-5.48.0}/test/fixtures/domains_12345_clone.json +0 -0
  154. {linode_api4-5.46.1 → linode_api4-5.48.0}/test/fixtures/domains_12345_records.json +0 -0
  155. {linode_api4-5.46.1 → linode_api4-5.48.0}/test/fixtures/domains_12345_zone-file.json +0 -0
  156. {linode_api4-5.46.1 → linode_api4-5.48.0}/test/fixtures/domains_import.json +0 -0
  157. {linode_api4-5.46.1 → linode_api4-5.48.0}/test/fixtures/images.json +0 -0
  158. {linode_api4-5.46.1 → linode_api4-5.48.0}/test/fixtures/images_private_1234_sharegroups.json +0 -0
  159. {linode_api4-5.46.1 → linode_api4-5.48.0}/test/fixtures/images_private_123_regions.json +0 -0
  160. {linode_api4-5.46.1 → linode_api4-5.48.0}/test/fixtures/images_private_1337.json +0 -0
  161. {linode_api4-5.46.1 → linode_api4-5.48.0}/test/fixtures/images_sharegroups.json +0 -0
  162. {linode_api4-5.46.1 → linode_api4-5.48.0}/test/fixtures/images_sharegroups_1234.json +0 -0
  163. {linode_api4-5.46.1 → linode_api4-5.48.0}/test/fixtures/images_sharegroups_1234_images.json +0 -0
  164. {linode_api4-5.46.1 → linode_api4-5.48.0}/test/fixtures/images_sharegroups_1234_images_shared_1.json +0 -0
  165. {linode_api4-5.46.1 → linode_api4-5.48.0}/test/fixtures/images_sharegroups_1234_members.json +0 -0
  166. {linode_api4-5.46.1 → linode_api4-5.48.0}/test/fixtures/images_sharegroups_1234_members_abc123.json +0 -0
  167. {linode_api4-5.46.1 → linode_api4-5.48.0}/test/fixtures/images_sharegroups_tokens.json +0 -0
  168. {linode_api4-5.46.1 → linode_api4-5.48.0}/test/fixtures/images_sharegroups_tokens_abc123.json +0 -0
  169. {linode_api4-5.46.1 → linode_api4-5.48.0}/test/fixtures/images_sharegroups_tokens_abc123_sharegroup.json +0 -0
  170. {linode_api4-5.46.1 → linode_api4-5.48.0}/test/fixtures/images_sharegroups_tokens_abc123_sharegroup_images.json +0 -0
  171. {linode_api4-5.46.1 → linode_api4-5.48.0}/test/fixtures/images_upload.json +0 -0
  172. {linode_api4-5.46.1 → linode_api4-5.48.0}/test/fixtures/linode_instances_123_backups.json +0 -0
  173. {linode_api4-5.46.1 → linode_api4-5.48.0}/test/fixtures/linode_instances_123_configs.json +0 -0
  174. {linode_api4-5.46.1 → linode_api4-5.48.0}/test/fixtures/linode_instances_123_configs_456789.json +0 -0
  175. {linode_api4-5.46.1 → linode_api4-5.48.0}/test/fixtures/linode_instances_123_configs_456789_interfaces.json +0 -0
  176. {linode_api4-5.46.1 → linode_api4-5.48.0}/test/fixtures/linode_instances_123_configs_456789_interfaces_123.json +0 -0
  177. {linode_api4-5.46.1 → linode_api4-5.48.0}/test/fixtures/linode_instances_123_configs_456789_interfaces_123_put.json +0 -0
  178. {linode_api4-5.46.1 → linode_api4-5.48.0}/test/fixtures/linode_instances_123_configs_456789_interfaces_321.json +0 -0
  179. {linode_api4-5.46.1 → linode_api4-5.48.0}/test/fixtures/linode_instances_123_configs_456789_interfaces_456.json +0 -0
  180. {linode_api4-5.46.1 → linode_api4-5.48.0}/test/fixtures/linode_instances_123_disks.json +0 -0
  181. {linode_api4-5.46.1 → linode_api4-5.48.0}/test/fixtures/linode_instances_123_disks_12345_clone.json +0 -0
  182. {linode_api4-5.46.1 → linode_api4-5.48.0}/test/fixtures/linode_instances_123_firewalls.json +0 -0
  183. {linode_api4-5.46.1 → linode_api4-5.48.0}/test/fixtures/linode_instances_123_ips.json +0 -0
  184. {linode_api4-5.46.1 → linode_api4-5.48.0}/test/fixtures/linode_instances_123_transfer.json +0 -0
  185. {linode_api4-5.46.1 → linode_api4-5.48.0}/test/fixtures/linode_instances_123_transfer_2023_4.json +0 -0
  186. {linode_api4-5.46.1 → linode_api4-5.48.0}/test/fixtures/linode_instances_123_volumes.json +0 -0
  187. {linode_api4-5.46.1 → linode_api4-5.48.0}/test/fixtures/linode_instances_124.json +0 -0
  188. {linode_api4-5.46.1 → linode_api4-5.48.0}/test/fixtures/linode_instances_124_interfaces.json +0 -0
  189. {linode_api4-5.46.1 → linode_api4-5.48.0}/test/fixtures/linode_instances_124_interfaces_123.json +0 -0
  190. {linode_api4-5.46.1 → linode_api4-5.48.0}/test/fixtures/linode_instances_124_interfaces_123_firewalls.json +0 -0
  191. {linode_api4-5.46.1 → linode_api4-5.48.0}/test/fixtures/linode_instances_124_interfaces_456.json +0 -0
  192. {linode_api4-5.46.1 → linode_api4-5.48.0}/test/fixtures/linode_instances_124_interfaces_789.json +0 -0
  193. {linode_api4-5.46.1 → linode_api4-5.48.0}/test/fixtures/linode_instances_124_interfaces_settings.json +0 -0
  194. {linode_api4-5.46.1 → linode_api4-5.48.0}/test/fixtures/linode_instances_124_upgrade-interfaces.json +0 -0
  195. {linode_api4-5.46.1 → linode_api4-5.48.0}/test/fixtures/linode_stackscripts_10079.json +0 -0
  196. {linode_api4-5.46.1 → linode_api4-5.48.0}/test/fixtures/linode_types.json +0 -0
  197. {linode_api4-5.46.1 → linode_api4-5.48.0}/test/fixtures/linode_types_g6-nanode-1.json +0 -0
  198. {linode_api4-5.46.1 → linode_api4-5.48.0}/test/fixtures/lke_clusters.json +0 -0
  199. {linode_api4-5.46.1 → linode_api4-5.48.0}/test/fixtures/lke_clusters_18881.json +0 -0
  200. {linode_api4-5.46.1 → linode_api4-5.48.0}/test/fixtures/lke_clusters_18881_control__plane__acl.json +0 -0
  201. {linode_api4-5.46.1 → linode_api4-5.48.0}/test/fixtures/lke_clusters_18881_dashboard.json +0 -0
  202. {linode_api4-5.46.1 → linode_api4-5.48.0}/test/fixtures/lke_clusters_18881_nodes_123456.json +0 -0
  203. {linode_api4-5.46.1 → linode_api4-5.48.0}/test/fixtures/lke_clusters_18881_pools_456.json +0 -0
  204. {linode_api4-5.46.1 → linode_api4-5.48.0}/test/fixtures/lke_clusters_18882.json +0 -0
  205. {linode_api4-5.46.1 → linode_api4-5.48.0}/test/fixtures/lke_clusters_18882_pools_789.json +0 -0
  206. {linode_api4-5.46.1 → linode_api4-5.48.0}/test/fixtures/lke_tiers_standard_versions.json +0 -0
  207. {linode_api4-5.46.1 → linode_api4-5.48.0}/test/fixtures/lke_types.json +0 -0
  208. {linode_api4-5.46.1 → linode_api4-5.48.0}/test/fixtures/lke_versions.json +0 -0
  209. {linode_api4-5.46.1 → linode_api4-5.48.0}/test/fixtures/locks.json +0 -0
  210. {linode_api4-5.46.1 → linode_api4-5.48.0}/test/fixtures/locks_1.json +0 -0
  211. {linode_api4-5.46.1 → linode_api4-5.48.0}/test/fixtures/longview_clients.json +0 -0
  212. {linode_api4-5.46.1 → linode_api4-5.48.0}/test/fixtures/longview_plan.json +0 -0
  213. {linode_api4-5.46.1 → linode_api4-5.48.0}/test/fixtures/longview_subscriptions.json +0 -0
  214. {linode_api4-5.46.1 → linode_api4-5.48.0}/test/fixtures/maintenance_policies.json +0 -0
  215. {linode_api4-5.46.1 → linode_api4-5.48.0}/test/fixtures/mongodb.json +0 -0
  216. {linode_api4-5.46.1 → linode_api4-5.48.0}/test/fixtures/monitor_alert-channels.json +0 -0
  217. {linode_api4-5.46.1 → linode_api4-5.48.0}/test/fixtures/monitor_alert-definitions.json +0 -0
  218. {linode_api4-5.46.1 → linode_api4-5.48.0}/test/fixtures/monitor_dashboards.json +0 -0
  219. {linode_api4-5.46.1 → linode_api4-5.48.0}/test/fixtures/monitor_dashboards_1.json +0 -0
  220. {linode_api4-5.46.1 → linode_api4-5.48.0}/test/fixtures/monitor_services.json +0 -0
  221. {linode_api4-5.46.1 → linode_api4-5.48.0}/test/fixtures/monitor_services_dbaas.json +0 -0
  222. {linode_api4-5.46.1 → linode_api4-5.48.0}/test/fixtures/monitor_services_dbaas_alert-definitions.json +0 -0
  223. {linode_api4-5.46.1 → linode_api4-5.48.0}/test/fixtures/monitor_services_dbaas_alert-definitions_12345.json +0 -0
  224. {linode_api4-5.46.1 → linode_api4-5.48.0}/test/fixtures/monitor_services_dbaas_alert-definitions_12345_clone.json +0 -0
  225. {linode_api4-5.46.1 → linode_api4-5.48.0}/test/fixtures/monitor_services_dbaas_alert-definitions_12345_entities.json +0 -0
  226. {linode_api4-5.46.1 → linode_api4-5.48.0}/test/fixtures/monitor_services_dbaas_dashboards.json +0 -0
  227. {linode_api4-5.46.1 → linode_api4-5.48.0}/test/fixtures/monitor_services_dbaas_metric-definitions.json +0 -0
  228. {linode_api4-5.46.1 → linode_api4-5.48.0}/test/fixtures/monitor_services_dbaas_metrics.json +0 -0
  229. {linode_api4-5.46.1 → linode_api4-5.48.0}/test/fixtures/monitor_services_dbaas_token.json +0 -0
  230. {linode_api4-5.46.1 → linode_api4-5.48.0}/test/fixtures/monitor_services_linode_token.json +0 -0
  231. {linode_api4-5.46.1 → linode_api4-5.48.0}/test/fixtures/monitor_streams.json +0 -0
  232. {linode_api4-5.46.1 → linode_api4-5.48.0}/test/fixtures/monitor_streams_1_history.json +0 -0
  233. {linode_api4-5.46.1 → linode_api4-5.48.0}/test/fixtures/monitor_streams_2.json +0 -0
  234. {linode_api4-5.46.1 → linode_api4-5.48.0}/test/fixtures/monitor_streams_3.json +0 -0
  235. {linode_api4-5.46.1 → linode_api4-5.48.0}/test/fixtures/monitor_streams_destinations.json +0 -0
  236. {linode_api4-5.46.1 → linode_api4-5.48.0}/test/fixtures/monitor_streams_destinations_1_history.json +0 -0
  237. {linode_api4-5.46.1 → linode_api4-5.48.0}/test/fixtures/monitor_streams_destinations_2.json +0 -0
  238. {linode_api4-5.46.1 → linode_api4-5.48.0}/test/fixtures/network-transfer_prices.json +0 -0
  239. {linode_api4-5.46.1 → linode_api4-5.48.0}/test/fixtures/networking_firewalls.json +0 -0
  240. {linode_api4-5.46.1 → linode_api4-5.48.0}/test/fixtures/networking_firewalls_123.json +0 -0
  241. {linode_api4-5.46.1 → linode_api4-5.48.0}/test/fixtures/networking_firewalls_123_devices.json +0 -0
  242. {linode_api4-5.46.1 → linode_api4-5.48.0}/test/fixtures/networking_firewalls_123_devices_123.json +0 -0
  243. {linode_api4-5.46.1 → linode_api4-5.48.0}/test/fixtures/networking_firewalls_123_devices_456.json +0 -0
  244. {linode_api4-5.46.1 → linode_api4-5.48.0}/test/fixtures/networking_firewalls_123_history.json +0 -0
  245. {linode_api4-5.46.1 → linode_api4-5.48.0}/test/fixtures/networking_firewalls_123_history_rules_2.json +0 -0
  246. {linode_api4-5.46.1 → linode_api4-5.48.0}/test/fixtures/networking_firewalls_123_rules.json +0 -0
  247. {linode_api4-5.46.1 → linode_api4-5.48.0}/test/fixtures/networking_firewalls_settings.json +0 -0
  248. {linode_api4-5.46.1 → linode_api4-5.48.0}/test/fixtures/networking_firewalls_templates.json +0 -0
  249. {linode_api4-5.46.1 → linode_api4-5.48.0}/test/fixtures/networking_firewalls_templates_public.json +0 -0
  250. {linode_api4-5.46.1 → linode_api4-5.48.0}/test/fixtures/networking_firewalls_templates_vpc.json +0 -0
  251. {linode_api4-5.46.1 → linode_api4-5.48.0}/test/fixtures/networking_ips_127.0.0.1.json +0 -0
  252. {linode_api4-5.46.1 → linode_api4-5.48.0}/test/fixtures/networking_ipv6_pools.json +0 -0
  253. {linode_api4-5.46.1 → linode_api4-5.48.0}/test/fixtures/networking_ipv6_ranges.json +0 -0
  254. {linode_api4-5.46.1 → linode_api4-5.48.0}/test/fixtures/networking_ipv6_ranges_2600%3A3c01%3A%3A.json +0 -0
  255. {linode_api4-5.46.1 → linode_api4-5.48.0}/test/fixtures/networking_reserved_ips.json +0 -0
  256. {linode_api4-5.46.1 → linode_api4-5.48.0}/test/fixtures/networking_reserved_ips_types.json +0 -0
  257. {linode_api4-5.46.1 → linode_api4-5.48.0}/test/fixtures/networking_vlans.json +0 -0
  258. {linode_api4-5.46.1 → linode_api4-5.48.0}/test/fixtures/nodebalancers_123456_configs.json +0 -0
  259. {linode_api4-5.46.1 → linode_api4-5.48.0}/test/fixtures/nodebalancers_123456_configs_65432_nodes.json +0 -0
  260. {linode_api4-5.46.1 → linode_api4-5.48.0}/test/fixtures/nodebalancers_12345_configs_4567_rebuild.json +0 -0
  261. {linode_api4-5.46.1 → linode_api4-5.48.0}/test/fixtures/nodebalancers_12345_firewalls.json +0 -0
  262. {linode_api4-5.46.1 → linode_api4-5.48.0}/test/fixtures/nodebalancers_12345_stats.json +0 -0
  263. {linode_api4-5.46.1 → linode_api4-5.48.0}/test/fixtures/nodebalancers_types.json +0 -0
  264. {linode_api4-5.46.1 → linode_api4-5.48.0}/test/fixtures/object-storage_buckets.json +0 -0
  265. {linode_api4-5.46.1 → linode_api4-5.48.0}/test/fixtures/object-storage_buckets_us-east-1.json +0 -0
  266. {linode_api4-5.46.1 → linode_api4-5.48.0}/test/fixtures/object-storage_buckets_us-east-1_example-bucket.json +0 -0
  267. {linode_api4-5.46.1 → linode_api4-5.48.0}/test/fixtures/object-storage_buckets_us-east-1_example-bucket_object-acl.json +0 -0
  268. {linode_api4-5.46.1 → linode_api4-5.48.0}/test/fixtures/object-storage_buckets_us-east-1_example-bucket_object-list.json +0 -0
  269. {linode_api4-5.46.1 → linode_api4-5.48.0}/test/fixtures/object-storage_buckets_us-east-1_example-bucket_object-url.json +0 -0
  270. {linode_api4-5.46.1 → linode_api4-5.48.0}/test/fixtures/object-storage_buckets_us-east-1_example-bucket_ssl.json +0 -0
  271. {linode_api4-5.46.1 → linode_api4-5.48.0}/test/fixtures/object-storage_buckets_us-east_example-bucket_access.json +0 -0
  272. {linode_api4-5.46.1 → linode_api4-5.48.0}/test/fixtures/object-storage_clusters.json +0 -0
  273. {linode_api4-5.46.1 → linode_api4-5.48.0}/test/fixtures/object-storage_global-quotas.json +0 -0
  274. {linode_api4-5.46.1 → linode_api4-5.48.0}/test/fixtures/object-storage_global-quotas_obj-access-keys-per-account.json +0 -0
  275. {linode_api4-5.46.1 → linode_api4-5.48.0}/test/fixtures/object-storage_global-quotas_obj-access-keys-per-account_usage.json +0 -0
  276. {linode_api4-5.46.1 → linode_api4-5.48.0}/test/fixtures/object-storage_keys.json +0 -0
  277. {linode_api4-5.46.1 → linode_api4-5.48.0}/test/fixtures/object-storage_quotas.json +0 -0
  278. {linode_api4-5.46.1 → linode_api4-5.48.0}/test/fixtures/object-storage_quotas_obj-objects-us-ord-1.json +0 -0
  279. {linode_api4-5.46.1 → linode_api4-5.48.0}/test/fixtures/object-storage_quotas_obj-objects-us-ord-1_usage.json +0 -0
  280. {linode_api4-5.46.1 → linode_api4-5.48.0}/test/fixtures/object-storage_transfer.json +0 -0
  281. {linode_api4-5.46.1 → linode_api4-5.48.0}/test/fixtures/object-storage_types.json +0 -0
  282. {linode_api4-5.46.1 → linode_api4-5.48.0}/test/fixtures/placement_groups.json +0 -0
  283. {linode_api4-5.46.1 → linode_api4-5.48.0}/test/fixtures/placement_groups_123.json +0 -0
  284. {linode_api4-5.46.1 → linode_api4-5.48.0}/test/fixtures/profile.json +0 -0
  285. {linode_api4-5.46.1 → linode_api4-5.48.0}/test/fixtures/profile_device_123.json +0 -0
  286. {linode_api4-5.46.1 → linode_api4-5.48.0}/test/fixtures/profile_devices.json +0 -0
  287. {linode_api4-5.46.1 → linode_api4-5.48.0}/test/fixtures/profile_logins.json +0 -0
  288. {linode_api4-5.46.1 → linode_api4-5.48.0}/test/fixtures/profile_logins_123.json +0 -0
  289. {linode_api4-5.46.1 → linode_api4-5.48.0}/test/fixtures/profile_preferences.json +0 -0
  290. {linode_api4-5.46.1 → linode_api4-5.48.0}/test/fixtures/profile_security-questions.json +0 -0
  291. {linode_api4-5.46.1 → linode_api4-5.48.0}/test/fixtures/profile_sshkeys.json +0 -0
  292. {linode_api4-5.46.1 → linode_api4-5.48.0}/test/fixtures/regions.json +0 -0
  293. {linode_api4-5.46.1 → linode_api4-5.48.0}/test/fixtures/regions_availability.json +0 -0
  294. {linode_api4-5.46.1 → linode_api4-5.48.0}/test/fixtures/regions_us-east_availability.json +0 -0
  295. {linode_api4-5.46.1 → linode_api4-5.48.0}/test/fixtures/regions_us-east_vpc-availability.json +0 -0
  296. {linode_api4-5.46.1 → linode_api4-5.48.0}/test/fixtures/regions_vpc-availability.json +0 -0
  297. {linode_api4-5.46.1 → linode_api4-5.48.0}/test/fixtures/support_tickets_123.json +0 -0
  298. {linode_api4-5.46.1 → linode_api4-5.48.0}/test/fixtures/tags.json +0 -0
  299. {linode_api4-5.46.1 → linode_api4-5.48.0}/test/fixtures/tags_nothing.json +0 -0
  300. {linode_api4-5.46.1 → linode_api4-5.48.0}/test/fixtures/tags_something.json +0 -0
  301. {linode_api4-5.46.1 → linode_api4-5.48.0}/test/fixtures/testmappedobj1.json +0 -0
  302. {linode_api4-5.46.1 → linode_api4-5.48.0}/test/fixtures/volumes.json +0 -0
  303. {linode_api4-5.46.1 → linode_api4-5.48.0}/test/fixtures/volumes_types.json +0 -0
  304. {linode_api4-5.46.1 → linode_api4-5.48.0}/test/fixtures/vpcs_123456_ips.json +0 -0
  305. {linode_api4-5.46.1 → linode_api4-5.48.0}/test/fixtures/vpcs_default-ranges.json +0 -0
  306. {linode_api4-5.46.1 → linode_api4-5.48.0}/test/fixtures/vpcs_ips.json +0 -0
  307. {linode_api4-5.46.1 → linode_api4-5.48.0}/test/integration/__init__.py +0 -0
  308. {linode_api4-5.46.1 → linode_api4-5.48.0}/test/integration/filters/fixtures.py +0 -0
  309. {linode_api4-5.46.1 → linode_api4-5.48.0}/test/integration/filters/model_filters_test.py +0 -0
  310. {linode_api4-5.46.1 → linode_api4-5.48.0}/test/integration/helpers.py +0 -0
  311. {linode_api4-5.46.1 → linode_api4-5.48.0}/test/integration/linode_client/__init__.py +0 -0
  312. {linode_api4-5.46.1 → linode_api4-5.48.0}/test/integration/linode_client/test_errors.py +0 -0
  313. {linode_api4-5.46.1 → linode_api4-5.48.0}/test/integration/linode_client/test_linode_client.py +0 -0
  314. {linode_api4-5.46.1 → linode_api4-5.48.0}/test/integration/linode_client/test_retry.py +0 -0
  315. {linode_api4-5.46.1 → linode_api4-5.48.0}/test/integration/login_client/test_login_client.py +0 -0
  316. {linode_api4-5.46.1 → linode_api4-5.48.0}/test/integration/models/__init__.py +0 -0
  317. {linode_api4-5.46.1 → linode_api4-5.48.0}/test/integration/models/database/helpers.py +0 -0
  318. {linode_api4-5.46.1 → linode_api4-5.48.0}/test/integration/models/database/test_database.py +0 -0
  319. {linode_api4-5.46.1 → linode_api4-5.48.0}/test/integration/models/database/test_database_engine_config.py +0 -0
  320. {linode_api4-5.46.1 → linode_api4-5.48.0}/test/integration/models/domain/test_domain.py +0 -0
  321. {linode_api4-5.46.1 → linode_api4-5.48.0}/test/integration/models/firewall/test_firewall.py +0 -0
  322. {linode_api4-5.46.1 → linode_api4-5.48.0}/test/integration/models/firewall/test_firewall_templates.py +0 -0
  323. {linode_api4-5.46.1 → linode_api4-5.48.0}/test/integration/models/lke/test_lke.py +0 -0
  324. {linode_api4-5.46.1 → linode_api4-5.48.0}/test/integration/models/lock/__init__.py +0 -0
  325. {linode_api4-5.46.1 → linode_api4-5.48.0}/test/integration/models/lock/test_lock.py +0 -0
  326. {linode_api4-5.46.1 → linode_api4-5.48.0}/test/integration/models/longview/test_longview.py +0 -0
  327. {linode_api4-5.46.1 → linode_api4-5.48.0}/test/integration/models/maintenance/test_maintenance.py +0 -0
  328. {linode_api4-5.46.1 → linode_api4-5.48.0}/test/integration/models/monitor/test_monitor.py +0 -0
  329. {linode_api4-5.46.1 → linode_api4-5.48.0}/test/integration/models/monitor/test_monitor_logs.py +0 -0
  330. {linode_api4-5.46.1 → linode_api4-5.48.0}/test/integration/models/monitor_api/test_monitor_api.py +0 -0
  331. {linode_api4-5.46.1 → linode_api4-5.48.0}/test/integration/models/object_storage/test_obj.py +0 -0
  332. {linode_api4-5.46.1 → linode_api4-5.48.0}/test/integration/models/object_storage/test_obj_quotas.py +0 -0
  333. {linode_api4-5.46.1 → linode_api4-5.48.0}/test/integration/models/placement/test_placement.py +0 -0
  334. {linode_api4-5.46.1 → linode_api4-5.48.0}/test/integration/models/profile/test_profile.py +0 -0
  335. {linode_api4-5.46.1 → linode_api4-5.48.0}/test/integration/models/region/test_region.py +0 -0
  336. {linode_api4-5.46.1 → linode_api4-5.48.0}/test/integration/models/tag/test_tag.py +0 -0
  337. {linode_api4-5.46.1 → linode_api4-5.48.0}/test/integration/models/volume/test_blockstorage.py +0 -0
  338. {linode_api4-5.46.1 → linode_api4-5.48.0}/test/integration/models/volume/test_volume.py +0 -0
  339. {linode_api4-5.46.1 → linode_api4-5.48.0}/test/unit/__init__.py +0 -0
  340. {linode_api4-5.46.1 → linode_api4-5.48.0}/test/unit/base.py +0 -0
  341. {linode_api4-5.46.1 → linode_api4-5.48.0}/test/unit/errors_test.py +0 -0
  342. {linode_api4-5.46.1 → linode_api4-5.48.0}/test/unit/fixtures.py +0 -0
  343. {linode_api4-5.46.1 → linode_api4-5.48.0}/test/unit/groups/__init__.py +0 -0
  344. {linode_api4-5.46.1 → linode_api4-5.48.0}/test/unit/groups/database_test.py +0 -0
  345. {linode_api4-5.46.1 → linode_api4-5.48.0}/test/unit/groups/image_share_group_test.py +0 -0
  346. {linode_api4-5.46.1 → linode_api4-5.48.0}/test/unit/groups/image_test.py +0 -0
  347. {linode_api4-5.46.1 → linode_api4-5.48.0}/test/unit/groups/lke_test.py +0 -0
  348. {linode_api4-5.46.1 → linode_api4-5.48.0}/test/unit/groups/lke_tier_test.py +0 -0
  349. {linode_api4-5.46.1 → linode_api4-5.48.0}/test/unit/groups/lock_test.py +0 -0
  350. {linode_api4-5.46.1 → linode_api4-5.48.0}/test/unit/groups/monitor_api_test.py +0 -0
  351. {linode_api4-5.46.1 → linode_api4-5.48.0}/test/unit/groups/networking_test.py +0 -0
  352. {linode_api4-5.46.1 → linode_api4-5.48.0}/test/unit/groups/object_storage_test.py +0 -0
  353. {linode_api4-5.46.1 → linode_api4-5.48.0}/test/unit/groups/placement_test.py +0 -0
  354. {linode_api4-5.46.1 → linode_api4-5.48.0}/test/unit/groups/polling_test.py +0 -0
  355. {linode_api4-5.46.1 → linode_api4-5.48.0}/test/unit/groups/region_test.py +0 -0
  356. {linode_api4-5.46.1 → linode_api4-5.48.0}/test/unit/groups/vpc_test.py +0 -0
  357. {linode_api4-5.46.1 → linode_api4-5.48.0}/test/unit/objects/account_test.py +0 -0
  358. {linode_api4-5.46.1 → linode_api4-5.48.0}/test/unit/objects/base_test.py +0 -0
  359. {linode_api4-5.46.1 → linode_api4-5.48.0}/test/unit/objects/beta_test.py +0 -0
  360. {linode_api4-5.46.1 → linode_api4-5.48.0}/test/unit/objects/database_test.py +0 -0
  361. {linode_api4-5.46.1 → linode_api4-5.48.0}/test/unit/objects/domain_test.py +0 -0
  362. {linode_api4-5.46.1 → linode_api4-5.48.0}/test/unit/objects/firewall_test.py +0 -0
  363. {linode_api4-5.46.1 → linode_api4-5.48.0}/test/unit/objects/image_share_group_test.py +0 -0
  364. {linode_api4-5.46.1 → linode_api4-5.48.0}/test/unit/objects/image_test.py +0 -0
  365. {linode_api4-5.46.1 → linode_api4-5.48.0}/test/unit/objects/lke_test.py +0 -0
  366. {linode_api4-5.46.1 → linode_api4-5.48.0}/test/unit/objects/lock_test.py +0 -0
  367. {linode_api4-5.46.1 → linode_api4-5.48.0}/test/unit/objects/longview_test.py +0 -0
  368. {linode_api4-5.46.1 → linode_api4-5.48.0}/test/unit/objects/mapped_object_test.py +0 -0
  369. {linode_api4-5.46.1 → linode_api4-5.48.0}/test/unit/objects/monitor_test.py +0 -0
  370. {linode_api4-5.46.1 → linode_api4-5.48.0}/test/unit/objects/networking_test.py +0 -0
  371. {linode_api4-5.46.1 → linode_api4-5.48.0}/test/unit/objects/object_storage_test.py +0 -0
  372. {linode_api4-5.46.1 → linode_api4-5.48.0}/test/unit/objects/placement_test.py +0 -0
  373. {linode_api4-5.46.1 → linode_api4-5.48.0}/test/unit/objects/profile_test.py +0 -0
  374. {linode_api4-5.46.1 → linode_api4-5.48.0}/test/unit/objects/property_alias_test.py +0 -0
  375. {linode_api4-5.46.1 → linode_api4-5.48.0}/test/unit/objects/region_test.py +0 -0
  376. {linode_api4-5.46.1 → linode_api4-5.48.0}/test/unit/objects/serializable_test.py +0 -0
  377. {linode_api4-5.46.1 → linode_api4-5.48.0}/test/unit/objects/support_test.py +0 -0
  378. {linode_api4-5.46.1 → linode_api4-5.48.0}/test/unit/objects/tag_test.py +0 -0
  379. {linode_api4-5.46.1 → linode_api4-5.48.0}/test/unit/objects/volume_test.py +0 -0
  380. {linode_api4-5.46.1 → linode_api4-5.48.0}/test/unit/paginated_list_test.py +0 -0
  381. {linode_api4-5.46.1 → linode_api4-5.48.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.46.1
3
+ Version: 5.48.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
@@ -25,29 +25,31 @@ License-File: LICENSE
25
25
  Requires-Dist: requests
26
26
  Requires-Dist: polling
27
27
  Requires-Dist: deprecated
28
- Provides-Extra: test
29
- Requires-Dist: tox>=4.4.0; extra == "test"
30
- Provides-Extra: dev
31
- Requires-Dist: tox>=4.4.0; extra == "dev"
32
- Requires-Dist: mock>=5.0.0; extra == "dev"
33
- Requires-Dist: pytest>=7.3.1; extra == "dev"
34
- Requires-Dist: httpretty>=1.1.4; extra == "dev"
35
- Requires-Dist: black>=23.1.0; extra == "dev"
36
- Requires-Dist: isort>=5.12.0; extra == "dev"
37
- Requires-Dist: autoflake>=2.0.1; extra == "dev"
38
- Requires-Dist: pylint; extra == "dev"
39
- Requires-Dist: twine>=4.0.2; extra == "dev"
40
- Requires-Dist: build>=0.10.0; extra == "dev"
41
- Requires-Dist: Sphinx>=6.0.0; extra == "dev"
42
- Requires-Dist: sphinx-autobuild>=2021.3.14; extra == "dev"
43
- Requires-Dist: sphinxcontrib-fulltoc>=1.2.0; extra == "dev"
44
- Requires-Dist: build>=0.10.0; extra == "dev"
45
- Requires-Dist: twine>=4.0.2; extra == "dev"
46
- Requires-Dist: pytest-rerunfailures; extra == "dev"
28
+ Provides-Extra: test-shared
29
+ Requires-Dist: pytest>=7.3.1; extra == "test-shared"
30
+ Requires-Dist: httpretty>=1.1.4; extra == "test-shared"
31
+ Requires-Dist: pytest-rerunfailures; extra == "test-shared"
32
+ Provides-Extra: unit-test
33
+ Requires-Dist: linode_api4[test-shared]; extra == "unit-test"
34
+ Requires-Dist: mock>=5.0.0; extra == "unit-test"
35
+ Provides-Extra: int-test
36
+ Requires-Dist: linode_api4[test-shared]; extra == "int-test"
37
+ Provides-Extra: lint
38
+ Requires-Dist: black>=23.1.0; extra == "lint"
39
+ Requires-Dist: isort>=5.12.0; extra == "lint"
40
+ Requires-Dist: autoflake>=2.0.1; extra == "lint"
41
+ Requires-Dist: pylint; extra == "lint"
42
+ Requires-Dist: twine>=4.0.2; extra == "lint"
43
+ Requires-Dist: build>=0.10.0; extra == "lint"
47
44
  Provides-Extra: doc
48
45
  Requires-Dist: Sphinx>=6.0.0; extra == "doc"
49
46
  Requires-Dist: sphinx-autobuild>=2021.3.14; extra == "doc"
50
47
  Requires-Dist: sphinxcontrib-fulltoc>=1.2.0; extra == "doc"
48
+ Provides-Extra: dev
49
+ Requires-Dist: linode_api4[unit-test]; extra == "dev"
50
+ Requires-Dist: linode_api4[int-test]; extra == "dev"
51
+ Requires-Dist: linode_api4[lint]; extra == "dev"
52
+ Requires-Dist: linode_api4[doc]; extra == "dev"
51
53
  Dynamic: license-file
52
54
 
53
55
  linode_api4
@@ -154,14 +156,13 @@ Tests
154
156
  -----
155
157
 
156
158
  Tests live in the ``test`` directory. When invoking tests, make sure you are
157
- in the root directory of this project. To run the full suite across all
158
- supported python versions, use tox_:
159
+ in the root directory of this project. Install unit-test dependencies and run
160
+ the mocked unit suite with:
159
161
 
160
162
  .. code-block:: shell
161
163
 
162
- tox
163
-
164
- Running tox also runs pylint and coverage reports.
164
+ python3 -m pip install -e ".[unit-test]"
165
+ make test-unit
165
166
 
166
167
  The test suite uses fixtures stored as JSON in ``test/fixtures``. These files
167
168
  contain sanitized JSON responses from the API - the file name is the URL called
@@ -183,8 +184,6 @@ from the api base url that should be returned, for example::
183
184
  linode = self.client.linode.instance_create('g6-standard-2', 'us-east')
184
185
  self.assertEqual(linode.id, 123) # passes
185
186
 
186
- .. _tox: http://tox.readthedocs.io
187
-
188
187
 
189
188
  Integration Tests
190
189
  -----------------
@@ -102,14 +102,13 @@ Tests
102
102
  -----
103
103
 
104
104
  Tests live in the ``test`` directory. When invoking tests, make sure you are
105
- in the root directory of this project. To run the full suite across all
106
- supported python versions, use tox_:
105
+ in the root directory of this project. Install unit-test dependencies and run
106
+ the mocked unit suite with:
107
107
 
108
108
  .. code-block:: shell
109
109
 
110
- tox
111
-
112
- Running tox also runs pylint and coverage reports.
110
+ python3 -m pip install -e ".[unit-test]"
111
+ make test-unit
113
112
 
114
113
  The test suite uses fixtures stored as JSON in ``test/fixtures``. These files
115
114
  contain sanitized JSON responses from the API - the file name is the URL called
@@ -131,8 +130,6 @@ from the api base url that should be returned, for example::
131
130
  linode = self.client.linode.instance_create('g6-standard-2', 'us-east')
132
131
  self.assertEqual(linode.id, 123) # passes
133
132
 
134
- .. _tox: http://tox.readthedocs.io
135
-
136
133
 
137
134
  Integration Tests
138
135
  -----------------
@@ -35,6 +35,27 @@ class NodeBalancerGroup(Group):
35
35
  :param ipv4: A reserved IPv4 address to assign to this NodeBalancer.
36
36
  NOTE: Reserved IP feature may not currently be available to all users.
37
37
  :type ipv4: str
38
+ :param type: The NodeBalancer type. Supported values include
39
+ ``common``, ``premium``, ``premium_40gb``, and
40
+ ``enterprise``. This cannot be changed after creation.
41
+ NOTE: Creating premium or enterprise NodeBalancers may not
42
+ currently be available to all users.
43
+ :type type: str
44
+ :param backend_connectivity: How this NodeBalancer communicates with
45
+ backends (``legacy``, ``ipv6``, or ``vpc``). If omitted,
46
+ the API infers a value from ``vpcs`` or config nodes, or
47
+ returns ``undefined`` until the first node is added.
48
+ ``undefined`` cannot be sent by clients. This cannot be
49
+ changed after creation.
50
+ NOTE: This field may not currently be available to all users.
51
+ :type backend_connectivity: NodeBalancerBackendConnectivity | str
52
+ :param vpcs: VPC attachments for this NodeBalancer. Required when
53
+ ``backend_connectivity`` is ``vpc``.
54
+ :type vpcs: list[dict]
55
+ :param configs: NodeBalancer configs and optional nodes to create
56
+ with this NodeBalancer. Node addresses must match the
57
+ selected or inferred backend connectivity.
58
+ :type configs: list[dict]
38
59
 
39
60
  :returns: The new NodeBalancer
40
61
  :rtype: NodeBalancer
@@ -11,6 +11,7 @@ from linode_api4.objects import (
11
11
  VPCIPv6RangeOptions,
12
12
  )
13
13
  from linode_api4.objects.base import _flatten_request_body_recursive
14
+ from linode_api4.objects.vpc import VPCType
14
15
  from linode_api4.paginated_list import PaginatedList
15
16
  from linode_api4.util import drop_null_keys
16
17
 
@@ -44,6 +45,7 @@ class VPCGroup(Group):
44
45
  subnets: Optional[List[Dict[str, Any]]] = None,
45
46
  ipv6: Optional[List[Union[VPCIPv6RangeOptions, Dict[str, Any]]]] = None,
46
47
  ipv4: Optional[List[Union[VPCIPv4RangeOptions, Dict[str, Any]]]] = None,
48
+ vpc_type: Optional[Union[VPCType, str]] = None,
47
49
  **kwargs,
48
50
  ) -> VPC:
49
51
  """
@@ -61,6 +63,11 @@ class VPCGroup(Group):
61
63
  :type subnets: List[Dict[str, Any]]
62
64
  :param ipv6: The IPv6 address ranges for this VPC.
63
65
  :type ipv6: List[Union[VPCIPv6RangeOptions, Dict[str, Any]]]
66
+ :param vpc_type: The type of VPC to create. Defaults to ``regular`` on
67
+ the API side. Set to ``rdma`` to create a GPUDirect
68
+ RDMA VPC (requires the ``GPUDirect RDMA`` account
69
+ capability).
70
+ :type vpc_type: Optional[Union[VPCType, str]]
64
71
  :param ipv4: The IPv4 address ranges for this VPC. Note that IPv4 VPCs may not currently be available to all users.
65
72
  :type ipv4: List[Union[VPCIPv4RangeOptions, Dict[str, Any]]]
66
73
 
@@ -74,6 +81,7 @@ class VPCGroup(Group):
74
81
  "ipv4": ipv4,
75
82
  "ipv6": ipv6,
76
83
  "subnets": subnets,
84
+ "vpc_type": vpc_type,
77
85
  }
78
86
 
79
87
  if subnets is not None and len(subnets) > 0:
@@ -30,10 +30,11 @@ class OAuthScopes:
30
30
  Lists of OAuth Scopes are accepted when calling the :any:`generate_login_url`
31
31
  method of the :any:`LinodeLoginClient`.
32
32
 
33
- All contained enumerations of OAuth Scopes have two levels, "read_only" and
33
+ Most contained enumerations of OAuth Scopes have two levels, "read_only" and
34
34
  "read_write". "read_only" access grants you the ability to get resources and
35
35
  of that type, but not to change, create, or delete them. "read_write" access
36
- allows to full access to resources of the requested type. In the above
36
+ allows to full access to resources of the requested type. :any:`OAuthScopes.VPC`
37
+ is the exception and exposes only "read_write" and "all". In the above
37
38
  example, you are requesting access to view, modify, create, and delete
38
39
  Linodes, and to view Domains.
39
40
  """
@@ -254,6 +255,47 @@ class OAuthScopes:
254
255
  return "longview:*"
255
256
  return "longview:{}".format(self.name)
256
257
 
258
+ class Images(Enum):
259
+ """
260
+ Access to Images
261
+ """
262
+
263
+ read_only = 0
264
+ read_write = 1
265
+ all = 2
266
+
267
+ def __repr__(self):
268
+ if self.name == "all":
269
+ return "images:*"
270
+ return "images:{}".format(self.name)
271
+
272
+ class Databases(Enum):
273
+ """
274
+ Access to Managed Databases
275
+ """
276
+
277
+ read_only = 0
278
+ read_write = 1
279
+ all = 2
280
+
281
+ def __repr__(self):
282
+ if self.name == "all":
283
+ return "databases:*"
284
+ return "databases:{}".format(self.name)
285
+
286
+ class VPC(Enum):
287
+ """
288
+ Access to VPCs and subnets
289
+ """
290
+
291
+ read_write = 1
292
+ all = 2
293
+
294
+ def __repr__(self):
295
+ if self.name == "all":
296
+ return "vpc:*"
297
+ return "vpc:{}".format(self.name)
298
+
257
299
  _scope_families = {
258
300
  "linodes": Linodes,
259
301
  "domains": Domains,
@@ -271,6 +313,9 @@ class OAuthScopes:
271
313
  "object_storage": ObjectStorage,
272
314
  "nodebalancers": NodeBalancers,
273
315
  "longview": Longview,
316
+ "images": Images,
317
+ "databases": Databases,
318
+ "vpc": VPC,
274
319
  }
275
320
 
276
321
  @staticmethod
@@ -790,6 +790,42 @@ class UpgradeInterfacesResult(JSONObject):
790
790
  )
791
791
 
792
792
 
793
+ @dataclass
794
+ class InstanceBackupSchedule(JSONObject):
795
+ """
796
+ InstanceBackupSchedule represents when automatic backups of a Linode Instance are taken.
797
+ """
798
+
799
+ include_none_values = True
800
+
801
+ day: Optional[str] = None
802
+ window: Optional[str] = None
803
+
804
+
805
+ @dataclass
806
+ class InstanceBackupsOptions(JSONObject):
807
+ """
808
+ InstanceBackupsOptions is used to update the backup settings of a Linode Instance.
809
+ """
810
+
811
+ enabled: bool = False
812
+ schedule: Optional[InstanceBackupSchedule] = None
813
+
814
+
815
+ @dataclass
816
+ class InstanceBackups(JSONObject):
817
+ """
818
+ InstanceBackups represents the backup settings and status of a Linode Instance.
819
+ """
820
+
821
+ put_class = InstanceBackupsOptions
822
+
823
+ enabled: bool = False
824
+ available: bool = False
825
+ schedule: Optional[InstanceBackupSchedule] = None
826
+ last_successful: Optional[str] = None
827
+
828
+
793
829
  class Instance(Base):
794
830
  """
795
831
  A Linode Instance.
@@ -811,7 +847,7 @@ class Instance(Base):
811
847
  "disks": Property(derived_class=Disk),
812
848
  "configs": Property(derived_class=Config),
813
849
  "type": Property(slug_relationship=Type),
814
- "backups": Property(mutable=True),
850
+ "backups": Property(mutable=True, json_object=InstanceBackups),
815
851
  "ipv4": Property(unordered=True),
816
852
  "ipv6": Property(),
817
853
  "hypervisor": Property(),
@@ -2115,10 +2151,22 @@ class Instance(Base):
2115
2151
  :param vpc: The VPC-specific configuration of the new interface.
2116
2152
  If set, the new instance will be a VPC interface.
2117
2153
 
2154
+ .. note::
2155
+ RDMA VPC interfaces (``rdma_vpc``) cannot be added via this
2156
+ endpoint. They may only be specified at instance creation time via
2157
+ :func:`linode_api4.LinodeGroup.instance_create`.
2158
+
2118
2159
  :returns: The newly created Linode Interface.
2119
2160
  :rtype: LinodeInterface
2120
2161
  """
2121
2162
 
2163
+ if kwargs.get("rdma_vpc") is not None:
2164
+ raise ValueError(
2165
+ "RDMA VPC interfaces (rdma_vpc) cannot be added via "
2166
+ "interface_create(). They may only be specified at instance "
2167
+ "creation time via LinodeGroup.instance_create()."
2168
+ )
2169
+
2122
2170
  params = {
2123
2171
  "firewall_id": firewall,
2124
2172
  "default_route": default_route,
@@ -187,6 +187,47 @@ class LinodeInterfaceVLANOptions(JSONObject):
187
187
  ipam_address: Optional[str] = None
188
188
 
189
189
 
190
+ @dataclass
191
+ class LinodeInterfaceRDMAVPCIPv4AddressOptions(JSONObject):
192
+ """
193
+ Options accepted for a single address when creating or updating the IPv4
194
+ configuration of an RDMA VPC Linode Interface.
195
+
196
+ Only one address is supported per RDMA VPC interface, and it must be
197
+ marked as primary.
198
+ """
199
+
200
+ address: Optional[str] = None
201
+ primary: Optional[bool] = None
202
+
203
+
204
+ @dataclass
205
+ class LinodeInterfaceRDMAVPCIPv4Options(JSONObject):
206
+ """
207
+ Options accepted when creating or updating the IPv4 configuration of an
208
+ RDMA VPC Linode Interface.
209
+
210
+ The ``addresses`` list MUST contain exactly one element. If omitted, the
211
+ API defaults to a single primary ``auto`` address.
212
+ """
213
+
214
+ addresses: Optional[List[LinodeInterfaceRDMAVPCIPv4AddressOptions]] = None
215
+
216
+
217
+ @dataclass
218
+ class LinodeInterfaceRDMAVPCOptions(JSONObject):
219
+ """
220
+ RDMA-VPC-exclusive options accepted when creating or updating a Linode
221
+ Interface.
222
+
223
+ Used for GPUDirect RDMA interfaces. Default routes and NAT 1:1 addresses
224
+ are not supported on RDMA VPC interfaces.
225
+ """
226
+
227
+ subnet_id: int = 0
228
+ ipv4: Optional[LinodeInterfaceRDMAVPCIPv4Options] = None
229
+
230
+
190
231
  @dataclass
191
232
  class LinodeInterfaceOptions(JSONObject):
192
233
  """
@@ -204,6 +245,7 @@ class LinodeInterfaceOptions(JSONObject):
204
245
  vpc: Optional[LinodeInterfaceVPCOptions] = None
205
246
  public: Optional[LinodeInterfacePublicOptions] = None
206
247
  vlan: Optional[LinodeInterfaceVLANOptions] = None
248
+ rdma_vpc: Optional[LinodeInterfaceRDMAVPCOptions] = None
207
249
 
208
250
 
209
251
  # Interface GET Response
@@ -409,6 +451,45 @@ class LinodeInterfaceVLAN(JSONObject):
409
451
  ipam_address: Optional[str] = None
410
452
 
411
453
 
454
+ @dataclass
455
+ class LinodeInterfaceRDMAVPCIPv4Address(JSONObject):
456
+ """
457
+ A single address under the IPv4 configuration of an RDMA VPC Linode Interface.
458
+ """
459
+
460
+ put_class = LinodeInterfaceRDMAVPCIPv4AddressOptions
461
+
462
+ address: str = ""
463
+ primary: bool = False
464
+
465
+
466
+ @dataclass
467
+ class LinodeInterfaceRDMAVPCIPv4(JSONObject):
468
+ """
469
+ The IPv4 configuration of an RDMA VPC Linode Interface.
470
+ """
471
+
472
+ put_class = LinodeInterfaceRDMAVPCIPv4Options
473
+
474
+ addresses: List[LinodeInterfaceRDMAVPCIPv4Address] = field(
475
+ default_factory=list
476
+ )
477
+
478
+
479
+ @dataclass
480
+ class LinodeInterfaceRDMAVPC(JSONObject):
481
+ """
482
+ RDMA VPC-specific configuration field for a Linode Interface.
483
+ """
484
+
485
+ put_class = LinodeInterfaceRDMAVPCOptions
486
+
487
+ vpc_id: int = 0
488
+ subnet_id: int = 0
489
+
490
+ ipv4: Optional[LinodeInterfaceRDMAVPCIPv4] = None
491
+
492
+
412
493
  class LinodeInterface(DerivedBase):
413
494
  """
414
495
  A Linode's network interface.
@@ -449,6 +530,7 @@ class LinodeInterface(DerivedBase):
449
530
  "public": Property(mutable=True, json_object=LinodeInterfacePublic),
450
531
  "vlan": Property(mutable=True, json_object=LinodeInterfaceVLAN),
451
532
  "vpc": Property(mutable=True, json_object=LinodeInterfaceVPC),
533
+ "rdma_vpc": Property(mutable=True, json_object=LinodeInterfaceRDMAVPC),
452
534
  }
453
535
 
454
536
  def firewalls(self, *filters) -> List[Firewall]:
@@ -7,6 +7,16 @@ from linode_api4.objects.base import Base, MappedObject, Property
7
7
  from linode_api4.objects.dbase import DerivedBase
8
8
  from linode_api4.objects.networking import Firewall, IPAddress
9
9
  from linode_api4.objects.region import Region
10
+ from linode_api4.objects.serializable import StrEnum
11
+
12
+
13
+ class NodeBalancerBackendConnectivity(StrEnum):
14
+ """Backend connectivity modes accepted when creating a NodeBalancer."""
15
+
16
+ IPV6 = "ipv6"
17
+ LEGACY = "legacy"
18
+ UNDEFINED = "undefined"
19
+ VPC = "vpc"
10
20
 
11
21
 
12
22
  class NodeBalancerType(Base):
@@ -162,8 +172,10 @@ class NodeBalancerConfig(DerivedBase):
162
172
 
163
173
  API documentation: https://techdocs.akamai.com/linode-api/reference/post-node-balancer-node
164
174
 
165
- :param address: The private IP Address where this backend can be reached.
166
- This must be a private IP address.
175
+ :param address: The address and port where this backend can be reached.
176
+ The address may be a private IPv4 address, a public
177
+ IPv6 address, or a VPC address. The address type must
178
+ match this NodeBalancer's ``backend_connectivity``.
167
179
  :type address: str
168
180
 
169
181
  :param label: The label for this node. This is for display purposes only.
@@ -255,6 +267,9 @@ class NodeBalancer(Base):
255
267
  "tags": Property(mutable=True, unordered=True),
256
268
  "client_udp_sess_throttle": Property(mutable=True),
257
269
  "locks": Property(unordered=True),
270
+ "type": Property(),
271
+ "backend_connectivity": Property(),
272
+ "backend_ipv6_prefix": Property(),
258
273
  }
259
274
 
260
275
  # create derived objects
@@ -67,6 +67,7 @@ class Capability(StrEnum):
67
67
  ruleset = "Cloud Firewall Rule Set"
68
68
  prefixlists = "Cloud Firewall Prefix Lists"
69
69
  current_prefixlists = "Cloud Firewall Prefix List Current References"
70
+ gpudirect_rdma = "GPUDirect RDMA"
70
71
 
71
72
 
72
73
  @dataclass
@@ -5,11 +5,20 @@ from linode_api4.errors import UnexpectedResponseError
5
5
  from linode_api4.objects import Base, DerivedBase, Property, Region
6
6
  from linode_api4.objects.base import _flatten_request_body_recursive
7
7
  from linode_api4.objects.networking import VPCIPAddress
8
- from linode_api4.objects.serializable import JSONObject
8
+ from linode_api4.objects.serializable import JSONObject, StrEnum
9
9
  from linode_api4.paginated_list import PaginatedList
10
10
  from linode_api4.util import drop_null_keys
11
11
 
12
12
 
13
+ class VPCType(StrEnum):
14
+ """
15
+ VPCType represents the supported VPC types.
16
+ """
17
+
18
+ regular = "regular"
19
+ rdma = "rdma"
20
+
21
+
13
22
  @dataclass
14
23
  class VPCIPv4DefaultRange(JSONObject):
15
24
  """
@@ -119,6 +128,7 @@ class VPCSubnet(DerivedBase):
119
128
  "ipv6": Property(json_object=VPCSubnetIPv6Range, unordered=True),
120
129
  "linodes": Property(json_object=VPCSubnetLinode, unordered=True),
121
130
  "databases": Property(json_object=VPCSubnetDatabase, unordered=True),
131
+ "vpc_type": Property(),
122
132
  "created": Property(is_datetime=True),
123
133
  "updated": Property(is_datetime=True),
124
134
  }
@@ -144,6 +154,7 @@ class VPC(Base):
144
154
  ),
145
155
  "ipv6": Property(json_object=VPCIPv6Range, unordered=True),
146
156
  "subnets": Property(derived_class=VPCSubnet),
157
+ "vpc_type": Property(),
147
158
  "created": Property(is_datetime=True),
148
159
  "updated": Property(is_datetime=True),
149
160
  }
@@ -2,4 +2,4 @@
2
2
  The version of this linode_api4 package.
3
3
  """
4
4
 
5
- __version__ = "v5.46.1"
5
+ __version__ = "v5.48.0"
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: linode_api4
3
- Version: 5.46.1
3
+ Version: 5.48.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
@@ -25,29 +25,31 @@ License-File: LICENSE
25
25
  Requires-Dist: requests
26
26
  Requires-Dist: polling
27
27
  Requires-Dist: deprecated
28
- Provides-Extra: test
29
- Requires-Dist: tox>=4.4.0; extra == "test"
30
- Provides-Extra: dev
31
- Requires-Dist: tox>=4.4.0; extra == "dev"
32
- Requires-Dist: mock>=5.0.0; extra == "dev"
33
- Requires-Dist: pytest>=7.3.1; extra == "dev"
34
- Requires-Dist: httpretty>=1.1.4; extra == "dev"
35
- Requires-Dist: black>=23.1.0; extra == "dev"
36
- Requires-Dist: isort>=5.12.0; extra == "dev"
37
- Requires-Dist: autoflake>=2.0.1; extra == "dev"
38
- Requires-Dist: pylint; extra == "dev"
39
- Requires-Dist: twine>=4.0.2; extra == "dev"
40
- Requires-Dist: build>=0.10.0; extra == "dev"
41
- Requires-Dist: Sphinx>=6.0.0; extra == "dev"
42
- Requires-Dist: sphinx-autobuild>=2021.3.14; extra == "dev"
43
- Requires-Dist: sphinxcontrib-fulltoc>=1.2.0; extra == "dev"
44
- Requires-Dist: build>=0.10.0; extra == "dev"
45
- Requires-Dist: twine>=4.0.2; extra == "dev"
46
- Requires-Dist: pytest-rerunfailures; extra == "dev"
28
+ Provides-Extra: test-shared
29
+ Requires-Dist: pytest>=7.3.1; extra == "test-shared"
30
+ Requires-Dist: httpretty>=1.1.4; extra == "test-shared"
31
+ Requires-Dist: pytest-rerunfailures; extra == "test-shared"
32
+ Provides-Extra: unit-test
33
+ Requires-Dist: linode_api4[test-shared]; extra == "unit-test"
34
+ Requires-Dist: mock>=5.0.0; extra == "unit-test"
35
+ Provides-Extra: int-test
36
+ Requires-Dist: linode_api4[test-shared]; extra == "int-test"
37
+ Provides-Extra: lint
38
+ Requires-Dist: black>=23.1.0; extra == "lint"
39
+ Requires-Dist: isort>=5.12.0; extra == "lint"
40
+ Requires-Dist: autoflake>=2.0.1; extra == "lint"
41
+ Requires-Dist: pylint; extra == "lint"
42
+ Requires-Dist: twine>=4.0.2; extra == "lint"
43
+ Requires-Dist: build>=0.10.0; extra == "lint"
47
44
  Provides-Extra: doc
48
45
  Requires-Dist: Sphinx>=6.0.0; extra == "doc"
49
46
  Requires-Dist: sphinx-autobuild>=2021.3.14; extra == "doc"
50
47
  Requires-Dist: sphinxcontrib-fulltoc>=1.2.0; extra == "doc"
48
+ Provides-Extra: dev
49
+ Requires-Dist: linode_api4[unit-test]; extra == "dev"
50
+ Requires-Dist: linode_api4[int-test]; extra == "dev"
51
+ Requires-Dist: linode_api4[lint]; extra == "dev"
52
+ Requires-Dist: linode_api4[doc]; extra == "dev"
51
53
  Dynamic: license-file
52
54
 
53
55
  linode_api4
@@ -154,14 +156,13 @@ Tests
154
156
  -----
155
157
 
156
158
  Tests live in the ``test`` directory. When invoking tests, make sure you are
157
- in the root directory of this project. To run the full suite across all
158
- supported python versions, use tox_:
159
+ in the root directory of this project. Install unit-test dependencies and run
160
+ the mocked unit suite with:
159
161
 
160
162
  .. code-block:: shell
161
163
 
162
- tox
163
-
164
- Running tox also runs pylint and coverage reports.
164
+ python3 -m pip install -e ".[unit-test]"
165
+ make test-unit
165
166
 
166
167
  The test suite uses fixtures stored as JSON in ``test/fixtures``. These files
167
168
  contain sanitized JSON responses from the API - the file name is the URL called
@@ -183,8 +184,6 @@ from the api base url that should be returned, for example::
183
184
  linode = self.client.linode.instance_create('g6-standard-2', 'us-east')
184
185
  self.assertEqual(linode.id, 123) # passes
185
186
 
186
- .. _tox: http://tox.readthedocs.io
187
-
188
187
 
189
188
  Integration Tests
190
189
  -----------------
@@ -165,6 +165,7 @@ test/fixtures/linode_instances_124_interfaces_123.json
165
165
  test/fixtures/linode_instances_124_interfaces_123_firewalls.json
166
166
  test/fixtures/linode_instances_124_interfaces_456.json
167
167
  test/fixtures/linode_instances_124_interfaces_789.json
168
+ test/fixtures/linode_instances_124_interfaces_999.json
168
169
  test/fixtures/linode_instances_124_interfaces_settings.json
169
170
  test/fixtures/linode_instances_124_upgrade-interfaces.json
170
171
  test/fixtures/linode_stackscripts_10079.json
@@ -3,25 +3,32 @@ polling
3
3
  deprecated
4
4
 
5
5
  [dev]
6
- tox>=4.4.0
7
- mock>=5.0.0
8
- pytest>=7.3.1
9
- httpretty>=1.1.4
6
+ linode_api4[unit-test]
7
+ linode_api4[int-test]
8
+ linode_api4[lint]
9
+ linode_api4[doc]
10
+
11
+ [doc]
12
+ Sphinx>=6.0.0
13
+ sphinx-autobuild>=2021.3.14
14
+ sphinxcontrib-fulltoc>=1.2.0
15
+
16
+ [int-test]
17
+ linode_api4[test-shared]
18
+
19
+ [lint]
10
20
  black>=23.1.0
11
21
  isort>=5.12.0
12
22
  autoflake>=2.0.1
13
23
  pylint
14
24
  twine>=4.0.2
15
25
  build>=0.10.0
16
- Sphinx>=6.0.0
17
- sphinx-autobuild>=2021.3.14
18
- sphinxcontrib-fulltoc>=1.2.0
19
- pytest-rerunfailures
20
26
 
21
- [doc]
22
- Sphinx>=6.0.0
23
- sphinx-autobuild>=2021.3.14
24
- sphinxcontrib-fulltoc>=1.2.0
27
+ [test-shared]
28
+ pytest>=7.3.1
29
+ httpretty>=1.1.4
30
+ pytest-rerunfailures
25
31
 
26
- [test]
27
- tox>=4.4.0
32
+ [unit-test]
33
+ linode_api4[test-shared]
34
+ mock>=5.0.0