graph LR
Linode_API_Client_Core_["Linode API Client (Core)"]
API_Error_Handling["API Error Handling"]
Authentication_and_Login_Management["Authentication and Login Management"]
Linode_Resource_Group_Interfaces["Linode Resource Group Interfaces"]
Individual_Resource_Objects["Individual Resource Objects"]
Event_Polling_Mechanism["Event Polling Mechanism"]
Linode_API_Client_Core_ -- "raises" --> API_Error_Handling
Authentication_and_Login_Management -- "uses" --> Linode_API_Client_Core_
Authentication_and_Login_Management -- "invokes" --> API_Error_Handling
Linode_Resource_Group_Interfaces -- "uses" --> Linode_API_Client_Core_
Linode_Resource_Group_Interfaces -- "invokes" --> API_Error_Handling
Individual_Resource_Objects -- "uses" --> Linode_API_Client_Core_
Individual_Resource_Objects -- "invokes" --> API_Error_Handling
Event_Polling_Mechanism -- "invokes" --> API_Error_Handling
This system provides a comprehensive Python client for interacting with the Linode API. It encompasses core functionalities such as making authenticated API requests, managing various Linode resources through high-level group interfaces and individual resource objects, handling asynchronous API events, and robustly managing and reporting API-related errors. The client ensures secure access via authentication and token management, offering a structured and reliable way to programmatically control Linode services.
The central component responsible for making HTTP requests to the Linode API, handling authentication, and managing the session. It includes the fundamental logic for API communication and initial error checking.
Related Classes/Methods:
linode_api4.linode_client.LinodeClient(54:488)linode_api4.linode_client.LinodeClient:_api_call(250:302)linode_api4.linode_client.LinodeClient:_get_objects(304:333)
Manages and represents various error types that can be returned by the Linode API, providing structured information for error diagnosis and handling. This component defines and manages the various error types that can be returned by the Linode API, providing methods to parse API responses into specific error objects for consistent error reporting throughout the library.
Related Classes/Methods:
linode_api4.errors.ApiError(11:100)linode_api4.errors.ApiError:from_response(37:100)linode_api4.errors.UnexpectedResponseError(103:149)linode_api4.errors.UnexpectedResponseError:from_response(126:149)linode_api4.polling.EventError(9:26)
This component specifically handles user authentication flows, including OAuth processes and the refreshing or expiring of access tokens, ensuring secure access to the Linode API.
Related Classes/Methods:
linode_api4.login_client.LinodeLoginClient(325:519)linode_api4.login_client.LinodeLoginClient:finish_oauth(393:447)linode_api4.login_client.LinodeLoginClient:refresh_oauth_token(449:488)linode_api4.login_client.LinodeLoginClient:expire_token(490:519)
These components serve as high-level interfaces for managing collections of Linode resources. They provide methods for creating, listing, and performing bulk operations on specific resource types like Linodes, Domains, or Volumes.
Related Classes/Methods:
linode_api4.groups.placement.PlacementAPIGroup:group_create(34:76)linode_api4.groups.database.DatabaseGroup:mysql_create(122:184)linode_api4.groups.database.DatabaseGroup:mysql_fork(186:239)linode_api4.groups.database.DatabaseGroup:postgresql_create(256:321)linode_api4.groups.database.DatabaseGroup:postgresql_fork(323:377)linode_api4.groups.tag.TagGroup:create(28:116)linode_api4.groups.volume.VolumeGroup:create(28:77)linode_api4.groups.object_storage.ObjectStorageGroup:keys_create(93:195)linode_api4.groups.object_storage.ObjectStorageGroup:transfer(278:298)linode_api4.groups.object_storage.ObjectStorageGroup:bucket_create(345:433)linode_api4.groups.object_storage.ObjectStorageGroup:object_url_create(447:520)linode_api4.groups.support.SupportGroup:ticket_open(38:105)linode_api4.groups.domain.DomainGroup:create(27:61)linode_api4.groups.linode.LinodeGroup:instance_create(136:356)linode_api4.groups.linode.LinodeGroup:stackscript_create(392:451)linode_api4.groups.monitor.MonitorGroup:create_token(123:153)linode_api4.groups.account.AccountGroup:__call__(29:49)linode_api4.groups.account.AccountGroup:settings(83:102)linode_api4.groups.account.AccountGroup:oauth_client_create(143:171)linode_api4.groups.account.AccountGroup:add_payment_method(228:278)linode_api4.groups.account.AccountGroup:linode_managed_enable(296:312)linode_api4.groups.account.AccountGroup:add_promo_code(314:338)linode_api4.groups.account.AccountGroup:service_transfer_create(352:393)linode_api4.groups.account.AccountGroup:transfer(395:411)linode_api4.groups.account.AccountGroup:user_create(413:456)linode_api4.groups.lke.LKEGroup:cluster_create(61:149)linode_api4.groups.image.ImageGroup:create(33:83)linode_api4.groups.image.ImageGroup:create_upload(85:132)linode_api4.groups.nodebalancer.NodeBalancerGroup:create(27:52)linode_api4.groups.longview.LongviewGroup:client_create(31:55)linode_api4.groups.vpc.VPCGroup:create(30:82)linode_api4.groups.profile.ProfileGroup:__call__(23:44)linode_api4.groups.profile.ProfileGroup:phone_number_delete(119:139)linode_api4.groups.profile.ProfileGroup:phone_number_verify(141:172)linode_api4.groups.profile.ProfileGroup:phone_number_verification_code_send(174:210)linode_api4.groups.profile.ProfileGroup:token_create(238:272)linode_api4.groups.profile.ProfileGroup:ssh_key_upload(304:345)linode_api4.groups.networking.NetworkingGroup:firewall_create(36:95)linode_api4.groups.networking.NetworkingGroup:ip_allocate(215:245)
These components represent specific instances of Linode resources (e.g., a particular Linode Instance or a Volume). They provide methods to interact with and modify the state of that individual resource via the API.
Related Classes/Methods:
linode_api4.objects.volume.Volume:attach(57:89)linode_api4.objects.volume.Volume:clone(126:147)linode_api4.objects.object_storage.ObjectStorageBucket:make_instance(114:127)linode_api4.objects.object_storage.ObjectStorageBucket:access_get(129:152)linode_api4.objects.object_storage.ObjectStorageBucket:access_modify(154:193)linode_api4.objects.object_storage.ObjectStorageBucket:access_update(195:234)linode_api4.objects.object_storage.ObjectStorageBucket:ssl_cert_delete(236:257)linode_api4.objects.object_storage.ObjectStorageBucket:ssl_cert(259:282)linode_api4.objects.object_storage.ObjectStorageBucket:ssl_cert_upload(284:325)linode_api4.objects.object_storage.ObjectStorageBucket:contents(327:391)linode_api4.objects.object_storage.ObjectStorageBucket:object_acl_config(393:428)linode_api4.objects.object_storage.ObjectStorageBucket:object_acl_config_update(430:471)linode_api4.objects.support.SupportTicket:post_reply(116:143)linode_api4.objects.support.SupportTicket:upload_attachment(145:181)linode_api4.objects.domain.Domain:record_create(62:98)linode_api4.objects.linode.Disk:duplicate(full file reference)linode_api4.objects.linode.Config:_interface_create(full file reference)linode_api4.objects.linode.Instance:ips(full file reference)linode_api4.objects.linode.Instance:available_backups(full file reference)linode_api4.objects.linode.Instance:transfer(full file reference)linode_api4.objects.linode.Instance:config_create(full file reference)linode_api4.objects.linode.Instance:disk_create(full file reference)linode_api4.objects.linode.Instance:snapshot(full file reference)linode_api4.objects.linode.Instance:ip_allocate(full file reference)linode_api4.objects.linode.Instance:rebuild(full file reference)linode_api4.objects.linode.Instance:clone(full file reference)linode_api4.objects.account.ChildAccount:create_token(71:89)linode_api4.objects.account.ServiceTransfer:service_transfer_accept(111:127)linode_api4.objects.account.PaymentMethod:payment_method_make_default(146:162)linode_api4.objects.account.OAuthClient:reset_secret(409:425)linode_api4.objects.account.OAuthClient:thumbnail(427:455)linode_api4.objects.account.OAuthClient:set_thumbnail(457:488)linode_api4.objects.region.Region:availability(41:51)linode_api4.objects.lke.LKECluster:node_pool_create(412:478)linode_api4.objects.nodebalancer.NodeBalancerConfig:node_create(157:198)linode_api4.objects.nodebalancer.NodeBalancer:config_create(258:284)linode_api4.objects.nodebalancer.NodeBalancer:config_rebuild(286:320)linode_api4.objects.nodebalancer.NodeBalancer:statistics(322:339)linode_api4.objects.vpc.VPC:subnet_create(63:101)linode_api4.objects.profile.Profile:add_whitelist_entry(166:186)linode_api4.objects.networking.IPAddress:ip_allocate(full file reference)linode_api4.objects.networking.Firewall:device_create(278:307)
This component is dedicated to monitoring and reacting to asynchronous events from the Linode API, allowing the client to wait for specific event completions or handle event-related errors.
Related Classes/Methods: