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.
- {linode_api4-5.46.1/linode_api4.egg-info → linode_api4-5.48.0}/PKG-INFO +26 -27
- {linode_api4-5.46.1 → linode_api4-5.48.0}/README.rst +4 -7
- {linode_api4-5.46.1 → linode_api4-5.48.0}/linode_api4/groups/nodebalancer.py +21 -0
- {linode_api4-5.46.1 → linode_api4-5.48.0}/linode_api4/groups/vpc.py +8 -0
- {linode_api4-5.46.1 → linode_api4-5.48.0}/linode_api4/login_client.py +47 -2
- {linode_api4-5.46.1 → linode_api4-5.48.0}/linode_api4/objects/linode.py +49 -1
- {linode_api4-5.46.1 → linode_api4-5.48.0}/linode_api4/objects/linode_interfaces.py +82 -0
- {linode_api4-5.46.1 → linode_api4-5.48.0}/linode_api4/objects/nodebalancer.py +17 -2
- {linode_api4-5.46.1 → linode_api4-5.48.0}/linode_api4/objects/region.py +1 -0
- {linode_api4-5.46.1 → linode_api4-5.48.0}/linode_api4/objects/vpc.py +12 -1
- {linode_api4-5.46.1 → linode_api4-5.48.0}/linode_api4/version.py +1 -1
- {linode_api4-5.46.1 → linode_api4-5.48.0/linode_api4.egg-info}/PKG-INFO +26 -27
- {linode_api4-5.46.1 → linode_api4-5.48.0}/linode_api4.egg-info/SOURCES.txt +1 -0
- {linode_api4-5.46.1 → linode_api4-5.48.0}/linode_api4.egg-info/requires.txt +21 -14
- {linode_api4-5.46.1 → linode_api4-5.48.0}/pyproject.toml +17 -12
- {linode_api4-5.46.1 → linode_api4-5.48.0}/test/fixtures/linode_instances.json +2 -0
- {linode_api4-5.46.1 → linode_api4-5.48.0}/test/fixtures/linode_instances_123_nodebalancers.json +3 -0
- linode_api4-5.48.0/test/fixtures/linode_instances_124_interfaces_999.json +27 -0
- {linode_api4-5.46.1 → linode_api4-5.48.0}/test/fixtures/nodebalancers.json +8 -2
- {linode_api4-5.46.1 → linode_api4-5.48.0}/test/fixtures/nodebalancers_123456.json +5 -2
- {linode_api4-5.46.1 → linode_api4-5.48.0}/test/fixtures/vpcs.json +1 -0
- {linode_api4-5.46.1 → linode_api4-5.48.0}/test/fixtures/vpcs_123456.json +1 -0
- {linode_api4-5.46.1 → linode_api4-5.48.0}/test/fixtures/vpcs_123456_subnets.json +1 -0
- {linode_api4-5.46.1 → linode_api4-5.48.0}/test/fixtures/vpcs_123456_subnets_789.json +1 -0
- {linode_api4-5.46.1 → linode_api4-5.48.0}/test/integration/conftest.py +38 -2
- {linode_api4-5.46.1 → linode_api4-5.48.0}/test/integration/models/account/test_account.py +7 -2
- {linode_api4-5.46.1 → linode_api4-5.48.0}/test/integration/models/image/test_image.py +1 -3
- {linode_api4-5.46.1 → linode_api4-5.48.0}/test/integration/models/linode/interfaces/test_interfaces.py +122 -1
- {linode_api4-5.46.1 → linode_api4-5.48.0}/test/integration/models/linode/test_linode.py +70 -39
- {linode_api4-5.46.1 → linode_api4-5.48.0}/test/integration/models/networking/test_networking.py +2 -2
- {linode_api4-5.46.1 → linode_api4-5.48.0}/test/integration/models/nodebalancer/test_nodebalancer.py +7 -0
- {linode_api4-5.46.1 → linode_api4-5.48.0}/test/integration/models/sharegroups/test_sharegroups.py +5 -3
- {linode_api4-5.46.1 → linode_api4-5.48.0}/test/integration/models/vpc/test_vpc.py +31 -0
- {linode_api4-5.46.1 → linode_api4-5.48.0}/test/unit/groups/linode_test.py +35 -0
- {linode_api4-5.46.1 → linode_api4-5.48.0}/test/unit/linode_client_test.py +79 -0
- {linode_api4-5.46.1 → linode_api4-5.48.0}/test/unit/login_client_test.py +18 -0
- {linode_api4-5.46.1 → linode_api4-5.48.0}/test/unit/objects/linode_interface_test.py +86 -0
- {linode_api4-5.46.1 → linode_api4-5.48.0}/test/unit/objects/linode_test.py +42 -0
- {linode_api4-5.46.1 → linode_api4-5.48.0}/test/unit/objects/nodebalancers_test.py +86 -0
- {linode_api4-5.46.1 → linode_api4-5.48.0}/test/unit/objects/vpc_test.py +41 -0
- {linode_api4-5.46.1 → linode_api4-5.48.0}/LICENSE +0 -0
- {linode_api4-5.46.1 → linode_api4-5.48.0}/MANIFEST.in +0 -0
- {linode_api4-5.46.1 → linode_api4-5.48.0}/examples/install-on-linode/app.py +0 -0
- {linode_api4-5.46.1 → linode_api4-5.48.0}/examples/install-on-linode/make_stackscript.py +0 -0
- {linode_api4-5.46.1 → linode_api4-5.48.0}/linode_api4/__init__.py +0 -0
- {linode_api4-5.46.1 → linode_api4-5.48.0}/linode_api4/common.py +0 -0
- {linode_api4-5.46.1 → linode_api4-5.48.0}/linode_api4/errors.py +0 -0
- {linode_api4-5.46.1 → linode_api4-5.48.0}/linode_api4/groups/__init__.py +0 -0
- {linode_api4-5.46.1 → linode_api4-5.48.0}/linode_api4/groups/account.py +0 -0
- {linode_api4-5.46.1 → linode_api4-5.48.0}/linode_api4/groups/beta.py +0 -0
- {linode_api4-5.46.1 → linode_api4-5.48.0}/linode_api4/groups/database.py +0 -0
- {linode_api4-5.46.1 → linode_api4-5.48.0}/linode_api4/groups/domain.py +0 -0
- {linode_api4-5.46.1 → linode_api4-5.48.0}/linode_api4/groups/group.py +0 -0
- {linode_api4-5.46.1 → linode_api4-5.48.0}/linode_api4/groups/image.py +0 -0
- {linode_api4-5.46.1 → linode_api4-5.48.0}/linode_api4/groups/image_share_group.py +0 -0
- {linode_api4-5.46.1 → linode_api4-5.48.0}/linode_api4/groups/linode.py +0 -0
- {linode_api4-5.46.1 → linode_api4-5.48.0}/linode_api4/groups/lke.py +0 -0
- {linode_api4-5.46.1 → linode_api4-5.48.0}/linode_api4/groups/lke_tier.py +0 -0
- {linode_api4-5.46.1 → linode_api4-5.48.0}/linode_api4/groups/lock.py +0 -0
- {linode_api4-5.46.1 → linode_api4-5.48.0}/linode_api4/groups/longview.py +0 -0
- {linode_api4-5.46.1 → linode_api4-5.48.0}/linode_api4/groups/maintenance.py +0 -0
- {linode_api4-5.46.1 → linode_api4-5.48.0}/linode_api4/groups/monitor.py +0 -0
- {linode_api4-5.46.1 → linode_api4-5.48.0}/linode_api4/groups/monitor_api.py +0 -0
- {linode_api4-5.46.1 → linode_api4-5.48.0}/linode_api4/groups/networking.py +0 -0
- {linode_api4-5.46.1 → linode_api4-5.48.0}/linode_api4/groups/object_storage.py +0 -0
- {linode_api4-5.46.1 → linode_api4-5.48.0}/linode_api4/groups/placement.py +0 -0
- {linode_api4-5.46.1 → linode_api4-5.48.0}/linode_api4/groups/polling.py +0 -0
- {linode_api4-5.46.1 → linode_api4-5.48.0}/linode_api4/groups/profile.py +0 -0
- {linode_api4-5.46.1 → linode_api4-5.48.0}/linode_api4/groups/region.py +0 -0
- {linode_api4-5.46.1 → linode_api4-5.48.0}/linode_api4/groups/support.py +0 -0
- {linode_api4-5.46.1 → linode_api4-5.48.0}/linode_api4/groups/tag.py +0 -0
- {linode_api4-5.46.1 → linode_api4-5.48.0}/linode_api4/groups/volume.py +0 -0
- {linode_api4-5.46.1 → linode_api4-5.48.0}/linode_api4/linode_client.py +0 -0
- {linode_api4-5.46.1 → linode_api4-5.48.0}/linode_api4/objects/__init__.py +0 -0
- {linode_api4-5.46.1 → linode_api4-5.48.0}/linode_api4/objects/account.py +0 -0
- {linode_api4-5.46.1 → linode_api4-5.48.0}/linode_api4/objects/base.py +0 -0
- {linode_api4-5.46.1 → linode_api4-5.48.0}/linode_api4/objects/beta.py +0 -0
- {linode_api4-5.46.1 → linode_api4-5.48.0}/linode_api4/objects/database.py +0 -0
- {linode_api4-5.46.1 → linode_api4-5.48.0}/linode_api4/objects/dbase.py +0 -0
- {linode_api4-5.46.1 → linode_api4-5.48.0}/linode_api4/objects/domain.py +0 -0
- {linode_api4-5.46.1 → linode_api4-5.48.0}/linode_api4/objects/filtering.py +0 -0
- {linode_api4-5.46.1 → linode_api4-5.48.0}/linode_api4/objects/image.py +0 -0
- {linode_api4-5.46.1 → linode_api4-5.48.0}/linode_api4/objects/image_share_group.py +0 -0
- {linode_api4-5.46.1 → linode_api4-5.48.0}/linode_api4/objects/lke.py +0 -0
- {linode_api4-5.46.1 → linode_api4-5.48.0}/linode_api4/objects/lock.py +0 -0
- {linode_api4-5.46.1 → linode_api4-5.48.0}/linode_api4/objects/longview.py +0 -0
- {linode_api4-5.46.1 → linode_api4-5.48.0}/linode_api4/objects/monitor.py +0 -0
- {linode_api4-5.46.1 → linode_api4-5.48.0}/linode_api4/objects/monitor_api.py +0 -0
- {linode_api4-5.46.1 → linode_api4-5.48.0}/linode_api4/objects/networking.py +0 -0
- {linode_api4-5.46.1 → linode_api4-5.48.0}/linode_api4/objects/object_storage.py +0 -0
- {linode_api4-5.46.1 → linode_api4-5.48.0}/linode_api4/objects/placement.py +0 -0
- {linode_api4-5.46.1 → linode_api4-5.48.0}/linode_api4/objects/profile.py +0 -0
- {linode_api4-5.46.1 → linode_api4-5.48.0}/linode_api4/objects/serializable.py +0 -0
- {linode_api4-5.46.1 → linode_api4-5.48.0}/linode_api4/objects/support.py +0 -0
- {linode_api4-5.46.1 → linode_api4-5.48.0}/linode_api4/objects/tag.py +0 -0
- {linode_api4-5.46.1 → linode_api4-5.48.0}/linode_api4/objects/volume.py +0 -0
- {linode_api4-5.46.1 → linode_api4-5.48.0}/linode_api4/paginated_list.py +0 -0
- {linode_api4-5.46.1 → linode_api4-5.48.0}/linode_api4/polling.py +0 -0
- {linode_api4-5.46.1 → linode_api4-5.48.0}/linode_api4/util.py +0 -0
- {linode_api4-5.46.1 → linode_api4-5.48.0}/linode_api4.egg-info/dependency_links.txt +0 -0
- {linode_api4-5.46.1 → linode_api4-5.48.0}/linode_api4.egg-info/top_level.txt +0 -0
- {linode_api4-5.46.1 → linode_api4-5.48.0}/setup.cfg +0 -0
- {linode_api4-5.46.1 → linode_api4-5.48.0}/setup.py +0 -0
- {linode_api4-5.46.1 → linode_api4-5.48.0}/test/__init__.py +0 -0
- {linode_api4-5.46.1 → linode_api4-5.48.0}/test/fixtures/account.json +0 -0
- {linode_api4-5.46.1 → linode_api4-5.48.0}/test/fixtures/account_availability.json +0 -0
- {linode_api4-5.46.1 → linode_api4-5.48.0}/test/fixtures/account_availability_us-east.json +0 -0
- {linode_api4-5.46.1 → linode_api4-5.48.0}/test/fixtures/account_betas.json +0 -0
- {linode_api4-5.46.1 → linode_api4-5.48.0}/test/fixtures/account_betas_cool.json +0 -0
- {linode_api4-5.46.1 → linode_api4-5.48.0}/test/fixtures/account_child-accounts.json +0 -0
- {linode_api4-5.46.1 → linode_api4-5.48.0}/test/fixtures/account_child-accounts_123456.json +0 -0
- {linode_api4-5.46.1 → linode_api4-5.48.0}/test/fixtures/account_child-accounts_123456_token.json +0 -0
- {linode_api4-5.46.1 → linode_api4-5.48.0}/test/fixtures/account_events_123.json +0 -0
- {linode_api4-5.46.1 → linode_api4-5.48.0}/test/fixtures/account_invoices.json +0 -0
- {linode_api4-5.46.1 → linode_api4-5.48.0}/test/fixtures/account_invoices_123.json +0 -0
- {linode_api4-5.46.1 → linode_api4-5.48.0}/test/fixtures/account_invoices_123456_items.json +0 -0
- {linode_api4-5.46.1 → linode_api4-5.48.0}/test/fixtures/account_logins.json +0 -0
- {linode_api4-5.46.1 → linode_api4-5.48.0}/test/fixtures/account_logins_123.json +0 -0
- {linode_api4-5.46.1 → linode_api4-5.48.0}/test/fixtures/account_maintenance.json +0 -0
- {linode_api4-5.46.1 → linode_api4-5.48.0}/test/fixtures/account_notifications.json +0 -0
- {linode_api4-5.46.1 → linode_api4-5.48.0}/test/fixtures/account_oauth-clients_2737bf16b39ab5d7b4a1.json +0 -0
- {linode_api4-5.46.1 → linode_api4-5.48.0}/test/fixtures/account_payment-method_123.json +0 -0
- {linode_api4-5.46.1 → linode_api4-5.48.0}/test/fixtures/account_payment-methods.json +0 -0
- {linode_api4-5.46.1 → linode_api4-5.48.0}/test/fixtures/account_payments.json +0 -0
- {linode_api4-5.46.1 → linode_api4-5.48.0}/test/fixtures/account_promo-codes.json +0 -0
- {linode_api4-5.46.1 → linode_api4-5.48.0}/test/fixtures/account_service-transfers.json +0 -0
- {linode_api4-5.46.1 → linode_api4-5.48.0}/test/fixtures/account_service-transfers_12345.json +0 -0
- {linode_api4-5.46.1 → linode_api4-5.48.0}/test/fixtures/account_settings.json +0 -0
- {linode_api4-5.46.1 → linode_api4-5.48.0}/test/fixtures/account_transfer.json +0 -0
- {linode_api4-5.46.1 → linode_api4-5.48.0}/test/fixtures/account_users_test-user.json +0 -0
- {linode_api4-5.46.1 → linode_api4-5.48.0}/test/fixtures/betas.json +0 -0
- {linode_api4-5.46.1 → linode_api4-5.48.0}/test/fixtures/betas_active.json +0 -0
- {linode_api4-5.46.1 → linode_api4-5.48.0}/test/fixtures/databases_engines.json +0 -0
- {linode_api4-5.46.1 → linode_api4-5.48.0}/test/fixtures/databases_instances.json +0 -0
- {linode_api4-5.46.1 → linode_api4-5.48.0}/test/fixtures/databases_mysql_config.json +0 -0
- {linode_api4-5.46.1 → linode_api4-5.48.0}/test/fixtures/databases_mysql_instances.json +0 -0
- {linode_api4-5.46.1 → linode_api4-5.48.0}/test/fixtures/databases_mysql_instances_123_credentials.json +0 -0
- {linode_api4-5.46.1 → linode_api4-5.48.0}/test/fixtures/databases_mysql_instances_123_credentials_reset.json +0 -0
- {linode_api4-5.46.1 → linode_api4-5.48.0}/test/fixtures/databases_mysql_instances_123_patch.json +0 -0
- {linode_api4-5.46.1 → linode_api4-5.48.0}/test/fixtures/databases_mysql_instances_123_resume.json +0 -0
- {linode_api4-5.46.1 → linode_api4-5.48.0}/test/fixtures/databases_mysql_instances_123_ssl.json +0 -0
- {linode_api4-5.46.1 → linode_api4-5.48.0}/test/fixtures/databases_mysql_instances_123_suspend.json +0 -0
- {linode_api4-5.46.1 → linode_api4-5.48.0}/test/fixtures/databases_postgresql_config.json +0 -0
- {linode_api4-5.46.1 → linode_api4-5.48.0}/test/fixtures/databases_postgresql_instances.json +0 -0
- {linode_api4-5.46.1 → linode_api4-5.48.0}/test/fixtures/databases_postgresql_instances_123_credentials.json +0 -0
- {linode_api4-5.46.1 → linode_api4-5.48.0}/test/fixtures/databases_postgresql_instances_123_credentials_reset.json +0 -0
- {linode_api4-5.46.1 → linode_api4-5.48.0}/test/fixtures/databases_postgresql_instances_123_patch.json +0 -0
- {linode_api4-5.46.1 → linode_api4-5.48.0}/test/fixtures/databases_postgresql_instances_123_resume.json +0 -0
- {linode_api4-5.46.1 → linode_api4-5.48.0}/test/fixtures/databases_postgresql_instances_123_ssl.json +0 -0
- {linode_api4-5.46.1 → linode_api4-5.48.0}/test/fixtures/databases_postgresql_instances_123_suspend.json +0 -0
- {linode_api4-5.46.1 → linode_api4-5.48.0}/test/fixtures/databases_types.json +0 -0
- {linode_api4-5.46.1 → linode_api4-5.48.0}/test/fixtures/domains.json +0 -0
- {linode_api4-5.46.1 → linode_api4-5.48.0}/test/fixtures/domains_12345_clone.json +0 -0
- {linode_api4-5.46.1 → linode_api4-5.48.0}/test/fixtures/domains_12345_records.json +0 -0
- {linode_api4-5.46.1 → linode_api4-5.48.0}/test/fixtures/domains_12345_zone-file.json +0 -0
- {linode_api4-5.46.1 → linode_api4-5.48.0}/test/fixtures/domains_import.json +0 -0
- {linode_api4-5.46.1 → linode_api4-5.48.0}/test/fixtures/images.json +0 -0
- {linode_api4-5.46.1 → linode_api4-5.48.0}/test/fixtures/images_private_1234_sharegroups.json +0 -0
- {linode_api4-5.46.1 → linode_api4-5.48.0}/test/fixtures/images_private_123_regions.json +0 -0
- {linode_api4-5.46.1 → linode_api4-5.48.0}/test/fixtures/images_private_1337.json +0 -0
- {linode_api4-5.46.1 → linode_api4-5.48.0}/test/fixtures/images_sharegroups.json +0 -0
- {linode_api4-5.46.1 → linode_api4-5.48.0}/test/fixtures/images_sharegroups_1234.json +0 -0
- {linode_api4-5.46.1 → linode_api4-5.48.0}/test/fixtures/images_sharegroups_1234_images.json +0 -0
- {linode_api4-5.46.1 → linode_api4-5.48.0}/test/fixtures/images_sharegroups_1234_images_shared_1.json +0 -0
- {linode_api4-5.46.1 → linode_api4-5.48.0}/test/fixtures/images_sharegroups_1234_members.json +0 -0
- {linode_api4-5.46.1 → linode_api4-5.48.0}/test/fixtures/images_sharegroups_1234_members_abc123.json +0 -0
- {linode_api4-5.46.1 → linode_api4-5.48.0}/test/fixtures/images_sharegroups_tokens.json +0 -0
- {linode_api4-5.46.1 → linode_api4-5.48.0}/test/fixtures/images_sharegroups_tokens_abc123.json +0 -0
- {linode_api4-5.46.1 → linode_api4-5.48.0}/test/fixtures/images_sharegroups_tokens_abc123_sharegroup.json +0 -0
- {linode_api4-5.46.1 → linode_api4-5.48.0}/test/fixtures/images_sharegroups_tokens_abc123_sharegroup_images.json +0 -0
- {linode_api4-5.46.1 → linode_api4-5.48.0}/test/fixtures/images_upload.json +0 -0
- {linode_api4-5.46.1 → linode_api4-5.48.0}/test/fixtures/linode_instances_123_backups.json +0 -0
- {linode_api4-5.46.1 → linode_api4-5.48.0}/test/fixtures/linode_instances_123_configs.json +0 -0
- {linode_api4-5.46.1 → linode_api4-5.48.0}/test/fixtures/linode_instances_123_configs_456789.json +0 -0
- {linode_api4-5.46.1 → linode_api4-5.48.0}/test/fixtures/linode_instances_123_configs_456789_interfaces.json +0 -0
- {linode_api4-5.46.1 → linode_api4-5.48.0}/test/fixtures/linode_instances_123_configs_456789_interfaces_123.json +0 -0
- {linode_api4-5.46.1 → linode_api4-5.48.0}/test/fixtures/linode_instances_123_configs_456789_interfaces_123_put.json +0 -0
- {linode_api4-5.46.1 → linode_api4-5.48.0}/test/fixtures/linode_instances_123_configs_456789_interfaces_321.json +0 -0
- {linode_api4-5.46.1 → linode_api4-5.48.0}/test/fixtures/linode_instances_123_configs_456789_interfaces_456.json +0 -0
- {linode_api4-5.46.1 → linode_api4-5.48.0}/test/fixtures/linode_instances_123_disks.json +0 -0
- {linode_api4-5.46.1 → linode_api4-5.48.0}/test/fixtures/linode_instances_123_disks_12345_clone.json +0 -0
- {linode_api4-5.46.1 → linode_api4-5.48.0}/test/fixtures/linode_instances_123_firewalls.json +0 -0
- {linode_api4-5.46.1 → linode_api4-5.48.0}/test/fixtures/linode_instances_123_ips.json +0 -0
- {linode_api4-5.46.1 → linode_api4-5.48.0}/test/fixtures/linode_instances_123_transfer.json +0 -0
- {linode_api4-5.46.1 → linode_api4-5.48.0}/test/fixtures/linode_instances_123_transfer_2023_4.json +0 -0
- {linode_api4-5.46.1 → linode_api4-5.48.0}/test/fixtures/linode_instances_123_volumes.json +0 -0
- {linode_api4-5.46.1 → linode_api4-5.48.0}/test/fixtures/linode_instances_124.json +0 -0
- {linode_api4-5.46.1 → linode_api4-5.48.0}/test/fixtures/linode_instances_124_interfaces.json +0 -0
- {linode_api4-5.46.1 → linode_api4-5.48.0}/test/fixtures/linode_instances_124_interfaces_123.json +0 -0
- {linode_api4-5.46.1 → linode_api4-5.48.0}/test/fixtures/linode_instances_124_interfaces_123_firewalls.json +0 -0
- {linode_api4-5.46.1 → linode_api4-5.48.0}/test/fixtures/linode_instances_124_interfaces_456.json +0 -0
- {linode_api4-5.46.1 → linode_api4-5.48.0}/test/fixtures/linode_instances_124_interfaces_789.json +0 -0
- {linode_api4-5.46.1 → linode_api4-5.48.0}/test/fixtures/linode_instances_124_interfaces_settings.json +0 -0
- {linode_api4-5.46.1 → linode_api4-5.48.0}/test/fixtures/linode_instances_124_upgrade-interfaces.json +0 -0
- {linode_api4-5.46.1 → linode_api4-5.48.0}/test/fixtures/linode_stackscripts_10079.json +0 -0
- {linode_api4-5.46.1 → linode_api4-5.48.0}/test/fixtures/linode_types.json +0 -0
- {linode_api4-5.46.1 → linode_api4-5.48.0}/test/fixtures/linode_types_g6-nanode-1.json +0 -0
- {linode_api4-5.46.1 → linode_api4-5.48.0}/test/fixtures/lke_clusters.json +0 -0
- {linode_api4-5.46.1 → linode_api4-5.48.0}/test/fixtures/lke_clusters_18881.json +0 -0
- {linode_api4-5.46.1 → linode_api4-5.48.0}/test/fixtures/lke_clusters_18881_control__plane__acl.json +0 -0
- {linode_api4-5.46.1 → linode_api4-5.48.0}/test/fixtures/lke_clusters_18881_dashboard.json +0 -0
- {linode_api4-5.46.1 → linode_api4-5.48.0}/test/fixtures/lke_clusters_18881_nodes_123456.json +0 -0
- {linode_api4-5.46.1 → linode_api4-5.48.0}/test/fixtures/lke_clusters_18881_pools_456.json +0 -0
- {linode_api4-5.46.1 → linode_api4-5.48.0}/test/fixtures/lke_clusters_18882.json +0 -0
- {linode_api4-5.46.1 → linode_api4-5.48.0}/test/fixtures/lke_clusters_18882_pools_789.json +0 -0
- {linode_api4-5.46.1 → linode_api4-5.48.0}/test/fixtures/lke_tiers_standard_versions.json +0 -0
- {linode_api4-5.46.1 → linode_api4-5.48.0}/test/fixtures/lke_types.json +0 -0
- {linode_api4-5.46.1 → linode_api4-5.48.0}/test/fixtures/lke_versions.json +0 -0
- {linode_api4-5.46.1 → linode_api4-5.48.0}/test/fixtures/locks.json +0 -0
- {linode_api4-5.46.1 → linode_api4-5.48.0}/test/fixtures/locks_1.json +0 -0
- {linode_api4-5.46.1 → linode_api4-5.48.0}/test/fixtures/longview_clients.json +0 -0
- {linode_api4-5.46.1 → linode_api4-5.48.0}/test/fixtures/longview_plan.json +0 -0
- {linode_api4-5.46.1 → linode_api4-5.48.0}/test/fixtures/longview_subscriptions.json +0 -0
- {linode_api4-5.46.1 → linode_api4-5.48.0}/test/fixtures/maintenance_policies.json +0 -0
- {linode_api4-5.46.1 → linode_api4-5.48.0}/test/fixtures/mongodb.json +0 -0
- {linode_api4-5.46.1 → linode_api4-5.48.0}/test/fixtures/monitor_alert-channels.json +0 -0
- {linode_api4-5.46.1 → linode_api4-5.48.0}/test/fixtures/monitor_alert-definitions.json +0 -0
- {linode_api4-5.46.1 → linode_api4-5.48.0}/test/fixtures/monitor_dashboards.json +0 -0
- {linode_api4-5.46.1 → linode_api4-5.48.0}/test/fixtures/monitor_dashboards_1.json +0 -0
- {linode_api4-5.46.1 → linode_api4-5.48.0}/test/fixtures/monitor_services.json +0 -0
- {linode_api4-5.46.1 → linode_api4-5.48.0}/test/fixtures/monitor_services_dbaas.json +0 -0
- {linode_api4-5.46.1 → linode_api4-5.48.0}/test/fixtures/monitor_services_dbaas_alert-definitions.json +0 -0
- {linode_api4-5.46.1 → linode_api4-5.48.0}/test/fixtures/monitor_services_dbaas_alert-definitions_12345.json +0 -0
- {linode_api4-5.46.1 → linode_api4-5.48.0}/test/fixtures/monitor_services_dbaas_alert-definitions_12345_clone.json +0 -0
- {linode_api4-5.46.1 → linode_api4-5.48.0}/test/fixtures/monitor_services_dbaas_alert-definitions_12345_entities.json +0 -0
- {linode_api4-5.46.1 → linode_api4-5.48.0}/test/fixtures/monitor_services_dbaas_dashboards.json +0 -0
- {linode_api4-5.46.1 → linode_api4-5.48.0}/test/fixtures/monitor_services_dbaas_metric-definitions.json +0 -0
- {linode_api4-5.46.1 → linode_api4-5.48.0}/test/fixtures/monitor_services_dbaas_metrics.json +0 -0
- {linode_api4-5.46.1 → linode_api4-5.48.0}/test/fixtures/monitor_services_dbaas_token.json +0 -0
- {linode_api4-5.46.1 → linode_api4-5.48.0}/test/fixtures/monitor_services_linode_token.json +0 -0
- {linode_api4-5.46.1 → linode_api4-5.48.0}/test/fixtures/monitor_streams.json +0 -0
- {linode_api4-5.46.1 → linode_api4-5.48.0}/test/fixtures/monitor_streams_1_history.json +0 -0
- {linode_api4-5.46.1 → linode_api4-5.48.0}/test/fixtures/monitor_streams_2.json +0 -0
- {linode_api4-5.46.1 → linode_api4-5.48.0}/test/fixtures/monitor_streams_3.json +0 -0
- {linode_api4-5.46.1 → linode_api4-5.48.0}/test/fixtures/monitor_streams_destinations.json +0 -0
- {linode_api4-5.46.1 → linode_api4-5.48.0}/test/fixtures/monitor_streams_destinations_1_history.json +0 -0
- {linode_api4-5.46.1 → linode_api4-5.48.0}/test/fixtures/monitor_streams_destinations_2.json +0 -0
- {linode_api4-5.46.1 → linode_api4-5.48.0}/test/fixtures/network-transfer_prices.json +0 -0
- {linode_api4-5.46.1 → linode_api4-5.48.0}/test/fixtures/networking_firewalls.json +0 -0
- {linode_api4-5.46.1 → linode_api4-5.48.0}/test/fixtures/networking_firewalls_123.json +0 -0
- {linode_api4-5.46.1 → linode_api4-5.48.0}/test/fixtures/networking_firewalls_123_devices.json +0 -0
- {linode_api4-5.46.1 → linode_api4-5.48.0}/test/fixtures/networking_firewalls_123_devices_123.json +0 -0
- {linode_api4-5.46.1 → linode_api4-5.48.0}/test/fixtures/networking_firewalls_123_devices_456.json +0 -0
- {linode_api4-5.46.1 → linode_api4-5.48.0}/test/fixtures/networking_firewalls_123_history.json +0 -0
- {linode_api4-5.46.1 → linode_api4-5.48.0}/test/fixtures/networking_firewalls_123_history_rules_2.json +0 -0
- {linode_api4-5.46.1 → linode_api4-5.48.0}/test/fixtures/networking_firewalls_123_rules.json +0 -0
- {linode_api4-5.46.1 → linode_api4-5.48.0}/test/fixtures/networking_firewalls_settings.json +0 -0
- {linode_api4-5.46.1 → linode_api4-5.48.0}/test/fixtures/networking_firewalls_templates.json +0 -0
- {linode_api4-5.46.1 → linode_api4-5.48.0}/test/fixtures/networking_firewalls_templates_public.json +0 -0
- {linode_api4-5.46.1 → linode_api4-5.48.0}/test/fixtures/networking_firewalls_templates_vpc.json +0 -0
- {linode_api4-5.46.1 → linode_api4-5.48.0}/test/fixtures/networking_ips_127.0.0.1.json +0 -0
- {linode_api4-5.46.1 → linode_api4-5.48.0}/test/fixtures/networking_ipv6_pools.json +0 -0
- {linode_api4-5.46.1 → linode_api4-5.48.0}/test/fixtures/networking_ipv6_ranges.json +0 -0
- {linode_api4-5.46.1 → linode_api4-5.48.0}/test/fixtures/networking_ipv6_ranges_2600%3A3c01%3A%3A.json +0 -0
- {linode_api4-5.46.1 → linode_api4-5.48.0}/test/fixtures/networking_reserved_ips.json +0 -0
- {linode_api4-5.46.1 → linode_api4-5.48.0}/test/fixtures/networking_reserved_ips_types.json +0 -0
- {linode_api4-5.46.1 → linode_api4-5.48.0}/test/fixtures/networking_vlans.json +0 -0
- {linode_api4-5.46.1 → linode_api4-5.48.0}/test/fixtures/nodebalancers_123456_configs.json +0 -0
- {linode_api4-5.46.1 → linode_api4-5.48.0}/test/fixtures/nodebalancers_123456_configs_65432_nodes.json +0 -0
- {linode_api4-5.46.1 → linode_api4-5.48.0}/test/fixtures/nodebalancers_12345_configs_4567_rebuild.json +0 -0
- {linode_api4-5.46.1 → linode_api4-5.48.0}/test/fixtures/nodebalancers_12345_firewalls.json +0 -0
- {linode_api4-5.46.1 → linode_api4-5.48.0}/test/fixtures/nodebalancers_12345_stats.json +0 -0
- {linode_api4-5.46.1 → linode_api4-5.48.0}/test/fixtures/nodebalancers_types.json +0 -0
- {linode_api4-5.46.1 → linode_api4-5.48.0}/test/fixtures/object-storage_buckets.json +0 -0
- {linode_api4-5.46.1 → linode_api4-5.48.0}/test/fixtures/object-storage_buckets_us-east-1.json +0 -0
- {linode_api4-5.46.1 → linode_api4-5.48.0}/test/fixtures/object-storage_buckets_us-east-1_example-bucket.json +0 -0
- {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
- {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
- {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
- {linode_api4-5.46.1 → linode_api4-5.48.0}/test/fixtures/object-storage_buckets_us-east-1_example-bucket_ssl.json +0 -0
- {linode_api4-5.46.1 → linode_api4-5.48.0}/test/fixtures/object-storage_buckets_us-east_example-bucket_access.json +0 -0
- {linode_api4-5.46.1 → linode_api4-5.48.0}/test/fixtures/object-storage_clusters.json +0 -0
- {linode_api4-5.46.1 → linode_api4-5.48.0}/test/fixtures/object-storage_global-quotas.json +0 -0
- {linode_api4-5.46.1 → linode_api4-5.48.0}/test/fixtures/object-storage_global-quotas_obj-access-keys-per-account.json +0 -0
- {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
- {linode_api4-5.46.1 → linode_api4-5.48.0}/test/fixtures/object-storage_keys.json +0 -0
- {linode_api4-5.46.1 → linode_api4-5.48.0}/test/fixtures/object-storage_quotas.json +0 -0
- {linode_api4-5.46.1 → linode_api4-5.48.0}/test/fixtures/object-storage_quotas_obj-objects-us-ord-1.json +0 -0
- {linode_api4-5.46.1 → linode_api4-5.48.0}/test/fixtures/object-storage_quotas_obj-objects-us-ord-1_usage.json +0 -0
- {linode_api4-5.46.1 → linode_api4-5.48.0}/test/fixtures/object-storage_transfer.json +0 -0
- {linode_api4-5.46.1 → linode_api4-5.48.0}/test/fixtures/object-storage_types.json +0 -0
- {linode_api4-5.46.1 → linode_api4-5.48.0}/test/fixtures/placement_groups.json +0 -0
- {linode_api4-5.46.1 → linode_api4-5.48.0}/test/fixtures/placement_groups_123.json +0 -0
- {linode_api4-5.46.1 → linode_api4-5.48.0}/test/fixtures/profile.json +0 -0
- {linode_api4-5.46.1 → linode_api4-5.48.0}/test/fixtures/profile_device_123.json +0 -0
- {linode_api4-5.46.1 → linode_api4-5.48.0}/test/fixtures/profile_devices.json +0 -0
- {linode_api4-5.46.1 → linode_api4-5.48.0}/test/fixtures/profile_logins.json +0 -0
- {linode_api4-5.46.1 → linode_api4-5.48.0}/test/fixtures/profile_logins_123.json +0 -0
- {linode_api4-5.46.1 → linode_api4-5.48.0}/test/fixtures/profile_preferences.json +0 -0
- {linode_api4-5.46.1 → linode_api4-5.48.0}/test/fixtures/profile_security-questions.json +0 -0
- {linode_api4-5.46.1 → linode_api4-5.48.0}/test/fixtures/profile_sshkeys.json +0 -0
- {linode_api4-5.46.1 → linode_api4-5.48.0}/test/fixtures/regions.json +0 -0
- {linode_api4-5.46.1 → linode_api4-5.48.0}/test/fixtures/regions_availability.json +0 -0
- {linode_api4-5.46.1 → linode_api4-5.48.0}/test/fixtures/regions_us-east_availability.json +0 -0
- {linode_api4-5.46.1 → linode_api4-5.48.0}/test/fixtures/regions_us-east_vpc-availability.json +0 -0
- {linode_api4-5.46.1 → linode_api4-5.48.0}/test/fixtures/regions_vpc-availability.json +0 -0
- {linode_api4-5.46.1 → linode_api4-5.48.0}/test/fixtures/support_tickets_123.json +0 -0
- {linode_api4-5.46.1 → linode_api4-5.48.0}/test/fixtures/tags.json +0 -0
- {linode_api4-5.46.1 → linode_api4-5.48.0}/test/fixtures/tags_nothing.json +0 -0
- {linode_api4-5.46.1 → linode_api4-5.48.0}/test/fixtures/tags_something.json +0 -0
- {linode_api4-5.46.1 → linode_api4-5.48.0}/test/fixtures/testmappedobj1.json +0 -0
- {linode_api4-5.46.1 → linode_api4-5.48.0}/test/fixtures/volumes.json +0 -0
- {linode_api4-5.46.1 → linode_api4-5.48.0}/test/fixtures/volumes_types.json +0 -0
- {linode_api4-5.46.1 → linode_api4-5.48.0}/test/fixtures/vpcs_123456_ips.json +0 -0
- {linode_api4-5.46.1 → linode_api4-5.48.0}/test/fixtures/vpcs_default-ranges.json +0 -0
- {linode_api4-5.46.1 → linode_api4-5.48.0}/test/fixtures/vpcs_ips.json +0 -0
- {linode_api4-5.46.1 → linode_api4-5.48.0}/test/integration/__init__.py +0 -0
- {linode_api4-5.46.1 → linode_api4-5.48.0}/test/integration/filters/fixtures.py +0 -0
- {linode_api4-5.46.1 → linode_api4-5.48.0}/test/integration/filters/model_filters_test.py +0 -0
- {linode_api4-5.46.1 → linode_api4-5.48.0}/test/integration/helpers.py +0 -0
- {linode_api4-5.46.1 → linode_api4-5.48.0}/test/integration/linode_client/__init__.py +0 -0
- {linode_api4-5.46.1 → linode_api4-5.48.0}/test/integration/linode_client/test_errors.py +0 -0
- {linode_api4-5.46.1 → linode_api4-5.48.0}/test/integration/linode_client/test_linode_client.py +0 -0
- {linode_api4-5.46.1 → linode_api4-5.48.0}/test/integration/linode_client/test_retry.py +0 -0
- {linode_api4-5.46.1 → linode_api4-5.48.0}/test/integration/login_client/test_login_client.py +0 -0
- {linode_api4-5.46.1 → linode_api4-5.48.0}/test/integration/models/__init__.py +0 -0
- {linode_api4-5.46.1 → linode_api4-5.48.0}/test/integration/models/database/helpers.py +0 -0
- {linode_api4-5.46.1 → linode_api4-5.48.0}/test/integration/models/database/test_database.py +0 -0
- {linode_api4-5.46.1 → linode_api4-5.48.0}/test/integration/models/database/test_database_engine_config.py +0 -0
- {linode_api4-5.46.1 → linode_api4-5.48.0}/test/integration/models/domain/test_domain.py +0 -0
- {linode_api4-5.46.1 → linode_api4-5.48.0}/test/integration/models/firewall/test_firewall.py +0 -0
- {linode_api4-5.46.1 → linode_api4-5.48.0}/test/integration/models/firewall/test_firewall_templates.py +0 -0
- {linode_api4-5.46.1 → linode_api4-5.48.0}/test/integration/models/lke/test_lke.py +0 -0
- {linode_api4-5.46.1 → linode_api4-5.48.0}/test/integration/models/lock/__init__.py +0 -0
- {linode_api4-5.46.1 → linode_api4-5.48.0}/test/integration/models/lock/test_lock.py +0 -0
- {linode_api4-5.46.1 → linode_api4-5.48.0}/test/integration/models/longview/test_longview.py +0 -0
- {linode_api4-5.46.1 → linode_api4-5.48.0}/test/integration/models/maintenance/test_maintenance.py +0 -0
- {linode_api4-5.46.1 → linode_api4-5.48.0}/test/integration/models/monitor/test_monitor.py +0 -0
- {linode_api4-5.46.1 → linode_api4-5.48.0}/test/integration/models/monitor/test_monitor_logs.py +0 -0
- {linode_api4-5.46.1 → linode_api4-5.48.0}/test/integration/models/monitor_api/test_monitor_api.py +0 -0
- {linode_api4-5.46.1 → linode_api4-5.48.0}/test/integration/models/object_storage/test_obj.py +0 -0
- {linode_api4-5.46.1 → linode_api4-5.48.0}/test/integration/models/object_storage/test_obj_quotas.py +0 -0
- {linode_api4-5.46.1 → linode_api4-5.48.0}/test/integration/models/placement/test_placement.py +0 -0
- {linode_api4-5.46.1 → linode_api4-5.48.0}/test/integration/models/profile/test_profile.py +0 -0
- {linode_api4-5.46.1 → linode_api4-5.48.0}/test/integration/models/region/test_region.py +0 -0
- {linode_api4-5.46.1 → linode_api4-5.48.0}/test/integration/models/tag/test_tag.py +0 -0
- {linode_api4-5.46.1 → linode_api4-5.48.0}/test/integration/models/volume/test_blockstorage.py +0 -0
- {linode_api4-5.46.1 → linode_api4-5.48.0}/test/integration/models/volume/test_volume.py +0 -0
- {linode_api4-5.46.1 → linode_api4-5.48.0}/test/unit/__init__.py +0 -0
- {linode_api4-5.46.1 → linode_api4-5.48.0}/test/unit/base.py +0 -0
- {linode_api4-5.46.1 → linode_api4-5.48.0}/test/unit/errors_test.py +0 -0
- {linode_api4-5.46.1 → linode_api4-5.48.0}/test/unit/fixtures.py +0 -0
- {linode_api4-5.46.1 → linode_api4-5.48.0}/test/unit/groups/__init__.py +0 -0
- {linode_api4-5.46.1 → linode_api4-5.48.0}/test/unit/groups/database_test.py +0 -0
- {linode_api4-5.46.1 → linode_api4-5.48.0}/test/unit/groups/image_share_group_test.py +0 -0
- {linode_api4-5.46.1 → linode_api4-5.48.0}/test/unit/groups/image_test.py +0 -0
- {linode_api4-5.46.1 → linode_api4-5.48.0}/test/unit/groups/lke_test.py +0 -0
- {linode_api4-5.46.1 → linode_api4-5.48.0}/test/unit/groups/lke_tier_test.py +0 -0
- {linode_api4-5.46.1 → linode_api4-5.48.0}/test/unit/groups/lock_test.py +0 -0
- {linode_api4-5.46.1 → linode_api4-5.48.0}/test/unit/groups/monitor_api_test.py +0 -0
- {linode_api4-5.46.1 → linode_api4-5.48.0}/test/unit/groups/networking_test.py +0 -0
- {linode_api4-5.46.1 → linode_api4-5.48.0}/test/unit/groups/object_storage_test.py +0 -0
- {linode_api4-5.46.1 → linode_api4-5.48.0}/test/unit/groups/placement_test.py +0 -0
- {linode_api4-5.46.1 → linode_api4-5.48.0}/test/unit/groups/polling_test.py +0 -0
- {linode_api4-5.46.1 → linode_api4-5.48.0}/test/unit/groups/region_test.py +0 -0
- {linode_api4-5.46.1 → linode_api4-5.48.0}/test/unit/groups/vpc_test.py +0 -0
- {linode_api4-5.46.1 → linode_api4-5.48.0}/test/unit/objects/account_test.py +0 -0
- {linode_api4-5.46.1 → linode_api4-5.48.0}/test/unit/objects/base_test.py +0 -0
- {linode_api4-5.46.1 → linode_api4-5.48.0}/test/unit/objects/beta_test.py +0 -0
- {linode_api4-5.46.1 → linode_api4-5.48.0}/test/unit/objects/database_test.py +0 -0
- {linode_api4-5.46.1 → linode_api4-5.48.0}/test/unit/objects/domain_test.py +0 -0
- {linode_api4-5.46.1 → linode_api4-5.48.0}/test/unit/objects/firewall_test.py +0 -0
- {linode_api4-5.46.1 → linode_api4-5.48.0}/test/unit/objects/image_share_group_test.py +0 -0
- {linode_api4-5.46.1 → linode_api4-5.48.0}/test/unit/objects/image_test.py +0 -0
- {linode_api4-5.46.1 → linode_api4-5.48.0}/test/unit/objects/lke_test.py +0 -0
- {linode_api4-5.46.1 → linode_api4-5.48.0}/test/unit/objects/lock_test.py +0 -0
- {linode_api4-5.46.1 → linode_api4-5.48.0}/test/unit/objects/longview_test.py +0 -0
- {linode_api4-5.46.1 → linode_api4-5.48.0}/test/unit/objects/mapped_object_test.py +0 -0
- {linode_api4-5.46.1 → linode_api4-5.48.0}/test/unit/objects/monitor_test.py +0 -0
- {linode_api4-5.46.1 → linode_api4-5.48.0}/test/unit/objects/networking_test.py +0 -0
- {linode_api4-5.46.1 → linode_api4-5.48.0}/test/unit/objects/object_storage_test.py +0 -0
- {linode_api4-5.46.1 → linode_api4-5.48.0}/test/unit/objects/placement_test.py +0 -0
- {linode_api4-5.46.1 → linode_api4-5.48.0}/test/unit/objects/profile_test.py +0 -0
- {linode_api4-5.46.1 → linode_api4-5.48.0}/test/unit/objects/property_alias_test.py +0 -0
- {linode_api4-5.46.1 → linode_api4-5.48.0}/test/unit/objects/region_test.py +0 -0
- {linode_api4-5.46.1 → linode_api4-5.48.0}/test/unit/objects/serializable_test.py +0 -0
- {linode_api4-5.46.1 → linode_api4-5.48.0}/test/unit/objects/support_test.py +0 -0
- {linode_api4-5.46.1 → linode_api4-5.48.0}/test/unit/objects/tag_test.py +0 -0
- {linode_api4-5.46.1 → linode_api4-5.48.0}/test/unit/objects/volume_test.py +0 -0
- {linode_api4-5.46.1 → linode_api4-5.48.0}/test/unit/paginated_list_test.py +0 -0
- {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.
|
|
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:
|
|
30
|
-
|
|
31
|
-
Requires-Dist:
|
|
32
|
-
|
|
33
|
-
Requires-Dist:
|
|
34
|
-
Requires-Dist:
|
|
35
|
-
|
|
36
|
-
Requires-Dist:
|
|
37
|
-
|
|
38
|
-
Requires-Dist:
|
|
39
|
-
Requires-Dist:
|
|
40
|
-
Requires-Dist:
|
|
41
|
-
Requires-Dist:
|
|
42
|
-
Requires-Dist:
|
|
43
|
-
Requires-Dist:
|
|
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.
|
|
158
|
-
|
|
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
|
-
|
|
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.
|
|
106
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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.
|
|
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
|
|
166
|
-
|
|
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
|
|
@@ -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
|
}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: linode_api4
|
|
3
|
-
Version: 5.
|
|
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:
|
|
30
|
-
|
|
31
|
-
Requires-Dist:
|
|
32
|
-
|
|
33
|
-
Requires-Dist:
|
|
34
|
-
Requires-Dist:
|
|
35
|
-
|
|
36
|
-
Requires-Dist:
|
|
37
|
-
|
|
38
|
-
Requires-Dist:
|
|
39
|
-
Requires-Dist:
|
|
40
|
-
Requires-Dist:
|
|
41
|
-
Requires-Dist:
|
|
42
|
-
Requires-Dist:
|
|
43
|
-
Requires-Dist:
|
|
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.
|
|
158
|
-
|
|
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
|
-
|
|
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
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
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
|
-
[
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
27
|
+
[test-shared]
|
|
28
|
+
pytest>=7.3.1
|
|
29
|
+
httpretty>=1.1.4
|
|
30
|
+
pytest-rerunfailures
|
|
25
31
|
|
|
26
|
-
[test]
|
|
27
|
-
|
|
32
|
+
[unit-test]
|
|
33
|
+
linode_api4[test-shared]
|
|
34
|
+
mock>=5.0.0
|