Skip to content

Commit f6d7ac9

Browse files
authored
Merge pull request #304 from rudrankriyam/cursor/alternative-distribution-cli-376e
Alternative distribution CLI
2 parents d471dac + 221c871 commit f6d7ac9

22 files changed

+3643
-101
lines changed

README.md

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,7 @@ A **fast**, **lightweight**, and **AI-agent friendly** CLI for App Store Connect
3030
- [Devices](#devices)
3131
- [App Store](#app-store)
3232
- [App Tags](#app-tags)
33+
- [Alternative Distribution](#alternative-distribution)
3334
- [Analytics & Sales](#analytics--sales)
3435
- [Finance Reports](#finance-reports)
3536
- [Sandbox Testers](#sandbox-testers)
@@ -383,6 +384,30 @@ asc app-tags territories-relationships --id "TAG_ID"
383384
asc app-tags relationships --app "APP_ID"
384385
```
385386

387+
### Alternative Distribution
388+
389+
```bash
390+
# List domains and keys
391+
asc alternative-distribution domains list
392+
asc alternative-distribution keys list
393+
394+
# Create and delete a domain
395+
asc alternative-distribution domains create --domain "example.com" --reference-name "Example"
396+
asc alternative-distribution domains delete --domain-id "DOMAIN_ID" --confirm
397+
398+
# Create a key and fetch the key for an app
399+
asc alternative-distribution keys create --app "APP_ID" --public-key-path "./key.pem"
400+
asc alternative-distribution keys app --app "APP_ID"
401+
402+
# Create and fetch packages and versions
403+
asc alternative-distribution packages create --app-store-version-id "APP_STORE_VERSION_ID"
404+
asc alternative-distribution packages get --package-id "PACKAGE_ID"
405+
asc alternative-distribution packages versions list --package-id "PACKAGE_ID"
406+
asc alternative-distribution packages versions get --version-id "VERSION_ID"
407+
asc alternative-distribution packages versions deltas --version-id "VERSION_ID"
408+
asc alternative-distribution packages versions variants --version-id "VERSION_ID"
409+
```
410+
386411
### Analytics & Sales
387412

388413
```bash
Lines changed: 163 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,163 @@
1+
package asc
2+
3+
// AlternativeDistributionDomainAttributes describes an alternative distribution domain.
4+
type AlternativeDistributionDomainAttributes struct {
5+
Domain string `json:"domain,omitempty"`
6+
ReferenceName string `json:"referenceName,omitempty"`
7+
CreatedDate string `json:"createdDate,omitempty"`
8+
}
9+
10+
// AlternativeDistributionDomainsResponse is the response from domain list endpoints.
11+
type AlternativeDistributionDomainsResponse = Response[AlternativeDistributionDomainAttributes]
12+
13+
// AlternativeDistributionDomainResponse is the response from domain detail endpoints.
14+
type AlternativeDistributionDomainResponse = SingleResponse[AlternativeDistributionDomainAttributes]
15+
16+
// AlternativeDistributionDomainCreateAttributes describes attributes for creating a domain.
17+
type AlternativeDistributionDomainCreateAttributes struct {
18+
Domain string `json:"domain"`
19+
ReferenceName string `json:"referenceName"`
20+
}
21+
22+
// AlternativeDistributionDomainCreateData is the data payload for domain create requests.
23+
type AlternativeDistributionDomainCreateData struct {
24+
Type ResourceType `json:"type"`
25+
Attributes AlternativeDistributionDomainCreateAttributes `json:"attributes"`
26+
}
27+
28+
// AlternativeDistributionDomainCreateRequest is a request to create a domain.
29+
type AlternativeDistributionDomainCreateRequest struct {
30+
Data AlternativeDistributionDomainCreateData `json:"data"`
31+
}
32+
33+
// AlternativeDistributionDomainDeleteResult represents CLI output for domain deletions.
34+
type AlternativeDistributionDomainDeleteResult struct {
35+
ID string `json:"id"`
36+
Deleted bool `json:"deleted"`
37+
}
38+
39+
// AlternativeDistributionKeyAttributes describes an alternative distribution key.
40+
type AlternativeDistributionKeyAttributes struct {
41+
PublicKey string `json:"publicKey,omitempty"`
42+
}
43+
44+
// AlternativeDistributionKeysResponse is the response from key list endpoints.
45+
type AlternativeDistributionKeysResponse = Response[AlternativeDistributionKeyAttributes]
46+
47+
// AlternativeDistributionKeyResponse is the response from key detail endpoints.
48+
type AlternativeDistributionKeyResponse = SingleResponse[AlternativeDistributionKeyAttributes]
49+
50+
// AlternativeDistributionKeyCreateAttributes describes attributes for creating a key.
51+
type AlternativeDistributionKeyCreateAttributes struct {
52+
PublicKey string `json:"publicKey"`
53+
}
54+
55+
// AlternativeDistributionKeyCreateRelationships describes relationships for key create requests.
56+
type AlternativeDistributionKeyCreateRelationships struct {
57+
App *Relationship `json:"app,omitempty"`
58+
}
59+
60+
// AlternativeDistributionKeyCreateData is the data payload for key create requests.
61+
type AlternativeDistributionKeyCreateData struct {
62+
Type ResourceType `json:"type"`
63+
Attributes AlternativeDistributionKeyCreateAttributes `json:"attributes"`
64+
Relationships *AlternativeDistributionKeyCreateRelationships `json:"relationships,omitempty"`
65+
}
66+
67+
// AlternativeDistributionKeyCreateRequest is a request to create a key.
68+
type AlternativeDistributionKeyCreateRequest struct {
69+
Data AlternativeDistributionKeyCreateData `json:"data"`
70+
}
71+
72+
// AlternativeDistributionKeyDeleteResult represents CLI output for key deletions.
73+
type AlternativeDistributionKeyDeleteResult struct {
74+
ID string `json:"id"`
75+
Deleted bool `json:"deleted"`
76+
}
77+
78+
// AlternativeDistributionPackageAttributes describes an alternative distribution package.
79+
type AlternativeDistributionPackageAttributes struct {
80+
SourceFileChecksum *Checksums `json:"sourceFileChecksum,omitempty"`
81+
}
82+
83+
// AlternativeDistributionPackageResponse is the response from package detail endpoints.
84+
type AlternativeDistributionPackageResponse = SingleResponse[AlternativeDistributionPackageAttributes]
85+
86+
// AlternativeDistributionPackageCreateRelationships describes relationships for package create requests.
87+
type AlternativeDistributionPackageCreateRelationships struct {
88+
AppStoreVersion Relationship `json:"appStoreVersion"`
89+
}
90+
91+
// AlternativeDistributionPackageCreateData is the data payload for package create requests.
92+
type AlternativeDistributionPackageCreateData struct {
93+
Type ResourceType `json:"type"`
94+
Relationships AlternativeDistributionPackageCreateRelationships `json:"relationships"`
95+
}
96+
97+
// AlternativeDistributionPackageCreateRequest is a request to create a package.
98+
type AlternativeDistributionPackageCreateRequest struct {
99+
Data AlternativeDistributionPackageCreateData `json:"data"`
100+
}
101+
102+
// AlternativeDistributionPackageVersionState represents a package version state.
103+
type AlternativeDistributionPackageVersionState string
104+
105+
const (
106+
AlternativeDistributionPackageVersionStateCompleted AlternativeDistributionPackageVersionState = "COMPLETED"
107+
AlternativeDistributionPackageVersionStateReplaced AlternativeDistributionPackageVersionState = "REPLACED"
108+
)
109+
110+
// AlternativeDistributionPackageVersionAttributes describes a package version.
111+
type AlternativeDistributionPackageVersionAttributes struct {
112+
URL string `json:"url,omitempty"`
113+
URLExpirationDate string `json:"urlExpirationDate,omitempty"`
114+
Version string `json:"version,omitempty"`
115+
FileChecksum string `json:"fileChecksum,omitempty"`
116+
State AlternativeDistributionPackageVersionState `json:"state,omitempty"`
117+
}
118+
119+
// AlternativeDistributionPackageVersionsResponse is the response from package versions list endpoints.
120+
type AlternativeDistributionPackageVersionsResponse = Response[AlternativeDistributionPackageVersionAttributes]
121+
122+
// AlternativeDistributionPackageVersionResponse is the response from package version detail endpoints.
123+
type AlternativeDistributionPackageVersionResponse = SingleResponse[AlternativeDistributionPackageVersionAttributes]
124+
125+
// AlternativeDistributionPackageVariantAttributes describes a package variant.
126+
type AlternativeDistributionPackageVariantAttributes struct {
127+
URL string `json:"url,omitempty"`
128+
URLExpirationDate string `json:"urlExpirationDate,omitempty"`
129+
AlternativeDistributionKeyBlob string `json:"alternativeDistributionKeyBlob,omitempty"`
130+
FileChecksum string `json:"fileChecksum,omitempty"`
131+
}
132+
133+
// AlternativeDistributionPackageVariantsResponse is the response from package variant list endpoints.
134+
type AlternativeDistributionPackageVariantsResponse = Response[AlternativeDistributionPackageVariantAttributes]
135+
136+
// AlternativeDistributionPackageVariantResponse is the response from package variant detail endpoints.
137+
type AlternativeDistributionPackageVariantResponse = SingleResponse[AlternativeDistributionPackageVariantAttributes]
138+
139+
// AlternativeDistributionPackageDeltaAttributes describes a package delta.
140+
type AlternativeDistributionPackageDeltaAttributes struct {
141+
URL string `json:"url,omitempty"`
142+
URLExpirationDate string `json:"urlExpirationDate,omitempty"`
143+
AlternativeDistributionKeyBlob string `json:"alternativeDistributionKeyBlob,omitempty"`
144+
FileChecksum string `json:"fileChecksum,omitempty"`
145+
}
146+
147+
// AlternativeDistributionPackageDeltasResponse is the response from package delta list endpoints.
148+
type AlternativeDistributionPackageDeltasResponse = Response[AlternativeDistributionPackageDeltaAttributes]
149+
150+
// AlternativeDistributionPackageDeltaResponse is the response from package delta detail endpoints.
151+
type AlternativeDistributionPackageDeltaResponse = SingleResponse[AlternativeDistributionPackageDeltaAttributes]
152+
153+
// AppAlternativeDistributionKeyLinkageResponse is the response for app key relationships.
154+
type AppAlternativeDistributionKeyLinkageResponse struct {
155+
Data ResourceData `json:"data"`
156+
Links Links `json:"links,omitempty"`
157+
}
158+
159+
// AppStoreVersionAlternativeDistributionPackageLinkageResponse is the response for app store version package relationships.
160+
type AppStoreVersionAlternativeDistributionPackageLinkageResponse struct {
161+
Data ResourceData `json:"data"`
162+
Links Links `json:"links,omitempty"`
163+
}

0 commit comments

Comments
 (0)