python-amazon-ad-api 1.0.8__tar.gz → 1.1.0__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {python_amazon_ad_api-1.0.8 → python_amazon_ad_api-1.1.0}/PKG-INFO +1 -1
- {python_amazon_ad_api-1.0.8 → python_amazon_ad_api-1.1.0}/ad_api/api/sb/__init__.py +0 -4
- {python_amazon_ad_api-1.0.8 → python_amazon_ad_api-1.1.0}/ad_api/api/sb/bid_recommendations.py +9 -1
- {python_amazon_ad_api-1.0.8 → python_amazon_ad_api-1.1.0}/ad_api/api/sb/brands.py +8 -1
- python_amazon_ad_api-1.1.0/ad_api/api/sb/keywords_recommendations.py +16 -0
- {python_amazon_ad_api-1.0.8 → python_amazon_ad_api-1.1.0}/ad_api/api/sb/landing_page_asins.py +8 -1
- {python_amazon_ad_api-1.0.8 → python_amazon_ad_api-1.1.0}/ad_api/api/sb/negative_keywords.py +8 -1
- {python_amazon_ad_api-1.0.8 → python_amazon_ad_api-1.1.0}/ad_api/api/sb/negative_product_targeting.py +9 -1
- {python_amazon_ad_api-1.0.8 → python_amazon_ad_api-1.1.0}/ad_api/api/sb/reports.py +10 -2
- python_amazon_ad_api-1.1.0/ad_api/api/sb/stores.py +89 -0
- python_amazon_ad_api-1.1.0/ad_api/version.py +1 -0
- {python_amazon_ad_api-1.0.8 → python_amazon_ad_api-1.1.0}/python_amazon_ad_api.egg-info/PKG-INFO +1 -1
- {python_amazon_ad_api-1.0.8 → python_amazon_ad_api-1.1.0}/python_amazon_ad_api.egg-info/SOURCES.txt +0 -2
- {python_amazon_ad_api-1.0.8 → python_amazon_ad_api-1.1.0}/setup.cfg +1 -1
- {python_amazon_ad_api-1.0.8 → python_amazon_ad_api-1.1.0}/setup.py +1 -1
- python_amazon_ad_api-1.0.8/ad_api/api/sb/keywords_recommendations.py +0 -7
- python_amazon_ad_api-1.0.8/ad_api/api/sb/moderation.py +0 -18
- python_amazon_ad_api-1.0.8/ad_api/api/sb/snapshots.py +0 -47
- python_amazon_ad_api-1.0.8/ad_api/api/sb/stores.py +0 -44
- python_amazon_ad_api-1.0.8/ad_api/version.py +0 -1
- {python_amazon_ad_api-1.0.8 → python_amazon_ad_api-1.1.0}/LICENSE +0 -0
- {python_amazon_ad_api-1.0.8 → python_amazon_ad_api-1.1.0}/README.md +0 -0
- {python_amazon_ad_api-1.0.8 → python_amazon_ad_api-1.1.0}/ad_api/__init__.py +0 -0
- {python_amazon_ad_api-1.0.8 → python_amazon_ad_api-1.1.0}/ad_api/api/__init__.py +0 -0
- {python_amazon_ad_api-1.0.8 → python_amazon_ad_api-1.1.0}/ad_api/api/account.py +0 -0
- {python_amazon_ad_api-1.0.8 → python_amazon_ad_api-1.1.0}/ad_api/api/advertising_test_account.py +0 -0
- {python_amazon_ad_api-1.0.8 → python_amazon_ad_api-1.1.0}/ad_api/api/attribution.py +0 -0
- {python_amazon_ad_api-1.0.8 → python_amazon_ad_api-1.1.0}/ad_api/api/audiences.py +0 -0
- {python_amazon_ad_api-1.0.8 → python_amazon_ad_api-1.1.0}/ad_api/api/billing.py +0 -0
- {python_amazon_ad_api-1.0.8 → python_amazon_ad_api-1.1.0}/ad_api/api/brand_metrics.py +0 -0
- {python_amazon_ad_api-1.0.8 → python_amazon_ad_api-1.1.0}/ad_api/api/creative_assets.py +0 -0
- {python_amazon_ad_api-1.0.8 → python_amazon_ad_api-1.1.0}/ad_api/api/eligibility.py +0 -0
- {python_amazon_ad_api-1.0.8 → python_amazon_ad_api-1.1.0}/ad_api/api/exports.py +0 -0
- {python_amazon_ad_api-1.0.8 → python_amazon_ad_api-1.1.0}/ad_api/api/history.py +0 -0
- {python_amazon_ad_api-1.0.8 → python_amazon_ad_api-1.1.0}/ad_api/api/insights.py +0 -0
- {python_amazon_ad_api-1.0.8 → python_amazon_ad_api-1.1.0}/ad_api/api/invoices.py +0 -0
- {python_amazon_ad_api-1.0.8 → python_amazon_ad_api-1.1.0}/ad_api/api/localization.py +0 -0
- {python_amazon_ad_api-1.0.8 → python_amazon_ad_api-1.1.0}/ad_api/api/manager_accounts.py +0 -0
- {python_amazon_ad_api-1.0.8 → python_amazon_ad_api-1.1.0}/ad_api/api/metadata.py +0 -0
- {python_amazon_ad_api-1.0.8 → python_amazon_ad_api-1.1.0}/ad_api/api/portfolios.py +0 -0
- {python_amazon_ad_api-1.0.8 → python_amazon_ad_api-1.1.0}/ad_api/api/portfolios_v3.py +0 -0
- {python_amazon_ad_api-1.0.8 → python_amazon_ad_api-1.1.0}/ad_api/api/profiles.py +0 -0
- {python_amazon_ad_api-1.0.8 → python_amazon_ad_api-1.1.0}/ad_api/api/recommendations.py +0 -0
- {python_amazon_ad_api-1.0.8 → python_amazon_ad_api-1.1.0}/ad_api/api/reports.py +0 -0
- {python_amazon_ad_api-1.0.8 → python_amazon_ad_api-1.1.0}/ad_api/api/sb/ad_creatives_v4.py +0 -0
- {python_amazon_ad_api-1.0.8 → python_amazon_ad_api-1.1.0}/ad_api/api/sb/ad_groups.py +0 -0
- {python_amazon_ad_api-1.0.8 → python_amazon_ad_api-1.1.0}/ad_api/api/sb/ad_groups_v4.py +0 -0
- {python_amazon_ad_api-1.0.8 → python_amazon_ad_api-1.1.0}/ad_api/api/sb/ads_v4.py +0 -0
- {python_amazon_ad_api-1.0.8 → python_amazon_ad_api-1.1.0}/ad_api/api/sb/benchmarks.py +0 -0
- {python_amazon_ad_api-1.0.8 → python_amazon_ad_api-1.1.0}/ad_api/api/sb/campaigns.py +0 -0
- {python_amazon_ad_api-1.0.8 → python_amazon_ad_api-1.1.0}/ad_api/api/sb/campaigns_v4.py +0 -0
- {python_amazon_ad_api-1.0.8 → python_amazon_ad_api-1.1.0}/ad_api/api/sb/forecast.py +0 -0
- {python_amazon_ad_api-1.0.8 → python_amazon_ad_api-1.1.0}/ad_api/api/sb/keywords.py +0 -0
- {python_amazon_ad_api-1.0.8 → python_amazon_ad_api-1.1.0}/ad_api/api/sb/media.py +0 -0
- {python_amazon_ad_api-1.0.8 → python_amazon_ad_api-1.1.0}/ad_api/api/sb/product_targeting.py +0 -0
- {python_amazon_ad_api-1.0.8 → python_amazon_ad_api-1.1.0}/ad_api/api/sb/recommendations.py +0 -0
- {python_amazon_ad_api-1.0.8 → python_amazon_ad_api-1.1.0}/ad_api/api/sb/targeting_recommendations.py +0 -0
- {python_amazon_ad_api-1.0.8 → python_amazon_ad_api-1.1.0}/ad_api/api/sb/themes.py +0 -0
- {python_amazon_ad_api-1.0.8 → python_amazon_ad_api-1.1.0}/ad_api/api/sd/__init__.py +0 -0
- {python_amazon_ad_api-1.0.8 → python_amazon_ad_api-1.1.0}/ad_api/api/sd/ad_groups.py +0 -0
- {python_amazon_ad_api-1.0.8 → python_amazon_ad_api-1.1.0}/ad_api/api/sd/bid_recommendations.py +0 -0
- {python_amazon_ad_api-1.0.8 → python_amazon_ad_api-1.1.0}/ad_api/api/sd/brand_safety.py +0 -0
- {python_amazon_ad_api-1.0.8 → python_amazon_ad_api-1.1.0}/ad_api/api/sd/budget_rules.py +0 -0
- {python_amazon_ad_api-1.0.8 → python_amazon_ad_api-1.1.0}/ad_api/api/sd/campaigns.py +0 -0
- {python_amazon_ad_api-1.0.8 → python_amazon_ad_api-1.1.0}/ad_api/api/sd/campaigns_budget_usage.py +0 -0
- {python_amazon_ad_api-1.0.8 → python_amazon_ad_api-1.1.0}/ad_api/api/sd/creatives.py +0 -0
- {python_amazon_ad_api-1.0.8 → python_amazon_ad_api-1.1.0}/ad_api/api/sd/forecast.py +0 -0
- {python_amazon_ad_api-1.0.8 → python_amazon_ad_api-1.1.0}/ad_api/api/sd/negative_product_targeting.py +0 -0
- {python_amazon_ad_api-1.0.8 → python_amazon_ad_api-1.1.0}/ad_api/api/sd/product_ads.py +0 -0
- {python_amazon_ad_api-1.0.8 → python_amazon_ad_api-1.1.0}/ad_api/api/sd/product_targeting.py +0 -0
- {python_amazon_ad_api-1.0.8 → python_amazon_ad_api-1.1.0}/ad_api/api/sd/recommendations.py +0 -0
- {python_amazon_ad_api-1.0.8 → python_amazon_ad_api-1.1.0}/ad_api/api/sd/reports.py +0 -0
- {python_amazon_ad_api-1.0.8 → python_amazon_ad_api-1.1.0}/ad_api/api/sd/snapshots.py +0 -0
- {python_amazon_ad_api-1.0.8 → python_amazon_ad_api-1.1.0}/ad_api/api/sd/targeting_recommendations.py +0 -0
- {python_amazon_ad_api-1.0.8 → python_amazon_ad_api-1.1.0}/ad_api/api/sp/__init__.py +0 -0
- {python_amazon_ad_api-1.0.8 → python_amazon_ad_api-1.1.0}/ad_api/api/sp/ad_groups_v3.py +0 -0
- {python_amazon_ad_api-1.0.8 → python_amazon_ad_api-1.1.0}/ad_api/api/sp/bid_recommendations_v3.py +0 -0
- {python_amazon_ad_api-1.0.8 → python_amazon_ad_api-1.1.0}/ad_api/api/sp/budget_initial_recommendation.py +0 -0
- {python_amazon_ad_api-1.0.8 → python_amazon_ad_api-1.1.0}/ad_api/api/sp/budget_recommendations.py +0 -0
- {python_amazon_ad_api-1.0.8 → python_amazon_ad_api-1.1.0}/ad_api/api/sp/budget_rules.py +0 -0
- {python_amazon_ad_api-1.0.8 → python_amazon_ad_api-1.1.0}/ad_api/api/sp/budget_rules_recommendations.py +0 -0
- {python_amazon_ad_api-1.0.8 → python_amazon_ad_api-1.1.0}/ad_api/api/sp/campaign_consolidated_recommendations.py +0 -0
- {python_amazon_ad_api-1.0.8 → python_amazon_ad_api-1.1.0}/ad_api/api/sp/campaign_negative_keywords_v3.py +0 -0
- {python_amazon_ad_api-1.0.8 → python_amazon_ad_api-1.1.0}/ad_api/api/sp/campaign_negative_targets.py +0 -0
- {python_amazon_ad_api-1.0.8 → python_amazon_ad_api-1.1.0}/ad_api/api/sp/campaigns_budget_usage.py +0 -0
- {python_amazon_ad_api-1.0.8 → python_amazon_ad_api-1.1.0}/ad_api/api/sp/campaigns_v3.py +0 -0
- {python_amazon_ad_api-1.0.8 → python_amazon_ad_api-1.1.0}/ad_api/api/sp/campaings_optimization.py +0 -0
- {python_amazon_ad_api-1.0.8 → python_amazon_ad_api-1.1.0}/ad_api/api/sp/keywords_v3.py +0 -0
- {python_amazon_ad_api-1.0.8 → python_amazon_ad_api-1.1.0}/ad_api/api/sp/negative_keywords_v3.py +0 -0
- {python_amazon_ad_api-1.0.8 → python_amazon_ad_api-1.1.0}/ad_api/api/sp/negative_product_targeting_v3.py +0 -0
- {python_amazon_ad_api-1.0.8 → python_amazon_ad_api-1.1.0}/ad_api/api/sp/product_ads_v3.py +0 -0
- {python_amazon_ad_api-1.0.8 → python_amazon_ad_api-1.1.0}/ad_api/api/sp/product_recommendations.py +0 -0
- {python_amazon_ad_api-1.0.8 → python_amazon_ad_api-1.1.0}/ad_api/api/sp/product_targeting_v3.py +0 -0
- {python_amazon_ad_api-1.0.8 → python_amazon_ad_api-1.1.0}/ad_api/api/sp/ranked_keywords_recommendations.py +0 -0
- {python_amazon_ad_api-1.0.8 → python_amazon_ad_api-1.1.0}/ad_api/api/sp/schedule_based_bid_optimization.py +0 -0
- {python_amazon_ad_api-1.0.8 → python_amazon_ad_api-1.1.0}/ad_api/api/stores.py +0 -0
- {python_amazon_ad_api-1.0.8 → python_amazon_ad_api-1.1.0}/ad_api/api/stream.py +0 -0
- {python_amazon_ad_api-1.0.8 → python_amazon_ad_api-1.1.0}/ad_api/api/v1/__init__.py +0 -0
- {python_amazon_ad_api-1.0.8 → python_amazon_ad_api-1.1.0}/ad_api/api/v1/ad_groups.py +0 -0
- {python_amazon_ad_api-1.0.8 → python_amazon_ad_api-1.1.0}/ad_api/api/v1/ads.py +0 -0
- {python_amazon_ad_api-1.0.8 → python_amazon_ad_api-1.1.0}/ad_api/api/v1/campaigns.py +0 -0
- {python_amazon_ad_api-1.0.8 → python_amazon_ad_api-1.1.0}/ad_api/api/v1/targets.py +0 -0
- {python_amazon_ad_api-1.0.8 → python_amazon_ad_api-1.1.0}/ad_api/api/validation_configurations.py +0 -0
- {python_amazon_ad_api-1.0.8 → python_amazon_ad_api-1.1.0}/ad_api/auth/__init__.py +0 -0
- {python_amazon_ad_api-1.0.8 → python_amazon_ad_api-1.1.0}/ad_api/auth/access_token_client.py +0 -0
- {python_amazon_ad_api-1.0.8 → python_amazon_ad_api-1.1.0}/ad_api/auth/access_token_response.py +0 -0
- {python_amazon_ad_api-1.0.8 → python_amazon_ad_api-1.1.0}/ad_api/auth/credentials.py +0 -0
- {python_amazon_ad_api-1.0.8 → python_amazon_ad_api-1.1.0}/ad_api/auth/exceptions.py +0 -0
- {python_amazon_ad_api-1.0.8 → python_amazon_ad_api-1.1.0}/ad_api/base/__init__.py +0 -0
- {python_amazon_ad_api-1.0.8 → python_amazon_ad_api-1.1.0}/ad_api/base/api_response.py +0 -0
- {python_amazon_ad_api-1.0.8 → python_amazon_ad_api-1.1.0}/ad_api/base/base_client.py +0 -0
- {python_amazon_ad_api-1.0.8 → python_amazon_ad_api-1.1.0}/ad_api/base/client.py +0 -0
- {python_amazon_ad_api-1.0.8 → python_amazon_ad_api-1.1.0}/ad_api/base/config.py +0 -0
- {python_amazon_ad_api-1.0.8 → python_amazon_ad_api-1.1.0}/ad_api/base/credential_provider.py +0 -0
- {python_amazon_ad_api-1.0.8 → python_amazon_ad_api-1.1.0}/ad_api/base/exceptions.py +0 -0
- {python_amazon_ad_api-1.0.8 → python_amazon_ad_api-1.1.0}/ad_api/base/helpers.py +0 -0
- {python_amazon_ad_api-1.0.8 → python_amazon_ad_api-1.1.0}/ad_api/base/marketplaces.py +0 -0
- {python_amazon_ad_api-1.0.8 → python_amazon_ad_api-1.1.0}/ad_api/base/utils.py +0 -0
- {python_amazon_ad_api-1.0.8 → python_amazon_ad_api-1.1.0}/pyproject.toml +0 -0
- {python_amazon_ad_api-1.0.8 → python_amazon_ad_api-1.1.0}/python_amazon_ad_api.egg-info/dependency_links.txt +0 -0
- {python_amazon_ad_api-1.0.8 → python_amazon_ad_api-1.1.0}/python_amazon_ad_api.egg-info/requires.txt +0 -0
- {python_amazon_ad_api-1.0.8 → python_amazon_ad_api-1.1.0}/python_amazon_ad_api.egg-info/top_level.txt +0 -0
|
@@ -6,7 +6,6 @@ from .ad_groups import AdGroups
|
|
|
6
6
|
from .ad_groups_v4 import AdGroupsV4
|
|
7
7
|
from .ad_creatives_v4 import AdCreativesV4
|
|
8
8
|
from .ads_v4 import AdsV4
|
|
9
|
-
from .moderation import Moderation
|
|
10
9
|
from .keywords import Keywords
|
|
11
10
|
from .recommendations import Recommendations
|
|
12
11
|
from .keywords_recommendations import KeywordsRecommendations
|
|
@@ -19,7 +18,6 @@ from .bid_recommendations import BidRecommendations
|
|
|
19
18
|
from .stores import Stores
|
|
20
19
|
from .media import Media
|
|
21
20
|
from .reports import Reports
|
|
22
|
-
from .snapshots import Snapshots
|
|
23
21
|
from .benchmarks import Benchmarks
|
|
24
22
|
from .themes import Themes
|
|
25
23
|
|
|
@@ -32,7 +30,6 @@ __all__ = [
|
|
|
32
30
|
"AdGroups",
|
|
33
31
|
"AdGroupsV4",
|
|
34
32
|
"AdsV4",
|
|
35
|
-
"Moderation",
|
|
36
33
|
"Keywords",
|
|
37
34
|
"Recommendations",
|
|
38
35
|
"KeywordsRecommendations",
|
|
@@ -45,7 +42,6 @@ __all__ = [
|
|
|
45
42
|
"Stores",
|
|
46
43
|
"Media",
|
|
47
44
|
"Reports",
|
|
48
|
-
"Snapshots",
|
|
49
45
|
"Benchmarks",
|
|
50
46
|
"Themes"
|
|
51
47
|
]
|
{python_amazon_ad_api-1.0.8 → python_amazon_ad_api-1.1.0}/ad_api/api/sb/bid_recommendations.py
RENAMED
|
@@ -6,6 +6,13 @@ class BidRecommendations(Client):
|
|
|
6
6
|
Use the Amazon Advertising API for Sponsored Brands for campaign, ad group, keyword, negative keyword, drafts, Stores, landing pages, and Brands management operations. For more information about Sponsored Brands, see the Sponsored Brands Support Center. For onboarding information, see the account setup topic.
|
|
7
7
|
"""
|
|
8
8
|
|
|
9
|
+
_ACCEPT = 'application/vnd.sbbidsrecommendation.v3+json'
|
|
10
|
+
|
|
11
|
+
@classmethod
|
|
12
|
+
def _accept(cls):
|
|
13
|
+
"""Response media type the v3 contract declares for these routes."""
|
|
14
|
+
return {"Accept": cls._ACCEPT}
|
|
15
|
+
|
|
9
16
|
@sp_endpoint('/sb/recommendations/bids', method='POST')
|
|
10
17
|
def get_bid_recommendations(self, **kwargs) -> ApiResponse:
|
|
11
18
|
r"""
|
|
@@ -32,4 +39,5 @@ class BidRecommendations(Client):
|
|
|
32
39
|
|
|
33
40
|
"""
|
|
34
41
|
|
|
35
|
-
return self._request(kwargs.pop('path'), data=Utils.convert_body(kwargs.pop('body'), False),
|
|
42
|
+
return self._request(kwargs.pop('path'), data=Utils.convert_body(kwargs.pop('body'), False),
|
|
43
|
+
params=kwargs, headers=self._accept())
|
|
@@ -6,6 +6,13 @@ class Brands(Client):
|
|
|
6
6
|
Use the Amazon Advertising API for Sponsored Brands for campaign, ad group, keyword, negative keyword, drafts, Stores, landing pages, and Brands management operations. For more information about Sponsored Brands, see the Sponsored Brands Support Center. For onboarding information, see the account setup topic.
|
|
7
7
|
"""
|
|
8
8
|
|
|
9
|
+
_ACCEPT = 'application/vnd.brand.v3+json'
|
|
10
|
+
|
|
11
|
+
@classmethod
|
|
12
|
+
def _accept(cls):
|
|
13
|
+
"""Response media type the v3 contract declares for these routes."""
|
|
14
|
+
return {"Accept": cls._ACCEPT}
|
|
15
|
+
|
|
9
16
|
@sp_endpoint('/brands', method='GET')
|
|
10
17
|
def list_brands(self, **kwargs) -> ApiResponse:
|
|
11
18
|
"""
|
|
@@ -22,4 +29,4 @@ class Brands(Client):
|
|
|
22
29
|
| '**brandRegistryName**': *string*, {'description': 'The Brand name.'}
|
|
23
30
|
|
|
24
31
|
"""
|
|
25
|
-
return self._request(kwargs.pop('path'), params=kwargs)
|
|
32
|
+
return self._request(kwargs.pop('path'), params=kwargs, headers=self._accept())
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
from ad_api.base import Client, sp_endpoint, ApiResponse, Utils
|
|
2
|
+
|
|
3
|
+
|
|
4
|
+
class KeywordsRecommendations(Client):
|
|
5
|
+
|
|
6
|
+
_ACCEPT = 'application/vnd.sbkeywordrecommendation.v3+json'
|
|
7
|
+
|
|
8
|
+
@classmethod
|
|
9
|
+
def _accept(cls):
|
|
10
|
+
"""Response media type the v3 contract declares for these routes."""
|
|
11
|
+
return {"Accept": cls._ACCEPT}
|
|
12
|
+
|
|
13
|
+
@sp_endpoint('/sb/recommendations/keyword', method='POST')
|
|
14
|
+
def list_keywords_recommendations(self, **kwargs) -> ApiResponse:
|
|
15
|
+
return self._request(kwargs.pop('path'), data=Utils.convert_body(kwargs.pop('body'), False),
|
|
16
|
+
params=kwargs, headers=self._accept())
|
{python_amazon_ad_api-1.0.8 → python_amazon_ad_api-1.1.0}/ad_api/api/sb/landing_page_asins.py
RENAMED
|
@@ -6,6 +6,13 @@ class PageAsins(Client):
|
|
|
6
6
|
Use the Amazon Advertising API for Sponsored Brands for campaign, ad group, keyword, negative keyword, drafts, Stores, landing pages, and Brands management operations. For more information about Sponsored Brands, see the Sponsored Brands Support Center. For onboarding information, see the account setup topic.
|
|
7
7
|
"""
|
|
8
8
|
|
|
9
|
+
_ACCEPT = 'application/vnd.pageasins.v3+json'
|
|
10
|
+
|
|
11
|
+
@classmethod
|
|
12
|
+
def _accept(cls):
|
|
13
|
+
"""Response media type the v3 contract declares for these routes."""
|
|
14
|
+
return {"Accept": cls._ACCEPT}
|
|
15
|
+
|
|
9
16
|
@sp_endpoint('/pageAsins', method='GET')
|
|
10
17
|
def get_page_asins(self, **kwargs) -> ApiResponse:
|
|
11
18
|
"""
|
|
@@ -18,4 +25,4 @@ class PageAsins(Client):
|
|
|
18
25
|
Returns
|
|
19
26
|
asinList
|
|
20
27
|
"""
|
|
21
|
-
return self._request(kwargs.pop('path'), params=kwargs)
|
|
28
|
+
return self._request(kwargs.pop('path'), params=kwargs, headers=self._accept())
|
{python_amazon_ad_api-1.0.8 → python_amazon_ad_api-1.1.0}/ad_api/api/sb/negative_keywords.py
RENAMED
|
@@ -6,6 +6,13 @@ class NegativeKeywords(Client):
|
|
|
6
6
|
Use the Amazon Advertising API for Sponsored Brands for campaign, ad group, keyword, negative keyword, drafts, Stores, landing pages, and Brands management operations. For more information about Sponsored Brands, see the Sponsored Brands Support Center. For onboarding information, see the account setup topic.
|
|
7
7
|
"""
|
|
8
8
|
|
|
9
|
+
_ACCEPT = 'application/vnd.sbnegativekeyword.v3.2+json'
|
|
10
|
+
|
|
11
|
+
@classmethod
|
|
12
|
+
def _accept(cls):
|
|
13
|
+
"""Response media type the v3 contract declares for these routes."""
|
|
14
|
+
return {"Accept": cls._ACCEPT}
|
|
15
|
+
|
|
9
16
|
@sp_endpoint('/sb/negativeKeywords', method='GET')
|
|
10
17
|
def list_negative_keywords(self, **kwargs) -> ApiResponse:
|
|
11
18
|
r"""
|
|
@@ -26,7 +33,7 @@ class NegativeKeywords(Client):
|
|
|
26
33
|
| ApiResponse
|
|
27
34
|
|
|
28
35
|
"""
|
|
29
|
-
return self._request(kwargs.pop('path'), params=kwargs)
|
|
36
|
+
return self._request(kwargs.pop('path'), params=kwargs, headers=self._accept())
|
|
30
37
|
|
|
31
38
|
@sp_endpoint('/sb/negativeKeywords', method='PUT')
|
|
32
39
|
def edit_negative_keywords(self, **kwargs) -> ApiResponse:
|
|
@@ -6,6 +6,13 @@ class NegativeTargets(Client):
|
|
|
6
6
|
Use the Amazon Advertising API for Sponsored Brands for campaign, ad group, keyword, negative keyword, drafts, Stores, landing pages, and Brands management operations. For more information about Sponsored Brands, see the Sponsored Brands Support Center. For onboarding information, see the account setup topic.
|
|
7
7
|
"""
|
|
8
8
|
|
|
9
|
+
_ACCEPT = 'application/vnd.sblistnegativetargetsresponse.v3.2+json'
|
|
10
|
+
|
|
11
|
+
@classmethod
|
|
12
|
+
def _accept(cls):
|
|
13
|
+
"""Response media type the v3 contract declares for the listing route."""
|
|
14
|
+
return {'Accept': cls._ACCEPT}
|
|
15
|
+
|
|
9
16
|
@sp_endpoint('/sb/negativeTargets/list', method='POST')
|
|
10
17
|
def list_negative_targets(self, **kwargs) -> ApiResponse:
|
|
11
18
|
r"""
|
|
@@ -28,7 +35,8 @@ class NegativeTargets(Client):
|
|
|
28
35
|
Returns:
|
|
29
36
|
ApiResponse
|
|
30
37
|
"""
|
|
31
|
-
return self._request(kwargs.pop('path'), data=Utils.convert_body(kwargs.pop('body'), False),
|
|
38
|
+
return self._request(kwargs.pop('path'), data=Utils.convert_body(kwargs.pop('body'), False),
|
|
39
|
+
params=kwargs, headers=self._accept())
|
|
32
40
|
|
|
33
41
|
@sp_endpoint('/sb/negativeTargets', method='PUT')
|
|
34
42
|
def edit_negative_targets(self, **kwargs) -> ApiResponse:
|
|
@@ -8,6 +8,13 @@ class Reports(Client):
|
|
|
8
8
|
|
|
9
9
|
"""
|
|
10
10
|
|
|
11
|
+
_ACCEPT = 'application/json'
|
|
12
|
+
|
|
13
|
+
@classmethod
|
|
14
|
+
def _accept(cls):
|
|
15
|
+
"""Response media type the v3 contract declares for these routes."""
|
|
16
|
+
return {"Accept": cls._ACCEPT}
|
|
17
|
+
|
|
11
18
|
@sp_endpoint('/v2/hsa/{}/report', method='POST')
|
|
12
19
|
def post_report(self, recordType, **kwargs) -> ApiResponse:
|
|
13
20
|
r"""Requests a Sponsored Brands report.
|
|
@@ -27,7 +34,8 @@ class Reports(Client):
|
|
|
27
34
|
ApiResponse
|
|
28
35
|
|
|
29
36
|
"""
|
|
30
|
-
return self._request(fill_query_params(kwargs.pop('path'), recordType), data=Utils.convert_body(kwargs.pop('body'), False),
|
|
37
|
+
return self._request(fill_query_params(kwargs.pop('path'), recordType), data=Utils.convert_body(kwargs.pop('body'), False),
|
|
38
|
+
params=kwargs, headers=self._accept())
|
|
31
39
|
|
|
32
40
|
@sp_endpoint('/v2/reports/{}', method='GET')
|
|
33
41
|
def get_report(self, reportId, **kwargs) -> ApiResponse:
|
|
@@ -42,7 +50,7 @@ class Reports(Client):
|
|
|
42
50
|
Returns:
|
|
43
51
|
ApiResponse
|
|
44
52
|
"""
|
|
45
|
-
return self._request(fill_query_params(kwargs.pop('path'), reportId), params=kwargs)
|
|
53
|
+
return self._request(fill_query_params(kwargs.pop('path'), reportId), params=kwargs, headers=self._accept())
|
|
46
54
|
|
|
47
55
|
def download_report(self, **kwargs) -> ApiResponse:
|
|
48
56
|
r"""Downloads the report previously get report specified by location
|
|
@@ -0,0 +1,89 @@
|
|
|
1
|
+
import json
|
|
2
|
+
import mimetypes
|
|
3
|
+
|
|
4
|
+
import requests
|
|
5
|
+
|
|
6
|
+
from ad_api.base import Client, sp_endpoint, ApiResponse
|
|
7
|
+
|
|
8
|
+
|
|
9
|
+
class Stores(Client):
|
|
10
|
+
"""
|
|
11
|
+
Use the Amazon Advertising API for Sponsored Brands for campaign, ad group, keyword, negative keyword, drafts, Stores, landing pages, and Brands management operations. For more information about Sponsored Brands, see the Sponsored Brands Support Center. For onboarding information, see the account setup topic.
|
|
12
|
+
"""
|
|
13
|
+
|
|
14
|
+
@sp_endpoint('/stores/assets', method='GET')
|
|
15
|
+
def list_assets(self, **kwargs) -> ApiResponse:
|
|
16
|
+
"""
|
|
17
|
+
For sellers or vendors, gets an array of assets associated with the specified brand entity identifier. Vendors are not required to specify a brand entity identifier, and in this case all assets associated with the vendor are returned.
|
|
18
|
+
|
|
19
|
+
Keyword Args
|
|
20
|
+
| query **brandEntityId** (string): For sellers, this field is required. It is the Brand entity identifier of the Brand for which assets are returned. This identifier is retrieved using the getBrands operation. For vendors, this field is optional. If a vendor does not specify this field, all assets associated with the vendor are returned. For more information about the difference between a seller and a vendor, see the Amazon Advertising FAQ. [required]
|
|
21
|
+
|
|
22
|
+
| query **mediaType** (string): Specifies the media types used to filter the returned array. Currently, only the brandLogo type is supported. If not specified, all media types are returned. Available values : brandLogo, image [optional]
|
|
23
|
+
|
|
24
|
+
Returns:
|
|
25
|
+
| ApiResponse
|
|
26
|
+
"""
|
|
27
|
+
return self._request(kwargs.pop('path'), params=kwargs,
|
|
28
|
+
headers={'Accept': 'application/vnd.mediaasset.v3+json'})
|
|
29
|
+
|
|
30
|
+
@sp_endpoint('/stores/assets', method='POST')
|
|
31
|
+
def create_asset(self, image, brandEntityId, mediaType='brandLogo', filename=None, **kwargs) -> ApiResponse:
|
|
32
|
+
"""
|
|
33
|
+
Creates a new image asset and stores it in the Store Assets Library.
|
|
34
|
+
|
|
35
|
+
The endpoint takes ``multipart/form-data`` with two parts, not JSON:
|
|
36
|
+
|
|
37
|
+
``assetInfo`` A JSON string with ``brandEntityId`` and ``mediaType``.
|
|
38
|
+
``asset`` The image bytes. PNG, JPEG or GIF, under 1MB and at
|
|
39
|
+
least 400x400 pixels.
|
|
40
|
+
|
|
41
|
+
Keyword Args
|
|
42
|
+
| path **image** (str or bytes): A file path, or the raw image bytes. [required]
|
|
43
|
+
| path **brandEntityId** (string): The Brand entity identifier. Required for sellers, optional for vendors. [required]
|
|
44
|
+
| path **mediaType** (string): Only ``brandLogo`` is supported. [optional]
|
|
45
|
+
| path **filename** (string): Name sent in ``Content-Disposition``. Taken from the path when a path is given. [optional]
|
|
46
|
+
|
|
47
|
+
Returns:
|
|
48
|
+
| ApiResponse
|
|
49
|
+
|
|
50
|
+
Documentation: https://advertising.amazon.com/API/docs/en-us/sponsored-brands/3-0/openapi#tag/Stores
|
|
51
|
+
"""
|
|
52
|
+
if isinstance(image, (str, bytes)):
|
|
53
|
+
if isinstance(image, bytes):
|
|
54
|
+
data = image
|
|
55
|
+
else:
|
|
56
|
+
filename = filename or image.split('/')[-1]
|
|
57
|
+
with open(image, 'rb') as handle:
|
|
58
|
+
data = handle.read()
|
|
59
|
+
else:
|
|
60
|
+
data = image.read()
|
|
61
|
+
|
|
62
|
+
filename = filename or 'image'
|
|
63
|
+
|
|
64
|
+
content_type = mimetypes.guess_type(filename)[0] or 'image/png'
|
|
65
|
+
if content_type not in ('image/png', 'image/jpeg', 'image/gif'):
|
|
66
|
+
raise ValueError(f"Unsupported image type {content_type}; use PNG, JPEG or GIF.")
|
|
67
|
+
|
|
68
|
+
asset_info = {'brandEntityId': brandEntityId, 'mediaType': mediaType}
|
|
69
|
+
|
|
70
|
+
headers = self.headers.copy()
|
|
71
|
+
# requests must set Content-Type itself to add the multipart boundary
|
|
72
|
+
headers.pop('Content-Type', None)
|
|
73
|
+
headers['Accept'] = '*/*'
|
|
74
|
+
headers['Content-Disposition'] = f'attachment; filename="{filename}"'
|
|
75
|
+
|
|
76
|
+
response = requests.post(
|
|
77
|
+
self.endpoint + '/stores/assets',
|
|
78
|
+
headers=headers,
|
|
79
|
+
files={
|
|
80
|
+
'assetInfo': (None, json.dumps(asset_info), 'application/json'),
|
|
81
|
+
'asset': (filename, data, content_type),
|
|
82
|
+
},
|
|
83
|
+
params=kwargs,
|
|
84
|
+
timeout=self.timeout or 60,
|
|
85
|
+
proxies=self.proxies,
|
|
86
|
+
verify=self.verify,
|
|
87
|
+
)
|
|
88
|
+
|
|
89
|
+
return self._check_response(response)
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
__version__ = "1.1.0"
|
{python_amazon_ad_api-1.0.8 → python_amazon_ad_api-1.1.0}/python_amazon_ad_api.egg-info/SOURCES.txt
RENAMED
|
@@ -44,13 +44,11 @@ ad_api/api/sb/keywords.py
|
|
|
44
44
|
ad_api/api/sb/keywords_recommendations.py
|
|
45
45
|
ad_api/api/sb/landing_page_asins.py
|
|
46
46
|
ad_api/api/sb/media.py
|
|
47
|
-
ad_api/api/sb/moderation.py
|
|
48
47
|
ad_api/api/sb/negative_keywords.py
|
|
49
48
|
ad_api/api/sb/negative_product_targeting.py
|
|
50
49
|
ad_api/api/sb/product_targeting.py
|
|
51
50
|
ad_api/api/sb/recommendations.py
|
|
52
51
|
ad_api/api/sb/reports.py
|
|
53
|
-
ad_api/api/sb/snapshots.py
|
|
54
52
|
ad_api/api/sb/stores.py
|
|
55
53
|
ad_api/api/sb/targeting_recommendations.py
|
|
56
54
|
ad_api/api/sb/themes.py
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
from ad_api.base import Client, sp_endpoint, ApiResponse, Utils
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
class KeywordsRecommendations(Client):
|
|
5
|
-
@sp_endpoint('/sb/recommendations/keyword', method='POST')
|
|
6
|
-
def list_keywords_recommendations(self, **kwargs) -> ApiResponse:
|
|
7
|
-
return self._request(kwargs.pop('path'), data=Utils.convert_body(kwargs.pop('body'), False), params=kwargs)
|
|
@@ -1,18 +0,0 @@
|
|
|
1
|
-
from ad_api.base import Client, sp_endpoint, fill_query_params, ApiResponse
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
class Moderation(Client):
|
|
5
|
-
"""
|
|
6
|
-
Use this interface to request and retrieve store information. This can be used for Sponsored Brands campaign creation, to pull the store URL information, and for asset registration for Stores.
|
|
7
|
-
"""
|
|
8
|
-
|
|
9
|
-
@sp_endpoint('/sb/moderation/campaigns/{}', method='GET')
|
|
10
|
-
def get_moderation(self, campaignId, **kwargs) -> ApiResponse:
|
|
11
|
-
"""
|
|
12
|
-
Gets the moderation result for a campaign specified by identifier.
|
|
13
|
-
|
|
14
|
-
Keyword Args
|
|
15
|
-
| path **campaignId** (integer): The campaign identifier. [required]
|
|
16
|
-
|
|
17
|
-
"""
|
|
18
|
-
return self._request(fill_query_params(kwargs.pop('path'), campaignId), params=kwargs)
|
|
@@ -1,47 +0,0 @@
|
|
|
1
|
-
from ad_api.base import Client, sp_endpoint, fill_query_params, ApiResponse, Utils
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
class Snapshots(Client):
|
|
5
|
-
"""
|
|
6
|
-
Use the Amazon Advertising API for Sponsored Products for campaign, ad group, keyword, negative keyword, and product ad management operations. For more information about Sponsored Products, see the Sponsored Products Support Center. For onboarding information, see the account setup topic.
|
|
7
|
-
"""
|
|
8
|
-
|
|
9
|
-
@sp_endpoint('/v2/hsa/{}/snapshot', method='POST')
|
|
10
|
-
@Utils.deprecated
|
|
11
|
-
def post_snapshot(self, recordType, **kwargs) -> ApiResponse:
|
|
12
|
-
"""
|
|
13
|
-
|
|
14
|
-
Returns:
|
|
15
|
-
ApiResponse
|
|
16
|
-
"""
|
|
17
|
-
return self._request(fill_query_params(kwargs.pop('path'), recordType), data=Utils.convert_body(kwargs.pop('body'), False), params=kwargs)
|
|
18
|
-
|
|
19
|
-
@sp_endpoint('/v2/hsa/snapshots/{}', method='GET')
|
|
20
|
-
@Utils.deprecated
|
|
21
|
-
def get_snapshot(self, snapshotId, **kwargs) -> ApiResponse:
|
|
22
|
-
r"""
|
|
23
|
-
Gets the status of a requested snapshot.
|
|
24
|
-
|
|
25
|
-
Returns:
|
|
26
|
-
ApiResponse
|
|
27
|
-
"""
|
|
28
|
-
return self._request(fill_query_params(kwargs.pop('path'), snapshotId), params=kwargs)
|
|
29
|
-
|
|
30
|
-
@Utils.deprecated
|
|
31
|
-
def download_snapshot(self, **kwargs) -> ApiResponse:
|
|
32
|
-
r"""
|
|
33
|
-
Downloads the snapshot previously get report specified by location (this is not part of the official Amazon Advertising API, is a helper method to download the snapshot). Take in mind that a direct download of location returned in get_snapshot will return 401 - Unauthorized.
|
|
34
|
-
|
|
35
|
-
kwarg parameter **file** if not provided will take the default amazon name from path download (add a path with slash / if you want a specific folder, do not add extension as the return will provide the right extension based on format choosed if needed)
|
|
36
|
-
|
|
37
|
-
kwarg parameter **format** if not provided a format will return a url to download the snapshot (this url has a expiration time)
|
|
38
|
-
|
|
39
|
-
Keyword Args
|
|
40
|
-
| **url** (string): The location obatined from get_snapshot [required]
|
|
41
|
-
| **file** (string): The path to save the file if mode is download json, zip or gzip. [optional]
|
|
42
|
-
| **format** (string): The mode to download the snapshot: data (list), raw, url, json, zip, gzip. Default (url) [optional]
|
|
43
|
-
|
|
44
|
-
Returns:
|
|
45
|
-
ApiResponse
|
|
46
|
-
"""
|
|
47
|
-
return self._download(self, params=kwargs)
|
|
@@ -1,44 +0,0 @@
|
|
|
1
|
-
from ad_api.base import Client, sp_endpoint, fill_query_params, ApiResponse, Utils
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
class Stores(Client):
|
|
5
|
-
"""
|
|
6
|
-
Use the Amazon Advertising API for Sponsored Brands for campaign, ad group, keyword, negative keyword, drafts, Stores, landing pages, and Brands management operations. For more information about Sponsored Brands, see the Sponsored Brands Support Center. For onboarding information, see the account setup topic.
|
|
7
|
-
"""
|
|
8
|
-
|
|
9
|
-
@sp_endpoint('/stores/assets', method='GET')
|
|
10
|
-
def list_assets(self, **kwargs) -> ApiResponse:
|
|
11
|
-
"""
|
|
12
|
-
For sellers or vendors, gets an array of assets associated with the specified brand entity identifier. Vendors are not required to specify a brand entity identifier, and in this case all assets associated with the vendor are returned.
|
|
13
|
-
|
|
14
|
-
Keyword Args
|
|
15
|
-
| path **brandEntityId** (string): For sellers, this field is required. It is the Brand entity identifier of the Brand for which assets are returned. This identifier is retrieved using the getBrands operation. For vendors, this field is optional. If a vendor does not specify this field, all assets associated with the vendor are returned. For more information about the difference between a seller and a vendor, see the Amazon Advertising FAQ. [required]
|
|
16
|
-
|
|
17
|
-
| query **mediaType** (string): Specifies the media types used to filter the returned array. Currently, only the brandLogo type is supported. If not specified, all media types are returned. Available values : brandLogo, image [optional]
|
|
18
|
-
|
|
19
|
-
Returns:
|
|
20
|
-
| ApiResponse
|
|
21
|
-
"""
|
|
22
|
-
return self._request(fill_query_params(kwargs.pop('path')), params=kwargs)
|
|
23
|
-
|
|
24
|
-
@sp_endpoint('/v2/stores', method='GET')
|
|
25
|
-
def list_stores(self, **kwargs) -> ApiResponse:
|
|
26
|
-
"""
|
|
27
|
-
List store information for all registered stores under an advertiser.
|
|
28
|
-
|
|
29
|
-
Keyword Args
|
|
30
|
-
None
|
|
31
|
-
|
|
32
|
-
"""
|
|
33
|
-
return self._request(fill_query_params(kwargs.pop('path')), params=kwargs)
|
|
34
|
-
|
|
35
|
-
# It is not working the endpoint
|
|
36
|
-
@sp_endpoint('/v2/stores/{}', method='GET')
|
|
37
|
-
def get_store(self, brandEntityId, **kwargs) -> ApiResponse:
|
|
38
|
-
return self._request(fill_query_params(kwargs.pop('path'), brandEntityId), params=kwargs)
|
|
39
|
-
|
|
40
|
-
# It is not working Cannot consume content type
|
|
41
|
-
@sp_endpoint('/stores/assets', method='POST')
|
|
42
|
-
def create_asset(self, contentDisposition, contentType, **kwargs) -> ApiResponse:
|
|
43
|
-
headers = {'Content-Disposition': contentDisposition, 'Content-Type': contentType}
|
|
44
|
-
return self._request(kwargs.pop('path'), data=Utils.convert_body(kwargs.pop('body'), False), params=kwargs, headers=headers)
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
__version__ = "1.0.8"
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{python_amazon_ad_api-1.0.8 → python_amazon_ad_api-1.1.0}/ad_api/api/advertising_test_account.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{python_amazon_ad_api-1.0.8 → python_amazon_ad_api-1.1.0}/ad_api/api/sb/product_targeting.py
RENAMED
|
File without changes
|
|
File without changes
|
{python_amazon_ad_api-1.0.8 → python_amazon_ad_api-1.1.0}/ad_api/api/sb/targeting_recommendations.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{python_amazon_ad_api-1.0.8 → python_amazon_ad_api-1.1.0}/ad_api/api/sd/bid_recommendations.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{python_amazon_ad_api-1.0.8 → python_amazon_ad_api-1.1.0}/ad_api/api/sd/campaigns_budget_usage.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{python_amazon_ad_api-1.0.8 → python_amazon_ad_api-1.1.0}/ad_api/api/sd/product_targeting.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{python_amazon_ad_api-1.0.8 → python_amazon_ad_api-1.1.0}/ad_api/api/sd/targeting_recommendations.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{python_amazon_ad_api-1.0.8 → python_amazon_ad_api-1.1.0}/ad_api/api/sp/bid_recommendations_v3.py
RENAMED
|
File without changes
|
|
File without changes
|
{python_amazon_ad_api-1.0.8 → python_amazon_ad_api-1.1.0}/ad_api/api/sp/budget_recommendations.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{python_amazon_ad_api-1.0.8 → python_amazon_ad_api-1.1.0}/ad_api/api/sp/campaign_negative_targets.py
RENAMED
|
File without changes
|
{python_amazon_ad_api-1.0.8 → python_amazon_ad_api-1.1.0}/ad_api/api/sp/campaigns_budget_usage.py
RENAMED
|
File without changes
|
|
File without changes
|
{python_amazon_ad_api-1.0.8 → python_amazon_ad_api-1.1.0}/ad_api/api/sp/campaings_optimization.py
RENAMED
|
File without changes
|
|
File without changes
|
{python_amazon_ad_api-1.0.8 → python_amazon_ad_api-1.1.0}/ad_api/api/sp/negative_keywords_v3.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{python_amazon_ad_api-1.0.8 → python_amazon_ad_api-1.1.0}/ad_api/api/sp/product_recommendations.py
RENAMED
|
File without changes
|
{python_amazon_ad_api-1.0.8 → python_amazon_ad_api-1.1.0}/ad_api/api/sp/product_targeting_v3.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{python_amazon_ad_api-1.0.8 → python_amazon_ad_api-1.1.0}/ad_api/api/validation_configurations.py
RENAMED
|
File without changes
|
|
File without changes
|
{python_amazon_ad_api-1.0.8 → python_amazon_ad_api-1.1.0}/ad_api/auth/access_token_client.py
RENAMED
|
File without changes
|
{python_amazon_ad_api-1.0.8 → python_amazon_ad_api-1.1.0}/ad_api/auth/access_token_response.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{python_amazon_ad_api-1.0.8 → python_amazon_ad_api-1.1.0}/ad_api/base/credential_provider.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{python_amazon_ad_api-1.0.8 → python_amazon_ad_api-1.1.0}/python_amazon_ad_api.egg-info/requires.txt
RENAMED
|
File without changes
|
|
File without changes
|