linode-api4 5.41.0__tar.gz → 5.43.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.41.0/linode_api4.egg-info → linode_api4-5.43.0}/PKG-INFO +4 -3
- {linode_api4-5.41.0 → linode_api4-5.43.0}/linode_api4/groups/linode.py +0 -1
- {linode_api4-5.41.0 → linode_api4-5.43.0}/linode_api4/groups/monitor.py +52 -4
- {linode_api4-5.41.0 → linode_api4-5.43.0}/linode_api4/groups/volume.py +0 -1
- {linode_api4-5.41.0 → linode_api4-5.43.0}/linode_api4/objects/linode.py +97 -54
- {linode_api4-5.41.0 → linode_api4-5.43.0}/linode_api4/objects/lke.py +8 -0
- {linode_api4-5.41.0 → linode_api4-5.43.0}/linode_api4/objects/monitor.py +53 -43
- {linode_api4-5.41.0 → linode_api4-5.43.0}/linode_api4/util.py +8 -1
- {linode_api4-5.41.0 → linode_api4-5.43.0}/linode_api4/version.py +1 -1
- {linode_api4-5.41.0 → linode_api4-5.43.0/linode_api4.egg-info}/PKG-INFO +4 -3
- {linode_api4-5.41.0 → linode_api4-5.43.0}/linode_api4.egg-info/SOURCES.txt +2 -0
- {linode_api4-5.41.0 → linode_api4-5.43.0}/pyproject.toml +4 -3
- linode_api4-5.43.0/test/fixtures/monitor_alert-channels.json +31 -0
- {linode_api4-5.41.0 → linode_api4-5.43.0}/test/fixtures/monitor_alert-definitions.json +15 -2
- {linode_api4-5.41.0 → linode_api4-5.43.0}/test/fixtures/monitor_services_dbaas_alert-definitions.json +15 -2
- {linode_api4-5.41.0 → linode_api4-5.43.0}/test/fixtures/monitor_services_dbaas_alert-definitions_12345.json +15 -1
- linode_api4-5.43.0/test/fixtures/monitor_services_dbaas_alert-definitions_12345_entities.json +25 -0
- {linode_api4-5.41.0 → linode_api4-5.43.0}/test/integration/conftest.py +1 -2
- {linode_api4-5.41.0 → linode_api4-5.43.0}/test/integration/models/database/test_database.py +7 -1
- {linode_api4-5.41.0 → linode_api4-5.43.0}/test/integration/models/database/test_database_engine_config.py +1 -1
- {linode_api4-5.41.0 → linode_api4-5.43.0}/test/integration/models/linode/test_linode.py +9 -0
- {linode_api4-5.41.0 → linode_api4-5.43.0}/test/integration/models/lke/test_lke.py +15 -0
- {linode_api4-5.41.0 → linode_api4-5.43.0}/test/integration/models/monitor/test_monitor.py +37 -1
- {linode_api4-5.41.0 → linode_api4-5.43.0}/test/integration/models/volume/test_blockstorage.py +27 -0
- {linode_api4-5.41.0 → linode_api4-5.43.0}/test/unit/groups/monitor_api_test.py +64 -0
- {linode_api4-5.41.0 → linode_api4-5.43.0}/test/unit/objects/linode_test.py +41 -0
- {linode_api4-5.41.0 → linode_api4-5.43.0}/test/unit/objects/monitor_test.py +24 -1
- {linode_api4-5.41.0 → linode_api4-5.43.0}/LICENSE +0 -0
- {linode_api4-5.41.0 → linode_api4-5.43.0}/MANIFEST.in +0 -0
- {linode_api4-5.41.0 → linode_api4-5.43.0}/README.rst +0 -0
- {linode_api4-5.41.0 → linode_api4-5.43.0}/examples/install-on-linode/app.py +0 -0
- {linode_api4-5.41.0 → linode_api4-5.43.0}/examples/install-on-linode/make_stackscript.py +0 -0
- {linode_api4-5.41.0 → linode_api4-5.43.0}/linode_api4/__init__.py +0 -0
- {linode_api4-5.41.0 → linode_api4-5.43.0}/linode_api4/common.py +0 -0
- {linode_api4-5.41.0 → linode_api4-5.43.0}/linode_api4/errors.py +0 -0
- {linode_api4-5.41.0 → linode_api4-5.43.0}/linode_api4/groups/__init__.py +0 -0
- {linode_api4-5.41.0 → linode_api4-5.43.0}/linode_api4/groups/account.py +0 -0
- {linode_api4-5.41.0 → linode_api4-5.43.0}/linode_api4/groups/beta.py +0 -0
- {linode_api4-5.41.0 → linode_api4-5.43.0}/linode_api4/groups/database.py +0 -0
- {linode_api4-5.41.0 → linode_api4-5.43.0}/linode_api4/groups/domain.py +0 -0
- {linode_api4-5.41.0 → linode_api4-5.43.0}/linode_api4/groups/group.py +0 -0
- {linode_api4-5.41.0 → linode_api4-5.43.0}/linode_api4/groups/image.py +0 -0
- {linode_api4-5.41.0 → linode_api4-5.43.0}/linode_api4/groups/image_share_group.py +0 -0
- {linode_api4-5.41.0 → linode_api4-5.43.0}/linode_api4/groups/lke.py +0 -0
- {linode_api4-5.41.0 → linode_api4-5.43.0}/linode_api4/groups/lke_tier.py +0 -0
- {linode_api4-5.41.0 → linode_api4-5.43.0}/linode_api4/groups/lock.py +0 -0
- {linode_api4-5.41.0 → linode_api4-5.43.0}/linode_api4/groups/longview.py +0 -0
- {linode_api4-5.41.0 → linode_api4-5.43.0}/linode_api4/groups/maintenance.py +0 -0
- {linode_api4-5.41.0 → linode_api4-5.43.0}/linode_api4/groups/monitor_api.py +0 -0
- {linode_api4-5.41.0 → linode_api4-5.43.0}/linode_api4/groups/networking.py +0 -0
- {linode_api4-5.41.0 → linode_api4-5.43.0}/linode_api4/groups/nodebalancer.py +0 -0
- {linode_api4-5.41.0 → linode_api4-5.43.0}/linode_api4/groups/object_storage.py +0 -0
- {linode_api4-5.41.0 → linode_api4-5.43.0}/linode_api4/groups/placement.py +0 -0
- {linode_api4-5.41.0 → linode_api4-5.43.0}/linode_api4/groups/polling.py +0 -0
- {linode_api4-5.41.0 → linode_api4-5.43.0}/linode_api4/groups/profile.py +0 -0
- {linode_api4-5.41.0 → linode_api4-5.43.0}/linode_api4/groups/region.py +0 -0
- {linode_api4-5.41.0 → linode_api4-5.43.0}/linode_api4/groups/support.py +0 -0
- {linode_api4-5.41.0 → linode_api4-5.43.0}/linode_api4/groups/tag.py +0 -0
- {linode_api4-5.41.0 → linode_api4-5.43.0}/linode_api4/groups/vpc.py +0 -0
- {linode_api4-5.41.0 → linode_api4-5.43.0}/linode_api4/linode_client.py +0 -0
- {linode_api4-5.41.0 → linode_api4-5.43.0}/linode_api4/login_client.py +0 -0
- {linode_api4-5.41.0 → linode_api4-5.43.0}/linode_api4/objects/__init__.py +0 -0
- {linode_api4-5.41.0 → linode_api4-5.43.0}/linode_api4/objects/account.py +0 -0
- {linode_api4-5.41.0 → linode_api4-5.43.0}/linode_api4/objects/base.py +0 -0
- {linode_api4-5.41.0 → linode_api4-5.43.0}/linode_api4/objects/beta.py +0 -0
- {linode_api4-5.41.0 → linode_api4-5.43.0}/linode_api4/objects/database.py +0 -0
- {linode_api4-5.41.0 → linode_api4-5.43.0}/linode_api4/objects/dbase.py +0 -0
- {linode_api4-5.41.0 → linode_api4-5.43.0}/linode_api4/objects/domain.py +0 -0
- {linode_api4-5.41.0 → linode_api4-5.43.0}/linode_api4/objects/filtering.py +0 -0
- {linode_api4-5.41.0 → linode_api4-5.43.0}/linode_api4/objects/image.py +0 -0
- {linode_api4-5.41.0 → linode_api4-5.43.0}/linode_api4/objects/image_share_group.py +0 -0
- {linode_api4-5.41.0 → linode_api4-5.43.0}/linode_api4/objects/linode_interfaces.py +0 -0
- {linode_api4-5.41.0 → linode_api4-5.43.0}/linode_api4/objects/lock.py +0 -0
- {linode_api4-5.41.0 → linode_api4-5.43.0}/linode_api4/objects/longview.py +0 -0
- {linode_api4-5.41.0 → linode_api4-5.43.0}/linode_api4/objects/monitor_api.py +0 -0
- {linode_api4-5.41.0 → linode_api4-5.43.0}/linode_api4/objects/networking.py +0 -0
- {linode_api4-5.41.0 → linode_api4-5.43.0}/linode_api4/objects/nodebalancer.py +0 -0
- {linode_api4-5.41.0 → linode_api4-5.43.0}/linode_api4/objects/object_storage.py +0 -0
- {linode_api4-5.41.0 → linode_api4-5.43.0}/linode_api4/objects/placement.py +0 -0
- {linode_api4-5.41.0 → linode_api4-5.43.0}/linode_api4/objects/profile.py +0 -0
- {linode_api4-5.41.0 → linode_api4-5.43.0}/linode_api4/objects/region.py +0 -0
- {linode_api4-5.41.0 → linode_api4-5.43.0}/linode_api4/objects/serializable.py +0 -0
- {linode_api4-5.41.0 → linode_api4-5.43.0}/linode_api4/objects/support.py +0 -0
- {linode_api4-5.41.0 → linode_api4-5.43.0}/linode_api4/objects/tag.py +0 -0
- {linode_api4-5.41.0 → linode_api4-5.43.0}/linode_api4/objects/volume.py +0 -0
- {linode_api4-5.41.0 → linode_api4-5.43.0}/linode_api4/objects/vpc.py +0 -0
- {linode_api4-5.41.0 → linode_api4-5.43.0}/linode_api4/paginated_list.py +0 -0
- {linode_api4-5.41.0 → linode_api4-5.43.0}/linode_api4/polling.py +0 -0
- {linode_api4-5.41.0 → linode_api4-5.43.0}/linode_api4.egg-info/dependency_links.txt +0 -0
- {linode_api4-5.41.0 → linode_api4-5.43.0}/linode_api4.egg-info/requires.txt +0 -0
- {linode_api4-5.41.0 → linode_api4-5.43.0}/linode_api4.egg-info/top_level.txt +0 -0
- {linode_api4-5.41.0 → linode_api4-5.43.0}/setup.cfg +0 -0
- {linode_api4-5.41.0 → linode_api4-5.43.0}/setup.py +0 -0
- {linode_api4-5.41.0 → linode_api4-5.43.0}/test/__init__.py +0 -0
- {linode_api4-5.41.0 → linode_api4-5.43.0}/test/fixtures/account.json +0 -0
- {linode_api4-5.41.0 → linode_api4-5.43.0}/test/fixtures/account_availability.json +0 -0
- {linode_api4-5.41.0 → linode_api4-5.43.0}/test/fixtures/account_availability_us-east.json +0 -0
- {linode_api4-5.41.0 → linode_api4-5.43.0}/test/fixtures/account_betas.json +0 -0
- {linode_api4-5.41.0 → linode_api4-5.43.0}/test/fixtures/account_betas_cool.json +0 -0
- {linode_api4-5.41.0 → linode_api4-5.43.0}/test/fixtures/account_child-accounts.json +0 -0
- {linode_api4-5.41.0 → linode_api4-5.43.0}/test/fixtures/account_child-accounts_123456.json +0 -0
- {linode_api4-5.41.0 → linode_api4-5.43.0}/test/fixtures/account_child-accounts_123456_token.json +0 -0
- {linode_api4-5.41.0 → linode_api4-5.43.0}/test/fixtures/account_events_123.json +0 -0
- {linode_api4-5.41.0 → linode_api4-5.43.0}/test/fixtures/account_invoices.json +0 -0
- {linode_api4-5.41.0 → linode_api4-5.43.0}/test/fixtures/account_invoices_123.json +0 -0
- {linode_api4-5.41.0 → linode_api4-5.43.0}/test/fixtures/account_invoices_123456_items.json +0 -0
- {linode_api4-5.41.0 → linode_api4-5.43.0}/test/fixtures/account_logins.json +0 -0
- {linode_api4-5.41.0 → linode_api4-5.43.0}/test/fixtures/account_logins_123.json +0 -0
- {linode_api4-5.41.0 → linode_api4-5.43.0}/test/fixtures/account_maintenance.json +0 -0
- {linode_api4-5.41.0 → linode_api4-5.43.0}/test/fixtures/account_notifications.json +0 -0
- {linode_api4-5.41.0 → linode_api4-5.43.0}/test/fixtures/account_oauth-clients_2737bf16b39ab5d7b4a1.json +0 -0
- {linode_api4-5.41.0 → linode_api4-5.43.0}/test/fixtures/account_payment-method_123.json +0 -0
- {linode_api4-5.41.0 → linode_api4-5.43.0}/test/fixtures/account_payment-methods.json +0 -0
- {linode_api4-5.41.0 → linode_api4-5.43.0}/test/fixtures/account_payments.json +0 -0
- {linode_api4-5.41.0 → linode_api4-5.43.0}/test/fixtures/account_promo-codes.json +0 -0
- {linode_api4-5.41.0 → linode_api4-5.43.0}/test/fixtures/account_service-transfers.json +0 -0
- {linode_api4-5.41.0 → linode_api4-5.43.0}/test/fixtures/account_service-transfers_12345.json +0 -0
- {linode_api4-5.41.0 → linode_api4-5.43.0}/test/fixtures/account_settings.json +0 -0
- {linode_api4-5.41.0 → linode_api4-5.43.0}/test/fixtures/account_transfer.json +0 -0
- {linode_api4-5.41.0 → linode_api4-5.43.0}/test/fixtures/account_users_test-user.json +0 -0
- {linode_api4-5.41.0 → linode_api4-5.43.0}/test/fixtures/betas.json +0 -0
- {linode_api4-5.41.0 → linode_api4-5.43.0}/test/fixtures/betas_active.json +0 -0
- {linode_api4-5.41.0 → linode_api4-5.43.0}/test/fixtures/databases_engines.json +0 -0
- {linode_api4-5.41.0 → linode_api4-5.43.0}/test/fixtures/databases_instances.json +0 -0
- {linode_api4-5.41.0 → linode_api4-5.43.0}/test/fixtures/databases_mysql_config.json +0 -0
- {linode_api4-5.41.0 → linode_api4-5.43.0}/test/fixtures/databases_mysql_instances.json +0 -0
- {linode_api4-5.41.0 → linode_api4-5.43.0}/test/fixtures/databases_mysql_instances_123_credentials.json +0 -0
- {linode_api4-5.41.0 → linode_api4-5.43.0}/test/fixtures/databases_mysql_instances_123_credentials_reset.json +0 -0
- {linode_api4-5.41.0 → linode_api4-5.43.0}/test/fixtures/databases_mysql_instances_123_patch.json +0 -0
- {linode_api4-5.41.0 → linode_api4-5.43.0}/test/fixtures/databases_mysql_instances_123_resume.json +0 -0
- {linode_api4-5.41.0 → linode_api4-5.43.0}/test/fixtures/databases_mysql_instances_123_ssl.json +0 -0
- {linode_api4-5.41.0 → linode_api4-5.43.0}/test/fixtures/databases_mysql_instances_123_suspend.json +0 -0
- {linode_api4-5.41.0 → linode_api4-5.43.0}/test/fixtures/databases_postgresql_config.json +0 -0
- {linode_api4-5.41.0 → linode_api4-5.43.0}/test/fixtures/databases_postgresql_instances.json +0 -0
- {linode_api4-5.41.0 → linode_api4-5.43.0}/test/fixtures/databases_postgresql_instances_123_credentials.json +0 -0
- {linode_api4-5.41.0 → linode_api4-5.43.0}/test/fixtures/databases_postgresql_instances_123_credentials_reset.json +0 -0
- {linode_api4-5.41.0 → linode_api4-5.43.0}/test/fixtures/databases_postgresql_instances_123_patch.json +0 -0
- {linode_api4-5.41.0 → linode_api4-5.43.0}/test/fixtures/databases_postgresql_instances_123_resume.json +0 -0
- {linode_api4-5.41.0 → linode_api4-5.43.0}/test/fixtures/databases_postgresql_instances_123_ssl.json +0 -0
- {linode_api4-5.41.0 → linode_api4-5.43.0}/test/fixtures/databases_postgresql_instances_123_suspend.json +0 -0
- {linode_api4-5.41.0 → linode_api4-5.43.0}/test/fixtures/databases_types.json +0 -0
- {linode_api4-5.41.0 → linode_api4-5.43.0}/test/fixtures/domains.json +0 -0
- {linode_api4-5.41.0 → linode_api4-5.43.0}/test/fixtures/domains_12345_clone.json +0 -0
- {linode_api4-5.41.0 → linode_api4-5.43.0}/test/fixtures/domains_12345_records.json +0 -0
- {linode_api4-5.41.0 → linode_api4-5.43.0}/test/fixtures/domains_12345_zone-file.json +0 -0
- {linode_api4-5.41.0 → linode_api4-5.43.0}/test/fixtures/domains_import.json +0 -0
- {linode_api4-5.41.0 → linode_api4-5.43.0}/test/fixtures/images.json +0 -0
- {linode_api4-5.41.0 → linode_api4-5.43.0}/test/fixtures/images_private_1234_sharegroups.json +0 -0
- {linode_api4-5.41.0 → linode_api4-5.43.0}/test/fixtures/images_private_123_regions.json +0 -0
- {linode_api4-5.41.0 → linode_api4-5.43.0}/test/fixtures/images_private_1337.json +0 -0
- {linode_api4-5.41.0 → linode_api4-5.43.0}/test/fixtures/images_sharegroups.json +0 -0
- {linode_api4-5.41.0 → linode_api4-5.43.0}/test/fixtures/images_sharegroups_1234.json +0 -0
- {linode_api4-5.41.0 → linode_api4-5.43.0}/test/fixtures/images_sharegroups_1234_images.json +0 -0
- {linode_api4-5.41.0 → linode_api4-5.43.0}/test/fixtures/images_sharegroups_1234_images_shared_1.json +0 -0
- {linode_api4-5.41.0 → linode_api4-5.43.0}/test/fixtures/images_sharegroups_1234_members.json +0 -0
- {linode_api4-5.41.0 → linode_api4-5.43.0}/test/fixtures/images_sharegroups_1234_members_abc123.json +0 -0
- {linode_api4-5.41.0 → linode_api4-5.43.0}/test/fixtures/images_sharegroups_tokens.json +0 -0
- {linode_api4-5.41.0 → linode_api4-5.43.0}/test/fixtures/images_sharegroups_tokens_abc123.json +0 -0
- {linode_api4-5.41.0 → linode_api4-5.43.0}/test/fixtures/images_sharegroups_tokens_abc123_sharegroup.json +0 -0
- {linode_api4-5.41.0 → linode_api4-5.43.0}/test/fixtures/images_sharegroups_tokens_abc123_sharegroup_images.json +0 -0
- {linode_api4-5.41.0 → linode_api4-5.43.0}/test/fixtures/images_upload.json +0 -0
- {linode_api4-5.41.0 → linode_api4-5.43.0}/test/fixtures/linode_instances.json +0 -0
- {linode_api4-5.41.0 → linode_api4-5.43.0}/test/fixtures/linode_instances_123_backups.json +0 -0
- {linode_api4-5.41.0 → linode_api4-5.43.0}/test/fixtures/linode_instances_123_configs.json +0 -0
- {linode_api4-5.41.0 → linode_api4-5.43.0}/test/fixtures/linode_instances_123_configs_456789.json +0 -0
- {linode_api4-5.41.0 → linode_api4-5.43.0}/test/fixtures/linode_instances_123_configs_456789_interfaces.json +0 -0
- {linode_api4-5.41.0 → linode_api4-5.43.0}/test/fixtures/linode_instances_123_configs_456789_interfaces_123.json +0 -0
- {linode_api4-5.41.0 → linode_api4-5.43.0}/test/fixtures/linode_instances_123_configs_456789_interfaces_123_put.json +0 -0
- {linode_api4-5.41.0 → linode_api4-5.43.0}/test/fixtures/linode_instances_123_configs_456789_interfaces_321.json +0 -0
- {linode_api4-5.41.0 → linode_api4-5.43.0}/test/fixtures/linode_instances_123_configs_456789_interfaces_456.json +0 -0
- {linode_api4-5.41.0 → linode_api4-5.43.0}/test/fixtures/linode_instances_123_disks.json +0 -0
- {linode_api4-5.41.0 → linode_api4-5.43.0}/test/fixtures/linode_instances_123_disks_12345_clone.json +0 -0
- {linode_api4-5.41.0 → linode_api4-5.43.0}/test/fixtures/linode_instances_123_firewalls.json +0 -0
- {linode_api4-5.41.0 → linode_api4-5.43.0}/test/fixtures/linode_instances_123_ips.json +0 -0
- {linode_api4-5.41.0 → linode_api4-5.43.0}/test/fixtures/linode_instances_123_nodebalancers.json +0 -0
- {linode_api4-5.41.0 → linode_api4-5.43.0}/test/fixtures/linode_instances_123_transfer.json +0 -0
- {linode_api4-5.41.0 → linode_api4-5.43.0}/test/fixtures/linode_instances_123_transfer_2023_4.json +0 -0
- {linode_api4-5.41.0 → linode_api4-5.43.0}/test/fixtures/linode_instances_123_volumes.json +0 -0
- {linode_api4-5.41.0 → linode_api4-5.43.0}/test/fixtures/linode_instances_124.json +0 -0
- {linode_api4-5.41.0 → linode_api4-5.43.0}/test/fixtures/linode_instances_124_interfaces.json +0 -0
- {linode_api4-5.41.0 → linode_api4-5.43.0}/test/fixtures/linode_instances_124_interfaces_123.json +0 -0
- {linode_api4-5.41.0 → linode_api4-5.43.0}/test/fixtures/linode_instances_124_interfaces_123_firewalls.json +0 -0
- {linode_api4-5.41.0 → linode_api4-5.43.0}/test/fixtures/linode_instances_124_interfaces_456.json +0 -0
- {linode_api4-5.41.0 → linode_api4-5.43.0}/test/fixtures/linode_instances_124_interfaces_789.json +0 -0
- {linode_api4-5.41.0 → linode_api4-5.43.0}/test/fixtures/linode_instances_124_interfaces_settings.json +0 -0
- {linode_api4-5.41.0 → linode_api4-5.43.0}/test/fixtures/linode_instances_124_upgrade-interfaces.json +0 -0
- {linode_api4-5.41.0 → linode_api4-5.43.0}/test/fixtures/linode_stackscripts_10079.json +0 -0
- {linode_api4-5.41.0 → linode_api4-5.43.0}/test/fixtures/linode_types.json +0 -0
- {linode_api4-5.41.0 → linode_api4-5.43.0}/test/fixtures/linode_types_g6-nanode-1.json +0 -0
- {linode_api4-5.41.0 → linode_api4-5.43.0}/test/fixtures/lke_clusters.json +0 -0
- {linode_api4-5.41.0 → linode_api4-5.43.0}/test/fixtures/lke_clusters_18881.json +0 -0
- {linode_api4-5.41.0 → linode_api4-5.43.0}/test/fixtures/lke_clusters_18881_control__plane__acl.json +0 -0
- {linode_api4-5.41.0 → linode_api4-5.43.0}/test/fixtures/lke_clusters_18881_dashboard.json +0 -0
- {linode_api4-5.41.0 → linode_api4-5.43.0}/test/fixtures/lke_clusters_18881_nodes_123456.json +0 -0
- {linode_api4-5.41.0 → linode_api4-5.43.0}/test/fixtures/lke_clusters_18881_pools_456.json +0 -0
- {linode_api4-5.41.0 → linode_api4-5.43.0}/test/fixtures/lke_clusters_18882.json +0 -0
- {linode_api4-5.41.0 → linode_api4-5.43.0}/test/fixtures/lke_clusters_18882_pools_789.json +0 -0
- {linode_api4-5.41.0 → linode_api4-5.43.0}/test/fixtures/lke_tiers_standard_versions.json +0 -0
- {linode_api4-5.41.0 → linode_api4-5.43.0}/test/fixtures/lke_types.json +0 -0
- {linode_api4-5.41.0 → linode_api4-5.43.0}/test/fixtures/lke_versions.json +0 -0
- {linode_api4-5.41.0 → linode_api4-5.43.0}/test/fixtures/locks.json +0 -0
- {linode_api4-5.41.0 → linode_api4-5.43.0}/test/fixtures/locks_1.json +0 -0
- {linode_api4-5.41.0 → linode_api4-5.43.0}/test/fixtures/longview_clients.json +0 -0
- {linode_api4-5.41.0 → linode_api4-5.43.0}/test/fixtures/longview_plan.json +0 -0
- {linode_api4-5.41.0 → linode_api4-5.43.0}/test/fixtures/longview_subscriptions.json +0 -0
- {linode_api4-5.41.0 → linode_api4-5.43.0}/test/fixtures/maintenance_policies.json +0 -0
- {linode_api4-5.41.0 → linode_api4-5.43.0}/test/fixtures/mongodb.json +0 -0
- {linode_api4-5.41.0 → linode_api4-5.43.0}/test/fixtures/monitor_dashboards.json +0 -0
- {linode_api4-5.41.0 → linode_api4-5.43.0}/test/fixtures/monitor_dashboards_1.json +0 -0
- {linode_api4-5.41.0 → linode_api4-5.43.0}/test/fixtures/monitor_services.json +0 -0
- {linode_api4-5.41.0 → linode_api4-5.43.0}/test/fixtures/monitor_services_dbaas.json +0 -0
- {linode_api4-5.41.0 → linode_api4-5.43.0}/test/fixtures/monitor_services_dbaas_dashboards.json +0 -0
- {linode_api4-5.41.0 → linode_api4-5.43.0}/test/fixtures/monitor_services_dbaas_metric-definitions.json +0 -0
- {linode_api4-5.41.0 → linode_api4-5.43.0}/test/fixtures/monitor_services_dbaas_metrics.json +0 -0
- {linode_api4-5.41.0 → linode_api4-5.43.0}/test/fixtures/monitor_services_dbaas_token.json +0 -0
- {linode_api4-5.41.0 → linode_api4-5.43.0}/test/fixtures/monitor_services_linode_token.json +0 -0
- {linode_api4-5.41.0 → linode_api4-5.43.0}/test/fixtures/network-transfer_prices.json +0 -0
- {linode_api4-5.41.0 → linode_api4-5.43.0}/test/fixtures/networking_firewalls.json +0 -0
- {linode_api4-5.41.0 → linode_api4-5.43.0}/test/fixtures/networking_firewalls_123.json +0 -0
- {linode_api4-5.41.0 → linode_api4-5.43.0}/test/fixtures/networking_firewalls_123_devices.json +0 -0
- {linode_api4-5.41.0 → linode_api4-5.43.0}/test/fixtures/networking_firewalls_123_devices_123.json +0 -0
- {linode_api4-5.41.0 → linode_api4-5.43.0}/test/fixtures/networking_firewalls_123_devices_456.json +0 -0
- {linode_api4-5.41.0 → linode_api4-5.43.0}/test/fixtures/networking_firewalls_123_history.json +0 -0
- {linode_api4-5.41.0 → linode_api4-5.43.0}/test/fixtures/networking_firewalls_123_history_rules_2.json +0 -0
- {linode_api4-5.41.0 → linode_api4-5.43.0}/test/fixtures/networking_firewalls_123_rules.json +0 -0
- {linode_api4-5.41.0 → linode_api4-5.43.0}/test/fixtures/networking_firewalls_settings.json +0 -0
- {linode_api4-5.41.0 → linode_api4-5.43.0}/test/fixtures/networking_firewalls_templates.json +0 -0
- {linode_api4-5.41.0 → linode_api4-5.43.0}/test/fixtures/networking_firewalls_templates_public.json +0 -0
- {linode_api4-5.41.0 → linode_api4-5.43.0}/test/fixtures/networking_firewalls_templates_vpc.json +0 -0
- {linode_api4-5.41.0 → linode_api4-5.43.0}/test/fixtures/networking_ips_127.0.0.1.json +0 -0
- {linode_api4-5.41.0 → linode_api4-5.43.0}/test/fixtures/networking_ipv6_pools.json +0 -0
- {linode_api4-5.41.0 → linode_api4-5.43.0}/test/fixtures/networking_ipv6_ranges.json +0 -0
- {linode_api4-5.41.0 → linode_api4-5.43.0}/test/fixtures/networking_ipv6_ranges_2600%3A3c01%3A%3A.json +0 -0
- {linode_api4-5.41.0 → linode_api4-5.43.0}/test/fixtures/networking_vlans.json +0 -0
- {linode_api4-5.41.0 → linode_api4-5.43.0}/test/fixtures/nodebalancers.json +0 -0
- {linode_api4-5.41.0 → linode_api4-5.43.0}/test/fixtures/nodebalancers_123456.json +0 -0
- {linode_api4-5.41.0 → linode_api4-5.43.0}/test/fixtures/nodebalancers_123456_configs.json +0 -0
- {linode_api4-5.41.0 → linode_api4-5.43.0}/test/fixtures/nodebalancers_123456_configs_65432_nodes.json +0 -0
- {linode_api4-5.41.0 → linode_api4-5.43.0}/test/fixtures/nodebalancers_12345_configs_4567_rebuild.json +0 -0
- {linode_api4-5.41.0 → linode_api4-5.43.0}/test/fixtures/nodebalancers_12345_firewalls.json +0 -0
- {linode_api4-5.41.0 → linode_api4-5.43.0}/test/fixtures/nodebalancers_12345_stats.json +0 -0
- {linode_api4-5.41.0 → linode_api4-5.43.0}/test/fixtures/nodebalancers_types.json +0 -0
- {linode_api4-5.41.0 → linode_api4-5.43.0}/test/fixtures/object-storage_buckets.json +0 -0
- {linode_api4-5.41.0 → linode_api4-5.43.0}/test/fixtures/object-storage_buckets_us-east-1.json +0 -0
- {linode_api4-5.41.0 → linode_api4-5.43.0}/test/fixtures/object-storage_buckets_us-east-1_example-bucket.json +0 -0
- {linode_api4-5.41.0 → linode_api4-5.43.0}/test/fixtures/object-storage_buckets_us-east-1_example-bucket_object-acl.json +0 -0
- {linode_api4-5.41.0 → linode_api4-5.43.0}/test/fixtures/object-storage_buckets_us-east-1_example-bucket_object-list.json +0 -0
- {linode_api4-5.41.0 → linode_api4-5.43.0}/test/fixtures/object-storage_buckets_us-east-1_example-bucket_object-url.json +0 -0
- {linode_api4-5.41.0 → linode_api4-5.43.0}/test/fixtures/object-storage_buckets_us-east-1_example-bucket_ssl.json +0 -0
- {linode_api4-5.41.0 → linode_api4-5.43.0}/test/fixtures/object-storage_buckets_us-east_example-bucket_access.json +0 -0
- {linode_api4-5.41.0 → linode_api4-5.43.0}/test/fixtures/object-storage_clusters.json +0 -0
- {linode_api4-5.41.0 → linode_api4-5.43.0}/test/fixtures/object-storage_keys.json +0 -0
- {linode_api4-5.41.0 → linode_api4-5.43.0}/test/fixtures/object-storage_quotas.json +0 -0
- {linode_api4-5.41.0 → linode_api4-5.43.0}/test/fixtures/object-storage_quotas_obj-objects-us-ord-1.json +0 -0
- {linode_api4-5.41.0 → linode_api4-5.43.0}/test/fixtures/object-storage_quotas_obj-objects-us-ord-1_usage.json +0 -0
- {linode_api4-5.41.0 → linode_api4-5.43.0}/test/fixtures/object-storage_transfer.json +0 -0
- {linode_api4-5.41.0 → linode_api4-5.43.0}/test/fixtures/object-storage_types.json +0 -0
- {linode_api4-5.41.0 → linode_api4-5.43.0}/test/fixtures/placement_groups.json +0 -0
- {linode_api4-5.41.0 → linode_api4-5.43.0}/test/fixtures/placement_groups_123.json +0 -0
- {linode_api4-5.41.0 → linode_api4-5.43.0}/test/fixtures/profile.json +0 -0
- {linode_api4-5.41.0 → linode_api4-5.43.0}/test/fixtures/profile_device_123.json +0 -0
- {linode_api4-5.41.0 → linode_api4-5.43.0}/test/fixtures/profile_devices.json +0 -0
- {linode_api4-5.41.0 → linode_api4-5.43.0}/test/fixtures/profile_logins.json +0 -0
- {linode_api4-5.41.0 → linode_api4-5.43.0}/test/fixtures/profile_logins_123.json +0 -0
- {linode_api4-5.41.0 → linode_api4-5.43.0}/test/fixtures/profile_preferences.json +0 -0
- {linode_api4-5.41.0 → linode_api4-5.43.0}/test/fixtures/profile_security-questions.json +0 -0
- {linode_api4-5.41.0 → linode_api4-5.43.0}/test/fixtures/profile_sshkeys.json +0 -0
- {linode_api4-5.41.0 → linode_api4-5.43.0}/test/fixtures/regions.json +0 -0
- {linode_api4-5.41.0 → linode_api4-5.43.0}/test/fixtures/regions_availability.json +0 -0
- {linode_api4-5.41.0 → linode_api4-5.43.0}/test/fixtures/regions_us-east_availability.json +0 -0
- {linode_api4-5.41.0 → linode_api4-5.43.0}/test/fixtures/regions_us-east_vpc-availability.json +0 -0
- {linode_api4-5.41.0 → linode_api4-5.43.0}/test/fixtures/regions_vpc-availability.json +0 -0
- {linode_api4-5.41.0 → linode_api4-5.43.0}/test/fixtures/support_tickets_123.json +0 -0
- {linode_api4-5.41.0 → linode_api4-5.43.0}/test/fixtures/tags.json +0 -0
- {linode_api4-5.41.0 → linode_api4-5.43.0}/test/fixtures/tags_nothing.json +0 -0
- {linode_api4-5.41.0 → linode_api4-5.43.0}/test/fixtures/tags_something.json +0 -0
- {linode_api4-5.41.0 → linode_api4-5.43.0}/test/fixtures/testmappedobj1.json +0 -0
- {linode_api4-5.41.0 → linode_api4-5.43.0}/test/fixtures/volumes.json +0 -0
- {linode_api4-5.41.0 → linode_api4-5.43.0}/test/fixtures/volumes_types.json +0 -0
- {linode_api4-5.41.0 → linode_api4-5.43.0}/test/fixtures/vpcs.json +0 -0
- {linode_api4-5.41.0 → linode_api4-5.43.0}/test/fixtures/vpcs_123456.json +0 -0
- {linode_api4-5.41.0 → linode_api4-5.43.0}/test/fixtures/vpcs_123456_ips.json +0 -0
- {linode_api4-5.41.0 → linode_api4-5.43.0}/test/fixtures/vpcs_123456_subnets.json +0 -0
- {linode_api4-5.41.0 → linode_api4-5.43.0}/test/fixtures/vpcs_123456_subnets_789.json +0 -0
- {linode_api4-5.41.0 → linode_api4-5.43.0}/test/fixtures/vpcs_ips.json +0 -0
- {linode_api4-5.41.0 → linode_api4-5.43.0}/test/integration/__init__.py +0 -0
- {linode_api4-5.41.0 → linode_api4-5.43.0}/test/integration/filters/fixtures.py +0 -0
- {linode_api4-5.41.0 → linode_api4-5.43.0}/test/integration/filters/model_filters_test.py +0 -0
- {linode_api4-5.41.0 → linode_api4-5.43.0}/test/integration/helpers.py +0 -0
- {linode_api4-5.41.0 → linode_api4-5.43.0}/test/integration/linode_client/__init__.py +0 -0
- {linode_api4-5.41.0 → linode_api4-5.43.0}/test/integration/linode_client/test_errors.py +0 -0
- {linode_api4-5.41.0 → linode_api4-5.43.0}/test/integration/linode_client/test_linode_client.py +0 -0
- {linode_api4-5.41.0 → linode_api4-5.43.0}/test/integration/linode_client/test_retry.py +0 -0
- {linode_api4-5.41.0 → linode_api4-5.43.0}/test/integration/login_client/test_login_client.py +0 -0
- {linode_api4-5.41.0 → linode_api4-5.43.0}/test/integration/models/__init__.py +0 -0
- {linode_api4-5.41.0 → linode_api4-5.43.0}/test/integration/models/account/test_account.py +0 -0
- {linode_api4-5.41.0 → linode_api4-5.43.0}/test/integration/models/database/helpers.py +0 -0
- {linode_api4-5.41.0 → linode_api4-5.43.0}/test/integration/models/domain/test_domain.py +0 -0
- {linode_api4-5.41.0 → linode_api4-5.43.0}/test/integration/models/firewall/test_firewall.py +0 -0
- {linode_api4-5.41.0 → linode_api4-5.43.0}/test/integration/models/firewall/test_firewall_templates.py +0 -0
- {linode_api4-5.41.0 → linode_api4-5.43.0}/test/integration/models/image/test_image.py +0 -0
- {linode_api4-5.41.0 → linode_api4-5.43.0}/test/integration/models/linode/interfaces/test_interfaces.py +0 -0
- {linode_api4-5.41.0 → linode_api4-5.43.0}/test/integration/models/lock/__init__.py +0 -0
- {linode_api4-5.41.0 → linode_api4-5.43.0}/test/integration/models/lock/test_lock.py +0 -0
- {linode_api4-5.41.0 → linode_api4-5.43.0}/test/integration/models/longview/test_longview.py +0 -0
- {linode_api4-5.41.0 → linode_api4-5.43.0}/test/integration/models/maintenance/test_maintenance.py +0 -0
- {linode_api4-5.41.0 → linode_api4-5.43.0}/test/integration/models/monitor_api/test_monitor_api.py +0 -0
- {linode_api4-5.41.0 → linode_api4-5.43.0}/test/integration/models/networking/test_networking.py +0 -0
- {linode_api4-5.41.0 → linode_api4-5.43.0}/test/integration/models/nodebalancer/test_nodebalancer.py +0 -0
- {linode_api4-5.41.0 → linode_api4-5.43.0}/test/integration/models/object_storage/test_obj.py +0 -0
- {linode_api4-5.41.0 → linode_api4-5.43.0}/test/integration/models/object_storage/test_obj_quotas.py +0 -0
- {linode_api4-5.41.0 → linode_api4-5.43.0}/test/integration/models/placement/test_placement.py +0 -0
- {linode_api4-5.41.0 → linode_api4-5.43.0}/test/integration/models/profile/test_profile.py +0 -0
- {linode_api4-5.41.0 → linode_api4-5.43.0}/test/integration/models/region/test_region.py +0 -0
- {linode_api4-5.41.0 → linode_api4-5.43.0}/test/integration/models/sharegroups/test_sharegroups.py +0 -0
- {linode_api4-5.41.0 → linode_api4-5.43.0}/test/integration/models/tag/test_tag.py +0 -0
- {linode_api4-5.41.0 → linode_api4-5.43.0}/test/integration/models/volume/test_volume.py +0 -0
- {linode_api4-5.41.0 → linode_api4-5.43.0}/test/integration/models/vpc/test_vpc.py +0 -0
- {linode_api4-5.41.0 → linode_api4-5.43.0}/test/unit/__init__.py +0 -0
- {linode_api4-5.41.0 → linode_api4-5.43.0}/test/unit/base.py +0 -0
- {linode_api4-5.41.0 → linode_api4-5.43.0}/test/unit/errors_test.py +0 -0
- {linode_api4-5.41.0 → linode_api4-5.43.0}/test/unit/fixtures.py +0 -0
- {linode_api4-5.41.0 → linode_api4-5.43.0}/test/unit/groups/__init__.py +0 -0
- {linode_api4-5.41.0 → linode_api4-5.43.0}/test/unit/groups/database_test.py +0 -0
- {linode_api4-5.41.0 → linode_api4-5.43.0}/test/unit/groups/image_share_group_test.py +0 -0
- {linode_api4-5.41.0 → linode_api4-5.43.0}/test/unit/groups/image_test.py +0 -0
- {linode_api4-5.41.0 → linode_api4-5.43.0}/test/unit/groups/linode_test.py +0 -0
- {linode_api4-5.41.0 → linode_api4-5.43.0}/test/unit/groups/lke_test.py +0 -0
- {linode_api4-5.41.0 → linode_api4-5.43.0}/test/unit/groups/lke_tier_test.py +0 -0
- {linode_api4-5.41.0 → linode_api4-5.43.0}/test/unit/groups/lock_test.py +0 -0
- {linode_api4-5.41.0 → linode_api4-5.43.0}/test/unit/groups/networking_test.py +0 -0
- {linode_api4-5.41.0 → linode_api4-5.43.0}/test/unit/groups/object_storage_test.py +0 -0
- {linode_api4-5.41.0 → linode_api4-5.43.0}/test/unit/groups/placement_test.py +0 -0
- {linode_api4-5.41.0 → linode_api4-5.43.0}/test/unit/groups/polling_test.py +0 -0
- {linode_api4-5.41.0 → linode_api4-5.43.0}/test/unit/groups/region_test.py +0 -0
- {linode_api4-5.41.0 → linode_api4-5.43.0}/test/unit/groups/vpc_test.py +0 -0
- {linode_api4-5.41.0 → linode_api4-5.43.0}/test/unit/linode_client_test.py +0 -0
- {linode_api4-5.41.0 → linode_api4-5.43.0}/test/unit/login_client_test.py +0 -0
- {linode_api4-5.41.0 → linode_api4-5.43.0}/test/unit/objects/account_test.py +0 -0
- {linode_api4-5.41.0 → linode_api4-5.43.0}/test/unit/objects/base_test.py +0 -0
- {linode_api4-5.41.0 → linode_api4-5.43.0}/test/unit/objects/beta_test.py +0 -0
- {linode_api4-5.41.0 → linode_api4-5.43.0}/test/unit/objects/database_test.py +0 -0
- {linode_api4-5.41.0 → linode_api4-5.43.0}/test/unit/objects/domain_test.py +0 -0
- {linode_api4-5.41.0 → linode_api4-5.43.0}/test/unit/objects/firewall_test.py +0 -0
- {linode_api4-5.41.0 → linode_api4-5.43.0}/test/unit/objects/image_share_group_test.py +0 -0
- {linode_api4-5.41.0 → linode_api4-5.43.0}/test/unit/objects/image_test.py +0 -0
- {linode_api4-5.41.0 → linode_api4-5.43.0}/test/unit/objects/linode_interface_test.py +0 -0
- {linode_api4-5.41.0 → linode_api4-5.43.0}/test/unit/objects/lke_test.py +0 -0
- {linode_api4-5.41.0 → linode_api4-5.43.0}/test/unit/objects/lock_test.py +0 -0
- {linode_api4-5.41.0 → linode_api4-5.43.0}/test/unit/objects/longview_test.py +0 -0
- {linode_api4-5.41.0 → linode_api4-5.43.0}/test/unit/objects/mapped_object_test.py +0 -0
- {linode_api4-5.41.0 → linode_api4-5.43.0}/test/unit/objects/networking_test.py +0 -0
- {linode_api4-5.41.0 → linode_api4-5.43.0}/test/unit/objects/nodebalancers_test.py +0 -0
- {linode_api4-5.41.0 → linode_api4-5.43.0}/test/unit/objects/object_storage_test.py +0 -0
- {linode_api4-5.41.0 → linode_api4-5.43.0}/test/unit/objects/placement_test.py +0 -0
- {linode_api4-5.41.0 → linode_api4-5.43.0}/test/unit/objects/profile_test.py +0 -0
- {linode_api4-5.41.0 → linode_api4-5.43.0}/test/unit/objects/property_alias_test.py +0 -0
- {linode_api4-5.41.0 → linode_api4-5.43.0}/test/unit/objects/region_test.py +0 -0
- {linode_api4-5.41.0 → linode_api4-5.43.0}/test/unit/objects/serializable_test.py +0 -0
- {linode_api4-5.41.0 → linode_api4-5.43.0}/test/unit/objects/support_test.py +0 -0
- {linode_api4-5.41.0 → linode_api4-5.43.0}/test/unit/objects/tag_test.py +0 -0
- {linode_api4-5.41.0 → linode_api4-5.43.0}/test/unit/objects/volume_test.py +0 -0
- {linode_api4-5.41.0 → linode_api4-5.43.0}/test/unit/objects/vpc_test.py +0 -0
- {linode_api4-5.41.0 → linode_api4-5.43.0}/test/unit/paginated_list_test.py +0 -0
- {linode_api4-5.41.0 → linode_api4-5.43.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.43.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
|
|
@@ -14,11 +14,12 @@ Classifier: Topic :: Software Development :: Libraries
|
|
|
14
14
|
Classifier: License :: OSI Approved :: BSD License
|
|
15
15
|
Classifier: Programming Language :: Python
|
|
16
16
|
Classifier: Programming Language :: Python :: 3
|
|
17
|
-
Classifier: Programming Language :: Python :: 3.9
|
|
18
17
|
Classifier: Programming Language :: Python :: 3.10
|
|
19
18
|
Classifier: Programming Language :: Python :: 3.11
|
|
20
19
|
Classifier: Programming Language :: Python :: 3.12
|
|
21
|
-
|
|
20
|
+
Classifier: Programming Language :: Python :: 3.13
|
|
21
|
+
Classifier: Programming Language :: Python :: 3.14
|
|
22
|
+
Requires-Python: >=3.10
|
|
22
23
|
Description-Content-Type: text/x-rst
|
|
23
24
|
License-File: LICENSE
|
|
24
25
|
Requires-Dist: requests
|
|
@@ -322,7 +322,6 @@ class LinodeGroup(Group):
|
|
|
322
322
|
:param firewall: The firewall to attach this Linode to.
|
|
323
323
|
:type firewall: int or Firewall
|
|
324
324
|
:param disk_encryption: The disk encryption policy for this Linode.
|
|
325
|
-
NOTE: Disk encryption may not currently be available to all users.
|
|
326
325
|
:type disk_encryption: InstanceDiskEncryptionType or str
|
|
327
326
|
:param interfaces: An array of Network Interfaces to add to this Linode’s Configuration Profile.
|
|
328
327
|
At least one and up to three Interface objects can exist in this array.
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
from typing import Any, Optional
|
|
1
|
+
from typing import Any, Optional, Union
|
|
2
2
|
|
|
3
3
|
from linode_api4 import PaginatedList
|
|
4
4
|
from linode_api4.errors import UnexpectedResponseError
|
|
@@ -6,6 +6,8 @@ from linode_api4.groups import Group
|
|
|
6
6
|
from linode_api4.objects import (
|
|
7
7
|
AlertChannel,
|
|
8
8
|
AlertDefinition,
|
|
9
|
+
AlertDefinitionEntity,
|
|
10
|
+
AlertScope,
|
|
9
11
|
MonitorDashboard,
|
|
10
12
|
MonitorMetricsDefinition,
|
|
11
13
|
MonitorService,
|
|
@@ -202,7 +204,7 @@ class MonitorGroup(Group):
|
|
|
202
204
|
|
|
203
205
|
.. note:: This endpoint is in beta and requires using the v4beta base URL.
|
|
204
206
|
|
|
205
|
-
API Documentation: https://techdocs.akamai.com/linode-api/reference/get-
|
|
207
|
+
API Documentation: https://techdocs.akamai.com/linode-api/reference/get-notification-channels
|
|
206
208
|
|
|
207
209
|
:param filters: Optional filter expressions to apply to the collection.
|
|
208
210
|
See :doc:`Filtering Collections</linode_api4/objects/filtering>` for details.
|
|
@@ -221,6 +223,8 @@ class MonitorGroup(Group):
|
|
|
221
223
|
trigger_conditions: dict,
|
|
222
224
|
entity_ids: Optional[list[str]] = None,
|
|
223
225
|
description: Optional[str] = None,
|
|
226
|
+
scope: Optional[Union[AlertScope, str]] = None,
|
|
227
|
+
regions: Optional[list[str]] = None,
|
|
224
228
|
) -> AlertDefinition:
|
|
225
229
|
"""
|
|
226
230
|
Create a new alert definition for a given service type.
|
|
@@ -252,6 +256,10 @@ class MonitorGroup(Group):
|
|
|
252
256
|
:type entity_ids: Optional[list[str]]
|
|
253
257
|
:param description: (Optional) Longer description for the alert definition.
|
|
254
258
|
:type description: Optional[str]
|
|
259
|
+
:param scope: (Optional) Alert scope (for example: `account`, `entity`, or `region`). Defaults to `entity`.
|
|
260
|
+
:type scope: Optional[Union[AlertScope, str]]
|
|
261
|
+
:param regions: (Optional) Regions to monitor.
|
|
262
|
+
:type regions: Optional[list[str]]
|
|
255
263
|
|
|
256
264
|
:returns: The newly created :class:`AlertDefinition`.
|
|
257
265
|
:rtype: AlertDefinition
|
|
@@ -267,10 +275,15 @@ class MonitorGroup(Group):
|
|
|
267
275
|
"rule_criteria": rule_criteria,
|
|
268
276
|
"trigger_conditions": trigger_conditions,
|
|
269
277
|
}
|
|
270
|
-
|
|
271
|
-
params["description"] = description
|
|
278
|
+
|
|
272
279
|
if entity_ids is not None:
|
|
273
280
|
params["entity_ids"] = entity_ids
|
|
281
|
+
if description is not None:
|
|
282
|
+
params["description"] = description
|
|
283
|
+
if scope is not None:
|
|
284
|
+
params["scope"] = scope
|
|
285
|
+
if regions is not None:
|
|
286
|
+
params["regions"] = regions
|
|
274
287
|
|
|
275
288
|
# API will validate service_type and return an error if missing
|
|
276
289
|
result = self.client.post(
|
|
@@ -284,3 +297,38 @@ class MonitorGroup(Group):
|
|
|
284
297
|
)
|
|
285
298
|
|
|
286
299
|
return AlertDefinition(self.client, result["id"], service_type, result)
|
|
300
|
+
|
|
301
|
+
def alert_definition_entities(
|
|
302
|
+
self,
|
|
303
|
+
service_type: str,
|
|
304
|
+
id: int,
|
|
305
|
+
*filters,
|
|
306
|
+
) -> PaginatedList:
|
|
307
|
+
"""
|
|
308
|
+
List entities associated with a specific alert definition.
|
|
309
|
+
|
|
310
|
+
This endpoint supports pagination fields (`page`, `page_size`) in the API.
|
|
311
|
+
|
|
312
|
+
.. note:: This endpoint is in beta and requires using the v4beta base URL.
|
|
313
|
+
|
|
314
|
+
API Documentation: TODO
|
|
315
|
+
|
|
316
|
+
:param service_type: Service type for the alert definition (e.g. `dbaas`).
|
|
317
|
+
:type service_type: str
|
|
318
|
+
:param id: Alert definition identifier.
|
|
319
|
+
:type id: int
|
|
320
|
+
:param filters: Optional filter expressions to apply to the collection.
|
|
321
|
+
See :doc:`Filtering Collections</linode_api4/objects/filtering>`.
|
|
322
|
+
|
|
323
|
+
:returns: A paginated list of entities associated with the alert definition.
|
|
324
|
+
:rtype: PaginatedList[AlertDefinitionEntity]
|
|
325
|
+
"""
|
|
326
|
+
|
|
327
|
+
endpoint = (
|
|
328
|
+
f"/monitor/services/{service_type}/alert-definitions/{id}/entities"
|
|
329
|
+
)
|
|
330
|
+
return self.client._get_and_filter(
|
|
331
|
+
AlertDefinitionEntity,
|
|
332
|
+
*filters,
|
|
333
|
+
endpoint=endpoint,
|
|
334
|
+
)
|
|
@@ -48,7 +48,6 @@ class VolumeGroup(Group):
|
|
|
48
48
|
:type tags: list[str]
|
|
49
49
|
:param encryption: Whether the new Volume should opt in or out of disk encryption.
|
|
50
50
|
:type encryption: str
|
|
51
|
-
Note: Block Storage Disk Encryption is not currently available to all users.
|
|
52
51
|
:returns: The new Volume.
|
|
53
52
|
:rtype: Volume
|
|
54
53
|
"""
|
|
@@ -1,3 +1,5 @@
|
|
|
1
|
+
from __future__ import annotations
|
|
2
|
+
|
|
1
3
|
import copy
|
|
2
4
|
import string
|
|
3
5
|
import sys
|
|
@@ -40,7 +42,11 @@ from linode_api4.objects.region import Region
|
|
|
40
42
|
from linode_api4.objects.serializable import JSONObject, StrEnum
|
|
41
43
|
from linode_api4.objects.vpc import VPC, VPCSubnet
|
|
42
44
|
from linode_api4.paginated_list import PaginatedList
|
|
43
|
-
from linode_api4.util import
|
|
45
|
+
from linode_api4.util import (
|
|
46
|
+
drop_null_keys,
|
|
47
|
+
generate_device_suffixes,
|
|
48
|
+
normalize_as_list,
|
|
49
|
+
)
|
|
44
50
|
|
|
45
51
|
PASSWORD_CHARS = string.ascii_letters + string.digits + string.punctuation
|
|
46
52
|
MIN_DEVICE_LIMIT = 8
|
|
@@ -1246,14 +1252,14 @@ class Instance(Base):
|
|
|
1246
1252
|
# create derived objects
|
|
1247
1253
|
def config_create(
|
|
1248
1254
|
self,
|
|
1249
|
-
kernel=None,
|
|
1250
|
-
label=None,
|
|
1251
|
-
devices
|
|
1252
|
-
disks
|
|
1253
|
-
volumes
|
|
1254
|
-
interfaces
|
|
1255
|
+
kernel: Kernel | str | None = None,
|
|
1256
|
+
label: str | None = None,
|
|
1257
|
+
devices: "Disk | Volume | dict[str, Any] | list[Disk | Volume | dict[str, Any]] | None" = None,
|
|
1258
|
+
disks: Disk | int | list[Disk | int] | None = None,
|
|
1259
|
+
volumes: "Volume | int | list[Volume | int] | None" = None,
|
|
1260
|
+
interfaces: list[ConfigInterface | dict[str, Any]] | None = None,
|
|
1255
1261
|
**kwargs,
|
|
1256
|
-
):
|
|
1262
|
+
) -> Config:
|
|
1257
1263
|
"""
|
|
1258
1264
|
Creates a Linode Config with the given attributes.
|
|
1259
1265
|
|
|
@@ -1263,10 +1269,13 @@ class Instance(Base):
|
|
|
1263
1269
|
:param label: The config label
|
|
1264
1270
|
:param disks: The list of disks, starting at sda, to map to this config.
|
|
1265
1271
|
:param volumes: The volumes, starting after the last disk, to map to this
|
|
1266
|
-
|
|
1272
|
+
config.
|
|
1267
1273
|
:param devices: A list of devices to assign to this config, in device
|
|
1268
|
-
|
|
1269
|
-
|
|
1274
|
+
index order, a raw device mapping dict to pass directly to the API
|
|
1275
|
+
(e.g. ``{"sda": {"disk_id": 123}, "sdb": Volume(...)}``), or
|
|
1276
|
+
a single Disk or Volume.
|
|
1277
|
+
If this is given, you may not include disks or volumes.
|
|
1278
|
+
:param interfaces: A list of ConfigInterface objects or dicts to assign to this config.
|
|
1270
1279
|
:param **kwargs: Any other arguments accepted by the api.
|
|
1271
1280
|
|
|
1272
1281
|
:returns: A new Linode Config
|
|
@@ -1274,6 +1283,8 @@ class Instance(Base):
|
|
|
1274
1283
|
# needed here to avoid circular imports
|
|
1275
1284
|
from .volume import Volume # pylint: disable=import-outside-toplevel
|
|
1276
1285
|
|
|
1286
|
+
interfaces = [] if interfaces is None else interfaces
|
|
1287
|
+
|
|
1277
1288
|
hypervisor_prefix = "sd" if self.hypervisor == "kvm" else "xvd"
|
|
1278
1289
|
|
|
1279
1290
|
device_limit = int(
|
|
@@ -1288,52 +1299,83 @@ class Instance(Base):
|
|
|
1288
1299
|
for suffix in generate_device_suffixes(device_limit)
|
|
1289
1300
|
]
|
|
1290
1301
|
|
|
1291
|
-
|
|
1292
|
-
|
|
1293
|
-
|
|
1302
|
+
def _flatten_device(device: Disk | Volume | dict | None):
|
|
1303
|
+
if device is None:
|
|
1304
|
+
return None
|
|
1305
|
+
elif isinstance(device, Disk):
|
|
1306
|
+
return {"disk_id": device.id}
|
|
1307
|
+
elif isinstance(device, Volume):
|
|
1308
|
+
return {"volume_id": device.id}
|
|
1309
|
+
elif isinstance(device, dict):
|
|
1310
|
+
return device
|
|
1311
|
+
|
|
1312
|
+
raise TypeError("Disk, Volume, or dict expected!")
|
|
1313
|
+
|
|
1314
|
+
def _device_entry(device: Disk | Volume | int, key: str):
|
|
1315
|
+
if isinstance(device, (Disk, Volume)):
|
|
1316
|
+
return _flatten_device(device)
|
|
1317
|
+
|
|
1318
|
+
try:
|
|
1319
|
+
device_id = int(device)
|
|
1320
|
+
except (TypeError, ValueError):
|
|
1321
|
+
raise TypeError(
|
|
1322
|
+
"Disk, Volume, or integer ID expected!"
|
|
1323
|
+
) from None
|
|
1324
|
+
|
|
1325
|
+
return {key: device_id}
|
|
1326
|
+
|
|
1327
|
+
def _build_devices():
|
|
1328
|
+
# Devices is a dict, flatten and pass through
|
|
1329
|
+
if isinstance(devices, dict):
|
|
1330
|
+
return {
|
|
1331
|
+
k: (
|
|
1332
|
+
_flatten_device(v)
|
|
1333
|
+
if isinstance(v, (Disk, Volume))
|
|
1334
|
+
else v
|
|
1335
|
+
)
|
|
1336
|
+
for k, v in devices.items()
|
|
1337
|
+
}
|
|
1294
1338
|
|
|
1339
|
+
device_list = []
|
|
1340
|
+
|
|
1341
|
+
if devices:
|
|
1342
|
+
device_list += [
|
|
1343
|
+
_flatten_device(device)
|
|
1344
|
+
for device in normalize_as_list(devices)
|
|
1345
|
+
]
|
|
1346
|
+
|
|
1347
|
+
if disks:
|
|
1348
|
+
device_list += [
|
|
1349
|
+
_device_entry(disk, "disk_id") if disk is not None else None
|
|
1350
|
+
for disk in normalize_as_list(disks)
|
|
1351
|
+
]
|
|
1352
|
+
|
|
1353
|
+
if volumes:
|
|
1354
|
+
device_list += [
|
|
1355
|
+
(
|
|
1356
|
+
_device_entry(volume, "volume_id")
|
|
1357
|
+
if volume is not None
|
|
1358
|
+
else None
|
|
1359
|
+
)
|
|
1360
|
+
for volume in normalize_as_list(volumes)
|
|
1361
|
+
]
|
|
1362
|
+
|
|
1363
|
+
return {
|
|
1364
|
+
device_names[i]: device for i, device in enumerate(device_list)
|
|
1365
|
+
}
|
|
1366
|
+
|
|
1367
|
+
# This validation is enforced for backwards compatibility but isn't
|
|
1368
|
+
# technically needed anymore
|
|
1295
1369
|
if devices and (disks or volumes):
|
|
1296
1370
|
raise ValueError(
|
|
1297
1371
|
'You may not call config_create with "devices" and '
|
|
1298
1372
|
'either of "disks" or "volumes" specified!'
|
|
1299
1373
|
)
|
|
1300
1374
|
|
|
1301
|
-
|
|
1302
|
-
if not isinstance(disks, list):
|
|
1303
|
-
disks = [disks]
|
|
1304
|
-
if not isinstance(volumes, list):
|
|
1305
|
-
volumes = [volumes]
|
|
1306
|
-
|
|
1307
|
-
devices = []
|
|
1308
|
-
|
|
1309
|
-
for d in disks:
|
|
1310
|
-
if d is None:
|
|
1311
|
-
devices.append(None)
|
|
1312
|
-
elif isinstance(d, Disk):
|
|
1313
|
-
devices.append(d)
|
|
1314
|
-
else:
|
|
1315
|
-
devices.append(Disk(self._client, int(d), self.id))
|
|
1316
|
-
|
|
1317
|
-
for v in volumes:
|
|
1318
|
-
if v is None:
|
|
1319
|
-
devices.append(None)
|
|
1320
|
-
elif isinstance(v, Volume):
|
|
1321
|
-
devices.append(v)
|
|
1322
|
-
else:
|
|
1323
|
-
devices.append(Volume(self._client, int(v)))
|
|
1324
|
-
|
|
1325
|
-
if not devices:
|
|
1326
|
-
raise ValueError("Must include at least one disk or volume!")
|
|
1375
|
+
device_map = _build_devices()
|
|
1327
1376
|
|
|
1328
|
-
|
|
1329
|
-
|
|
1330
|
-
pass
|
|
1331
|
-
elif isinstance(d, Disk):
|
|
1332
|
-
device_map[device_names[i]] = {"disk_id": d.id}
|
|
1333
|
-
elif isinstance(d, Volume):
|
|
1334
|
-
device_map[device_names[i]] = {"volume_id": d.id}
|
|
1335
|
-
else:
|
|
1336
|
-
raise TypeError("Disk or Volume expected!")
|
|
1377
|
+
if len(device_map) < 1:
|
|
1378
|
+
raise ValueError("Must include at least one disk or volume!")
|
|
1337
1379
|
|
|
1338
1380
|
param_interfaces = []
|
|
1339
1381
|
for interface in interfaces:
|
|
@@ -1406,7 +1448,6 @@ class Instance(Base):
|
|
|
1406
1448
|
should already be set up, see :any:`ProfileGroup.ssh_keys`
|
|
1407
1449
|
for details.
|
|
1408
1450
|
:param disk_encryption: The disk encryption policy for this Linode.
|
|
1409
|
-
NOTE: Disk encryption may not currently be available to all users.
|
|
1410
1451
|
:type disk_encryption: InstanceDiskEncryptionType or str
|
|
1411
1452
|
:param stackscript: A StackScript object, or the ID of one, to deploy to this
|
|
1412
1453
|
disk. Requires deploying a compatible image.
|
|
@@ -1600,7 +1641,6 @@ class Instance(Base):
|
|
|
1600
1641
|
the key.
|
|
1601
1642
|
:type authorized_keys: list or str
|
|
1602
1643
|
:param disk_encryption: The disk encryption policy for this Linode.
|
|
1603
|
-
NOTE: Disk encryption may not currently be available to all users.
|
|
1604
1644
|
:type disk_encryption: InstanceDiskEncryptionType or str
|
|
1605
1645
|
|
|
1606
1646
|
:returns: The newly generated password, if one was not provided
|
|
@@ -1845,8 +1885,8 @@ class Instance(Base):
|
|
|
1845
1885
|
to_linode=None,
|
|
1846
1886
|
region=None,
|
|
1847
1887
|
instance_type=None,
|
|
1848
|
-
configs=
|
|
1849
|
-
disks=
|
|
1888
|
+
configs=None,
|
|
1889
|
+
disks=None,
|
|
1850
1890
|
label=None,
|
|
1851
1891
|
group=None,
|
|
1852
1892
|
with_backups=None,
|
|
@@ -1902,7 +1942,10 @@ class Instance(Base):
|
|
|
1902
1942
|
'You may only specify one of "to_linode" and "region"'
|
|
1903
1943
|
)
|
|
1904
1944
|
|
|
1905
|
-
if
|
|
1945
|
+
configs = [] if configs is None else configs
|
|
1946
|
+
disks = [] if disks is None else disks
|
|
1947
|
+
|
|
1948
|
+
if region and not instance_type:
|
|
1906
1949
|
raise ValueError('Specifying a region requires a "service" as well')
|
|
1907
1950
|
|
|
1908
1951
|
if not isinstance(configs, list) and not isinstance(
|
|
@@ -8,6 +8,7 @@ from linode_api4.objects import (
|
|
|
8
8
|
Base,
|
|
9
9
|
DerivedBase,
|
|
10
10
|
Instance,
|
|
11
|
+
InstanceDiskEncryptionType,
|
|
11
12
|
JSONObject,
|
|
12
13
|
MappedObject,
|
|
13
14
|
Property,
|
|
@@ -422,6 +423,9 @@ class LKECluster(Base):
|
|
|
422
423
|
] = None,
|
|
423
424
|
update_strategy: Optional[str] = None,
|
|
424
425
|
label: str = None,
|
|
426
|
+
disk_encryption: Optional[
|
|
427
|
+
Union[str, InstanceDiskEncryptionType]
|
|
428
|
+
] = None,
|
|
425
429
|
**kwargs,
|
|
426
430
|
):
|
|
427
431
|
"""
|
|
@@ -443,6 +447,9 @@ class LKECluster(Base):
|
|
|
443
447
|
:param update_strategy: The strategy to use when updating this node pool.
|
|
444
448
|
NOTE: This field is specific to enterprise clusters.
|
|
445
449
|
:type update_strategy: str
|
|
450
|
+
:param disk_encryption: Local disk encryption setting for this LKE node pool.
|
|
451
|
+
One of 'enabled' or 'disabled'. Defaults to 'disabled'.
|
|
452
|
+
:type disk_encryption: str or InstanceDiskEncryptionType
|
|
446
453
|
:param kwargs: Any other arguments to pass to the API. See the API docs
|
|
447
454
|
for possible values.
|
|
448
455
|
|
|
@@ -459,6 +466,7 @@ class LKECluster(Base):
|
|
|
459
466
|
"taints": taints,
|
|
460
467
|
"k8s_version": k8s_version,
|
|
461
468
|
"update_strategy": update_strategy,
|
|
469
|
+
"disk_encryption": disk_encryption,
|
|
462
470
|
}
|
|
463
471
|
params.update(kwargs)
|
|
464
472
|
|
|
@@ -7,11 +7,13 @@ from linode_api4.objects.serializable import JSONObject, StrEnum
|
|
|
7
7
|
|
|
8
8
|
__all__ = [
|
|
9
9
|
"AggregateFunction",
|
|
10
|
-
"Alert",
|
|
11
10
|
"AlertChannel",
|
|
12
11
|
"AlertDefinition",
|
|
12
|
+
"AlertDefinitionChannel",
|
|
13
|
+
"AlertDefinitionEntity",
|
|
14
|
+
"AlertEntities",
|
|
15
|
+
"AlertScope",
|
|
13
16
|
"AlertType",
|
|
14
|
-
"Alerts",
|
|
15
17
|
"MonitorDashboard",
|
|
16
18
|
"MonitorMetricsDefinition",
|
|
17
19
|
"MonitorService",
|
|
@@ -341,15 +343,15 @@ class RuleCriteria(JSONObject):
|
|
|
341
343
|
|
|
342
344
|
|
|
343
345
|
@dataclass
|
|
344
|
-
class
|
|
346
|
+
class AlertDefinitionChannel(JSONObject):
|
|
345
347
|
"""
|
|
346
|
-
Represents
|
|
348
|
+
Represents the notification channel set up for use with an alert.
|
|
347
349
|
|
|
348
350
|
Fields:
|
|
349
|
-
- id: int - Unique identifier
|
|
350
|
-
- label: str - Human-readable name for the alert
|
|
351
|
-
- type: str - Type of the alert
|
|
352
|
-
- url: str -
|
|
351
|
+
- id: int - Unique identifier for this notification channel.
|
|
352
|
+
- label: str - Human-readable name for the alert channel.
|
|
353
|
+
- type: str - Type of notification used with the channel. For a user alert definition, only `email` is supported.
|
|
354
|
+
- url: str - URL for the channel that ends in the channel's id.
|
|
353
355
|
"""
|
|
354
356
|
|
|
355
357
|
id: int = 0
|
|
@@ -358,18 +360,6 @@ class Alert(JSONObject):
|
|
|
358
360
|
url: str = ""
|
|
359
361
|
|
|
360
362
|
|
|
361
|
-
@dataclass
|
|
362
|
-
class Alerts(JSONObject):
|
|
363
|
-
"""
|
|
364
|
-
Represents a collection of alert definitions within an AlertChannel.
|
|
365
|
-
|
|
366
|
-
Fields:
|
|
367
|
-
- items: List[Alert] - List of alert definitions.
|
|
368
|
-
"""
|
|
369
|
-
|
|
370
|
-
items: List[Alert] = field(default_factory=list)
|
|
371
|
-
|
|
372
|
-
|
|
373
363
|
class AlertType(StrEnum):
|
|
374
364
|
"""
|
|
375
365
|
Enumeration of alert origin types used by alert definitions.
|
|
@@ -387,6 +377,43 @@ class AlertType(StrEnum):
|
|
|
387
377
|
user = "user"
|
|
388
378
|
|
|
389
379
|
|
|
380
|
+
class AlertScope(StrEnum):
|
|
381
|
+
"""
|
|
382
|
+
Scope values supported for alert definitions.
|
|
383
|
+
"""
|
|
384
|
+
|
|
385
|
+
entity = "entity"
|
|
386
|
+
region = "region"
|
|
387
|
+
account = "account"
|
|
388
|
+
|
|
389
|
+
|
|
390
|
+
@dataclass
|
|
391
|
+
class AlertEntities(JSONObject):
|
|
392
|
+
"""
|
|
393
|
+
Represents entity metadata for an alert definition.
|
|
394
|
+
|
|
395
|
+
For entity scoped alerts, `entities` envelope contains the URL to list entities,
|
|
396
|
+
a count, and a has_more_resources flag.
|
|
397
|
+
For region/account scoped alerts, the `entities` are returned as an empty object.
|
|
398
|
+
"""
|
|
399
|
+
|
|
400
|
+
url: str = ""
|
|
401
|
+
count: int = 0
|
|
402
|
+
has_more_resources: bool = False
|
|
403
|
+
|
|
404
|
+
|
|
405
|
+
@dataclass
|
|
406
|
+
class AlertDefinitionEntity(JSONObject):
|
|
407
|
+
"""
|
|
408
|
+
Represents an entity associated with an alert definition.
|
|
409
|
+
"""
|
|
410
|
+
|
|
411
|
+
id: str = ""
|
|
412
|
+
label: str = ""
|
|
413
|
+
url: str = ""
|
|
414
|
+
_type: str = field(default="", metadata={"json_key": "type"})
|
|
415
|
+
|
|
416
|
+
|
|
390
417
|
class AlertDefinition(DerivedBase):
|
|
391
418
|
"""
|
|
392
419
|
Represents an alert definition for a monitor service.
|
|
@@ -406,12 +433,12 @@ class AlertDefinition(DerivedBase):
|
|
|
406
433
|
"severity": Property(mutable=True),
|
|
407
434
|
"type": Property(mutable=True),
|
|
408
435
|
"status": Property(mutable=True),
|
|
409
|
-
"has_more_resources": Property(
|
|
436
|
+
"has_more_resources": Property(), # Deprecated; use entities.has_more_resources.
|
|
410
437
|
"rule_criteria": Property(mutable=True, json_object=RuleCriteria),
|
|
411
438
|
"trigger_conditions": Property(
|
|
412
439
|
mutable=True, json_object=TriggerConditions
|
|
413
440
|
),
|
|
414
|
-
"alert_channels": Property(
|
|
441
|
+
"alert_channels": Property(json_object=AlertDefinitionChannel),
|
|
415
442
|
"created": Property(is_datetime=True),
|
|
416
443
|
"updated": Property(is_datetime=True),
|
|
417
444
|
"updated_by": Property(),
|
|
@@ -419,28 +446,12 @@ class AlertDefinition(DerivedBase):
|
|
|
419
446
|
"entity_ids": Property(mutable=True),
|
|
420
447
|
"description": Property(mutable=True),
|
|
421
448
|
"service_class": Property(alias_of="class"),
|
|
449
|
+
"scope": Property(AlertScope),
|
|
450
|
+
"regions": Property(mutable=True),
|
|
451
|
+
"entities": Property(json_object=AlertEntities),
|
|
422
452
|
}
|
|
423
453
|
|
|
424
454
|
|
|
425
|
-
@dataclass
|
|
426
|
-
class EmailChannelContent(JSONObject):
|
|
427
|
-
"""
|
|
428
|
-
Represents the content for an email alert channel.
|
|
429
|
-
"""
|
|
430
|
-
|
|
431
|
-
email_addresses: Optional[List[str]] = None
|
|
432
|
-
|
|
433
|
-
|
|
434
|
-
@dataclass
|
|
435
|
-
class ChannelContent(JSONObject):
|
|
436
|
-
"""
|
|
437
|
-
Represents the content block for an AlertChannel, which varies by channel type.
|
|
438
|
-
"""
|
|
439
|
-
|
|
440
|
-
email: Optional[EmailChannelContent] = None
|
|
441
|
-
# Other channel types like 'webhook', 'slack' could be added here as Optional fields.
|
|
442
|
-
|
|
443
|
-
|
|
444
455
|
@dataclass
|
|
445
456
|
class EmailDetails(JSONObject):
|
|
446
457
|
"""
|
|
@@ -481,7 +492,7 @@ class AlertChannel(Base):
|
|
|
481
492
|
fire. Alert channels define a destination and configuration for
|
|
482
493
|
notifications (for example: email lists, webhooks, PagerDuty, Slack, etc.).
|
|
483
494
|
|
|
484
|
-
API Documentation: https://techdocs.akamai.com/linode-api/reference/get-
|
|
495
|
+
API Documentation: https://techdocs.akamai.com/linode-api/reference/get-notification-channels
|
|
485
496
|
|
|
486
497
|
This class maps to the Monitor API's `/monitor/alert-channels` resource
|
|
487
498
|
and is used by the SDK to list, load, and inspect channels.
|
|
@@ -499,7 +510,6 @@ class AlertChannel(Base):
|
|
|
499
510
|
"channel_type": Property(),
|
|
500
511
|
"details": Property(mutable=False, json_object=ChannelDetails),
|
|
501
512
|
"alerts": Property(mutable=False, json_object=AlertInfo),
|
|
502
|
-
"content": Property(mutable=False, json_object=ChannelContent),
|
|
503
513
|
"created": Property(is_datetime=True),
|
|
504
514
|
"updated": Property(is_datetime=True),
|
|
505
515
|
"created_by": Property(),
|
|
@@ -3,7 +3,7 @@ Contains various utility functions.
|
|
|
3
3
|
"""
|
|
4
4
|
|
|
5
5
|
import string
|
|
6
|
-
from typing import Any, Dict
|
|
6
|
+
from typing import Any, Dict, List, Tuple, Union
|
|
7
7
|
|
|
8
8
|
|
|
9
9
|
def drop_null_keys(data: Dict[Any, Any], recursive=True) -> Dict[Any, Any]:
|
|
@@ -30,6 +30,13 @@ def drop_null_keys(data: Dict[Any, Any], recursive=True) -> Dict[Any, Any]:
|
|
|
30
30
|
return recursive_helper(data)
|
|
31
31
|
|
|
32
32
|
|
|
33
|
+
def normalize_as_list(value: Any) -> Union[List, Tuple]:
|
|
34
|
+
"""
|
|
35
|
+
Returns the value wrapped in a list if it isn't already a list or tuple.
|
|
36
|
+
"""
|
|
37
|
+
return value if isinstance(value, (list, tuple)) else [value]
|
|
38
|
+
|
|
39
|
+
|
|
33
40
|
def generate_device_suffixes(n: int) -> list[str]:
|
|
34
41
|
"""
|
|
35
42
|
Generate n alphabetical suffixes starting with a, b, c, etc.
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: linode_api4
|
|
3
|
-
Version: 5.
|
|
3
|
+
Version: 5.43.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
|
|
@@ -14,11 +14,12 @@ Classifier: Topic :: Software Development :: Libraries
|
|
|
14
14
|
Classifier: License :: OSI Approved :: BSD License
|
|
15
15
|
Classifier: Programming Language :: Python
|
|
16
16
|
Classifier: Programming Language :: Python :: 3
|
|
17
|
-
Classifier: Programming Language :: Python :: 3.9
|
|
18
17
|
Classifier: Programming Language :: Python :: 3.10
|
|
19
18
|
Classifier: Programming Language :: Python :: 3.11
|
|
20
19
|
Classifier: Programming Language :: Python :: 3.12
|
|
21
|
-
|
|
20
|
+
Classifier: Programming Language :: Python :: 3.13
|
|
21
|
+
Classifier: Programming Language :: Python :: 3.14
|
|
22
|
+
Requires-Python: >=3.10
|
|
22
23
|
Description-Content-Type: text/x-rst
|
|
23
24
|
License-File: LICENSE
|
|
24
25
|
Requires-Dist: requests
|
|
@@ -188,6 +188,7 @@ test/fixtures/longview_plan.json
|
|
|
188
188
|
test/fixtures/longview_subscriptions.json
|
|
189
189
|
test/fixtures/maintenance_policies.json
|
|
190
190
|
test/fixtures/mongodb.json
|
|
191
|
+
test/fixtures/monitor_alert-channels.json
|
|
191
192
|
test/fixtures/monitor_alert-definitions.json
|
|
192
193
|
test/fixtures/monitor_dashboards.json
|
|
193
194
|
test/fixtures/monitor_dashboards_1.json
|
|
@@ -195,6 +196,7 @@ test/fixtures/monitor_services.json
|
|
|
195
196
|
test/fixtures/monitor_services_dbaas.json
|
|
196
197
|
test/fixtures/monitor_services_dbaas_alert-definitions.json
|
|
197
198
|
test/fixtures/monitor_services_dbaas_alert-definitions_12345.json
|
|
199
|
+
test/fixtures/monitor_services_dbaas_alert-definitions_12345_entities.json
|
|
198
200
|
test/fixtures/monitor_services_dbaas_dashboards.json
|
|
199
201
|
test/fixtures/monitor_services_dbaas_metric-definitions.json
|
|
200
202
|
test/fixtures/monitor_services_dbaas_metrics.json
|
|
@@ -8,7 +8,7 @@ name = "linode_api4"
|
|
|
8
8
|
authors = [{ name = "Linode", email = "devs@linode.com" }]
|
|
9
9
|
description = "The official Python SDK for Linode API v4"
|
|
10
10
|
readme = "README.rst"
|
|
11
|
-
requires-python = ">=3.
|
|
11
|
+
requires-python = ">=3.10"
|
|
12
12
|
keywords = [
|
|
13
13
|
"akamai",
|
|
14
14
|
"Akamai Connected Cloud",
|
|
@@ -25,10 +25,11 @@ classifiers = [
|
|
|
25
25
|
"License :: OSI Approved :: BSD License",
|
|
26
26
|
"Programming Language :: Python",
|
|
27
27
|
"Programming Language :: Python :: 3",
|
|
28
|
-
"Programming Language :: Python :: 3.9",
|
|
29
28
|
"Programming Language :: Python :: 3.10",
|
|
30
29
|
"Programming Language :: Python :: 3.11",
|
|
31
30
|
"Programming Language :: Python :: 3.12",
|
|
31
|
+
"Programming Language :: Python :: 3.13",
|
|
32
|
+
"Programming Language :: Python :: 3.14",
|
|
32
33
|
]
|
|
33
34
|
dependencies = ["requests", "polling", "deprecated"]
|
|
34
35
|
dynamic = ["version"]
|
|
@@ -78,7 +79,7 @@ line_length = 80
|
|
|
78
79
|
|
|
79
80
|
[tool.black]
|
|
80
81
|
line-length = 80
|
|
81
|
-
target-version = ["
|
|
82
|
+
target-version = ["py310", "py311", "py312", "py313", "py314"]
|
|
82
83
|
|
|
83
84
|
[tool.autoflake]
|
|
84
85
|
expand-star-imports = true
|