mcm-cli 1.4.0__py3-none-any.whl → 1.4.2__py3-none-any.whl

Sign up to get free protection for your applications and to get access to all the features.
@@ -0,0 +1,86 @@
1
+ # Copyright 2023 Moloco, Inc
2
+ #
3
+ # Licensed under the Apache License, Version 2.0 (the "License");
4
+ # you may not use this file except in compliance with the License.
5
+ # You may obtain a copy of the License at
6
+ #
7
+ # https://www.apache.org/licenses/LICENSE-2.0
8
+ #
9
+ # Unless required by applicable law or agreed to in writing, software
10
+ # distributed under the License is distributed on an "AS IS" BASIS,
11
+ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12
+ # See the License for the specific language governing permissions and
13
+ # limitations under the License.
14
+
15
+ from pydantic import BaseModel
16
+ from typing import Optional
17
+
18
+ #
19
+ # API response dataclasses
20
+ #
21
+ class MicroPrice(BaseModel):
22
+ currency: str
23
+ amount_micro: str
24
+
25
+ class Schedule(BaseModel):
26
+ start: str
27
+ end: Optional[str]
28
+
29
+ class Budget(BaseModel):
30
+ period: str
31
+ amount: MicroPrice
32
+
33
+ class TargetCpc(BaseModel):
34
+ target_cpc: MicroPrice
35
+
36
+ class TargetRoas(BaseModel):
37
+ target_roas: int
38
+
39
+ class Goal(BaseModel):
40
+ type: str
41
+ optimize_fixed_cpc: Optional[TargetCpc] = None
42
+ optimize_roas: Optional[TargetRoas] = None
43
+
44
+ class TargetingEvent(BaseModel):
45
+ event_type: str
46
+ matching_param: Optional[str] = None
47
+ negative: bool
48
+ matching_date: Optional[str] = None
49
+
50
+ class AudienceSetting(BaseModel):
51
+ event_based: Optional[list[TargetingEvent]] = None
52
+ label: Optional[str] = None
53
+ event_based_include_list: Optional[list[str]] = None
54
+ event_based_exclude_list: Optional[list[str]] = None
55
+
56
+ class Targeting(BaseModel):
57
+ campaign_targeting_placement_type: str
58
+ placement_setting: Optional[str]
59
+ audience_setting: Optional[AudienceSetting]
60
+
61
+ class Campaign(BaseModel):
62
+ id: str
63
+ title: str
64
+ ad_account_id: str
65
+ creative_ids: Optional[list[str]]
66
+ hidden: bool
67
+ operation_type: str
68
+ ad_type: str
69
+ schedule: Schedule
70
+ daily_budget: MicroPrice
71
+ budget: Budget
72
+ targeting: Optional[Targeting]
73
+ managed_setting: Optional[str]
74
+ text_entry: str
75
+ goal: Goal
76
+ catalog_item_ids: list[str]
77
+ enabling_state: str
78
+ state: str
79
+ created_at: str
80
+ updated_at: str
81
+ audience_types: list[str]
82
+ offsite_setting: Optional[str]
83
+
84
+ class CampaignList(BaseModel):
85
+ campaigns: list[Campaign]
86
+ without_catalog_item_ids: bool
@@ -0,0 +1,64 @@
1
+ # Copyright 2023 Moloco, Inc
2
+ #
3
+ # Licensed under the Apache License, Version 2.0 (the "License");
4
+ # you may not use this file except in compliance with the License.
5
+ # You may obtain a copy of the License at
6
+ #
7
+ # https://www.apache.org/licenses/LICENSE-2.0
8
+ #
9
+ # Unless required by applicable law or agreed to in writing, software
10
+ # distributed under the License is distributed on an "AS IS" BASIS,
11
+ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12
+ # See the License for the specific language governing permissions and
13
+ # limitations under the License.
14
+
15
+ from pydantic import BaseModel
16
+
17
+ #
18
+ # Platform user response dataclasses
19
+ #
20
+ #
21
+ # {
22
+ # "users": [
23
+ # {
24
+ # "id": "00YtNXn8PQGFPXiBS9oi",
25
+ # "email": "user@email.com",
26
+ # "name": "John Doe",
27
+ # "roles": [
28
+ # {
29
+ # "name": "PLATFORM_USER",
30
+ # "resource_type": "PLATFORM",
31
+ # "resource_id": "DEMO_TEST"
32
+ # },
33
+ # {
34
+ # "name": "AD_ACCOUNT_OWNER",
35
+ # "resource_type": "AD_ACCOUNT",
36
+ # "resource_id": "678acd3a-82b5-11e7-afa5-128878ebb8b6"
37
+ # }
38
+ # ],
39
+ # "status": "NOT_REGISTERED",
40
+ # "created_at": "2024-05-16T16:13:52Z",
41
+ # "updated_at": "2024-05-16T16:13:52Z"
42
+ # }
43
+ # ]
44
+ # }
45
+
46
+ class Role(BaseModel):
47
+ name: str
48
+ resource_type: str
49
+ resource_id: str
50
+
51
+ class PlatformUser(BaseModel):
52
+ id: str
53
+ email: str
54
+ name: str
55
+ roles: list[Role]
56
+ status: str
57
+ created_at: str
58
+ updated_at: str
59
+
60
+ class PlatformUserListWrapper(BaseModel):
61
+ users: list[PlatformUser]
62
+
63
+ class PlatformUserWrapper(BaseModel):
64
+ user: PlatformUser
mcmcli/data/report.py ADDED
@@ -0,0 +1,110 @@
1
+ # Copyright 2023 Moloco, Inc
2
+ #
3
+ # Licensed under the Apache License, Version 2.0 (the "License");
4
+ # you may not use this file except in compliance with the License.
5
+ # You may obtain a copy of the License at
6
+ #
7
+ # https://www.apache.org/licenses/LICENSE-2.0
8
+ #
9
+ # Unless required by applicable law or agreed to in writing, software
10
+ # distributed under the License is distributed on an "AS IS" BASIS,
11
+ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12
+ # See the License for the specific language governing permissions and
13
+ # limitations under the License.
14
+
15
+ from pydantic import BaseModel
16
+ from typing import Optional
17
+
18
+ #
19
+ # API response dataclasses
20
+ #
21
+ # The report command's example response is as below:
22
+ #
23
+ # {
24
+ # "rows": [
25
+ # {
26
+ # "date": "",
27
+ # "timezone": "America/New_York",
28
+ # "currency": "",
29
+ # "ad_account_id": "",
30
+ # "ad_account_title": "",
31
+ # "campaign_id": "",
32
+ # "campaign_title": "",
33
+ # "catalog_item_id": "",
34
+ # "catalog_item_title": "",
35
+ # "creative_id": "",
36
+ # "creative_title": "",
37
+ # "inventory_id": "",
38
+ # "audience_type": "",
39
+ # "imp_count": "14452078",
40
+ # "click_count": "271062",
41
+ # "money_spent": "11180060000",
42
+ # "purchase_count": "552",
43
+ # "purchase_breakdown": {
44
+ # "direct": "355",
45
+ # "indirect": "197",
46
+ # "total": "552"
47
+ # },
48
+ # "revenue": "54189164206",
49
+ # "revenue_breakdown": {
50
+ # "direct": "33440120100",
51
+ # "indirect": "20749044106",
52
+ # "total": "54189164206"
53
+ # },
54
+ # "roas": 484.6947530335258,
55
+ # "roas_breakdown": {
56
+ # "direct": 299.1050146421397,
57
+ # "indirect": 185.58973839138608,
58
+ # "total": 484.6947530335258
59
+ # },
60
+ # "cr": 0.20364344688669012,
61
+ # "ctr": 1.8755918699027225,
62
+ # "imp_to_purchase": 0.0038195199333964295,
63
+ # "num_ad_accounts": "34",
64
+ # "items_per_ad_account": 462.44117647058823,
65
+ # "cpc": 41245.397731884215,
66
+ # "acos": null,
67
+ # "cpm": 773595.3265682624
68
+ # }
69
+ # ]
70
+ # }
71
+
72
+ class NumberBreakdown(BaseModel):
73
+ direct: float
74
+ indirect: float
75
+ total: float
76
+
77
+ class Report(BaseModel):
78
+ date: str
79
+ timezone: str
80
+ currency: str
81
+ ad_account_id: str
82
+ ad_account_title: str
83
+ campaign_id: str
84
+ campaign_title: str
85
+ catalog_item_id: str
86
+ catalog_item_title: str
87
+ creative_id: str
88
+ creative_title: str
89
+ inventory_id: str
90
+ audience_type: str
91
+ imp_count: str
92
+ click_count: str
93
+ money_spent: str
94
+ purchase_count: str
95
+ purchase_breakdown: NumberBreakdown
96
+ revenue: str
97
+ revenue_breakdown: NumberBreakdown
98
+ roas: float
99
+ roas_breakdown: NumberBreakdown
100
+ cr: float
101
+ ctr: float
102
+ imp_to_purchase: float
103
+ num_ad_accounts: str
104
+ items_per_ad_account: float
105
+ cpc: float
106
+ acos: Optional[float]
107
+ cpm: float
108
+
109
+ class ReportList(BaseModel):
110
+ rows: list[Report]
@@ -0,0 +1,44 @@
1
+ # Copyright 2023 Moloco, Inc
2
+ #
3
+ # Licensed under the Apache License, Version 2.0 (the "License");
4
+ # you may not use this file except in compliance with the License.
5
+ # You may obtain a copy of the License at
6
+ #
7
+ # https://www.apache.org/licenses/LICENSE-2.0
8
+ #
9
+ # Unless required by applicable law or agreed to in writing, software
10
+ # distributed under the License is distributed on an "AS IS" BASIS,
11
+ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12
+ # See the License for the specific language governing permissions and
13
+ # limitations under the License.
14
+
15
+ from pydantic import BaseModel
16
+
17
+ #
18
+ # API error response dataclasses
19
+ #
20
+ # invite-user command's example response is as below:
21
+ #
22
+ # {
23
+ # 'user_join_request': {
24
+ # 'id': 'I6QpJhsvb2iswMN3',
25
+ # 'ad_account_id': 'test',
26
+ # 'user_email': 'a@b.com',
27
+ # 'user_name': 'asfds',
28
+ # 'role': 'AD_ACCOUNT_OWNER',
29
+ # 'created_at': '2024-05-13T00:54:49.874934Z',
30
+ # 'updated_at': '2024-05-13T00:54:49.874934Z'
31
+ # }
32
+ # }
33
+
34
+ class UserJoinRequest(BaseModel):
35
+ id: str # join request ID
36
+ ad_account_id: str
37
+ user_email: str
38
+ user_name: str
39
+ role: str
40
+ created_at: str
41
+ updated_at: str
42
+
43
+ class UserJoinRequestWrapper(BaseModel):
44
+ user_join_request: UserJoinRequest
@@ -1,26 +0,0 @@
1
- mcmcli/__init__.py,sha256=-U6lMZ9_99IXAKwnqnYXYr6NcO6TSmG-kxewgvJjU4k,575
2
- mcmcli/__main__.py,sha256=eoXcJ-YvL7VS-qI3tzWEm2Zz9Mc3aKMC2WRgr8nxDAY,1616
3
- mcmcli/logging.py,sha256=xjRS5ey1ONx_d34qB1Fetb_SwPysoh2hzNDuNAaYYWQ,1739
4
- mcmcli/requests.py,sha256=IuySBQ8P_GoGF3f_TRysfgQNOhi2n9M84WK_eRXnoEU,2945
5
- mcmcli/command/account.py,sha256=kxJbBKYrw6OyCdaNZ0K0BEvKgZEAjj5azO-lNSeYLTM,25107
6
- mcmcli/command/admin.py,sha256=mDngighzQZPWlq0hOex2qzW8GNcZmvzVOTWre5RTJRE,5520
7
- mcmcli/command/auth.py,sha256=QLdr_XFW5BVw9r4a7Kjj5BTBXpSux3AWI9eI03S8aiA,2480
8
- mcmcli/command/config.py,sha256=sdzge-l_Yi2P_TlTgSLqShcGyPCzpW3QJzctpIvc-g4,4195
9
- mcmcli/command/decision.py,sha256=Zjbmt71OVU-oL8Itt9O-SvwT9Lbxw-PAgRZaIgiXi-E,8411
10
- mcmcli/command/wallet.py,sha256=giPDktndwh-NSIZbCvBzCQ6_MttZsqOkCW1wJ-fFJ8Y,11708
11
- mcmcli/data/account.py,sha256=pe7tPapP6vlUD5D5L5Nh5k2bkWdYOK01Mpt5fBYFnJs,1782
12
- mcmcli/data/account_user.py,sha256=27nQp52nMma5a3QszSJGqgq5Z0ivIb-nMZcZuhEgbEg,1328
13
- mcmcli/data/decision.py,sha256=bQ5j_PbPRSFa0sY5g9UVqdNzl_2epchcz1lHoDVuV90,2880
14
- mcmcli/data/error.py,sha256=d6xa_jTXumlA0EzXy2PJQ86ajBb0Pm90fss9R3LuHUc,1094
15
- mcmcli/data/item.py,sha256=Z2xTRhU8T4vyJADO0l6-XPyQXvb9DX_OAjExhSXpW2A,1091
16
- mcmcli/data/item_blocking_result.py,sha256=daK4c8--aCe2vRsnTzLBjgKQo0C-zcDH09dC0GgrN7E,1429
17
- mcmcli/data/seller.py,sha256=40SA7QekM3a3svDrDYLo_QYJ68VUxDO0KeGejJMp4k4,1004
18
- mcmcli/data/token.py,sha256=11wtyLHCAZHu0LVbNDPa-yipcL6lenxoYIKEI58VzFs,1744
19
- mcmcli/data/wallet.py,sha256=eMUi8N0vJdg_E10TPhSPoZkZtmIG7gHyqgabQ8C5Lg8,3217
20
- mcm_cli-1.4.0.dist-info/LICENSE,sha256=RFhQPdSOiMTguUX7JSoIuTxA7HVzCbj_p8WU36HjUQQ,10947
21
- mcm_cli-1.4.0.dist-info/METADATA,sha256=qRht0jD47cuF5FQN1JwCZPlVWsIWNrsMl_sdY4VF7Rs,3018
22
- mcm_cli-1.4.0.dist-info/NOTICE,sha256=Ldnl2MjRaXPxcldUdbI2NTybq60XAa2LowRhFrRTuiI,76
23
- mcm_cli-1.4.0.dist-info/WHEEL,sha256=PZUExdf71Ui_so67QXpySuHtCi3-J3wvF4ORK6k_S8U,91
24
- mcm_cli-1.4.0.dist-info/entry_points.txt,sha256=qTHAWZ-ejSiU4t11RYwtAU8ScqhQPDeMVTG9y4wMVLg,60
25
- mcm_cli-1.4.0.dist-info/top_level.txt,sha256=sh7oqIaqLQlMtKHlxHHgpV2xGMrBMPFWpSp0C6nvJ_Y,7
26
- mcm_cli-1.4.0.dist-info/RECORD,,