diff --git a/src/sections/subscriptions.ts b/src/sections/subscriptions.ts index 99809f58..fbfb217e 100644 --- a/src/sections/subscriptions.ts +++ b/src/sections/subscriptions.ts @@ -19,36 +19,54 @@ export type NotificationType = | 'FulfillmentOrderStatus' | 'ReportProcessingFinished' -enum NotificationTypeEnum { - AnyOfferChanged = 'AnyOfferChanged', - FeedProcessingFinished = 'FeedProcessingFinished', - FeePromotion = 'FeePromotion', - FulfillmentOrderStatus = 'FulfillmentOrderStatus', - ReportProcessingFinished = 'ReportProcessingFinished', -} - -const NotificationType = enumeration(NotificationTypeEnum) - -interface MarketplaceIdAndDestinationOnlyParameters { - MarketplaceId: string - Destination: Destination +export interface Destination { + DeliveryChannel: DeliveryChannel + AttributeList: AttributeKeyValue[] } -interface AttributeKeyValue { +export interface AttributeKeyValue { Key: AttributeKeyValueKeys Value: string } -interface Destination { - DeliveryChannel: DeliveryChannel - AttributeList: AttributeKeyValue[] + +export interface Subscription { + NotificationType: NotificationType + Destination: Destination + IsEnabled: boolean } + interface SubscriptionActionParameters { MarketplaceId: string NotificationType: NotificationType Destination: Destination } -type RegisterDestinationParameters = MarketplaceIdAndDestinationOnlyParameters +export type DeleteSubscriptionParameters = SubscriptionActionParameters +interface MarketplaceIdAndDestinationOnlyParameters { + MarketplaceId: string + Destination: Destination +} + +export type RegisterDestinationParameters = MarketplaceIdAndDestinationOnlyParameters +export type DeregisterDestinationParameters = MarketplaceIdAndDestinationOnlyParameters +export interface ListRegisteredDestinationsParameters { + MarketplaceId: string +} +export interface UpdateSubscriptionParameters { + MarketplaceId: string + Subscription: Subscription +} +export type GetSubscriptionParameters = SubscriptionActionParameters + +enum NotificationTypeEnum { + AnyOfferChanged = 'AnyOfferChanged', + FeedProcessingFinished = 'FeedProcessingFinished', + FeePromotion = 'FeePromotion', + FulfillmentOrderStatus = 'FulfillmentOrderStatus', + ReportProcessingFinished = 'ReportProcessingFinished', +} + +const NotificationType = enumeration(NotificationTypeEnum) const RegisterDestinationResponse = Codec.interface({ RegisterDestinationResponse: Codec.interface({ @@ -56,18 +74,12 @@ const RegisterDestinationResponse = Codec.interface({ }), }) -type DeregisterDestinationParameters = MarketplaceIdAndDestinationOnlyParameters - const DeregisterDestinationResponse = Codec.interface({ DeregisterDestinationResponse: Codec.interface({ DeregisterDestinationResult: exactly(''), }), }) -interface ListRegisteredDestinationsParameters { - MarketplaceId: string - [key: string]: string -} enum AttribueKeyValueKeysEnum { sqsQueueUrl = 'sqsQueueUrl', } @@ -93,8 +105,6 @@ const ListRegisteredDestinations = Codec.interface({ DestinationList: ensureArray('member', Destination), }) -type ListRegisteredDestinations = GetInterface - const ListRegisteredDestinationsResponse = Codec.interface({ ListRegisteredDestinationsResponse: Codec.interface({ ListRegisteredDestinationsResult: ListRegisteredDestinations, @@ -109,12 +119,6 @@ const SendTestNotificationToDestinationResponse = Codec.interface({ }), }) -interface Subscription { - NotificationType: NotificationType - Destination: Destination - IsEnabled: boolean -} - interface CreateSubscriptionParameters { MarketplaceId: string Subscription: Subscription @@ -126,8 +130,6 @@ const CreateSubscriptionResponse = Codec.interface({ }), }) -type GetSubscriptionParameters = SubscriptionActionParameters - const Subscription = Codec.interface({ NotificationType, Destination, @@ -138,32 +140,26 @@ const GetSubscription = Codec.interface({ Subscription, }) -type GetSubscription = GetInterface - const GetSubscriptionResponse = Codec.interface({ GetSubscriptionResponse: Codec.interface({ GetSubscriptionResult: GetSubscription, }), }) -type DeleteSubscriptionParameters = SubscriptionActionParameters - const DeleteSubscriptionResponse = Codec.interface({ DeleteSubscriptionResponse: Codec.interface({ DeleteSubscriptionResult: exactly(''), }), }) -interface UpdateSubscriptionParameters { - MarketplaceId: string - Subscription: Subscription -} - const UpdateSubscriptionResponse = Codec.interface({ UpdateSubscriptionResponse: Codec.interface({ UpdateSubscriptionResult: exactly(''), }), }) + +export type ListRegisteredDestinations = GetInterface +export type GetSubscription = GetInterface export class Subscriptions { constructor(private httpClient: HttpClient) {} @@ -301,7 +297,9 @@ export class Subscriptions { resource: Resource.Subscriptions, version: SUBSCRIPTIONS_API_VERSION, action: 'ListRegisteredDestinations', - parameters, + parameters: { + MarketplaceId: parameters.MarketplaceId, + }, }) return ListRegisteredDestinationsResponse.decode(response).caseOf({