linode-api4 5.44.0__tar.gz → 5.45.0__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {linode_api4-5.44.0/linode_api4.egg-info → linode_api4-5.45.0}/PKG-INFO +1 -1
- {linode_api4-5.44.0 → linode_api4-5.45.0}/linode_api4/groups/linode.py +5 -0
- {linode_api4-5.44.0 → linode_api4-5.45.0}/linode_api4/groups/monitor.py +214 -15
- {linode_api4-5.44.0 → linode_api4-5.45.0}/linode_api4/groups/networking.py +124 -12
- {linode_api4-5.44.0 → linode_api4-5.45.0}/linode_api4/groups/nodebalancer.py +7 -1
- {linode_api4-5.44.0 → linode_api4-5.45.0}/linode_api4/groups/object_storage.py +1 -1
- {linode_api4-5.44.0 → linode_api4-5.45.0}/linode_api4/groups/tag.py +7 -1
- {linode_api4-5.44.0 → linode_api4-5.45.0}/linode_api4/objects/linode.py +14 -5
- {linode_api4-5.44.0 → linode_api4-5.45.0}/linode_api4/objects/monitor.py +389 -1
- {linode_api4-5.44.0 → linode_api4-5.45.0}/linode_api4/objects/networking.py +68 -0
- {linode_api4-5.44.0 → linode_api4-5.45.0}/linode_api4/objects/object_storage.py +1 -1
- {linode_api4-5.44.0 → linode_api4-5.45.0}/linode_api4/objects/region.py +2 -0
- {linode_api4-5.44.0 → linode_api4-5.45.0}/linode_api4/objects/tag.py +4 -1
- {linode_api4-5.44.0 → linode_api4-5.45.0}/linode_api4/version.py +1 -1
- {linode_api4-5.44.0 → linode_api4-5.45.0/linode_api4.egg-info}/PKG-INFO +1 -1
- {linode_api4-5.44.0 → linode_api4-5.45.0}/linode_api4.egg-info/SOURCES.txt +10 -0
- {linode_api4-5.44.0 → linode_api4-5.45.0}/pyproject.toml +2 -0
- linode_api4-5.45.0/test/fixtures/monitor_dashboards.json +404 -0
- linode_api4-5.45.0/test/fixtures/monitor_dashboards_1.json +83 -0
- linode_api4-5.45.0/test/fixtures/monitor_services_dbaas_dashboards.json +90 -0
- linode_api4-5.45.0/test/fixtures/monitor_streams.json +31 -0
- linode_api4-5.45.0/test/fixtures/monitor_streams_1_history.json +31 -0
- linode_api4-5.45.0/test/fixtures/monitor_streams_2.json +43 -0
- linode_api4-5.45.0/test/fixtures/monitor_streams_3.json +29 -0
- linode_api4-5.45.0/test/fixtures/monitor_streams_destinations.json +24 -0
- linode_api4-5.45.0/test/fixtures/monitor_streams_destinations_1_history.json +24 -0
- linode_api4-5.45.0/test/fixtures/monitor_streams_destinations_2.json +36 -0
- linode_api4-5.45.0/test/fixtures/networking_reserved_ips.json +35 -0
- linode_api4-5.45.0/test/fixtures/networking_reserved_ips_types.json +27 -0
- {linode_api4-5.44.0 → linode_api4-5.45.0}/test/integration/conftest.py +69 -10
- {linode_api4-5.44.0 → linode_api4-5.45.0}/test/integration/linode_client/test_linode_client.py +34 -36
- {linode_api4-5.44.0 → linode_api4-5.45.0}/test/integration/models/account/test_account.py +2 -1
- {linode_api4-5.44.0 → linode_api4-5.45.0}/test/integration/models/domain/test_domain.py +1 -2
- {linode_api4-5.44.0 → linode_api4-5.45.0}/test/integration/models/linode/interfaces/test_interfaces.py +99 -0
- {linode_api4-5.44.0 → linode_api4-5.45.0}/test/integration/models/linode/test_linode.py +42 -1
- linode_api4-5.45.0/test/integration/models/monitor/test_monitor_logs.py +521 -0
- {linode_api4-5.44.0 → linode_api4-5.45.0}/test/integration/models/networking/test_networking.py +209 -2
- {linode_api4-5.44.0 → linode_api4-5.45.0}/test/integration/models/nodebalancer/test_nodebalancer.py +28 -0
- {linode_api4-5.44.0 → linode_api4-5.45.0}/test/integration/models/placement/test_placement.py +1 -1
- linode_api4-5.45.0/test/integration/models/tag/test_tag.py +51 -0
- {linode_api4-5.44.0 → linode_api4-5.45.0}/test/integration/models/vpc/test_vpc.py +3 -2
- linode_api4-5.45.0/test/unit/groups/networking_test.py +240 -0
- linode_api4-5.45.0/test/unit/objects/monitor_test.py +761 -0
- linode_api4-5.45.0/test/unit/objects/networking_test.py +457 -0
- linode_api4-5.45.0/test/unit/objects/tag_test.py +103 -0
- linode_api4-5.44.0/test/fixtures/monitor_dashboards.json +0 -41
- linode_api4-5.44.0/test/fixtures/monitor_dashboards_1.json +0 -34
- linode_api4-5.44.0/test/fixtures/monitor_services_dbaas_dashboards.json +0 -48
- linode_api4-5.44.0/test/integration/models/tag/test_tag.py +0 -22
- linode_api4-5.44.0/test/unit/groups/networking_test.py +0 -17
- linode_api4-5.44.0/test/unit/objects/monitor_test.py +0 -171
- linode_api4-5.44.0/test/unit/objects/networking_test.py +0 -173
- linode_api4-5.44.0/test/unit/objects/tag_test.py +0 -46
- {linode_api4-5.44.0 → linode_api4-5.45.0}/LICENSE +0 -0
- {linode_api4-5.44.0 → linode_api4-5.45.0}/MANIFEST.in +0 -0
- {linode_api4-5.44.0 → linode_api4-5.45.0}/README.rst +0 -0
- {linode_api4-5.44.0 → linode_api4-5.45.0}/examples/install-on-linode/app.py +0 -0
- {linode_api4-5.44.0 → linode_api4-5.45.0}/examples/install-on-linode/make_stackscript.py +0 -0
- {linode_api4-5.44.0 → linode_api4-5.45.0}/linode_api4/__init__.py +0 -0
- {linode_api4-5.44.0 → linode_api4-5.45.0}/linode_api4/common.py +0 -0
- {linode_api4-5.44.0 → linode_api4-5.45.0}/linode_api4/errors.py +0 -0
- {linode_api4-5.44.0 → linode_api4-5.45.0}/linode_api4/groups/__init__.py +0 -0
- {linode_api4-5.44.0 → linode_api4-5.45.0}/linode_api4/groups/account.py +0 -0
- {linode_api4-5.44.0 → linode_api4-5.45.0}/linode_api4/groups/beta.py +0 -0
- {linode_api4-5.44.0 → linode_api4-5.45.0}/linode_api4/groups/database.py +0 -0
- {linode_api4-5.44.0 → linode_api4-5.45.0}/linode_api4/groups/domain.py +0 -0
- {linode_api4-5.44.0 → linode_api4-5.45.0}/linode_api4/groups/group.py +0 -0
- {linode_api4-5.44.0 → linode_api4-5.45.0}/linode_api4/groups/image.py +0 -0
- {linode_api4-5.44.0 → linode_api4-5.45.0}/linode_api4/groups/image_share_group.py +0 -0
- {linode_api4-5.44.0 → linode_api4-5.45.0}/linode_api4/groups/lke.py +0 -0
- {linode_api4-5.44.0 → linode_api4-5.45.0}/linode_api4/groups/lke_tier.py +0 -0
- {linode_api4-5.44.0 → linode_api4-5.45.0}/linode_api4/groups/lock.py +0 -0
- {linode_api4-5.44.0 → linode_api4-5.45.0}/linode_api4/groups/longview.py +0 -0
- {linode_api4-5.44.0 → linode_api4-5.45.0}/linode_api4/groups/maintenance.py +0 -0
- {linode_api4-5.44.0 → linode_api4-5.45.0}/linode_api4/groups/monitor_api.py +0 -0
- {linode_api4-5.44.0 → linode_api4-5.45.0}/linode_api4/groups/placement.py +0 -0
- {linode_api4-5.44.0 → linode_api4-5.45.0}/linode_api4/groups/polling.py +0 -0
- {linode_api4-5.44.0 → linode_api4-5.45.0}/linode_api4/groups/profile.py +0 -0
- {linode_api4-5.44.0 → linode_api4-5.45.0}/linode_api4/groups/region.py +0 -0
- {linode_api4-5.44.0 → linode_api4-5.45.0}/linode_api4/groups/support.py +0 -0
- {linode_api4-5.44.0 → linode_api4-5.45.0}/linode_api4/groups/volume.py +0 -0
- {linode_api4-5.44.0 → linode_api4-5.45.0}/linode_api4/groups/vpc.py +0 -0
- {linode_api4-5.44.0 → linode_api4-5.45.0}/linode_api4/linode_client.py +0 -0
- {linode_api4-5.44.0 → linode_api4-5.45.0}/linode_api4/login_client.py +0 -0
- {linode_api4-5.44.0 → linode_api4-5.45.0}/linode_api4/objects/__init__.py +0 -0
- {linode_api4-5.44.0 → linode_api4-5.45.0}/linode_api4/objects/account.py +0 -0
- {linode_api4-5.44.0 → linode_api4-5.45.0}/linode_api4/objects/base.py +0 -0
- {linode_api4-5.44.0 → linode_api4-5.45.0}/linode_api4/objects/beta.py +0 -0
- {linode_api4-5.44.0 → linode_api4-5.45.0}/linode_api4/objects/database.py +0 -0
- {linode_api4-5.44.0 → linode_api4-5.45.0}/linode_api4/objects/dbase.py +0 -0
- {linode_api4-5.44.0 → linode_api4-5.45.0}/linode_api4/objects/domain.py +0 -0
- {linode_api4-5.44.0 → linode_api4-5.45.0}/linode_api4/objects/filtering.py +0 -0
- {linode_api4-5.44.0 → linode_api4-5.45.0}/linode_api4/objects/image.py +0 -0
- {linode_api4-5.44.0 → linode_api4-5.45.0}/linode_api4/objects/image_share_group.py +0 -0
- {linode_api4-5.44.0 → linode_api4-5.45.0}/linode_api4/objects/linode_interfaces.py +0 -0
- {linode_api4-5.44.0 → linode_api4-5.45.0}/linode_api4/objects/lke.py +0 -0
- {linode_api4-5.44.0 → linode_api4-5.45.0}/linode_api4/objects/lock.py +0 -0
- {linode_api4-5.44.0 → linode_api4-5.45.0}/linode_api4/objects/longview.py +0 -0
- {linode_api4-5.44.0 → linode_api4-5.45.0}/linode_api4/objects/monitor_api.py +0 -0
- {linode_api4-5.44.0 → linode_api4-5.45.0}/linode_api4/objects/nodebalancer.py +0 -0
- {linode_api4-5.44.0 → linode_api4-5.45.0}/linode_api4/objects/placement.py +0 -0
- {linode_api4-5.44.0 → linode_api4-5.45.0}/linode_api4/objects/profile.py +0 -0
- {linode_api4-5.44.0 → linode_api4-5.45.0}/linode_api4/objects/serializable.py +0 -0
- {linode_api4-5.44.0 → linode_api4-5.45.0}/linode_api4/objects/support.py +0 -0
- {linode_api4-5.44.0 → linode_api4-5.45.0}/linode_api4/objects/volume.py +0 -0
- {linode_api4-5.44.0 → linode_api4-5.45.0}/linode_api4/objects/vpc.py +0 -0
- {linode_api4-5.44.0 → linode_api4-5.45.0}/linode_api4/paginated_list.py +0 -0
- {linode_api4-5.44.0 → linode_api4-5.45.0}/linode_api4/polling.py +0 -0
- {linode_api4-5.44.0 → linode_api4-5.45.0}/linode_api4/util.py +0 -0
- {linode_api4-5.44.0 → linode_api4-5.45.0}/linode_api4.egg-info/dependency_links.txt +0 -0
- {linode_api4-5.44.0 → linode_api4-5.45.0}/linode_api4.egg-info/requires.txt +0 -0
- {linode_api4-5.44.0 → linode_api4-5.45.0}/linode_api4.egg-info/top_level.txt +0 -0
- {linode_api4-5.44.0 → linode_api4-5.45.0}/setup.cfg +0 -0
- {linode_api4-5.44.0 → linode_api4-5.45.0}/setup.py +0 -0
- {linode_api4-5.44.0 → linode_api4-5.45.0}/test/__init__.py +0 -0
- {linode_api4-5.44.0 → linode_api4-5.45.0}/test/fixtures/account.json +0 -0
- {linode_api4-5.44.0 → linode_api4-5.45.0}/test/fixtures/account_availability.json +0 -0
- {linode_api4-5.44.0 → linode_api4-5.45.0}/test/fixtures/account_availability_us-east.json +0 -0
- {linode_api4-5.44.0 → linode_api4-5.45.0}/test/fixtures/account_betas.json +0 -0
- {linode_api4-5.44.0 → linode_api4-5.45.0}/test/fixtures/account_betas_cool.json +0 -0
- {linode_api4-5.44.0 → linode_api4-5.45.0}/test/fixtures/account_child-accounts.json +0 -0
- {linode_api4-5.44.0 → linode_api4-5.45.0}/test/fixtures/account_child-accounts_123456.json +0 -0
- {linode_api4-5.44.0 → linode_api4-5.45.0}/test/fixtures/account_child-accounts_123456_token.json +0 -0
- {linode_api4-5.44.0 → linode_api4-5.45.0}/test/fixtures/account_events_123.json +0 -0
- {linode_api4-5.44.0 → linode_api4-5.45.0}/test/fixtures/account_invoices.json +0 -0
- {linode_api4-5.44.0 → linode_api4-5.45.0}/test/fixtures/account_invoices_123.json +0 -0
- {linode_api4-5.44.0 → linode_api4-5.45.0}/test/fixtures/account_invoices_123456_items.json +0 -0
- {linode_api4-5.44.0 → linode_api4-5.45.0}/test/fixtures/account_logins.json +0 -0
- {linode_api4-5.44.0 → linode_api4-5.45.0}/test/fixtures/account_logins_123.json +0 -0
- {linode_api4-5.44.0 → linode_api4-5.45.0}/test/fixtures/account_maintenance.json +0 -0
- {linode_api4-5.44.0 → linode_api4-5.45.0}/test/fixtures/account_notifications.json +0 -0
- {linode_api4-5.44.0 → linode_api4-5.45.0}/test/fixtures/account_oauth-clients_2737bf16b39ab5d7b4a1.json +0 -0
- {linode_api4-5.44.0 → linode_api4-5.45.0}/test/fixtures/account_payment-method_123.json +0 -0
- {linode_api4-5.44.0 → linode_api4-5.45.0}/test/fixtures/account_payment-methods.json +0 -0
- {linode_api4-5.44.0 → linode_api4-5.45.0}/test/fixtures/account_payments.json +0 -0
- {linode_api4-5.44.0 → linode_api4-5.45.0}/test/fixtures/account_promo-codes.json +0 -0
- {linode_api4-5.44.0 → linode_api4-5.45.0}/test/fixtures/account_service-transfers.json +0 -0
- {linode_api4-5.44.0 → linode_api4-5.45.0}/test/fixtures/account_service-transfers_12345.json +0 -0
- {linode_api4-5.44.0 → linode_api4-5.45.0}/test/fixtures/account_settings.json +0 -0
- {linode_api4-5.44.0 → linode_api4-5.45.0}/test/fixtures/account_transfer.json +0 -0
- {linode_api4-5.44.0 → linode_api4-5.45.0}/test/fixtures/account_users_test-user.json +0 -0
- {linode_api4-5.44.0 → linode_api4-5.45.0}/test/fixtures/betas.json +0 -0
- {linode_api4-5.44.0 → linode_api4-5.45.0}/test/fixtures/betas_active.json +0 -0
- {linode_api4-5.44.0 → linode_api4-5.45.0}/test/fixtures/databases_engines.json +0 -0
- {linode_api4-5.44.0 → linode_api4-5.45.0}/test/fixtures/databases_instances.json +0 -0
- {linode_api4-5.44.0 → linode_api4-5.45.0}/test/fixtures/databases_mysql_config.json +0 -0
- {linode_api4-5.44.0 → linode_api4-5.45.0}/test/fixtures/databases_mysql_instances.json +0 -0
- {linode_api4-5.44.0 → linode_api4-5.45.0}/test/fixtures/databases_mysql_instances_123_credentials.json +0 -0
- {linode_api4-5.44.0 → linode_api4-5.45.0}/test/fixtures/databases_mysql_instances_123_credentials_reset.json +0 -0
- {linode_api4-5.44.0 → linode_api4-5.45.0}/test/fixtures/databases_mysql_instances_123_patch.json +0 -0
- {linode_api4-5.44.0 → linode_api4-5.45.0}/test/fixtures/databases_mysql_instances_123_resume.json +0 -0
- {linode_api4-5.44.0 → linode_api4-5.45.0}/test/fixtures/databases_mysql_instances_123_ssl.json +0 -0
- {linode_api4-5.44.0 → linode_api4-5.45.0}/test/fixtures/databases_mysql_instances_123_suspend.json +0 -0
- {linode_api4-5.44.0 → linode_api4-5.45.0}/test/fixtures/databases_postgresql_config.json +0 -0
- {linode_api4-5.44.0 → linode_api4-5.45.0}/test/fixtures/databases_postgresql_instances.json +0 -0
- {linode_api4-5.44.0 → linode_api4-5.45.0}/test/fixtures/databases_postgresql_instances_123_credentials.json +0 -0
- {linode_api4-5.44.0 → linode_api4-5.45.0}/test/fixtures/databases_postgresql_instances_123_credentials_reset.json +0 -0
- {linode_api4-5.44.0 → linode_api4-5.45.0}/test/fixtures/databases_postgresql_instances_123_patch.json +0 -0
- {linode_api4-5.44.0 → linode_api4-5.45.0}/test/fixtures/databases_postgresql_instances_123_resume.json +0 -0
- {linode_api4-5.44.0 → linode_api4-5.45.0}/test/fixtures/databases_postgresql_instances_123_ssl.json +0 -0
- {linode_api4-5.44.0 → linode_api4-5.45.0}/test/fixtures/databases_postgresql_instances_123_suspend.json +0 -0
- {linode_api4-5.44.0 → linode_api4-5.45.0}/test/fixtures/databases_types.json +0 -0
- {linode_api4-5.44.0 → linode_api4-5.45.0}/test/fixtures/domains.json +0 -0
- {linode_api4-5.44.0 → linode_api4-5.45.0}/test/fixtures/domains_12345_clone.json +0 -0
- {linode_api4-5.44.0 → linode_api4-5.45.0}/test/fixtures/domains_12345_records.json +0 -0
- {linode_api4-5.44.0 → linode_api4-5.45.0}/test/fixtures/domains_12345_zone-file.json +0 -0
- {linode_api4-5.44.0 → linode_api4-5.45.0}/test/fixtures/domains_import.json +0 -0
- {linode_api4-5.44.0 → linode_api4-5.45.0}/test/fixtures/images.json +0 -0
- {linode_api4-5.44.0 → linode_api4-5.45.0}/test/fixtures/images_private_1234_sharegroups.json +0 -0
- {linode_api4-5.44.0 → linode_api4-5.45.0}/test/fixtures/images_private_123_regions.json +0 -0
- {linode_api4-5.44.0 → linode_api4-5.45.0}/test/fixtures/images_private_1337.json +0 -0
- {linode_api4-5.44.0 → linode_api4-5.45.0}/test/fixtures/images_sharegroups.json +0 -0
- {linode_api4-5.44.0 → linode_api4-5.45.0}/test/fixtures/images_sharegroups_1234.json +0 -0
- {linode_api4-5.44.0 → linode_api4-5.45.0}/test/fixtures/images_sharegroups_1234_images.json +0 -0
- {linode_api4-5.44.0 → linode_api4-5.45.0}/test/fixtures/images_sharegroups_1234_images_shared_1.json +0 -0
- {linode_api4-5.44.0 → linode_api4-5.45.0}/test/fixtures/images_sharegroups_1234_members.json +0 -0
- {linode_api4-5.44.0 → linode_api4-5.45.0}/test/fixtures/images_sharegroups_1234_members_abc123.json +0 -0
- {linode_api4-5.44.0 → linode_api4-5.45.0}/test/fixtures/images_sharegroups_tokens.json +0 -0
- {linode_api4-5.44.0 → linode_api4-5.45.0}/test/fixtures/images_sharegroups_tokens_abc123.json +0 -0
- {linode_api4-5.44.0 → linode_api4-5.45.0}/test/fixtures/images_sharegroups_tokens_abc123_sharegroup.json +0 -0
- {linode_api4-5.44.0 → linode_api4-5.45.0}/test/fixtures/images_sharegroups_tokens_abc123_sharegroup_images.json +0 -0
- {linode_api4-5.44.0 → linode_api4-5.45.0}/test/fixtures/images_upload.json +0 -0
- {linode_api4-5.44.0 → linode_api4-5.45.0}/test/fixtures/linode_instances.json +0 -0
- {linode_api4-5.44.0 → linode_api4-5.45.0}/test/fixtures/linode_instances_123_backups.json +0 -0
- {linode_api4-5.44.0 → linode_api4-5.45.0}/test/fixtures/linode_instances_123_configs.json +0 -0
- {linode_api4-5.44.0 → linode_api4-5.45.0}/test/fixtures/linode_instances_123_configs_456789.json +0 -0
- {linode_api4-5.44.0 → linode_api4-5.45.0}/test/fixtures/linode_instances_123_configs_456789_interfaces.json +0 -0
- {linode_api4-5.44.0 → linode_api4-5.45.0}/test/fixtures/linode_instances_123_configs_456789_interfaces_123.json +0 -0
- {linode_api4-5.44.0 → linode_api4-5.45.0}/test/fixtures/linode_instances_123_configs_456789_interfaces_123_put.json +0 -0
- {linode_api4-5.44.0 → linode_api4-5.45.0}/test/fixtures/linode_instances_123_configs_456789_interfaces_321.json +0 -0
- {linode_api4-5.44.0 → linode_api4-5.45.0}/test/fixtures/linode_instances_123_configs_456789_interfaces_456.json +0 -0
- {linode_api4-5.44.0 → linode_api4-5.45.0}/test/fixtures/linode_instances_123_disks.json +0 -0
- {linode_api4-5.44.0 → linode_api4-5.45.0}/test/fixtures/linode_instances_123_disks_12345_clone.json +0 -0
- {linode_api4-5.44.0 → linode_api4-5.45.0}/test/fixtures/linode_instances_123_firewalls.json +0 -0
- {linode_api4-5.44.0 → linode_api4-5.45.0}/test/fixtures/linode_instances_123_ips.json +0 -0
- {linode_api4-5.44.0 → linode_api4-5.45.0}/test/fixtures/linode_instances_123_nodebalancers.json +0 -0
- {linode_api4-5.44.0 → linode_api4-5.45.0}/test/fixtures/linode_instances_123_transfer.json +0 -0
- {linode_api4-5.44.0 → linode_api4-5.45.0}/test/fixtures/linode_instances_123_transfer_2023_4.json +0 -0
- {linode_api4-5.44.0 → linode_api4-5.45.0}/test/fixtures/linode_instances_123_volumes.json +0 -0
- {linode_api4-5.44.0 → linode_api4-5.45.0}/test/fixtures/linode_instances_124.json +0 -0
- {linode_api4-5.44.0 → linode_api4-5.45.0}/test/fixtures/linode_instances_124_interfaces.json +0 -0
- {linode_api4-5.44.0 → linode_api4-5.45.0}/test/fixtures/linode_instances_124_interfaces_123.json +0 -0
- {linode_api4-5.44.0 → linode_api4-5.45.0}/test/fixtures/linode_instances_124_interfaces_123_firewalls.json +0 -0
- {linode_api4-5.44.0 → linode_api4-5.45.0}/test/fixtures/linode_instances_124_interfaces_456.json +0 -0
- {linode_api4-5.44.0 → linode_api4-5.45.0}/test/fixtures/linode_instances_124_interfaces_789.json +0 -0
- {linode_api4-5.44.0 → linode_api4-5.45.0}/test/fixtures/linode_instances_124_interfaces_settings.json +0 -0
- {linode_api4-5.44.0 → linode_api4-5.45.0}/test/fixtures/linode_instances_124_upgrade-interfaces.json +0 -0
- {linode_api4-5.44.0 → linode_api4-5.45.0}/test/fixtures/linode_stackscripts_10079.json +0 -0
- {linode_api4-5.44.0 → linode_api4-5.45.0}/test/fixtures/linode_types.json +0 -0
- {linode_api4-5.44.0 → linode_api4-5.45.0}/test/fixtures/linode_types_g6-nanode-1.json +0 -0
- {linode_api4-5.44.0 → linode_api4-5.45.0}/test/fixtures/lke_clusters.json +0 -0
- {linode_api4-5.44.0 → linode_api4-5.45.0}/test/fixtures/lke_clusters_18881.json +0 -0
- {linode_api4-5.44.0 → linode_api4-5.45.0}/test/fixtures/lke_clusters_18881_control__plane__acl.json +0 -0
- {linode_api4-5.44.0 → linode_api4-5.45.0}/test/fixtures/lke_clusters_18881_dashboard.json +0 -0
- {linode_api4-5.44.0 → linode_api4-5.45.0}/test/fixtures/lke_clusters_18881_nodes_123456.json +0 -0
- {linode_api4-5.44.0 → linode_api4-5.45.0}/test/fixtures/lke_clusters_18881_pools_456.json +0 -0
- {linode_api4-5.44.0 → linode_api4-5.45.0}/test/fixtures/lke_clusters_18882.json +0 -0
- {linode_api4-5.44.0 → linode_api4-5.45.0}/test/fixtures/lke_clusters_18882_pools_789.json +0 -0
- {linode_api4-5.44.0 → linode_api4-5.45.0}/test/fixtures/lke_tiers_standard_versions.json +0 -0
- {linode_api4-5.44.0 → linode_api4-5.45.0}/test/fixtures/lke_types.json +0 -0
- {linode_api4-5.44.0 → linode_api4-5.45.0}/test/fixtures/lke_versions.json +0 -0
- {linode_api4-5.44.0 → linode_api4-5.45.0}/test/fixtures/locks.json +0 -0
- {linode_api4-5.44.0 → linode_api4-5.45.0}/test/fixtures/locks_1.json +0 -0
- {linode_api4-5.44.0 → linode_api4-5.45.0}/test/fixtures/longview_clients.json +0 -0
- {linode_api4-5.44.0 → linode_api4-5.45.0}/test/fixtures/longview_plan.json +0 -0
- {linode_api4-5.44.0 → linode_api4-5.45.0}/test/fixtures/longview_subscriptions.json +0 -0
- {linode_api4-5.44.0 → linode_api4-5.45.0}/test/fixtures/maintenance_policies.json +0 -0
- {linode_api4-5.44.0 → linode_api4-5.45.0}/test/fixtures/mongodb.json +0 -0
- {linode_api4-5.44.0 → linode_api4-5.45.0}/test/fixtures/monitor_alert-channels.json +0 -0
- {linode_api4-5.44.0 → linode_api4-5.45.0}/test/fixtures/monitor_alert-definitions.json +0 -0
- {linode_api4-5.44.0 → linode_api4-5.45.0}/test/fixtures/monitor_services.json +0 -0
- {linode_api4-5.44.0 → linode_api4-5.45.0}/test/fixtures/monitor_services_dbaas.json +0 -0
- {linode_api4-5.44.0 → linode_api4-5.45.0}/test/fixtures/monitor_services_dbaas_alert-definitions.json +0 -0
- {linode_api4-5.44.0 → linode_api4-5.45.0}/test/fixtures/monitor_services_dbaas_alert-definitions_12345.json +0 -0
- {linode_api4-5.44.0 → linode_api4-5.45.0}/test/fixtures/monitor_services_dbaas_alert-definitions_12345_entities.json +0 -0
- {linode_api4-5.44.0 → linode_api4-5.45.0}/test/fixtures/monitor_services_dbaas_metric-definitions.json +0 -0
- {linode_api4-5.44.0 → linode_api4-5.45.0}/test/fixtures/monitor_services_dbaas_metrics.json +0 -0
- {linode_api4-5.44.0 → linode_api4-5.45.0}/test/fixtures/monitor_services_dbaas_token.json +0 -0
- {linode_api4-5.44.0 → linode_api4-5.45.0}/test/fixtures/monitor_services_linode_token.json +0 -0
- {linode_api4-5.44.0 → linode_api4-5.45.0}/test/fixtures/network-transfer_prices.json +0 -0
- {linode_api4-5.44.0 → linode_api4-5.45.0}/test/fixtures/networking_firewalls.json +0 -0
- {linode_api4-5.44.0 → linode_api4-5.45.0}/test/fixtures/networking_firewalls_123.json +0 -0
- {linode_api4-5.44.0 → linode_api4-5.45.0}/test/fixtures/networking_firewalls_123_devices.json +0 -0
- {linode_api4-5.44.0 → linode_api4-5.45.0}/test/fixtures/networking_firewalls_123_devices_123.json +0 -0
- {linode_api4-5.44.0 → linode_api4-5.45.0}/test/fixtures/networking_firewalls_123_devices_456.json +0 -0
- {linode_api4-5.44.0 → linode_api4-5.45.0}/test/fixtures/networking_firewalls_123_history.json +0 -0
- {linode_api4-5.44.0 → linode_api4-5.45.0}/test/fixtures/networking_firewalls_123_history_rules_2.json +0 -0
- {linode_api4-5.44.0 → linode_api4-5.45.0}/test/fixtures/networking_firewalls_123_rules.json +0 -0
- {linode_api4-5.44.0 → linode_api4-5.45.0}/test/fixtures/networking_firewalls_settings.json +0 -0
- {linode_api4-5.44.0 → linode_api4-5.45.0}/test/fixtures/networking_firewalls_templates.json +0 -0
- {linode_api4-5.44.0 → linode_api4-5.45.0}/test/fixtures/networking_firewalls_templates_public.json +0 -0
- {linode_api4-5.44.0 → linode_api4-5.45.0}/test/fixtures/networking_firewalls_templates_vpc.json +0 -0
- {linode_api4-5.44.0 → linode_api4-5.45.0}/test/fixtures/networking_ips_127.0.0.1.json +0 -0
- {linode_api4-5.44.0 → linode_api4-5.45.0}/test/fixtures/networking_ipv6_pools.json +0 -0
- {linode_api4-5.44.0 → linode_api4-5.45.0}/test/fixtures/networking_ipv6_ranges.json +0 -0
- {linode_api4-5.44.0 → linode_api4-5.45.0}/test/fixtures/networking_ipv6_ranges_2600%3A3c01%3A%3A.json +0 -0
- {linode_api4-5.44.0 → linode_api4-5.45.0}/test/fixtures/networking_vlans.json +0 -0
- {linode_api4-5.44.0 → linode_api4-5.45.0}/test/fixtures/nodebalancers.json +0 -0
- {linode_api4-5.44.0 → linode_api4-5.45.0}/test/fixtures/nodebalancers_123456.json +0 -0
- {linode_api4-5.44.0 → linode_api4-5.45.0}/test/fixtures/nodebalancers_123456_configs.json +0 -0
- {linode_api4-5.44.0 → linode_api4-5.45.0}/test/fixtures/nodebalancers_123456_configs_65432_nodes.json +0 -0
- {linode_api4-5.44.0 → linode_api4-5.45.0}/test/fixtures/nodebalancers_12345_configs_4567_rebuild.json +0 -0
- {linode_api4-5.44.0 → linode_api4-5.45.0}/test/fixtures/nodebalancers_12345_firewalls.json +0 -0
- {linode_api4-5.44.0 → linode_api4-5.45.0}/test/fixtures/nodebalancers_12345_stats.json +0 -0
- {linode_api4-5.44.0 → linode_api4-5.45.0}/test/fixtures/nodebalancers_types.json +0 -0
- {linode_api4-5.44.0 → linode_api4-5.45.0}/test/fixtures/object-storage_buckets.json +0 -0
- {linode_api4-5.44.0 → linode_api4-5.45.0}/test/fixtures/object-storage_buckets_us-east-1.json +0 -0
- {linode_api4-5.44.0 → linode_api4-5.45.0}/test/fixtures/object-storage_buckets_us-east-1_example-bucket.json +0 -0
- {linode_api4-5.44.0 → linode_api4-5.45.0}/test/fixtures/object-storage_buckets_us-east-1_example-bucket_object-acl.json +0 -0
- {linode_api4-5.44.0 → linode_api4-5.45.0}/test/fixtures/object-storage_buckets_us-east-1_example-bucket_object-list.json +0 -0
- {linode_api4-5.44.0 → linode_api4-5.45.0}/test/fixtures/object-storage_buckets_us-east-1_example-bucket_object-url.json +0 -0
- {linode_api4-5.44.0 → linode_api4-5.45.0}/test/fixtures/object-storage_buckets_us-east-1_example-bucket_ssl.json +0 -0
- {linode_api4-5.44.0 → linode_api4-5.45.0}/test/fixtures/object-storage_buckets_us-east_example-bucket_access.json +0 -0
- {linode_api4-5.44.0 → linode_api4-5.45.0}/test/fixtures/object-storage_clusters.json +0 -0
- {linode_api4-5.44.0 → linode_api4-5.45.0}/test/fixtures/object-storage_global-quotas.json +0 -0
- {linode_api4-5.44.0 → linode_api4-5.45.0}/test/fixtures/object-storage_global-quotas_obj-access-keys-per-account.json +0 -0
- {linode_api4-5.44.0 → linode_api4-5.45.0}/test/fixtures/object-storage_global-quotas_obj-access-keys-per-account_usage.json +0 -0
- {linode_api4-5.44.0 → linode_api4-5.45.0}/test/fixtures/object-storage_keys.json +0 -0
- {linode_api4-5.44.0 → linode_api4-5.45.0}/test/fixtures/object-storage_quotas.json +0 -0
- {linode_api4-5.44.0 → linode_api4-5.45.0}/test/fixtures/object-storage_quotas_obj-objects-us-ord-1.json +0 -0
- {linode_api4-5.44.0 → linode_api4-5.45.0}/test/fixtures/object-storage_quotas_obj-objects-us-ord-1_usage.json +0 -0
- {linode_api4-5.44.0 → linode_api4-5.45.0}/test/fixtures/object-storage_transfer.json +0 -0
- {linode_api4-5.44.0 → linode_api4-5.45.0}/test/fixtures/object-storage_types.json +0 -0
- {linode_api4-5.44.0 → linode_api4-5.45.0}/test/fixtures/placement_groups.json +0 -0
- {linode_api4-5.44.0 → linode_api4-5.45.0}/test/fixtures/placement_groups_123.json +0 -0
- {linode_api4-5.44.0 → linode_api4-5.45.0}/test/fixtures/profile.json +0 -0
- {linode_api4-5.44.0 → linode_api4-5.45.0}/test/fixtures/profile_device_123.json +0 -0
- {linode_api4-5.44.0 → linode_api4-5.45.0}/test/fixtures/profile_devices.json +0 -0
- {linode_api4-5.44.0 → linode_api4-5.45.0}/test/fixtures/profile_logins.json +0 -0
- {linode_api4-5.44.0 → linode_api4-5.45.0}/test/fixtures/profile_logins_123.json +0 -0
- {linode_api4-5.44.0 → linode_api4-5.45.0}/test/fixtures/profile_preferences.json +0 -0
- {linode_api4-5.44.0 → linode_api4-5.45.0}/test/fixtures/profile_security-questions.json +0 -0
- {linode_api4-5.44.0 → linode_api4-5.45.0}/test/fixtures/profile_sshkeys.json +0 -0
- {linode_api4-5.44.0 → linode_api4-5.45.0}/test/fixtures/regions.json +0 -0
- {linode_api4-5.44.0 → linode_api4-5.45.0}/test/fixtures/regions_availability.json +0 -0
- {linode_api4-5.44.0 → linode_api4-5.45.0}/test/fixtures/regions_us-east_availability.json +0 -0
- {linode_api4-5.44.0 → linode_api4-5.45.0}/test/fixtures/regions_us-east_vpc-availability.json +0 -0
- {linode_api4-5.44.0 → linode_api4-5.45.0}/test/fixtures/regions_vpc-availability.json +0 -0
- {linode_api4-5.44.0 → linode_api4-5.45.0}/test/fixtures/support_tickets_123.json +0 -0
- {linode_api4-5.44.0 → linode_api4-5.45.0}/test/fixtures/tags.json +0 -0
- {linode_api4-5.44.0 → linode_api4-5.45.0}/test/fixtures/tags_nothing.json +0 -0
- {linode_api4-5.44.0 → linode_api4-5.45.0}/test/fixtures/tags_something.json +0 -0
- {linode_api4-5.44.0 → linode_api4-5.45.0}/test/fixtures/testmappedobj1.json +0 -0
- {linode_api4-5.44.0 → linode_api4-5.45.0}/test/fixtures/volumes.json +0 -0
- {linode_api4-5.44.0 → linode_api4-5.45.0}/test/fixtures/volumes_types.json +0 -0
- {linode_api4-5.44.0 → linode_api4-5.45.0}/test/fixtures/vpcs.json +0 -0
- {linode_api4-5.44.0 → linode_api4-5.45.0}/test/fixtures/vpcs_123456.json +0 -0
- {linode_api4-5.44.0 → linode_api4-5.45.0}/test/fixtures/vpcs_123456_ips.json +0 -0
- {linode_api4-5.44.0 → linode_api4-5.45.0}/test/fixtures/vpcs_123456_subnets.json +0 -0
- {linode_api4-5.44.0 → linode_api4-5.45.0}/test/fixtures/vpcs_123456_subnets_789.json +0 -0
- {linode_api4-5.44.0 → linode_api4-5.45.0}/test/fixtures/vpcs_ips.json +0 -0
- {linode_api4-5.44.0 → linode_api4-5.45.0}/test/integration/__init__.py +0 -0
- {linode_api4-5.44.0 → linode_api4-5.45.0}/test/integration/filters/fixtures.py +0 -0
- {linode_api4-5.44.0 → linode_api4-5.45.0}/test/integration/filters/model_filters_test.py +0 -0
- {linode_api4-5.44.0 → linode_api4-5.45.0}/test/integration/helpers.py +0 -0
- {linode_api4-5.44.0 → linode_api4-5.45.0}/test/integration/linode_client/__init__.py +0 -0
- {linode_api4-5.44.0 → linode_api4-5.45.0}/test/integration/linode_client/test_errors.py +0 -0
- {linode_api4-5.44.0 → linode_api4-5.45.0}/test/integration/linode_client/test_retry.py +0 -0
- {linode_api4-5.44.0 → linode_api4-5.45.0}/test/integration/login_client/test_login_client.py +0 -0
- {linode_api4-5.44.0 → linode_api4-5.45.0}/test/integration/models/__init__.py +0 -0
- {linode_api4-5.44.0 → linode_api4-5.45.0}/test/integration/models/database/helpers.py +0 -0
- {linode_api4-5.44.0 → linode_api4-5.45.0}/test/integration/models/database/test_database.py +0 -0
- {linode_api4-5.44.0 → linode_api4-5.45.0}/test/integration/models/database/test_database_engine_config.py +0 -0
- {linode_api4-5.44.0 → linode_api4-5.45.0}/test/integration/models/firewall/test_firewall.py +0 -0
- {linode_api4-5.44.0 → linode_api4-5.45.0}/test/integration/models/firewall/test_firewall_templates.py +0 -0
- {linode_api4-5.44.0 → linode_api4-5.45.0}/test/integration/models/image/test_image.py +0 -0
- {linode_api4-5.44.0 → linode_api4-5.45.0}/test/integration/models/lke/test_lke.py +0 -0
- {linode_api4-5.44.0 → linode_api4-5.45.0}/test/integration/models/lock/__init__.py +0 -0
- {linode_api4-5.44.0 → linode_api4-5.45.0}/test/integration/models/lock/test_lock.py +0 -0
- {linode_api4-5.44.0 → linode_api4-5.45.0}/test/integration/models/longview/test_longview.py +0 -0
- {linode_api4-5.44.0 → linode_api4-5.45.0}/test/integration/models/maintenance/test_maintenance.py +0 -0
- {linode_api4-5.44.0 → linode_api4-5.45.0}/test/integration/models/monitor/test_monitor.py +0 -0
- {linode_api4-5.44.0 → linode_api4-5.45.0}/test/integration/models/monitor_api/test_monitor_api.py +0 -0
- {linode_api4-5.44.0 → linode_api4-5.45.0}/test/integration/models/object_storage/test_obj.py +0 -0
- {linode_api4-5.44.0 → linode_api4-5.45.0}/test/integration/models/object_storage/test_obj_quotas.py +0 -0
- {linode_api4-5.44.0 → linode_api4-5.45.0}/test/integration/models/profile/test_profile.py +0 -0
- {linode_api4-5.44.0 → linode_api4-5.45.0}/test/integration/models/region/test_region.py +0 -0
- {linode_api4-5.44.0 → linode_api4-5.45.0}/test/integration/models/sharegroups/test_sharegroups.py +0 -0
- {linode_api4-5.44.0 → linode_api4-5.45.0}/test/integration/models/volume/test_blockstorage.py +0 -0
- {linode_api4-5.44.0 → linode_api4-5.45.0}/test/integration/models/volume/test_volume.py +0 -0
- {linode_api4-5.44.0 → linode_api4-5.45.0}/test/unit/__init__.py +0 -0
- {linode_api4-5.44.0 → linode_api4-5.45.0}/test/unit/base.py +0 -0
- {linode_api4-5.44.0 → linode_api4-5.45.0}/test/unit/errors_test.py +0 -0
- {linode_api4-5.44.0 → linode_api4-5.45.0}/test/unit/fixtures.py +0 -0
- {linode_api4-5.44.0 → linode_api4-5.45.0}/test/unit/groups/__init__.py +0 -0
- {linode_api4-5.44.0 → linode_api4-5.45.0}/test/unit/groups/database_test.py +0 -0
- {linode_api4-5.44.0 → linode_api4-5.45.0}/test/unit/groups/image_share_group_test.py +0 -0
- {linode_api4-5.44.0 → linode_api4-5.45.0}/test/unit/groups/image_test.py +0 -0
- {linode_api4-5.44.0 → linode_api4-5.45.0}/test/unit/groups/linode_test.py +0 -0
- {linode_api4-5.44.0 → linode_api4-5.45.0}/test/unit/groups/lke_test.py +0 -0
- {linode_api4-5.44.0 → linode_api4-5.45.0}/test/unit/groups/lke_tier_test.py +0 -0
- {linode_api4-5.44.0 → linode_api4-5.45.0}/test/unit/groups/lock_test.py +0 -0
- {linode_api4-5.44.0 → linode_api4-5.45.0}/test/unit/groups/monitor_api_test.py +0 -0
- {linode_api4-5.44.0 → linode_api4-5.45.0}/test/unit/groups/object_storage_test.py +0 -0
- {linode_api4-5.44.0 → linode_api4-5.45.0}/test/unit/groups/placement_test.py +0 -0
- {linode_api4-5.44.0 → linode_api4-5.45.0}/test/unit/groups/polling_test.py +0 -0
- {linode_api4-5.44.0 → linode_api4-5.45.0}/test/unit/groups/region_test.py +0 -0
- {linode_api4-5.44.0 → linode_api4-5.45.0}/test/unit/groups/vpc_test.py +0 -0
- {linode_api4-5.44.0 → linode_api4-5.45.0}/test/unit/linode_client_test.py +0 -0
- {linode_api4-5.44.0 → linode_api4-5.45.0}/test/unit/login_client_test.py +0 -0
- {linode_api4-5.44.0 → linode_api4-5.45.0}/test/unit/objects/account_test.py +0 -0
- {linode_api4-5.44.0 → linode_api4-5.45.0}/test/unit/objects/base_test.py +0 -0
- {linode_api4-5.44.0 → linode_api4-5.45.0}/test/unit/objects/beta_test.py +0 -0
- {linode_api4-5.44.0 → linode_api4-5.45.0}/test/unit/objects/database_test.py +0 -0
- {linode_api4-5.44.0 → linode_api4-5.45.0}/test/unit/objects/domain_test.py +0 -0
- {linode_api4-5.44.0 → linode_api4-5.45.0}/test/unit/objects/firewall_test.py +0 -0
- {linode_api4-5.44.0 → linode_api4-5.45.0}/test/unit/objects/image_share_group_test.py +0 -0
- {linode_api4-5.44.0 → linode_api4-5.45.0}/test/unit/objects/image_test.py +0 -0
- {linode_api4-5.44.0 → linode_api4-5.45.0}/test/unit/objects/linode_interface_test.py +0 -0
- {linode_api4-5.44.0 → linode_api4-5.45.0}/test/unit/objects/linode_test.py +0 -0
- {linode_api4-5.44.0 → linode_api4-5.45.0}/test/unit/objects/lke_test.py +0 -0
- {linode_api4-5.44.0 → linode_api4-5.45.0}/test/unit/objects/lock_test.py +0 -0
- {linode_api4-5.44.0 → linode_api4-5.45.0}/test/unit/objects/longview_test.py +0 -0
- {linode_api4-5.44.0 → linode_api4-5.45.0}/test/unit/objects/mapped_object_test.py +0 -0
- {linode_api4-5.44.0 → linode_api4-5.45.0}/test/unit/objects/nodebalancers_test.py +0 -0
- {linode_api4-5.44.0 → linode_api4-5.45.0}/test/unit/objects/object_storage_test.py +0 -0
- {linode_api4-5.44.0 → linode_api4-5.45.0}/test/unit/objects/placement_test.py +0 -0
- {linode_api4-5.44.0 → linode_api4-5.45.0}/test/unit/objects/profile_test.py +0 -0
- {linode_api4-5.44.0 → linode_api4-5.45.0}/test/unit/objects/property_alias_test.py +0 -0
- {linode_api4-5.44.0 → linode_api4-5.45.0}/test/unit/objects/region_test.py +0 -0
- {linode_api4-5.44.0 → linode_api4-5.45.0}/test/unit/objects/serializable_test.py +0 -0
- {linode_api4-5.44.0 → linode_api4-5.45.0}/test/unit/objects/support_test.py +0 -0
- {linode_api4-5.44.0 → linode_api4-5.45.0}/test/unit/objects/volume_test.py +0 -0
- {linode_api4-5.44.0 → linode_api4-5.45.0}/test/unit/objects/vpc_test.py +0 -0
- {linode_api4-5.44.0 → linode_api4-5.45.0}/test/unit/paginated_list_test.py +0 -0
- {linode_api4-5.44.0 → linode_api4-5.45.0}/test/unit/util_test.py +0 -0
|
@@ -166,6 +166,7 @@ class LinodeGroup(Group):
|
|
|
166
166
|
kernel: Optional[str] = None,
|
|
167
167
|
boot_size: Optional[int] = None,
|
|
168
168
|
authorized_users: Optional[List[str]] = None,
|
|
169
|
+
ipv4: Optional[List[str]] = None,
|
|
169
170
|
**kwargs,
|
|
170
171
|
):
|
|
171
172
|
"""
|
|
@@ -355,6 +356,9 @@ class LinodeGroup(Group):
|
|
|
355
356
|
:param boot_size: The size of the boot disk in MB. If provided, this will be used to create
|
|
356
357
|
the boot disk for the Instance.
|
|
357
358
|
:type boot_size: int
|
|
359
|
+
:param ipv4: A list of reserved IPv4 addresses to assign to this Instance.
|
|
360
|
+
NOTE: Reserved IP feature may not currently be available to all users.
|
|
361
|
+
:type ipv4: list[str]
|
|
358
362
|
|
|
359
363
|
:returns: A new Instance object
|
|
360
364
|
:rtype: Instance
|
|
@@ -401,6 +405,7 @@ class LinodeGroup(Group):
|
|
|
401
405
|
"network_helper": network_helper,
|
|
402
406
|
"kernel": kernel,
|
|
403
407
|
"boot_size": boot_size,
|
|
408
|
+
"ipv4": ipv4,
|
|
404
409
|
}
|
|
405
410
|
|
|
406
411
|
params.update(kwargs)
|
|
@@ -8,11 +8,21 @@ from linode_api4.objects import (
|
|
|
8
8
|
AlertDefinition,
|
|
9
9
|
AlertDefinitionEntity,
|
|
10
10
|
AlertScope,
|
|
11
|
+
LogsDestination,
|
|
12
|
+
LogsDestinationType,
|
|
13
|
+
LogsStream,
|
|
14
|
+
LogsStreamStatus,
|
|
15
|
+
LogsStreamType,
|
|
11
16
|
MonitorDashboard,
|
|
12
17
|
MonitorMetricsDefinition,
|
|
13
18
|
MonitorService,
|
|
14
19
|
MonitorServiceToken,
|
|
15
20
|
)
|
|
21
|
+
from linode_api4.objects.monitor import (
|
|
22
|
+
AkamaiObjectStorageLogsDestinationDetails,
|
|
23
|
+
CustomHTTPSLogsDestinationDetails,
|
|
24
|
+
LogsStreamDetails,
|
|
25
|
+
)
|
|
16
26
|
|
|
17
27
|
__all__ = [
|
|
18
28
|
"MonitorGroup",
|
|
@@ -37,8 +47,6 @@ class MonitorGroup(Group):
|
|
|
37
47
|
dashboard = client.load(MonitorDashboard, 1)
|
|
38
48
|
dashboards_by_service = client.monitor.dashboards(service_type="dbaas")
|
|
39
49
|
|
|
40
|
-
.. note:: This endpoint is in beta. This will only function if base_url is set to `https://api.linode.com/v4beta`.
|
|
41
|
-
|
|
42
50
|
API Documentation:
|
|
43
51
|
- All Dashboards: https://techdocs.akamai.com/linode-api/reference/get-dashboards-all
|
|
44
52
|
- Dashboards by Service: https://techdocs.akamai.com/linode-api/reference/get-dashboards
|
|
@@ -73,8 +81,6 @@ class MonitorGroup(Group):
|
|
|
73
81
|
supported_services = client.monitor.services()
|
|
74
82
|
service_details = client.monitor.load(MonitorService, "dbaas")
|
|
75
83
|
|
|
76
|
-
.. note:: This endpoint is in beta. This will only function if base_url is set to `https://api.linode.com/v4beta`.
|
|
77
|
-
|
|
78
84
|
API Documentation: https://techdocs.akamai.com/linode-api/reference/get-monitor-services
|
|
79
85
|
API Documentation: https://techdocs.akamai.com/linode-api/reference/get-monitor-services-for-service-type
|
|
80
86
|
|
|
@@ -100,7 +106,6 @@ class MonitorGroup(Group):
|
|
|
100
106
|
Returns metrics for a specific service type.
|
|
101
107
|
|
|
102
108
|
metrics = client.monitor.list_metric_definitions(service_type="dbaas")
|
|
103
|
-
.. note:: This endpoint is in beta. This will only function if base_url is set to `https://api.linode.com/v4beta`.
|
|
104
109
|
|
|
105
110
|
API Documentation: https://techdocs.akamai.com/linode-api/reference/get-monitor-information
|
|
106
111
|
|
|
@@ -126,8 +131,6 @@ class MonitorGroup(Group):
|
|
|
126
131
|
Returns a JWE Token for a specific service type.
|
|
127
132
|
token = client.monitor.create_token(service_type="dbaas", entity_ids=[1234])
|
|
128
133
|
|
|
129
|
-
.. note:: This endpoint is in beta. This will only function if base_url is set to `https://api.linode.com/v4beta`.
|
|
130
|
-
|
|
131
134
|
API Documentation: https://techdocs.akamai.com/linode-api/reference/post-get-token
|
|
132
135
|
|
|
133
136
|
:param service_type: The service type to create token for.
|
|
@@ -165,7 +168,6 @@ class MonitorGroup(Group):
|
|
|
165
168
|
|
|
166
169
|
alerts = client.monitor.alert_definitions()
|
|
167
170
|
alerts_by_service = client.monitor.alert_definitions(service_type="dbaas")
|
|
168
|
-
.. note:: This endpoint is in beta and requires using the v4beta base URL.
|
|
169
171
|
|
|
170
172
|
API Documentation:
|
|
171
173
|
https://techdocs.akamai.com/linode-api/reference/get-alert-definitions
|
|
@@ -202,8 +204,6 @@ class MonitorGroup(Group):
|
|
|
202
204
|
Examples:
|
|
203
205
|
channels = client.monitor.alert_channels()
|
|
204
206
|
|
|
205
|
-
.. note:: This endpoint is in beta and requires using the v4beta base URL.
|
|
206
|
-
|
|
207
207
|
API Documentation: https://techdocs.akamai.com/linode-api/reference/get-notification-channels
|
|
208
208
|
|
|
209
209
|
:param filters: Optional filter expressions to apply to the collection.
|
|
@@ -232,8 +232,6 @@ class MonitorGroup(Group):
|
|
|
232
232
|
The alert definition configures when alerts are fired and which channels
|
|
233
233
|
are notified.
|
|
234
234
|
|
|
235
|
-
.. note:: This endpoint is in beta and requires using the v4beta base URL.
|
|
236
|
-
|
|
237
235
|
API Documentation: https://techdocs.akamai.com/linode-api/reference/post-alert-definition-for-service-type
|
|
238
236
|
|
|
239
237
|
:param service_type: Service type for which to create the alert definition
|
|
@@ -309,9 +307,7 @@ class MonitorGroup(Group):
|
|
|
309
307
|
|
|
310
308
|
This endpoint supports pagination fields (`page`, `page_size`) in the API.
|
|
311
309
|
|
|
312
|
-
|
|
313
|
-
|
|
314
|
-
API Documentation: TODO
|
|
310
|
+
API Documentation: https://techdocs.akamai.com/linode-api/reference/get-alert-definition-entities
|
|
315
311
|
|
|
316
312
|
:param service_type: Service type for the alert definition (e.g. `dbaas`).
|
|
317
313
|
:type service_type: str
|
|
@@ -332,3 +328,206 @@ class MonitorGroup(Group):
|
|
|
332
328
|
*filters,
|
|
333
329
|
endpoint=endpoint,
|
|
334
330
|
)
|
|
331
|
+
|
|
332
|
+
def destinations(self, *filters) -> PaginatedList:
|
|
333
|
+
"""
|
|
334
|
+
List available logs destinations.
|
|
335
|
+
|
|
336
|
+
Returns a paginated collection of :class:`LogsDestination` objects which
|
|
337
|
+
describe logs destinations. By default, this method returns all available
|
|
338
|
+
destinations; you can supply optional filter expressions to restrict
|
|
339
|
+
the results, for example::
|
|
340
|
+
|
|
341
|
+
# Get destinations created by username and with id 111
|
|
342
|
+
destinations = client.monitor.destinations(LogsDestination.created_by == "username",
|
|
343
|
+
LogsDestination.id == 111)
|
|
344
|
+
|
|
345
|
+
API Documentation: https://techdocs.akamai.com/linode-api/reference/get-destinations
|
|
346
|
+
|
|
347
|
+
:param filters: Any number of filters to apply to this query.
|
|
348
|
+
See :doc:`Filtering Collections</linode_api4/objects/filtering>`
|
|
349
|
+
for more details on filtering.
|
|
350
|
+
|
|
351
|
+
:returns: A list of :class:`LogsDestination` objects matching the query.
|
|
352
|
+
:rtype: PaginatedList of LogsDestination
|
|
353
|
+
"""
|
|
354
|
+
|
|
355
|
+
return self.client._get_and_filter(LogsDestination, *filters)
|
|
356
|
+
|
|
357
|
+
def destination_create(
|
|
358
|
+
self,
|
|
359
|
+
label: str,
|
|
360
|
+
type: Union[LogsDestinationType, str],
|
|
361
|
+
details: Union[
|
|
362
|
+
AkamaiObjectStorageLogsDestinationDetails,
|
|
363
|
+
CustomHTTPSLogsDestinationDetails,
|
|
364
|
+
],
|
|
365
|
+
) -> LogsDestination:
|
|
366
|
+
"""
|
|
367
|
+
Creates a new :any:`LogsDestination` for logs on this account.
|
|
368
|
+
|
|
369
|
+
For an ``akamai_object_storage`` destination::
|
|
370
|
+
|
|
371
|
+
client = LinodeClient(TOKEN)
|
|
372
|
+
|
|
373
|
+
new_destination = client.monitor.destination_create(
|
|
374
|
+
label="OBJ_logs_destination",
|
|
375
|
+
type="akamai_object_storage",
|
|
376
|
+
details=AkamaiObjectStorageLogsDestinationDetails(
|
|
377
|
+
access_key_id="1ABCD23EFG4HIJKLMNO5",
|
|
378
|
+
access_key_secret="1aB2CD3e4fgHi5JK6lmnop7qR8STU9VxYzabcdefHh",
|
|
379
|
+
bucket_name="primary-bucket",
|
|
380
|
+
host="primary-bucket-1.us-east-12.linodeobjects.com",
|
|
381
|
+
path="audit-logs",
|
|
382
|
+
)
|
|
383
|
+
)
|
|
384
|
+
|
|
385
|
+
For a ``custom_https`` destination::
|
|
386
|
+
|
|
387
|
+
new_destination = client.monitor.destination_create(
|
|
388
|
+
label="custom_logs_destination",
|
|
389
|
+
type="custom_https",
|
|
390
|
+
details=CustomHTTPSLogsDestinationDetails(
|
|
391
|
+
endpoint_url="https://my-site.com/log-storage/basicAuth",
|
|
392
|
+
authentication=DestinationAuthentication(
|
|
393
|
+
type="basic",
|
|
394
|
+
details=BasicAuthenticationDetails(
|
|
395
|
+
basic_authentication_user="user",
|
|
396
|
+
basic_authentication_password="pass",
|
|
397
|
+
),
|
|
398
|
+
),
|
|
399
|
+
data_compression="gzip",
|
|
400
|
+
content_type="application/json",
|
|
401
|
+
)
|
|
402
|
+
)
|
|
403
|
+
|
|
404
|
+
API Documentation: https://techdocs.akamai.com/linode-api/reference/post-destination
|
|
405
|
+
|
|
406
|
+
:param label: The name for this logs destination.
|
|
407
|
+
:type label: str
|
|
408
|
+
:param type: The type of destination — ``akamai_object_storage`` or ``custom_https``.
|
|
409
|
+
:type type: str or LogsDestinationType
|
|
410
|
+
:param details: A typed details object matching the destination type.
|
|
411
|
+
Use :class:`AkamaiObjectStorageLogsDestinationDetails` for
|
|
412
|
+
``akamai_object_storage`` or :class:`CustomHTTPSLogsDestinationDetails`
|
|
413
|
+
for ``custom_https``.
|
|
414
|
+
:type details: AkamaiObjectStorageLogsDestinationDetails or CustomHTTPSLogsDestinationDetails
|
|
415
|
+
|
|
416
|
+
:returns: The newly created logs destination.
|
|
417
|
+
:rtype: LogsDestination
|
|
418
|
+
"""
|
|
419
|
+
|
|
420
|
+
params = {
|
|
421
|
+
"label": label,
|
|
422
|
+
"type": type,
|
|
423
|
+
"details": details.dict,
|
|
424
|
+
}
|
|
425
|
+
|
|
426
|
+
result = self.client.post("/monitor/streams/destinations", data=params)
|
|
427
|
+
|
|
428
|
+
if "id" not in result:
|
|
429
|
+
raise UnexpectedResponseError(
|
|
430
|
+
"Unexpected response when creating destination!",
|
|
431
|
+
json=result,
|
|
432
|
+
)
|
|
433
|
+
|
|
434
|
+
return LogsDestination(self.client, result["id"], result)
|
|
435
|
+
|
|
436
|
+
def streams(self, *filters) -> PaginatedList:
|
|
437
|
+
"""
|
|
438
|
+
List available logs streams.
|
|
439
|
+
|
|
440
|
+
Returns a paginated collection of :class:`LogsStream` objects which
|
|
441
|
+
describe logs streams. By default, this method returns all available
|
|
442
|
+
streams; you can supply optional filter expressions to restrict
|
|
443
|
+
the results, for example::
|
|
444
|
+
|
|
445
|
+
# Get all streams with status ``provisioning``
|
|
446
|
+
provisioning_streams = client.monitor.streams(LogsStream.status == "provisioning")
|
|
447
|
+
|
|
448
|
+
API Documentation: https://techdocs.akamai.com/linode-api/reference/get-streams
|
|
449
|
+
|
|
450
|
+
:param filters: Any number of filters to apply to this query.
|
|
451
|
+
See :doc:`Filtering Collections</linode_api4/objects/filtering>`
|
|
452
|
+
for more details on filtering.
|
|
453
|
+
:returns: A list of :class:`LogsStream` objects matching the query.
|
|
454
|
+
:rtype: PaginatedList of LogsStream
|
|
455
|
+
"""
|
|
456
|
+
|
|
457
|
+
return self.client._get_and_filter(LogsStream, *filters)
|
|
458
|
+
|
|
459
|
+
def stream_create(
|
|
460
|
+
self,
|
|
461
|
+
destinations: list[int],
|
|
462
|
+
label: str,
|
|
463
|
+
type: Union[LogsStreamType, str],
|
|
464
|
+
status: Optional[Union[LogsStreamStatus, str]] = None,
|
|
465
|
+
details: Optional[LogsStreamDetails] = None,
|
|
466
|
+
) -> LogsStream:
|
|
467
|
+
"""
|
|
468
|
+
Creates a new :any:`LogsStream` for logs on this account. For example::
|
|
469
|
+
|
|
470
|
+
client = LinodeClient(TOKEN)
|
|
471
|
+
|
|
472
|
+
# audit_logs stream (no details required)
|
|
473
|
+
new_stream = client.monitor.stream_create(
|
|
474
|
+
destinations=[1234],
|
|
475
|
+
label="Linode_services",
|
|
476
|
+
status="active",
|
|
477
|
+
type="audit_logs"
|
|
478
|
+
)
|
|
479
|
+
|
|
480
|
+
# lke_audit_logs stream with specific clusters
|
|
481
|
+
lke_stream = client.monitor.stream_create(
|
|
482
|
+
destinations=[1234],
|
|
483
|
+
label="LKE_audit_stream",
|
|
484
|
+
type="lke_audit_logs",
|
|
485
|
+
details=LogsStreamDetails(
|
|
486
|
+
cluster_ids=[1111, 2222],
|
|
487
|
+
is_auto_add_all_clusters_enabled=False,
|
|
488
|
+
)
|
|
489
|
+
)
|
|
490
|
+
|
|
491
|
+
API Documentation: https://techdocs.akamai.com/linode-api/reference/post-stream
|
|
492
|
+
|
|
493
|
+
:param destinations: The unique identifier for the sync point that will receive logs data.
|
|
494
|
+
Run the List destinations operation and store the id values for each applicable destination.
|
|
495
|
+
At the moment only single destination is supported.
|
|
496
|
+
:type destinations: list[int]
|
|
497
|
+
:param label: The name of the stream. This is used for display purposes in Akamai Cloud Manager.
|
|
498
|
+
:type label: str
|
|
499
|
+
:param type: The type of stream — ``audit_logs`` for Linode control plane logs,
|
|
500
|
+
or ``lke_audit_logs`` for LKE enterprise cluster audit logs.
|
|
501
|
+
:type type: str or LogsStreamType
|
|
502
|
+
:param status: (Optional) The availability status of the stream. Possible values are: ``active``, ``inactive``.
|
|
503
|
+
Defaults to ``active``.
|
|
504
|
+
:type status: str
|
|
505
|
+
:param details: (Optional) Additional stream details. Only applicable for
|
|
506
|
+
``lke_audit_logs`` streams. Omit for ``audit_logs`` streams.
|
|
507
|
+
:type details: LogsStreamDetails
|
|
508
|
+
|
|
509
|
+
:returns: The newly created logs stream.
|
|
510
|
+
:rtype: LogsStream
|
|
511
|
+
"""
|
|
512
|
+
|
|
513
|
+
params = {
|
|
514
|
+
"label": label,
|
|
515
|
+
"type": type,
|
|
516
|
+
"destinations": destinations,
|
|
517
|
+
}
|
|
518
|
+
|
|
519
|
+
if status is not None:
|
|
520
|
+
params["status"] = status
|
|
521
|
+
|
|
522
|
+
if details is not None:
|
|
523
|
+
params["details"] = details.dict
|
|
524
|
+
|
|
525
|
+
result = self.client.post("/monitor/streams", data=params)
|
|
526
|
+
|
|
527
|
+
if "id" not in result:
|
|
528
|
+
raise UnexpectedResponseError(
|
|
529
|
+
"Unexpected response when creating logs stream!",
|
|
530
|
+
json=result,
|
|
531
|
+
)
|
|
532
|
+
|
|
533
|
+
return LogsStream(self.client, result["id"], result)
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
from typing import Any, Dict, Optional, Union
|
|
1
|
+
from typing import Any, Dict, List, Optional, Union
|
|
2
2
|
|
|
3
3
|
from linode_api4.errors import UnexpectedResponseError
|
|
4
4
|
from linode_api4.groups import Group
|
|
@@ -17,6 +17,8 @@ from linode_api4.objects import (
|
|
|
17
17
|
Region,
|
|
18
18
|
)
|
|
19
19
|
from linode_api4.objects.base import _flatten_request_body_recursive
|
|
20
|
+
from linode_api4.objects.networking import ReservedIPAddress, ReservedIPType
|
|
21
|
+
from linode_api4.paginated_list import PaginatedList
|
|
20
22
|
from linode_api4.util import drop_null_keys
|
|
21
23
|
|
|
22
24
|
|
|
@@ -328,10 +330,23 @@ class NetworkingGroup(Group):
|
|
|
328
330
|
},
|
|
329
331
|
)
|
|
330
332
|
|
|
331
|
-
def ip_allocate(
|
|
333
|
+
def ip_allocate(
|
|
334
|
+
self,
|
|
335
|
+
linode: Optional[Union[Instance, int]] = None,
|
|
336
|
+
public: bool = True,
|
|
337
|
+
reserved: bool = False,
|
|
338
|
+
region: Optional[Union[Region, str]] = None,
|
|
339
|
+
) -> IPAddress:
|
|
332
340
|
"""
|
|
333
|
-
Allocates an IP to
|
|
334
|
-
|
|
341
|
+
Allocates an IP to an Instance you own, or reserves a new IP address.
|
|
342
|
+
|
|
343
|
+
When ``reserved`` is False (default), ``linode`` is required and an
|
|
344
|
+
ephemeral IP is allocated and assigned to that Instance.
|
|
345
|
+
|
|
346
|
+
When ``reserved`` is True, either ``region`` or ``linode`` must be
|
|
347
|
+
provided. Passing only ``region`` creates an unassigned reserved IP.
|
|
348
|
+
Passing ``linode`` (with or without ``region``) creates a reserved IP
|
|
349
|
+
in the Instance's region and assigns it to that Instance.
|
|
335
350
|
|
|
336
351
|
API Documentation: https://techdocs.akamai.com/linode-api/reference/post-allocate-ip
|
|
337
352
|
|
|
@@ -339,18 +354,42 @@ class NetworkingGroup(Group):
|
|
|
339
354
|
:type linode: Instance or int
|
|
340
355
|
:param public: If True, allocate a public IP address. Defaults to True.
|
|
341
356
|
:type public: bool
|
|
357
|
+
:param reserved: If True, reserve the new IP address.
|
|
358
|
+
NOTE: Reserved IP feature may not currently be available to all users.
|
|
359
|
+
:type reserved: bool
|
|
360
|
+
:param region: The region for the reserved IP (required when reserved=True and linode is not set).
|
|
361
|
+
NOTE: Reserved IP feature may not currently be available to all users.
|
|
362
|
+
:type region: str or Region
|
|
342
363
|
|
|
343
364
|
:returns: The new IPAddress.
|
|
344
365
|
:rtype: IPAddress
|
|
345
366
|
"""
|
|
346
|
-
|
|
347
|
-
"
|
|
348
|
-
|
|
349
|
-
|
|
350
|
-
"
|
|
351
|
-
|
|
352
|
-
|
|
353
|
-
|
|
367
|
+
if not reserved and linode is None:
|
|
368
|
+
raise ValueError("linode is required when reserved is False.")
|
|
369
|
+
if reserved and linode is None and region is None:
|
|
370
|
+
raise ValueError(
|
|
371
|
+
"Either linode or region must be provided when reserved is True."
|
|
372
|
+
)
|
|
373
|
+
if not reserved and region is not None:
|
|
374
|
+
raise ValueError("region is only valid when reserved is True.")
|
|
375
|
+
|
|
376
|
+
data = {
|
|
377
|
+
"type": "ipv4",
|
|
378
|
+
"public": public,
|
|
379
|
+
}
|
|
380
|
+
|
|
381
|
+
if linode is not None:
|
|
382
|
+
data["linode_id"] = (
|
|
383
|
+
linode.id if isinstance(linode, Base) else linode
|
|
384
|
+
)
|
|
385
|
+
|
|
386
|
+
if reserved:
|
|
387
|
+
data["reserved"] = True
|
|
388
|
+
|
|
389
|
+
if region is not None:
|
|
390
|
+
data["region"] = region.id if isinstance(region, Base) else region
|
|
391
|
+
|
|
392
|
+
result = self.client.post("/networking/ips/", data=data)
|
|
354
393
|
|
|
355
394
|
if not "address" in result:
|
|
356
395
|
raise UnexpectedResponseError(
|
|
@@ -510,3 +549,76 @@ class NetworkingGroup(Group):
|
|
|
510
549
|
return False
|
|
511
550
|
|
|
512
551
|
return True
|
|
552
|
+
|
|
553
|
+
def reserved_ips(self, *filters) -> PaginatedList:
|
|
554
|
+
"""
|
|
555
|
+
Returns a list of reserved IPv4 addresses on your account.
|
|
556
|
+
|
|
557
|
+
NOTE: Reserved IP feature may not currently be available to all users.
|
|
558
|
+
|
|
559
|
+
API Documentation: https://techdocs.akamai.com/linode-api/reference/get-reserved-ips
|
|
560
|
+
|
|
561
|
+
:param filters: Any number of filters to apply to this query.
|
|
562
|
+
See :doc:`Filtering Collections</linode_api4/objects/filtering>`
|
|
563
|
+
for more details on filtering.
|
|
564
|
+
|
|
565
|
+
:returns: A list of reserved IP addresses on the account.
|
|
566
|
+
:rtype: PaginatedList of ReservedIPAddress
|
|
567
|
+
"""
|
|
568
|
+
return self.client._get_and_filter(ReservedIPAddress, *filters)
|
|
569
|
+
|
|
570
|
+
def reserved_ip_create(
|
|
571
|
+
self,
|
|
572
|
+
region: Union[Region, str],
|
|
573
|
+
tags: Optional[List[str]] = None,
|
|
574
|
+
**kwargs,
|
|
575
|
+
) -> ReservedIPAddress:
|
|
576
|
+
"""
|
|
577
|
+
Reserves a new IPv4 address in the given region.
|
|
578
|
+
|
|
579
|
+
NOTE: Reserved IP feature may not currently be available to all users.
|
|
580
|
+
|
|
581
|
+
API Documentation: https://techdocs.akamai.com/linode-api/reference/post-reserved-ip
|
|
582
|
+
|
|
583
|
+
:param region: The region in which to reserve the IP.
|
|
584
|
+
:type region: str or Region
|
|
585
|
+
:param tags: Tags to apply to the reserved IP.
|
|
586
|
+
:type tags: list of str
|
|
587
|
+
|
|
588
|
+
:returns: The new reserved IP address.
|
|
589
|
+
:rtype: ReservedIPAddress
|
|
590
|
+
"""
|
|
591
|
+
params = {
|
|
592
|
+
"region": region.id if isinstance(region, Region) else region,
|
|
593
|
+
}
|
|
594
|
+
if tags is not None:
|
|
595
|
+
params["tags"] = tags
|
|
596
|
+
params.update(kwargs)
|
|
597
|
+
|
|
598
|
+
result = self.client.post("/networking/reserved/ips", data=params)
|
|
599
|
+
|
|
600
|
+
if "address" not in result:
|
|
601
|
+
raise UnexpectedResponseError(
|
|
602
|
+
"Unexpected response when reserving IP address!", json=result
|
|
603
|
+
)
|
|
604
|
+
|
|
605
|
+
return ReservedIPAddress(self.client, result["address"], result)
|
|
606
|
+
|
|
607
|
+
def reserved_ip_types(self, *filters) -> PaginatedList:
|
|
608
|
+
"""
|
|
609
|
+
Returns a list of reserved IP types with pricing information.
|
|
610
|
+
|
|
611
|
+
NOTE: Reserved IP feature may not currently be available to all users.
|
|
612
|
+
|
|
613
|
+
API Documentation: https://techdocs.akamai.com/linode-api/reference/get-reserved-ip-types
|
|
614
|
+
|
|
615
|
+
:param filters: Any number of filters to apply to this query.
|
|
616
|
+
See :doc:`Filtering Collections</linode_api4/objects/filtering>`
|
|
617
|
+
for more details on filtering.
|
|
618
|
+
|
|
619
|
+
:returns: A list of reserved IP types.
|
|
620
|
+
:rtype: PaginatedList of ReservedIPType
|
|
621
|
+
"""
|
|
622
|
+
return self.client._get_and_filter(
|
|
623
|
+
ReservedIPType, *filters, endpoint="/networking/reserved/ips/types"
|
|
624
|
+
)
|
|
@@ -32,20 +32,26 @@ class NodeBalancerGroup(Group):
|
|
|
32
32
|
|
|
33
33
|
:param region: The Region in which to create the NodeBalancer.
|
|
34
34
|
:type region: Region or str
|
|
35
|
+
:param ipv4: A reserved IPv4 address to assign to this NodeBalancer.
|
|
36
|
+
NOTE: Reserved IP feature may not currently be available to all users.
|
|
37
|
+
:type ipv4: str
|
|
35
38
|
|
|
36
39
|
:returns: The new NodeBalancer
|
|
37
40
|
:rtype: NodeBalancer
|
|
38
41
|
"""
|
|
42
|
+
ipv4 = kwargs.pop("ipv4", None)
|
|
39
43
|
params = {
|
|
40
44
|
"region": region.id if isinstance(region, Base) else region,
|
|
41
45
|
}
|
|
46
|
+
if ipv4 is not None:
|
|
47
|
+
params["ipv4"] = ipv4
|
|
42
48
|
params.update(kwargs)
|
|
43
49
|
|
|
44
50
|
result = self.client.post("/nodebalancers", data=params)
|
|
45
51
|
|
|
46
52
|
if not "id" in result:
|
|
47
53
|
raise UnexpectedResponseError(
|
|
48
|
-
"Unexpected response when creating
|
|
54
|
+
"Unexpected response when creating NodeBalancer!", json=result
|
|
49
55
|
)
|
|
50
56
|
|
|
51
57
|
n = NodeBalancer(self.client, result["id"], result)
|
|
@@ -539,7 +539,7 @@ class ObjectStorageGroup(Group):
|
|
|
539
539
|
"""
|
|
540
540
|
Lists the active account-level Object Storage quotas applied to your account.
|
|
541
541
|
|
|
542
|
-
API Documentation:
|
|
542
|
+
API Documentation: https://techdocs.akamai.com/linode-api/reference/get-object-storage-global-quotas
|
|
543
543
|
|
|
544
544
|
:param filters: Any number of filters to apply to this query.
|
|
545
545
|
See :doc:`Filtering Collections</linode_api4/objects/filtering>`
|
|
@@ -32,7 +32,8 @@ class TagGroup(Group):
|
|
|
32
32
|
domains=None,
|
|
33
33
|
nodebalancers=None,
|
|
34
34
|
volumes=None,
|
|
35
|
-
entities=
|
|
35
|
+
entities=None,
|
|
36
|
+
reserved_ipv4_addresses=None,
|
|
36
37
|
):
|
|
37
38
|
"""
|
|
38
39
|
Creates a new Tag and optionally applies it to the given entities.
|
|
@@ -61,10 +62,14 @@ class TagGroup(Group):
|
|
|
61
62
|
:param volumes: A list of Volumes to apply this Tag to upon
|
|
62
63
|
creation
|
|
63
64
|
:type volumes: list of Volumes or list of int
|
|
65
|
+
:param reserved_ipv4_addresses: A list of reserved IPv4 addresses to apply
|
|
66
|
+
this Tag to upon creation.
|
|
67
|
+
:type reserved_ipv4_addresses: list of str
|
|
64
68
|
|
|
65
69
|
:returns: The new Tag
|
|
66
70
|
:rtype: Tag
|
|
67
71
|
"""
|
|
72
|
+
entities = entities or []
|
|
68
73
|
linode_ids, nodebalancer_ids, domain_ids, volume_ids = [], [], [], []
|
|
69
74
|
|
|
70
75
|
# filter input into lists of ids
|
|
@@ -103,6 +108,7 @@ class TagGroup(Group):
|
|
|
103
108
|
"nodebalancers": nodebalancer_ids or None,
|
|
104
109
|
"domains": domain_ids or None,
|
|
105
110
|
"volumes": volume_ids or None,
|
|
111
|
+
"reserved_ipv4_addresses": reserved_ipv4_addresses or None,
|
|
106
112
|
}
|
|
107
113
|
|
|
108
114
|
result = self.client.post("/tags", data=params)
|
|
@@ -1584,7 +1584,7 @@ class Instance(Base):
|
|
|
1584
1584
|
b = Backup(self._client, result["id"], self.id, result)
|
|
1585
1585
|
return b
|
|
1586
1586
|
|
|
1587
|
-
def ip_allocate(self, public=False):
|
|
1587
|
+
def ip_allocate(self, public=False, address=None):
|
|
1588
1588
|
"""
|
|
1589
1589
|
Allocates a new :any:`IPAddress` for this Instance. Additional public
|
|
1590
1590
|
IPs require justification, and you may need to open a :any:`SupportTicket`
|
|
@@ -1596,17 +1596,26 @@ class Instance(Base):
|
|
|
1596
1596
|
:param public: If the new IP should be public or private. Defaults to
|
|
1597
1597
|
private.
|
|
1598
1598
|
:type public: bool
|
|
1599
|
+
:param address: A reserved IPv4 address to assign to this Instance instead
|
|
1600
|
+
of allocating a new ephemeral IP. The address must be an
|
|
1601
|
+
unassigned reserved IP owned by this account.
|
|
1602
|
+
NOTE: Reserved IP feature may not currently be available to all users.
|
|
1603
|
+
:type address: str
|
|
1599
1604
|
|
|
1600
1605
|
:returns: The new IPAddress
|
|
1601
1606
|
:rtype: IPAddress
|
|
1602
1607
|
"""
|
|
1608
|
+
data = {
|
|
1609
|
+
"type": "ipv4",
|
|
1610
|
+
"public": public,
|
|
1611
|
+
}
|
|
1612
|
+
if address is not None:
|
|
1613
|
+
data["address"] = address
|
|
1614
|
+
|
|
1603
1615
|
result = self._client.post(
|
|
1604
1616
|
"{}/ips".format(Instance.api_endpoint),
|
|
1605
1617
|
model=self,
|
|
1606
|
-
data=
|
|
1607
|
-
"type": "ipv4",
|
|
1608
|
-
"public": public,
|
|
1609
|
-
},
|
|
1618
|
+
data=data,
|
|
1610
1619
|
)
|
|
1611
1620
|
|
|
1612
1621
|
if not "address" in result:
|