From c0c530ebf272e3624e98a45265e4da981721d4a1 Mon Sep 17 00:00:00 2001 From: ivanmilevtues Date: Fri, 6 Jun 2025 17:26:59 +0200 Subject: [PATCH 1/3] Added high-level diagrams --- .codeboarding/Advertising API Management.md | 203 ++++++++++++ .codeboarding/Core SDK Services.md | 162 +++++++++ .../Organic Content API Management.md | 109 ++++++ .codeboarding/SDK Utilities & Testing.md | 237 +++++++++++++ .codeboarding/on_boarding.md | 310 ++++++++++++++++++ 5 files changed, 1021 insertions(+) create mode 100644 .codeboarding/Advertising API Management.md create mode 100644 .codeboarding/Core SDK Services.md create mode 100644 .codeboarding/Organic Content API Management.md create mode 100644 .codeboarding/SDK Utilities & Testing.md create mode 100644 .codeboarding/on_boarding.md diff --git a/.codeboarding/Advertising API Management.md b/.codeboarding/Advertising API Management.md new file mode 100644 index 0000000..03eb60e --- /dev/null +++ b/.codeboarding/Advertising API Management.md @@ -0,0 +1,203 @@ +```mermaid +graph LR + Ad_Account_Management["Ad Account Management"] + Campaign_Management["Campaign Management"] + Ad_Group_Management["Ad Group Management"] + Ad_Management["Ad Management"] + Audience_Management["Audience Management"] + Conversion_Tag_Management["Conversion Tag Management"] + Conversion_Event_Management["Conversion Event Management"] + Customer_List_Management["Customer List Management"] + Keyword_Management["Keyword Management"] + Base_Model["Base Model"] + SDK_Client_Management["SDK Client Management"] + Base_Model -- "uses" --> SDK_Client_Management + Ad_Account_Management -- "extends" --> Base_Model + Ad_Account_Management -- "lists" --> Campaign_Management + Ad_Account_Management -- "lists" --> Audience_Management + Ad_Account_Management -- "lists" --> Customer_List_Management + Campaign_Management -- "extends" --> Base_Model + Campaign_Management -- "lists" --> Ad_Group_Management + Ad_Group_Management -- "extends" --> Base_Model + Ad_Group_Management -- "lists" --> Ad_Management + Ad_Management -- "extends" --> Base_Model + Conversion_Tag_Management -- "extends" --> Base_Model + Conversion_Event_Management -- "extends" --> Base_Model + Conversion_Event_Management -- "uses" --> SDK_Client_Management + Audience_Management -- "extends" --> Base_Model + Keyword_Management -- "extends" --> Base_Model + Customer_List_Management -- "extends" --> Base_Model +``` +[![CodeBoarding](https://img.shields.io/badge/Generated%20by-CodeBoarding-9cf?style=flat-square)](https://github.com/CodeBoarding/GeneratedOnBoardings)[![Demo](https://img.shields.io/badge/Try%20our-Demo-blue?style=flat-square)](https://www.codeboarding.org/demo)[![Contact](https://img.shields.io/badge/Contact%20us%20-%20contact@codeboarding.org-lightgrey?style=flat-square)](mailto:contact@codeboarding.org) + +## Component Details + +The Advertising API Management component is responsible for handling all aspects of advertising within the Pinterest API. It provides a structured way to manage various advertising entities such as ad accounts, campaigns, ad groups, ads, audiences, conversion tags, conversion events, customer lists, and keywords. This component is built upon the foundational 'Base Model' which provides common functionalities for API interactions, and it leverages the 'SDK Client Management' for authenticating and interacting with the Pinterest API. + +### Ad Account Management +Manages Pinterest Ad Accounts, allowing for their creation and retrieval. It also provides methods to list associated entities such as campaigns, audiences, and customer lists within a specific ad account. + + +**Related Classes/Methods**: + +- `pinterest.ads.ad_accounts.AdAccount` (22:262) +- `pinterest.ads.ad_accounts.AdAccount.__init__` (27:59) +- `pinterest.ads.ad_accounts.AdAccount.create` (102:145) +- `pinterest.ads.ad_accounts.AdAccount.list_campaigns` (147:192) +- `pinterest.ads.ad_accounts.AdAccount.list_audiences` (194:229) +- `pinterest.ads.ad_accounts.AdAccount.list_customer_lists` (231:262) + + +### Campaign Management +Handles the creation, retrieval, and modification of advertising campaigns. It allows setting budgets, changing campaign statuses (pause, activate, archive), and listing associated ad groups. + + +**Related Classes/Methods**: + +- `pinterest.ads.campaigns.Campaign` (21:541) +- `pinterest.ads.campaigns.Campaign.__init__` (26:70) +- `pinterest.ads.campaigns.Campaign.create` (159:300) +- `pinterest.ads.campaigns.Campaign.get_all` (303:365) +- `pinterest.ads.campaigns.Campaign.set_lifetime_budget` (367:389) +- `pinterest.ads.campaigns.Campaign.set_daily_budget` (391:413) +- `pinterest.ads.campaigns.Campaign._change_status` (433:459) +- `pinterest.ads.campaigns.Campaign.pause` (461:468) +- `pinterest.ads.campaigns.Campaign.activate` (470:477) +- `pinterest.ads.campaigns.Campaign.archive` (479:486) +- `pinterest.ads.campaigns.Campaign.update_fields` (488:512) +- `pinterest.ads.campaigns.Campaign.list_ad_groups` (514:541) + + +### Ad Group Management +Responsible for managing ad groups, including their creation, retrieval, and updates. It also provides functionalities to list ads within an ad group and manage auto-targeting settings. + + +**Related Classes/Methods**: + +- `pinterest.ads.ad_groups.AdGroup` (21:499) +- `pinterest.ads.ad_groups.AdGroup.__init__` (27:80) +- `pinterest.ads.ad_groups.AdGroup.create` (219:351) +- `pinterest.ads.ad_groups.AdGroup.update_fields` (353:380) +- `pinterest.ads.ad_groups.AdGroup.get_all` (383:440) +- `pinterest.ads.ad_groups.AdGroup.list_ads` (442:479) +- `pinterest.ads.ad_groups.AdGroup.enable_auto_targeting` (481:489) +- `pinterest.ads.ad_groups.AdGroup.disable_auto_targeting` (491:499) + + +### Ad Management +Focuses on managing individual advertisements, providing methods for their creation, retrieval, and updates. + + +**Related Classes/Methods**: + +- `pinterest.ads.ads.Ad` (19:444) +- `pinterest.ads.ads.Ad.__init__` (24:81) +- `pinterest.ads.ads.Ad.create` (239:339) +- `pinterest.ads.ads.Ad.get_all` (342:418) +- `pinterest.ads.ads.Ad.update_fields` (420:444) + + +### Audience Management +Allows for the creation, retrieval, and updating of audiences, which are groups of users targeted for advertising campaigns. + + +**Related Classes/Methods**: + +- `pinterest.ads.audiences.Audience` (23:275) +- `pinterest.ads.audiences.Audience.__init__` (28:50) +- `pinterest.ads.audiences.Audience.create` (108:189) +- `pinterest.ads.audiences.Audience.get_all` (192:251) +- `pinterest.ads.audiences.Audience.update_fields` (253:275) + + +### Conversion Tag Management +Handles the creation and retrieval of conversion tags, which are used for tracking user actions. It also provides methods to retrieve page visit and OCPM eligible conversion tag events. + + +**Related Classes/Methods**: + +- `pinterest.ads.conversion_tags.ConversionTag` (20:314) +- `pinterest.ads.conversion_tags.ConversionTag.__init__` (25:60) +- `pinterest.ads.conversion_tags.ConversionTag.create` (108:198) +- `pinterest.ads.conversion_tags.ConversionTag.get_all` (201:236) +- `pinterest.ads.conversion_tags.ConversionTag.get_page_visit_conversion_tag_events` (239:278) +- `pinterest.ads.conversion_tags.ConversionTag.get_ocpm_eligible_conversion_tag_events` (281:314) + + +### Conversion Event Management +Responsible for sending conversion events to Pinterest, enabling the tracking of specific user actions for advertising purposes. + + +**Related Classes/Methods**: + +- `pinterest.ads.conversion_events.Conversion.send_conversion_events` (96:119) +- `pinterest.ads.conversion_events.Conversion.create_conversion_event` (23:93) + + +### Customer List Management +Handles customer lists, enabling their creation, retrieval, and updates. It also supports adding and removing records from customer lists. + + +**Related Classes/Methods**: + +- `pinterest.ads.customer_lists.CustomerList` (19:283) +- `pinterest.ads.customer_lists.CustomerList.__init__` (24:48) +- `pinterest.ads.customer_lists.CustomerList.create` (107:170) +- `pinterest.ads.customer_lists.CustomerList.update_fields` (172:191) +- `pinterest.ads.customer_lists.CustomerList.get_all` (194:244) +- `pinterest.ads.customer_lists.CustomerList.add_record` (246:265) +- `pinterest.ads.customer_lists.CustomerList.remove_record` (267:283) + + +### Keyword Management +Manages keywords used in advertising, providing functionalities for their creation, retrieval, and updates. + + +**Related Classes/Methods**: + +- `pinterest.ads.keywords.Keyword` (20:230) +- `pinterest.ads.keywords.Keyword.__init__` (25:46) +- `pinterest.ads.keywords.Keyword.create` (89:153) +- `pinterest.ads.keywords.Keyword.get_all` (156:205) +- `pinterest.ads.keywords.Keyword.update_fields` (207:230) + + +### Base Model +Provides foundational functionalities for all higher-level Pinterest API models. It includes methods for client retrieval, API instance creation, generic API method calls, and common operations like listing, creating, and updating resources. It also handles populating model fields from API responses. + + +**Related Classes/Methods**: + +- `pinterest.utils.base_model.PinterestBaseModel` (15:213) +- `pinterest.utils.base_model.PinterestBaseModel.__init__` (20:41) +- `pinterest.utils.base_model.PinterestBaseModel._populate_fields` (52:81) +- `pinterest.utils.base_model.PinterestBaseModel._get_client` (87:90) +- `pinterest.utils.base_model.PinterestBaseModel._get_api_instance` (93:98) +- `pinterest.utils.base_model.PinterestBaseModel._call_method` (101:108) +- `pinterest.utils.base_model.PinterestBaseModel._list` (111:163) +- `pinterest.utils.base_model.PinterestBaseModel._create` (166:183) +- `pinterest.utils.base_model.PinterestBaseModel._update` (185:213) + + +### SDK Client Management +Initializes and manages the Pinterest SDK client, handling authentication and refreshing access tokens. It serves as the entry point for interacting with the Pinterest API. + + +**Related Classes/Methods**: + +- `pinterest.client.PinterestSDKClient` (1:1000) +- `pinterest.client.PinterestSDKClient.create_client_with_token` (1:1000) +- `pinterest.client.PinterestSDKClient.create_client_with_refresh_token` (1:1000) +- `pinterest.client.PinterestSDKClient.set_default_access_token` (1:1000) +- `pinterest.client.PinterestSDKClient.set_default_refresh_token` (1:1000) +- `pinterest.client.PinterestSDKClient.create_default_client` (1:1000) +- `pinterest.client.PinterestSDKClient._init_default_sdk_client_from_env` (1:1000) +- `pinterest.client.PinterestSDKClient._get_access_token` (1:1000) +- `pinterest.client.PinterestSDKClient._get_config` (1:1000) +- `pinterest.client.PinterestSDKClient._reset_default_client` (1:1000) +- `pinterest.client.PinterestSDKClient._set_default_client` (1:1000) + + + + +### [FAQ](https://github.com/CodeBoarding/GeneratedOnBoardings/tree/main?tab=readme-ov-file#faq) \ No newline at end of file diff --git a/.codeboarding/Core SDK Services.md b/.codeboarding/Core SDK Services.md new file mode 100644 index 0000000..ff37715 --- /dev/null +++ b/.codeboarding/Core SDK Services.md @@ -0,0 +1,162 @@ +```mermaid +graph LR + SDK_Client_Management["SDK Client Management"] + Base_Model_API_Interaction["Base Model & API Interaction"] + Error_Handling["Error Handling"] + Utility_Functions["Utility Functions"] + Ads_API_Resources["Ads API Resources"] + Organic_API_Resources["Organic API Resources"] + Base_Model_API_Interaction -- "uses" --> SDK_Client_Management + Base_Model_API_Interaction -- "handles pagination with" --> Utility_Functions + Base_Model_API_Interaction -- "ensures data integrity via" --> Error_Handling + SDK_Client_Management -- "loads configuration via" --> Utility_Functions + SDK_Client_Management -- "refreshes tokens via" --> Utility_Functions + Ads_API_Resources -- "leverages" --> Base_Model_API_Interaction + Organic_API_Resources -- "leverages" --> Base_Model_API_Interaction + Ads_API_Resources -- "handles errors via" --> Error_Handling + Organic_API_Resources -- "handles errors via" --> Error_Handling +``` +[![CodeBoarding](https://img.shields.io/badge/Generated%20by-CodeBoarding-9cf?style=flat-square)](https://github.com/CodeBoarding/GeneratedOnBoardings)[![Demo](https://img.shields.io/badge/Try%20our-Demo-blue?style=flat-square)](https://www.codeboarding.org/demo)[![Contact](https://img.shields.io/badge/Contact%20us%20-%20contact@codeboarding.org-lightgrey?style=flat-square)](mailto:contact@codeboarding.org) + +## Component Details + +The Core SDK Services component provides the foundational services for the Pinterest Python SDK. This includes client initialization, authentication, configuration loading, base model functionalities for API interactions, error handling, and pagination. It forms the backbone for all other API-specific management components, enabling seamless interaction with both Ads and Organic Pinterest APIs. + +### SDK Client Management +This component is responsible for initializing and managing the Pinterest API client. It handles the creation of default clients, clients with specific access tokens, and manages the configuration and access token retrieval processes, including refreshing expired tokens. + + +**Related Classes/Methods**: + +- `pinterest.client.PinterestSDKClient` (full file reference) +- `pinterest.client.PinterestSDKClient.__init__` (full file reference) +- `pinterest.client.PinterestSDKClient.create_client_with_refresh_token` (full file reference) +- `pinterest.client.PinterestSDKClient.create_client_with_token` (full file reference) +- `pinterest.client.PinterestSDKClient.set_default_access_token` (full file reference) +- `pinterest.client.PinterestSDKClient.set_default_refresh_token` (full file reference) +- `pinterest.client.PinterestSDKClient.create_default_client` (full file reference) +- `pinterest.client.PinterestSDKClient._init_default_sdk_client_from_env` (full file reference) +- `pinterest.client.PinterestSDKClient._get_access_token` (full file reference) +- `pinterest.client.PinterestSDKClient._get_config` (full file reference) +- `pinterest.client.PinterestSDKClient._reset_default_client` (full file reference) +- `pinterest.client.PinterestSDKClient._set_default_client` (full file reference) + + +### Base Model & API Interaction +This component provides the foundational methods for interacting with the Pinterest API. It defines common operations like creating, listing, and updating resources, and manages the retrieval of the API client and API instance for specific resource interactions. It also includes methods for populating fields from API responses. + + +**Related Classes/Methods**: + +- `pinterest.utils.base_model.PinterestBaseModel` (15:213) +- `pinterest.utils.base_model.PinterestBaseModel.__init__` (20:41) +- `pinterest.utils.base_model.PinterestBaseModel._get_client` (87:90) +- `pinterest.utils.base_model.PinterestBaseModel._get_api_instance` (93:98) +- `pinterest.utils.base_model.PinterestBaseModel._list` (111:163) +- `pinterest.utils.base_model.PinterestBaseModel._create` (166:183) +- `pinterest.utils.base_model.PinterestBaseModel._update` (185:213) +- `pinterest.utils.base_model.PinterestBaseModel._populate_fields` (52:81) + + +### Error Handling +This component is responsible for verifying API responses and raising SDK-specific exceptions when errors occur during API interactions. It centralizes the error management logic for the SDK. + + +**Related Classes/Methods**: + +- `pinterest.utils.error_handling.verify_api_response` (6:49) +- `pinterest.utils.sdk_exceptions.SdkException` (5:28) + + +### Utility Functions +This component provides various utility functions that support the SDK's operations. This includes managing bookmarks for pagination, refreshing access tokens, and loading configuration settings from JSON files. + + +**Related Classes/Methods**: + +- `pinterest.utils.load_json_config.load_json_config` (13:24) +- `pinterest.utils.refresh_access_token.get_new_access_token` (12:65) +- `pinterest.utils.bookmark.Bookmark` (8:61) +- `pinterest.utils.bookmark.Bookmark.get_next` (37:52) + + +### Ads API Resources +This component encompasses all classes that represent specific resources within the Pinterest Ads API. These classes provide methods for creating, retrieving, updating, and managing various ad-related entities such as customer lists, ad groups, ads, keywords, audiences, conversion tags, campaigns, ad accounts, and conversion events. They leverage the Base Model for underlying API interactions. + + +**Related Classes/Methods**: + +- `pinterest.ads.customer_lists.CustomerList` (19:283) +- `pinterest.ads.customer_lists.CustomerList.create` (107:170) +- `pinterest.ads.customer_lists.CustomerList.update_fields` (172:191) +- `pinterest.ads.customer_lists.CustomerList.get_all` (194:244) +- `pinterest.ads.customer_lists.CustomerList.add_record` (246:265) +- `pinterest.ads.customer_lists.CustomerList.remove_record` (267:283) +- `pinterest.ads.ad_groups.AdGroup` (21:499) +- `pinterest.ads.ad_groups.AdGroup.create` (219:351) +- `pinterest.ads.ad_groups.AdGroup.update_fields` (353:380) +- `pinterest.ads.ad_groups.AdGroup.get_all` (383:440) +- `pinterest.ads.ad_groups.AdGroup.enable_auto_targeting` (481:489) +- `pinterest.ads.ad_groups.AdGroup.disable_auto_targeting` (491:499) +- `pinterest.ads.ads.Ad` (19:444) +- `pinterest.ads.ads.Ad.create` (239:339) +- `pinterest.ads.ads.Ad.get_all` (342:418) +- `pinterest.ads.ads.Ad.update_fields` (420:444) +- `pinterest.ads.keywords.Keyword` (20:230) +- `pinterest.ads.keywords.Keyword.create` (89:153) +- `pinterest.ads.keywords.Keyword.get_all` (156:205) +- `pinterest.ads.keywords.Keyword.update_fields` (207:230) +- `pinterest.ads.audiences.Audience` (23:275) +- `pinterest.ads.audiences.Audience.create` (108:189) +- `pinterest.ads.audiences.Audience.get_all` (192:251) +- `pinterest.ads.audiences.Audience.update_fields` (253:275) +- `pinterest.ads.conversion_tags.ConversionTag` (20:314) +- `pinterest.ads.conversion_tags.ConversionTag.create` (108:198) +- `pinterest.ads.conversion_tags.ConversionTag.get_all` (201:236) +- `pinterest.ads.conversion_tags.ConversionTag.get_page_visit_conversion_tag_events` (239:278) +- `pinterest.ads.conversion_tags.ConversionTag.get_ocpm_eligible_conversion_tag_events` (281:314) +- `pinterest.ads.campaigns.Campaign` (21:541) +- `pinterest.ads.campaigns.Campaign.create` (159:300) +- `pinterest.ads.campaigns.Campaign.get_all` (303:365) +- `pinterest.ads.campaigns.Campaign.set_lifetime_budget` (367:389) +- `pinterest.ads.campaigns.Campaign.set_daily_budget` (391:413) +- `pinterest.ads.campaigns.Campaign._change_status` (433:459) +- `pinterest.ads.campaigns.Campaign.pause` (461:468) +- `pinterest.ads.campaigns.Campaign.activate` (470:477) +- `pinterest.ads.campaigns.Campaign.archive` (479:486) +- `pinterest.ads.campaigns.Campaign.update_fields` (488:512) +- `pinterest.ads.ad_accounts.AdAccount` (22:262) +- `pinterest.ads.ad_accounts.AdAccount.create` (102:145) +- `pinterest.ads.conversion_events.Conversion` (16:119) +- `pinterest.ads.conversion_events.Conversion.send_conversion_events` (96:119) + + +### Organic API Resources +This component includes all classes that represent specific resources within the Pinterest Organic API. These classes provide methods for creating, retrieving, updating, and deleting organic entities such as boards, board sections, and pins. They also rely on the Base Model for core API interactions. + + +**Related Classes/Methods**: + +- `pinterest.organic.boards.BoardSection` (22:189) +- `pinterest.organic.boards.BoardSection.create` (52:80) +- `pinterest.organic.boards.BoardSection.get_all` (84:128) +- `pinterest.organic.boards.BoardSection.update` (131:162) +- `pinterest.organic.boards.BoardSection.delete` (165:189) +- `pinterest.organic.boards.Board` (192:605) +- `pinterest.organic.boards.Board.create` (292:331) +- `pinterest.organic.boards.Board.delete` (334:359) +- `pinterest.organic.boards.Board.get_all` (362:416) +- `pinterest.organic.boards.Board.update_fields` (418:443) +- `pinterest.organic.boards.Board.make_public` (445:452) +- `pinterest.organic.boards.Board.make_secret` (454:461) +- `pinterest.organic.boards.Board.list_pins` (556:605) +- `pinterest.organic.pins.Pin` (16:392) +- `pinterest.organic.pins.Pin.create` (179:258) +- `pinterest.organic.pins.Pin.delete` (261:286) +- `pinterest.organic.pins.Pin.save` (288:315) +- `pinterest.organic.pins.Pin.get_all` (318:392) + + + + +### [FAQ](https://github.com/CodeBoarding/GeneratedOnBoardings/tree/main?tab=readme-ov-file#faq) \ No newline at end of file diff --git a/.codeboarding/Organic Content API Management.md b/.codeboarding/Organic Content API Management.md new file mode 100644 index 0000000..1feacbf --- /dev/null +++ b/.codeboarding/Organic Content API Management.md @@ -0,0 +1,109 @@ +```mermaid +graph LR + Pinterest_Client_Core["Pinterest Client Core"] + Base_Model_Abstraction["Base Model Abstraction"] + API_Response_Handling["API Response Handling"] + Organic_Content_API_Management["Organic Content API Management"] + Pagination_and_Bookmarking["Pagination and Bookmarking"] + Base_Model_Abstraction -- "depends on" --> Pinterest_Client_Core + Base_Model_Abstraction -- "utilizes" --> API_Response_Handling + Base_Model_Abstraction -- "integrates" --> Pagination_and_Bookmarking + Organic_Content_API_Management -- "extends" --> Base_Model_Abstraction + Organic_Content_API_Management -- "depends on" --> Pinterest_Client_Core + Organic_Content_API_Management -- "utilizes" --> API_Response_Handling + Organic_Content_API_Management -- "integrates" --> Pagination_and_Bookmarking + Pinterest_Client_Core -- "depends on" --> API_Response_Handling + Pagination_and_Bookmarking -- "depends on" --> Pinterest_Client_Core +``` +[![CodeBoarding](https://img.shields.io/badge/Generated%20by-CodeBoarding-9cf?style=flat-square)](https://github.com/CodeBoarding/GeneratedOnBoardings)[![Demo](https://img.shields.io/badge/Try%20our-Demo-blue?style=flat-square)](https://www.codeboarding.org/demo)[![Contact](https://img.shields.io/badge/Contact%20us%20-%20contact@codeboarding.org-lightgrey?style=flat-square)](mailto:contact@codeboarding.org) + +## Component Details + +This architecture outlines the core components of the Pinterest Python SDK, focusing on how it manages client connections, handles API interactions, and provides structured access to organic content like boards and pins. The Pinterest Client Core establishes the fundamental connection, while the Base Model Abstraction provides a standardized interface for all API resources. API Response Handling ensures robust error management, and Pagination and Bookmarking facilitates efficient data retrieval. The Organic Content API Management component specifically leverages these core services to offer comprehensive functionalities for managing Pinterest organic content. + +### Pinterest Client Core +Manages the fundamental aspects of the Pinterest SDK client, including client creation, configuration, and access token handling. It serves as the entry point for establishing a connection to the Pinterest API. + + +**Related Classes/Methods**: + +- `pinterest-python-sdk.pinterest.client.PinterestSDKClient` (full file reference) +- `pinterest-python-sdk.pinterest.client.PinterestSDKClient.__init__` (full file reference) +- `pinterest-python-sdk.pinterest.client.PinterestSDKClient.create_default_client` (full file reference) +- `pinterest-python-sdk.pinterest.client.PinterestSDKClient._init_default_sdk_client_from_env` (full file reference) +- `pinterest-python-sdk.pinterest.client.PinterestSDKClient._get_config` (full file reference) +- `pinterest-python-sdk.pinterest.client.PinterestSDKClient._get_access_token` (full file reference) +- `pinterest-python-sdk.pinterest.client.PinterestSDKClient._set_default_client` (full file reference) +- `pinterest.utils.refresh_access_token.get_new_access_token` (12:65) + + +### Base Model Abstraction +Provides a generic base for all Pinterest API models, encapsulating common functionalities like client and API instance retrieval, and standardized methods for listing, creating, and updating resources. It handles the population of model attributes from API responses. + + +**Related Classes/Methods**: + +- `pinterest-python-sdk.pinterest.utils.base_model.PinterestBaseModel` (15:213) +- `pinterest-python-sdk.pinterest.utils.base_model.PinterestBaseModel.__init__` (20:41) +- `pinterest-python-sdk.pinterest.utils.base_model.PinterestBaseModel._get_client` (87:90) +- `pinterest-python-sdk.pinterest.utils.base_model.PinterestBaseModel._get_api_instance` (93:98) +- `pinterest-python-sdk.pinterest.utils.base_model.PinterestBaseModel._call_method` (101:108) +- `pinterest-python-sdk.pinterest.utils.base_model.PinterestBaseModel._list` (111:163) +- `pinterest-python-sdk.pinterest.utils.base_model.PinterestBaseModel._create` (166:183) +- `pinterest-python-sdk.pinterest.utils.base_model.PinterestBaseModel._update` (185:213) +- `pinterest-python-sdk.pinterest.utils.base_model.PinterestBaseModel._populate_fields` (52:81) + + +### API Response Handling +Centralized component for validating API responses and managing SDK-specific exceptions, ensuring robust error handling across the SDK. + + +**Related Classes/Methods**: + +- `pinterest-python-sdk.pinterest.utils.error_handling.verify_api_response` (6:49) +- `pinterest.utils.sdk_exceptions.SdkException` (5:28) + + +### Organic Content API Management +Provides functionalities for managing organic content on Pinterest, including boards, board sections, and pins. It relies on the Core SDK Services for interacting with the Pinterest API. + + +**Related Classes/Methods**: + +- `pinterest.organic.boards.Board` (192:605) +- `pinterest.organic.boards.Board.__init__` (196:231) +- `pinterest.organic.boards.Board.create` (292:331) +- `pinterest.organic.boards.Board.delete` (334:359) +- `pinterest.organic.boards.Board.get_all` (362:416) +- `pinterest.organic.boards.Board.update_fields` (418:443) +- `pinterest.organic.boards.Board.make_public` (445:452) +- `pinterest.organic.boards.Board.make_secret` (454:461) +- `pinterest.organic.boards.Board.create_section` (463:480) +- `pinterest.organic.boards.Board.update_section` (482:501) +- `pinterest.organic.boards.Board.delete_section` (503:520) +- `pinterest.organic.boards.Board.list_sections` (522:554) +- `pinterest.organic.boards.Board.list_pins` (556:605) +- `pinterest.organic.boards.BoardSection.create` (52:80) +- `pinterest.organic.boards.BoardSection.get_all` (84:128) +- `pinterest.organic.boards.BoardSection.update` (131:162) +- `pinterest.organic.boards.BoardSection.delete` (165:189) +- `pinterest.organic.pins.Pin` (16:392) +- `pinterest.organic.pins.Pin.__init__` (20:78) +- `pinterest.organic.pins.Pin.create` (179:258) +- `pinterest.organic.pins.Pin.delete` (261:286) +- `pinterest.organic.pins.Pin.save` (288:315) +- `pinterest.organic.pins.Pin.get_all` (318:392) + + +### Pagination and Bookmarking +Provides utility for handling pagination and bookmarking mechanisms in API responses, enabling efficient retrieval of large datasets. + + +**Related Classes/Methods**: + +- `pinterest.utils.bookmark.Bookmark` (8:61) + + + + +### [FAQ](https://github.com/CodeBoarding/GeneratedOnBoardings/tree/main?tab=readme-ov-file#faq) \ No newline at end of file diff --git a/.codeboarding/SDK Utilities & Testing.md b/.codeboarding/SDK Utilities & Testing.md new file mode 100644 index 0000000..0380259 --- /dev/null +++ b/.codeboarding/SDK Utilities & Testing.md @@ -0,0 +1,237 @@ +```mermaid +graph LR + SDK_Utilities_Testing["SDK Utilities & Testing"] + PinterestSDKClient["PinterestSDKClient"] + PinterestBaseModel["PinterestBaseModel"] + Campaign["Campaign"] + AdGroup["AdGroup"] + Ad["Ad"] + ConversionTag["ConversionTag"] + ConversionEvent["ConversionEvent"] + AdAccount["AdAccount"] + Audience["Audience"] + Keyword["Keyword"] + CustomerList["CustomerList"] + Board["Board"] + Pin["Pin"] + SDK_Utilities_Testing -- "tests" --> PinterestSDKClient + SDK_Utilities_Testing -- "tests" --> PinterestBaseModel + SDK_Utilities_Testing -- "tests" --> Campaign + SDK_Utilities_Testing -- "tests" --> AdGroup + SDK_Utilities_Testing -- "tests" --> Ad + SDK_Utilities_Testing -- "tests" --> ConversionTag + SDK_Utilities_Testing -- "tests" --> ConversionEvent + SDK_Utilities_Testing -- "tests" --> AdAccount + SDK_Utilities_Testing -- "tests" --> Audience + SDK_Utilities_Testing -- "tests" --> Keyword + SDK_Utilities_Testing -- "tests" --> CustomerList + SDK_Utilities_Testing -- "tests" --> Board + SDK_Utilities_Testing -- "tests" --> Pin +``` +[![CodeBoarding](https://img.shields.io/badge/Generated%20by-CodeBoarding-9cf?style=flat-square)](https://github.com/CodeBoarding/GeneratedOnBoardings)[![Demo](https://img.shields.io/badge/Try%20our-Demo-blue?style=flat-square)](https://www.codeboarding.org/demo)[![Contact](https://img.shields.io/badge/Contact%20us%20-%20contact@codeboarding.org-lightgrey?style=flat-square)](mailto:contact@codeboarding.org) + +## Component Details + +The SDK Utilities & Testing component serves a dual purpose: it provides a comprehensive suite of integration tests to validate the functionality and reliability of various Pinterest SDK components, ensuring that API interactions behave as expected. Additionally, it includes utility scripts crucial for the generation and management of documentation, streamlining the process of keeping the SDK's documentation up-to-date and accurate. + +### SDK Utilities & Testing +Encompasses the integration test suite for validating SDK functionality and utility scripts for generating and managing documentation. + + +**Related Classes/Methods**: + +- `pinterest-python-sdk.integration_tests.clean_organic_data:test_delete_organic_data` (9:25) +- `pinterest-python-sdk.integration_tests.test_pinterest_base_model.TestPinterestBaseModel:test_error_message_for_accessing_non_existant_attribute` (14:27) +- `pinterest-python-sdk.integration_tests.test_pinterest_base_model.TestPinterestBaseModel:test_equality_of_campaign_models` (29:47) +- `pinterest-python-sdk.integration_tests.test_pinterest_base_model.TestPinterestBaseModel:test_set_board_attributes_failure` (49:60) +- `pinterest-python-sdk.integration_tests.base_test.BaseTestCase:test_client` (41:45) +- `pinterest-python-sdk.integration_tests.ads.test_ads.TestCreateAd:test_create_ad_success` (20:38) +- `pinterest-python-sdk.integration_tests.ads.test_ads.TestCreateAd:test_create_ad_failure_without_creative_type` (40:54) +- `pinterest-python-sdk.integration_tests.ads.test_ads.TestCreateAd:test_create_ad_failure_with_incorrect_creative_type` (56:71) +- `pinterest-python-sdk.integration_tests.ads.test_ads.TestGetAd:test_get_ad_success` (77:88) +- `pinterest-python-sdk.integration_tests.ads.test_ads.TestGetAd:test_get_ad_fail_with_invalid_id` (90:102) +- `pinterest-python-sdk.integration_tests.ads.test_ads.TestGetListAd:test_get_all_success` (109:122) +- `pinterest-python-sdk.integration_tests.ads.test_ads.TestGetListAd:test_get_all_with_invalid_ids_fail` (124:135) +- `pinterest-python-sdk.integration_tests.ads.test_ads.TestUpdateAds:test_update_ad_success` (142:162) +- `pinterest-python-sdk.integration_tests.ads.test_conversion_tags.TestCreateConversionTag:test_create_conversion_tag_success` (15:34) +- `pinterest-python-sdk.integration_tests.ads.test_conversion_tags.TestCreateConversionTag:test_create_conversion_tag_with_configs_success` (36:56) +- `pinterest-python-sdk.integration_tests.ads.test_conversion_tags.TestGetConversionTag:test_get_conversion_tag_success` (63:76) +- `pinterest-python-sdk.integration_tests.ads.test_conversion_tags.TestGetListConversionTag:test_get_list_success` (82:102) +- `pinterest-python-sdk.integration_tests.ads.test_conversion_tags.TestGetPageVsitConversionTag:test_get_page_visit_success` (109:118) +- `pinterest-python-sdk.integration_tests.ads.test_conversion_tags.TestGetOcpmEligibleConversionTag:test_get_ocpm_eligible_conversion_tags` (124:133) +- `pinterest-python-sdk.integration_tests.ads.test_conversion_events.TestSendConversionEvent:test_send_conversion_success` (21:61) +- `pinterest-python-sdk.integration_tests.ads.test_conversion_events.TestSendConversionEvent:test_send_conversion_fail` (63:95) +- `pinterest-python-sdk.integration_tests.ads.test_campaigns.TestCreateCampaign:test_create_campaign_success` (24:40) +- `pinterest-python-sdk.integration_tests.ads.test_campaigns.TestCreateCampaign:test_create_campaign_failure_incorrect_objective_type` (59:71) +- `pinterest-python-sdk.integration_tests.ads.test_campaigns.TestGetCampaign:test_get_campaign_success` (78:92) +- `pinterest-python-sdk.integration_tests.ads.test_campaigns.TestGetCampaign:test_get_campaign_failure_invalid_campaign_id` (94:106) +- `pinterest-python-sdk.integration_tests.ads.test_campaigns.TestChangeCampaignStatus:test_pause_campaign_successfully` (113:120) +- `pinterest-python-sdk.integration_tests.ads.test_campaigns.TestChangeCampaignStatus:test_activate_campaign_successfully` (122:129) +- `pinterest-python-sdk.integration_tests.ads.test_campaigns.TestChangeCampaignStatus:test_archive_campaign_successfully` (131:138) +- `pinterest-python-sdk.integration_tests.ads.test_campaigns.TestGetAllCampaigns:test_get_all_campaigns` (146:170) +- `pinterest-python-sdk.integration_tests.ads.test_campaigns.TestGetAllCampaigns:test_list_ad_groups` (172:201) +- `pinterest-python-sdk.integration_tests.ads.test_campaigns.TestGetAllCampaigns:test_get_next_page_of_campaigns` (203:239) +- `pinterest-python-sdk.integration_tests.ads.test_ad_groups.TestCreateAdGroup:test_create_ad_group_success` (16:38) +- `pinterest-python-sdk.integration_tests.ads.test_ad_groups.TestCreateAdGroup:test_get_existing_ad_group` (40:52) +- `pinterest-python-sdk.integration_tests.ads.test_ad_groups.TestUpdateAdGroup:test_update_success` (59:82) +- `pinterest-python-sdk.integration_tests.ads.test_ad_groups.TestUpdateAdGroup:test_update_fail_with_invalid_tracking_urls` (84:107) +- `pinterest-python-sdk.integration_tests.ads.test_ad_groups.TestGetListAdGroup:test_get_list_success` (114:128) +- `pinterest-python-sdk.integration_tests.ads.test_ad_groups.TestGetListAdGroup:test_get_list_with_campaign_ids_success` (130:159) +- `pinterest-python-sdk.integration_tests.ads.test_ad_groups.TestGetListAdGroup:test_get_list_invalid_id_fail` (161:172) +- `pinterest-python-sdk.integration_tests.ads.test_ad_groups.TestListAds:test_list_ads_success` (179:200) +- `pinterest-python-sdk.integration_tests.ads.test_ad_groups.TestListAds:test_enable_auto_targeting` (202:216) +- `pinterest-python-sdk.integration_tests.ads.test_ad_groups.TestListAds:test_disable_auto_targeting` (218:232) +- `pinterest-python-sdk.integration_tests.ads.test_ad_accounts.TestAdAccount:test_create_ad_account` (19:32) +- `pinterest-python-sdk.integration_tests.ads.test_ad_accounts.TestAdAccount:test_get_existing_ad_account` (34:43) +- `pinterest-python-sdk.integration_tests.ads.test_ad_accounts.TestListCampaigns:test_get_all_campaigns` (52:76) +- `pinterest-python-sdk.integration_tests.ads.test_ad_accounts.TestListAudiences:test_get_all_audiences` (85:110) +- `pinterest-python-sdk.integration_tests.ads.test_ad_accounts.TestListCustomerLists:test_list_customer_list_success` (117:138) +- `pinterest-python-sdk.integration_tests.ads.test_audiences.TestAudience:test_create_audience` (18:36) +- `pinterest-python-sdk.integration_tests.ads.test_audiences.TestAudience:test_get_existing_audience` (38:48) +- `pinterest-python-sdk.integration_tests.ads.test_audiences.TestAudience:test_update_audience_with_kwargs` (50:68) +- `pinterest-python-sdk.integration_tests.ads.test_audiences.TestGetAllAudiences:test_get_all_audiences` (76:101) +- `pinterest-python-sdk.integration_tests.ads.test_keywords.TestCreateKeyword:test_create_keyword_success` (20:35) +- `pinterest-python-sdk.integration_tests.ads.test_keywords.TestCreateKeyword:test_create_fail_without_matchtype` (37:48) +- `pinterest-python-sdk.integration_tests.ads.test_keywords.TestGetKeywords:test_get_keywords_success` (55:81) +- `pinterest-python-sdk.integration_tests.ads.test_keywords.TestUpdateKeyword:test_update_keyword_success` (88:112) +- `pinterest-python-sdk.integration_tests.ads.test_customer_lists.TestCreateCustomerList:test_create_customer_list_success` (18:31) +- `pinterest-python-sdk.integration_tests.ads.test_customer_lists.TestCreateCustomerList:test_create_customer_list_failure_incorrect_list_type` (33:44) +- `pinterest-python-sdk.integration_tests.ads.test_customer_lists.TestGetCustomerList:test_get_existing_customer_list_success` (51:61) +- `pinterest-python-sdk.integration_tests.ads.test_customer_lists.TestUpdateCustomerList:test_update_field_with_append_operation_success` (68:88) +- `pinterest-python-sdk.integration_tests.ads.test_customer_lists.TestUpdateCustomerList:test_update_field_with_remove_operation_success` (90:110) +- `pinterest-python-sdk.integration_tests.ads.test_customer_lists.TestUpdateCustomerList:test_update_missing_require_field` (112:127) +- `pinterest-python-sdk.integration_tests.ads.test_customer_lists.TestGetListCustomerList:test_get_all` (134:161) +- `pinterest-python-sdk.integration_tests.ads.test_customer_lists.TestAddRemoveCustomerList:test_add_customer_list` (178:190) +- `pinterest-python-sdk.integration_tests.ads.test_customer_lists.TestAddRemoveCustomerList:test_remove_customer_list` (192:210) +- `pinterest-python-sdk.docs.utils.script:create_file_index` (118:163) +- `pinterest-python-sdk.docs.utils.script:append_doc_to_spec_file` (178:219) +- `pinterest-python-sdk.docs.utils.script:start_doc` (222:234) +- `pinterest-python-sdk.docs.utils.script.sort_index` (65:79) +- `pinterest-python-sdk.docs.utils.script.check_index` (100:115) +- `pinterest-python-sdk.docs.utils.script.truncate_md_extension` (166:175) +- `pinterest-python-sdk.docs.utils.script.remove_module_prefix_from_file` (82:97) +- `pinterest-python-sdk.docs.utils.script.set_up_python_path` (31:35) +- `pinterest-python-sdk.docs.utils.script.remove_old_doc` (38:45) +- `pinterest-python-sdk.docs.utils.script.generate_new_doc` (48:62) + + +### PinterestSDKClient +The core client for interacting with the Pinterest API. It handles client creation, access token management, and acts as the entry point for API calls. + + +**Related Classes/Methods**: + +- `pinterest-python-sdk.pinterest.client.PinterestSDKClient` (full file reference) + + +### PinterestBaseModel +An abstract base class that provides common functionalities for all higher-level Pinterest API models. It includes methods for getting the client, creating API instances, making API calls, listing, creating, and updating resources, and populating model fields. + + +**Related Classes/Methods**: + +- `pinterest-python-sdk.pinterest.utils.base_model.PinterestBaseModel` (15:213) + + +### Campaign +Represents a Pinterest advertising campaign. This component allows users to create, retrieve, update, and manage the status (pause, activate, archive) of campaigns. It also provides functionality to list associated ad groups. + + +**Related Classes/Methods**: + +- `pinterest-python-sdk.pinterest.ads.campaigns.Campaign` (21:541) + + +### AdGroup +Represents an ad group within a Pinterest campaign. This component enables the creation, retrieval, and updating of ad groups, as well as listing ads associated with them and managing auto-targeting settings. + + +**Related Classes/Methods**: + +- `pinterest-python-sdk.pinterest.ads.ad_groups.AdGroup` (21:499) + + +### Ad +Represents an individual advertisement on Pinterest. This component provides methods for creating, retrieving, and updating ads. + + +**Related Classes/Methods**: + +- `pinterest-python-sdk.pinterest.ads.ads.Ad` (19:444) + + +### ConversionTag +Manages Pinterest conversion tags, which are used to track user actions. This component allows for the creation and retrieval of conversion tags and related events. + + +**Related Classes/Methods**: + +- `pinterest-python-sdk.pinterest.ads.conversion_tags.ConversionTag` (20:314) + + +### ConversionEvent +Handles the sending of conversion events to Pinterest, allowing advertisers to track specific user actions. + + +**Related Classes/Methods**: + +- `pinterest-python-sdk.pinterest.ads.conversion_events.Conversion` (16:119) + + +### AdAccount +Represents a Pinterest advertising account. This component provides functionalities to create new ad accounts and list associated campaigns, audiences, and customer lists. + + +**Related Classes/Methods**: + +- `pinterest-python-sdk.pinterest.ads.ad_accounts.AdAccount` (22:262) + + +### Audience +Manages custom audiences for advertising campaigns. This component supports the creation, retrieval, and updating of audience definitions. + + +**Related Classes/Methods**: + +- `pinterest-python-sdk.pinterest.ads.audiences.Audience` (23:275) + + +### Keyword +Manages keywords used for targeting in advertising campaigns. This component allows for the creation, retrieval, and updating of keywords. + + +**Related Classes/Methods**: + +- `pinterest-python-sdk.pinterest.ads.keywords.Keyword` (20:230) + + +### CustomerList +Manages customer lists for audience targeting. This component provides methods to create, retrieve, update, add, and remove records from customer lists. + + +**Related Classes/Methods**: + +- `pinterest-python-sdk.pinterest.ads.customer_lists.CustomerList` (19:283) + + +### Board +Represents a Pinterest board, which is a collection of pins. This component enables the creation, deletion, retrieval, and updating of boards, as well as managing board sections and listing pins within the board. + + +**Related Classes/Methods**: + +- `pinterest-python-sdk.pinterest.organic.boards.Board` (192:605) + + +### Pin +Represents a Pinterest pin, which is an image or video. This component provides functionalities to create, delete, retrieve, and save pins. + + +**Related Classes/Methods**: + +- `pinterest-python-sdk.pinterest.organic.pins.Pin` (16:392) + + + + +### [FAQ](https://github.com/CodeBoarding/GeneratedOnBoardings/tree/main?tab=readme-ov-file#faq) \ No newline at end of file diff --git a/.codeboarding/on_boarding.md b/.codeboarding/on_boarding.md new file mode 100644 index 0000000..0ff10be --- /dev/null +++ b/.codeboarding/on_boarding.md @@ -0,0 +1,310 @@ +```mermaid +graph LR + Core_SDK_Services["Core SDK Services"] + Advertising_API_Management["Advertising API Management"] + Organic_Content_API_Management["Organic Content API Management"] + SDK_Utilities_Testing["SDK Utilities & Testing"] + SDK_Utilities_Testing["SDK Utilities & Testing"] + Advertising_API_Management -- "inherits from" --> Core_SDK_Services + Advertising_API_Management -- "uses" --> Core_SDK_Services + Organic_Content_API_Management -- "inherits from" --> Core_SDK_Services + Organic_Content_API_Management -- "uses" --> Core_SDK_Services + SDK_Utilities_Testing -- "tests" --> Core_SDK_Services + SDK_Utilities_Testing -- "tests" --> Advertising_API_Management + SDK_Utilities_Testing -- "tests" --> Organic_Content_API_Management + click Core_SDK_Services href "https://github.com/CodeBoarding/GeneratedOnBoardings/blob/main/pinterest-python-sdk/Core SDK Services.md" "Details" + click Advertising_API_Management href "https://github.com/CodeBoarding/GeneratedOnBoardings/blob/main/pinterest-python-sdk/Advertising API Management.md" "Details" + click Organic_Content_API_Management href "https://github.com/CodeBoarding/GeneratedOnBoardings/blob/main/pinterest-python-sdk/Organic Content API Management.md" "Details" + click SDK_Utilities_Testing href "https://github.com/CodeBoarding/GeneratedOnBoardings/blob/main/pinterest-python-sdk/SDK Utilities & Testing.md" "Details" + click SDK_Utilities_Testing href "https://github.com/CodeBoarding/GeneratedOnBoardings/blob/main/pinterest-python-sdk/SDK Utilities & Testing.md" "Details" +``` +[![CodeBoarding](https://img.shields.io/badge/Generated%20by-CodeBoarding-9cf?style=flat-square)](https://github.com/CodeBoarding/GeneratedOnBoardings)[![Demo](https://img.shields.io/badge/Try%20our-Demo-blue?style=flat-square)](https://www.codeboarding.org/demo)[![Contact](https://img.shields.io/badge/Contact%20us%20-%20contact@codeboarding.org-lightgrey?style=flat-square)](mailto:contact@codeboarding.org) + +## Component Details + +The `pinterest-python-sdk` provides a comprehensive interface for interacting with the Pinterest API, enabling both advertising and organic content management. The core functionality revolves around a central SDK client that handles authentication and API communication, supported by a base model for common resource operations, error handling, and pagination. Specialized components are built upon this core to manage various Pinterest entities, such as ad accounts, campaigns, ad groups, ads, audiences, conversion events, boards, and pins. The architecture also includes dedicated modules for integration testing and documentation generation, ensuring the SDK's reliability and usability. + +### Core SDK Services +Provides the foundational services for the Pinterest Python SDK, including client initialization, authentication, configuration loading, base model functionalities for API interactions, error handling, and pagination. It forms the backbone for all other API-specific management components. + + +**Related Classes/Methods**: + +- `pinterest.client.PinterestSDKClient` (full file reference) +- `pinterest.client.PinterestSDKClient.__init__` (full file reference) +- `pinterest.client.PinterestSDKClient.create_client_with_refresh_token` (full file reference) +- `pinterest.client.PinterestSDKClient.create_client_with_token` (full file reference) +- `pinterest.client.PinterestSDKClient.set_default_access_token` (full file reference) +- `pinterest.client.PinterestSDKClient.set_default_refresh_token` (full file reference) +- `pinterest.client.PinterestSDKClient.create_default_client` (full file reference) +- `pinterest.client.PinterestSDKClient._init_default_sdk_client_from_env` (full file reference) +- `pinterest.client.PinterestSDKClient._get_access_token` (full file reference) +- `pinterest.client.PinterestSDKClient._get_config` (full file reference) +- `pinterest.client.PinterestSDKClient._reset_default_client` (full file reference) +- `pinterest.client.PinterestSDKClient._set_default_client` (full file reference) +- `pinterest.utils.load_json_config.load_json_config` (13:24) +- `pinterest.utils.refresh_access_token.get_new_access_token` (12:65) +- `pinterest.utils.base_model.PinterestBaseModel` (15:213) +- `pinterest.utils.base_model.PinterestBaseModel.__init__` (20:41) +- `pinterest.utils.base_model.PinterestBaseModel._get_client` (87:90) +- `pinterest.utils.base_model.PinterestBaseModel._get_api_instance` (93:98) +- `pinterest.utils.base_model.PinterestBaseModel._list` (111:163) +- `pinterest.utils.base_model.PinterestBaseModel._create` (166:183) +- `pinterest.utils.base_model.PinterestBaseModel._update` (185:213) +- `pinterest.utils.base_model.PinterestBaseModel._populate_fields` (52:81) +- `pinterest.utils.error_handling.verify_api_response` (6:49) +- `pinterest.utils.sdk_exceptions.SdkException` (5:28) +- `pinterest.utils.bookmark.Bookmark` (8:61) +- `pinterest.utils.bookmark.Bookmark.get_next` (37:52) + + +### Advertising API Management +Manages all advertising-related entities and operations within the Pinterest API, including ad accounts, campaigns, ad groups, ads, audiences, conversion tags, conversion events, customer lists, and keywords. It leverages the Core SDK Services for underlying API interactions. + + +**Related Classes/Methods**: + +- `pinterest.ads.ad_accounts.AdAccount` (22:262) +- `pinterest.ads.ad_accounts.AdAccount.__init__` (27:59) +- `pinterest.ads.ad_accounts.AdAccount.create` (102:145) +- `pinterest.ads.ad_accounts.AdAccount.list_campaigns` (147:192) +- `pinterest.ads.ad_accounts.AdAccount.list_audiences` (194:229) +- `pinterest.ads.ad_accounts.AdAccount.list_customer_lists` (231:262) +- `pinterest.ads.campaigns.Campaign` (21:541) +- `pinterest.ads.campaigns.Campaign.__init__` (26:70) +- `pinterest.ads.campaigns.Campaign.create` (159:300) +- `pinterest.ads.campaigns.Campaign.get_all` (303:365) +- `pinterest.ads.campaigns.Campaign.set_lifetime_budget` (367:389) +- `pinterest.ads.campaigns.Campaign.set_daily_budget` (391:413) +- `pinterest.ads.campaigns.Campaign._change_status` (433:459) +- `pinterest.ads.campaigns.Campaign.pause` (461:468) +- `pinterest.ads.campaigns.Campaign.activate` (470:477) +- `pinterest.ads.campaigns.Campaign.archive` (479:486) +- `pinterest.ads.campaigns.Campaign.update_fields` (488:512) +- `pinterest.ads.campaigns.Campaign.list_ad_groups` (514:541) +- `pinterest.ads.ad_groups.AdGroup` (21:499) +- `pinterest.ads.ad_groups.AdGroup.__init__` (27:80) +- `pinterest.ads.ad_groups.AdGroup.create` (219:351) +- `pinterest.ads.ad_groups.AdGroup.update_fields` (353:380) +- `pinterest.ads.ad_groups.AdGroup.get_all` (383:440) +- `pinterest.ads.ad_groups.AdGroup.list_ads` (442:479) +- `pinterest.ads.ad_groups.AdGroup.enable_auto_targeting` (481:489) +- `pinterest.ads.ad_groups.AdGroup.disable_auto_targeting` (491:499) +- `pinterest.ads.ads.Ad` (19:444) +- `pinterest.ads.ads.Ad.__init__` (24:81) +- `pinterest.ads.ads.Ad.create` (239:339) +- `pinterest.ads.ads.Ad.get_all` (342:418) +- `pinterest.ads.ads.Ad.update_fields` (420:444) +- `pinterest.ads.audiences.Audience` (23:275) +- `pinterest.ads.audiences.Audience.__init__` (28:50) +- `pinterest.ads.audiences.Audience.create` (108:189) +- `pinterest.ads.audiences.Audience.get_all` (192:251) +- `pinterest.ads.audiences.Audience.update_fields` (253:275) +- `pinterest.ads.conversion_tags.ConversionTag` (20:314) +- `pinterest.ads.conversion_tags.ConversionTag.__init__` (25:60) +- `pinterest.ads.conversion_tags.ConversionTag.create` (108:198) +- `pinterest.ads.conversion_tags.ConversionTag.get_all` (201:236) +- `pinterest.ads.conversion_tags.ConversionTag.get_page_visit_conversion_tag_events` (239:278) +- `pinterest.ads.conversion_tags.ConversionTag.get_ocpm_eligible_conversion_tag_events` (281:314) +- `pinterest.ads.conversion_events.Conversion.send_conversion_events` (96:119) +- `pinterest.ads.conversion_events.Conversion.create_conversion_event` (23:93) +- `pinterest.ads.customer_lists.CustomerList` (19:283) +- `pinterest.ads.customer_lists.CustomerList.__init__` (24:48) +- `pinterest.ads.customer_lists.CustomerList.create` (107:170) +- `pinterest.ads.customer_lists.CustomerList.update_fields` (172:191) +- `pinterest.ads.customer_lists.CustomerList.get_all` (194:244) +- `pinterest.ads.customer_lists.CustomerList.add_record` (246:265) +- `pinterest.ads.customer_lists.CustomerList.remove_record` (267:283) +- `pinterest.ads.keywords.Keyword` (20:230) +- `pinterest.ads.keywords.Keyword.__init__` (25:46) +- `pinterest.ads.keywords.Keyword.create` (89:153) +- `pinterest.ads.keywords.Keyword.get_all` (156:205) +- `pinterest.ads.keywords.Keyword.update_fields` (207:230) + + +### Organic Content API Management +Provides functionalities for managing organic content on Pinterest, including boards, board sections, and pins. It relies on the Core SDK Services for interacting with the Pinterest API. + + +**Related Classes/Methods**: + +- `pinterest.organic.boards.Board` (192:605) +- `pinterest.organic.boards.Board.__init__` (196:231) +- `pinterest.organic.boards.Board.create` (292:331) +- `pinterest.organic.boards.Board.delete` (334:359) +- `pinterest.organic.boards.Board.get_all` (362:416) +- `pinterest.organic.boards.Board.update_fields` (418:443) +- `pinterest.organic.boards.Board.make_public` (445:452) +- `pinterest.organic.boards.Board.make_secret` (454:461) +- `pinterest.organic.boards.Board.create_section` (463:480) +- `pinterest.organic.boards.Board.update_section` (482:501) +- `pinterest.organic.boards.Board.delete_section` (503:520) +- `pinterest.organic.boards.Board.list_sections` (522:554) +- `pinterest.organic.boards.Board.list_pins` (556:605) +- `pinterest.organic.boards.BoardSection.create` (52:80) +- `pinterest.organic.boards.BoardSection.get_all` (84:128) +- `pinterest.organic.boards.BoardSection.update` (131:162) +- `pinterest.organic.boards.BoardSection.delete` (165:189) +- `pinterest.organic.pins.Pin` (16:392) +- `pinterest.organic.pins.Pin.__init__` (20:78) +- `pinterest.organic.pins.Pin.create` (179:258) +- `pinterest.organic.pins.Pin.delete` (261:286) +- `pinterest.organic.pins.Pin.save` (288:315) +- `pinterest.organic.pins.Pin.get_all` (318:392) + + +### SDK Utilities & Testing +Encompasses the integration test suite for validating SDK functionality and utility scripts for generating and managing documentation. + + +**Related Classes/Methods**: + +- `pinterest-python-sdk.integration_tests.clean_organic_data:test_delete_organic_data` (9:25) +- `pinterest-python-sdk.integration_tests.test_pinterest_base_model.TestPinterestBaseModel:test_error_message_for_accessing_non_existant_attribute` (14:27) +- `pinterest-python-sdk.integration_tests.test_pinterest_base_model.TestPinterestBaseModel:test_equality_of_campaign_models` (29:47) +- `pinterest-python-sdk.integration_tests.test_pinterest_base_model.TestPinterestBaseModel:test_set_board_attributes_failure` (49:60) +- `pinterest-python-sdk.integration_tests.base_test.BaseTestCase:test_client` (41:45) +- `pinterest-python-sdk.integration_tests.ads.test_ads.TestCreateAd:test_create_ad_success` (20:38) +- `pinterest-python-sdk.integration_tests.ads.test_ads.TestCreateAd:test_create_ad_failure_without_creative_type` (40:54) +- `pinterest-python-sdk.integration_tests.ads.test_ads.TestCreateAd:test_create_ad_failure_with_incorrect_creative_type` (56:71) +- `pinterest-python-sdk.integration_tests.ads.test_ads.TestGetAd:test_get_ad_success` (77:88) +- `pinterest-python-sdk.integration_tests.ads.test_ads.TestGetAd:test_get_ad_fail_with_invalid_id` (90:102) +- `pinterest-python-sdk.integration_tests.ads.test_ads.TestGetListAd:test_get_all_success` (109:122) +- `pinterest-python-sdk.integration_tests.ads.test_ads.TestGetListAd:test_get_all_with_invalid_ids_fail` (124:135) +- `pinterest-python-sdk.integration_tests.ads.test_ads.TestUpdateAds:test_update_ad_success` (142:162) +- `pinterest-python-sdk.integration_tests.ads.test_conversion_tags.TestCreateConversionTag:test_create_conversion_tag_success` (15:34) +- `pinterest-python-sdk.integration_tests.ads.test_conversion_tags.TestCreateConversionTag:test_create_conversion_tag_with_configs_success` (36:56) +- `pinterest-python-sdk.integration_tests.ads.test_conversion_tags.TestGetConversionTag:test_get_conversion_tag_success` (63:76) +- `pinterest-python-sdk.integration_tests.ads.test_conversion_tags.TestGetListConversionTag:test_get_list_success` (82:102) +- `pinterest-python-sdk.integration_tests.ads.test_conversion_tags.TestGetPageVsitConversionTag:test_get_page_visit_success` (109:118) +- `pinterest-python-sdk.integration_tests.ads.test_conversion_tags.TestGetOcpmEligibleConversionTag:test_get_ocpm_eligible_conversion_tags` (124:133) +- `pinterest-python-sdk.integration_tests.ads.test_conversion_events.TestSendConversionEvent:test_send_conversion_success` (21:61) +- `pinterest-python-sdk.integration_tests.ads.test_conversion_events.TestSendConversionEvent:test_send_conversion_fail` (63:95) +- `pinterest-python-sdk.integration_tests.ads.test_campaigns.TestCreateCampaign:test_create_campaign_success` (24:40) +- `pinterest-python-sdk.integration_tests.ads.test_campaigns.TestCreateCampaign:test_create_campaign_failure_incorrect_objective_type` (59:71) +- `pinterest-python-sdk.integration_tests.ads.test_campaigns.TestGetCampaign:test_get_campaign_success` (78:92) +- `pinterest-python-sdk.integration_tests.ads.test_campaigns.TestGetCampaign:test_get_campaign_failure_invalid_campaign_id` (94:106) +- `pinterest-python-sdk.integration_tests.ads.test_campaigns.TestChangeCampaignStatus:test_pause_campaign_successfully` (113:120) +- `pinterest-python-sdk.integration_tests.ads.test_campaigns.TestChangeCampaignStatus:test_activate_campaign_successfully` (122:129) +- `pinterest-python-sdk.integration_tests.ads.test_campaigns.TestChangeCampaignStatus:test_archive_campaign_successfully` (131:138) +- `pinterest-python-sdk.integration_tests.ads.test_campaigns.TestGetAllCampaigns:test_get_all_campaigns` (146:170) +- `pinterest-python-sdk.integration_tests.ads.test_campaigns.TestGetAllCampaigns:test_list_ad_groups` (172:201) +- `pinterest-python-sdk.integration_tests.ads.test_campaigns.TestGetAllCampaigns:test_get_next_page_of_campaigns` (203:239) +- `pinterest-python-sdk.integration_tests.ads.test_ad_groups.TestCreateAdGroup:test_create_ad_group_success` (16:38) +- `pinterest-python-sdk.integration_tests.ads.test_ad_groups.TestCreateAdGroup:test_get_existing_ad_group` (40:52) +- `pinterest-python-sdk.integration_tests.ads.test_ad_groups.TestUpdateAdGroup:test_update_success` (59:82) +- `pinterest-python-sdk.integration_tests.ads.test_ad_groups.TestUpdateAdGroup:test_update_fail_with_invalid_tracking_urls` (84:107) +- `pinterest-python-sdk.integration_tests.ads.test_ad_groups.TestGetListAdGroup:test_get_list_success` (114:128) +- `pinterest-python-sdk.integration_tests.ads.test_ad_groups.TestGetListAdGroup:test_get_list_with_campaign_ids_success` (130:159) +- `pinterest-python-sdk.integration_tests.ads.test_ad_groups.TestGetListAdGroup:test_get_list_invalid_id_fail` (161:172) +- `pinterest-python-sdk.integration_tests.ads.test_ad_groups.TestListAds:test_list_ads_success` (179:200) +- `pinterest-python-sdk.integration_tests.ads.test_ad_groups.TestListAds:test_enable_auto_targeting` (202:216) +- `pinterest-python-sdk.integration_tests.ads.test_ad_groups.TestListAds:test_disable_auto_targeting` (218:232) +- `pinterest-python-sdk.integration_tests.ads.test_ad_accounts.TestAdAccount:test_create_ad_account` (19:32) +- `pinterest-python-sdk.integration_tests.ads.test_ad_accounts.TestAdAccount:test_get_existing_ad_account` (34:43) +- `pinterest-python-sdk.integration_tests.ads.test_ad_accounts.TestListCampaigns:test_get_all_campaigns` (52:76) +- `pinterest-python-sdk.integration_tests.ads.test_ad_accounts.TestListAudiences:test_get_all_audiences` (85:110) +- `pinterest-python-sdk.integration_tests.ads.test_ad_accounts.TestListCustomerLists:test_list_customer_list_success` (117:138) +- `pinterest-python-sdk.integration_tests.ads.test_audiences.TestAudience:test_create_audience` (18:36) +- `pinterest-python-sdk.integration_tests.ads.test_audiences.TestAudience:test_get_existing_audience` (38:48) +- `pinterest-python-sdk.integration_tests.ads.test_audiences.TestAudience:test_update_audience_with_kwargs` (50:68) +- `pinterest-python-sdk.integration_tests.ads.test_audiences.TestGetAllAudiences:test_get_all_audiences` (76:101) +- `pinterest-python-sdk.integration_tests.ads.test_keywords.TestCreateKeyword:test_create_keyword_success` (20:35) +- `pinterest-python-sdk.integration_tests.ads.test_keywords.TestCreateKeyword:test_create_fail_without_matchtype` (37:48) +- `pinterest-python-sdk.integration_tests.ads.test_keywords.TestGetKeywords:test_get_keywords_success` (55:81) +- `pinterest-python-sdk.integration_tests.ads.test_keywords.TestUpdateKeyword:test_update_keyword_success` (88:112) +- `pinterest-python-sdk.integration_tests.ads.test_customer_lists.TestCreateCustomerList:test_create_customer_list_success` (18:31) +- `pinterest-python-sdk.integration_tests.ads.test_customer_lists.TestCreateCustomerList:test_create_customer_list_failure_incorrect_list_type` (33:44) +- `pinterest-python-sdk.integration_tests.ads.test_customer_lists.TestGetCustomerList:test_get_existing_customer_list_success` (51:61) +- `pinterest-python-sdk.integration_tests.ads.test_customer_lists.TestUpdateCustomerList:test_update_field_with_append_operation_success` (68:88) +- `pinterest-python-sdk.integration_tests.ads.test_customer_lists.TestUpdateCustomerList:test_update_field_with_remove_operation_success` (90:110) +- `pinterest-python-sdk.integration_tests.ads.test_customer_lists.TestUpdateCustomerList:test_update_missing_require_field` (112:127) +- `pinterest-python-sdk.integration_tests.ads.test_customer_lists.TestGetListCustomerList:test_get_all` (134:161) +- `pinterest-python-sdk.integration_tests.ads.test_customer_lists.TestAddRemoveCustomerList:test_add_customer_list` (178:190) +- `pinterest-python-sdk.integration_tests.ads.test_customer_lists.TestAddRemoveCustomerList:test_remove_customer_list` (192:210) + + +### SDK Utilities & Testing +Encompasses the integration test suite for validating SDK functionality and utility scripts for generating and managing documentation. + + +**Related Classes/Methods**: + +- `pinterest-python-sdk.integration_tests.clean_organic_data:test_delete_organic_data` (9:25) +- `pinterest-python-sdk.integration_tests.test_pinterest_base_model.TestPinterestBaseModel:test_error_message_for_accessing_non_existant_attribute` (14:27) +- `pinterest-python-sdk.integration_tests.test_pinterest_base_model.TestPinterestBaseModel:test_equality_of_campaign_models` (29:47) +- `pinterest-python-sdk.integration_tests.test_pinterest_base_model.TestPinterestBaseModel:test_set_board_attributes_failure` (49:60) +- `pinterest-python-sdk.integration_tests.base_test.BaseTestCase:test_client` (41:45) +- `pinterest-python-sdk.integration_tests.ads.test_ads.TestCreateAd:test_create_ad_success` (20:38) +- `pinterest-python-sdk.integration_tests.ads.test_ads.TestCreateAd:test_create_ad_failure_without_creative_type` (40:54) +- `pinterest-python-sdk.integration_tests.ads.test_ads.TestCreateAd:test_create_ad_failure_with_incorrect_creative_type` (56:71) +- `pinterest-python-sdk.integration_tests.ads.test_ads.TestGetAd:test_get_ad_success` (77:88) +- `pinterest-python-sdk.integration_tests.ads.test_ads.TestGetAd:test_get_ad_fail_with_invalid_id` (90:102) +- `pinterest-python-sdk.integration_tests.ads.test_ads.TestGetListAd:test_get_all_success` (109:122) +- `pinterest-python-sdk.integration_tests.ads.test_ads.TestGetListAd:test_get_all_with_invalid_ids_fail` (124:135) +- `pinterest-python-sdk.integration_tests.ads.test_ads.TestUpdateAds:test_update_ad_success` (142:162) +- `pinterest-python-sdk.integration_tests.ads.test_conversion_tags.TestCreateConversionTag:test_create_conversion_tag_success` (15:34) +- `pinterest-python-sdk.integration_tests.ads.test_conversion_tags.TestCreateConversionTag:test_create_conversion_tag_with_configs_success` (36:56) +- `pinterest-python-sdk.integration_tests.ads.test_conversion_tags.TestGetConversionTag:test_get_conversion_tag_success` (63:76) +- `pinterest-python-sdk.integration_tests.ads.test_conversion_tags.TestGetListConversionTag:test_get_list_success` (82:102) +- `pinterest-python-sdk.integration_tests.ads.test_conversion_tags.TestGetPageVsitConversionTag:test_get_page_visit_success` (109:118) +- `pinterest-python-sdk.integration_tests.ads.test_conversion_tags.TestGetOcpmEligibleConversionTag:test_get_ocpm_eligible_conversion_tags` (124:133) +- `pinterest-python-sdk.integration_tests.ads.test_conversion_events.TestSendConversionEvent:test_send_conversion_success` (21:61) +- `pinterest-python-sdk.integration_tests.ads.test_conversion_events.TestSendConversionEvent:test_send_conversion_fail` (63:95) +- `pinterest-python-sdk.integration_tests.ads.test_campaigns.TestCreateCampaign:test_create_campaign_success` (24:40) +- `pinterest-python-sdk.integration_tests.ads.test_campaigns.TestCreateCampaign:test_create_campaign_failure_incorrect_objective_type` (59:71) +- `pinterest-python-sdk.integration_tests.ads.test_campaigns.TestGetCampaign:test_get_campaign_success` (78:92) +- `pinterest-python-sdk.integration_tests.ads.test_campaigns.TestGetCampaign:test_get_campaign_failure_invalid_campaign_id` (94:106) +- `pinterest-python-sdk.integration_tests.ads.test_campaigns.TestChangeCampaignStatus:test_pause_campaign_successfully` (113:120) +- `pinterest-python-sdk.integration_tests.ads.test_campaigns.TestChangeCampaignStatus:test_activate_campaign_successfully` (122:129) +- `pinterest-python-sdk.integration_tests.ads.test_campaigns.TestChangeCampaignStatus:test_archive_campaign_successfully` (131:138) +- `pinterest-python-sdk.integration_tests.ads.test_campaigns.TestGetAllCampaigns:test_get_all_campaigns` (146:170) +- `pinterest-python-sdk.integration_tests.ads.test_campaigns.TestGetAllCampaigns:test_list_ad_groups` (172:201) +- `pinterest-python-sdk.integration_tests.ads.test_campaigns.TestGetAllCampaigns:test_get_next_page_of_campaigns` (203:239) +- `pinterest-python-sdk.integration_tests.ads.test_ad_groups.TestCreateAdGroup:test_create_ad_group_success` (16:38) +- `pinterest-python-sdk.integration_tests.ads.test_ad_groups.TestCreateAdGroup:test_get_existing_ad_group` (40:52) +- `pinterest-python-sdk.integration_tests.ads.test_ad_groups.TestUpdateAdGroup:test_update_success` (59:82) +- `pinterest-python-sdk.integration_tests.ads.test_ad_groups.TestUpdateAdGroup:test_update_fail_with_invalid_tracking_urls` (84:107) +- `pinterest-python-sdk.integration_tests.ads.test_ad_groups.TestGetListAdGroup:test_get_list_success` (114:128) +- `pinterest-python-sdk.integration_tests.ads.test_ad_groups.TestGetListAdGroup:test_get_list_with_campaign_ids_success` (130:159) +- `pinterest-python-sdk.integration_tests.ads.test_ad_groups.TestGetListAdGroup:test_get_list_invalid_id_fail` (161:172) +- `pinterest-python-sdk.integration_tests.ads.test_ad_groups.TestListAds:test_list_ads_success` (179:200) +- `pinterest-python-sdk.integration_tests.ads.test_ad_groups.TestListAds:test_enable_auto_targeting` (202:216) +- `pinterest-python-sdk.integration_tests.ads.test_ad_groups.TestListAds:test_disable_auto_targeting` (218:232) +- `pinterest-python-sdk.integration_tests.ads.test_ad_accounts.TestAdAccount:test_create_ad_account` (19:32) +- `pinterest-python-sdk.integration_tests.ads.test_ad_accounts.TestAdAccount:test_get_existing_ad_account` (34:43) +- `pinterest-python-sdk.integration_tests.ads.test_ad_accounts.TestListCampaigns:test_get_all_campaigns` (52:76) +- `pinterest-python-sdk.integration_tests.ads.test_ad_accounts.TestListAudiences:test_get_all_audiences` (85:110) +- `pinterest-python-sdk.integration_tests.ads.test_ad_accounts.TestListCustomerLists:test_list_customer_list_success` (117:138) +- `pinterest-python-sdk.integration_tests.ads.test_audiences.TestAudience:test_create_audience` (18:36) +- `pinterest-python-sdk.integration_tests.ads.test_audiences.TestAudience:test_get_existing_audience` (38:48) +- `pinterest-python-sdk.integration_tests.ads.test_audiences.TestAudience:test_update_audience_with_kwargs` (50:68) +- `pinterest-python-sdk.integration_tests.ads.test_audiences.TestGetAllAudiences:test_get_all_audiences` (76:101) +- `pinterest-python-sdk.integration_tests.ads.test_keywords.TestCreateKeyword:test_create_keyword_success` (20:35) +- `pinterest-python-sdk.integration_tests.ads.test_keywords.TestCreateKeyword:test_create_fail_without_matchtype` (37:48) +- `pinterest-python-sdk.integration_tests.ads.test_keywords.TestGetKeywords:test_get_keywords_success` (55:81) +- `pinterest-python-sdk.integration_tests.ads.test_keywords.TestUpdateKeyword:test_update_keyword_success` (88:112) +- `pinterest-python-sdk.integration_tests.ads.test_customer_lists.TestCreateCustomerList:test_create_customer_list_success` (18:31) +- `pinterest-python-sdk.integration_tests.ads.test_customer_lists.TestCreateCustomerList:test_create_customer_list_failure_incorrect_list_type` (33:44) +- `pinterest-python-sdk.integration_tests.ads.test_customer_lists.TestGetCustomerList:test_get_existing_customer_list_success` (51:61) +- `pinterest-python-sdk.integration_tests.ads.test_customer_lists.TestUpdateCustomerList:test_update_field_with_append_operation_success` (68:88) +- `pinterest-python-sdk.integration_tests.ads.test_customer_lists.TestUpdateCustomerList:test_update_field_with_remove_operation_success` (90:110) +- `pinterest-python-sdk.integration_tests.ads.test_customer_lists.TestUpdateCustomerList:test_update_missing_require_field` (112:127) +- `pinterest-python-sdk.integration_tests.ads.test_customer_lists.TestGetListCustomerList:test_get_all` (134:161) +- `pinterest-python-sdk.integration_tests.ads.test_customer_lists.TestAddRemoveCustomerList:test_add_customer_list` (178:190) +- `pinterest-python-sdk.integration_tests.ads.test_customer_lists.TestAddRemoveCustomerList:test_remove_customer_list` (192:210) +- `pinterest-python-sdk.docs.utils.script:create_file_index` (118:163) +- `pinterest-python-sdk.docs.utils.script:append_doc_to_spec_file` (178:219) +- `pinterest-python-sdk.docs.utils.script:start_doc` (222:234) +- `pinterest-python-sdk.docs.utils.script.sort_index` (65:79) +- `pinterest-python-sdk.docs.utils.script.check_index` (100:115) +- `pinterest-python-sdk.docs.utils.script.truncate_md_extension` (166:175) +- `pinterest-python-sdk.docs.utils.script.remove_module_prefix_from_file` (82:97) +- `pinterest-python-sdk.docs.utils.script.set_up_python_path` (31:35) +- `pinterest-python-sdk.docs.utils.script.remove_old_doc` (38:45) +- `pinterest-python-sdk.docs.utils.script.generate_new_doc` (48:62) + + + + +### [FAQ](https://github.com/CodeBoarding/GeneratedOnBoardings/tree/main?tab=readme-ov-file#faq) \ No newline at end of file From 7361523f89b5f0f648bb42b4ebb46806a26760f8 Mon Sep 17 00:00:00 2001 From: ivanmilevtues Date: Tue, 8 Jul 2025 04:24:14 +0200 Subject: [PATCH 2/3] Added high-level diagrams --- .codeboarding/API_Resource_Abstraction.md | 117 +++++ .codeboarding/Advertising API Management.md | 202 +++++++++ .codeboarding/Core SDK Services.md | 161 +++++++ .../Organic Content API Management.md | 108 +++++ .codeboarding/Pagination_Utility.md | 93 ++++ .codeboarding/Pinterest_SDK_Client.md | 255 +++++++++++ .codeboarding/SDK Utilities & Testing.md | 236 ++++++++++ .codeboarding/on_boarding.md | 427 ++++++------------ 8 files changed, 1321 insertions(+), 278 deletions(-) create mode 100644 .codeboarding/API_Resource_Abstraction.md create mode 100644 .codeboarding/Pagination_Utility.md create mode 100644 .codeboarding/Pinterest_SDK_Client.md diff --git a/.codeboarding/API_Resource_Abstraction.md b/.codeboarding/API_Resource_Abstraction.md new file mode 100644 index 0000000..88ccd2e --- /dev/null +++ b/.codeboarding/API_Resource_Abstraction.md @@ -0,0 +1,117 @@ +```mermaid + +graph LR + + PinterestBaseModel["PinterestBaseModel"] + + Resource_Data_Models["Resource Data Models"] + + Resource_API_Managers["Resource API Managers"] + + Pinterest_API_Client_Generated_["Pinterest API Client (Generated)"] + + Resource_Data_Models -- "Inherits from" --> PinterestBaseModel + + Resource_API_Managers -- "Uses" --> Resource_Data_Models + + Resource_API_Managers -- "Interacts with" --> Pinterest_API_Client_Generated_ + + Pinterest_API_Client_Generated_ -- "Provides services to" --> Resource_API_Managers + +``` + + + +[![CodeBoarding](https://img.shields.io/badge/Generated%20by-CodeBoarding-9cf?style=flat-square)](https://github.com/CodeBoarding/GeneratedOnBoardings)[![Demo](https://img.shields.io/badge/Try%20our-Demo-blue?style=flat-square)](https://www.codeboarding.org/demo)[![Contact](https://img.shields.io/badge/Contact%20us%20-%20contact@codeboarding.org-lightgrey?style=flat-square)](mailto:contact@codeboarding.org) + + + +## Details + + + +One paragraph explaining the functionality which is represented by this graph. What the main flow is and what is its purpose. + + + +### PinterestBaseModel + +The foundational base class for all data models representing Pinterest API resources. It provides common functionalities like serialization, deserialization, and consistent attribute handling, ensuring a uniform structure for all API response and request bodies. + + + + + +**Related Classes/Methods**: + + + +- `pinterest.utils.base_model.PinterestBaseModel` (1:1) + + + + + +### Resource Data Models + +Concrete implementations of `PinterestBaseModel` for specific API entities (e.g., `AdAccount`, `Pin`, `Campaign`). These classes define the specific attributes and types for each resource, inheriting the base functionalities from `PinterestBaseModel`. They serve as Data Transfer Objects (DTOs) for API interactions. + + + + + +**Related Classes/Methods**: + + + +- `pinterest.ads.ad_accounts.AdAccount` (1:1) + +- `pinterest.organic.pins.Pin` (1:1) + + + + + +### Resource API Managers + +Classes responsible for encapsulating the CRUD (Create, Read, Update, Delete/List) operations for specific Pinterest API resources. They provide a high-level, developer-friendly interface, abstracting the direct interaction with the low-level generated API client and handling the mapping of request/response data to `Resource Data Models`. In this architecture, the `Resource Data Models` themselves often contain the API manager functionalities. + + + + + +**Related Classes/Methods**: + + + +- `pinterest.ads.ad_accounts.AdAccount` (1:1) + +- `pinterest.organic.pins.Pin` (1:1) + + + + + +### Pinterest API Client (Generated) + +The underlying, auto-generated client library that handles the direct HTTP communication with the Pinterest API endpoints. This component is typically generated from an OpenAPI specification and provides low-level methods for making API calls. The `Resource API Managers` interact with this client to execute API requests. + + + + + +**Related Classes/Methods**: + + + +- `pinterest_generated_client` (1:1) + + + + + + + + + +### [FAQ](https://github.com/CodeBoarding/GeneratedOnBoardings/tree/main?tab=readme-ov-file#faq) \ No newline at end of file diff --git a/.codeboarding/Advertising API Management.md b/.codeboarding/Advertising API Management.md index 03eb60e..a64d2b1 100644 --- a/.codeboarding/Advertising API Management.md +++ b/.codeboarding/Advertising API Management.md @@ -1,203 +1,405 @@ ```mermaid + graph LR + Ad_Account_Management["Ad Account Management"] + Campaign_Management["Campaign Management"] + Ad_Group_Management["Ad Group Management"] + Ad_Management["Ad Management"] + Audience_Management["Audience Management"] + Conversion_Tag_Management["Conversion Tag Management"] + Conversion_Event_Management["Conversion Event Management"] + Customer_List_Management["Customer List Management"] + Keyword_Management["Keyword Management"] + Base_Model["Base Model"] + SDK_Client_Management["SDK Client Management"] + Base_Model -- "uses" --> SDK_Client_Management + Ad_Account_Management -- "extends" --> Base_Model + Ad_Account_Management -- "lists" --> Campaign_Management + Ad_Account_Management -- "lists" --> Audience_Management + Ad_Account_Management -- "lists" --> Customer_List_Management + Campaign_Management -- "extends" --> Base_Model + Campaign_Management -- "lists" --> Ad_Group_Management + Ad_Group_Management -- "extends" --> Base_Model + Ad_Group_Management -- "lists" --> Ad_Management + Ad_Management -- "extends" --> Base_Model + Conversion_Tag_Management -- "extends" --> Base_Model + Conversion_Event_Management -- "extends" --> Base_Model + Conversion_Event_Management -- "uses" --> SDK_Client_Management + Audience_Management -- "extends" --> Base_Model + Keyword_Management -- "extends" --> Base_Model + Customer_List_Management -- "extends" --> Base_Model + ``` + [![CodeBoarding](https://img.shields.io/badge/Generated%20by-CodeBoarding-9cf?style=flat-square)](https://github.com/CodeBoarding/GeneratedOnBoardings)[![Demo](https://img.shields.io/badge/Try%20our-Demo-blue?style=flat-square)](https://www.codeboarding.org/demo)[![Contact](https://img.shields.io/badge/Contact%20us%20-%20contact@codeboarding.org-lightgrey?style=flat-square)](mailto:contact@codeboarding.org) + + ## Component Details + + The Advertising API Management component is responsible for handling all aspects of advertising within the Pinterest API. It provides a structured way to manage various advertising entities such as ad accounts, campaigns, ad groups, ads, audiences, conversion tags, conversion events, customer lists, and keywords. This component is built upon the foundational 'Base Model' which provides common functionalities for API interactions, and it leverages the 'SDK Client Management' for authenticating and interacting with the Pinterest API. + + ### Ad Account Management + Manages Pinterest Ad Accounts, allowing for their creation and retrieval. It also provides methods to list associated entities such as campaigns, audiences, and customer lists within a specific ad account. + + + **Related Classes/Methods**: + + - `pinterest.ads.ad_accounts.AdAccount` (22:262) + - `pinterest.ads.ad_accounts.AdAccount.__init__` (27:59) + - `pinterest.ads.ad_accounts.AdAccount.create` (102:145) + - `pinterest.ads.ad_accounts.AdAccount.list_campaigns` (147:192) + - `pinterest.ads.ad_accounts.AdAccount.list_audiences` (194:229) + - `pinterest.ads.ad_accounts.AdAccount.list_customer_lists` (231:262) + + + ### Campaign Management + Handles the creation, retrieval, and modification of advertising campaigns. It allows setting budgets, changing campaign statuses (pause, activate, archive), and listing associated ad groups. + + + **Related Classes/Methods**: + + - `pinterest.ads.campaigns.Campaign` (21:541) + - `pinterest.ads.campaigns.Campaign.__init__` (26:70) + - `pinterest.ads.campaigns.Campaign.create` (159:300) + - `pinterest.ads.campaigns.Campaign.get_all` (303:365) + - `pinterest.ads.campaigns.Campaign.set_lifetime_budget` (367:389) + - `pinterest.ads.campaigns.Campaign.set_daily_budget` (391:413) + - `pinterest.ads.campaigns.Campaign._change_status` (433:459) + - `pinterest.ads.campaigns.Campaign.pause` (461:468) + - `pinterest.ads.campaigns.Campaign.activate` (470:477) + - `pinterest.ads.campaigns.Campaign.archive` (479:486) + - `pinterest.ads.campaigns.Campaign.update_fields` (488:512) + - `pinterest.ads.campaigns.Campaign.list_ad_groups` (514:541) + + + ### Ad Group Management + Responsible for managing ad groups, including their creation, retrieval, and updates. It also provides functionalities to list ads within an ad group and manage auto-targeting settings. + + + **Related Classes/Methods**: + + - `pinterest.ads.ad_groups.AdGroup` (21:499) + - `pinterest.ads.ad_groups.AdGroup.__init__` (27:80) + - `pinterest.ads.ad_groups.AdGroup.create` (219:351) + - `pinterest.ads.ad_groups.AdGroup.update_fields` (353:380) + - `pinterest.ads.ad_groups.AdGroup.get_all` (383:440) + - `pinterest.ads.ad_groups.AdGroup.list_ads` (442:479) + - `pinterest.ads.ad_groups.AdGroup.enable_auto_targeting` (481:489) + - `pinterest.ads.ad_groups.AdGroup.disable_auto_targeting` (491:499) + + + ### Ad Management + Focuses on managing individual advertisements, providing methods for their creation, retrieval, and updates. + + + **Related Classes/Methods**: + + - `pinterest.ads.ads.Ad` (19:444) + - `pinterest.ads.ads.Ad.__init__` (24:81) + - `pinterest.ads.ads.Ad.create` (239:339) + - `pinterest.ads.ads.Ad.get_all` (342:418) + - `pinterest.ads.ads.Ad.update_fields` (420:444) + + + ### Audience Management + Allows for the creation, retrieval, and updating of audiences, which are groups of users targeted for advertising campaigns. + + + **Related Classes/Methods**: + + - `pinterest.ads.audiences.Audience` (23:275) + - `pinterest.ads.audiences.Audience.__init__` (28:50) + - `pinterest.ads.audiences.Audience.create` (108:189) + - `pinterest.ads.audiences.Audience.get_all` (192:251) + - `pinterest.ads.audiences.Audience.update_fields` (253:275) + + + ### Conversion Tag Management + Handles the creation and retrieval of conversion tags, which are used for tracking user actions. It also provides methods to retrieve page visit and OCPM eligible conversion tag events. + + + **Related Classes/Methods**: + + - `pinterest.ads.conversion_tags.ConversionTag` (20:314) + - `pinterest.ads.conversion_tags.ConversionTag.__init__` (25:60) + - `pinterest.ads.conversion_tags.ConversionTag.create` (108:198) + - `pinterest.ads.conversion_tags.ConversionTag.get_all` (201:236) + - `pinterest.ads.conversion_tags.ConversionTag.get_page_visit_conversion_tag_events` (239:278) + - `pinterest.ads.conversion_tags.ConversionTag.get_ocpm_eligible_conversion_tag_events` (281:314) + + + ### Conversion Event Management + Responsible for sending conversion events to Pinterest, enabling the tracking of specific user actions for advertising purposes. + + + **Related Classes/Methods**: + + - `pinterest.ads.conversion_events.Conversion.send_conversion_events` (96:119) + - `pinterest.ads.conversion_events.Conversion.create_conversion_event` (23:93) + + + ### Customer List Management + Handles customer lists, enabling their creation, retrieval, and updates. It also supports adding and removing records from customer lists. + + + **Related Classes/Methods**: + + - `pinterest.ads.customer_lists.CustomerList` (19:283) + - `pinterest.ads.customer_lists.CustomerList.__init__` (24:48) + - `pinterest.ads.customer_lists.CustomerList.create` (107:170) + - `pinterest.ads.customer_lists.CustomerList.update_fields` (172:191) + - `pinterest.ads.customer_lists.CustomerList.get_all` (194:244) + - `pinterest.ads.customer_lists.CustomerList.add_record` (246:265) + - `pinterest.ads.customer_lists.CustomerList.remove_record` (267:283) + + + ### Keyword Management + Manages keywords used in advertising, providing functionalities for their creation, retrieval, and updates. + + + **Related Classes/Methods**: + + - `pinterest.ads.keywords.Keyword` (20:230) + - `pinterest.ads.keywords.Keyword.__init__` (25:46) + - `pinterest.ads.keywords.Keyword.create` (89:153) + - `pinterest.ads.keywords.Keyword.get_all` (156:205) + - `pinterest.ads.keywords.Keyword.update_fields` (207:230) + + + ### Base Model + Provides foundational functionalities for all higher-level Pinterest API models. It includes methods for client retrieval, API instance creation, generic API method calls, and common operations like listing, creating, and updating resources. It also handles populating model fields from API responses. + + + **Related Classes/Methods**: + + - `pinterest.utils.base_model.PinterestBaseModel` (15:213) + - `pinterest.utils.base_model.PinterestBaseModel.__init__` (20:41) + - `pinterest.utils.base_model.PinterestBaseModel._populate_fields` (52:81) + - `pinterest.utils.base_model.PinterestBaseModel._get_client` (87:90) + - `pinterest.utils.base_model.PinterestBaseModel._get_api_instance` (93:98) + - `pinterest.utils.base_model.PinterestBaseModel._call_method` (101:108) + - `pinterest.utils.base_model.PinterestBaseModel._list` (111:163) + - `pinterest.utils.base_model.PinterestBaseModel._create` (166:183) + - `pinterest.utils.base_model.PinterestBaseModel._update` (185:213) + + + ### SDK Client Management + Initializes and manages the Pinterest SDK client, handling authentication and refreshing access tokens. It serves as the entry point for interacting with the Pinterest API. + + + **Related Classes/Methods**: + + - `pinterest.client.PinterestSDKClient` (1:1000) + - `pinterest.client.PinterestSDKClient.create_client_with_token` (1:1000) + - `pinterest.client.PinterestSDKClient.create_client_with_refresh_token` (1:1000) + - `pinterest.client.PinterestSDKClient.set_default_access_token` (1:1000) + - `pinterest.client.PinterestSDKClient.set_default_refresh_token` (1:1000) + - `pinterest.client.PinterestSDKClient.create_default_client` (1:1000) + - `pinterest.client.PinterestSDKClient._init_default_sdk_client_from_env` (1:1000) + - `pinterest.client.PinterestSDKClient._get_access_token` (1:1000) + - `pinterest.client.PinterestSDKClient._get_config` (1:1000) + - `pinterest.client.PinterestSDKClient._reset_default_client` (1:1000) + - `pinterest.client.PinterestSDKClient._set_default_client` (1:1000) + + + + + ### [FAQ](https://github.com/CodeBoarding/GeneratedOnBoardings/tree/main?tab=readme-ov-file#faq) \ No newline at end of file diff --git a/.codeboarding/Core SDK Services.md b/.codeboarding/Core SDK Services.md index ff37715..6d6cd7a 100644 --- a/.codeboarding/Core SDK Services.md +++ b/.codeboarding/Core SDK Services.md @@ -1,162 +1,323 @@ ```mermaid + graph LR + SDK_Client_Management["SDK Client Management"] + Base_Model_API_Interaction["Base Model & API Interaction"] + Error_Handling["Error Handling"] + Utility_Functions["Utility Functions"] + Ads_API_Resources["Ads API Resources"] + Organic_API_Resources["Organic API Resources"] + Base_Model_API_Interaction -- "uses" --> SDK_Client_Management + Base_Model_API_Interaction -- "handles pagination with" --> Utility_Functions + Base_Model_API_Interaction -- "ensures data integrity via" --> Error_Handling + SDK_Client_Management -- "loads configuration via" --> Utility_Functions + SDK_Client_Management -- "refreshes tokens via" --> Utility_Functions + Ads_API_Resources -- "leverages" --> Base_Model_API_Interaction + Organic_API_Resources -- "leverages" --> Base_Model_API_Interaction + Ads_API_Resources -- "handles errors via" --> Error_Handling + Organic_API_Resources -- "handles errors via" --> Error_Handling + ``` + [![CodeBoarding](https://img.shields.io/badge/Generated%20by-CodeBoarding-9cf?style=flat-square)](https://github.com/CodeBoarding/GeneratedOnBoardings)[![Demo](https://img.shields.io/badge/Try%20our-Demo-blue?style=flat-square)](https://www.codeboarding.org/demo)[![Contact](https://img.shields.io/badge/Contact%20us%20-%20contact@codeboarding.org-lightgrey?style=flat-square)](mailto:contact@codeboarding.org) + + ## Component Details + + The Core SDK Services component provides the foundational services for the Pinterest Python SDK. This includes client initialization, authentication, configuration loading, base model functionalities for API interactions, error handling, and pagination. It forms the backbone for all other API-specific management components, enabling seamless interaction with both Ads and Organic Pinterest APIs. + + ### SDK Client Management + This component is responsible for initializing and managing the Pinterest API client. It handles the creation of default clients, clients with specific access tokens, and manages the configuration and access token retrieval processes, including refreshing expired tokens. + + + **Related Classes/Methods**: + + - `pinterest.client.PinterestSDKClient` (full file reference) + - `pinterest.client.PinterestSDKClient.__init__` (full file reference) + - `pinterest.client.PinterestSDKClient.create_client_with_refresh_token` (full file reference) + - `pinterest.client.PinterestSDKClient.create_client_with_token` (full file reference) + - `pinterest.client.PinterestSDKClient.set_default_access_token` (full file reference) + - `pinterest.client.PinterestSDKClient.set_default_refresh_token` (full file reference) + - `pinterest.client.PinterestSDKClient.create_default_client` (full file reference) + - `pinterest.client.PinterestSDKClient._init_default_sdk_client_from_env` (full file reference) + - `pinterest.client.PinterestSDKClient._get_access_token` (full file reference) + - `pinterest.client.PinterestSDKClient._get_config` (full file reference) + - `pinterest.client.PinterestSDKClient._reset_default_client` (full file reference) + - `pinterest.client.PinterestSDKClient._set_default_client` (full file reference) + + + ### Base Model & API Interaction + This component provides the foundational methods for interacting with the Pinterest API. It defines common operations like creating, listing, and updating resources, and manages the retrieval of the API client and API instance for specific resource interactions. It also includes methods for populating fields from API responses. + + + **Related Classes/Methods**: + + - `pinterest.utils.base_model.PinterestBaseModel` (15:213) + - `pinterest.utils.base_model.PinterestBaseModel.__init__` (20:41) + - `pinterest.utils.base_model.PinterestBaseModel._get_client` (87:90) + - `pinterest.utils.base_model.PinterestBaseModel._get_api_instance` (93:98) + - `pinterest.utils.base_model.PinterestBaseModel._list` (111:163) + - `pinterest.utils.base_model.PinterestBaseModel._create` (166:183) + - `pinterest.utils.base_model.PinterestBaseModel._update` (185:213) + - `pinterest.utils.base_model.PinterestBaseModel._populate_fields` (52:81) + + + ### Error Handling + This component is responsible for verifying API responses and raising SDK-specific exceptions when errors occur during API interactions. It centralizes the error management logic for the SDK. + + + **Related Classes/Methods**: + + - `pinterest.utils.error_handling.verify_api_response` (6:49) + - `pinterest.utils.sdk_exceptions.SdkException` (5:28) + + + ### Utility Functions + This component provides various utility functions that support the SDK's operations. This includes managing bookmarks for pagination, refreshing access tokens, and loading configuration settings from JSON files. + + + **Related Classes/Methods**: + + - `pinterest.utils.load_json_config.load_json_config` (13:24) + - `pinterest.utils.refresh_access_token.get_new_access_token` (12:65) + - `pinterest.utils.bookmark.Bookmark` (8:61) + - `pinterest.utils.bookmark.Bookmark.get_next` (37:52) + + + ### Ads API Resources + This component encompasses all classes that represent specific resources within the Pinterest Ads API. These classes provide methods for creating, retrieving, updating, and managing various ad-related entities such as customer lists, ad groups, ads, keywords, audiences, conversion tags, campaigns, ad accounts, and conversion events. They leverage the Base Model for underlying API interactions. + + + **Related Classes/Methods**: + + - `pinterest.ads.customer_lists.CustomerList` (19:283) + - `pinterest.ads.customer_lists.CustomerList.create` (107:170) + - `pinterest.ads.customer_lists.CustomerList.update_fields` (172:191) + - `pinterest.ads.customer_lists.CustomerList.get_all` (194:244) + - `pinterest.ads.customer_lists.CustomerList.add_record` (246:265) + - `pinterest.ads.customer_lists.CustomerList.remove_record` (267:283) + - `pinterest.ads.ad_groups.AdGroup` (21:499) + - `pinterest.ads.ad_groups.AdGroup.create` (219:351) + - `pinterest.ads.ad_groups.AdGroup.update_fields` (353:380) + - `pinterest.ads.ad_groups.AdGroup.get_all` (383:440) + - `pinterest.ads.ad_groups.AdGroup.enable_auto_targeting` (481:489) + - `pinterest.ads.ad_groups.AdGroup.disable_auto_targeting` (491:499) + - `pinterest.ads.ads.Ad` (19:444) + - `pinterest.ads.ads.Ad.create` (239:339) + - `pinterest.ads.ads.Ad.get_all` (342:418) + - `pinterest.ads.ads.Ad.update_fields` (420:444) + - `pinterest.ads.keywords.Keyword` (20:230) + - `pinterest.ads.keywords.Keyword.create` (89:153) + - `pinterest.ads.keywords.Keyword.get_all` (156:205) + - `pinterest.ads.keywords.Keyword.update_fields` (207:230) + - `pinterest.ads.audiences.Audience` (23:275) + - `pinterest.ads.audiences.Audience.create` (108:189) + - `pinterest.ads.audiences.Audience.get_all` (192:251) + - `pinterest.ads.audiences.Audience.update_fields` (253:275) + - `pinterest.ads.conversion_tags.ConversionTag` (20:314) + - `pinterest.ads.conversion_tags.ConversionTag.create` (108:198) + - `pinterest.ads.conversion_tags.ConversionTag.get_all` (201:236) + - `pinterest.ads.conversion_tags.ConversionTag.get_page_visit_conversion_tag_events` (239:278) + - `pinterest.ads.conversion_tags.ConversionTag.get_ocpm_eligible_conversion_tag_events` (281:314) + - `pinterest.ads.campaigns.Campaign` (21:541) + - `pinterest.ads.campaigns.Campaign.create` (159:300) + - `pinterest.ads.campaigns.Campaign.get_all` (303:365) + - `pinterest.ads.campaigns.Campaign.set_lifetime_budget` (367:389) + - `pinterest.ads.campaigns.Campaign.set_daily_budget` (391:413) + - `pinterest.ads.campaigns.Campaign._change_status` (433:459) + - `pinterest.ads.campaigns.Campaign.pause` (461:468) + - `pinterest.ads.campaigns.Campaign.activate` (470:477) + - `pinterest.ads.campaigns.Campaign.archive` (479:486) + - `pinterest.ads.campaigns.Campaign.update_fields` (488:512) + - `pinterest.ads.ad_accounts.AdAccount` (22:262) + - `pinterest.ads.ad_accounts.AdAccount.create` (102:145) + - `pinterest.ads.conversion_events.Conversion` (16:119) + - `pinterest.ads.conversion_events.Conversion.send_conversion_events` (96:119) + + + ### Organic API Resources + This component includes all classes that represent specific resources within the Pinterest Organic API. These classes provide methods for creating, retrieving, updating, and deleting organic entities such as boards, board sections, and pins. They also rely on the Base Model for core API interactions. + + + **Related Classes/Methods**: + + - `pinterest.organic.boards.BoardSection` (22:189) + - `pinterest.organic.boards.BoardSection.create` (52:80) + - `pinterest.organic.boards.BoardSection.get_all` (84:128) + - `pinterest.organic.boards.BoardSection.update` (131:162) + - `pinterest.organic.boards.BoardSection.delete` (165:189) + - `pinterest.organic.boards.Board` (192:605) + - `pinterest.organic.boards.Board.create` (292:331) + - `pinterest.organic.boards.Board.delete` (334:359) + - `pinterest.organic.boards.Board.get_all` (362:416) + - `pinterest.organic.boards.Board.update_fields` (418:443) + - `pinterest.organic.boards.Board.make_public` (445:452) + - `pinterest.organic.boards.Board.make_secret` (454:461) + - `pinterest.organic.boards.Board.list_pins` (556:605) + - `pinterest.organic.pins.Pin` (16:392) + - `pinterest.organic.pins.Pin.create` (179:258) + - `pinterest.organic.pins.Pin.delete` (261:286) + - `pinterest.organic.pins.Pin.save` (288:315) + - `pinterest.organic.pins.Pin.get_all` (318:392) + + + + + ### [FAQ](https://github.com/CodeBoarding/GeneratedOnBoardings/tree/main?tab=readme-ov-file#faq) \ No newline at end of file diff --git a/.codeboarding/Organic Content API Management.md b/.codeboarding/Organic Content API Management.md index 1feacbf..2d62276 100644 --- a/.codeboarding/Organic Content API Management.md +++ b/.codeboarding/Organic Content API Management.md @@ -1,109 +1,217 @@ ```mermaid + graph LR + Pinterest_Client_Core["Pinterest Client Core"] + Base_Model_Abstraction["Base Model Abstraction"] + API_Response_Handling["API Response Handling"] + Organic_Content_API_Management["Organic Content API Management"] + Pagination_and_Bookmarking["Pagination and Bookmarking"] + Base_Model_Abstraction -- "depends on" --> Pinterest_Client_Core + Base_Model_Abstraction -- "utilizes" --> API_Response_Handling + Base_Model_Abstraction -- "integrates" --> Pagination_and_Bookmarking + Organic_Content_API_Management -- "extends" --> Base_Model_Abstraction + Organic_Content_API_Management -- "depends on" --> Pinterest_Client_Core + Organic_Content_API_Management -- "utilizes" --> API_Response_Handling + Organic_Content_API_Management -- "integrates" --> Pagination_and_Bookmarking + Pinterest_Client_Core -- "depends on" --> API_Response_Handling + Pagination_and_Bookmarking -- "depends on" --> Pinterest_Client_Core + ``` + [![CodeBoarding](https://img.shields.io/badge/Generated%20by-CodeBoarding-9cf?style=flat-square)](https://github.com/CodeBoarding/GeneratedOnBoardings)[![Demo](https://img.shields.io/badge/Try%20our-Demo-blue?style=flat-square)](https://www.codeboarding.org/demo)[![Contact](https://img.shields.io/badge/Contact%20us%20-%20contact@codeboarding.org-lightgrey?style=flat-square)](mailto:contact@codeboarding.org) + + ## Component Details + + This architecture outlines the core components of the Pinterest Python SDK, focusing on how it manages client connections, handles API interactions, and provides structured access to organic content like boards and pins. The Pinterest Client Core establishes the fundamental connection, while the Base Model Abstraction provides a standardized interface for all API resources. API Response Handling ensures robust error management, and Pagination and Bookmarking facilitates efficient data retrieval. The Organic Content API Management component specifically leverages these core services to offer comprehensive functionalities for managing Pinterest organic content. + + ### Pinterest Client Core + Manages the fundamental aspects of the Pinterest SDK client, including client creation, configuration, and access token handling. It serves as the entry point for establishing a connection to the Pinterest API. + + + **Related Classes/Methods**: + + - `pinterest-python-sdk.pinterest.client.PinterestSDKClient` (full file reference) + - `pinterest-python-sdk.pinterest.client.PinterestSDKClient.__init__` (full file reference) + - `pinterest-python-sdk.pinterest.client.PinterestSDKClient.create_default_client` (full file reference) + - `pinterest-python-sdk.pinterest.client.PinterestSDKClient._init_default_sdk_client_from_env` (full file reference) + - `pinterest-python-sdk.pinterest.client.PinterestSDKClient._get_config` (full file reference) + - `pinterest-python-sdk.pinterest.client.PinterestSDKClient._get_access_token` (full file reference) + - `pinterest-python-sdk.pinterest.client.PinterestSDKClient._set_default_client` (full file reference) + - `pinterest.utils.refresh_access_token.get_new_access_token` (12:65) + + + ### Base Model Abstraction + Provides a generic base for all Pinterest API models, encapsulating common functionalities like client and API instance retrieval, and standardized methods for listing, creating, and updating resources. It handles the population of model attributes from API responses. + + + **Related Classes/Methods**: + + - `pinterest-python-sdk.pinterest.utils.base_model.PinterestBaseModel` (15:213) + - `pinterest-python-sdk.pinterest.utils.base_model.PinterestBaseModel.__init__` (20:41) + - `pinterest-python-sdk.pinterest.utils.base_model.PinterestBaseModel._get_client` (87:90) + - `pinterest-python-sdk.pinterest.utils.base_model.PinterestBaseModel._get_api_instance` (93:98) + - `pinterest-python-sdk.pinterest.utils.base_model.PinterestBaseModel._call_method` (101:108) + - `pinterest-python-sdk.pinterest.utils.base_model.PinterestBaseModel._list` (111:163) + - `pinterest-python-sdk.pinterest.utils.base_model.PinterestBaseModel._create` (166:183) + - `pinterest-python-sdk.pinterest.utils.base_model.PinterestBaseModel._update` (185:213) + - `pinterest-python-sdk.pinterest.utils.base_model.PinterestBaseModel._populate_fields` (52:81) + + + ### API Response Handling + Centralized component for validating API responses and managing SDK-specific exceptions, ensuring robust error handling across the SDK. + + + **Related Classes/Methods**: + + - `pinterest-python-sdk.pinterest.utils.error_handling.verify_api_response` (6:49) + - `pinterest.utils.sdk_exceptions.SdkException` (5:28) + + + ### Organic Content API Management + Provides functionalities for managing organic content on Pinterest, including boards, board sections, and pins. It relies on the Core SDK Services for interacting with the Pinterest API. + + + **Related Classes/Methods**: + + - `pinterest.organic.boards.Board` (192:605) + - `pinterest.organic.boards.Board.__init__` (196:231) + - `pinterest.organic.boards.Board.create` (292:331) + - `pinterest.organic.boards.Board.delete` (334:359) + - `pinterest.organic.boards.Board.get_all` (362:416) + - `pinterest.organic.boards.Board.update_fields` (418:443) + - `pinterest.organic.boards.Board.make_public` (445:452) + - `pinterest.organic.boards.Board.make_secret` (454:461) + - `pinterest.organic.boards.Board.create_section` (463:480) + - `pinterest.organic.boards.Board.update_section` (482:501) + - `pinterest.organic.boards.Board.delete_section` (503:520) + - `pinterest.organic.boards.Board.list_sections` (522:554) + - `pinterest.organic.boards.Board.list_pins` (556:605) + - `pinterest.organic.boards.BoardSection.create` (52:80) + - `pinterest.organic.boards.BoardSection.get_all` (84:128) + - `pinterest.organic.boards.BoardSection.update` (131:162) + - `pinterest.organic.boards.BoardSection.delete` (165:189) + - `pinterest.organic.pins.Pin` (16:392) + - `pinterest.organic.pins.Pin.__init__` (20:78) + - `pinterest.organic.pins.Pin.create` (179:258) + - `pinterest.organic.pins.Pin.delete` (261:286) + - `pinterest.organic.pins.Pin.save` (288:315) + - `pinterest.organic.pins.Pin.get_all` (318:392) + + + ### Pagination and Bookmarking + Provides utility for handling pagination and bookmarking mechanisms in API responses, enabling efficient retrieval of large datasets. + + + **Related Classes/Methods**: + + - `pinterest.utils.bookmark.Bookmark` (8:61) + + + + + ### [FAQ](https://github.com/CodeBoarding/GeneratedOnBoardings/tree/main?tab=readme-ov-file#faq) \ No newline at end of file diff --git a/.codeboarding/Pagination_Utility.md b/.codeboarding/Pagination_Utility.md new file mode 100644 index 0000000..7238730 --- /dev/null +++ b/.codeboarding/Pagination_Utility.md @@ -0,0 +1,93 @@ +```mermaid + +graph LR + + Bookmark["Bookmark"] + + PinterestSDKClient["PinterestSDKClient"] + + PinterestBaseModel["PinterestBaseModel"] + + PinterestSDKClient -- "returns" --> Bookmark + + Bookmark -- "uses" --> PinterestSDKClient + + Bookmark -- "invokes methods on" --> PinterestBaseModel + +``` + + + +[![CodeBoarding](https://img.shields.io/badge/Generated%20by-CodeBoarding-9cf?style=flat-square)](https://github.com/CodeBoarding/GeneratedOnBoardings)[![Demo](https://img.shields.io/badge/Try%20our-Demo-blue?style=flat-square)](https://www.codeboarding.org/demo)[![Contact](https://img.shields.io/badge/Contact%20us%20-%20contact@codeboarding.org-lightgrey?style=flat-square)](mailto:contact@codeboarding.org) + + + +## Details + + + +The `Pagination Utility` component, primarily embodied by the `Bookmark` class, is crucial for handling paginated API responses within the Pinterest Python SDK. It abstracts away the complexities of managing pagination tokens, allowing users to seamlessly iterate through large datasets. + + + +### Bookmark + +This is the core component of the pagination utility. It encapsulates the state and logic required to fetch subsequent pages of data from paginated API endpoints. It stores the `bookmark_token` (the pagination cursor), a reference to the `model` (the SDK model instance on which the paginated function was initially called), the `model_fn` (the name of the method on the `model` that retrieves paginated data), and `model_fn_args` (the arguments to be passed to `model_fn`). It uses the `PinterestSDKClient` to execute the actual API calls for fetching the next page. + + + + + +**Related Classes/Methods**: + + + +- `Bookmark` + +- `Bookmark:get_next` + + + + + +### PinterestSDKClient + +This is the main client responsible for all interactions with the Pinterest API. The `Bookmark` component holds a reference to an instance of `PinterestSDKClient` and uses it to make the underlying HTTP requests when `get_next()` is invoked. This ensures that all API calls, including those for pagination, are routed through the central client, adhering to authentication and configuration settings. + + + + + +**Related Classes/Methods**: + + + +- `PinterestSDKClient` + + + + + +### PinterestBaseModel + +This represents the base class for various data models within the SDK (e.g., models for Ads, Organic content). When a paginated list operation is performed on an SDK model (which internally uses the `PinterestSDKClient`), an instance of that model (or the class itself) is passed to the `Bookmark` object along with the method name (`model_fn`). The `Bookmark` then uses this `model` and `model_fn` to dynamically call the appropriate method to retrieve the next page of results. + + + + + +**Related Classes/Methods**: + + + +- `PinterestBaseModel` + + + + + + + + + +### [FAQ](https://github.com/CodeBoarding/GeneratedOnBoardings/tree/main?tab=readme-ov-file#faq) \ No newline at end of file diff --git a/.codeboarding/Pinterest_SDK_Client.md b/.codeboarding/Pinterest_SDK_Client.md new file mode 100644 index 0000000..948a43f --- /dev/null +++ b/.codeboarding/Pinterest_SDK_Client.md @@ -0,0 +1,255 @@ +```mermaid + +graph LR + + Pinterest_SDK_Client["Pinterest SDK Client"] + + Configuration_Manager["Configuration Manager"] + + Ads_API_Client["Ads API Client"] + + Organic_API_Client["Organic API Client"] + + Data_Models_PinterestBaseModel_["Data Models (PinterestBaseModel)"] + + Authentication_Token_Management["Authentication & Token Management"] + + Error_Handling_Exceptions["Error Handling & Exceptions"] + + Pagination_Bookmark_["Pagination (Bookmark)"] + + Pinterest_SDK_Client -- "inherits from" --> Pagination_Bookmark_ + + Pinterest_SDK_Client -- "uses" --> Configuration_Manager + + Pinterest_SDK_Client -- "uses" --> Authentication_Token_Management + + Pinterest_SDK_Client -- "interacts with" --> Ads_API_Client + + Pinterest_SDK_Client -- "interacts with" --> Organic_API_Client + + Pinterest_SDK_Client -- "uses" --> Error_Handling_Exceptions + + Ads_API_Client -- "returns instances of" --> Data_Models_PinterestBaseModel_ + + Ads_API_Client -- "uses" --> Pagination_Bookmark_ + + Ads_API_Client -- "uses" --> Error_Handling_Exceptions + + Organic_API_Client -- "returns instances of" --> Data_Models_PinterestBaseModel_ + + Organic_API_Client -- "uses" --> Pagination_Bookmark_ + + Organic_API_Client -- "uses" --> Error_Handling_Exceptions + + Data_Models_PinterestBaseModel_ -- "uses" --> Pinterest_SDK_Client + + Data_Models_PinterestBaseModel_ -- "uses" --> Pagination_Bookmark_ + + Data_Models_PinterestBaseModel_ -- "uses" --> Error_Handling_Exceptions + + Authentication_Token_Management -- "uses" --> Error_Handling_Exceptions + + Error_Handling_Exceptions -- "is used by" --> Ads_API_Client + + Error_Handling_Exceptions -- "is used by" --> Organic_API_Client + + Error_Handling_Exceptions -- "is used by" --> Data_Models_PinterestBaseModel_ + + Error_Handling_Exceptions -- "is used by" --> Authentication_Token_Management + + Error_Handling_Exceptions -- "is used by" --> Pagination_Bookmark_ + + Pagination_Bookmark_ -- "uses" --> Pinterest_SDK_Client + + click Pinterest_SDK_Client href "https://github.com/pinterest/pinterest-python-sdk/blob/main/.codeboarding//Pinterest_SDK_Client.md" "Details" + +``` + + + +[![CodeBoarding](https://img.shields.io/badge/Generated%20by-CodeBoarding-9cf?style=flat-square)](https://github.com/CodeBoarding/GeneratedOnBoardings)[![Demo](https://img.shields.io/badge/Try%20our-Demo-blue?style=flat-square)](https://www.codeboarding.org/demo)[![Contact](https://img.shields.io/badge/Contact%20us%20-%20contact@codeboarding.org-lightgrey?style=flat-square)](mailto:contact@codeboarding.org) + + + +## Details + + + +These components are fundamental to the Pinterest Python SDK for the following reasons, aligning with typical SDK/Client Library patterns: The `Pinterest SDK Client` is the absolute core, acting as a Facade and the first point of interaction. The `Configuration Manager` centralizes SDK settings. `Ads API Client` and `Organic API Client` provide modular, domain-specific interfaces. `Data Models (PinterestBaseModel)` offer structured data representation. `Authentication & Token Management` handles secure API access. `Error Handling & Exceptions` provides clear error reporting. `Pagination (Bookmark)` enables efficient retrieval of large datasets. + + + +### Pinterest SDK Client [[Expand]](./Pinterest_SDK_Client.md) + +The central entry point and orchestrator of the SDK. It is responsible for initializing the client, managing API authentication (access tokens), and providing the underlying HTTP client for all API requests. It acts as the primary interface for users to interact with the Pinterest API, delegating specific domain requests to the `Ads API Client` and `Organic API Client`. It also directly handles pagination logic by inheriting from `Pagination (Bookmark)`. + + + + + +**Related Classes/Methods**: + + + +- `pinterest.client.PinterestSDKClient` + + + + + +### Configuration Manager + +Responsible for loading, parsing, and managing SDK configuration settings, such as API keys, environment (e.g., production, sandbox), and other global parameters required for API connectivity. It ensures the SDK operates with the correct settings. + + + + + +**Related Classes/Methods**: + + + +- `pinterest.config` + +- `pinterest.bin.get_config` + +- `pinterest.utils.load_json_config` + + + + + +### Ads API Client + +A comprehensive collection of modules and classes dedicated to interacting with the Pinterest Ads API. It encapsulates the logic for managing ad accounts, campaigns, ad groups, ads, audiences, and other advertising-related entities, providing a structured interface for ad operations. + + + + + +**Related Classes/Methods**: + + + +- `pinterest.ads.ad_accounts` + +- `pinterest.ads.ad_groups` + +- `pinterest.ads.ads` + +- `pinterest.ads.audiences` + +- `pinterest.ads.campaigns` + +- `pinterest.ads.conversion_events` + +- `pinterest.ads.conversion_tags` + +- `pinterest.ads.customer_lists` + +- `pinterest.ads.keywords` + + + + + +### Organic API Client + +A collection of modules and classes focused on interacting with the Pinterest Organic content API. It handles operations related to boards, pins, and other non-advertising content, providing methods for creating, retrieving, updating, and deleting organic entities. + + + + + +**Related Classes/Methods**: + + + +- `pinterest.organic.boards` + +- `pinterest.organic.pins` + + + + + +### Data Models (PinterestBaseModel) + +The foundational base class for all data transfer objects (DTOs) or models representing entities returned by the Pinterest API. It provides a consistent structure, common methods for data manipulation, and potentially direct API interaction capabilities (e.g., fetching related data, handling pagination) for model instances. + + + + + +**Related Classes/Methods**: + + + +- `pinterest.utils.base_model.PinterestBaseModel` + + + + + +### Authentication & Token Management + +Manages the lifecycle of OAuth 2.0 access tokens, including their acquisition, storage, and automatic refreshing when they expire. This component ensures continuous and authenticated access to the Pinterest API without requiring manual token management from the user. + + + + + +**Related Classes/Methods**: + + + +- `pinterest.utils.refresh_access_token` + + + + + +### Error Handling & Exceptions + +Provides a standardized and centralized mechanism for handling and raising exceptions specific to the SDK. It defines custom exception types for various API errors and SDK-specific issues, ensuring robust error reporting and enabling graceful failure handling for developers. + + + + + +**Related Classes/Methods**: + + + +- `pinterest.utils.sdk_exceptions` + +- `pinterest.utils.error_handling` + + + + + +### Pagination (Bookmark) + +Implements the logic for paginating through API responses, allowing the SDK to efficiently retrieve large datasets by managing continuation tokens or "bookmarks." This component provides the base functionality for iterative data retrieval. + + + + + +**Related Classes/Methods**: + + + +- `pinterest.utils.bookmark` + + + + + + + + + +### [FAQ](https://github.com/CodeBoarding/GeneratedOnBoardings/tree/main?tab=readme-ov-file#faq) \ No newline at end of file diff --git a/.codeboarding/SDK Utilities & Testing.md b/.codeboarding/SDK Utilities & Testing.md index 0380259..f3b176f 100644 --- a/.codeboarding/SDK Utilities & Testing.md +++ b/.codeboarding/SDK Utilities & Testing.md @@ -1,237 +1,473 @@ ```mermaid + graph LR + SDK_Utilities_Testing["SDK Utilities & Testing"] + PinterestSDKClient["PinterestSDKClient"] + PinterestBaseModel["PinterestBaseModel"] + Campaign["Campaign"] + AdGroup["AdGroup"] + Ad["Ad"] + ConversionTag["ConversionTag"] + ConversionEvent["ConversionEvent"] + AdAccount["AdAccount"] + Audience["Audience"] + Keyword["Keyword"] + CustomerList["CustomerList"] + Board["Board"] + Pin["Pin"] + SDK_Utilities_Testing -- "tests" --> PinterestSDKClient + SDK_Utilities_Testing -- "tests" --> PinterestBaseModel + SDK_Utilities_Testing -- "tests" --> Campaign + SDK_Utilities_Testing -- "tests" --> AdGroup + SDK_Utilities_Testing -- "tests" --> Ad + SDK_Utilities_Testing -- "tests" --> ConversionTag + SDK_Utilities_Testing -- "tests" --> ConversionEvent + SDK_Utilities_Testing -- "tests" --> AdAccount + SDK_Utilities_Testing -- "tests" --> Audience + SDK_Utilities_Testing -- "tests" --> Keyword + SDK_Utilities_Testing -- "tests" --> CustomerList + SDK_Utilities_Testing -- "tests" --> Board + SDK_Utilities_Testing -- "tests" --> Pin + ``` + [![CodeBoarding](https://img.shields.io/badge/Generated%20by-CodeBoarding-9cf?style=flat-square)](https://github.com/CodeBoarding/GeneratedOnBoardings)[![Demo](https://img.shields.io/badge/Try%20our-Demo-blue?style=flat-square)](https://www.codeboarding.org/demo)[![Contact](https://img.shields.io/badge/Contact%20us%20-%20contact@codeboarding.org-lightgrey?style=flat-square)](mailto:contact@codeboarding.org) + + ## Component Details + + The SDK Utilities & Testing component serves a dual purpose: it provides a comprehensive suite of integration tests to validate the functionality and reliability of various Pinterest SDK components, ensuring that API interactions behave as expected. Additionally, it includes utility scripts crucial for the generation and management of documentation, streamlining the process of keeping the SDK's documentation up-to-date and accurate. + + ### SDK Utilities & Testing + Encompasses the integration test suite for validating SDK functionality and utility scripts for generating and managing documentation. + + + **Related Classes/Methods**: + + - `pinterest-python-sdk.integration_tests.clean_organic_data:test_delete_organic_data` (9:25) + - `pinterest-python-sdk.integration_tests.test_pinterest_base_model.TestPinterestBaseModel:test_error_message_for_accessing_non_existant_attribute` (14:27) + - `pinterest-python-sdk.integration_tests.test_pinterest_base_model.TestPinterestBaseModel:test_equality_of_campaign_models` (29:47) + - `pinterest-python-sdk.integration_tests.test_pinterest_base_model.TestPinterestBaseModel:test_set_board_attributes_failure` (49:60) + - `pinterest-python-sdk.integration_tests.base_test.BaseTestCase:test_client` (41:45) + - `pinterest-python-sdk.integration_tests.ads.test_ads.TestCreateAd:test_create_ad_success` (20:38) + - `pinterest-python-sdk.integration_tests.ads.test_ads.TestCreateAd:test_create_ad_failure_without_creative_type` (40:54) + - `pinterest-python-sdk.integration_tests.ads.test_ads.TestCreateAd:test_create_ad_failure_with_incorrect_creative_type` (56:71) + - `pinterest-python-sdk.integration_tests.ads.test_ads.TestGetAd:test_get_ad_success` (77:88) + - `pinterest-python-sdk.integration_tests.ads.test_ads.TestGetAd:test_get_ad_fail_with_invalid_id` (90:102) + - `pinterest-python-sdk.integration_tests.ads.test_ads.TestGetListAd:test_get_all_success` (109:122) + - `pinterest-python-sdk.integration_tests.ads.test_ads.TestGetListAd:test_get_all_with_invalid_ids_fail` (124:135) + - `pinterest-python-sdk.integration_tests.ads.test_ads.TestUpdateAds:test_update_ad_success` (142:162) + - `pinterest-python-sdk.integration_tests.ads.test_conversion_tags.TestCreateConversionTag:test_create_conversion_tag_success` (15:34) + - `pinterest-python-sdk.integration_tests.ads.test_conversion_tags.TestCreateConversionTag:test_create_conversion_tag_with_configs_success` (36:56) + - `pinterest-python-sdk.integration_tests.ads.test_conversion_tags.TestGetConversionTag:test_get_conversion_tag_success` (63:76) + - `pinterest-python-sdk.integration_tests.ads.test_conversion_tags.TestGetListConversionTag:test_get_list_success` (82:102) + - `pinterest-python-sdk.integration_tests.ads.test_conversion_tags.TestGetPageVsitConversionTag:test_get_page_visit_success` (109:118) + - `pinterest-python-sdk.integration_tests.ads.test_conversion_tags.TestGetOcpmEligibleConversionTag:test_get_ocpm_eligible_conversion_tags` (124:133) + - `pinterest-python-sdk.integration_tests.ads.test_conversion_events.TestSendConversionEvent:test_send_conversion_success` (21:61) + - `pinterest-python-sdk.integration_tests.ads.test_conversion_events.TestSendConversionEvent:test_send_conversion_fail` (63:95) + - `pinterest-python-sdk.integration_tests.ads.test_campaigns.TestCreateCampaign:test_create_campaign_success` (24:40) + - `pinterest-python-sdk.integration_tests.ads.test_campaigns.TestCreateCampaign:test_create_campaign_failure_incorrect_objective_type` (59:71) + - `pinterest-python-sdk.integration_tests.ads.test_campaigns.TestGetCampaign:test_get_campaign_success` (78:92) + - `pinterest-python-sdk.integration_tests.ads.test_campaigns.TestGetCampaign:test_get_campaign_failure_invalid_campaign_id` (94:106) + - `pinterest-python-sdk.integration_tests.ads.test_campaigns.TestChangeCampaignStatus:test_pause_campaign_successfully` (113:120) + - `pinterest-python-sdk.integration_tests.ads.test_campaigns.TestChangeCampaignStatus:test_activate_campaign_successfully` (122:129) + - `pinterest-python-sdk.integration_tests.ads.test_campaigns.TestChangeCampaignStatus:test_archive_campaign_successfully` (131:138) + - `pinterest-python-sdk.integration_tests.ads.test_campaigns.TestGetAllCampaigns:test_get_all_campaigns` (146:170) + - `pinterest-python-sdk.integration_tests.ads.test_campaigns.TestGetAllCampaigns:test_list_ad_groups` (172:201) + - `pinterest-python-sdk.integration_tests.ads.test_campaigns.TestGetAllCampaigns:test_get_next_page_of_campaigns` (203:239) + - `pinterest-python-sdk.integration_tests.ads.test_ad_groups.TestCreateAdGroup:test_create_ad_group_success` (16:38) + - `pinterest-python-sdk.integration_tests.ads.test_ad_groups.TestCreateAdGroup:test_get_existing_ad_group` (40:52) + - `pinterest-python-sdk.integration_tests.ads.test_ad_groups.TestUpdateAdGroup:test_update_success` (59:82) + - `pinterest-python-sdk.integration_tests.ads.test_ad_groups.TestUpdateAdGroup:test_update_fail_with_invalid_tracking_urls` (84:107) + - `pinterest-python-sdk.integration_tests.ads.test_ad_groups.TestGetListAdGroup:test_get_list_success` (114:128) + - `pinterest-python-sdk.integration_tests.ads.test_ad_groups.TestGetListAdGroup:test_get_list_with_campaign_ids_success` (130:159) + - `pinterest-python-sdk.integration_tests.ads.test_ad_groups.TestGetListAdGroup:test_get_list_invalid_id_fail` (161:172) + - `pinterest-python-sdk.integration_tests.ads.test_ad_groups.TestListAds:test_list_ads_success` (179:200) + - `pinterest-python-sdk.integration_tests.ads.test_ad_groups.TestListAds:test_enable_auto_targeting` (202:216) + - `pinterest-python-sdk.integration_tests.ads.test_ad_groups.TestListAds:test_disable_auto_targeting` (218:232) + - `pinterest-python-sdk.integration_tests.ads.test_ad_accounts.TestAdAccount:test_create_ad_account` (19:32) + - `pinterest-python-sdk.integration_tests.ads.test_ad_accounts.TestAdAccount:test_get_existing_ad_account` (34:43) + - `pinterest-python-sdk.integration_tests.ads.test_ad_accounts.TestListCampaigns:test_get_all_campaigns` (52:76) + - `pinterest-python-sdk.integration_tests.ads.test_ad_accounts.TestListAudiences:test_get_all_audiences` (85:110) + - `pinterest-python-sdk.integration_tests.ads.test_ad_accounts.TestListCustomerLists:test_list_customer_list_success` (117:138) + - `pinterest-python-sdk.integration_tests.ads.test_audiences.TestAudience:test_create_audience` (18:36) + - `pinterest-python-sdk.integration_tests.ads.test_audiences.TestAudience:test_get_existing_audience` (38:48) + - `pinterest-python-sdk.integration_tests.ads.test_audiences.TestAudience:test_update_audience_with_kwargs` (50:68) + - `pinterest-python-sdk.integration_tests.ads.test_audiences.TestGetAllAudiences:test_get_all_audiences` (76:101) + - `pinterest-python-sdk.integration_tests.ads.test_keywords.TestCreateKeyword:test_create_keyword_success` (20:35) + - `pinterest-python-sdk.integration_tests.ads.test_keywords.TestCreateKeyword:test_create_fail_without_matchtype` (37:48) + - `pinterest-python-sdk.integration_tests.ads.test_keywords.TestGetKeywords:test_get_keywords_success` (55:81) + - `pinterest-python-sdk.integration_tests.ads.test_keywords.TestUpdateKeyword:test_update_keyword_success` (88:112) + - `pinterest-python-sdk.integration_tests.ads.test_customer_lists.TestCreateCustomerList:test_create_customer_list_success` (18:31) + - `pinterest-python-sdk.integration_tests.ads.test_customer_lists.TestCreateCustomerList:test_create_customer_list_failure_incorrect_list_type` (33:44) + - `pinterest-python-sdk.integration_tests.ads.test_customer_lists.TestGetCustomerList:test_get_existing_customer_list_success` (51:61) + - `pinterest-python-sdk.integration_tests.ads.test_customer_lists.TestUpdateCustomerList:test_update_field_with_append_operation_success` (68:88) + - `pinterest-python-sdk.integration_tests.ads.test_customer_lists.TestUpdateCustomerList:test_update_field_with_remove_operation_success` (90:110) + - `pinterest-python-sdk.integration_tests.ads.test_customer_lists.TestUpdateCustomerList:test_update_missing_require_field` (112:127) + - `pinterest-python-sdk.integration_tests.ads.test_customer_lists.TestGetListCustomerList:test_get_all` (134:161) + - `pinterest-python-sdk.integration_tests.ads.test_customer_lists.TestAddRemoveCustomerList:test_add_customer_list` (178:190) + - `pinterest-python-sdk.integration_tests.ads.test_customer_lists.TestAddRemoveCustomerList:test_remove_customer_list` (192:210) + - `pinterest-python-sdk.docs.utils.script:create_file_index` (118:163) + - `pinterest-python-sdk.docs.utils.script:append_doc_to_spec_file` (178:219) + - `pinterest-python-sdk.docs.utils.script:start_doc` (222:234) + - `pinterest-python-sdk.docs.utils.script.sort_index` (65:79) + - `pinterest-python-sdk.docs.utils.script.check_index` (100:115) + - `pinterest-python-sdk.docs.utils.script.truncate_md_extension` (166:175) + - `pinterest-python-sdk.docs.utils.script.remove_module_prefix_from_file` (82:97) + - `pinterest-python-sdk.docs.utils.script.set_up_python_path` (31:35) + - `pinterest-python-sdk.docs.utils.script.remove_old_doc` (38:45) + - `pinterest-python-sdk.docs.utils.script.generate_new_doc` (48:62) + + + ### PinterestSDKClient + The core client for interacting with the Pinterest API. It handles client creation, access token management, and acts as the entry point for API calls. + + + **Related Classes/Methods**: + + - `pinterest-python-sdk.pinterest.client.PinterestSDKClient` (full file reference) + + + ### PinterestBaseModel + An abstract base class that provides common functionalities for all higher-level Pinterest API models. It includes methods for getting the client, creating API instances, making API calls, listing, creating, and updating resources, and populating model fields. + + + **Related Classes/Methods**: + + - `pinterest-python-sdk.pinterest.utils.base_model.PinterestBaseModel` (15:213) + + + ### Campaign + Represents a Pinterest advertising campaign. This component allows users to create, retrieve, update, and manage the status (pause, activate, archive) of campaigns. It also provides functionality to list associated ad groups. + + + **Related Classes/Methods**: + + - `pinterest-python-sdk.pinterest.ads.campaigns.Campaign` (21:541) + + + ### AdGroup + Represents an ad group within a Pinterest campaign. This component enables the creation, retrieval, and updating of ad groups, as well as listing ads associated with them and managing auto-targeting settings. + + + **Related Classes/Methods**: + + - `pinterest-python-sdk.pinterest.ads.ad_groups.AdGroup` (21:499) + + + ### Ad + Represents an individual advertisement on Pinterest. This component provides methods for creating, retrieving, and updating ads. + + + **Related Classes/Methods**: + + - `pinterest-python-sdk.pinterest.ads.ads.Ad` (19:444) + + + ### ConversionTag + Manages Pinterest conversion tags, which are used to track user actions. This component allows for the creation and retrieval of conversion tags and related events. + + + **Related Classes/Methods**: + + - `pinterest-python-sdk.pinterest.ads.conversion_tags.ConversionTag` (20:314) + + + ### ConversionEvent + Handles the sending of conversion events to Pinterest, allowing advertisers to track specific user actions. + + + **Related Classes/Methods**: + + - `pinterest-python-sdk.pinterest.ads.conversion_events.Conversion` (16:119) + + + ### AdAccount + Represents a Pinterest advertising account. This component provides functionalities to create new ad accounts and list associated campaigns, audiences, and customer lists. + + + **Related Classes/Methods**: + + - `pinterest-python-sdk.pinterest.ads.ad_accounts.AdAccount` (22:262) + + + ### Audience + Manages custom audiences for advertising campaigns. This component supports the creation, retrieval, and updating of audience definitions. + + + **Related Classes/Methods**: + + - `pinterest-python-sdk.pinterest.ads.audiences.Audience` (23:275) + + + ### Keyword + Manages keywords used for targeting in advertising campaigns. This component allows for the creation, retrieval, and updating of keywords. + + + **Related Classes/Methods**: + + - `pinterest-python-sdk.pinterest.ads.keywords.Keyword` (20:230) + + + ### CustomerList + Manages customer lists for audience targeting. This component provides methods to create, retrieve, update, add, and remove records from customer lists. + + + **Related Classes/Methods**: + + - `pinterest-python-sdk.pinterest.ads.customer_lists.CustomerList` (19:283) + + + ### Board + Represents a Pinterest board, which is a collection of pins. This component enables the creation, deletion, retrieval, and updating of boards, as well as managing board sections and listing pins within the board. + + + **Related Classes/Methods**: + + - `pinterest-python-sdk.pinterest.organic.boards.Board` (192:605) + + + ### Pin + Represents a Pinterest pin, which is an image or video. This component provides functionalities to create, delete, retrieve, and save pins. + + + **Related Classes/Methods**: + + - `pinterest-python-sdk.pinterest.organic.pins.Pin` (16:392) + + + + + ### [FAQ](https://github.com/CodeBoarding/GeneratedOnBoardings/tree/main?tab=readme-ov-file#faq) \ No newline at end of file diff --git a/.codeboarding/on_boarding.md b/.codeboarding/on_boarding.md index 0ff10be..6883d62 100644 --- a/.codeboarding/on_boarding.md +++ b/.codeboarding/on_boarding.md @@ -1,308 +1,179 @@ ```mermaid + graph LR - Core_SDK_Services["Core SDK Services"] - Advertising_API_Management["Advertising API Management"] - Organic_Content_API_Management["Organic Content API Management"] - SDK_Utilities_Testing["SDK Utilities & Testing"] - SDK_Utilities_Testing["SDK Utilities & Testing"] - Advertising_API_Management -- "inherits from" --> Core_SDK_Services - Advertising_API_Management -- "uses" --> Core_SDK_Services - Organic_Content_API_Management -- "inherits from" --> Core_SDK_Services - Organic_Content_API_Management -- "uses" --> Core_SDK_Services - SDK_Utilities_Testing -- "tests" --> Core_SDK_Services - SDK_Utilities_Testing -- "tests" --> Advertising_API_Management - SDK_Utilities_Testing -- "tests" --> Organic_Content_API_Management - click Core_SDK_Services href "https://github.com/CodeBoarding/GeneratedOnBoardings/blob/main/pinterest-python-sdk/Core SDK Services.md" "Details" - click Advertising_API_Management href "https://github.com/CodeBoarding/GeneratedOnBoardings/blob/main/pinterest-python-sdk/Advertising API Management.md" "Details" - click Organic_Content_API_Management href "https://github.com/CodeBoarding/GeneratedOnBoardings/blob/main/pinterest-python-sdk/Organic Content API Management.md" "Details" - click SDK_Utilities_Testing href "https://github.com/CodeBoarding/GeneratedOnBoardings/blob/main/pinterest-python-sdk/SDK Utilities & Testing.md" "Details" - click SDK_Utilities_Testing href "https://github.com/CodeBoarding/GeneratedOnBoardings/blob/main/pinterest-python-sdk/SDK Utilities & Testing.md" "Details" + + Pinterest_SDK_Client["Pinterest SDK Client"] + + API_Resource_Abstraction["API Resource Abstraction"] + + Configuration_Management["Configuration Management"] + + Authentication_Token_Management["Authentication & Token Management"] + + Error_Handling_Validation["Error Handling & Validation"] + + Pagination_Utility["Pagination Utility"] + + Pinterest_SDK_Client -- "Utilizes" --> Configuration_Management + + Pinterest_SDK_Client -- "Interacts with" --> Authentication_Token_Management + + Pinterest_SDK_Client -- "Provides client instance to" --> API_Resource_Abstraction + + API_Resource_Abstraction -- "Relies on" --> Pinterest_SDK_Client + + API_Resource_Abstraction -- "Leverages" --> Pagination_Utility + + API_Resource_Abstraction -- "Invokes" --> Error_Handling_Validation + + Configuration_Management -- "Provides configuration data to" --> Pinterest_SDK_Client + + Authentication_Token_Management -- "Provides refreshed tokens to" --> Pinterest_SDK_Client + + Authentication_Token_Management -- "May utilize" --> Error_Handling_Validation + + Error_Handling_Validation -- "Used by" --> API_Resource_Abstraction + + Error_Handling_Validation -- "Used by" --> Authentication_Token_Management + + Pagination_Utility -- "Is used by" --> API_Resource_Abstraction + + click Pinterest_SDK_Client href "https://github.com/pinterest/pinterest-python-sdk/blob/main/.codeboarding//Pinterest_SDK_Client.md" "Details" + + click API_Resource_Abstraction href "https://github.com/pinterest/pinterest-python-sdk/blob/main/.codeboarding//API_Resource_Abstraction.md" "Details" + + click Pagination_Utility href "https://github.com/pinterest/pinterest-python-sdk/blob/main/.codeboarding//Pagination_Utility.md" "Details" + ``` + + + [![CodeBoarding](https://img.shields.io/badge/Generated%20by-CodeBoarding-9cf?style=flat-square)](https://github.com/CodeBoarding/GeneratedOnBoardings)[![Demo](https://img.shields.io/badge/Try%20our-Demo-blue?style=flat-square)](https://www.codeboarding.org/demo)[![Contact](https://img.shields.io/badge/Contact%20us%20-%20contact@codeboarding.org-lightgrey?style=flat-square)](mailto:contact@codeboarding.org) -## Component Details -The `pinterest-python-sdk` provides a comprehensive interface for interacting with the Pinterest API, enabling both advertising and organic content management. The core functionality revolves around a central SDK client that handles authentication and API communication, supported by a base model for common resource operations, error handling, and pagination. Specialized components are built upon this core to manage various Pinterest entities, such as ad accounts, campaigns, ad groups, ads, audiences, conversion events, boards, and pins. The architecture also includes dedicated modules for integration testing and documentation generation, ensuring the SDK's reliability and usability. -### Core SDK Services -Provides the foundational services for the Pinterest Python SDK, including client initialization, authentication, configuration loading, base model functionalities for API interactions, error handling, and pagination. It forms the backbone for all other API-specific management components. +## Details + + + +The `pinterest-python-sdk` is structured as a typical SDK/Client Library, emphasizing modularity and clear separation of concerns. The analysis reveals six core components that orchestrate the SDK's functionality, from client initialization and authentication to API resource management and utility functions. + + + +### Pinterest SDK Client [[Expand]](./Pinterest_SDK_Client.md) + +The central entry point and orchestrator of the SDK. It is responsible for initializing the client, managing API authentication (access tokens), and providing the underlying HTTP client for all API requests. It acts as the primary interface for users to interact with the Pinterest API. + + + **Related Classes/Methods**: -- `pinterest.client.PinterestSDKClient` (full file reference) -- `pinterest.client.PinterestSDKClient.__init__` (full file reference) -- `pinterest.client.PinterestSDKClient.create_client_with_refresh_token` (full file reference) -- `pinterest.client.PinterestSDKClient.create_client_with_token` (full file reference) -- `pinterest.client.PinterestSDKClient.set_default_access_token` (full file reference) -- `pinterest.client.PinterestSDKClient.set_default_refresh_token` (full file reference) -- `pinterest.client.PinterestSDKClient.create_default_client` (full file reference) -- `pinterest.client.PinterestSDKClient._init_default_sdk_client_from_env` (full file reference) -- `pinterest.client.PinterestSDKClient._get_access_token` (full file reference) -- `pinterest.client.PinterestSDKClient._get_config` (full file reference) -- `pinterest.client.PinterestSDKClient._reset_default_client` (full file reference) -- `pinterest.client.PinterestSDKClient._set_default_client` (full file reference) -- `pinterest.utils.load_json_config.load_json_config` (13:24) -- `pinterest.utils.refresh_access_token.get_new_access_token` (12:65) -- `pinterest.utils.base_model.PinterestBaseModel` (15:213) -- `pinterest.utils.base_model.PinterestBaseModel.__init__` (20:41) -- `pinterest.utils.base_model.PinterestBaseModel._get_client` (87:90) -- `pinterest.utils.base_model.PinterestBaseModel._get_api_instance` (93:98) -- `pinterest.utils.base_model.PinterestBaseModel._list` (111:163) -- `pinterest.utils.base_model.PinterestBaseModel._create` (166:183) -- `pinterest.utils.base_model.PinterestBaseModel._update` (185:213) -- `pinterest.utils.base_model.PinterestBaseModel._populate_fields` (52:81) -- `pinterest.utils.error_handling.verify_api_response` (6:49) -- `pinterest.utils.sdk_exceptions.SdkException` (5:28) -- `pinterest.utils.bookmark.Bookmark` (8:61) -- `pinterest.utils.bookmark.Bookmark.get_next` (37:52) - - -### Advertising API Management -Manages all advertising-related entities and operations within the Pinterest API, including ad accounts, campaigns, ad groups, ads, audiences, conversion tags, conversion events, customer lists, and keywords. It leverages the Core SDK Services for underlying API interactions. + + +- `pinterest/client/__init__.py` (1:1) + + + + + +### API Resource Abstraction [[Expand]](./API_Resource_Abstraction.md) + +A foundational component that provides a standardized interface for interacting with various Pinterest API resources (e.g., Ads, Campaigns, Pins, Boards). It encapsulates common CRUD (Create, Read, Update, List) operations, abstracting the direct interaction with the Pinterest API client and handling data serialization/deserialization. All specific resource managers inherit from this base. + + + **Related Classes/Methods**: -- `pinterest.ads.ad_accounts.AdAccount` (22:262) -- `pinterest.ads.ad_accounts.AdAccount.__init__` (27:59) -- `pinterest.ads.ad_accounts.AdAccount.create` (102:145) -- `pinterest.ads.ad_accounts.AdAccount.list_campaigns` (147:192) -- `pinterest.ads.ad_accounts.AdAccount.list_audiences` (194:229) -- `pinterest.ads.ad_accounts.AdAccount.list_customer_lists` (231:262) -- `pinterest.ads.campaigns.Campaign` (21:541) -- `pinterest.ads.campaigns.Campaign.__init__` (26:70) -- `pinterest.ads.campaigns.Campaign.create` (159:300) -- `pinterest.ads.campaigns.Campaign.get_all` (303:365) -- `pinterest.ads.campaigns.Campaign.set_lifetime_budget` (367:389) -- `pinterest.ads.campaigns.Campaign.set_daily_budget` (391:413) -- `pinterest.ads.campaigns.Campaign._change_status` (433:459) -- `pinterest.ads.campaigns.Campaign.pause` (461:468) -- `pinterest.ads.campaigns.Campaign.activate` (470:477) -- `pinterest.ads.campaigns.Campaign.archive` (479:486) -- `pinterest.ads.campaigns.Campaign.update_fields` (488:512) -- `pinterest.ads.campaigns.Campaign.list_ad_groups` (514:541) -- `pinterest.ads.ad_groups.AdGroup` (21:499) -- `pinterest.ads.ad_groups.AdGroup.__init__` (27:80) -- `pinterest.ads.ad_groups.AdGroup.create` (219:351) -- `pinterest.ads.ad_groups.AdGroup.update_fields` (353:380) -- `pinterest.ads.ad_groups.AdGroup.get_all` (383:440) -- `pinterest.ads.ad_groups.AdGroup.list_ads` (442:479) -- `pinterest.ads.ad_groups.AdGroup.enable_auto_targeting` (481:489) -- `pinterest.ads.ad_groups.AdGroup.disable_auto_targeting` (491:499) -- `pinterest.ads.ads.Ad` (19:444) -- `pinterest.ads.ads.Ad.__init__` (24:81) -- `pinterest.ads.ads.Ad.create` (239:339) -- `pinterest.ads.ads.Ad.get_all` (342:418) -- `pinterest.ads.ads.Ad.update_fields` (420:444) -- `pinterest.ads.audiences.Audience` (23:275) -- `pinterest.ads.audiences.Audience.__init__` (28:50) -- `pinterest.ads.audiences.Audience.create` (108:189) -- `pinterest.ads.audiences.Audience.get_all` (192:251) -- `pinterest.ads.audiences.Audience.update_fields` (253:275) -- `pinterest.ads.conversion_tags.ConversionTag` (20:314) -- `pinterest.ads.conversion_tags.ConversionTag.__init__` (25:60) -- `pinterest.ads.conversion_tags.ConversionTag.create` (108:198) -- `pinterest.ads.conversion_tags.ConversionTag.get_all` (201:236) -- `pinterest.ads.conversion_tags.ConversionTag.get_page_visit_conversion_tag_events` (239:278) -- `pinterest.ads.conversion_tags.ConversionTag.get_ocpm_eligible_conversion_tag_events` (281:314) -- `pinterest.ads.conversion_events.Conversion.send_conversion_events` (96:119) -- `pinterest.ads.conversion_events.Conversion.create_conversion_event` (23:93) -- `pinterest.ads.customer_lists.CustomerList` (19:283) -- `pinterest.ads.customer_lists.CustomerList.__init__` (24:48) -- `pinterest.ads.customer_lists.CustomerList.create` (107:170) -- `pinterest.ads.customer_lists.CustomerList.update_fields` (172:191) -- `pinterest.ads.customer_lists.CustomerList.get_all` (194:244) -- `pinterest.ads.customer_lists.CustomerList.add_record` (246:265) -- `pinterest.ads.customer_lists.CustomerList.remove_record` (267:283) -- `pinterest.ads.keywords.Keyword` (20:230) -- `pinterest.ads.keywords.Keyword.__init__` (25:46) -- `pinterest.ads.keywords.Keyword.create` (89:153) -- `pinterest.ads.keywords.Keyword.get_all` (156:205) -- `pinterest.ads.keywords.Keyword.update_fields` (207:230) - - -### Organic Content API Management -Provides functionalities for managing organic content on Pinterest, including boards, board sections, and pins. It relies on the Core SDK Services for interacting with the Pinterest API. + + +- `pinterest/utils/base_model.py` (1:1) + +- `pinterest/ads/ad_accounts.py` (1:1) + +- `pinterest/organic/pins.py` (1:1) + + + + + +### Configuration Management + +Responsible for loading and managing SDK configuration settings from various external sources, such as environment variables or JSON files. It ensures the SDK is properly initialized with necessary parameters like access tokens and API endpoints. + + + + + +**Related Classes/Methods**: + + + +- `pinterest/utils/load_json_config.py` (1:1) + + + + + +### Authentication & Token Management + +Manages the lifecycle of API access tokens, including their initial acquisition and automatic refreshing when they expire. This component ensures continuous and authenticated access to the Pinterest API without requiring manual intervention from the user. + + + **Related Classes/Methods**: -- `pinterest.organic.boards.Board` (192:605) -- `pinterest.organic.boards.Board.__init__` (196:231) -- `pinterest.organic.boards.Board.create` (292:331) -- `pinterest.organic.boards.Board.delete` (334:359) -- `pinterest.organic.boards.Board.get_all` (362:416) -- `pinterest.organic.boards.Board.update_fields` (418:443) -- `pinterest.organic.boards.Board.make_public` (445:452) -- `pinterest.organic.boards.Board.make_secret` (454:461) -- `pinterest.organic.boards.Board.create_section` (463:480) -- `pinterest.organic.boards.Board.update_section` (482:501) -- `pinterest.organic.boards.Board.delete_section` (503:520) -- `pinterest.organic.boards.Board.list_sections` (522:554) -- `pinterest.organic.boards.Board.list_pins` (556:605) -- `pinterest.organic.boards.BoardSection.create` (52:80) -- `pinterest.organic.boards.BoardSection.get_all` (84:128) -- `pinterest.organic.boards.BoardSection.update` (131:162) -- `pinterest.organic.boards.BoardSection.delete` (165:189) -- `pinterest.organic.pins.Pin` (16:392) -- `pinterest.organic.pins.Pin.__init__` (20:78) -- `pinterest.organic.pins.Pin.create` (179:258) -- `pinterest.organic.pins.Pin.delete` (261:286) -- `pinterest.organic.pins.Pin.save` (288:315) -- `pinterest.organic.pins.Pin.get_all` (318:392) - - -### SDK Utilities & Testing -Encompasses the integration test suite for validating SDK functionality and utility scripts for generating and managing documentation. + + +- `pinterest/utils/refresh_access_token.py` (1:1) + + + + + +### Error Handling & Validation + +Defines and manages custom exceptions specific to the SDK, providing structured and informative error reporting to the user. It also validates API responses for success or failure, raising appropriate SDK exceptions if errors are detected. + + + **Related Classes/Methods**: -- `pinterest-python-sdk.integration_tests.clean_organic_data:test_delete_organic_data` (9:25) -- `pinterest-python-sdk.integration_tests.test_pinterest_base_model.TestPinterestBaseModel:test_error_message_for_accessing_non_existant_attribute` (14:27) -- `pinterest-python-sdk.integration_tests.test_pinterest_base_model.TestPinterestBaseModel:test_equality_of_campaign_models` (29:47) -- `pinterest-python-sdk.integration_tests.test_pinterest_base_model.TestPinterestBaseModel:test_set_board_attributes_failure` (49:60) -- `pinterest-python-sdk.integration_tests.base_test.BaseTestCase:test_client` (41:45) -- `pinterest-python-sdk.integration_tests.ads.test_ads.TestCreateAd:test_create_ad_success` (20:38) -- `pinterest-python-sdk.integration_tests.ads.test_ads.TestCreateAd:test_create_ad_failure_without_creative_type` (40:54) -- `pinterest-python-sdk.integration_tests.ads.test_ads.TestCreateAd:test_create_ad_failure_with_incorrect_creative_type` (56:71) -- `pinterest-python-sdk.integration_tests.ads.test_ads.TestGetAd:test_get_ad_success` (77:88) -- `pinterest-python-sdk.integration_tests.ads.test_ads.TestGetAd:test_get_ad_fail_with_invalid_id` (90:102) -- `pinterest-python-sdk.integration_tests.ads.test_ads.TestGetListAd:test_get_all_success` (109:122) -- `pinterest-python-sdk.integration_tests.ads.test_ads.TestGetListAd:test_get_all_with_invalid_ids_fail` (124:135) -- `pinterest-python-sdk.integration_tests.ads.test_ads.TestUpdateAds:test_update_ad_success` (142:162) -- `pinterest-python-sdk.integration_tests.ads.test_conversion_tags.TestCreateConversionTag:test_create_conversion_tag_success` (15:34) -- `pinterest-python-sdk.integration_tests.ads.test_conversion_tags.TestCreateConversionTag:test_create_conversion_tag_with_configs_success` (36:56) -- `pinterest-python-sdk.integration_tests.ads.test_conversion_tags.TestGetConversionTag:test_get_conversion_tag_success` (63:76) -- `pinterest-python-sdk.integration_tests.ads.test_conversion_tags.TestGetListConversionTag:test_get_list_success` (82:102) -- `pinterest-python-sdk.integration_tests.ads.test_conversion_tags.TestGetPageVsitConversionTag:test_get_page_visit_success` (109:118) -- `pinterest-python-sdk.integration_tests.ads.test_conversion_tags.TestGetOcpmEligibleConversionTag:test_get_ocpm_eligible_conversion_tags` (124:133) -- `pinterest-python-sdk.integration_tests.ads.test_conversion_events.TestSendConversionEvent:test_send_conversion_success` (21:61) -- `pinterest-python-sdk.integration_tests.ads.test_conversion_events.TestSendConversionEvent:test_send_conversion_fail` (63:95) -- `pinterest-python-sdk.integration_tests.ads.test_campaigns.TestCreateCampaign:test_create_campaign_success` (24:40) -- `pinterest-python-sdk.integration_tests.ads.test_campaigns.TestCreateCampaign:test_create_campaign_failure_incorrect_objective_type` (59:71) -- `pinterest-python-sdk.integration_tests.ads.test_campaigns.TestGetCampaign:test_get_campaign_success` (78:92) -- `pinterest-python-sdk.integration_tests.ads.test_campaigns.TestGetCampaign:test_get_campaign_failure_invalid_campaign_id` (94:106) -- `pinterest-python-sdk.integration_tests.ads.test_campaigns.TestChangeCampaignStatus:test_pause_campaign_successfully` (113:120) -- `pinterest-python-sdk.integration_tests.ads.test_campaigns.TestChangeCampaignStatus:test_activate_campaign_successfully` (122:129) -- `pinterest-python-sdk.integration_tests.ads.test_campaigns.TestChangeCampaignStatus:test_archive_campaign_successfully` (131:138) -- `pinterest-python-sdk.integration_tests.ads.test_campaigns.TestGetAllCampaigns:test_get_all_campaigns` (146:170) -- `pinterest-python-sdk.integration_tests.ads.test_campaigns.TestGetAllCampaigns:test_list_ad_groups` (172:201) -- `pinterest-python-sdk.integration_tests.ads.test_campaigns.TestGetAllCampaigns:test_get_next_page_of_campaigns` (203:239) -- `pinterest-python-sdk.integration_tests.ads.test_ad_groups.TestCreateAdGroup:test_create_ad_group_success` (16:38) -- `pinterest-python-sdk.integration_tests.ads.test_ad_groups.TestCreateAdGroup:test_get_existing_ad_group` (40:52) -- `pinterest-python-sdk.integration_tests.ads.test_ad_groups.TestUpdateAdGroup:test_update_success` (59:82) -- `pinterest-python-sdk.integration_tests.ads.test_ad_groups.TestUpdateAdGroup:test_update_fail_with_invalid_tracking_urls` (84:107) -- `pinterest-python-sdk.integration_tests.ads.test_ad_groups.TestGetListAdGroup:test_get_list_success` (114:128) -- `pinterest-python-sdk.integration_tests.ads.test_ad_groups.TestGetListAdGroup:test_get_list_with_campaign_ids_success` (130:159) -- `pinterest-python-sdk.integration_tests.ads.test_ad_groups.TestGetListAdGroup:test_get_list_invalid_id_fail` (161:172) -- `pinterest-python-sdk.integration_tests.ads.test_ad_groups.TestListAds:test_list_ads_success` (179:200) -- `pinterest-python-sdk.integration_tests.ads.test_ad_groups.TestListAds:test_enable_auto_targeting` (202:216) -- `pinterest-python-sdk.integration_tests.ads.test_ad_groups.TestListAds:test_disable_auto_targeting` (218:232) -- `pinterest-python-sdk.integration_tests.ads.test_ad_accounts.TestAdAccount:test_create_ad_account` (19:32) -- `pinterest-python-sdk.integration_tests.ads.test_ad_accounts.TestAdAccount:test_get_existing_ad_account` (34:43) -- `pinterest-python-sdk.integration_tests.ads.test_ad_accounts.TestListCampaigns:test_get_all_campaigns` (52:76) -- `pinterest-python-sdk.integration_tests.ads.test_ad_accounts.TestListAudiences:test_get_all_audiences` (85:110) -- `pinterest-python-sdk.integration_tests.ads.test_ad_accounts.TestListCustomerLists:test_list_customer_list_success` (117:138) -- `pinterest-python-sdk.integration_tests.ads.test_audiences.TestAudience:test_create_audience` (18:36) -- `pinterest-python-sdk.integration_tests.ads.test_audiences.TestAudience:test_get_existing_audience` (38:48) -- `pinterest-python-sdk.integration_tests.ads.test_audiences.TestAudience:test_update_audience_with_kwargs` (50:68) -- `pinterest-python-sdk.integration_tests.ads.test_audiences.TestGetAllAudiences:test_get_all_audiences` (76:101) -- `pinterest-python-sdk.integration_tests.ads.test_keywords.TestCreateKeyword:test_create_keyword_success` (20:35) -- `pinterest-python-sdk.integration_tests.ads.test_keywords.TestCreateKeyword:test_create_fail_without_matchtype` (37:48) -- `pinterest-python-sdk.integration_tests.ads.test_keywords.TestGetKeywords:test_get_keywords_success` (55:81) -- `pinterest-python-sdk.integration_tests.ads.test_keywords.TestUpdateKeyword:test_update_keyword_success` (88:112) -- `pinterest-python-sdk.integration_tests.ads.test_customer_lists.TestCreateCustomerList:test_create_customer_list_success` (18:31) -- `pinterest-python-sdk.integration_tests.ads.test_customer_lists.TestCreateCustomerList:test_create_customer_list_failure_incorrect_list_type` (33:44) -- `pinterest-python-sdk.integration_tests.ads.test_customer_lists.TestGetCustomerList:test_get_existing_customer_list_success` (51:61) -- `pinterest-python-sdk.integration_tests.ads.test_customer_lists.TestUpdateCustomerList:test_update_field_with_append_operation_success` (68:88) -- `pinterest-python-sdk.integration_tests.ads.test_customer_lists.TestUpdateCustomerList:test_update_field_with_remove_operation_success` (90:110) -- `pinterest-python-sdk.integration_tests.ads.test_customer_lists.TestUpdateCustomerList:test_update_missing_require_field` (112:127) -- `pinterest-python-sdk.integration_tests.ads.test_customer_lists.TestGetListCustomerList:test_get_all` (134:161) -- `pinterest-python-sdk.integration_tests.ads.test_customer_lists.TestAddRemoveCustomerList:test_add_customer_list` (178:190) -- `pinterest-python-sdk.integration_tests.ads.test_customer_lists.TestAddRemoveCustomerList:test_remove_customer_list` (192:210) - - -### SDK Utilities & Testing -Encompasses the integration test suite for validating SDK functionality and utility scripts for generating and managing documentation. + + +- `pinterest/utils/sdk_exceptions.py` (1:1) + +- `pinterest/utils/error_handling.py` (1:1) + + + + + +### Pagination Utility [[Expand]](./Pagination_Utility.md) + +Provides a utility for efficiently handling paginated API responses. It allows users to iterate through large datasets returned by list operations without needing to manually manage pagination tokens or offsets. + + + **Related Classes/Methods**: -- `pinterest-python-sdk.integration_tests.clean_organic_data:test_delete_organic_data` (9:25) -- `pinterest-python-sdk.integration_tests.test_pinterest_base_model.TestPinterestBaseModel:test_error_message_for_accessing_non_existant_attribute` (14:27) -- `pinterest-python-sdk.integration_tests.test_pinterest_base_model.TestPinterestBaseModel:test_equality_of_campaign_models` (29:47) -- `pinterest-python-sdk.integration_tests.test_pinterest_base_model.TestPinterestBaseModel:test_set_board_attributes_failure` (49:60) -- `pinterest-python-sdk.integration_tests.base_test.BaseTestCase:test_client` (41:45) -- `pinterest-python-sdk.integration_tests.ads.test_ads.TestCreateAd:test_create_ad_success` (20:38) -- `pinterest-python-sdk.integration_tests.ads.test_ads.TestCreateAd:test_create_ad_failure_without_creative_type` (40:54) -- `pinterest-python-sdk.integration_tests.ads.test_ads.TestCreateAd:test_create_ad_failure_with_incorrect_creative_type` (56:71) -- `pinterest-python-sdk.integration_tests.ads.test_ads.TestGetAd:test_get_ad_success` (77:88) -- `pinterest-python-sdk.integration_tests.ads.test_ads.TestGetAd:test_get_ad_fail_with_invalid_id` (90:102) -- `pinterest-python-sdk.integration_tests.ads.test_ads.TestGetListAd:test_get_all_success` (109:122) -- `pinterest-python-sdk.integration_tests.ads.test_ads.TestGetListAd:test_get_all_with_invalid_ids_fail` (124:135) -- `pinterest-python-sdk.integration_tests.ads.test_ads.TestUpdateAds:test_update_ad_success` (142:162) -- `pinterest-python-sdk.integration_tests.ads.test_conversion_tags.TestCreateConversionTag:test_create_conversion_tag_success` (15:34) -- `pinterest-python-sdk.integration_tests.ads.test_conversion_tags.TestCreateConversionTag:test_create_conversion_tag_with_configs_success` (36:56) -- `pinterest-python-sdk.integration_tests.ads.test_conversion_tags.TestGetConversionTag:test_get_conversion_tag_success` (63:76) -- `pinterest-python-sdk.integration_tests.ads.test_conversion_tags.TestGetListConversionTag:test_get_list_success` (82:102) -- `pinterest-python-sdk.integration_tests.ads.test_conversion_tags.TestGetPageVsitConversionTag:test_get_page_visit_success` (109:118) -- `pinterest-python-sdk.integration_tests.ads.test_conversion_tags.TestGetOcpmEligibleConversionTag:test_get_ocpm_eligible_conversion_tags` (124:133) -- `pinterest-python-sdk.integration_tests.ads.test_conversion_events.TestSendConversionEvent:test_send_conversion_success` (21:61) -- `pinterest-python-sdk.integration_tests.ads.test_conversion_events.TestSendConversionEvent:test_send_conversion_fail` (63:95) -- `pinterest-python-sdk.integration_tests.ads.test_campaigns.TestCreateCampaign:test_create_campaign_success` (24:40) -- `pinterest-python-sdk.integration_tests.ads.test_campaigns.TestCreateCampaign:test_create_campaign_failure_incorrect_objective_type` (59:71) -- `pinterest-python-sdk.integration_tests.ads.test_campaigns.TestGetCampaign:test_get_campaign_success` (78:92) -- `pinterest-python-sdk.integration_tests.ads.test_campaigns.TestGetCampaign:test_get_campaign_failure_invalid_campaign_id` (94:106) -- `pinterest-python-sdk.integration_tests.ads.test_campaigns.TestChangeCampaignStatus:test_pause_campaign_successfully` (113:120) -- `pinterest-python-sdk.integration_tests.ads.test_campaigns.TestChangeCampaignStatus:test_activate_campaign_successfully` (122:129) -- `pinterest-python-sdk.integration_tests.ads.test_campaigns.TestChangeCampaignStatus:test_archive_campaign_successfully` (131:138) -- `pinterest-python-sdk.integration_tests.ads.test_campaigns.TestGetAllCampaigns:test_get_all_campaigns` (146:170) -- `pinterest-python-sdk.integration_tests.ads.test_campaigns.TestGetAllCampaigns:test_list_ad_groups` (172:201) -- `pinterest-python-sdk.integration_tests.ads.test_campaigns.TestGetAllCampaigns:test_get_next_page_of_campaigns` (203:239) -- `pinterest-python-sdk.integration_tests.ads.test_ad_groups.TestCreateAdGroup:test_create_ad_group_success` (16:38) -- `pinterest-python-sdk.integration_tests.ads.test_ad_groups.TestCreateAdGroup:test_get_existing_ad_group` (40:52) -- `pinterest-python-sdk.integration_tests.ads.test_ad_groups.TestUpdateAdGroup:test_update_success` (59:82) -- `pinterest-python-sdk.integration_tests.ads.test_ad_groups.TestUpdateAdGroup:test_update_fail_with_invalid_tracking_urls` (84:107) -- `pinterest-python-sdk.integration_tests.ads.test_ad_groups.TestGetListAdGroup:test_get_list_success` (114:128) -- `pinterest-python-sdk.integration_tests.ads.test_ad_groups.TestGetListAdGroup:test_get_list_with_campaign_ids_success` (130:159) -- `pinterest-python-sdk.integration_tests.ads.test_ad_groups.TestGetListAdGroup:test_get_list_invalid_id_fail` (161:172) -- `pinterest-python-sdk.integration_tests.ads.test_ad_groups.TestListAds:test_list_ads_success` (179:200) -- `pinterest-python-sdk.integration_tests.ads.test_ad_groups.TestListAds:test_enable_auto_targeting` (202:216) -- `pinterest-python-sdk.integration_tests.ads.test_ad_groups.TestListAds:test_disable_auto_targeting` (218:232) -- `pinterest-python-sdk.integration_tests.ads.test_ad_accounts.TestAdAccount:test_create_ad_account` (19:32) -- `pinterest-python-sdk.integration_tests.ads.test_ad_accounts.TestAdAccount:test_get_existing_ad_account` (34:43) -- `pinterest-python-sdk.integration_tests.ads.test_ad_accounts.TestListCampaigns:test_get_all_campaigns` (52:76) -- `pinterest-python-sdk.integration_tests.ads.test_ad_accounts.TestListAudiences:test_get_all_audiences` (85:110) -- `pinterest-python-sdk.integration_tests.ads.test_ad_accounts.TestListCustomerLists:test_list_customer_list_success` (117:138) -- `pinterest-python-sdk.integration_tests.ads.test_audiences.TestAudience:test_create_audience` (18:36) -- `pinterest-python-sdk.integration_tests.ads.test_audiences.TestAudience:test_get_existing_audience` (38:48) -- `pinterest-python-sdk.integration_tests.ads.test_audiences.TestAudience:test_update_audience_with_kwargs` (50:68) -- `pinterest-python-sdk.integration_tests.ads.test_audiences.TestGetAllAudiences:test_get_all_audiences` (76:101) -- `pinterest-python-sdk.integration_tests.ads.test_keywords.TestCreateKeyword:test_create_keyword_success` (20:35) -- `pinterest-python-sdk.integration_tests.ads.test_keywords.TestCreateKeyword:test_create_fail_without_matchtype` (37:48) -- `pinterest-python-sdk.integration_tests.ads.test_keywords.TestGetKeywords:test_get_keywords_success` (55:81) -- `pinterest-python-sdk.integration_tests.ads.test_keywords.TestUpdateKeyword:test_update_keyword_success` (88:112) -- `pinterest-python-sdk.integration_tests.ads.test_customer_lists.TestCreateCustomerList:test_create_customer_list_success` (18:31) -- `pinterest-python-sdk.integration_tests.ads.test_customer_lists.TestCreateCustomerList:test_create_customer_list_failure_incorrect_list_type` (33:44) -- `pinterest-python-sdk.integration_tests.ads.test_customer_lists.TestGetCustomerList:test_get_existing_customer_list_success` (51:61) -- `pinterest-python-sdk.integration_tests.ads.test_customer_lists.TestUpdateCustomerList:test_update_field_with_append_operation_success` (68:88) -- `pinterest-python-sdk.integration_tests.ads.test_customer_lists.TestUpdateCustomerList:test_update_field_with_remove_operation_success` (90:110) -- `pinterest-python-sdk.integration_tests.ads.test_customer_lists.TestUpdateCustomerList:test_update_missing_require_field` (112:127) -- `pinterest-python-sdk.integration_tests.ads.test_customer_lists.TestGetListCustomerList:test_get_all` (134:161) -- `pinterest-python-sdk.integration_tests.ads.test_customer_lists.TestAddRemoveCustomerList:test_add_customer_list` (178:190) -- `pinterest-python-sdk.integration_tests.ads.test_customer_lists.TestAddRemoveCustomerList:test_remove_customer_list` (192:210) -- `pinterest-python-sdk.docs.utils.script:create_file_index` (118:163) -- `pinterest-python-sdk.docs.utils.script:append_doc_to_spec_file` (178:219) -- `pinterest-python-sdk.docs.utils.script:start_doc` (222:234) -- `pinterest-python-sdk.docs.utils.script.sort_index` (65:79) -- `pinterest-python-sdk.docs.utils.script.check_index` (100:115) -- `pinterest-python-sdk.docs.utils.script.truncate_md_extension` (166:175) -- `pinterest-python-sdk.docs.utils.script.remove_module_prefix_from_file` (82:97) -- `pinterest-python-sdk.docs.utils.script.set_up_python_path` (31:35) -- `pinterest-python-sdk.docs.utils.script.remove_old_doc` (38:45) -- `pinterest-python-sdk.docs.utils.script.generate_new_doc` (48:62) + + +- `pinterest/utils/bookmark.py` (1:1) + + + + + From 39a5a64c39f54a521d11c0e9722a35bc075d90fd Mon Sep 17 00:00:00 2001 From: ivanmilevtues Date: Tue, 8 Jul 2025 04:25:46 +0200 Subject: [PATCH 3/3] Added high-level diagrams --- .codeboarding/Advertising API Management.md | 405 --------------- .codeboarding/Core SDK Services.md | 323 ------------ .../Organic Content API Management.md | 217 -------- .codeboarding/SDK Utilities & Testing.md | 473 ------------------ 4 files changed, 1418 deletions(-) delete mode 100644 .codeboarding/Advertising API Management.md delete mode 100644 .codeboarding/Core SDK Services.md delete mode 100644 .codeboarding/Organic Content API Management.md delete mode 100644 .codeboarding/SDK Utilities & Testing.md diff --git a/.codeboarding/Advertising API Management.md b/.codeboarding/Advertising API Management.md deleted file mode 100644 index a64d2b1..0000000 --- a/.codeboarding/Advertising API Management.md +++ /dev/null @@ -1,405 +0,0 @@ -```mermaid - -graph LR - - Ad_Account_Management["Ad Account Management"] - - Campaign_Management["Campaign Management"] - - Ad_Group_Management["Ad Group Management"] - - Ad_Management["Ad Management"] - - Audience_Management["Audience Management"] - - Conversion_Tag_Management["Conversion Tag Management"] - - Conversion_Event_Management["Conversion Event Management"] - - Customer_List_Management["Customer List Management"] - - Keyword_Management["Keyword Management"] - - Base_Model["Base Model"] - - SDK_Client_Management["SDK Client Management"] - - Base_Model -- "uses" --> SDK_Client_Management - - Ad_Account_Management -- "extends" --> Base_Model - - Ad_Account_Management -- "lists" --> Campaign_Management - - Ad_Account_Management -- "lists" --> Audience_Management - - Ad_Account_Management -- "lists" --> Customer_List_Management - - Campaign_Management -- "extends" --> Base_Model - - Campaign_Management -- "lists" --> Ad_Group_Management - - Ad_Group_Management -- "extends" --> Base_Model - - Ad_Group_Management -- "lists" --> Ad_Management - - Ad_Management -- "extends" --> Base_Model - - Conversion_Tag_Management -- "extends" --> Base_Model - - Conversion_Event_Management -- "extends" --> Base_Model - - Conversion_Event_Management -- "uses" --> SDK_Client_Management - - Audience_Management -- "extends" --> Base_Model - - Keyword_Management -- "extends" --> Base_Model - - Customer_List_Management -- "extends" --> Base_Model - -``` - -[![CodeBoarding](https://img.shields.io/badge/Generated%20by-CodeBoarding-9cf?style=flat-square)](https://github.com/CodeBoarding/GeneratedOnBoardings)[![Demo](https://img.shields.io/badge/Try%20our-Demo-blue?style=flat-square)](https://www.codeboarding.org/demo)[![Contact](https://img.shields.io/badge/Contact%20us%20-%20contact@codeboarding.org-lightgrey?style=flat-square)](mailto:contact@codeboarding.org) - - - -## Component Details - - - -The Advertising API Management component is responsible for handling all aspects of advertising within the Pinterest API. It provides a structured way to manage various advertising entities such as ad accounts, campaigns, ad groups, ads, audiences, conversion tags, conversion events, customer lists, and keywords. This component is built upon the foundational 'Base Model' which provides common functionalities for API interactions, and it leverages the 'SDK Client Management' for authenticating and interacting with the Pinterest API. - - - -### Ad Account Management - -Manages Pinterest Ad Accounts, allowing for their creation and retrieval. It also provides methods to list associated entities such as campaigns, audiences, and customer lists within a specific ad account. - - - - - -**Related Classes/Methods**: - - - -- `pinterest.ads.ad_accounts.AdAccount` (22:262) - -- `pinterest.ads.ad_accounts.AdAccount.__init__` (27:59) - -- `pinterest.ads.ad_accounts.AdAccount.create` (102:145) - -- `pinterest.ads.ad_accounts.AdAccount.list_campaigns` (147:192) - -- `pinterest.ads.ad_accounts.AdAccount.list_audiences` (194:229) - -- `pinterest.ads.ad_accounts.AdAccount.list_customer_lists` (231:262) - - - - - -### Campaign Management - -Handles the creation, retrieval, and modification of advertising campaigns. It allows setting budgets, changing campaign statuses (pause, activate, archive), and listing associated ad groups. - - - - - -**Related Classes/Methods**: - - - -- `pinterest.ads.campaigns.Campaign` (21:541) - -- `pinterest.ads.campaigns.Campaign.__init__` (26:70) - -- `pinterest.ads.campaigns.Campaign.create` (159:300) - -- `pinterest.ads.campaigns.Campaign.get_all` (303:365) - -- `pinterest.ads.campaigns.Campaign.set_lifetime_budget` (367:389) - -- `pinterest.ads.campaigns.Campaign.set_daily_budget` (391:413) - -- `pinterest.ads.campaigns.Campaign._change_status` (433:459) - -- `pinterest.ads.campaigns.Campaign.pause` (461:468) - -- `pinterest.ads.campaigns.Campaign.activate` (470:477) - -- `pinterest.ads.campaigns.Campaign.archive` (479:486) - -- `pinterest.ads.campaigns.Campaign.update_fields` (488:512) - -- `pinterest.ads.campaigns.Campaign.list_ad_groups` (514:541) - - - - - -### Ad Group Management - -Responsible for managing ad groups, including their creation, retrieval, and updates. It also provides functionalities to list ads within an ad group and manage auto-targeting settings. - - - - - -**Related Classes/Methods**: - - - -- `pinterest.ads.ad_groups.AdGroup` (21:499) - -- `pinterest.ads.ad_groups.AdGroup.__init__` (27:80) - -- `pinterest.ads.ad_groups.AdGroup.create` (219:351) - -- `pinterest.ads.ad_groups.AdGroup.update_fields` (353:380) - -- `pinterest.ads.ad_groups.AdGroup.get_all` (383:440) - -- `pinterest.ads.ad_groups.AdGroup.list_ads` (442:479) - -- `pinterest.ads.ad_groups.AdGroup.enable_auto_targeting` (481:489) - -- `pinterest.ads.ad_groups.AdGroup.disable_auto_targeting` (491:499) - - - - - -### Ad Management - -Focuses on managing individual advertisements, providing methods for their creation, retrieval, and updates. - - - - - -**Related Classes/Methods**: - - - -- `pinterest.ads.ads.Ad` (19:444) - -- `pinterest.ads.ads.Ad.__init__` (24:81) - -- `pinterest.ads.ads.Ad.create` (239:339) - -- `pinterest.ads.ads.Ad.get_all` (342:418) - -- `pinterest.ads.ads.Ad.update_fields` (420:444) - - - - - -### Audience Management - -Allows for the creation, retrieval, and updating of audiences, which are groups of users targeted for advertising campaigns. - - - - - -**Related Classes/Methods**: - - - -- `pinterest.ads.audiences.Audience` (23:275) - -- `pinterest.ads.audiences.Audience.__init__` (28:50) - -- `pinterest.ads.audiences.Audience.create` (108:189) - -- `pinterest.ads.audiences.Audience.get_all` (192:251) - -- `pinterest.ads.audiences.Audience.update_fields` (253:275) - - - - - -### Conversion Tag Management - -Handles the creation and retrieval of conversion tags, which are used for tracking user actions. It also provides methods to retrieve page visit and OCPM eligible conversion tag events. - - - - - -**Related Classes/Methods**: - - - -- `pinterest.ads.conversion_tags.ConversionTag` (20:314) - -- `pinterest.ads.conversion_tags.ConversionTag.__init__` (25:60) - -- `pinterest.ads.conversion_tags.ConversionTag.create` (108:198) - -- `pinterest.ads.conversion_tags.ConversionTag.get_all` (201:236) - -- `pinterest.ads.conversion_tags.ConversionTag.get_page_visit_conversion_tag_events` (239:278) - -- `pinterest.ads.conversion_tags.ConversionTag.get_ocpm_eligible_conversion_tag_events` (281:314) - - - - - -### Conversion Event Management - -Responsible for sending conversion events to Pinterest, enabling the tracking of specific user actions for advertising purposes. - - - - - -**Related Classes/Methods**: - - - -- `pinterest.ads.conversion_events.Conversion.send_conversion_events` (96:119) - -- `pinterest.ads.conversion_events.Conversion.create_conversion_event` (23:93) - - - - - -### Customer List Management - -Handles customer lists, enabling their creation, retrieval, and updates. It also supports adding and removing records from customer lists. - - - - - -**Related Classes/Methods**: - - - -- `pinterest.ads.customer_lists.CustomerList` (19:283) - -- `pinterest.ads.customer_lists.CustomerList.__init__` (24:48) - -- `pinterest.ads.customer_lists.CustomerList.create` (107:170) - -- `pinterest.ads.customer_lists.CustomerList.update_fields` (172:191) - -- `pinterest.ads.customer_lists.CustomerList.get_all` (194:244) - -- `pinterest.ads.customer_lists.CustomerList.add_record` (246:265) - -- `pinterest.ads.customer_lists.CustomerList.remove_record` (267:283) - - - - - -### Keyword Management - -Manages keywords used in advertising, providing functionalities for their creation, retrieval, and updates. - - - - - -**Related Classes/Methods**: - - - -- `pinterest.ads.keywords.Keyword` (20:230) - -- `pinterest.ads.keywords.Keyword.__init__` (25:46) - -- `pinterest.ads.keywords.Keyword.create` (89:153) - -- `pinterest.ads.keywords.Keyword.get_all` (156:205) - -- `pinterest.ads.keywords.Keyword.update_fields` (207:230) - - - - - -### Base Model - -Provides foundational functionalities for all higher-level Pinterest API models. It includes methods for client retrieval, API instance creation, generic API method calls, and common operations like listing, creating, and updating resources. It also handles populating model fields from API responses. - - - - - -**Related Classes/Methods**: - - - -- `pinterest.utils.base_model.PinterestBaseModel` (15:213) - -- `pinterest.utils.base_model.PinterestBaseModel.__init__` (20:41) - -- `pinterest.utils.base_model.PinterestBaseModel._populate_fields` (52:81) - -- `pinterest.utils.base_model.PinterestBaseModel._get_client` (87:90) - -- `pinterest.utils.base_model.PinterestBaseModel._get_api_instance` (93:98) - -- `pinterest.utils.base_model.PinterestBaseModel._call_method` (101:108) - -- `pinterest.utils.base_model.PinterestBaseModel._list` (111:163) - -- `pinterest.utils.base_model.PinterestBaseModel._create` (166:183) - -- `pinterest.utils.base_model.PinterestBaseModel._update` (185:213) - - - - - -### SDK Client Management - -Initializes and manages the Pinterest SDK client, handling authentication and refreshing access tokens. It serves as the entry point for interacting with the Pinterest API. - - - - - -**Related Classes/Methods**: - - - -- `pinterest.client.PinterestSDKClient` (1:1000) - -- `pinterest.client.PinterestSDKClient.create_client_with_token` (1:1000) - -- `pinterest.client.PinterestSDKClient.create_client_with_refresh_token` (1:1000) - -- `pinterest.client.PinterestSDKClient.set_default_access_token` (1:1000) - -- `pinterest.client.PinterestSDKClient.set_default_refresh_token` (1:1000) - -- `pinterest.client.PinterestSDKClient.create_default_client` (1:1000) - -- `pinterest.client.PinterestSDKClient._init_default_sdk_client_from_env` (1:1000) - -- `pinterest.client.PinterestSDKClient._get_access_token` (1:1000) - -- `pinterest.client.PinterestSDKClient._get_config` (1:1000) - -- `pinterest.client.PinterestSDKClient._reset_default_client` (1:1000) - -- `pinterest.client.PinterestSDKClient._set_default_client` (1:1000) - - - - - - - - - -### [FAQ](https://github.com/CodeBoarding/GeneratedOnBoardings/tree/main?tab=readme-ov-file#faq) \ No newline at end of file diff --git a/.codeboarding/Core SDK Services.md b/.codeboarding/Core SDK Services.md deleted file mode 100644 index 6d6cd7a..0000000 --- a/.codeboarding/Core SDK Services.md +++ /dev/null @@ -1,323 +0,0 @@ -```mermaid - -graph LR - - SDK_Client_Management["SDK Client Management"] - - Base_Model_API_Interaction["Base Model & API Interaction"] - - Error_Handling["Error Handling"] - - Utility_Functions["Utility Functions"] - - Ads_API_Resources["Ads API Resources"] - - Organic_API_Resources["Organic API Resources"] - - Base_Model_API_Interaction -- "uses" --> SDK_Client_Management - - Base_Model_API_Interaction -- "handles pagination with" --> Utility_Functions - - Base_Model_API_Interaction -- "ensures data integrity via" --> Error_Handling - - SDK_Client_Management -- "loads configuration via" --> Utility_Functions - - SDK_Client_Management -- "refreshes tokens via" --> Utility_Functions - - Ads_API_Resources -- "leverages" --> Base_Model_API_Interaction - - Organic_API_Resources -- "leverages" --> Base_Model_API_Interaction - - Ads_API_Resources -- "handles errors via" --> Error_Handling - - Organic_API_Resources -- "handles errors via" --> Error_Handling - -``` - -[![CodeBoarding](https://img.shields.io/badge/Generated%20by-CodeBoarding-9cf?style=flat-square)](https://github.com/CodeBoarding/GeneratedOnBoardings)[![Demo](https://img.shields.io/badge/Try%20our-Demo-blue?style=flat-square)](https://www.codeboarding.org/demo)[![Contact](https://img.shields.io/badge/Contact%20us%20-%20contact@codeboarding.org-lightgrey?style=flat-square)](mailto:contact@codeboarding.org) - - - -## Component Details - - - -The Core SDK Services component provides the foundational services for the Pinterest Python SDK. This includes client initialization, authentication, configuration loading, base model functionalities for API interactions, error handling, and pagination. It forms the backbone for all other API-specific management components, enabling seamless interaction with both Ads and Organic Pinterest APIs. - - - -### SDK Client Management - -This component is responsible for initializing and managing the Pinterest API client. It handles the creation of default clients, clients with specific access tokens, and manages the configuration and access token retrieval processes, including refreshing expired tokens. - - - - - -**Related Classes/Methods**: - - - -- `pinterest.client.PinterestSDKClient` (full file reference) - -- `pinterest.client.PinterestSDKClient.__init__` (full file reference) - -- `pinterest.client.PinterestSDKClient.create_client_with_refresh_token` (full file reference) - -- `pinterest.client.PinterestSDKClient.create_client_with_token` (full file reference) - -- `pinterest.client.PinterestSDKClient.set_default_access_token` (full file reference) - -- `pinterest.client.PinterestSDKClient.set_default_refresh_token` (full file reference) - -- `pinterest.client.PinterestSDKClient.create_default_client` (full file reference) - -- `pinterest.client.PinterestSDKClient._init_default_sdk_client_from_env` (full file reference) - -- `pinterest.client.PinterestSDKClient._get_access_token` (full file reference) - -- `pinterest.client.PinterestSDKClient._get_config` (full file reference) - -- `pinterest.client.PinterestSDKClient._reset_default_client` (full file reference) - -- `pinterest.client.PinterestSDKClient._set_default_client` (full file reference) - - - - - -### Base Model & API Interaction - -This component provides the foundational methods for interacting with the Pinterest API. It defines common operations like creating, listing, and updating resources, and manages the retrieval of the API client and API instance for specific resource interactions. It also includes methods for populating fields from API responses. - - - - - -**Related Classes/Methods**: - - - -- `pinterest.utils.base_model.PinterestBaseModel` (15:213) - -- `pinterest.utils.base_model.PinterestBaseModel.__init__` (20:41) - -- `pinterest.utils.base_model.PinterestBaseModel._get_client` (87:90) - -- `pinterest.utils.base_model.PinterestBaseModel._get_api_instance` (93:98) - -- `pinterest.utils.base_model.PinterestBaseModel._list` (111:163) - -- `pinterest.utils.base_model.PinterestBaseModel._create` (166:183) - -- `pinterest.utils.base_model.PinterestBaseModel._update` (185:213) - -- `pinterest.utils.base_model.PinterestBaseModel._populate_fields` (52:81) - - - - - -### Error Handling - -This component is responsible for verifying API responses and raising SDK-specific exceptions when errors occur during API interactions. It centralizes the error management logic for the SDK. - - - - - -**Related Classes/Methods**: - - - -- `pinterest.utils.error_handling.verify_api_response` (6:49) - -- `pinterest.utils.sdk_exceptions.SdkException` (5:28) - - - - - -### Utility Functions - -This component provides various utility functions that support the SDK's operations. This includes managing bookmarks for pagination, refreshing access tokens, and loading configuration settings from JSON files. - - - - - -**Related Classes/Methods**: - - - -- `pinterest.utils.load_json_config.load_json_config` (13:24) - -- `pinterest.utils.refresh_access_token.get_new_access_token` (12:65) - -- `pinterest.utils.bookmark.Bookmark` (8:61) - -- `pinterest.utils.bookmark.Bookmark.get_next` (37:52) - - - - - -### Ads API Resources - -This component encompasses all classes that represent specific resources within the Pinterest Ads API. These classes provide methods for creating, retrieving, updating, and managing various ad-related entities such as customer lists, ad groups, ads, keywords, audiences, conversion tags, campaigns, ad accounts, and conversion events. They leverage the Base Model for underlying API interactions. - - - - - -**Related Classes/Methods**: - - - -- `pinterest.ads.customer_lists.CustomerList` (19:283) - -- `pinterest.ads.customer_lists.CustomerList.create` (107:170) - -- `pinterest.ads.customer_lists.CustomerList.update_fields` (172:191) - -- `pinterest.ads.customer_lists.CustomerList.get_all` (194:244) - -- `pinterest.ads.customer_lists.CustomerList.add_record` (246:265) - -- `pinterest.ads.customer_lists.CustomerList.remove_record` (267:283) - -- `pinterest.ads.ad_groups.AdGroup` (21:499) - -- `pinterest.ads.ad_groups.AdGroup.create` (219:351) - -- `pinterest.ads.ad_groups.AdGroup.update_fields` (353:380) - -- `pinterest.ads.ad_groups.AdGroup.get_all` (383:440) - -- `pinterest.ads.ad_groups.AdGroup.enable_auto_targeting` (481:489) - -- `pinterest.ads.ad_groups.AdGroup.disable_auto_targeting` (491:499) - -- `pinterest.ads.ads.Ad` (19:444) - -- `pinterest.ads.ads.Ad.create` (239:339) - -- `pinterest.ads.ads.Ad.get_all` (342:418) - -- `pinterest.ads.ads.Ad.update_fields` (420:444) - -- `pinterest.ads.keywords.Keyword` (20:230) - -- `pinterest.ads.keywords.Keyword.create` (89:153) - -- `pinterest.ads.keywords.Keyword.get_all` (156:205) - -- `pinterest.ads.keywords.Keyword.update_fields` (207:230) - -- `pinterest.ads.audiences.Audience` (23:275) - -- `pinterest.ads.audiences.Audience.create` (108:189) - -- `pinterest.ads.audiences.Audience.get_all` (192:251) - -- `pinterest.ads.audiences.Audience.update_fields` (253:275) - -- `pinterest.ads.conversion_tags.ConversionTag` (20:314) - -- `pinterest.ads.conversion_tags.ConversionTag.create` (108:198) - -- `pinterest.ads.conversion_tags.ConversionTag.get_all` (201:236) - -- `pinterest.ads.conversion_tags.ConversionTag.get_page_visit_conversion_tag_events` (239:278) - -- `pinterest.ads.conversion_tags.ConversionTag.get_ocpm_eligible_conversion_tag_events` (281:314) - -- `pinterest.ads.campaigns.Campaign` (21:541) - -- `pinterest.ads.campaigns.Campaign.create` (159:300) - -- `pinterest.ads.campaigns.Campaign.get_all` (303:365) - -- `pinterest.ads.campaigns.Campaign.set_lifetime_budget` (367:389) - -- `pinterest.ads.campaigns.Campaign.set_daily_budget` (391:413) - -- `pinterest.ads.campaigns.Campaign._change_status` (433:459) - -- `pinterest.ads.campaigns.Campaign.pause` (461:468) - -- `pinterest.ads.campaigns.Campaign.activate` (470:477) - -- `pinterest.ads.campaigns.Campaign.archive` (479:486) - -- `pinterest.ads.campaigns.Campaign.update_fields` (488:512) - -- `pinterest.ads.ad_accounts.AdAccount` (22:262) - -- `pinterest.ads.ad_accounts.AdAccount.create` (102:145) - -- `pinterest.ads.conversion_events.Conversion` (16:119) - -- `pinterest.ads.conversion_events.Conversion.send_conversion_events` (96:119) - - - - - -### Organic API Resources - -This component includes all classes that represent specific resources within the Pinterest Organic API. These classes provide methods for creating, retrieving, updating, and deleting organic entities such as boards, board sections, and pins. They also rely on the Base Model for core API interactions. - - - - - -**Related Classes/Methods**: - - - -- `pinterest.organic.boards.BoardSection` (22:189) - -- `pinterest.organic.boards.BoardSection.create` (52:80) - -- `pinterest.organic.boards.BoardSection.get_all` (84:128) - -- `pinterest.organic.boards.BoardSection.update` (131:162) - -- `pinterest.organic.boards.BoardSection.delete` (165:189) - -- `pinterest.organic.boards.Board` (192:605) - -- `pinterest.organic.boards.Board.create` (292:331) - -- `pinterest.organic.boards.Board.delete` (334:359) - -- `pinterest.organic.boards.Board.get_all` (362:416) - -- `pinterest.organic.boards.Board.update_fields` (418:443) - -- `pinterest.organic.boards.Board.make_public` (445:452) - -- `pinterest.organic.boards.Board.make_secret` (454:461) - -- `pinterest.organic.boards.Board.list_pins` (556:605) - -- `pinterest.organic.pins.Pin` (16:392) - -- `pinterest.organic.pins.Pin.create` (179:258) - -- `pinterest.organic.pins.Pin.delete` (261:286) - -- `pinterest.organic.pins.Pin.save` (288:315) - -- `pinterest.organic.pins.Pin.get_all` (318:392) - - - - - - - - - -### [FAQ](https://github.com/CodeBoarding/GeneratedOnBoardings/tree/main?tab=readme-ov-file#faq) \ No newline at end of file diff --git a/.codeboarding/Organic Content API Management.md b/.codeboarding/Organic Content API Management.md deleted file mode 100644 index 2d62276..0000000 --- a/.codeboarding/Organic Content API Management.md +++ /dev/null @@ -1,217 +0,0 @@ -```mermaid - -graph LR - - Pinterest_Client_Core["Pinterest Client Core"] - - Base_Model_Abstraction["Base Model Abstraction"] - - API_Response_Handling["API Response Handling"] - - Organic_Content_API_Management["Organic Content API Management"] - - Pagination_and_Bookmarking["Pagination and Bookmarking"] - - Base_Model_Abstraction -- "depends on" --> Pinterest_Client_Core - - Base_Model_Abstraction -- "utilizes" --> API_Response_Handling - - Base_Model_Abstraction -- "integrates" --> Pagination_and_Bookmarking - - Organic_Content_API_Management -- "extends" --> Base_Model_Abstraction - - Organic_Content_API_Management -- "depends on" --> Pinterest_Client_Core - - Organic_Content_API_Management -- "utilizes" --> API_Response_Handling - - Organic_Content_API_Management -- "integrates" --> Pagination_and_Bookmarking - - Pinterest_Client_Core -- "depends on" --> API_Response_Handling - - Pagination_and_Bookmarking -- "depends on" --> Pinterest_Client_Core - -``` - -[![CodeBoarding](https://img.shields.io/badge/Generated%20by-CodeBoarding-9cf?style=flat-square)](https://github.com/CodeBoarding/GeneratedOnBoardings)[![Demo](https://img.shields.io/badge/Try%20our-Demo-blue?style=flat-square)](https://www.codeboarding.org/demo)[![Contact](https://img.shields.io/badge/Contact%20us%20-%20contact@codeboarding.org-lightgrey?style=flat-square)](mailto:contact@codeboarding.org) - - - -## Component Details - - - -This architecture outlines the core components of the Pinterest Python SDK, focusing on how it manages client connections, handles API interactions, and provides structured access to organic content like boards and pins. The Pinterest Client Core establishes the fundamental connection, while the Base Model Abstraction provides a standardized interface for all API resources. API Response Handling ensures robust error management, and Pagination and Bookmarking facilitates efficient data retrieval. The Organic Content API Management component specifically leverages these core services to offer comprehensive functionalities for managing Pinterest organic content. - - - -### Pinterest Client Core - -Manages the fundamental aspects of the Pinterest SDK client, including client creation, configuration, and access token handling. It serves as the entry point for establishing a connection to the Pinterest API. - - - - - -**Related Classes/Methods**: - - - -- `pinterest-python-sdk.pinterest.client.PinterestSDKClient` (full file reference) - -- `pinterest-python-sdk.pinterest.client.PinterestSDKClient.__init__` (full file reference) - -- `pinterest-python-sdk.pinterest.client.PinterestSDKClient.create_default_client` (full file reference) - -- `pinterest-python-sdk.pinterest.client.PinterestSDKClient._init_default_sdk_client_from_env` (full file reference) - -- `pinterest-python-sdk.pinterest.client.PinterestSDKClient._get_config` (full file reference) - -- `pinterest-python-sdk.pinterest.client.PinterestSDKClient._get_access_token` (full file reference) - -- `pinterest-python-sdk.pinterest.client.PinterestSDKClient._set_default_client` (full file reference) - -- `pinterest.utils.refresh_access_token.get_new_access_token` (12:65) - - - - - -### Base Model Abstraction - -Provides a generic base for all Pinterest API models, encapsulating common functionalities like client and API instance retrieval, and standardized methods for listing, creating, and updating resources. It handles the population of model attributes from API responses. - - - - - -**Related Classes/Methods**: - - - -- `pinterest-python-sdk.pinterest.utils.base_model.PinterestBaseModel` (15:213) - -- `pinterest-python-sdk.pinterest.utils.base_model.PinterestBaseModel.__init__` (20:41) - -- `pinterest-python-sdk.pinterest.utils.base_model.PinterestBaseModel._get_client` (87:90) - -- `pinterest-python-sdk.pinterest.utils.base_model.PinterestBaseModel._get_api_instance` (93:98) - -- `pinterest-python-sdk.pinterest.utils.base_model.PinterestBaseModel._call_method` (101:108) - -- `pinterest-python-sdk.pinterest.utils.base_model.PinterestBaseModel._list` (111:163) - -- `pinterest-python-sdk.pinterest.utils.base_model.PinterestBaseModel._create` (166:183) - -- `pinterest-python-sdk.pinterest.utils.base_model.PinterestBaseModel._update` (185:213) - -- `pinterest-python-sdk.pinterest.utils.base_model.PinterestBaseModel._populate_fields` (52:81) - - - - - -### API Response Handling - -Centralized component for validating API responses and managing SDK-specific exceptions, ensuring robust error handling across the SDK. - - - - - -**Related Classes/Methods**: - - - -- `pinterest-python-sdk.pinterest.utils.error_handling.verify_api_response` (6:49) - -- `pinterest.utils.sdk_exceptions.SdkException` (5:28) - - - - - -### Organic Content API Management - -Provides functionalities for managing organic content on Pinterest, including boards, board sections, and pins. It relies on the Core SDK Services for interacting with the Pinterest API. - - - - - -**Related Classes/Methods**: - - - -- `pinterest.organic.boards.Board` (192:605) - -- `pinterest.organic.boards.Board.__init__` (196:231) - -- `pinterest.organic.boards.Board.create` (292:331) - -- `pinterest.organic.boards.Board.delete` (334:359) - -- `pinterest.organic.boards.Board.get_all` (362:416) - -- `pinterest.organic.boards.Board.update_fields` (418:443) - -- `pinterest.organic.boards.Board.make_public` (445:452) - -- `pinterest.organic.boards.Board.make_secret` (454:461) - -- `pinterest.organic.boards.Board.create_section` (463:480) - -- `pinterest.organic.boards.Board.update_section` (482:501) - -- `pinterest.organic.boards.Board.delete_section` (503:520) - -- `pinterest.organic.boards.Board.list_sections` (522:554) - -- `pinterest.organic.boards.Board.list_pins` (556:605) - -- `pinterest.organic.boards.BoardSection.create` (52:80) - -- `pinterest.organic.boards.BoardSection.get_all` (84:128) - -- `pinterest.organic.boards.BoardSection.update` (131:162) - -- `pinterest.organic.boards.BoardSection.delete` (165:189) - -- `pinterest.organic.pins.Pin` (16:392) - -- `pinterest.organic.pins.Pin.__init__` (20:78) - -- `pinterest.organic.pins.Pin.create` (179:258) - -- `pinterest.organic.pins.Pin.delete` (261:286) - -- `pinterest.organic.pins.Pin.save` (288:315) - -- `pinterest.organic.pins.Pin.get_all` (318:392) - - - - - -### Pagination and Bookmarking - -Provides utility for handling pagination and bookmarking mechanisms in API responses, enabling efficient retrieval of large datasets. - - - - - -**Related Classes/Methods**: - - - -- `pinterest.utils.bookmark.Bookmark` (8:61) - - - - - - - - - -### [FAQ](https://github.com/CodeBoarding/GeneratedOnBoardings/tree/main?tab=readme-ov-file#faq) \ No newline at end of file diff --git a/.codeboarding/SDK Utilities & Testing.md b/.codeboarding/SDK Utilities & Testing.md deleted file mode 100644 index f3b176f..0000000 --- a/.codeboarding/SDK Utilities & Testing.md +++ /dev/null @@ -1,473 +0,0 @@ -```mermaid - -graph LR - - SDK_Utilities_Testing["SDK Utilities & Testing"] - - PinterestSDKClient["PinterestSDKClient"] - - PinterestBaseModel["PinterestBaseModel"] - - Campaign["Campaign"] - - AdGroup["AdGroup"] - - Ad["Ad"] - - ConversionTag["ConversionTag"] - - ConversionEvent["ConversionEvent"] - - AdAccount["AdAccount"] - - Audience["Audience"] - - Keyword["Keyword"] - - CustomerList["CustomerList"] - - Board["Board"] - - Pin["Pin"] - - SDK_Utilities_Testing -- "tests" --> PinterestSDKClient - - SDK_Utilities_Testing -- "tests" --> PinterestBaseModel - - SDK_Utilities_Testing -- "tests" --> Campaign - - SDK_Utilities_Testing -- "tests" --> AdGroup - - SDK_Utilities_Testing -- "tests" --> Ad - - SDK_Utilities_Testing -- "tests" --> ConversionTag - - SDK_Utilities_Testing -- "tests" --> ConversionEvent - - SDK_Utilities_Testing -- "tests" --> AdAccount - - SDK_Utilities_Testing -- "tests" --> Audience - - SDK_Utilities_Testing -- "tests" --> Keyword - - SDK_Utilities_Testing -- "tests" --> CustomerList - - SDK_Utilities_Testing -- "tests" --> Board - - SDK_Utilities_Testing -- "tests" --> Pin - -``` - -[![CodeBoarding](https://img.shields.io/badge/Generated%20by-CodeBoarding-9cf?style=flat-square)](https://github.com/CodeBoarding/GeneratedOnBoardings)[![Demo](https://img.shields.io/badge/Try%20our-Demo-blue?style=flat-square)](https://www.codeboarding.org/demo)[![Contact](https://img.shields.io/badge/Contact%20us%20-%20contact@codeboarding.org-lightgrey?style=flat-square)](mailto:contact@codeboarding.org) - - - -## Component Details - - - -The SDK Utilities & Testing component serves a dual purpose: it provides a comprehensive suite of integration tests to validate the functionality and reliability of various Pinterest SDK components, ensuring that API interactions behave as expected. Additionally, it includes utility scripts crucial for the generation and management of documentation, streamlining the process of keeping the SDK's documentation up-to-date and accurate. - - - -### SDK Utilities & Testing - -Encompasses the integration test suite for validating SDK functionality and utility scripts for generating and managing documentation. - - - - - -**Related Classes/Methods**: - - - -- `pinterest-python-sdk.integration_tests.clean_organic_data:test_delete_organic_data` (9:25) - -- `pinterest-python-sdk.integration_tests.test_pinterest_base_model.TestPinterestBaseModel:test_error_message_for_accessing_non_existant_attribute` (14:27) - -- `pinterest-python-sdk.integration_tests.test_pinterest_base_model.TestPinterestBaseModel:test_equality_of_campaign_models` (29:47) - -- `pinterest-python-sdk.integration_tests.test_pinterest_base_model.TestPinterestBaseModel:test_set_board_attributes_failure` (49:60) - -- `pinterest-python-sdk.integration_tests.base_test.BaseTestCase:test_client` (41:45) - -- `pinterest-python-sdk.integration_tests.ads.test_ads.TestCreateAd:test_create_ad_success` (20:38) - -- `pinterest-python-sdk.integration_tests.ads.test_ads.TestCreateAd:test_create_ad_failure_without_creative_type` (40:54) - -- `pinterest-python-sdk.integration_tests.ads.test_ads.TestCreateAd:test_create_ad_failure_with_incorrect_creative_type` (56:71) - -- `pinterest-python-sdk.integration_tests.ads.test_ads.TestGetAd:test_get_ad_success` (77:88) - -- `pinterest-python-sdk.integration_tests.ads.test_ads.TestGetAd:test_get_ad_fail_with_invalid_id` (90:102) - -- `pinterest-python-sdk.integration_tests.ads.test_ads.TestGetListAd:test_get_all_success` (109:122) - -- `pinterest-python-sdk.integration_tests.ads.test_ads.TestGetListAd:test_get_all_with_invalid_ids_fail` (124:135) - -- `pinterest-python-sdk.integration_tests.ads.test_ads.TestUpdateAds:test_update_ad_success` (142:162) - -- `pinterest-python-sdk.integration_tests.ads.test_conversion_tags.TestCreateConversionTag:test_create_conversion_tag_success` (15:34) - -- `pinterest-python-sdk.integration_tests.ads.test_conversion_tags.TestCreateConversionTag:test_create_conversion_tag_with_configs_success` (36:56) - -- `pinterest-python-sdk.integration_tests.ads.test_conversion_tags.TestGetConversionTag:test_get_conversion_tag_success` (63:76) - -- `pinterest-python-sdk.integration_tests.ads.test_conversion_tags.TestGetListConversionTag:test_get_list_success` (82:102) - -- `pinterest-python-sdk.integration_tests.ads.test_conversion_tags.TestGetPageVsitConversionTag:test_get_page_visit_success` (109:118) - -- `pinterest-python-sdk.integration_tests.ads.test_conversion_tags.TestGetOcpmEligibleConversionTag:test_get_ocpm_eligible_conversion_tags` (124:133) - -- `pinterest-python-sdk.integration_tests.ads.test_conversion_events.TestSendConversionEvent:test_send_conversion_success` (21:61) - -- `pinterest-python-sdk.integration_tests.ads.test_conversion_events.TestSendConversionEvent:test_send_conversion_fail` (63:95) - -- `pinterest-python-sdk.integration_tests.ads.test_campaigns.TestCreateCampaign:test_create_campaign_success` (24:40) - -- `pinterest-python-sdk.integration_tests.ads.test_campaigns.TestCreateCampaign:test_create_campaign_failure_incorrect_objective_type` (59:71) - -- `pinterest-python-sdk.integration_tests.ads.test_campaigns.TestGetCampaign:test_get_campaign_success` (78:92) - -- `pinterest-python-sdk.integration_tests.ads.test_campaigns.TestGetCampaign:test_get_campaign_failure_invalid_campaign_id` (94:106) - -- `pinterest-python-sdk.integration_tests.ads.test_campaigns.TestChangeCampaignStatus:test_pause_campaign_successfully` (113:120) - -- `pinterest-python-sdk.integration_tests.ads.test_campaigns.TestChangeCampaignStatus:test_activate_campaign_successfully` (122:129) - -- `pinterest-python-sdk.integration_tests.ads.test_campaigns.TestChangeCampaignStatus:test_archive_campaign_successfully` (131:138) - -- `pinterest-python-sdk.integration_tests.ads.test_campaigns.TestGetAllCampaigns:test_get_all_campaigns` (146:170) - -- `pinterest-python-sdk.integration_tests.ads.test_campaigns.TestGetAllCampaigns:test_list_ad_groups` (172:201) - -- `pinterest-python-sdk.integration_tests.ads.test_campaigns.TestGetAllCampaigns:test_get_next_page_of_campaigns` (203:239) - -- `pinterest-python-sdk.integration_tests.ads.test_ad_groups.TestCreateAdGroup:test_create_ad_group_success` (16:38) - -- `pinterest-python-sdk.integration_tests.ads.test_ad_groups.TestCreateAdGroup:test_get_existing_ad_group` (40:52) - -- `pinterest-python-sdk.integration_tests.ads.test_ad_groups.TestUpdateAdGroup:test_update_success` (59:82) - -- `pinterest-python-sdk.integration_tests.ads.test_ad_groups.TestUpdateAdGroup:test_update_fail_with_invalid_tracking_urls` (84:107) - -- `pinterest-python-sdk.integration_tests.ads.test_ad_groups.TestGetListAdGroup:test_get_list_success` (114:128) - -- `pinterest-python-sdk.integration_tests.ads.test_ad_groups.TestGetListAdGroup:test_get_list_with_campaign_ids_success` (130:159) - -- `pinterest-python-sdk.integration_tests.ads.test_ad_groups.TestGetListAdGroup:test_get_list_invalid_id_fail` (161:172) - -- `pinterest-python-sdk.integration_tests.ads.test_ad_groups.TestListAds:test_list_ads_success` (179:200) - -- `pinterest-python-sdk.integration_tests.ads.test_ad_groups.TestListAds:test_enable_auto_targeting` (202:216) - -- `pinterest-python-sdk.integration_tests.ads.test_ad_groups.TestListAds:test_disable_auto_targeting` (218:232) - -- `pinterest-python-sdk.integration_tests.ads.test_ad_accounts.TestAdAccount:test_create_ad_account` (19:32) - -- `pinterest-python-sdk.integration_tests.ads.test_ad_accounts.TestAdAccount:test_get_existing_ad_account` (34:43) - -- `pinterest-python-sdk.integration_tests.ads.test_ad_accounts.TestListCampaigns:test_get_all_campaigns` (52:76) - -- `pinterest-python-sdk.integration_tests.ads.test_ad_accounts.TestListAudiences:test_get_all_audiences` (85:110) - -- `pinterest-python-sdk.integration_tests.ads.test_ad_accounts.TestListCustomerLists:test_list_customer_list_success` (117:138) - -- `pinterest-python-sdk.integration_tests.ads.test_audiences.TestAudience:test_create_audience` (18:36) - -- `pinterest-python-sdk.integration_tests.ads.test_audiences.TestAudience:test_get_existing_audience` (38:48) - -- `pinterest-python-sdk.integration_tests.ads.test_audiences.TestAudience:test_update_audience_with_kwargs` (50:68) - -- `pinterest-python-sdk.integration_tests.ads.test_audiences.TestGetAllAudiences:test_get_all_audiences` (76:101) - -- `pinterest-python-sdk.integration_tests.ads.test_keywords.TestCreateKeyword:test_create_keyword_success` (20:35) - -- `pinterest-python-sdk.integration_tests.ads.test_keywords.TestCreateKeyword:test_create_fail_without_matchtype` (37:48) - -- `pinterest-python-sdk.integration_tests.ads.test_keywords.TestGetKeywords:test_get_keywords_success` (55:81) - -- `pinterest-python-sdk.integration_tests.ads.test_keywords.TestUpdateKeyword:test_update_keyword_success` (88:112) - -- `pinterest-python-sdk.integration_tests.ads.test_customer_lists.TestCreateCustomerList:test_create_customer_list_success` (18:31) - -- `pinterest-python-sdk.integration_tests.ads.test_customer_lists.TestCreateCustomerList:test_create_customer_list_failure_incorrect_list_type` (33:44) - -- `pinterest-python-sdk.integration_tests.ads.test_customer_lists.TestGetCustomerList:test_get_existing_customer_list_success` (51:61) - -- `pinterest-python-sdk.integration_tests.ads.test_customer_lists.TestUpdateCustomerList:test_update_field_with_append_operation_success` (68:88) - -- `pinterest-python-sdk.integration_tests.ads.test_customer_lists.TestUpdateCustomerList:test_update_field_with_remove_operation_success` (90:110) - -- `pinterest-python-sdk.integration_tests.ads.test_customer_lists.TestUpdateCustomerList:test_update_missing_require_field` (112:127) - -- `pinterest-python-sdk.integration_tests.ads.test_customer_lists.TestGetListCustomerList:test_get_all` (134:161) - -- `pinterest-python-sdk.integration_tests.ads.test_customer_lists.TestAddRemoveCustomerList:test_add_customer_list` (178:190) - -- `pinterest-python-sdk.integration_tests.ads.test_customer_lists.TestAddRemoveCustomerList:test_remove_customer_list` (192:210) - -- `pinterest-python-sdk.docs.utils.script:create_file_index` (118:163) - -- `pinterest-python-sdk.docs.utils.script:append_doc_to_spec_file` (178:219) - -- `pinterest-python-sdk.docs.utils.script:start_doc` (222:234) - -- `pinterest-python-sdk.docs.utils.script.sort_index` (65:79) - -- `pinterest-python-sdk.docs.utils.script.check_index` (100:115) - -- `pinterest-python-sdk.docs.utils.script.truncate_md_extension` (166:175) - -- `pinterest-python-sdk.docs.utils.script.remove_module_prefix_from_file` (82:97) - -- `pinterest-python-sdk.docs.utils.script.set_up_python_path` (31:35) - -- `pinterest-python-sdk.docs.utils.script.remove_old_doc` (38:45) - -- `pinterest-python-sdk.docs.utils.script.generate_new_doc` (48:62) - - - - - -### PinterestSDKClient - -The core client for interacting with the Pinterest API. It handles client creation, access token management, and acts as the entry point for API calls. - - - - - -**Related Classes/Methods**: - - - -- `pinterest-python-sdk.pinterest.client.PinterestSDKClient` (full file reference) - - - - - -### PinterestBaseModel - -An abstract base class that provides common functionalities for all higher-level Pinterest API models. It includes methods for getting the client, creating API instances, making API calls, listing, creating, and updating resources, and populating model fields. - - - - - -**Related Classes/Methods**: - - - -- `pinterest-python-sdk.pinterest.utils.base_model.PinterestBaseModel` (15:213) - - - - - -### Campaign - -Represents a Pinterest advertising campaign. This component allows users to create, retrieve, update, and manage the status (pause, activate, archive) of campaigns. It also provides functionality to list associated ad groups. - - - - - -**Related Classes/Methods**: - - - -- `pinterest-python-sdk.pinterest.ads.campaigns.Campaign` (21:541) - - - - - -### AdGroup - -Represents an ad group within a Pinterest campaign. This component enables the creation, retrieval, and updating of ad groups, as well as listing ads associated with them and managing auto-targeting settings. - - - - - -**Related Classes/Methods**: - - - -- `pinterest-python-sdk.pinterest.ads.ad_groups.AdGroup` (21:499) - - - - - -### Ad - -Represents an individual advertisement on Pinterest. This component provides methods for creating, retrieving, and updating ads. - - - - - -**Related Classes/Methods**: - - - -- `pinterest-python-sdk.pinterest.ads.ads.Ad` (19:444) - - - - - -### ConversionTag - -Manages Pinterest conversion tags, which are used to track user actions. This component allows for the creation and retrieval of conversion tags and related events. - - - - - -**Related Classes/Methods**: - - - -- `pinterest-python-sdk.pinterest.ads.conversion_tags.ConversionTag` (20:314) - - - - - -### ConversionEvent - -Handles the sending of conversion events to Pinterest, allowing advertisers to track specific user actions. - - - - - -**Related Classes/Methods**: - - - -- `pinterest-python-sdk.pinterest.ads.conversion_events.Conversion` (16:119) - - - - - -### AdAccount - -Represents a Pinterest advertising account. This component provides functionalities to create new ad accounts and list associated campaigns, audiences, and customer lists. - - - - - -**Related Classes/Methods**: - - - -- `pinterest-python-sdk.pinterest.ads.ad_accounts.AdAccount` (22:262) - - - - - -### Audience - -Manages custom audiences for advertising campaigns. This component supports the creation, retrieval, and updating of audience definitions. - - - - - -**Related Classes/Methods**: - - - -- `pinterest-python-sdk.pinterest.ads.audiences.Audience` (23:275) - - - - - -### Keyword - -Manages keywords used for targeting in advertising campaigns. This component allows for the creation, retrieval, and updating of keywords. - - - - - -**Related Classes/Methods**: - - - -- `pinterest-python-sdk.pinterest.ads.keywords.Keyword` (20:230) - - - - - -### CustomerList - -Manages customer lists for audience targeting. This component provides methods to create, retrieve, update, add, and remove records from customer lists. - - - - - -**Related Classes/Methods**: - - - -- `pinterest-python-sdk.pinterest.ads.customer_lists.CustomerList` (19:283) - - - - - -### Board - -Represents a Pinterest board, which is a collection of pins. This component enables the creation, deletion, retrieval, and updating of boards, as well as managing board sections and listing pins within the board. - - - - - -**Related Classes/Methods**: - - - -- `pinterest-python-sdk.pinterest.organic.boards.Board` (192:605) - - - - - -### Pin - -Represents a Pinterest pin, which is an image or video. This component provides functionalities to create, delete, retrieve, and save pins. - - - - - -**Related Classes/Methods**: - - - -- `pinterest-python-sdk.pinterest.organic.pins.Pin` (16:392) - - - - - - - - - -### [FAQ](https://github.com/CodeBoarding/GeneratedOnBoardings/tree/main?tab=readme-ov-file#faq) \ No newline at end of file