diff --git a/Source/FikaAmazonAPI/AmazonConnection.cs b/Source/FikaAmazonAPI/AmazonConnection.cs index 5dc3a729..1c013731 100644 --- a/Source/FikaAmazonAPI/AmazonConnection.cs +++ b/Source/FikaAmazonAPI/AmazonConnection.cs @@ -11,6 +11,7 @@ public class AmazonConnection { private AmazonCredential Credentials { get; set; } + public AppIntegrationsServiceV20240401 AppIntegrationsServiceV20240401 => this._AppIntegrationsServiceV20240401 ?? throw _NoCredentials; public OrderService Orders => this._Orders ?? throw _NoCredentials; public ReportService Reports => this._Reports ?? throw _NoCredentials; public SolicitationService Solicitations => this._Solicitations ?? throw _NoCredentials; @@ -49,6 +50,7 @@ public class AmazonConnection public VendorTransactionStatusService VendorTransactionStatus => this._VendorTransactionStatus ?? throw _NoCredentials; + private AppIntegrationsServiceV20240401 _AppIntegrationsServiceV20240401 { get; set; } private OrderService _Orders { get; set; } private ReportService _Reports { get; set; } private SolicitationService _Solicitations { get; set; } @@ -111,6 +113,7 @@ private void Init(AmazonCredential Credentials) this.Credentials = Credentials; this._Authorization = new AuthorizationService(this.Credentials); + this._AppIntegrationsServiceV20240401 = new AppIntegrationsServiceV20240401(this.Credentials); this._Orders = new OrderService(this.Credentials); this._Reports = new ReportService(this.Credentials); this._Solicitations = new SolicitationService(this.Credentials); diff --git a/Source/FikaAmazonAPI/AmazonSpApiSDK/Models/AppIntegrationsV20240401/CreateNotificationRequest.cs b/Source/FikaAmazonAPI/AmazonSpApiSDK/Models/AppIntegrationsV20240401/CreateNotificationRequest.cs new file mode 100644 index 00000000..c3e79226 --- /dev/null +++ b/Source/FikaAmazonAPI/AmazonSpApiSDK/Models/AppIntegrationsV20240401/CreateNotificationRequest.cs @@ -0,0 +1,174 @@ +/* + * The Selling Partner API for third party application integrations. + * + * With the AppIntegrations API v2024-04-01, you can send notifications to Amazon Selling Partners and display the notifications in Seller Central. + * + * OpenAPI spec version: 2024-04-01 + * + * Generated by: https://github.com/swagger-api/swagger-codegen.git + */ + +using System; +using System.IO; +using System.Text; +using System.Collections.Generic; +using System.Runtime.Serialization; +using Newtonsoft.Json; +using System.ComponentModel.DataAnnotations; + +namespace FikaAmazonAPI.AmazonSpApiSDK.Models.AppIntegrationsV20240401 +{ + /// + /// The request for the `createNotification` operation. + /// + [DataContract] + public partial class CreateNotificationRequest : IEquatable, IValidatableObject + { + /// + /// Initializes a new instance of the class. + /// + [JsonConstructorAttribute] + public CreateNotificationRequest() { } + /// + /// Initializes a new instance of the class. + /// + /// The unique identifier of the notification template you used to onboard your application. (required). + /// The parameters specified in the template you used to onboard your application. (required). + /// An encrypted marketplace identifier for the posted notification.. + public CreateNotificationRequest(string templateId = default(string), NotificationParameters notificationParameters = default(NotificationParameters), string marketplaceId = default(string)) + { + // to ensure "templateId" is required (not null) + if (templateId == null) + { + throw new InvalidDataException("templateId is a required property for CreateNotificationRequest and cannot be null"); + } + else + { + this.TemplateId = templateId; + } + // to ensure "notificationParameters" is required (not null) + if (notificationParameters == null) + { + throw new InvalidDataException("notificationParameters is a required property for CreateNotificationRequest and cannot be null"); + } + else + { + this.NotificationParameters = notificationParameters; + } + this.MarketplaceId = marketplaceId; + } + + /// + /// The unique identifier of the notification template you used to onboard your application. + /// + /// The unique identifier of the notification template you used to onboard your application. + [DataMember(Name="templateId", EmitDefaultValue=false)] + public string TemplateId { get; set; } + + /// + /// The parameters specified in the template you used to onboard your application. + /// + /// The parameters specified in the template you used to onboard your application. + [DataMember(Name="notificationParameters", EmitDefaultValue=false)] + public NotificationParameters NotificationParameters { get; set; } + + /// + /// An encrypted marketplace identifier for the posted notification. + /// + /// An encrypted marketplace identifier for the posted notification. + [DataMember(Name="marketplaceId", EmitDefaultValue=false)] + public string MarketplaceId { get; set; } + + /// + /// Returns the string presentation of the object + /// + /// String presentation of the object + public override string ToString() + { + var sb = new StringBuilder(); + sb.Append("class CreateNotificationRequest {\n"); + sb.Append(" TemplateId: ").Append(TemplateId).Append("\n"); + sb.Append(" NotificationParameters: ").Append(NotificationParameters).Append("\n"); + sb.Append(" MarketplaceId: ").Append(MarketplaceId).Append("\n"); + sb.Append("}\n"); + return sb.ToString(); + } + + /// + /// Returns the JSON string presentation of the object + /// + /// JSON string presentation of the object + public virtual string ToJson() + { + return JsonConvert.SerializeObject(this, Formatting.Indented); + } + + /// + /// Returns true if objects are equal + /// + /// Object to be compared + /// Boolean + public override bool Equals(object input) + { + return this.Equals(input as CreateNotificationRequest); + } + + /// + /// Returns true if CreateNotificationRequest instances are equal + /// + /// Instance of CreateNotificationRequest to be compared + /// Boolean + public bool Equals(CreateNotificationRequest input) + { + if (input == null) + return false; + + return + ( + this.TemplateId == input.TemplateId || + (this.TemplateId != null && + this.TemplateId.Equals(input.TemplateId)) + ) && + ( + this.NotificationParameters == input.NotificationParameters || + (this.NotificationParameters != null && + this.NotificationParameters.Equals(input.NotificationParameters)) + ) && + ( + this.MarketplaceId == input.MarketplaceId || + (this.MarketplaceId != null && + this.MarketplaceId.Equals(input.MarketplaceId)) + ); + } + + /// + /// Gets the hash code + /// + /// Hash code + public override int GetHashCode() + { + unchecked // Overflow is fine, just wrap + { + int hashCode = 41; + if (this.TemplateId != null) + hashCode = hashCode * 59 + this.TemplateId.GetHashCode(); + if (this.NotificationParameters != null) + hashCode = hashCode * 59 + this.NotificationParameters.GetHashCode(); + if (this.MarketplaceId != null) + hashCode = hashCode * 59 + this.MarketplaceId.GetHashCode(); + return hashCode; + } + } + + /// + /// To validate all properties of the instance + /// + /// Validation context + /// Validation Result + IEnumerable IValidatableObject.Validate(ValidationContext validationContext) + { + yield break; + } + } + +} diff --git a/Source/FikaAmazonAPI/AmazonSpApiSDK/Models/AppIntegrationsV20240401/CreateNotificationResponse.cs b/Source/FikaAmazonAPI/AmazonSpApiSDK/Models/AppIntegrationsV20240401/CreateNotificationResponse.cs new file mode 100644 index 00000000..18c6230a --- /dev/null +++ b/Source/FikaAmazonAPI/AmazonSpApiSDK/Models/AppIntegrationsV20240401/CreateNotificationResponse.cs @@ -0,0 +1,124 @@ +/* + * The Selling Partner API for third party application integrations. + * + * With the AppIntegrations API v2024-04-01, you can send notifications to Amazon Selling Partners and display the notifications in Seller Central. + * + * OpenAPI spec version: 2024-04-01 + * + * Generated by: https://github.com/swagger-api/swagger-codegen.git + */ + +using System; +using System.Text; +using System.Collections.Generic; +using System.Runtime.Serialization; +using Newtonsoft.Json; +using System.ComponentModel.DataAnnotations; + +namespace FikaAmazonAPI.AmazonSpApiSDK.Models.AppIntegrationsV20240401 +{ + /// + /// The response for the `createNotification` operation. + /// + [DataContract] + public partial class CreateNotificationResponse : IEquatable, IValidatableObject + { + + public CreateNotificationResponse() + { + this.NotificationId = default(string); + } + + /// + /// Initializes a new instance of the class. + /// + /// The unique identifier assigned to each notification.. + public CreateNotificationResponse(string notificationId = default(string)) + { + this.NotificationId = notificationId; + } + + /// + /// The unique identifier assigned to each notification. + /// + /// The unique identifier assigned to each notification. + [DataMember(Name="notificationId", EmitDefaultValue=false)] + public string NotificationId { get; set; } + + /// + /// Returns the string presentation of the object + /// + /// String presentation of the object + public override string ToString() + { + var sb = new StringBuilder(); + sb.Append("class CreateNotificationResponse {\n"); + sb.Append(" NotificationId: ").Append(NotificationId).Append("\n"); + sb.Append("}\n"); + return sb.ToString(); + } + + /// + /// Returns the JSON string presentation of the object + /// + /// JSON string presentation of the object + public virtual string ToJson() + { + return JsonConvert.SerializeObject(this, Formatting.Indented); + } + + /// + /// Returns true if objects are equal + /// + /// Object to be compared + /// Boolean + public override bool Equals(object input) + { + return this.Equals(input as CreateNotificationResponse); + } + + /// + /// Returns true if CreateNotificationResponse instances are equal + /// + /// Instance of CreateNotificationResponse to be compared + /// Boolean + public bool Equals(CreateNotificationResponse input) + { + if (input == null) + return false; + + return + ( + this.NotificationId == input.NotificationId || + (this.NotificationId != null && + this.NotificationId.Equals(input.NotificationId)) + ); + } + + /// + /// Gets the hash code + /// + /// Hash code + public override int GetHashCode() + { + unchecked // Overflow is fine, just wrap + { + int hashCode = 41; + if (this.NotificationId != null) + hashCode = hashCode * 59 + this.NotificationId.GetHashCode(); + return hashCode; + } + } + + /// + /// To validate all properties of the instance + /// + /// Validation context + /// Validation Result + IEnumerable IValidatableObject.Validate(ValidationContext validationContext) + { + yield break; + } + } + +} diff --git a/Source/FikaAmazonAPI/AmazonSpApiSDK/Models/AppIntegrationsV20240401/DeleteNotificationsRequest.cs b/Source/FikaAmazonAPI/AmazonSpApiSDK/Models/AppIntegrationsV20240401/DeleteNotificationsRequest.cs new file mode 100644 index 00000000..dd1aa33a --- /dev/null +++ b/Source/FikaAmazonAPI/AmazonSpApiSDK/Models/AppIntegrationsV20240401/DeleteNotificationsRequest.cs @@ -0,0 +1,160 @@ +/* + * The Selling Partner API for third party application integrations. + * + * With the AppIntegrations API v2024-04-01, you can send notifications to Amazon Selling Partners and display the notifications in Seller Central. + * + * OpenAPI spec version: 2024-04-01 + * + * Generated by: https://github.com/swagger-api/swagger-codegen.git + */ + +using System; +using System.IO; +using System.Text; +using System.Collections.Generic; +using System.Runtime.Serialization; +using Newtonsoft.Json; +using System.ComponentModel.DataAnnotations; + +namespace FikaAmazonAPI.AmazonSpApiSDK.Models.AppIntegrationsV20240401 +{ + /// + /// The request for the `deleteNotifications` operation. + /// + [DataContract] + public partial class DeleteNotificationsRequest : IEquatable, IValidatableObject + { + /// + /// The request for the deleteNotifications operation. + /// + [JsonConstructorAttribute] + public DeleteNotificationsRequest() { } + + /// + /// The request for the deleteNotifications operation. + /// + /// The unique identifier of the notification template you used to onboard your application. (required). + /// The unique identifier that maps each notification status to a reason code. (required). + public DeleteNotificationsRequest(string templateId = default(string), DeletionReason deletionReason = default(DeletionReason)) + { + // to ensure "templateId" is required (not null) + if (templateId == null) + { + throw new InvalidDataException("templateId is a required property for DeleteNotificationsRequest and cannot be null"); + } + else + { + this.TemplateId = templateId; + } + // to ensure "deletionReason" is required (not null) + if (deletionReason == null) + { + throw new InvalidDataException("deletionReason is a required property for DeleteNotificationsRequest and cannot be null"); + } + else + { + this.DeletionReason = deletionReason; + } + } + + /// + /// The unique identifier of the notification template you used to onboard your application. + /// + /// The unique identifier of the notification template you used to onboard your application. + [DataMember(Name="templateId", EmitDefaultValue=false)] + public string TemplateId { get; set; } + + + /// + /// The unique identifier that maps each notification status to a reason code. + /// + /// The unique identifier that maps each notification status to a reason code. + [DataMember(Name = "deletionReason", EmitDefaultValue = false)] + public DeletionReason DeletionReason { get; set; } + + + /// + /// Returns the string presentation of the object + /// + /// String presentation of the object + public override string ToString() + { + var sb = new StringBuilder(); + sb.Append("class DeleteNotificationsRequest {\n"); + sb.Append(" TemplateId: ").Append(TemplateId).Append("\n"); + sb.Append(" DeletionReason: ").Append(DeletionReason).Append("\n"); + sb.Append("}\n"); + return sb.ToString(); + } + + /// + /// Returns the JSON string presentation of the object + /// + /// JSON string presentation of the object + public virtual string ToJson() + { + return JsonConvert.SerializeObject(this, Formatting.Indented); + } + + /// + /// Returns true if objects are equal + /// + /// Object to be compared + /// Boolean + public override bool Equals(object input) + { + return this.Equals(input as DeleteNotificationsRequest); + } + + /// + /// Returns true if DeleteNotificationsRequest instances are equal + /// + /// Instance of DeleteNotificationsRequest to be compared + /// Boolean + public bool Equals(DeleteNotificationsRequest input) + { + if (input == null) + return false; + + return + ( + this.TemplateId == input.TemplateId || + (this.TemplateId != null && + this.TemplateId.Equals(input.TemplateId)) + ) && + ( + this.DeletionReason == input.DeletionReason || + (this.DeletionReason != null && + this.DeletionReason.Equals(input.DeletionReason)) + ); + } + + /// + /// Gets the hash code + /// + /// Hash code + public override int GetHashCode() + { + unchecked // Overflow is fine, just wrap + { + int hashCode = 41; + if (this.TemplateId != null) + hashCode = hashCode * 59 + this.TemplateId.GetHashCode(); + if (this.DeletionReason != null) + hashCode = hashCode * 59 + this.DeletionReason.GetHashCode(); + return hashCode; + } + } + + /// + /// To validate all properties of the instance + /// + /// Validation context + /// Validation Result + IEnumerable IValidatableObject.Validate(ValidationContext validationContext) + { + yield break; + } + } + +} diff --git a/Source/FikaAmazonAPI/AmazonSpApiSDK/Models/AppIntegrationsV20240401/DeleteNotificationsResponse.cs b/Source/FikaAmazonAPI/AmazonSpApiSDK/Models/AppIntegrationsV20240401/DeleteNotificationsResponse.cs new file mode 100644 index 00000000..6c0e7e2a --- /dev/null +++ b/Source/FikaAmazonAPI/AmazonSpApiSDK/Models/AppIntegrationsV20240401/DeleteNotificationsResponse.cs @@ -0,0 +1,124 @@ +/* + * The Selling Partner API for third party application integrations. + * + * With the AppIntegrations API v2024-04-01, you can send notifications to Amazon Selling Partners and display the notifications in Seller Central. + * + * OpenAPI spec version: 2024-04-01 + * + * Generated by: https://github.com/swagger-api/swagger-codegen.git + */ + +using System; +using System.Text; +using System.Collections.Generic; +using System.Runtime.Serialization; +using Newtonsoft.Json; +using System.ComponentModel.DataAnnotations; + +namespace FikaAmazonAPI.AmazonSpApiSDK.Models.AppIntegrationsV20240401 +{ + /// + /// The response for the `deleteNotifications` operation. + /// + [DataContract] + public partial class DeleteNotificationsResponse: IEquatable, IValidatableObject + { + + public DeleteNotificationsResponse() + { + this.OperationId = default(string); + } + + /// + /// Initializes a new instance of the class. + /// + /// UUID for the given operation. + public DeleteNotificationsResponse(string operationId = default(string)) + { + this.OperationId = operationId; + } + + /// + /// The unique identifier assigned to each notification. + /// + /// The unique identifier assigned to each notification. + [DataMember(Name= "operationId", EmitDefaultValue=false)] + public string OperationId { get; set; } + + /// + /// Returns the string presentation of the object + /// + /// String presentation of the object + public override string ToString() + { + var sb = new StringBuilder(); + sb.Append("class DeleteNotificationsResponse {\n"); + sb.Append(" NotificationId: ").Append(OperationId).Append("\n"); + sb.Append("}\n"); + return sb.ToString(); + } + + /// + /// Returns the JSON string presentation of the object + /// + /// JSON string presentation of the object + public virtual string ToJson() + { + return JsonConvert.SerializeObject(this, Formatting.Indented); + } + + /// + /// Returns true if objects are equal + /// + /// Object to be compared + /// Boolean + public override bool Equals(object input) + { + return this.Equals(input as DeleteNotificationsResponse); + } + + /// + /// Returns true if DeleteNotificationsResponse instances are equal + /// + /// Instance of DeleteNotificationsResponse to be compared + /// Boolean + public bool Equals(DeleteNotificationsResponse input) + { + if (input == null) + return false; + + return + ( + this.OperationId == input.OperationId || + (this.OperationId != null && + this.OperationId.Equals(input.OperationId)) + ); + } + + /// + /// Gets the hash code + /// + /// Hash code + public override int GetHashCode() + { + unchecked // Overflow is fine, just wrap + { + int hashCode = 41; + if (this.OperationId != null) + hashCode = hashCode * 59 + this.OperationId.GetHashCode(); + return hashCode; + } + } + + /// + /// To validate all properties of the instance + /// + /// Validation context + /// Validation Result + IEnumerable IValidatableObject.Validate(ValidationContext validationContext) + { + yield break; + } + } + +} diff --git a/Source/FikaAmazonAPI/AmazonSpApiSDK/Models/AppIntegrationsV20240401/DeletionReason .cs b/Source/FikaAmazonAPI/AmazonSpApiSDK/Models/AppIntegrationsV20240401/DeletionReason .cs new file mode 100644 index 00000000..97d8eea5 --- /dev/null +++ b/Source/FikaAmazonAPI/AmazonSpApiSDK/Models/AppIntegrationsV20240401/DeletionReason .cs @@ -0,0 +1,36 @@ +/* + * The Selling Partner API for third party application integrations. + * + * With the AppIntegrations API v2024-04-01, you can send notifications to Amazon Selling Partners and display the notifications in Seller Central. + * + * OpenAPI spec version: 2024-04-01 + * + * Generated by: https://github.com/swagger-api/swagger-codegen.git + */ + +using Newtonsoft.Json.Converters; +using System.Runtime.Serialization; +using Newtonsoft.Json; + +namespace FikaAmazonAPI.AmazonSpApiSDK.Models.AppIntegrationsV20240401 +{ + /// + /// The unique identifier that maps each notification status to a reason code. + /// + /// The unique identifier that maps each notification status to a reason code. + [JsonConverter(typeof(StringEnumConverter))] + public enum DeletionReason + { + /// + /// Enum INCORRECT_CONTENT for value: INCORRECT_CONTENT + /// + [EnumMember(Value = "INCORRECT_CONTENT")] + INCORRECT_CONTENT = 1, + + /// + /// Enum INCORRECT_RECIPIENT for value: INCORRECT_RECIPIENT + /// + [EnumMember(Value = "INCORRECT_RECIPIENT")] + INCORRECT_RECIPIENT = 2 + } +} diff --git a/Source/FikaAmazonAPI/AmazonSpApiSDK/Models/AppIntegrationsV20240401/Error.cs b/Source/FikaAmazonAPI/AmazonSpApiSDK/Models/AppIntegrationsV20240401/Error.cs new file mode 100644 index 00000000..927f7d2f --- /dev/null +++ b/Source/FikaAmazonAPI/AmazonSpApiSDK/Models/AppIntegrationsV20240401/Error.cs @@ -0,0 +1,179 @@ +/* + * The Selling Partner API for third party application integrations. + * + * With the AppIntegrations API v2024-04-01, you can send notifications to Amazon Selling Partners and display the notifications in Seller Central. + * + * OpenAPI spec version: 2024-04-01 + * + * Generated by: https://github.com/swagger-api/swagger-codegen.git + */ + +using System; +using System.Linq; +using System.IO; +using System.Text; +using System.Text.RegularExpressions; +using System.Collections; +using System.Collections.Generic; +using System.Collections.ObjectModel; +using System.Runtime.Serialization; +using Newtonsoft.Json; +using Newtonsoft.Json.Converters; +using System.ComponentModel.DataAnnotations; + +namespace FikaAmazonAPI.AmazonSpApiSDK.Models.AppIntegrationsV20240401 +{ + /// + /// Error response returned when the request is unsuccessful. + /// + [DataContract] + public partial class Error : IEquatable, IValidatableObject + { + /// + /// Initializes a new instance of the class. + /// + [JsonConstructorAttribute] + public Error() { } + /// + /// Initializes a new instance of the class. + /// + /// An error code that identifies the type of error that occurred. (required). + /// A message that describes the error condition. (required). + /// Additional details that can help the caller understand or fix the issue.. + public Error(string code = default(string), string message = default(string), string details = default(string)) + { + // to ensure "code" is required (not null) + if (code == null) + { + throw new InvalidDataException("code is a required property for Error and cannot be null"); + } + else + { + this.Code = code; + } + // to ensure "message" is required (not null) + if (message == null) + { + throw new InvalidDataException("message is a required property for Error and cannot be null"); + } + else + { + this.Message = message; + } + this.Details = details; + } + + /// + /// An error code that identifies the type of error that occurred. + /// + /// An error code that identifies the type of error that occurred. + [DataMember(Name="code", EmitDefaultValue=false)] + public string Code { get; set; } + + /// + /// A message that describes the error condition. + /// + /// A message that describes the error condition. + [DataMember(Name="message", EmitDefaultValue=false)] + public string Message { get; set; } + + /// + /// Additional details that can help the caller understand or fix the issue. + /// + /// Additional details that can help the caller understand or fix the issue. + [DataMember(Name="details", EmitDefaultValue=false)] + public string Details { get; set; } + + /// + /// Returns the string presentation of the object + /// + /// String presentation of the object + public override string ToString() + { + var sb = new StringBuilder(); + sb.Append("class Error {\n"); + sb.Append(" Code: ").Append(Code).Append("\n"); + sb.Append(" Message: ").Append(Message).Append("\n"); + sb.Append(" Details: ").Append(Details).Append("\n"); + sb.Append("}\n"); + return sb.ToString(); + } + + /// + /// Returns the JSON string presentation of the object + /// + /// JSON string presentation of the object + public virtual string ToJson() + { + return JsonConvert.SerializeObject(this, Formatting.Indented); + } + + /// + /// Returns true if objects are equal + /// + /// Object to be compared + /// Boolean + public override bool Equals(object input) + { + return this.Equals(input as Error); + } + + /// + /// Returns true if Error instances are equal + /// + /// Instance of Error to be compared + /// Boolean + public bool Equals(Error input) + { + if (input == null) + return false; + + return + ( + this.Code == input.Code || + (this.Code != null && + this.Code.Equals(input.Code)) + ) && + ( + this.Message == input.Message || + (this.Message != null && + this.Message.Equals(input.Message)) + ) && + ( + this.Details == input.Details || + (this.Details != null && + this.Details.Equals(input.Details)) + ); + } + + /// + /// Gets the hash code + /// + /// Hash code + public override int GetHashCode() + { + unchecked // Overflow is fine, just wrap + { + int hashCode = 41; + if (this.Code != null) + hashCode = hashCode * 59 + this.Code.GetHashCode(); + if (this.Message != null) + hashCode = hashCode * 59 + this.Message.GetHashCode(); + if (this.Details != null) + hashCode = hashCode * 59 + this.Details.GetHashCode(); + return hashCode; + } + } + + /// + /// To validate all properties of the instance + /// + /// Validation context + /// Validation Result + IEnumerable IValidatableObject.Validate(ValidationContext validationContext) + { + yield break; + } + } + +} diff --git a/Source/FikaAmazonAPI/AmazonSpApiSDK/Models/AppIntegrationsV20240401/ErrorList.cs b/Source/FikaAmazonAPI/AmazonSpApiSDK/Models/AppIntegrationsV20240401/ErrorList.cs new file mode 100644 index 00000000..a2c18b41 --- /dev/null +++ b/Source/FikaAmazonAPI/AmazonSpApiSDK/Models/AppIntegrationsV20240401/ErrorList.cs @@ -0,0 +1,137 @@ +/* + * The Selling Partner API for third party application integrations. + * + * With the AppIntegrations API v2024-04-01, you can send notifications to Amazon Selling Partners and display the notifications in Seller Central. + * + * OpenAPI spec version: 2024-04-01 + * + * Generated by: https://github.com/swagger-api/swagger-codegen.git + */ + +using System; +using System.Linq; +using System.IO; +using System.Text; +using System.Text.RegularExpressions; +using System.Collections; +using System.Collections.Generic; +using System.Collections.ObjectModel; +using System.Runtime.Serialization; +using Newtonsoft.Json; +using Newtonsoft.Json.Converters; +using System.ComponentModel.DataAnnotations; + +namespace FikaAmazonAPI.AmazonSpApiSDK.Models.AppIntegrationsV20240401 +{ + /// + /// A list of error responses returned when a request is unsuccessful. + /// + [DataContract] + public partial class ErrorList : IEquatable, IValidatableObject + { + /// + /// Initializes a new instance of the class. + /// + [JsonConstructorAttribute] + public ErrorList() { } + /// + /// Initializes a new instance of the class. + /// + /// Error response returned when the request is unsuccessful. (required). + public ErrorList(List errors = default(List)) + { + // to ensure "errors" is required (not null) + if (errors == null) + { + throw new InvalidDataException("errors is a required property for ErrorList and cannot be null"); + } + else + { + this.Errors = errors; + } + } + + /// + /// Error response returned when the request is unsuccessful. + /// + /// Error response returned when the request is unsuccessful. + [DataMember(Name="errors", EmitDefaultValue=false)] + public List Errors { get; set; } + + /// + /// Returns the string presentation of the object + /// + /// String presentation of the object + public override string ToString() + { + var sb = new StringBuilder(); + sb.Append("class ErrorList {\n"); + sb.Append(" Errors: ").Append(Errors).Append("\n"); + sb.Append("}\n"); + return sb.ToString(); + } + + /// + /// Returns the JSON string presentation of the object + /// + /// JSON string presentation of the object + public virtual string ToJson() + { + return JsonConvert.SerializeObject(this, Formatting.Indented); + } + + /// + /// Returns true if objects are equal + /// + /// Object to be compared + /// Boolean + public override bool Equals(object input) + { + return this.Equals(input as ErrorList); + } + + /// + /// Returns true if ErrorList instances are equal + /// + /// Instance of ErrorList to be compared + /// Boolean + public bool Equals(ErrorList input) + { + if (input == null) + return false; + + return + ( + this.Errors == input.Errors || + this.Errors != null && + this.Errors.SequenceEqual(input.Errors) + ); + } + + /// + /// Gets the hash code + /// + /// Hash code + public override int GetHashCode() + { + unchecked // Overflow is fine, just wrap + { + int hashCode = 41; + if (this.Errors != null) + hashCode = hashCode * 59 + this.Errors.GetHashCode(); + return hashCode; + } + } + + /// + /// To validate all properties of the instance + /// + /// Validation context + /// Validation Result + IEnumerable IValidatableObject.Validate(ValidationContext validationContext) + { + yield break; + } + } + +} diff --git a/Source/FikaAmazonAPI/AmazonSpApiSDK/Models/AppIntegrationsV20240401/FeedbackActionCode.cs b/Source/FikaAmazonAPI/AmazonSpApiSDK/Models/AppIntegrationsV20240401/FeedbackActionCode.cs new file mode 100644 index 00000000..98165f58 --- /dev/null +++ b/Source/FikaAmazonAPI/AmazonSpApiSDK/Models/AppIntegrationsV20240401/FeedbackActionCode.cs @@ -0,0 +1,33 @@ +/* + * The Selling Partner API for third party application integrations. + * + * With the AppIntegrations API v2024-04-01, you can send notifications to Amazon Selling Partners and display the notifications in Seller Central. + * + * OpenAPI spec version: 2024-04-01 + * + * Generated by: https://github.com/swagger-api/swagger-codegen.git + */ + +using Newtonsoft.Json.Converters; +using System; +using System.Collections.Generic; +using System.Runtime.Serialization; +using System.Text; +using Newtonsoft.Json; + +namespace FikaAmazonAPI.AmazonSpApiSDK.Models.AppIntegrationsV20240401 +{ + /// + /// The unique identifier for each notification status. + /// + /// The unique identifier for each notification status. + [JsonConverter(typeof(StringEnumConverter))] + public enum FeedbackActionCode + { + /// + /// Enum SELLER_ACTION_COMPLETED for value: SELLER_ACTION_COMPLETED + /// + [EnumMember(Value = "SELLER_ACTION_COMPLETED")] + SELLER_ACTION_COMPLETED = 1 + } +} diff --git a/Source/FikaAmazonAPI/AmazonSpApiSDK/Models/AppIntegrationsV20240401/NotificationParameters.cs b/Source/FikaAmazonAPI/AmazonSpApiSDK/Models/AppIntegrationsV20240401/NotificationParameters.cs new file mode 100644 index 00000000..2467650c --- /dev/null +++ b/Source/FikaAmazonAPI/AmazonSpApiSDK/Models/AppIntegrationsV20240401/NotificationParameters.cs @@ -0,0 +1,109 @@ +/* + * The Selling Partner API for third party application integrations. + * + * With the AppIntegrations API v2024-04-01, you can send notifications to Amazon Selling Partners and display the notifications in Seller Central. + * + * OpenAPI spec version: 2024-04-01 + * + * Generated by: https://github.com/swagger-api/swagger-codegen.git + */ + +using System; +using System.Linq; +using System.IO; +using System.Text; +using System.Text.RegularExpressions; +using System.Collections; +using System.Collections.Generic; +using System.Collections.ObjectModel; +using System.Runtime.Serialization; +using Newtonsoft.Json; +using Newtonsoft.Json.Converters; +using System.ComponentModel.DataAnnotations; + +namespace FikaAmazonAPI.AmazonSpApiSDK.Models.AppIntegrationsV20240401 +{ + /// + /// The dynamic parameters required by the notification templated specified by `templateId`. + /// + [DataContract] + public partial class NotificationParameters : Dictionary, IEquatable, IValidatableObject + { + /// + /// Initializes a new instance of the class. + /// + [JsonConstructorAttribute] + public NotificationParameters() : base() + { + } + + /// + /// Returns the string presentation of the object + /// + /// String presentation of the object + public override string ToString() + { + var sb = new StringBuilder(); + sb.Append("class NotificationParameters {\n"); + sb.Append(" ").Append(base.ToString().Replace("\n", "\n ")).Append("\n"); + sb.Append("}\n"); + return sb.ToString(); + } + + /// + /// Returns the JSON string presentation of the object + /// + /// JSON string presentation of the object + public virtual string ToJson() + { + return JsonConvert.SerializeObject(this, Formatting.Indented); + } + + /// + /// Returns true if objects are equal + /// + /// Object to be compared + /// Boolean + public override bool Equals(object input) + { + return this.Equals(input as NotificationParameters); + } + + /// + /// Returns true if NotificationParameters instances are equal + /// + /// Instance of NotificationParameters to be compared + /// Boolean + public bool Equals(NotificationParameters input) + { + if (input == null) + return false; + + return base.Equals(input); + } + + /// + /// Gets the hash code + /// + /// Hash code + public override int GetHashCode() + { + unchecked // Overflow is fine, just wrap + { + int hashCode = base.GetHashCode(); + return hashCode; + } + } + + /// + /// To validate all properties of the instance + /// + /// Validation context + /// Validation Result + IEnumerable IValidatableObject.Validate(ValidationContext validationContext) + { + yield break; + } + } + +} diff --git a/Source/FikaAmazonAPI/AmazonSpApiSDK/Models/AppIntegrationsV20240401/RecordActionFeedbackRequest.cs b/Source/FikaAmazonAPI/AmazonSpApiSDK/Models/AppIntegrationsV20240401/RecordActionFeedbackRequest.cs new file mode 100644 index 00000000..c9fa31cc --- /dev/null +++ b/Source/FikaAmazonAPI/AmazonSpApiSDK/Models/AppIntegrationsV20240401/RecordActionFeedbackRequest.cs @@ -0,0 +1,132 @@ +/* + * The Selling Partner API for third party application integrations. + * + * With the AppIntegrations API v2024-04-01, you can send notifications to Amazon Selling Partners and display the notifications in Seller Central. + * + * OpenAPI spec version: 2024-04-01 + * + * Generated by: https://github.com/swagger-api/swagger-codegen.git + */ + +using System; +using System.IO; +using System.Text; +using System.Collections.Generic; +using System.Runtime.Serialization; +using Newtonsoft.Json; +using System.ComponentModel.DataAnnotations; + +namespace FikaAmazonAPI.AmazonSpApiSDK.Models.AppIntegrationsV20240401 +{ + /// + /// The request for the `recordActionFeedback` operation. + /// + [DataContract] + public partial class RecordActionFeedbackRequest : IEquatable, IValidatableObject + { + /// + /// Initializes a new instance of the class. + /// + [JsonConstructorAttribute] + public RecordActionFeedbackRequest() { } + /// + /// Initializes a new instance of the class. + /// + /// The unique identifier for each notification status. (required). + public RecordActionFeedbackRequest(FeedbackActionCode feedbackActionCode = default(FeedbackActionCode)) + { + // to ensure "feedbackActionCode" is required (not null) + if (feedbackActionCode == null) + { + throw new InvalidDataException("feedbackActionCode is a required property for RecordActionFeedbackRequest and cannot be null"); + } + else + { + this.FeedbackActionCode = feedbackActionCode; + } + } + + /// + /// The unique identifier for each notification status. + /// + /// The unique identifier for each notification status. + [DataMember(Name = "feedbackActionCode", EmitDefaultValue = false)] + public FeedbackActionCode FeedbackActionCode { get; set; } + + /// + /// Returns the string presentation of the object + /// + /// String presentation of the object + public override string ToString() + { + var sb = new StringBuilder(); + sb.Append("class RecordActionFeedbackRequest {\n"); + sb.Append(" FeedbackActionCode: ").Append(FeedbackActionCode).Append("\n"); + sb.Append("}\n"); + return sb.ToString(); + } + + /// + /// Returns the JSON string presentation of the object + /// + /// JSON string presentation of the object + public virtual string ToJson() + { + return JsonConvert.SerializeObject(this, Formatting.Indented); + } + + /// + /// Returns true if objects are equal + /// + /// Object to be compared + /// Boolean + public override bool Equals(object input) + { + return this.Equals(input as RecordActionFeedbackRequest); + } + + /// + /// Returns true if RecordActionFeedbackRequest instances are equal + /// + /// Instance of RecordActionFeedbackRequest to be compared + /// Boolean + public bool Equals(RecordActionFeedbackRequest input) + { + if (input == null) + return false; + + return + ( + this.FeedbackActionCode == input.FeedbackActionCode || + (this.FeedbackActionCode != null && + this.FeedbackActionCode.Equals(input.FeedbackActionCode)) + ); + } + + /// + /// Gets the hash code + /// + /// Hash code + public override int GetHashCode() + { + unchecked // Overflow is fine, just wrap + { + int hashCode = 41; + if (this.FeedbackActionCode != null) + hashCode = hashCode * 59 + this.FeedbackActionCode.GetHashCode(); + return hashCode; + } + } + + /// + /// To validate all properties of the instance + /// + /// Validation context + /// Validation Result + IEnumerable IValidatableObject.Validate(ValidationContext validationContext) + { + yield break; + } + } + +} diff --git a/Source/FikaAmazonAPI/AmazonSpApiSDK/Models/AppIntegrationsV20240401/RecordActionFeedbackResponse.cs b/Source/FikaAmazonAPI/AmazonSpApiSDK/Models/AppIntegrationsV20240401/RecordActionFeedbackResponse.cs new file mode 100644 index 00000000..54ce2c90 --- /dev/null +++ b/Source/FikaAmazonAPI/AmazonSpApiSDK/Models/AppIntegrationsV20240401/RecordActionFeedbackResponse.cs @@ -0,0 +1,124 @@ +/* + * The Selling Partner API for third party application integrations. + * + * With the AppIntegrations API v2024-04-01, you can send notifications to Amazon Selling Partners and display the notifications in Seller Central. + * + * OpenAPI spec version: 2024-04-01 + * + * Generated by: https://github.com/swagger-api/swagger-codegen.git + */ + +using System; +using System.Text; +using System.Collections.Generic; +using System.Runtime.Serialization; +using Newtonsoft.Json; +using System.ComponentModel.DataAnnotations; + +namespace FikaAmazonAPI.AmazonSpApiSDK.Models.AppIntegrationsV20240401 +{ + /// + /// The response for the `recordActionFeedback` operation. + /// + [DataContract] + public partial class RecordActionFeedbackResponse: IEquatable, IValidatableObject + { + + public RecordActionFeedbackResponse() + { + this.OperationId = default(string); + } + + /// + /// Initializes a new instance of the class. + /// + /// UUID for the given operation. + public RecordActionFeedbackResponse(string operationId = default(string)) + { + this.OperationId = operationId; + } + + /// + /// The unique identifier assigned to each notification. + /// + /// The unique identifier assigned to each notification. + [DataMember(Name= "operationId", EmitDefaultValue=false)] + public string OperationId { get; set; } + + /// + /// Returns the string presentation of the object + /// + /// String presentation of the object + public override string ToString() + { + var sb = new StringBuilder(); + sb.Append("class RecordActionFeedbackResponse {\n"); + sb.Append(" NotificationId: ").Append(OperationId).Append("\n"); + sb.Append("}\n"); + return sb.ToString(); + } + + /// + /// Returns the JSON string presentation of the object + /// + /// JSON string presentation of the object + public virtual string ToJson() + { + return JsonConvert.SerializeObject(this, Formatting.Indented); + } + + /// + /// Returns true if objects are equal + /// + /// Object to be compared + /// Boolean + public override bool Equals(object input) + { + return this.Equals(input as RecordActionFeedbackResponse); + } + + /// + /// Returns true if RecordActionFeedbackResponse instances are equal + /// + /// Instance of RecordActionFeedbackResponse to be compared + /// Boolean + public bool Equals(RecordActionFeedbackResponse input) + { + if (input == null) + return false; + + return + ( + this.OperationId == input.OperationId || + (this.OperationId != null && + this.OperationId.Equals(input.OperationId)) + ); + } + + /// + /// Gets the hash code + /// + /// Hash code + public override int GetHashCode() + { + unchecked // Overflow is fine, just wrap + { + int hashCode = 41; + if (this.OperationId != null) + hashCode = hashCode * 59 + this.OperationId.GetHashCode(); + return hashCode; + } + } + + /// + /// To validate all properties of the instance + /// + /// Validation context + /// Validation Result + IEnumerable IValidatableObject.Validate(ValidationContext validationContext) + { + yield break; + } + } + +} diff --git a/Source/FikaAmazonAPI/Services/ApiUrls.cs b/Source/FikaAmazonAPI/Services/ApiUrls.cs index a71a1e74..fd1eec9b 100644 --- a/Source/FikaAmazonAPI/Services/ApiUrls.cs +++ b/Source/FikaAmazonAPI/Services/ApiUrls.cs @@ -672,6 +672,28 @@ protected class ProductTypeDefinitionsApi public static string SearchDefinitionsProductTypes => $"{_resourceBaseUrl}"; } + protected class AppIntegrationsApiUrls + { + private readonly static string _resourceBaseUrl = "appIntegrations"; + + #region V20240401 + private readonly static string _resourceBaseUrl_V20240401 = "appIntegrations/2024-04-01"; + + public static string CreateNotification + { + get => $"{_resourceBaseUrl_V20240401}/notifications"; + } + + public static string DeleteNotifications + { + get => $"{_resourceBaseUrl_V20240401}/notifications/deletion"; + } + + public static string RecordActionFeedback(string notificationId) => $"{_resourceBaseUrl_V20240401}/notifications/{notificationId}/feedback"; + + #endregion + } + } diff --git a/Source/FikaAmazonAPI/Services/AppIntegrationsV20240401.cs b/Source/FikaAmazonAPI/Services/AppIntegrationsV20240401.cs new file mode 100644 index 00000000..c567f6e4 --- /dev/null +++ b/Source/FikaAmazonAPI/Services/AppIntegrationsV20240401.cs @@ -0,0 +1,62 @@ +using FikaAmazonAPI.AmazonSpApiSDK.Models.AppIntegrationsV20240401; +using FikaAmazonAPI.Utils; +using System; +using System.Collections.Generic; +using System.Text; +using System.Threading.Tasks; +using System.Threading; + +namespace FikaAmazonAPI.Services +{ + public class AppIntegrationsServiceV20240401: RequestService + { + public AppIntegrationsServiceV20240401(AmazonCredential amazonCredential) : base(amazonCredential) + { + + } + + #region CreateNotification + public CreateNotificationResponse CreateNotification(CreateNotificationRequest createNotificationRequest) => + Task.Run(() => CreateInboundPlanAsync(createNotificationRequest)).ConfigureAwait(false).GetAwaiter().GetResult(); + + public async Task CreateInboundPlanAsync(CreateNotificationRequest createNotificationRequest, CancellationToken cancellationToken = default) + { + await CreateAuthorizedRequestAsync(AppIntegrationsApiUrls.CreateNotification, RestSharp.Method.Post, postJsonObj: createNotificationRequest, cancellationToken: cancellationToken); + return await ExecuteRequestAsync(RateLimitType.AppIntegrationsV20240401_CreateNotification, cancellationToken); + } + #endregion + + + #region DeleteNotifications + public bool DeleteNotifications(DeleteNotificationsRequest deleteNotificationsRequest) => + Task.Run(() => DeleteNotificationsAsync(deleteNotificationsRequest)).ConfigureAwait(false).GetAwaiter().GetResult(); + + public async Task DeleteNotificationsAsync(DeleteNotificationsRequest deleteNotificationsRequest, CancellationToken cancellationToken = default) + { + await CreateAuthorizedRequestAsync(AppIntegrationsApiUrls.DeleteNotifications, RestSharp.Method.Post, postJsonObj: deleteNotificationsRequest, cancellationToken: cancellationToken); + var response = await ExecuteRequestAsync(RateLimitType.AppIntegrationsV20240401_DeleteNotifications, cancellationToken); + if (response != null) + return false; + + return true; + } + #endregion + + #region RecordActionFeedback + public bool RecordActionFeedback(string notificationId, RecordActionFeedbackRequest recordActionFeedbackRequest) => + Task.Run(() => RecordActionFeedbackAsync(notificationId, recordActionFeedbackRequest)).ConfigureAwait(false).GetAwaiter().GetResult(); + + public async Task RecordActionFeedbackAsync(string notificationId, RecordActionFeedbackRequest recordActionFeedbackRequest, CancellationToken cancellationToken = default) + { + await CreateAuthorizedRequestAsync(AppIntegrationsApiUrls.RecordActionFeedback(notificationId), RestSharp.Method.Post, postJsonObj: recordActionFeedbackRequest, cancellationToken: cancellationToken); + var response = await ExecuteRequestAsync(RateLimitType.AppIntegrationsV20240401_RecordActionFeedback, cancellationToken); + if (response != null) + return false; + + return true; + } + #endregion + } + + +} diff --git a/Source/FikaAmazonAPI/Utils/RateLimitType.cs b/Source/FikaAmazonAPI/Utils/RateLimitType.cs index 90c52a80..d2311f7a 100644 --- a/Source/FikaAmazonAPI/Utils/RateLimitType.cs +++ b/Source/FikaAmazonAPI/Utils/RateLimitType.cs @@ -4,6 +4,10 @@ public enum RateLimitType { UNSET, + AppIntegrationsV20240401_CreateNotification, + AppIntegrationsV20240401_DeleteNotifications, + AppIntegrationsV20240401_RecordActionFeedback, + Order_GetOrders, Order_GetOrder, Order_GetOrderBuyerInfo, diff --git a/Source/FikaAmazonAPI/Utils/RateLimitsDefinitions.cs b/Source/FikaAmazonAPI/Utils/RateLimitsDefinitions.cs index 6740d2b3..6fea4b85 100644 --- a/Source/FikaAmazonAPI/Utils/RateLimitsDefinitions.cs +++ b/Source/FikaAmazonAPI/Utils/RateLimitsDefinitions.cs @@ -9,6 +9,10 @@ internal static Dictionary RateLimitsTime() //This has to create a new list for each connection, so that rate limits are per seller, not overall. return new Dictionary() { + { RateLimitType.AppIntegrationsV20240401_CreateNotification, new RateLimits(1.0M, 5) }, + { RateLimitType.AppIntegrationsV20240401_DeleteNotifications, new RateLimits(1.0M, 5) }, + { RateLimitType.AppIntegrationsV20240401_RecordActionFeedback, new RateLimits(1.0M, 5) }, + { RateLimitType.Order_GetOrders, new RateLimits(0.0167M, 20) }, { RateLimitType.Order_GetOrder, new RateLimits(0.0167M, 20) }, { RateLimitType.Order_GetOrderBuyerInfo, new RateLimits(0.0167M, 20) },