graph LR
Linode_API_Client["Linode API Client"]
API_Resource_Group_Managers["API Resource Group Managers"]
Core_API_Data_Models["Core API Data Models"]
API_Resource_Data_Models["API Resource Data Models"]
API_Error_Handling["API Error Handling"]
API_Utilities["API Utilities"]
Linode_API_Client -- "orchestrates" --> API_Resource_Group_Managers
API_Resource_Group_Managers -- "uses" --> Linode_API_Client
Linode_API_Client -- "handles" --> API_Error_Handling
API_Error_Handling -- "reports_to" --> Linode_API_Client
Linode_API_Client -- "leverages" --> API_Utilities
API_Resource_Group_Managers -- "manages" --> API_Resource_Data_Models
API_Resource_Group_Managers -- "leverages" --> API_Utilities
Core_API_Data_Models -- "defines_base_for" --> API_Resource_Data_Models
API_Resource_Data_Models -- "extends" --> Core_API_Data_Models
API_Resource_Data_Models -- "interacts_via" --> Linode_API_Client
API_Resource_Data_Models -- "affected_by" --> API_Error_Handling
API_Utilities -- "supports" --> Core_API_Data_Models
click Linode_API_Client href "https://github.com/CodeBoarding/GeneratedOnBoardings/blob/main/python-linode-api/Linode API Client.md" "Details"
click API_Resource_Group_Managers href "https://github.com/CodeBoarding/GeneratedOnBoardings/blob/main/python-linode-api/API Resource Group Managers.md" "Details"
click Core_API_Data_Models href "https://github.com/CodeBoarding/GeneratedOnBoardings/blob/main/python-linode-api/Core API Data Models.md" "Details"
click API_Resource_Data_Models href "https://github.com/CodeBoarding/GeneratedOnBoardings/blob/main/python-linode-api/API Resource Data Models.md" "Details"
click API_Error_Handling href "https://github.com/CodeBoarding/GeneratedOnBoardings/blob/main/python-linode-api/API Error Handling.md" "Details"
click API_Utilities href "https://github.com/CodeBoarding/GeneratedOnBoardings/blob/main/python-linode-api/API Utilities.md" "Details"
The python-linode-api project provides a comprehensive Python client for interacting with the Linode API. Its main flow involves a central API client that orchestrates requests, which are then managed by specialized resource group managers. These managers operate on structured API data models, with core models defining the base structure and specific models representing various Linode resources. The system also incorporates robust error handling and a suite of utility functions to support API interactions, including pagination, filtering, and authentication.
The primary client for interacting with the Linode API, responsible for authentication, request execution, response handling, and retry mechanisms. It orchestrates all API interactions.
Related Classes/Methods:
python-linode-api.linode_api4.linode_client.LinodeClient(54:488)python-linode-api.linode_api4.linode_client.LinearRetry(44:51)python-linode-api.linode_api4.linode_client.LinodeClient:_api_call(250:302)python-linode-api.linode_api4.linode_client.LinodeClient:_get_objects(304:333)python-linode-api.linode_api4.linode_client.LinodeClient:get(335:336)python-linode-api.linode_api4.linode_client.LinodeClient:post(338:339)python-linode-api.linode_api4.linode_client.LinodeClient:put(341:342)python-linode-api.linode_api4.linode_client.LinodeClient:delete(344:345)
A collection of specialized classes, each providing high-level methods for managing a specific category of Linode API resources (e.g., Linodes, Accounts, Databases, Domains). They abstract direct API calls for resource-specific operations.
Related Classes/Methods:
python-linode-api.linode_api4.groups.linode.LinodeGroup(29:451)python-linode-api.linode_api4.groups.profile.ProfileGroup(18:345)python-linode-api.linode_api4.groups.account.AccountGroup(24:512)python-linode-api.linode_api4.groups.networking.NetworkingGroup(16:396)python-linode-api.linode_api4.groups.support.SupportGroup(17:105)python-linode-api.linode_api4.groups.longview.LongviewGroup(10:107)python-linode-api.linode_api4.groups.object_storage.ObjectStorageGroup(29:535)python-linode-api.linode_api4.groups.lke.LKEGroup(17:207)python-linode-api.linode_api4.groups.database.DatabaseGroup(20:377)python-linode-api.linode_api4.groups.nodebalancer.NodeBalancerGroup(6:70)python-linode-api.linode_api4.groups.domain.DomainGroup(6:61)python-linode-api.linode_api4.groups.tag.TagGroup(6:116)python-linode-api.linode_api4.groups.volume.VolumeGroup(7:95)python-linode-api.linode_api4.groups.region.RegionGroup(6:45)python-linode-api.linode_api4.groups.image.ImageGroup(12:173)python-linode-api.linode_api4.groups.vpc.VPCGroup(9:104)python-linode-api.linode_api4.groups.polling.PollingGroup(9:91)python-linode-api.linode_api4.groups.beta.BetaProgramGroup(5:24)python-linode-api.linode_api4.groups.placement.PlacementAPIGroup(13:76)python-linode-api.linode_api4.groups.monitor.MonitorGroup(19:153)python-linode-api.linode_api4.groups.lke_tier.LKETierGroup(5:40)
Fundamental abstract classes that define the common structure and behavior for all Linode API resources, handling object instantiation, attribute management, and basic serialization/deserialization.
Related Classes/Methods:
python-linode-api.linode_api4.objects.base.Base(147:506)python-linode-api.linode_api4.objects.base.MappedObject(73:144)python-linode-api.linode_api4.objects.serializable.JSONObject(43:258)python-linode-api.linode_api4.objects.serializable.JSONFilterableMetaclass(26:39)python-linode-api.linode_api4.objects.dbase.DerivedBase(4:27)python-linode-api.linode_api4.objects.base._flatten_request_body_recursive(509:535)
Concrete data models representing various Linode API resources such as Linode instances, databases, object storage, networking components, LKE clusters, NodeBalancers, account details, user profiles, domains, volumes, images, tags, support tickets, placement groups, and regions. These models extend the Core API Data Models to provide resource-specific attributes and methods.
Related Classes/Methods:
python-linode-api.linode_api4.objects.linode.Instance(full file reference)python-linode-api.linode_api4.objects.linode.Backup(full file reference)python-linode-api.linode_api4.objects.linode.Disk(full file reference)python-linode-api.linode_api4.objects.linode.Config(full file reference)python-linode-api.linode_api4.objects.linode.NetworkInterface(full file reference)python-linode-api.linode_api4.objects.linode.StackScript(full file reference)python-linode-api.linode_api4.objects.linode.Type(full file reference)linode_api4.objects.linode.UserDefinedField(full file reference)python-linode-api.linode_api4.objects.database.DatabaseType(15:44)python-linode-api.linode_api4.objects.database.DatabaseEngine(47:74)python-linode-api.linode_api4.objects.database.MySQLDatabase(274:436)python-linode-api.linode_api4.objects.database.PostgreSQLDatabase(439:603)python-linode-api.linode_api4.objects.database.Database(612:670)python-linode-api.linode_api4.objects.object_storage.ObjectStorageBucket(82:502)python-linode-api.linode_api4.objects.object_storage.ObjectStorageKeys(561:578)python-linode-api.linode_api4.objects.object_storage.ObjectStorageQuota(581:616)python-linode-api.linode_api4.objects.networking.Firewall(198:307)python-linode-api.linode_api4.objects.networking.IPAddress(60:127)linode_api4.objects.networking.IPv6Range(26:45)python-linode-api.linode_api4.objects.networking.FirewallDevice(179:195)python-linode-api.linode_api4.objects.lke.LKECluster(267:639)python-linode-api.linode_api4.objects.lke.LKENodePool(173:264)python-linode-api.linode_api4.objects.lke.LKENodePoolNode(147:170)python-linode-api.linode_api4.objects.nodebalancer.NodeBalancer(232:357)python-linode-api.linode_api4.objects.nodebalancer.NodeBalancerConfig(75:229)python-linode-api.linode_api4.objects.nodebalancer.NodeBalancerNode(30:72)python-linode-api.linode_api4.objects.account.Account(25:56)python-linode-api.linode_api4.objects.account.AccountSettings(183:201)python-linode-api.linode_api4.objects.account.ChildAccount(59:89)python-linode-api.linode_api4.objects.account.Event(204:331)python-linode-api.linode_api4.objects.account.InvoiceItem(334:366)python-linode-api.linode_api4.objects.account.OAuthClient(390:488)python-linode-api.linode_api4.objects.account.PaymentMethod(130:162)python-linode-api.linode_api4.objects.account.ServiceTransfer(92:127)python-linode-api.linode_api4.objects.account.User(507:555)python-linode-api.linode_api4.objects.account.UserGrants(619:703)linode_api4.objects.account.Grant(577:616)python-linode-api.linode_api4.objects.profile.Profile(59:186)python-linode-api.linode_api4.objects.profile.PersonalAccessToken(25:41)python-linode-api.linode_api4.objects.profile.SSHKey(189:203)python-linode-api.linode_api4.objects.profile.WhitelistEntry(44:56)python-linode-api.linode_api4.objects.domain.Domain(34:160)python-linode-api.linode_api4.objects.domain.DomainRecord(5:31)python-linode-api.linode_api4.objects.volume.Volume(31:147)python-linode-api.linode_api4.objects.image.Image(33:89)python-linode-api.linode_api4.objects.tag.Tag(19:79)python-linode-api.linode_api4.objects.tag.TaggedObjectProxy(82:132)python-linode-api.linode_api4.objects.support.SupportTicket(39:190)python-linode-api.linode_api4.objects.support.TicketReply(18:36)python-linode-api.linode_api4.objects.placement.PlacementGroup(57:128)python-linode-api.linode_api4.objects.region.Region(19:51)
Manages and represents various error types that can be returned by the Linode API, providing structured information for error diagnosis and handling.
Related Classes/Methods:
python-linode-api.linode_api4.errors.ApiError(11:100)python-linode-api.linode_api4.errors.UnexpectedResponseError(103:149)python-linode-api.linode_api4.polling.EventError(9:26)
A collection of utility classes and functions that support various aspects of API interaction, including event polling, OAuth login, pagination, filtering, and general data manipulation.
Related Classes/Methods:
python-linode-api.linode_api4.polling.EventPoller(97:250)python-linode-api.linode_api4.polling.TimeoutContext(29:94)python-linode-api.linode_api4.login_client.LinodeLoginClient(325:519)python-linode-api.linode_api4.login_client.OAuthScopes(22:322)python-linode-api.linode_api4.paginated_list.PaginatedList(6:262)python-linode-api.linode_api4.objects.filtering.Filter(122:173)python-linode-api.linode_api4.objects.filtering.FilterableAttribute(176:201)linode_api4.objects.filtering.and_(69:82)linode_api4.objects.filtering.order_by(85:102)linode_api4.objects.filtering.limit(105:119)python-linode-api.linode_api4.util:drop_null_keys(8:29)linode_api4.common.load_and_validate_keys(16:62)linode_api4.objects.linode._expand_placement_group_assignment(full file reference)