diff --git a/README.md b/README.md index ba6fe336b7..594ff866ff 100644 --- a/README.md +++ b/README.md @@ -64,12 +64,15 @@ BearerAuthMiddleware { ### Making API Calls -The `Client` conforms to `APIProtocol`, which defines a method for every endpoint in the App Store Connect API. Each method accepts an `Input` value and returns an `Output` value with the response. +Each endpoint is a method on `Client`, declared by `APIProtocol`. It returns an `Output` enum with a case for each documented response: ```swift -let response = try await client.appsGetCollection(.init()) +let response = try await client.appsGetCollection(query: .init(limit: 10)) +let apps = try response.ok.body.json.data ``` +The `ok` property throws for any other response. To handle those, switch over the `Output` cases, such as `.unauthorized` or `.undocumented(statusCode:_:)`. + ## Supported Platforms - iOS 13.0+ diff --git a/Sources/ASConnectService/Catalogs/ASConnectService.docc/Extensions/APIProtocol.md b/Sources/ASConnectService/Catalogs/ASConnectService.docc/Extensions/APIProtocol.md index 150383ad2b..96e734b2f1 100644 --- a/Sources/ASConnectService/Catalogs/ASConnectService.docc/Extensions/APIProtocol.md +++ b/Sources/ASConnectService/Catalogs/ASConnectService.docc/Extensions/APIProtocol.md @@ -1,20 +1,28 @@ # ``APIProtocol`` -A protocol defining the available operations for the App Store Connect API. +The operations of the App Store Connect API. ## Overview -The ``APIProtocol`` protocol declares the complete set of operations available through the App Store Connect API. Each method corresponds to an HTTP endpoint and follows a consistent naming pattern: +Each method calls one endpoint, and is named after its resource followed by its action: -- `GetCollection` — List resources (HTTP `GET` on a collection) -- `CreateInstance` — Create a resource (HTTP `POST`) -- `GetInstance` — Get a single resource by ID (HTTP `GET`) -- `UpdateInstance` — Update a resource (HTTP `PATCH`) -- `DeleteInstance` — Delete a resource (HTTP `DELETE`) -- `GetToManyRelated` — Fetch related resources -- `GetToOneRelated` — Fetch a related resource +| Suffix | HTTP method | Action | +| --- | --- | --- | +| `GetCollection` | `GET` | List resources | +| `GetInstance` | `GET` | Get a resource by ID | +| `CreateInstance` | `POST` | Create a resource | +| `UpdateInstance` | `PATCH` | Update a resource | +| `DeleteInstance` | `DELETE` | Delete a resource | +| `GetToOneRelated`, `GetToManyRelated` | `GET` | Get related resources | +| `GetToOneRelationship`, `GetToManyRelationship` | `GET` | Get the IDs of related resources | +| `CreateToManyRelationship` | `POST` | Add relationships | +| `UpdateToOneRelationship`, `ReplaceToManyRelationship` | `PATCH` | Replace relationships | +| `DeleteToManyRelationship` | `DELETE` | Remove relationships | +| `GetMetrics` | `GET` | Get metrics | -The ``Client`` type conforms to this protocol and provides the concrete implementation for making HTTP requests. +For example, ``appsGetCollection(_:)`` lists apps, and ``appsBuildsGetToManyRelated(_:)`` lists the builds of an app. + +Every method also has an overload that takes the `path`, `query`, `headers`, and `body` of its `Input` as separate arguments. ``Client`` provides the implementation. ## Topics @@ -106,6 +114,9 @@ The ``Client`` type conforms to this protocol and provides the concrete implemen - ``appsSubscriptionGracePeriodGetToOneRelated(_:)`` - ``appsSubscriptionGroupsGetToManyRelated(_:)`` - ``appsWebhooksGetToManyRelated(_:)`` +- ``appsAssetLibraryGetToOneRelationship(_:)`` +- ``appsAssetLibraryGetToOneRelated(_:)`` +- ``appsPerformanceOverviewsGetToManyRelated(_:)`` - ``appInfosGetInstance(_:)`` - ``appInfosUpdateInstance(_:)`` - ``appInfosAgeRatingDeclarationGetToOneRelated(_:)`` @@ -207,6 +218,8 @@ The ``Client`` type conforms to this protocol and provides the concrete implemen - ``appStoreVersionLocalizationsSearchKeywordsCreateToManyRelationship(_:)`` - ``appStoreVersionLocalizationsSearchKeywordsDeleteToManyRelationship(_:)`` - ``appStoreVersionLocalizationsSearchKeywordsGetToManyRelated(_:)`` +- ``appStoreVersionLocalizationsPlacementsGetToManyRelationship(_:)`` +- ``appStoreVersionLocalizationsPlacementsGetToManyRelated(_:)`` - ``appStoreVersionPhasedReleasesCreateInstance(_:)`` - ``appStoreVersionPhasedReleasesUpdateInstance(_:)`` - ``appStoreVersionPhasedReleasesDeleteInstance(_:)`` @@ -241,6 +254,8 @@ The ``Client`` type conforms to this protocol and provides the concrete implemen - ``appStoreVersionExperimentTreatmentLocalizationsAppScreenshotSetsGetToManyRelated(_:)`` - ``appStoreVersionExperimentTreatmentLocalizationsAppPreviewSetsGetToManyRelationship(_:)`` - ``appStoreVersionExperimentTreatmentLocalizationsAppScreenshotSetsGetToManyRelationship(_:)`` +- ``appStoreVersionExperimentTreatmentLocalizationsPlacementsGetToManyRelationship(_:)`` +- ``appStoreVersionExperimentTreatmentLocalizationsPlacementsGetToManyRelated(_:)`` ### App Custom Product Pages @@ -267,6 +282,8 @@ The ``Client`` type conforms to this protocol and provides the concrete implemen - ``appCustomProductPageLocalizationsSearchKeywordsCreateToManyRelationship(_:)`` - ``appCustomProductPageLocalizationsSearchKeywordsDeleteToManyRelationship(_:)`` - ``appCustomProductPageLocalizationsSearchKeywordsGetToManyRelated(_:)`` +- ``appCustomProductPageLocalizationsPlacementsGetToManyRelationship(_:)`` +- ``appCustomProductPageLocalizationsPlacementsGetToManyRelated(_:)`` ### App Clips @@ -322,6 +339,8 @@ The ``Client`` type conforms to this protocol and provides the concrete implemen - ``appEventLocalizationsAppEventVideoClipsGetToManyRelated(_:)`` - ``appEventLocalizationsAppEventScreenshotsGetToManyRelationship(_:)`` - ``appEventLocalizationsAppEventVideoClipsGetToManyRelationship(_:)`` +- ``appEventLocalizationsPlacementsGetToManyRelationship(_:)`` +- ``appEventLocalizationsPlacementsGetToManyRelated(_:)`` - ``appEventScreenshotsCreateInstance(_:)`` - ``appEventScreenshotsGetInstance(_:)`` - ``appEventScreenshotsUpdateInstance(_:)`` @@ -358,6 +377,32 @@ The ``Client`` type conforms to this protocol and provides the concrete implemen - ``routingAppCoveragesUpdateInstance(_:)`` - ``routingAppCoveragesDeleteInstance(_:)`` +### App Asset Library + +- ``appAssetLibrariesGetInstance(_:)`` +- ``appAssetLibrariesImagesGetToManyRelationship(_:)`` +- ``appAssetLibrariesImagesGetToManyRelated(_:)`` +- ``appAssetLibrariesVideosGetToManyRelationship(_:)`` +- ``appAssetLibrariesVideosGetToManyRelated(_:)`` +- ``appAssetLibraryImagesCreateInstance(_:)`` +- ``appAssetLibraryImagesGetInstance(_:)`` +- ``appAssetLibraryImagesUpdateInstance(_:)`` +- ``appAssetLibraryImagesDeleteInstance(_:)`` +- ``appAssetLibraryImagesPlacementsGetToManyRelationship(_:)`` +- ``appAssetLibraryImagesPlacementsGetToManyRelated(_:)`` +- ``appAssetLibraryVideosCreateInstance(_:)`` +- ``appAssetLibraryVideosGetInstance(_:)`` +- ``appAssetLibraryVideosUpdateInstance(_:)`` +- ``appAssetLibraryVideosDeleteInstance(_:)`` +- ``appAssetLibraryVideosPlacementsGetToManyRelationship(_:)`` +- ``appAssetLibraryVideosPlacementsGetToManyRelated(_:)`` +- ``appAssetLibraryPlacementsCreateInstance(_:)`` +- ``appAssetLibraryPlacementsGetInstance(_:)`` +- ``appAssetLibraryPlacementsDeleteInstance(_:)`` +- ``appAssetLibraryPlacementOrderingRequestsCreateInstance(_:)`` +- ``appAssetLibraryRefDataGetCollection(_:)`` +- ``appAssetLibraryRefDataGetInstance(_:)`` + ### App Encryption - ``appEncryptionDeclarationsGetCollection(_:)`` @@ -581,15 +626,33 @@ The ``Client`` type conforms to this protocol and provides the concrete implemen - ``inAppPurchasesV2OfferCodesGetToManyRelationship(_:)`` - ``inAppPurchasesV2PricePointsGetToManyRelationship(_:)`` - ``inAppPurchasesV2PromotedPurchaseGetToOneRelationship(_:)`` +- ``inAppPurchasesV2VersionsGetToManyRelationship(_:)`` +- ``inAppPurchasesV2VersionsGetToManyRelated(_:)`` +- ``inAppPurchaseVersionsCreateInstance(_:)`` +- ``inAppPurchaseVersionsGetInstance(_:)`` +- ``inAppPurchaseVersionsImageGetToOneRelationship(_:)`` +- ``inAppPurchaseVersionsImageGetToOneRelated(_:)`` +- ``inAppPurchaseVersionsImagesGetToManyRelationship(_:)`` +- ``inAppPurchaseVersionsImagesGetToManyRelated(_:)`` +- ``inAppPurchaseVersionsLocalizationsGetToManyRelationship(_:)`` +- ``inAppPurchaseVersionsLocalizationsGetToManyRelated(_:)`` - ``inAppPurchaseLocalizationsCreateInstance(_:)`` - ``inAppPurchaseLocalizationsGetInstance(_:)`` - ``inAppPurchaseLocalizationsUpdateInstance(_:)`` - ``inAppPurchaseLocalizationsDeleteInstance(_:)`` +- ``inAppPurchaseLocalizationsV2CreateInstance(_:)`` +- ``inAppPurchaseLocalizationsV2GetInstance(_:)`` +- ``inAppPurchaseLocalizationsV2UpdateInstance(_:)`` +- ``inAppPurchaseLocalizationsV2DeleteInstance(_:)`` - ``inAppPurchaseContentsGetInstance(_:)`` - ``inAppPurchaseImagesCreateInstance(_:)`` - ``inAppPurchaseImagesGetInstance(_:)`` - ``inAppPurchaseImagesUpdateInstance(_:)`` - ``inAppPurchaseImagesDeleteInstance(_:)`` +- ``inAppPurchaseImagesV2CreateInstance(_:)`` +- ``inAppPurchaseImagesV2GetInstance(_:)`` +- ``inAppPurchaseImagesV2UpdateInstance(_:)`` +- ``inAppPurchaseImagesV2DeleteInstance(_:)`` - ``inAppPurchaseAppStoreReviewScreenshotsCreateInstance(_:)`` - ``inAppPurchaseAppStoreReviewScreenshotsGetInstance(_:)`` - ``inAppPurchaseAppStoreReviewScreenshotsUpdateInstance(_:)`` @@ -660,6 +723,18 @@ The ``Client`` type conforms to this protocol and provides the concrete implemen - ``subscriptionsSubscriptionAvailabilityGetToOneRelated(_:)`` - ``subscriptionsSubscriptionLocalizationsGetToManyRelated(_:)`` - ``subscriptionsWinBackOffersGetToManyRelated(_:)`` +- ``subscriptionsPlanAvailabilitiesGetToManyRelationship(_:)`` +- ``subscriptionsPlanAvailabilitiesGetToManyRelated(_:)`` +- ``subscriptionsVersionsGetToManyRelationship(_:)`` +- ``subscriptionsVersionsGetToManyRelated(_:)`` +- ``subscriptionVersionsCreateInstance(_:)`` +- ``subscriptionVersionsGetInstance(_:)`` +- ``subscriptionVersionsImageGetToOneRelationship(_:)`` +- ``subscriptionVersionsImageGetToOneRelated(_:)`` +- ``subscriptionVersionsImagesGetToManyRelationship(_:)`` +- ``subscriptionVersionsImagesGetToManyRelated(_:)`` +- ``subscriptionVersionsLocalizationsGetToManyRelationship(_:)`` +- ``subscriptionVersionsLocalizationsGetToManyRelated(_:)`` - ``subscriptionGroupsCreateInstance(_:)`` - ``subscriptionGroupsGetInstance(_:)`` - ``subscriptionGroupsUpdateInstance(_:)`` @@ -668,19 +743,37 @@ The ``Client`` type conforms to this protocol and provides the concrete implemen - ``subscriptionGroupsSubscriptionsGetToManyRelationship(_:)`` - ``subscriptionGroupsSubscriptionGroupLocalizationsGetToManyRelated(_:)`` - ``subscriptionGroupsSubscriptionsGetToManyRelated(_:)`` +- ``subscriptionGroupsVersionsGetToManyRelationship(_:)`` +- ``subscriptionGroupsVersionsGetToManyRelated(_:)`` +- ``subscriptionGroupVersionsCreateInstance(_:)`` +- ``subscriptionGroupVersionsGetInstance(_:)`` +- ``subscriptionGroupVersionsLocalizationsGetToManyRelationship(_:)`` +- ``subscriptionGroupVersionsLocalizationsGetToManyRelated(_:)`` - ``subscriptionGroupLocalizationsCreateInstance(_:)`` - ``subscriptionGroupLocalizationsGetInstance(_:)`` - ``subscriptionGroupLocalizationsUpdateInstance(_:)`` - ``subscriptionGroupLocalizationsDeleteInstance(_:)`` +- ``subscriptionGroupLocalizationsV2CreateInstance(_:)`` +- ``subscriptionGroupLocalizationsV2GetInstance(_:)`` +- ``subscriptionGroupLocalizationsV2UpdateInstance(_:)`` +- ``subscriptionGroupLocalizationsV2DeleteInstance(_:)`` - ``subscriptionGroupSubmissionsCreateInstance(_:)`` - ``subscriptionLocalizationsCreateInstance(_:)`` - ``subscriptionLocalizationsGetInstance(_:)`` - ``subscriptionLocalizationsUpdateInstance(_:)`` - ``subscriptionLocalizationsDeleteInstance(_:)`` +- ``subscriptionLocalizationsV2CreateInstance(_:)`` +- ``subscriptionLocalizationsV2GetInstance(_:)`` +- ``subscriptionLocalizationsV2UpdateInstance(_:)`` +- ``subscriptionLocalizationsV2DeleteInstance(_:)`` - ``subscriptionImagesCreateInstance(_:)`` - ``subscriptionImagesGetInstance(_:)`` - ``subscriptionImagesUpdateInstance(_:)`` - ``subscriptionImagesDeleteInstance(_:)`` +- ``subscriptionImagesV2CreateInstance(_:)`` +- ``subscriptionImagesV2GetInstance(_:)`` +- ``subscriptionImagesV2UpdateInstance(_:)`` +- ``subscriptionImagesV2DeleteInstance(_:)`` - ``subscriptionAppStoreReviewScreenshotsCreateInstance(_:)`` - ``subscriptionAppStoreReviewScreenshotsGetInstance(_:)`` - ``subscriptionAppStoreReviewScreenshotsUpdateInstance(_:)`` @@ -689,6 +782,12 @@ The ``Client`` type conforms to this protocol and provides the concrete implemen - ``subscriptionAvailabilitiesGetInstance(_:)`` - ``subscriptionAvailabilitiesAvailableTerritoriesGetToManyRelated(_:)`` - ``subscriptionAvailabilitiesAvailableTerritoriesGetToManyRelationship(_:)`` +- ``subscriptionPlanAvailabilitiesCreateInstance(_:)`` +- ``subscriptionPlanAvailabilitiesGetInstance(_:)`` +- ``subscriptionPlanAvailabilitiesUpdateInstance(_:)`` +- ``subscriptionPlanAvailabilitiesAvailableTerritoriesGetToManyRelationship(_:)`` +- ``subscriptionPlanAvailabilitiesAvailableTerritoriesReplaceToManyRelationship(_:)`` +- ``subscriptionPlanAvailabilitiesAvailableTerritoriesGetToManyRelated(_:)`` - ``subscriptionGracePeriodsGetInstance(_:)`` - ``subscriptionGracePeriodsUpdateInstance(_:)`` - ``subscriptionIntroductoryOffersCreateInstance(_:)`` @@ -713,6 +812,7 @@ The ``Client`` type conforms to this protocol and provides the concrete implemen - ``subscriptionPricePointsGetInstance(_:)`` - ``subscriptionPricePointsEqualizationsGetToManyRelated(_:)`` - ``subscriptionPricePointsEqualizationsGetToManyRelationship(_:)`` +- ``subscriptionPricePointsAdjustedEqualizationsGetToManyRelated(_:)`` - ``subscriptionPricesCreateInstance(_:)`` - ``subscriptionPricesDeleteInstance(_:)`` - ``subscriptionPromotionalOffersCreateInstance(_:)`` @@ -773,6 +873,9 @@ The ``Client`` type conforms to this protocol and provides the concrete implemen - ``gameCenterDetailsGameCenterLeaderboardsV2ReplaceToManyRelationship(_:)`` - ``gameCenterDetailsLeaderboardReleasesGetToManyRelationship(_:)`` - ``gameCenterDetailsLeaderboardSetReleasesGetToManyRelationship(_:)`` +- ``gameCenterDetailsBlockedPlayersGetToManyRelationship(_:)`` +- ``gameCenterDetailsBlockedPlayersGetToManyRelated(_:)`` +- ``gameCenterDetailPlayersUpdateInstance(_:)`` - ``gameCenterGroupsGetCollection(_:)`` - ``gameCenterGroupsCreateInstance(_:)`` - ``gameCenterGroupsGetInstance(_:)`` @@ -871,6 +974,9 @@ The ``Client`` type conforms to this protocol and provides the concrete implemen - ``gameCenterLeaderboardsV2ChallengeUpdateToOneRelationship(_:)`` - ``gameCenterLeaderboardsV2VersionsGetToManyRelationship(_:)`` - ``gameCenterLeaderboardsV2VersionsGetToManyRelated(_:)`` +- ``gameCenterLeaderboardsV2GameCenterScoreModerationsGetToManyRelationship(_:)`` +- ``gameCenterLeaderboardsV2GameCenterScoreModerationsGetToManyRelated(_:)`` +- ``gameCenterScoreModerationsUpdateInstance(_:)`` - ``gameCenterLeaderboardVersionsV2CreateInstance(_:)`` - ``gameCenterLeaderboardVersionsV2GetInstance(_:)`` - ``gameCenterLeaderboardVersionsV2LocalizationsGetToManyRelated(_:)`` diff --git a/Sources/ASConnectService/Catalogs/ASConnectService.docc/Extensions/Client.md b/Sources/ASConnectService/Catalogs/ASConnectService.docc/Extensions/Client.md index 542beefb47..e8961f7321 100644 --- a/Sources/ASConnectService/Catalogs/ASConnectService.docc/Extensions/Client.md +++ b/Sources/ASConnectService/Catalogs/ASConnectService.docc/Extensions/Client.md @@ -1,14 +1,12 @@ # ``Client`` -The API client for performing HTTP operations against the App Store Connect API. +The App Store Connect API client. ## Overview -The ``Client`` struct is the main entry point for interacting with the App Store Connect API. It conforms to ``APIProtocol`` and provides concrete implementations for all available API operations. +``Client`` implements every ``APIProtocol`` method by sending the request through its transport, after passing it through its middlewares. -### Creating a Client - -Create a ``Client`` by providing a server URL, a transport, and optionally a list of middlewares for authentication or request customization. +Include ``BearerAuthMiddleware`` in `middlewares` to authenticate requests: ```swift import ASConnectService @@ -23,12 +21,10 @@ let client = Client( ) ``` -### Making API Calls - -Each method on the ``Client`` corresponds to an HTTP endpoint defined in the App Store Connect API OpenAPI specification. Methods accept an `Input` value and return an `Output` value representing the response. +Each method takes either a single `Input` value or its `path`, `query`, `headers`, and `body` as separate arguments: ```swift -let response = try await client.appsGetCollection(.init()) +let response = try await client.appsGetInstance(path: .init(id: appID)) ``` ## Topics diff --git a/Sources/ASConnectService/Catalogs/ASConnectService.docc/Extensions/Components.md b/Sources/ASConnectService/Catalogs/ASConnectService.docc/Extensions/Components.md index 71611c6df0..f3939ca782 100644 --- a/Sources/ASConnectService/Catalogs/ASConnectService.docc/Extensions/Components.md +++ b/Sources/ASConnectService/Catalogs/ASConnectService.docc/Extensions/Components.md @@ -1,17 +1,16 @@ # ``Components`` -Types generated from the components section of the OpenAPI document. +The data models of the App Store Connect API. ## Overview -The ``Components`` namespace contains all the data models defined in the App Store Connect API OpenAPI specification. These types are organized within the ``Components/Schemas`` namespace and are used as request and response bodies across all API operations. +The models are in ``Components/Schemas``, and are used as request and response bodies. Each resource typically has: -Each resource type typically includes: - -- A **model type** (e.g., `Components.Schemas.App`) representing the resource -- A **response type** (e.g., `Components.Schemas.AppResponse`) for single-resource responses -- A **collection response type** (e.g., `Components.Schemas.AppsResponse`) for list responses -- **Request types** for create and update operations (e.g., `Components.Schemas.AppUpdateRequest`) +- A model, such as ``Components/Schemas/App``. +- A single-resource response, such as ``Components/Schemas/AppResponse``. +- A collection response, such as ``Components/Schemas/AppsResponse``. +- Create and update requests, such as ``Components/Schemas/AppUpdateRequest``. +- Linkage responses for its relationships, such as ``Components/Schemas/AppBuildsLinkagesResponse``. ## Topics @@ -94,6 +93,7 @@ Each resource type typically includes: - ``Components/Schemas/AppMediaStateError`` - ``Components/Schemas/AppMediaVideoState`` - ``Components/Schemas/AppPerfPowerMetricsLinkagesResponse`` +- ``Components/Schemas/AppPerformanceOverviewsLinkagesResponse`` - ``Components/Schemas/AppPreReleaseVersionsLinkagesResponse`` - ``Components/Schemas/AppPricePointV3`` - ``Components/Schemas/AppPricePointV3EqualizationsLinkagesResponse`` @@ -156,6 +156,7 @@ Each resource type typically includes: - ``Components/Schemas/AppStoreVersionLocalizationAppPreviewSetsLinkagesResponse`` - ``Components/Schemas/AppStoreVersionLocalizationAppScreenshotSetsLinkagesResponse`` - ``Components/Schemas/AppStoreVersionLocalizationCreateRequest`` +- ``Components/Schemas/AppStoreVersionLocalizationPlacementsLinkagesResponse`` - ``Components/Schemas/AppStoreVersionLocalizationResponse`` - ``Components/Schemas/AppStoreVersionLocalizationSearchKeywordsLinkagesRequest`` - ``Components/Schemas/AppStoreVersionLocalizationSearchKeywordsLinkagesResponse`` @@ -194,6 +195,7 @@ Each resource type typically includes: - ``Components/Schemas/AppStoreVersionExperimentTreatmentLocalizationAppPreviewSetsLinkagesResponse`` - ``Components/Schemas/AppStoreVersionExperimentTreatmentLocalizationAppScreenshotSetsLinkagesResponse`` - ``Components/Schemas/AppStoreVersionExperimentTreatmentLocalizationCreateRequest`` +- ``Components/Schemas/AppStoreVersionExperimentTreatmentLocalizationPlacementsLinkagesResponse`` - ``Components/Schemas/AppStoreVersionExperimentTreatmentLocalizationResponse`` - ``Components/Schemas/AppStoreVersionExperimentTreatmentLocalizationsResponse`` - ``Components/Schemas/AppStoreVersionExperimentTreatmentResponse`` @@ -218,6 +220,7 @@ Each resource type typically includes: - ``Components/Schemas/AppCustomProductPageLocalizationAppScreenshotSetsLinkagesResponse`` - ``Components/Schemas/AppCustomProductPageLocalizationCreateRequest`` - ``Components/Schemas/AppCustomProductPageLocalizationInlineCreate`` +- ``Components/Schemas/AppCustomProductPageLocalizationPlacementsLinkagesResponse`` - ``Components/Schemas/AppCustomProductPageLocalizationResponse`` - ``Components/Schemas/AppCustomProductPageLocalizationSearchKeywordsLinkagesRequest`` - ``Components/Schemas/AppCustomProductPageLocalizationSearchKeywordsLinkagesResponse`` @@ -289,6 +292,7 @@ Each resource type typically includes: - ``Components/Schemas/AppEventLocalizationAppEventScreenshotsLinkagesResponse`` - ``Components/Schemas/AppEventLocalizationAppEventVideoClipsLinkagesResponse`` - ``Components/Schemas/AppEventLocalizationCreateRequest`` +- ``Components/Schemas/AppEventLocalizationPlacementsLinkagesResponse`` - ``Components/Schemas/AppEventLocalizationResponse`` - ``Components/Schemas/AppEventLocalizationUpdateRequest`` - ``Components/Schemas/AppEventLocalizationsLinkagesResponse`` @@ -337,6 +341,71 @@ Each resource type typically includes: - ``Components/Schemas/RoutingAppCoverageResponse`` - ``Components/Schemas/RoutingAppCoverageUpdateRequest`` +### App Asset Library + +- ``Components/Schemas/AppAssetLibrary`` +- ``Components/Schemas/AppAssetLibraryAssetCategory`` +- ``Components/Schemas/AppAssetLibraryAssetState`` +- ``Components/Schemas/AppAssetLibraryDisplayClass`` +- ``Components/Schemas/AppAssetLibraryFeature`` +- ``Components/Schemas/AppAssetLibraryImage`` +- ``Components/Schemas/AppAssetLibraryImageAcceptedAttributes`` +- ``Components/Schemas/AppAssetLibraryImageApprovedAttributes`` +- ``Components/Schemas/AppAssetLibraryImageArchivedAttributes`` +- ``Components/Schemas/AppAssetLibraryImageAwaitingUploadAttributes`` +- ``Components/Schemas/AppAssetLibraryImageCommonAttributes`` +- ``Components/Schemas/AppAssetLibraryImageCreateRequest`` +- ``Components/Schemas/AppAssetLibraryImageFailedAttributes`` +- ``Components/Schemas/AppAssetLibraryImageInReviewAttributes`` +- ``Components/Schemas/AppAssetLibraryImagePlacementsLinkagesResponse`` +- ``Components/Schemas/AppAssetLibraryImageReadyForReviewAttributes`` +- ``Components/Schemas/AppAssetLibraryImageRejectedAttributes`` +- ``Components/Schemas/AppAssetLibraryImageResponse`` +- ``Components/Schemas/AppAssetLibraryImageUpdateRequest`` +- ``Components/Schemas/AppAssetLibraryImageUploadCompleteAttributes`` +- ``Components/Schemas/AppAssetLibraryImageWaitingForReviewAttributes`` +- ``Components/Schemas/AppAssetLibraryImagesLinkagesResponse`` +- ``Components/Schemas/AppAssetLibraryImagesResponse`` +- ``Components/Schemas/AppAssetLibraryLinkageResponse`` +- ``Components/Schemas/AppAssetLibraryMediaType`` +- ``Components/Schemas/AppAssetLibraryPlacement`` +- ``Components/Schemas/AppAssetLibraryPlacementCommonAttributes`` +- ``Components/Schemas/AppAssetLibraryPlacementCommonRelationships`` +- ``Components/Schemas/AppAssetLibraryPlacementCreateRequest`` +- ``Components/Schemas/AppAssetLibraryPlacementImageRelationships`` +- ``Components/Schemas/AppAssetLibraryPlacementOrderingRequest`` +- ``Components/Schemas/AppAssetLibraryPlacementOrderingRequestCreateRequest`` +- ``Components/Schemas/AppAssetLibraryPlacementOrderingRequestResponse`` +- ``Components/Schemas/AppAssetLibraryPlacementPlatform`` +- ``Components/Schemas/AppAssetLibraryPlacementResponse`` +- ``Components/Schemas/AppAssetLibraryPlacementState`` +- ``Components/Schemas/AppAssetLibraryPlacementType`` +- ``Components/Schemas/AppAssetLibraryPlacementVideoAttributes`` +- ``Components/Schemas/AppAssetLibraryPlacementVideoRelationships`` +- ``Components/Schemas/AppAssetLibraryPlacementsResponse`` +- ``Components/Schemas/AppAssetLibraryRefDataResponse`` +- ``Components/Schemas/AppAssetLibraryRefDatum`` +- ``Components/Schemas/AppAssetLibraryRefDatumResponse`` +- ``Components/Schemas/AppAssetLibraryResponse`` +- ``Components/Schemas/AppAssetLibraryVideo`` +- ``Components/Schemas/AppAssetLibraryVideoAcceptedAttributes`` +- ``Components/Schemas/AppAssetLibraryVideoApprovedAttributes`` +- ``Components/Schemas/AppAssetLibraryVideoArchivedAttributes`` +- ``Components/Schemas/AppAssetLibraryVideoAwaitingUploadAttributes`` +- ``Components/Schemas/AppAssetLibraryVideoCommonAttributes`` +- ``Components/Schemas/AppAssetLibraryVideoCreateRequest`` +- ``Components/Schemas/AppAssetLibraryVideoFailedAttributes`` +- ``Components/Schemas/AppAssetLibraryVideoInReviewAttributes`` +- ``Components/Schemas/AppAssetLibraryVideoPlacementsLinkagesResponse`` +- ``Components/Schemas/AppAssetLibraryVideoReadyForReviewAttributes`` +- ``Components/Schemas/AppAssetLibraryVideoRejectedAttributes`` +- ``Components/Schemas/AppAssetLibraryVideoResponse`` +- ``Components/Schemas/AppAssetLibraryVideoUpdateRequest`` +- ``Components/Schemas/AppAssetLibraryVideoUploadCompleteAttributes`` +- ``Components/Schemas/AppAssetLibraryVideoWaitingForReviewAttributes`` +- ``Components/Schemas/AppAssetLibraryVideosLinkagesResponse`` +- ``Components/Schemas/AppAssetLibraryVideosResponse`` + ### App Encryption - ``Components/Schemas/AppEncryptionDeclaration`` @@ -573,12 +642,22 @@ Each resource type typically includes: - ``Components/Schemas/InAppPurchaseImageCreateRequest`` - ``Components/Schemas/InAppPurchaseImageResponse`` - ``Components/Schemas/InAppPurchaseImageUpdateRequest`` +- ``Components/Schemas/InAppPurchaseImageV2`` +- ``Components/Schemas/InAppPurchaseImageV2CreateRequest`` +- ``Components/Schemas/InAppPurchaseImageV2Response`` +- ``Components/Schemas/InAppPurchaseImageV2UpdateRequest`` - ``Components/Schemas/InAppPurchaseImagesResponse`` +- ``Components/Schemas/InAppPurchaseImagesV2Response`` - ``Components/Schemas/InAppPurchaseLocalization`` - ``Components/Schemas/InAppPurchaseLocalizationCreateRequest`` - ``Components/Schemas/InAppPurchaseLocalizationResponse`` - ``Components/Schemas/InAppPurchaseLocalizationUpdateRequest`` +- ``Components/Schemas/InAppPurchaseLocalizationV2`` +- ``Components/Schemas/InAppPurchaseLocalizationV2CreateRequest`` +- ``Components/Schemas/InAppPurchaseLocalizationV2Response`` +- ``Components/Schemas/InAppPurchaseLocalizationV2UpdateRequest`` - ``Components/Schemas/InAppPurchaseLocalizationsResponse`` +- ``Components/Schemas/InAppPurchaseLocalizationsV2Response`` - ``Components/Schemas/InAppPurchaseOfferCode`` - ``Components/Schemas/InAppPurchaseOfferCodeCreateRequest`` - ``Components/Schemas/InAppPurchaseOfferCodeCustomCode`` @@ -633,6 +712,14 @@ Each resource type typically includes: - ``Components/Schemas/InAppPurchaseV2PromotedPurchaseLinkageResponse`` - ``Components/Schemas/InAppPurchaseV2Response`` - ``Components/Schemas/InAppPurchaseV2UpdateRequest`` +- ``Components/Schemas/InAppPurchaseV2VersionsLinkagesResponse`` +- ``Components/Schemas/InAppPurchaseVersion`` +- ``Components/Schemas/InAppPurchaseVersionCreateRequest`` +- ``Components/Schemas/InAppPurchaseVersionImageLinkageResponse`` +- ``Components/Schemas/InAppPurchaseVersionImagesLinkagesResponse`` +- ``Components/Schemas/InAppPurchaseVersionLocalizationsLinkagesResponse`` +- ``Components/Schemas/InAppPurchaseVersionResponse`` +- ``Components/Schemas/InAppPurchaseVersionsResponse`` - ``Components/Schemas/InAppPurchasesResponse`` - ``Components/Schemas/InAppPurchasesV2Response`` - ``Components/Schemas/OfferCodeEnvironment`` @@ -666,7 +753,12 @@ Each resource type typically includes: - ``Components/Schemas/SubscriptionGroupLocalizationCreateRequest`` - ``Components/Schemas/SubscriptionGroupLocalizationResponse`` - ``Components/Schemas/SubscriptionGroupLocalizationUpdateRequest`` +- ``Components/Schemas/SubscriptionGroupLocalizationV2`` +- ``Components/Schemas/SubscriptionGroupLocalizationV2CreateRequest`` +- ``Components/Schemas/SubscriptionGroupLocalizationV2Response`` +- ``Components/Schemas/SubscriptionGroupLocalizationV2UpdateRequest`` - ``Components/Schemas/SubscriptionGroupLocalizationsResponse`` +- ``Components/Schemas/SubscriptionGroupLocalizationsV2Response`` - ``Components/Schemas/SubscriptionGroupResponse`` - ``Components/Schemas/SubscriptionGroupSubmission`` - ``Components/Schemas/SubscriptionGroupSubmissionCreateRequest`` @@ -674,13 +766,24 @@ Each resource type typically includes: - ``Components/Schemas/SubscriptionGroupSubscriptionGroupLocalizationsLinkagesResponse`` - ``Components/Schemas/SubscriptionGroupSubscriptionsLinkagesResponse`` - ``Components/Schemas/SubscriptionGroupUpdateRequest`` +- ``Components/Schemas/SubscriptionGroupVersion`` +- ``Components/Schemas/SubscriptionGroupVersionCreateRequest`` +- ``Components/Schemas/SubscriptionGroupVersionLocalizationsLinkagesResponse`` +- ``Components/Schemas/SubscriptionGroupVersionResponse`` +- ``Components/Schemas/SubscriptionGroupVersionsLinkagesResponse`` +- ``Components/Schemas/SubscriptionGroupVersionsResponse`` - ``Components/Schemas/SubscriptionGroupsResponse`` - ``Components/Schemas/SubscriptionImage`` - ``Components/Schemas/SubscriptionImageCreateRequest`` - ``Components/Schemas/SubscriptionImageResponse`` - ``Components/Schemas/SubscriptionImageUpdateRequest`` +- ``Components/Schemas/SubscriptionImageV2`` +- ``Components/Schemas/SubscriptionImageV2CreateRequest`` +- ``Components/Schemas/SubscriptionImageV2Response`` +- ``Components/Schemas/SubscriptionImageV2UpdateRequest`` - ``Components/Schemas/SubscriptionImagesLinkagesResponse`` - ``Components/Schemas/SubscriptionImagesResponse`` +- ``Components/Schemas/SubscriptionImagesV2Response`` - ``Components/Schemas/SubscriptionIntroductoryOffer`` - ``Components/Schemas/SubscriptionIntroductoryOfferCreateRequest`` - ``Components/Schemas/SubscriptionIntroductoryOfferInlineCreate`` @@ -693,7 +796,12 @@ Each resource type typically includes: - ``Components/Schemas/SubscriptionLocalizationCreateRequest`` - ``Components/Schemas/SubscriptionLocalizationResponse`` - ``Components/Schemas/SubscriptionLocalizationUpdateRequest`` +- ``Components/Schemas/SubscriptionLocalizationV2`` +- ``Components/Schemas/SubscriptionLocalizationV2CreateRequest`` +- ``Components/Schemas/SubscriptionLocalizationV2Response`` +- ``Components/Schemas/SubscriptionLocalizationV2UpdateRequest`` - ``Components/Schemas/SubscriptionLocalizationsResponse`` +- ``Components/Schemas/SubscriptionLocalizationsV2Response`` - ``Components/Schemas/SubscriptionOfferCode`` - ``Components/Schemas/SubscriptionOfferCodeCreateRequest`` - ``Components/Schemas/SubscriptionOfferCodeCustomCode`` @@ -721,6 +829,15 @@ Each resource type typically includes: - ``Components/Schemas/SubscriptionOfferDuration`` - ``Components/Schemas/SubscriptionOfferEligibility`` - ``Components/Schemas/SubscriptionOfferMode`` +- ``Components/Schemas/SubscriptionPlanAvailabilitiesLinkagesResponse`` +- ``Components/Schemas/SubscriptionPlanAvailabilitiesResponse`` +- ``Components/Schemas/SubscriptionPlanAvailability`` +- ``Components/Schemas/SubscriptionPlanAvailabilityAvailableTerritoriesLinkagesRequest`` +- ``Components/Schemas/SubscriptionPlanAvailabilityAvailableTerritoriesLinkagesResponse`` +- ``Components/Schemas/SubscriptionPlanAvailabilityCreateRequest`` +- ``Components/Schemas/SubscriptionPlanAvailabilityResponse`` +- ``Components/Schemas/SubscriptionPlanAvailabilityUpdateRequest`` +- ``Components/Schemas/SubscriptionPlanType`` - ``Components/Schemas/SubscriptionPrice`` - ``Components/Schemas/SubscriptionPriceCreateRequest`` - ``Components/Schemas/SubscriptionPriceInlineCreate`` @@ -754,6 +871,14 @@ Each resource type typically includes: - ``Components/Schemas/SubscriptionSubscriptionAvailabilityLinkageResponse`` - ``Components/Schemas/SubscriptionSubscriptionLocalizationsLinkagesResponse`` - ``Components/Schemas/SubscriptionUpdateRequest`` +- ``Components/Schemas/SubscriptionVersion`` +- ``Components/Schemas/SubscriptionVersionCreateRequest`` +- ``Components/Schemas/SubscriptionVersionImageLinkageResponse`` +- ``Components/Schemas/SubscriptionVersionImagesLinkagesResponse`` +- ``Components/Schemas/SubscriptionVersionLocalizationsLinkagesResponse`` +- ``Components/Schemas/SubscriptionVersionResponse`` +- ``Components/Schemas/SubscriptionVersionsLinkagesResponse`` +- ``Components/Schemas/SubscriptionVersionsResponse`` - ``Components/Schemas/SubscriptionWinBackOffersLinkagesResponse`` - ``Components/Schemas/SubscriptionsResponse`` - ``Components/Schemas/WinBackOffer`` @@ -888,6 +1013,7 @@ Each resource type typically includes: - ``Components/Schemas/GameCenterDetail`` - ``Components/Schemas/GameCenterDetailAchievementReleasesLinkagesResponse`` - ``Components/Schemas/GameCenterDetailActivityReleasesLinkagesResponse`` +- ``Components/Schemas/GameCenterDetailBlockedPlayersLinkagesResponse`` - ``Components/Schemas/GameCenterDetailChallengeReleasesLinkagesResponse`` - ``Components/Schemas/GameCenterDetailChallengesMinimumPlatformVersionsLinkagesRequest`` - ``Components/Schemas/GameCenterDetailCreateRequest`` @@ -909,6 +1035,10 @@ Each resource type typically includes: - ``Components/Schemas/GameCenterDetailGameCenterLeaderboardsV2LinkagesResponse`` - ``Components/Schemas/GameCenterDetailLeaderboardReleasesLinkagesResponse`` - ``Components/Schemas/GameCenterDetailLeaderboardSetReleasesLinkagesResponse`` +- ``Components/Schemas/GameCenterDetailPlayer`` +- ``Components/Schemas/GameCenterDetailPlayerResponse`` +- ``Components/Schemas/GameCenterDetailPlayerUpdateRequest`` +- ``Components/Schemas/GameCenterDetailPlayersResponse`` - ``Components/Schemas/GameCenterDetailResponse`` - ``Components/Schemas/GameCenterDetailUpdateRequest`` - ``Components/Schemas/GameCenterDetailsResponse`` @@ -1034,6 +1164,7 @@ Each resource type typically includes: - ``Components/Schemas/GameCenterLeaderboardV2ActivityLinkageRequest`` - ``Components/Schemas/GameCenterLeaderboardV2ChallengeLinkageRequest`` - ``Components/Schemas/GameCenterLeaderboardV2CreateRequest`` +- ``Components/Schemas/GameCenterLeaderboardV2GameCenterScoreModerationsLinkagesResponse`` - ``Components/Schemas/GameCenterLeaderboardV2Response`` - ``Components/Schemas/GameCenterLeaderboardV2UpdateRequest`` - ``Components/Schemas/GameCenterLeaderboardV2VersionsLinkagesResponse`` @@ -1086,6 +1217,10 @@ Each resource type typically includes: - ``Components/Schemas/GameCenterPlayerAchievementSubmission`` - ``Components/Schemas/GameCenterPlayerAchievementSubmissionCreateRequest`` - ``Components/Schemas/GameCenterPlayerAchievementSubmissionResponse`` +- ``Components/Schemas/GameCenterScoreModeration`` +- ``Components/Schemas/GameCenterScoreModerationResponse`` +- ``Components/Schemas/GameCenterScoreModerationUpdateRequest`` +- ``Components/Schemas/GameCenterScoreModerationsResponse`` - ``Components/Schemas/GameCenterVersionState`` ### Users and Roles @@ -1270,14 +1405,17 @@ Each resource type typically includes: - ``Components/Schemas/DiagnosticInsightType`` - ``Components/Schemas/DiagnosticLog`` - ``Components/Schemas/DiagnosticLogCallStackNode`` +- ``Components/Schemas/DiagnosticLogs`` - ``Components/Schemas/DiagnosticSignature`` - ``Components/Schemas/DiagnosticSignatureLogsLinkagesResponse`` - ``Components/Schemas/DiagnosticSignaturesResponse`` - ``Components/Schemas/MetricCategory`` - ``Components/Schemas/MetricsInsight`` - ``Components/Schemas/PerfPowerMetric`` -- ``Components/Schemas/diagnosticLogs`` -- ``Components/Schemas/xcodeMetrics`` +- ``Components/Schemas/PerformanceOverview`` +- ``Components/Schemas/PerformanceSignature`` +- ``Components/Schemas/XcodeMetrics`` +- ``Components/Schemas/XcodeOverview`` ### Sandbox Testing @@ -1410,6 +1548,7 @@ Each resource type typically includes: - ``Components/Schemas/BrazilAgeRating`` - ``Components/Schemas/ChecksumAlgorithm`` - ``Components/Schemas/Checksums`` +- ``Components/Schemas/Csv`` - ``Components/Schemas/DeliveryFileUploadOperation`` - ``Components/Schemas/DocumentLinks`` - ``Components/Schemas/ErrorLinks`` @@ -1417,6 +1556,7 @@ Each resource type typically includes: - ``Components/Schemas/ErrorSourceParameter`` - ``Components/Schemas/ErrorSourcePointer`` - ``Components/Schemas/FileLocation`` +- ``Components/Schemas/Gzip`` - ``Components/Schemas/HttpHeader`` - ``Components/Schemas/IconAssetType`` - ``Components/Schemas/ImageAsset`` @@ -1434,5 +1574,3 @@ Each resource type typically includes: - ``Components/Schemas/StateDetail`` - ``Components/Schemas/StringToStringMap`` - ``Components/Schemas/UploadOperation`` -- ``Components/Schemas/csv`` -- ``Components/Schemas/gzip`` diff --git a/Sources/ASConnectService/Catalogs/ASConnectService.docc/Extensions/Operations.md b/Sources/ASConnectService/Catalogs/ASConnectService.docc/Extensions/Operations.md index 5843b14c65..6d54bccbc2 100644 --- a/Sources/ASConnectService/Catalogs/ASConnectService.docc/Extensions/Operations.md +++ b/Sources/ASConnectService/Catalogs/ASConnectService.docc/Extensions/Operations.md @@ -1,18 +1,14 @@ # ``Operations`` -API operations, with input and output types, generated from the paths section of the OpenAPI document. +The request and response types of each API operation. ## Overview -The ``Operations`` namespace contains a nested enum for each API operation defined in the App Store Connect API OpenAPI specification. Each operation enum encapsulates the `Input` and `Output` types for that specific endpoint. +Each operation is an enum, named after its ``APIProtocol`` method, that contains: -Each operation typically provides: - -- An **`Input`** struct containing the request `Path`, `Query`, `Headers`, and `Body` types -- An **`Output`** enum with cases for each possible HTTP response status code -- An **`id`** string constant with the operation identifier - -These types are used by the ``APIProtocol`` methods and the ``Client`` implementation. +- `Input`: The request, split into `path`, `query`, `headers`, and `body` as the endpoint requires. +- `Output`: The response, with a case for each documented status, such as `ok`, and `undocumented(statusCode:_:)` for any other. +- `id`: The operation identifier in the OpenAPI document, such as `apps_getCollection`. ## Topics @@ -104,6 +100,9 @@ These types are used by the ``APIProtocol`` methods and the ``Client`` implement - ``Operations/AppsSubscriptionGracePeriodGetToOneRelated`` - ``Operations/AppsSubscriptionGroupsGetToManyRelated`` - ``Operations/AppsWebhooksGetToManyRelated`` +- ``Operations/AppsAssetLibraryGetToOneRelationship`` +- ``Operations/AppsAssetLibraryGetToOneRelated`` +- ``Operations/AppsPerformanceOverviewsGetToManyRelated`` - ``Operations/AppInfosGetInstance`` - ``Operations/AppInfosUpdateInstance`` - ``Operations/AppInfosAgeRatingDeclarationGetToOneRelated`` @@ -205,6 +204,8 @@ These types are used by the ``APIProtocol`` methods and the ``Client`` implement - ``Operations/AppStoreVersionLocalizationsSearchKeywordsCreateToManyRelationship`` - ``Operations/AppStoreVersionLocalizationsSearchKeywordsDeleteToManyRelationship`` - ``Operations/AppStoreVersionLocalizationsSearchKeywordsGetToManyRelated`` +- ``Operations/AppStoreVersionLocalizationsPlacementsGetToManyRelationship`` +- ``Operations/AppStoreVersionLocalizationsPlacementsGetToManyRelated`` - ``Operations/AppStoreVersionPhasedReleasesCreateInstance`` - ``Operations/AppStoreVersionPhasedReleasesUpdateInstance`` - ``Operations/AppStoreVersionPhasedReleasesDeleteInstance`` @@ -239,6 +240,8 @@ These types are used by the ``APIProtocol`` methods and the ``Client`` implement - ``Operations/AppStoreVersionExperimentTreatmentLocalizationsAppScreenshotSetsGetToManyRelated`` - ``Operations/AppStoreVersionExperimentTreatmentLocalizationsAppPreviewSetsGetToManyRelationship`` - ``Operations/AppStoreVersionExperimentTreatmentLocalizationsAppScreenshotSetsGetToManyRelationship`` +- ``Operations/AppStoreVersionExperimentTreatmentLocalizationsPlacementsGetToManyRelationship`` +- ``Operations/AppStoreVersionExperimentTreatmentLocalizationsPlacementsGetToManyRelated`` ### App Custom Product Pages @@ -265,6 +268,8 @@ These types are used by the ``APIProtocol`` methods and the ``Client`` implement - ``Operations/AppCustomProductPageLocalizationsSearchKeywordsCreateToManyRelationship`` - ``Operations/AppCustomProductPageLocalizationsSearchKeywordsDeleteToManyRelationship`` - ``Operations/AppCustomProductPageLocalizationsSearchKeywordsGetToManyRelated`` +- ``Operations/AppCustomProductPageLocalizationsPlacementsGetToManyRelationship`` +- ``Operations/AppCustomProductPageLocalizationsPlacementsGetToManyRelated`` ### App Clips @@ -320,6 +325,8 @@ These types are used by the ``APIProtocol`` methods and the ``Client`` implement - ``Operations/AppEventLocalizationsAppEventVideoClipsGetToManyRelated`` - ``Operations/AppEventLocalizationsAppEventScreenshotsGetToManyRelationship`` - ``Operations/AppEventLocalizationsAppEventVideoClipsGetToManyRelationship`` +- ``Operations/AppEventLocalizationsPlacementsGetToManyRelationship`` +- ``Operations/AppEventLocalizationsPlacementsGetToManyRelated`` - ``Operations/AppEventScreenshotsCreateInstance`` - ``Operations/AppEventScreenshotsGetInstance`` - ``Operations/AppEventScreenshotsUpdateInstance`` @@ -356,6 +363,32 @@ These types are used by the ``APIProtocol`` methods and the ``Client`` implement - ``Operations/RoutingAppCoveragesUpdateInstance`` - ``Operations/RoutingAppCoveragesDeleteInstance`` +### App Asset Library + +- ``Operations/AppAssetLibrariesGetInstance`` +- ``Operations/AppAssetLibrariesImagesGetToManyRelationship`` +- ``Operations/AppAssetLibrariesImagesGetToManyRelated`` +- ``Operations/AppAssetLibrariesVideosGetToManyRelationship`` +- ``Operations/AppAssetLibrariesVideosGetToManyRelated`` +- ``Operations/AppAssetLibraryImagesCreateInstance`` +- ``Operations/AppAssetLibraryImagesGetInstance`` +- ``Operations/AppAssetLibraryImagesUpdateInstance`` +- ``Operations/AppAssetLibraryImagesDeleteInstance`` +- ``Operations/AppAssetLibraryImagesPlacementsGetToManyRelationship`` +- ``Operations/AppAssetLibraryImagesPlacementsGetToManyRelated`` +- ``Operations/AppAssetLibraryVideosCreateInstance`` +- ``Operations/AppAssetLibraryVideosGetInstance`` +- ``Operations/AppAssetLibraryVideosUpdateInstance`` +- ``Operations/AppAssetLibraryVideosDeleteInstance`` +- ``Operations/AppAssetLibraryVideosPlacementsGetToManyRelationship`` +- ``Operations/AppAssetLibraryVideosPlacementsGetToManyRelated`` +- ``Operations/AppAssetLibraryPlacementsCreateInstance`` +- ``Operations/AppAssetLibraryPlacementsGetInstance`` +- ``Operations/AppAssetLibraryPlacementsDeleteInstance`` +- ``Operations/AppAssetLibraryPlacementOrderingRequestsCreateInstance`` +- ``Operations/AppAssetLibraryRefDataGetCollection`` +- ``Operations/AppAssetLibraryRefDataGetInstance`` + ### App Encryption - ``Operations/AppEncryptionDeclarationsGetCollection`` @@ -579,15 +612,33 @@ These types are used by the ``APIProtocol`` methods and the ``Client`` implement - ``Operations/InAppPurchasesV2OfferCodesGetToManyRelationship`` - ``Operations/InAppPurchasesV2PricePointsGetToManyRelationship`` - ``Operations/InAppPurchasesV2PromotedPurchaseGetToOneRelationship`` +- ``Operations/InAppPurchasesV2VersionsGetToManyRelationship`` +- ``Operations/InAppPurchasesV2VersionsGetToManyRelated`` +- ``Operations/InAppPurchaseVersionsCreateInstance`` +- ``Operations/InAppPurchaseVersionsGetInstance`` +- ``Operations/InAppPurchaseVersionsImageGetToOneRelationship`` +- ``Operations/InAppPurchaseVersionsImageGetToOneRelated`` +- ``Operations/InAppPurchaseVersionsImagesGetToManyRelationship`` +- ``Operations/InAppPurchaseVersionsImagesGetToManyRelated`` +- ``Operations/InAppPurchaseVersionsLocalizationsGetToManyRelationship`` +- ``Operations/InAppPurchaseVersionsLocalizationsGetToManyRelated`` - ``Operations/InAppPurchaseLocalizationsCreateInstance`` - ``Operations/InAppPurchaseLocalizationsGetInstance`` - ``Operations/InAppPurchaseLocalizationsUpdateInstance`` - ``Operations/InAppPurchaseLocalizationsDeleteInstance`` +- ``Operations/InAppPurchaseLocalizationsV2CreateInstance`` +- ``Operations/InAppPurchaseLocalizationsV2GetInstance`` +- ``Operations/InAppPurchaseLocalizationsV2UpdateInstance`` +- ``Operations/InAppPurchaseLocalizationsV2DeleteInstance`` - ``Operations/InAppPurchaseContentsGetInstance`` - ``Operations/InAppPurchaseImagesCreateInstance`` - ``Operations/InAppPurchaseImagesGetInstance`` - ``Operations/InAppPurchaseImagesUpdateInstance`` - ``Operations/InAppPurchaseImagesDeleteInstance`` +- ``Operations/InAppPurchaseImagesV2CreateInstance`` +- ``Operations/InAppPurchaseImagesV2GetInstance`` +- ``Operations/InAppPurchaseImagesV2UpdateInstance`` +- ``Operations/InAppPurchaseImagesV2DeleteInstance`` - ``Operations/InAppPurchaseAppStoreReviewScreenshotsCreateInstance`` - ``Operations/InAppPurchaseAppStoreReviewScreenshotsGetInstance`` - ``Operations/InAppPurchaseAppStoreReviewScreenshotsUpdateInstance`` @@ -658,6 +709,18 @@ These types are used by the ``APIProtocol`` methods and the ``Client`` implement - ``Operations/SubscriptionsSubscriptionAvailabilityGetToOneRelated`` - ``Operations/SubscriptionsSubscriptionLocalizationsGetToManyRelated`` - ``Operations/SubscriptionsWinBackOffersGetToManyRelated`` +- ``Operations/SubscriptionsPlanAvailabilitiesGetToManyRelationship`` +- ``Operations/SubscriptionsPlanAvailabilitiesGetToManyRelated`` +- ``Operations/SubscriptionsVersionsGetToManyRelationship`` +- ``Operations/SubscriptionsVersionsGetToManyRelated`` +- ``Operations/SubscriptionVersionsCreateInstance`` +- ``Operations/SubscriptionVersionsGetInstance`` +- ``Operations/SubscriptionVersionsImageGetToOneRelationship`` +- ``Operations/SubscriptionVersionsImageGetToOneRelated`` +- ``Operations/SubscriptionVersionsImagesGetToManyRelationship`` +- ``Operations/SubscriptionVersionsImagesGetToManyRelated`` +- ``Operations/SubscriptionVersionsLocalizationsGetToManyRelationship`` +- ``Operations/SubscriptionVersionsLocalizationsGetToManyRelated`` - ``Operations/SubscriptionGroupsCreateInstance`` - ``Operations/SubscriptionGroupsGetInstance`` - ``Operations/SubscriptionGroupsUpdateInstance`` @@ -666,19 +729,37 @@ These types are used by the ``APIProtocol`` methods and the ``Client`` implement - ``Operations/SubscriptionGroupsSubscriptionsGetToManyRelationship`` - ``Operations/SubscriptionGroupsSubscriptionGroupLocalizationsGetToManyRelated`` - ``Operations/SubscriptionGroupsSubscriptionsGetToManyRelated`` +- ``Operations/SubscriptionGroupsVersionsGetToManyRelationship`` +- ``Operations/SubscriptionGroupsVersionsGetToManyRelated`` +- ``Operations/SubscriptionGroupVersionsCreateInstance`` +- ``Operations/SubscriptionGroupVersionsGetInstance`` +- ``Operations/SubscriptionGroupVersionsLocalizationsGetToManyRelationship`` +- ``Operations/SubscriptionGroupVersionsLocalizationsGetToManyRelated`` - ``Operations/SubscriptionGroupLocalizationsCreateInstance`` - ``Operations/SubscriptionGroupLocalizationsGetInstance`` - ``Operations/SubscriptionGroupLocalizationsUpdateInstance`` - ``Operations/SubscriptionGroupLocalizationsDeleteInstance`` +- ``Operations/SubscriptionGroupLocalizationsV2CreateInstance`` +- ``Operations/SubscriptionGroupLocalizationsV2GetInstance`` +- ``Operations/SubscriptionGroupLocalizationsV2UpdateInstance`` +- ``Operations/SubscriptionGroupLocalizationsV2DeleteInstance`` - ``Operations/SubscriptionGroupSubmissionsCreateInstance`` - ``Operations/SubscriptionLocalizationsCreateInstance`` - ``Operations/SubscriptionLocalizationsGetInstance`` - ``Operations/SubscriptionLocalizationsUpdateInstance`` - ``Operations/SubscriptionLocalizationsDeleteInstance`` +- ``Operations/SubscriptionLocalizationsV2CreateInstance`` +- ``Operations/SubscriptionLocalizationsV2GetInstance`` +- ``Operations/SubscriptionLocalizationsV2UpdateInstance`` +- ``Operations/SubscriptionLocalizationsV2DeleteInstance`` - ``Operations/SubscriptionImagesCreateInstance`` - ``Operations/SubscriptionImagesGetInstance`` - ``Operations/SubscriptionImagesUpdateInstance`` - ``Operations/SubscriptionImagesDeleteInstance`` +- ``Operations/SubscriptionImagesV2CreateInstance`` +- ``Operations/SubscriptionImagesV2GetInstance`` +- ``Operations/SubscriptionImagesV2UpdateInstance`` +- ``Operations/SubscriptionImagesV2DeleteInstance`` - ``Operations/SubscriptionAppStoreReviewScreenshotsCreateInstance`` - ``Operations/SubscriptionAppStoreReviewScreenshotsGetInstance`` - ``Operations/SubscriptionAppStoreReviewScreenshotsUpdateInstance`` @@ -687,6 +768,12 @@ These types are used by the ``APIProtocol`` methods and the ``Client`` implement - ``Operations/SubscriptionAvailabilitiesGetInstance`` - ``Operations/SubscriptionAvailabilitiesAvailableTerritoriesGetToManyRelated`` - ``Operations/SubscriptionAvailabilitiesAvailableTerritoriesGetToManyRelationship`` +- ``Operations/SubscriptionPlanAvailabilitiesCreateInstance`` +- ``Operations/SubscriptionPlanAvailabilitiesGetInstance`` +- ``Operations/SubscriptionPlanAvailabilitiesUpdateInstance`` +- ``Operations/SubscriptionPlanAvailabilitiesAvailableTerritoriesGetToManyRelationship`` +- ``Operations/SubscriptionPlanAvailabilitiesAvailableTerritoriesReplaceToManyRelationship`` +- ``Operations/SubscriptionPlanAvailabilitiesAvailableTerritoriesGetToManyRelated`` - ``Operations/SubscriptionGracePeriodsGetInstance`` - ``Operations/SubscriptionGracePeriodsUpdateInstance`` - ``Operations/SubscriptionIntroductoryOffersCreateInstance`` @@ -711,6 +798,7 @@ These types are used by the ``APIProtocol`` methods and the ``Client`` implement - ``Operations/SubscriptionPricePointsGetInstance`` - ``Operations/SubscriptionPricePointsEqualizationsGetToManyRelated`` - ``Operations/SubscriptionPricePointsEqualizationsGetToManyRelationship`` +- ``Operations/SubscriptionPricePointsAdjustedEqualizationsGetToManyRelated`` - ``Operations/SubscriptionPricesCreateInstance`` - ``Operations/SubscriptionPricesDeleteInstance`` - ``Operations/SubscriptionPromotionalOffersCreateInstance`` @@ -771,6 +859,9 @@ These types are used by the ``APIProtocol`` methods and the ``Client`` implement - ``Operations/GameCenterDetailsGameCenterLeaderboardsV2ReplaceToManyRelationship`` - ``Operations/GameCenterDetailsLeaderboardReleasesGetToManyRelationship`` - ``Operations/GameCenterDetailsLeaderboardSetReleasesGetToManyRelationship`` +- ``Operations/GameCenterDetailsBlockedPlayersGetToManyRelationship`` +- ``Operations/GameCenterDetailsBlockedPlayersGetToManyRelated`` +- ``Operations/GameCenterDetailPlayersUpdateInstance`` - ``Operations/GameCenterGroupsGetCollection`` - ``Operations/GameCenterGroupsCreateInstance`` - ``Operations/GameCenterGroupsGetInstance`` @@ -869,6 +960,9 @@ These types are used by the ``APIProtocol`` methods and the ``Client`` implement - ``Operations/GameCenterLeaderboardsV2ChallengeUpdateToOneRelationship`` - ``Operations/GameCenterLeaderboardsV2VersionsGetToManyRelationship`` - ``Operations/GameCenterLeaderboardsV2VersionsGetToManyRelated`` +- ``Operations/GameCenterLeaderboardsV2GameCenterScoreModerationsGetToManyRelationship`` +- ``Operations/GameCenterLeaderboardsV2GameCenterScoreModerationsGetToManyRelated`` +- ``Operations/GameCenterScoreModerationsUpdateInstance`` - ``Operations/GameCenterLeaderboardVersionsV2CreateInstance`` - ``Operations/GameCenterLeaderboardVersionsV2GetInstance`` - ``Operations/GameCenterLeaderboardVersionsV2LocalizationsGetToManyRelated`` diff --git a/Sources/ASConnectService/Catalogs/ASConnectService.docc/Extensions/Servers.md b/Sources/ASConnectService/Catalogs/ASConnectService.docc/Extensions/Servers.md index 7299734e9e..1054eef1e0 100644 --- a/Sources/ASConnectService/Catalogs/ASConnectService.docc/Extensions/Servers.md +++ b/Sources/ASConnectService/Catalogs/ASConnectService.docc/Extensions/Servers.md @@ -1,18 +1,15 @@ # ``Servers`` -Server URLs defined in the OpenAPI document. +The App Store Connect API server URLs. ## Overview -The ``Servers`` namespace provides access to the base URLs defined in the App Store Connect API OpenAPI specification. Use these URLs when creating a ``Client`` instance. +The specification defines a single server, `https://api.appstoreconnect.apple.com/`. Pass its URL to ``Client``: ```swift let client = Client( serverURL: try Servers.Server1.url(), - transport: URLSessionTransport(), - middlewares: [ - BearerAuthMiddleware(token: yourJWTToken) - ] + transport: URLSessionTransport() ) ``` @@ -21,4 +18,7 @@ let client = Client( ### Server URLs - ``Servers/Server1`` + +### Deprecated + - ``Servers/server1()`` diff --git a/Sources/ASConnectService/Catalogs/ASConnectService.docc/Library.md b/Sources/ASConnectService/Catalogs/ASConnectService.docc/Library.md index 4cf5a1a4d4..ca50812f42 100644 --- a/Sources/ASConnectService/Catalogs/ASConnectService.docc/Library.md +++ b/Sources/ASConnectService/Catalogs/ASConnectService.docc/Library.md @@ -1,16 +1,14 @@ # ``ASConnectService`` -A Swift client library for the App Store Connect API, generated from the official OpenAPI specification. +A type-safe Swift client for the App Store Connect API. ## Overview -``ASConnectService`` provides a type-safe, Swift-native interface to Apple's App Store Connect API. This package enables developers to programmatically interact with App Store Connect services for managing apps, builds, reviews, sales reports, and more. - -The library is automatically generated from the official App Store Connect API OpenAPI specification using Apple's [swift-openapi-generator](https://github.com/apple/swift-openapi-generator), ensuring complete API coverage and type safety. +ASConnectService exposes every endpoint of Apple's App Store Connect API as a Swift method with typed requests and responses. It's generated from the official OpenAPI specification with [Swift OpenAPI Generator](https://github.com/apple/swift-openapi-generator). ### Creating a Client -Create a ``Client`` instance by providing a server URL and transport. Use ``BearerAuthMiddleware`` to authenticate requests with a JSON Web Token (JWT). +Create a ``Client`` with a server URL, a transport, and a ``BearerAuthMiddleware`` that authenticates each request with a JSON Web Token (JWT): ```swift import ASConnectService @@ -35,12 +33,15 @@ BearerAuthMiddleware { ### Making API Calls -The ``Client`` conforms to ``APIProtocol``, which defines a method for every endpoint in the App Store Connect API. Each method accepts an `Input` value and returns an `Output` value with the response. +Each endpoint is a method on ``Client``, declared by ``APIProtocol``. It returns an `Output` enum with a case for each documented response: ```swift -let response = try await client.appsGetCollection(.init()) +let response = try await client.appsGetCollection(query: .init(limit: 10)) +let apps = try response.ok.body.json.data ``` +The `ok` property throws for any other response. To handle those, switch over the `Output` cases, such as `.unauthorized` or `.undocumented(statusCode:_:)`. + ## Topics ### API Client diff --git a/Sources/ASConnectService/Sources/Public/Middlewares/BearerAuthMiddleware.swift b/Sources/ASConnectService/Sources/Public/Middlewares/BearerAuthMiddleware.swift index c142c9de52..c3e4f19f36 100644 --- a/Sources/ASConnectService/Sources/Public/Middlewares/BearerAuthMiddleware.swift +++ b/Sources/ASConnectService/Sources/Public/Middlewares/BearerAuthMiddleware.swift @@ -18,11 +18,10 @@ import struct HTTPTypes.HTTPResponse import protocol OpenAPIRuntime.ClientMiddleware import class OpenAPIRuntime.HTTPBody -/// A client middleware that injects a Bearer authentication token into outgoing HTTP requests. +/// A client middleware that authenticates requests with a Bearer token. /// -/// This middleware appends an `Authorization` header with a Bearer token to every request -/// before forwarding it to the next handler in the middleware chain. It is intended for use -/// with the App Store Connect API, which requires JSON Web Token (JWT) authentication. +/// This middleware sets the `Authorization` header of every request to `Bearer `, as the +/// App Store Connect API requires JSON Web Token (JWT) authentication. /// /// ## Usage ///