diff --git a/Source/Adobe.Target.Delivery/Adobe.Target.Delivery.csproj b/Source/Adobe.Target.Delivery/Adobe.Target.Delivery.csproj index aacbf75..93752ac 100644 --- a/Source/Adobe.Target.Delivery/Adobe.Target.Delivery.csproj +++ b/Source/Adobe.Target.Delivery/Adobe.Target.Delivery.csproj @@ -16,7 +16,7 @@ - + diff --git a/Source/Adobe.Target.Delivery/Client/ClientUtils.cs b/Source/Adobe.Target.Delivery/Client/ClientUtils.cs index 1b1bdfd..1dfe317 100644 --- a/Source/Adobe.Target.Delivery/Client/ClientUtils.cs +++ b/Source/Adobe.Target.Delivery/Client/ClientUtils.cs @@ -56,6 +56,21 @@ public static Multimap ParameterToMultiMap(string collectionForm parameters.Add(name, ParameterToString(item)); } } + else if (value is IDictionary dictionary) + { + if(collectionFormat == "deepObject") { + foreach (DictionaryEntry entry in dictionary) + { + parameters.Add(name + "[" + entry.Key + "]", ParameterToString(entry.Value)); + } + } + else { + foreach (DictionaryEntry entry in dictionary) + { + parameters.Add(entry.Key.ToString(), ParameterToString(entry.Value)); + } + } + } else { parameters.Add(name, ParameterToString(value)); diff --git a/Source/Adobe.Target.Delivery/Model/AnalyticsRequest.cs b/Source/Adobe.Target.Delivery/Model/AnalyticsRequest.cs index 3c2251b..61a8964 100644 --- a/Source/Adobe.Target.Delivery/Model/AnalyticsRequest.cs +++ b/Source/Adobe.Target.Delivery/Model/AnalyticsRequest.cs @@ -34,6 +34,7 @@ namespace Adobe.Target.Delivery.Model [DataContract(Name = "AnalyticsRequest")] public partial class AnalyticsRequest : IEquatable, IValidatableObject { + /// /// Gets or Sets Logging /// diff --git a/Source/Adobe.Target.Delivery/Model/AudienceManager.cs b/Source/Adobe.Target.Delivery/Model/AudienceManager.cs index b5ed946..f6f5f91 100644 --- a/Source/Adobe.Target.Delivery/Model/AudienceManager.cs +++ b/Source/Adobe.Target.Delivery/Model/AudienceManager.cs @@ -39,7 +39,7 @@ public partial class AudienceManager : IEquatable, IValidatable /// /// DCS location hint. Used to determine which AAM DCS Endpoint to hit in order to retrieve the profile. . /// AAM Blob. Used to send additional data to AAM. Validation * Cannot be blank. . - public AudienceManager(int locationHint = default(int), string blob = default(string)) + public AudienceManager(int? locationHint = default(int?), string blob = default(string)) { this.LocationHint = locationHint; this.Blob = blob; @@ -50,7 +50,7 @@ public partial class AudienceManager : IEquatable, IValidatable /// /// DCS location hint. Used to determine which AAM DCS Endpoint to hit in order to retrieve the profile. [DataMember(Name = "locationHint", EmitDefaultValue = false)] - public int LocationHint { get; set; } + public int? LocationHint { get; set; } /// /// AAM Blob. Used to send additional data to AAM. Validation * Cannot be blank. diff --git a/Source/Adobe.Target.Delivery/Model/AuthenticatedState.cs b/Source/Adobe.Target.Delivery/Model/AuthenticatedState.cs index 13d6f97..6921563 100644 --- a/Source/Adobe.Target.Delivery/Model/AuthenticatedState.cs +++ b/Source/Adobe.Target.Delivery/Model/AuthenticatedState.cs @@ -31,9 +31,7 @@ namespace Adobe.Target.Delivery.Model /// /// Defines AuthenticatedState /// - [JsonConverter(typeof(StringEnumConverter))] - public enum AuthenticatedState { /// diff --git a/Source/Adobe.Target.Delivery/Model/ChannelType.cs b/Source/Adobe.Target.Delivery/Model/ChannelType.cs index e840ec5..3e16d43 100644 --- a/Source/Adobe.Target.Delivery/Model/ChannelType.cs +++ b/Source/Adobe.Target.Delivery/Model/ChannelType.cs @@ -32,9 +32,7 @@ namespace Adobe.Target.Delivery.Model /// Specifies the channel for the request. Only activities with the matching channel will be evaluated. /// /// Specifies the channel for the request. Only activities with the matching channel will be evaluated. - [JsonConverter(typeof(StringEnumConverter))] - public enum ChannelType { /// diff --git a/Source/Adobe.Target.Delivery/Model/Context.cs b/Source/Adobe.Target.Delivery/Model/Context.cs index 9de22ef..6ece1d0 100644 --- a/Source/Adobe.Target.Delivery/Model/Context.cs +++ b/Source/Adobe.Target.Delivery/Model/Context.cs @@ -34,6 +34,7 @@ namespace Adobe.Target.Delivery.Model [DataContract(Name = "Context")] public partial class Context : IEquatable, IValidatableObject { + /// /// Gets or Sets Channel /// @@ -58,7 +59,7 @@ protected Context() { } /// Specifies minutes from UTC for specific client. /// User-Agent should be sent only via this property. HTTP header User-Agent is ignored.. /// In case beacon = true is provided in the request, the server will return a 204 No Content response with no response body. (default to false). - public Context(ChannelType channel = default(ChannelType), MobilePlatform mobilePlatform = default(MobilePlatform), Application application = default(Application), Screen screen = default(Screen), Window window = default(Window), Browser browser = default(Browser), Address address = default(Address), Geo geo = default(Geo), double timeOffsetInMinutes = default(double), string userAgent = default(string), bool beacon = false) + public Context(ChannelType channel = default(ChannelType), MobilePlatform mobilePlatform = default(MobilePlatform), Application application = default(Application), Screen screen = default(Screen), Window window = default(Window), Browser browser = default(Browser), Address address = default(Address), Geo geo = default(Geo), double? timeOffsetInMinutes = default(double?), string userAgent = default(string), bool beacon = false) { this.Channel = channel; this.MobilePlatform = mobilePlatform; @@ -120,7 +121,7 @@ protected Context() { } /// /// Specifies minutes from UTC for specific client [DataMember(Name = "timeOffsetInMinutes", EmitDefaultValue = false)] - public double TimeOffsetInMinutes { get; set; } + public double? TimeOffsetInMinutes { get; set; } /// /// User-Agent should be sent only via this property. HTTP header User-Agent is ignored. @@ -133,7 +134,7 @@ protected Context() { } /// In case beacon = true is provided in the request, the server will return a 204 No Content response with no response body. /// /// In case beacon = true is provided in the request, the server will return a 204 No Content response with no response body. - [DataMember(Name = "beacon", EmitDefaultValue = false)] + [DataMember(Name = "beacon", EmitDefaultValue = true)] public bool Beacon { get; set; } /// diff --git a/Source/Adobe.Target.Delivery/Model/CustomerId.cs b/Source/Adobe.Target.Delivery/Model/CustomerId.cs index 13c8fe3..834ab8b 100644 --- a/Source/Adobe.Target.Delivery/Model/CustomerId.cs +++ b/Source/Adobe.Target.Delivery/Model/CustomerId.cs @@ -34,6 +34,7 @@ namespace Adobe.Target.Delivery.Model [DataContract(Name = "CustomerId")] public partial class CustomerId : IEquatable, IValidatableObject { + /// /// Gets or Sets AuthenticatedState /// diff --git a/Source/Adobe.Target.Delivery/Model/DecisioningMethod.cs b/Source/Adobe.Target.Delivery/Model/DecisioningMethod.cs index 23bc6b5..4836cd8 100644 --- a/Source/Adobe.Target.Delivery/Model/DecisioningMethod.cs +++ b/Source/Adobe.Target.Delivery/Model/DecisioningMethod.cs @@ -31,9 +31,7 @@ namespace Adobe.Target.Delivery.Model /// /// Defines DecisioningMethod /// - [JsonConverter(typeof(StringEnumConverter))] - public enum DecisioningMethod { /// diff --git a/Source/Adobe.Target.Delivery/Model/DeliveryRequest.cs b/Source/Adobe.Target.Delivery/Model/DeliveryRequest.cs index 2cc4cba..26f0560 100644 --- a/Source/Adobe.Target.Delivery/Model/DeliveryRequest.cs +++ b/Source/Adobe.Target.Delivery/Model/DeliveryRequest.cs @@ -56,7 +56,7 @@ protected DeliveryRequest() { } /// Notifications for the displayed content, clicked selectors, and/or visited views or mboxes.. /// qaMode. /// preview. - public DeliveryRequest(string requestId = default(string), string impressionId = default(string), VisitorId id = default(VisitorId), long environmentId = default(long), Property property = default(Property), Trace trace = default(Trace), Context context = default(Context), ExperienceCloud experienceCloud = default(ExperienceCloud), ExecuteRequest execute = default(ExecuteRequest), PrefetchRequest prefetch = default(PrefetchRequest), Telemetry telemetry = default(Telemetry), List notifications = default(List), QAMode qaMode = default(QAMode), Preview preview = default(Preview)) + public DeliveryRequest(string requestId = default(string), string impressionId = default(string), VisitorId id = default(VisitorId), long? environmentId = default(long?), Property property = default(Property), Trace trace = default(Trace), Context context = default(Context), ExperienceCloud experienceCloud = default(ExperienceCloud), ExecuteRequest execute = default(ExecuteRequest), PrefetchRequest prefetch = default(PrefetchRequest), Telemetry telemetry = default(Telemetry), List notifications = default(List), QAMode qaMode = default(QAMode), Preview preview = default(Preview)) { // to ensure "context" is required (not null) this.Context = context ?? throw new ArgumentNullException("context is a required property for DeliveryRequest and cannot be null"); @@ -100,7 +100,7 @@ protected DeliveryRequest() { } /// /// Valid client environment id. If not specified host will be determined base on the provided host. [DataMember(Name = "environmentId", EmitDefaultValue = false)] - public long EnvironmentId { get; set; } + public long? EnvironmentId { get; set; } /// /// Gets or Sets Property diff --git a/Source/Adobe.Target.Delivery/Model/DeliveryResponse.cs b/Source/Adobe.Target.Delivery/Model/DeliveryResponse.cs index 3dad652..6b36bb8 100644 --- a/Source/Adobe.Target.Delivery/Model/DeliveryResponse.cs +++ b/Source/Adobe.Target.Delivery/Model/DeliveryResponse.cs @@ -45,7 +45,7 @@ public partial class DeliveryResponse : IEquatable, IValidatab /// execute. /// prefetch. /// notifications. - public DeliveryResponse(int status = default(int), string requestId = default(string), VisitorId id = default(VisitorId), string _client = default(string), string edgeHost = default(string), ExecuteResponse execute = default(ExecuteResponse), PrefetchResponse prefetch = default(PrefetchResponse), NotificationResponse notifications = default(NotificationResponse)) + public DeliveryResponse(int? status = default(int?), string requestId = default(string), VisitorId id = default(VisitorId), string _client = default(string), string edgeHost = default(string), ExecuteResponse execute = default(ExecuteResponse), PrefetchResponse prefetch = default(PrefetchResponse), NotificationResponse notifications = default(NotificationResponse)) { this.Status = status; this.RequestId = requestId; @@ -61,7 +61,7 @@ public partial class DeliveryResponse : IEquatable, IValidatab /// Gets or Sets Status /// [DataMember(Name = "status", EmitDefaultValue = false)] - public int Status { get; set; } + public int? Status { get; set; } /// /// ID of the processed request. If it's not sent in the request, a random ID (UUID) is generated and returned with the response. diff --git a/Source/Adobe.Target.Delivery/Model/DeviceType.cs b/Source/Adobe.Target.Delivery/Model/DeviceType.cs index ab5fc71..38619e5 100644 --- a/Source/Adobe.Target.Delivery/Model/DeviceType.cs +++ b/Source/Adobe.Target.Delivery/Model/DeviceType.cs @@ -32,9 +32,7 @@ namespace Adobe.Target.Delivery.Model /// Field is mandatory when Mobile Platform is specified. Only activities that match the specified deviceType or have the device type set to 'null' will be evaluated. Ex if device type is 'phone' in the delivery request, then only activities that have the device type equal to 'phone' or set to 'null' will be evaluated. An activity with 'null' device type will be evaluated for requests for both, 'phone' and 'tablet'. /// /// Field is mandatory when Mobile Platform is specified. Only activities that match the specified deviceType or have the device type set to 'null' will be evaluated. Ex if device type is 'phone' in the delivery request, then only activities that have the device type equal to 'phone' or set to 'null' will be evaluated. An activity with 'null' device type will be evaluated for requests for both, 'phone' and 'tablet'. - [JsonConverter(typeof(StringEnumConverter))] - public enum DeviceType { /// diff --git a/Source/Adobe.Target.Delivery/Model/Geo.cs b/Source/Adobe.Target.Delivery/Model/Geo.cs index 92e7729..973a687 100644 --- a/Source/Adobe.Target.Delivery/Model/Geo.cs +++ b/Source/Adobe.Target.Delivery/Model/Geo.cs @@ -44,7 +44,7 @@ public partial class Geo : IEquatable, IValidatableObject /// Alphanumeric characters representing the subdivision part from ISO 3166-2. /// City. /// Zip/Postal Code. - public Geo(string ipAddress = default(string), float latitude = default(float), float longitude = default(float), string countryCode = default(string), string stateCode = default(string), string city = default(string), string zip = default(string)) + public Geo(string ipAddress = default(string), float? latitude = default(float?), float? longitude = default(float?), string countryCode = default(string), string stateCode = default(string), string city = default(string), string zip = default(string)) { this.IpAddress = ipAddress; this.Latitude = latitude; @@ -67,14 +67,14 @@ public partial class Geo : IEquatable, IValidatableObject /// /// Latitude [DataMember(Name = "latitude", EmitDefaultValue = false)] - public float Latitude { get; set; } + public float? Latitude { get; set; } /// /// Longitude /// /// Longitude [DataMember(Name = "longitude", EmitDefaultValue = false)] - public float Longitude { get; set; } + public float? Longitude { get; set; } /// /// Country code in ISO 3166-1 alpha-2 format diff --git a/Source/Adobe.Target.Delivery/Model/LoggingType.cs b/Source/Adobe.Target.Delivery/Model/LoggingType.cs index 9806183..929c9dd 100644 --- a/Source/Adobe.Target.Delivery/Model/LoggingType.cs +++ b/Source/Adobe.Target.Delivery/Model/LoggingType.cs @@ -32,9 +32,7 @@ namespace Adobe.Target.Delivery.Model /// Indicates whether integraion will be done via client side (from the client) or server side (edge servers) /// /// Indicates whether integraion will be done via client side (from the client) or server side (edge servers) - [JsonConverter(typeof(StringEnumConverter))] - public enum LoggingType { /// diff --git a/Source/Adobe.Target.Delivery/Model/MboxRequest.cs b/Source/Adobe.Target.Delivery/Model/MboxRequest.cs index 324f60c..f4e50b1 100644 --- a/Source/Adobe.Target.Delivery/Model/MboxRequest.cs +++ b/Source/Adobe.Target.Delivery/Model/MboxRequest.cs @@ -49,7 +49,7 @@ protected MboxRequest() { } /// product. /// An index for the mboxes to be executed or prefetched. Mbox index is used for correlation between the mbox request with the mbox response, for either prefetch or execute responses. Index should be unique in the mbox list. (required). /// The name of the regional mbox to be evaluated. . - public MboxRequest(Address address = default(Address), Dictionary parameters = default(Dictionary), Dictionary profileParameters = default(Dictionary), Order order = default(Order), Product product = default(Product), int index = default(int), string name = default(string)) + public MboxRequest(Address address = default(Address), Dictionary parameters = default(Dictionary), Dictionary profileParameters = default(Dictionary), Order order = default(Order), Product product = default(Product), int? index = default(int?), string name = default(string)) { this.Index = index; this.Address = address; @@ -97,7 +97,7 @@ protected MboxRequest() { } /// /// An index for the mboxes to be executed or prefetched. Mbox index is used for correlation between the mbox request with the mbox response, for either prefetch or execute responses. Index should be unique in the mbox list. [DataMember(Name = "index", IsRequired = true, EmitDefaultValue = false)] - public int Index { get; set; } + public int? Index { get; set; } /// /// The name of the regional mbox to be evaluated. diff --git a/Source/Adobe.Target.Delivery/Model/MboxRequestAllOf.cs b/Source/Adobe.Target.Delivery/Model/MboxRequestAllOf.cs index 864448d..ad13ead 100644 --- a/Source/Adobe.Target.Delivery/Model/MboxRequestAllOf.cs +++ b/Source/Adobe.Target.Delivery/Model/MboxRequestAllOf.cs @@ -39,7 +39,7 @@ public partial class MboxRequestAllOf : IEquatable, IValidatab /// /// An index for the mboxes to be executed or prefetched. Mbox index is used for correlation between the mbox request with the mbox response, for either prefetch or execute responses. Index should be unique in the mbox list. . /// The name of the regional mbox to be evaluated. . - public MboxRequestAllOf(int index = default(int), string name = default(string)) + public MboxRequestAllOf(int? index = default(int?), string name = default(string)) { this.Index = index; this.Name = name; @@ -50,7 +50,7 @@ public partial class MboxRequestAllOf : IEquatable, IValidatab /// /// An index for the mboxes to be executed or prefetched. Mbox index is used for correlation between the mbox request with the mbox response, for either prefetch or execute responses. Index should be unique in the mbox list. [DataMember(Name = "index", EmitDefaultValue = false)] - public int Index { get; set; } + public int? Index { get; set; } /// /// The name of the regional mbox to be evaluated. diff --git a/Source/Adobe.Target.Delivery/Model/MboxResponse.cs b/Source/Adobe.Target.Delivery/Model/MboxResponse.cs index 3e9c3a4..c83b443 100644 --- a/Source/Adobe.Target.Delivery/Model/MboxResponse.cs +++ b/Source/Adobe.Target.Delivery/Model/MboxResponse.cs @@ -43,7 +43,7 @@ public partial class MboxResponse : IEquatable, IValidatableObject /// Click metrics.. /// analytics. /// The object containing all trace data for the request, only present if the trace token was provided in the request. . - public MboxResponse(int index = default(int), string name = default(string), List /// Indicates that the response is for mbox with the same index, as was specified in the prefetch or execute request. [DataMember(Name = "index", EmitDefaultValue = false)] - public int Index { get; set; } + public int? Index { get; set; } /// /// The name of the mbox. Since the same mbox name can be specified multiple times in the request it should be used in conjunction with the index. diff --git a/Source/Adobe.Target.Delivery/Model/Metric.cs b/Source/Adobe.Target.Delivery/Model/Metric.cs index dc3fb32..787691f 100644 --- a/Source/Adobe.Target.Delivery/Model/Metric.cs +++ b/Source/Adobe.Target.Delivery/Model/Metric.cs @@ -34,6 +34,7 @@ namespace Adobe.Target.Delivery.Model [DataContract(Name = "Metric")] public partial class Metric : IEquatable, IValidatableObject { + /// /// Gets or Sets Type /// diff --git a/Source/Adobe.Target.Delivery/Model/MetricType.cs b/Source/Adobe.Target.Delivery/Model/MetricType.cs index 851b6a9..86fd7d4 100644 --- a/Source/Adobe.Target.Delivery/Model/MetricType.cs +++ b/Source/Adobe.Target.Delivery/Model/MetricType.cs @@ -32,9 +32,7 @@ namespace Adobe.Target.Delivery.Model /// Notification type. Currently only click and display are supported. /// /// Notification type. Currently only click and display are supported. - [JsonConverter(typeof(StringEnumConverter))] - public enum MetricType { /// diff --git a/Source/Adobe.Target.Delivery/Model/MobilePlatform.cs b/Source/Adobe.Target.Delivery/Model/MobilePlatform.cs index 9f1a3c4..a20b39b 100644 --- a/Source/Adobe.Target.Delivery/Model/MobilePlatform.cs +++ b/Source/Adobe.Target.Delivery/Model/MobilePlatform.cs @@ -34,11 +34,13 @@ namespace Adobe.Target.Delivery.Model [DataContract(Name = "MobilePlatform")] public partial class MobilePlatform : IEquatable, IValidatableObject { + /// /// Gets or Sets DeviceType /// [DataMember(Name = "deviceType", IsRequired = true, EmitDefaultValue = false)] public DeviceType DeviceType { get; set; } + /// /// Gets or Sets PlatformType /// diff --git a/Source/Adobe.Target.Delivery/Model/MobilePlatformType.cs b/Source/Adobe.Target.Delivery/Model/MobilePlatformType.cs index 1fcf09b..004addf 100644 --- a/Source/Adobe.Target.Delivery/Model/MobilePlatformType.cs +++ b/Source/Adobe.Target.Delivery/Model/MobilePlatformType.cs @@ -32,9 +32,7 @@ namespace Adobe.Target.Delivery.Model /// Only activities with the specified mobile platform type will be evaluated. /// /// Only activities with the specified mobile platform type will be evaluated. - [JsonConverter(typeof(StringEnumConverter))] - public enum MobilePlatformType { /// diff --git a/Source/Adobe.Target.Delivery/Model/Notification.cs b/Source/Adobe.Target.Delivery/Model/Notification.cs index 305fd90..5ab4c4f 100644 --- a/Source/Adobe.Target.Delivery/Model/Notification.cs +++ b/Source/Adobe.Target.Delivery/Model/Notification.cs @@ -34,6 +34,7 @@ namespace Adobe.Target.Delivery.Model [DataContract(Name = "Notification")] public partial class Notification : IEquatable, IValidatableObject { + /// /// Gets or Sets Type /// @@ -60,7 +61,7 @@ protected Notification() { } /// mbox. /// view. /// pageLoad. - public Notification(Address address = default(Address), Dictionary parameters = default(Dictionary), Dictionary profileParameters = default(Dictionary), Order order = default(Order), Product product = default(Product), string id = default(string), string impressionId = default(string), MetricType type = default(MetricType), long timestamp = default(long), List tokens = default(List), NotificationMbox mbox = default(NotificationMbox), NotificationView view = default(NotificationView), NotificationPageLoad pageLoad = default(NotificationPageLoad)) + public Notification(Address address = default(Address), Dictionary parameters = default(Dictionary), Dictionary profileParameters = default(Dictionary), Order order = default(Order), Product product = default(Product), string id = default(string), string impressionId = default(string), MetricType type = default(MetricType), long? timestamp = default(long?), List tokens = default(List), NotificationMbox mbox = default(NotificationMbox), NotificationView view = default(NotificationView), NotificationPageLoad pageLoad = default(NotificationPageLoad)) { // to ensure "id" is required (not null) this.Id = id ?? throw new ArgumentNullException("id is a required property for Notification and cannot be null"); @@ -129,7 +130,7 @@ protected Notification() { } /// /// Timestamp of the notification, in milliseconds elapsed since UNIX epoch. [DataMember(Name = "timestamp", IsRequired = true, EmitDefaultValue = false)] - public long Timestamp { get; set; } + public long? Timestamp { get; set; } /// /// A list of tokens for displayed content or clicked selectors, based on the type of notification. diff --git a/Source/Adobe.Target.Delivery/Model/NotificationAllOf.cs b/Source/Adobe.Target.Delivery/Model/NotificationAllOf.cs index 0c79b7a..bcb92f0 100644 --- a/Source/Adobe.Target.Delivery/Model/NotificationAllOf.cs +++ b/Source/Adobe.Target.Delivery/Model/NotificationAllOf.cs @@ -34,6 +34,7 @@ namespace Adobe.Target.Delivery.Model [DataContract(Name = "Notification_allOf")] public partial class NotificationAllOf : IEquatable, IValidatableObject { + /// /// Gets or Sets Type /// @@ -50,7 +51,7 @@ public partial class NotificationAllOf : IEquatable, IValidat /// mbox. /// view. /// pageLoad. - public NotificationAllOf(string id = default(string), string impressionId = default(string), MetricType? type = default(MetricType?), long timestamp = default(long), List tokens = default(List), NotificationMbox mbox = default(NotificationMbox), NotificationView view = default(NotificationView), NotificationPageLoad pageLoad = default(NotificationPageLoad)) + public NotificationAllOf(string id = default(string), string impressionId = default(string), MetricType? type = default(MetricType?), long? timestamp = default(long?), List tokens = default(List), NotificationMbox mbox = default(NotificationMbox), NotificationView view = default(NotificationView), NotificationPageLoad pageLoad = default(NotificationPageLoad)) { this.Id = id; this.ImpressionId = impressionId; @@ -81,7 +82,7 @@ public partial class NotificationAllOf : IEquatable, IValidat /// /// Timestamp of the notification, in milliseconds elapsed since UNIX epoch. [DataMember(Name = "timestamp", EmitDefaultValue = false)] - public long Timestamp { get; set; } + public long? Timestamp { get; set; } /// /// A list of tokens for displayed content or clicked selectors, based on the type of notification. diff --git a/Source/Adobe.Target.Delivery/Model/Option.cs b/Source/Adobe.Target.Delivery/Model/Option.cs index 7c72be9..46f5132 100644 --- a/Source/Adobe.Target.Delivery/Model/Option.cs +++ b/Source/Adobe.Target.Delivery/Model/Option.cs @@ -34,6 +34,7 @@ namespace Adobe.Target.Delivery.Model [DataContract(Name = "Option")] public partial class Option : IEquatable /// Index references the activity in the activity list (from the encrypted token). Validation * If the activity list index is out of boundaries of the activities list in the token or if it is null it will be ignored. * Activity list index starts with 1. * Should be at least one activity index, and should reference an activity specified in the token. [DataMember(Name = "activityIndex", EmitDefaultValue = false)] - public int ActivityIndex { get; set; } + public int? ActivityIndex { get; set; } /// /// When specified, the experience with this index in the activity definition will be selected. Validation * Can be null (unspecified) * If index is not specified or out of bounds, the experience will be selected via activity experience selector strategy. * Experience index starts with 1. /// /// When specified, the experience with this index in the activity definition will be selected. Validation * Can be null (unspecified) * If index is not specified or out of bounds, the experience will be selected via activity experience selector strategy. * Experience index starts with 1. [DataMember(Name = "experienceIndex", EmitDefaultValue = false)] - public int ExperienceIndex { get; set; } + public int? ExperienceIndex { get; set; } /// /// Returns the string presentation of the object diff --git a/Source/Adobe.Target.Delivery/Model/Screen.cs b/Source/Adobe.Target.Delivery/Model/Screen.cs index 3598509..b7f8303 100644 --- a/Source/Adobe.Target.Delivery/Model/Screen.cs +++ b/Source/Adobe.Target.Delivery/Model/Screen.cs @@ -34,6 +34,7 @@ namespace Adobe.Target.Delivery.Model [DataContract(Name = "Screen")] public partial class Screen : IEquatable, IValidatableObject { + /// /// Gets or Sets Orientation /// @@ -47,7 +48,7 @@ public partial class Screen : IEquatable, IValidatableObject /// color depth. /// Optional, Used for device detection using the device atlas. /// orientation. - public Screen(double width = default(double), double height = default(double), double colorDepth = default(double), double pixelRatio = default(double), ScreenOrientationType? orientation = default(ScreenOrientationType?)) + public Screen(double? width = default(double?), double? height = default(double?), double? colorDepth = default(double?), double? pixelRatio = default(double?), ScreenOrientationType? orientation = default(ScreenOrientationType?)) { this.Width = width; this.Height = height; @@ -61,28 +62,28 @@ public partial class Screen : IEquatable, IValidatableObject /// /// width [DataMember(Name = "width", EmitDefaultValue = false)] - public double Width { get; set; } + public double? Width { get; set; } /// /// height /// /// height [DataMember(Name = "height", EmitDefaultValue = false)] - public double Height { get; set; } + public double? Height { get; set; } /// /// color depth /// /// color depth [DataMember(Name = "colorDepth", EmitDefaultValue = false)] - public double ColorDepth { get; set; } + public double? ColorDepth { get; set; } /// /// Optional, Used for device detection using the device atlas /// /// Optional, Used for device detection using the device atlas [DataMember(Name = "pixelRatio", EmitDefaultValue = false)] - public double PixelRatio { get; set; } + public double? PixelRatio { get; set; } /// /// Returns the string presentation of the object diff --git a/Source/Adobe.Target.Delivery/Model/ScreenOrientationType.cs b/Source/Adobe.Target.Delivery/Model/ScreenOrientationType.cs index a2192b8..c25f9f8 100644 --- a/Source/Adobe.Target.Delivery/Model/ScreenOrientationType.cs +++ b/Source/Adobe.Target.Delivery/Model/ScreenOrientationType.cs @@ -32,9 +32,7 @@ namespace Adobe.Target.Delivery.Model /// If not specified, all activities with any screen orientation will be evaluated. If specified, only the activities with the matching screen orientation will evaluated. /// /// If not specified, all activities with any screen orientation will be evaluated. If specified, only the activities with the matching screen orientation will evaluated. - [JsonConverter(typeof(StringEnumConverter))] - public enum ScreenOrientationType { /// diff --git a/Source/Adobe.Target.Delivery/Model/TelemetryEntry.cs b/Source/Adobe.Target.Delivery/Model/TelemetryEntry.cs index 0a4401d..e2fcd6f 100644 --- a/Source/Adobe.Target.Delivery/Model/TelemetryEntry.cs +++ b/Source/Adobe.Target.Delivery/Model/TelemetryEntry.cs @@ -41,7 +41,7 @@ public partial class TelemetryEntry : IEquatable, IValidatableOb /// Timestamp of the entry, in milliseconds elapsed since UNIX epoch.. /// Execution time in milliseconds.. /// features. - public TelemetryEntry(string requestId = default(string), long timestamp = default(long), int execution = default(int), TelemetryFeatures features = default(TelemetryFeatures)) + public TelemetryEntry(string requestId = default(string), long? timestamp = default(long?), int? execution = default(int?), TelemetryFeatures features = default(TelemetryFeatures)) { this.RequestId = requestId; this.Timestamp = timestamp; @@ -61,14 +61,14 @@ public partial class TelemetryEntry : IEquatable, IValidatableOb /// /// Timestamp of the entry, in milliseconds elapsed since UNIX epoch. [DataMember(Name = "timestamp", EmitDefaultValue = false)] - public long Timestamp { get; set; } + public long? Timestamp { get; set; } /// /// Execution time in milliseconds. /// /// Execution time in milliseconds. [DataMember(Name = "execution", EmitDefaultValue = false)] - public int Execution { get; set; } + public int? Execution { get; set; } /// /// Gets or Sets Features diff --git a/Source/Adobe.Target.Delivery/Model/TelemetryFeatures.cs b/Source/Adobe.Target.Delivery/Model/TelemetryFeatures.cs index 7472ebe..ba8a643 100644 --- a/Source/Adobe.Target.Delivery/Model/TelemetryFeatures.cs +++ b/Source/Adobe.Target.Delivery/Model/TelemetryFeatures.cs @@ -34,6 +34,7 @@ namespace Adobe.Target.Delivery.Model [DataContract(Name = "TelemetryFeatures")] public partial class TelemetryFeatures : IEquatable, IValidatableObject { + /// /// Gets or Sets DecisioningMethod /// diff --git a/Source/Adobe.Target.Delivery/Model/UnexpectedError.cs b/Source/Adobe.Target.Delivery/Model/UnexpectedError.cs index ffa2604..fb35748 100644 --- a/Source/Adobe.Target.Delivery/Model/UnexpectedError.cs +++ b/Source/Adobe.Target.Delivery/Model/UnexpectedError.cs @@ -44,7 +44,7 @@ protected UnexpectedError() { } /// /// HTTP response codes: * `400` - Validation error (ex. invalid token) * `500` - An internal server error during processing (required). /// error message (required). - public UnexpectedError(int status = default(int), string message = default(string)) + public UnexpectedError(int? status = default(int?), string message = default(string)) { this.Status = status; // to ensure "message" is required (not null) @@ -56,7 +56,7 @@ protected UnexpectedError() { } /// /// HTTP response codes: * `400` - Validation error (ex. invalid token) * `500` - An internal server error during processing [DataMember(Name = "status", IsRequired = true, EmitDefaultValue = false)] - public int Status { get; set; } + public int? Status { get; set; } /// /// error message diff --git a/Source/Adobe.Target.Delivery/Model/Window.cs b/Source/Adobe.Target.Delivery/Model/Window.cs index 6eb9530..ce964ef 100644 --- a/Source/Adobe.Target.Delivery/Model/Window.cs +++ b/Source/Adobe.Target.Delivery/Model/Window.cs @@ -39,7 +39,7 @@ public partial class Window : IEquatable, IValidatableObject /// /// width. /// height. - public Window(double width = default(double), double height = default(double)) + public Window(double? width = default(double?), double? height = default(double?)) { this.Width = width; this.Height = height; @@ -50,14 +50,14 @@ public partial class Window : IEquatable, IValidatableObject /// /// width [DataMember(Name = "width", EmitDefaultValue = false)] - public double Width { get; set; } + public double? Width { get; set; } /// /// height /// /// height [DataMember(Name = "height", EmitDefaultValue = false)] - public double Height { get; set; } + public double? Height { get; set; } /// /// Returns the string presentation of the object diff --git a/codegeneration/openapitools.json b/codegeneration/openapitools.json index 8ef4cb7..d2fdbae 100644 --- a/codegeneration/openapitools.json +++ b/codegeneration/openapitools.json @@ -2,6 +2,6 @@ "$schema": "node_modules/@openapitools/openapi-generator-cli/config.schema.json", "spaces": 2, "generator-cli": { - "version": "5.0.1" + "version": "5.1.1" } } diff --git a/codegeneration/package-lock.json b/codegeneration/package-lock.json index 292cd30..5f2a50f 100644 --- a/codegeneration/package-lock.json +++ b/codegeneration/package-lock.json @@ -13,9 +13,9 @@ } }, "node_modules/@nestjs/common": { - "version": "7.6.12", - "resolved": "https://registry.npmjs.org/@nestjs/common/-/common-7.6.12.tgz", - "integrity": "sha512-DXW1BaiDTYuDq3jHkps1DN00atUN7HOB8tzeyVZO1DPmQHjGNMm3qBQ+Du4HnWb+J1YdIUmIkBcGIe61S+uWAA==", + "version": "7.6.15", + "resolved": "https://registry.npmjs.org/@nestjs/common/-/common-7.6.15.tgz", + "integrity": "sha512-H/3Nk7M02Fc4YN9St05i34gZKVuzE54gd5eXAX6WwisqU5fQ00kss1pYGbltjb2QGu3A/fpO1MdYEwOA18Z/VQ==", "dev": true, "dependencies": { "axios": "0.21.1", @@ -53,9 +53,9 @@ "dev": true }, "node_modules/@nestjs/core": { - "version": "7.6.12", - "resolved": "https://registry.npmjs.org/@nestjs/core/-/core-7.6.12.tgz", - "integrity": "sha512-hxgWjkKyqA0XJsjs3wlXlh/NbOk03NF8uzGxIUM/HIogu0TaC+4BWpNAvmruduPVioIisCJCKWuFKsjm7S0A1A==", + "version": "7.6.15", + "resolved": "https://registry.npmjs.org/@nestjs/core/-/core-7.6.15.tgz", + "integrity": "sha512-8CrL/iY5Gt4HJfyDg1PgPalhT7tVRT643f2mGMgPum/P/e94uuwEYBNIgsMEVOJUrOAWZkNIN60uEf8JkH6GWw==", "dev": true, "hasInstallScript": true, "dependencies": { @@ -116,16 +116,16 @@ } }, "node_modules/@openapitools/openapi-generator-cli": { - "version": "2.1.23", - "resolved": "https://registry.npmjs.org/@openapitools/openapi-generator-cli/-/openapi-generator-cli-2.1.23.tgz", - "integrity": "sha512-Ha3dqY8FGExnrMQ04B7wejvR1Y+l3q4crm7bnfDIVGOrm6wNeTKcNRzNIrGy9vslc2C7KUmb3031OveBNcWpPA==", + "version": "2.2.6", + "resolved": "https://registry.npmjs.org/@openapitools/openapi-generator-cli/-/openapi-generator-cli-2.2.6.tgz", + "integrity": "sha512-TFKHY1lcknzg6IhPe9f8wWUO11PeKBPnrM40jZjZNUHlQRvh7WLsW6vNlbGcm78eBYTcyY0cKqr1QXUpB9Ez2Q==", "dev": true, "hasInstallScript": true, "dependencies": { - "@nestjs/common": "7.6.12", - "@nestjs/core": "7.6.12", + "@nestjs/common": "7.6.15", + "@nestjs/core": "7.6.15", "@nuxtjs/opencollective": "0.3.2", - "chalk": "4.1.0", + "chalk": "4.1.1", "commander": "6.2.1", "compare-versions": "3.6.0", "concurrently": "5.3.0", @@ -133,10 +133,10 @@ "fs-extra": "9.1.0", "glob": "7.1.6", "inquirer": "7.3.3", - "lodash": "4.17.20", + "lodash": "4.17.21", "reflect-metadata": "0.1.13", - "rxjs": "6.6.3", - "tslib": "2.0.3" + "rxjs": "6.6.7", + "tslib": "1.13.0" }, "bin": { "openapi-generator-cli": "main.js" @@ -226,9 +226,9 @@ } }, "node_modules/chalk": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.0.tgz", - "integrity": "sha512-qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A==", + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.1.tgz", + "integrity": "sha512-diHzdDKxcU+bAsUboHLPEDQiw0qEe0qd7SYUn3HgcFlWgbDcfLGswOHYeGrHKzG9z6UYf01d9VFMfZxPM1xZSg==", "dev": true, "dependencies": { "ansi-styles": "^4.1.0", @@ -236,6 +236,9 @@ }, "engines": { "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" } }, "node_modules/chardet": { @@ -546,9 +549,9 @@ } }, "node_modules/follow-redirects": { - "version": "1.13.2", - "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.13.2.tgz", - "integrity": "sha512-6mPTgLxYm3r6Bkkg0vNM0HTjfGrOEtsfbhagQvbxDEsEkpNhw582upBaoRZylzen6krEmxXJgt9Ju6HiI4O7BA==", + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.14.1.tgz", + "integrity": "sha512-HWqDgT7ZEkqRzBvc2s64vSZ/hfOceEol3ac/7tKwzuvEyWx3/4UegXh5oBOIotkGsObyk3xznnSRVADBgWSQVg==", "dev": true, "funding": [ { @@ -646,9 +649,9 @@ } }, "node_modules/hosted-git-info": { - "version": "2.8.8", - "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.8.tgz", - "integrity": "sha512-f/wzC2QaWBs7t9IYqB4T3sR1xviIViXJRJTWBlx2Gf3g0Xi5vI7Yy4koXQ1c9OYDGHN9sBy1DQ2AB8fqZBWhUg==", + "version": "2.8.9", + "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.9.tgz", + "integrity": "sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==", "dev": true }, "node_modules/iconv-lite": { @@ -827,9 +830,9 @@ } }, "node_modules/lodash": { - "version": "4.17.20", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.20.tgz", - "integrity": "sha512-PlhdFcillOINfeV7Ni6oF1TAEayyZBoZ8bcshTHqOYJYlrqzRK5hagpagky5o4HfCzzd1TRkXPMFq6cKk9rGmA==", + "version": "4.17.21", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", + "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==", "dev": true }, "node_modules/mimic-fn": { @@ -1090,9 +1093,9 @@ } }, "node_modules/rxjs": { - "version": "6.6.3", - "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.6.3.tgz", - "integrity": "sha512-trsQc+xYYXZ3urjOiJOuCOa5N3jAZ3eiSpQB5hIT8zGlL2QfnHLJ2r7GMkBGuIausdJN1OneaI6gQlsqNHHmZQ==", + "version": "6.6.7", + "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.6.7.tgz", + "integrity": "sha512-hTdwr+7yYNIT5n4AMYp85KA6yw2Va0FLa3Rguvbpa4W3I5xynaBZo41cM3XM+4Q6fRMj3sBYIR1VAmZMXYJvRQ==", "dev": true, "dependencies": { "tslib": "^1.9.0" @@ -1271,9 +1274,9 @@ } }, "node_modules/tslib": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.0.3.tgz", - "integrity": "sha512-uZtkfKblCEQtZKBF6EBXVZeQNl82yqtDQdv+eck8u7tdPxjLu2/lp5/uPW+um2tpuxINHWy3GhiccY7QgEaVHQ==", + "version": "1.13.0", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.13.0.tgz", + "integrity": "sha512-i/6DQjL8Xf3be4K/E6Wgpekn5Qasl1usyw++dAA35Ue5orEn65VIxOA+YvNNl9HV3qv70T7CNwjODHZrLwvd1Q==", "dev": true }, "node_modules/type-fest": { @@ -1413,9 +1416,9 @@ }, "dependencies": { "@nestjs/common": { - "version": "7.6.12", - "resolved": "https://registry.npmjs.org/@nestjs/common/-/common-7.6.12.tgz", - "integrity": "sha512-DXW1BaiDTYuDq3jHkps1DN00atUN7HOB8tzeyVZO1DPmQHjGNMm3qBQ+Du4HnWb+J1YdIUmIkBcGIe61S+uWAA==", + "version": "7.6.15", + "resolved": "https://registry.npmjs.org/@nestjs/common/-/common-7.6.15.tgz", + "integrity": "sha512-H/3Nk7M02Fc4YN9St05i34gZKVuzE54gd5eXAX6WwisqU5fQ00kss1pYGbltjb2QGu3A/fpO1MdYEwOA18Z/VQ==", "dev": true, "requires": { "axios": "0.21.1", @@ -1433,9 +1436,9 @@ } }, "@nestjs/core": { - "version": "7.6.12", - "resolved": "https://registry.npmjs.org/@nestjs/core/-/core-7.6.12.tgz", - "integrity": "sha512-hxgWjkKyqA0XJsjs3wlXlh/NbOk03NF8uzGxIUM/HIogu0TaC+4BWpNAvmruduPVioIisCJCKWuFKsjm7S0A1A==", + "version": "7.6.15", + "resolved": "https://registry.npmjs.org/@nestjs/core/-/core-7.6.15.tgz", + "integrity": "sha512-8CrL/iY5Gt4HJfyDg1PgPalhT7tVRT643f2mGMgPum/P/e94uuwEYBNIgsMEVOJUrOAWZkNIN60uEf8JkH6GWw==", "dev": true, "requires": { "@nuxtjs/opencollective": "0.3.2", @@ -1467,15 +1470,15 @@ } }, "@openapitools/openapi-generator-cli": { - "version": "2.1.23", - "resolved": "https://registry.npmjs.org/@openapitools/openapi-generator-cli/-/openapi-generator-cli-2.1.23.tgz", - "integrity": "sha512-Ha3dqY8FGExnrMQ04B7wejvR1Y+l3q4crm7bnfDIVGOrm6wNeTKcNRzNIrGy9vslc2C7KUmb3031OveBNcWpPA==", + "version": "2.2.6", + "resolved": "https://registry.npmjs.org/@openapitools/openapi-generator-cli/-/openapi-generator-cli-2.2.6.tgz", + "integrity": "sha512-TFKHY1lcknzg6IhPe9f8wWUO11PeKBPnrM40jZjZNUHlQRvh7WLsW6vNlbGcm78eBYTcyY0cKqr1QXUpB9Ez2Q==", "dev": true, "requires": { - "@nestjs/common": "7.6.12", - "@nestjs/core": "7.6.12", + "@nestjs/common": "7.6.15", + "@nestjs/core": "7.6.15", "@nuxtjs/opencollective": "0.3.2", - "chalk": "4.1.0", + "chalk": "4.1.1", "commander": "6.2.1", "compare-versions": "3.6.0", "concurrently": "5.3.0", @@ -1483,10 +1486,10 @@ "fs-extra": "9.1.0", "glob": "7.1.6", "inquirer": "7.3.3", - "lodash": "4.17.20", + "lodash": "4.17.21", "reflect-metadata": "0.1.13", - "rxjs": "6.6.3", - "tslib": "2.0.3" + "rxjs": "6.6.7", + "tslib": "1.13.0" } }, "ansi-escapes": { @@ -1551,9 +1554,9 @@ "dev": true }, "chalk": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.0.tgz", - "integrity": "sha512-qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A==", + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.1.tgz", + "integrity": "sha512-diHzdDKxcU+bAsUboHLPEDQiw0qEe0qd7SYUn3HgcFlWgbDcfLGswOHYeGrHKzG9z6UYf01d9VFMfZxPM1xZSg==", "dev": true, "requires": { "ansi-styles": "^4.1.0", @@ -1815,9 +1818,9 @@ } }, "follow-redirects": { - "version": "1.13.2", - "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.13.2.tgz", - "integrity": "sha512-6mPTgLxYm3r6Bkkg0vNM0HTjfGrOEtsfbhagQvbxDEsEkpNhw582upBaoRZylzen6krEmxXJgt9Ju6HiI4O7BA==", + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.14.1.tgz", + "integrity": "sha512-HWqDgT7ZEkqRzBvc2s64vSZ/hfOceEol3ac/7tKwzuvEyWx3/4UegXh5oBOIotkGsObyk3xznnSRVADBgWSQVg==", "dev": true }, "fs-extra": { @@ -1886,9 +1889,9 @@ "dev": true }, "hosted-git-info": { - "version": "2.8.8", - "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.8.tgz", - "integrity": "sha512-f/wzC2QaWBs7t9IYqB4T3sR1xviIViXJRJTWBlx2Gf3g0Xi5vI7Yy4koXQ1c9OYDGHN9sBy1DQ2AB8fqZBWhUg==", + "version": "2.8.9", + "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.9.tgz", + "integrity": "sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==", "dev": true }, "iconv-lite": { @@ -2037,9 +2040,9 @@ } }, "lodash": { - "version": "4.17.20", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.20.tgz", - "integrity": "sha512-PlhdFcillOINfeV7Ni6oF1TAEayyZBoZ8bcshTHqOYJYlrqzRK5hagpagky5o4HfCzzd1TRkXPMFq6cKk9rGmA==", + "version": "4.17.21", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", + "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==", "dev": true }, "mimic-fn": { @@ -2246,9 +2249,9 @@ "dev": true }, "rxjs": { - "version": "6.6.3", - "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.6.3.tgz", - "integrity": "sha512-trsQc+xYYXZ3urjOiJOuCOa5N3jAZ3eiSpQB5hIT8zGlL2QfnHLJ2r7GMkBGuIausdJN1OneaI6gQlsqNHHmZQ==", + "version": "6.6.7", + "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.6.7.tgz", + "integrity": "sha512-hTdwr+7yYNIT5n4AMYp85KA6yw2Va0FLa3Rguvbpa4W3I5xynaBZo41cM3XM+4Q6fRMj3sBYIR1VAmZMXYJvRQ==", "dev": true, "requires": { "tslib": "^1.9.0" @@ -2396,9 +2399,9 @@ "dev": true }, "tslib": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.0.3.tgz", - "integrity": "sha512-uZtkfKblCEQtZKBF6EBXVZeQNl82yqtDQdv+eck8u7tdPxjLu2/lp5/uPW+um2tpuxINHWy3GhiccY7QgEaVHQ==", + "version": "1.13.0", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.13.0.tgz", + "integrity": "sha512-i/6DQjL8Xf3be4K/E6Wgpekn5Qasl1usyw++dAA35Ue5orEn65VIxOA+YvNNl9HV3qv70T7CNwjODHZrLwvd1Q==", "dev": true }, "type-fest": { diff --git a/codegeneration/package.json b/codegeneration/package.json index 35678e0..703186f 100644 --- a/codegeneration/package.json +++ b/codegeneration/package.json @@ -5,9 +5,9 @@ "main": "index.js", "scripts": { "clean": "shx rm -rf ./build", - "select-501": "openapi-generator-cli version-manager set 5.0.1", + "select-511": "openapi-generator-cli version-manager set 5.1.1", "generate": "openapi-generator-cli generate -g csharp-netcore -c config.json -i ../openapi/delivery/api.yaml -o ./build -t ./template --skip-validate-spec", - "precodegen": "npm run clean && npm run select-501", + "precodegen": "npm run clean && npm run select-511", "codegen": "npm run generate", "postcodegen": "shx sed -i 's/OneOfstringobject/Object/g' ./build/src/Adobe.Target.Delivery/Model/Action.cs && shx sed -i 's/OneOfstringobjectarray/Object/g' ./build/src/Adobe.Target.Delivery/Model/Option.cs && sed -i -e '1 { r ./template/partial_header.mustache' -e 'N; }' ./build/src/Adobe.Target.Delivery/Client/RetryConfiguration.cs && sed -i 's/*\\/using/*\\/\\r\\nusing/g' ./build/src/Adobe.Target.Delivery/Client/RetryConfiguration.cs && sed -i 's/(this.Time != null \\&\\&/(true \\&\\&/g' ./build/src/Adobe.Target.Delivery/Model/Order.cs && sed -i '/if (this.Time != null)/d' ./build/src/Adobe.Target.Delivery/Model/Order.cs && shx rm -rf ../Source/Adobe.Target.Delivery && shx cp -r ./build/src/Adobe.Target.Delivery ../Source/ && shx cp ../Source/Adobe.Target.Client/stylecop.json ../Source/Adobe.Target.Delivery/", "codegenhelp": "openapi-generator-cli config-help -g csharp-netcore" diff --git a/codegeneration/template/modelGeneric.mustache b/codegeneration/template/modelGeneric.mustache new file mode 100644 index 0000000..c11dd9d --- /dev/null +++ b/codegeneration/template/modelGeneric.mustache @@ -0,0 +1,351 @@ + /// + /// {{#description}}{{.}}{{/description}}{{^description}}{{classname}}{{/description}} + /// + [DataContract(Name = "{{{name}}}")] + {{#discriminator}} + [JsonConverter(typeof(JsonSubtypes), "{{{discriminatorName}}}")] + {{#mappedModels}} + [JsonSubtypes.KnownSubType(typeof({{{modelName}}}), "{{^vendorExtensions.x-discriminator-value}}{{{mappingName}}}{{/vendorExtensions.x-discriminator-value}}{{#vendorExtensions.x-discriminator-value}}{{{.}}}{{/vendorExtensions.x-discriminator-value}}")] + {{/mappedModels}} + {{/discriminator}} + {{>visibility}} partial class {{classname}} : {{#parent}}{{{parent}}}, {{/parent}}IEquatable<{{classname}}>{{#validatable}}, IValidatableObject{{/validatable}} + { + {{#vars}} + {{#items.isEnum}} + {{#items}} + {{^complexType}} +{{>modelInnerEnum}} + {{/complexType}} + {{/items}} + {{/items.isEnum}} + {{#isEnum}} + {{^complexType}} +{{>modelInnerEnum}} + {{/complexType}} + {{/isEnum}} + {{#isEnum}} + + /// + /// {{^description}}Gets or Sets {{{name}}}{{/description}}{{#description}}{{description}}{{/description}} + /// + {{#description}} + /// {{description}} + {{/description}} + [DataMember(Name = "{{baseName}}"{{#required}}, IsRequired = true{{/required}}, EmitDefaultValue = {{#vendorExtensions.x-emit-default-value}}true{{/vendorExtensions.x-emit-default-value}}{{^vendorExtensions.x-emit-default-value}}{{#isBoolean}}true{{/isBoolean}}{{^isBoolean}}{{#isNullable}}true{{/isNullable}}{{^isNullable}}false{{/isNullable}}{{/isBoolean}}{{/vendorExtensions.x-emit-default-value}})] + public {{#complexType}}{{{complexType}}}{{/complexType}}{{^complexType}}{{{datatypeWithEnum}}}{{/complexType}}{{^isContainer}}{{^required}}?{{/required}}{{/isContainer}} {{name}} { get; set; } + {{#isReadOnly}} + + /// + /// Returns false as {{name}} should not be serialized given that it's read-only. + /// + /// false (boolean) + public bool ShouldSerialize{{name}}() + { + return false; + } + {{/isReadOnly}} + {{/isEnum}} + {{/vars}} + {{#hasRequired}} + {{^hasOnlyReadOnly}} + /// + /// Initializes a new instance of the class. + /// + [JsonConstructorAttribute] + {{^isAdditionalPropertiesTrue}} + protected {{classname}}() { } + {{/isAdditionalPropertiesTrue}} + {{#isAdditionalPropertiesTrue}} + protected {{classname}}() + { + this.AdditionalProperties = new Dictionary(); + } + {{/isAdditionalPropertiesTrue}} + {{/hasOnlyReadOnly}} + {{/hasRequired}} + /// + /// Initializes a new instance of the class. + /// + {{#readWriteVars}} + /// {{#description}}{{description}}{{/description}}{{^description}}{{#lambda.camelcase_param}}{{name}}{{/lambda.camelcase_param}}{{/description}}{{#required}} (required){{/required}}{{#defaultValue}} (default to {{defaultValue}}){{/defaultValue}}. + {{/readWriteVars}} + {{#hasOnlyReadOnly}} + [JsonConstructorAttribute] + {{/hasOnlyReadOnly}} + public {{classname}}({{#readWriteVars}}{{{datatypeWithEnum}}}{{#isNumeric}}?{{/isNumeric}}{{#isEnum}}{{^isContainer}}{{^required}}?{{/required}}{{/isContainer}}{{/isEnum}} {{#lambda.camelcase_param}}{{name}}{{/lambda.camelcase_param}} = {{#defaultValue}}{{^isDateTime}}{{{defaultValue}}}{{/isDateTime}}{{#isDateTime}}default({{{datatypeWithEnum}}}){{/isDateTime}}{{/defaultValue}}{{^defaultValue}}default({{{datatypeWithEnum}}}{{#isNumeric}}?{{/isNumeric}}{{#isEnum}}{{^isContainer}}{{^required}}?{{/required}}{{/isContainer}}{{/isEnum}}){{/defaultValue}}{{^-last}}, {{/-last}}{{/readWriteVars}}){{#parent}} : base({{#parentVars}}{{#lambda.camelcase_param}}{{name}}{{/lambda.camelcase_param}}{{^-last}}, {{/-last}}{{/parentVars}}){{/parent}} + { + {{#vars}} + {{^isInherited}} + {{^isReadOnly}} + {{#required}} + {{^vendorExtensions.x-csharp-value-type}} + // to ensure "{{#lambda.camelcase_param}}{{name}}{{/lambda.camelcase_param}}" is required (not null) + this.{{name}} = {{#lambda.camelcase_param}}{{name}}{{/lambda.camelcase_param}} ?? throw new ArgumentNullException("{{#lambda.camelcase_param}}{{name}}{{/lambda.camelcase_param}} is a required property for {{classname}} and cannot be null"); + {{/vendorExtensions.x-csharp-value-type}} + {{#vendorExtensions.x-csharp-value-type}} + this.{{name}} = {{#lambda.camelcase_param}}{{name}}{{/lambda.camelcase_param}}; + {{/vendorExtensions.x-csharp-value-type}} + {{/required}} + {{/isReadOnly}} + {{/isInherited}} + {{/vars}} + {{#vars}} + {{^isInherited}} + {{^isReadOnly}} + {{^required}} + {{#defaultValue}} + {{^vendorExtensions.x-csharp-value-type}} + // use default value if no "{{#lambda.camelcase_param}}{{name}}{{/lambda.camelcase_param}}" provided + this.{{name}} = {{#lambda.camelcase_param}}{{name}}{{/lambda.camelcase_param}} ?? {{{defaultValue}}}; + {{/vendorExtensions.x-csharp-value-type}} + {{#vendorExtensions.x-csharp-value-type}} + this.{{name}} = {{#lambda.camelcase_param}}{{name}}{{/lambda.camelcase_param}}; + {{/vendorExtensions.x-csharp-value-type}} + {{/defaultValue}} + {{^defaultValue}} + this.{{name}} = {{#lambda.camelcase_param}}{{name}}{{/lambda.camelcase_param}}; + {{/defaultValue}} + {{/required}} + {{/isReadOnly}} + {{/isInherited}} + {{/vars}} + {{#isAdditionalPropertiesTrue}} + this.AdditionalProperties = new Dictionary(); + {{/isAdditionalPropertiesTrue}} + } + + {{#vars}} + {{^isInherited}} + {{^isEnum}} + /// + /// {{^description}}Gets or Sets {{{name}}}{{/description}}{{#description}}{{description}}{{/description}} + /// {{#description}} + /// {{description}}{{/description}} + [DataMember(Name = "{{baseName}}"{{#required}}, IsRequired = true{{/required}}, EmitDefaultValue = {{#vendorExtensions.x-emit-default-value}}true{{/vendorExtensions.x-emit-default-value}}{{^vendorExtensions.x-emit-default-value}}{{#isBoolean}}true{{/isBoolean}}{{^isBoolean}}{{#isNullable}}true{{/isNullable}}{{^isNullable}}false{{/isNullable}}{{/isBoolean}}{{/vendorExtensions.x-emit-default-value}})] + {{#isDate}} + [JsonConverter(typeof(OpenAPIDateConverter))] + {{/isDate}} + public {{{dataType}}}{{#isNumeric}}?{{/isNumeric}} {{name}} { get; {{#isReadOnly}}private {{/isReadOnly}}set; } + + {{#isReadOnly}} + /// + /// Returns false as {{name}} should not be serialized given that it's read-only. + /// + /// false (boolean) + public bool ShouldSerialize{{name}}() + { + return false; + } + + {{/isReadOnly}} + {{/isEnum}} + {{/isInherited}} + {{/vars}} + {{#isAdditionalPropertiesTrue}} + /// + /// Gets or Sets additional properties + /// + [JsonExtensionData] + public IDictionary AdditionalProperties { get; set; } + + {{/isAdditionalPropertiesTrue}} + /// + /// Returns the string presentation of the object + /// + /// String presentation of the object + public override string ToString() + { + var sb = new StringBuilder(); + sb.Append("class {{classname}} {\n"); + {{#parent}} + sb.Append(" ").Append(base.ToString().Replace("\n", "\n ")).Append("\n"); + {{/parent}} + {{#vars}} + sb.Append(" {{name}}: ").Append({{name}}).Append("\n"); + {{/vars}} + {{#isAdditionalPropertiesTrue}} + sb.Append(" AdditionalProperties: ").Append(AdditionalProperties).Append("\n"); + {{/isAdditionalPropertiesTrue}} + sb.Append("}\n"); + return sb.ToString(); + } + + /// + /// Returns the JSON string presentation of the object + /// + /// JSON string presentation of the object + public {{#parent}}{{^isArray}}{{^isMap}}override {{/isMap}}{{/isArray}}{{/parent}}{{^parent}}virtual {{/parent}}string ToJson() + { + return Newtonsoft.Json.JsonConvert.SerializeObject(this, Newtonsoft.Json.Formatting.Indented); + } + + /// + /// Returns true if objects are equal + /// + /// Object to be compared + /// Boolean + public override bool Equals(object input) + { + {{#useCompareNetObjects}} + return OpenAPIClientUtils.compareLogic.Compare(this, input as {{classname}}).AreEqual; + {{/useCompareNetObjects}} + {{^useCompareNetObjects}} + return this.Equals(input as {{classname}}); + {{/useCompareNetObjects}} + } + + /// + /// Returns true if {{classname}} instances are equal + /// + /// Instance of {{classname}} to be compared + /// Boolean + public bool Equals({{classname}} input) + { + {{#useCompareNetObjects}} + return OpenAPIClientUtils.compareLogic.Compare(this, input).AreEqual; + {{/useCompareNetObjects}} + {{^useCompareNetObjects}} + if (input == null) + return false; + + return {{#vars}}{{#parent}}base.Equals(input) && {{/parent}}{{^isContainer}} + ( + this.{{name}} == input.{{name}} || + {{^vendorExtensions.x-is-value-type}} + (this.{{name}} != null && + this.{{name}}.Equals(input.{{name}})) + {{/vendorExtensions.x-is-value-type}} + {{#vendorExtensions.x-is-value-type}} + this.{{name}}.Equals(input.{{name}}) + {{/vendorExtensions.x-is-value-type}} + ){{^-last}} && {{/-last}}{{/isContainer}}{{#isContainer}} + ( + this.{{name}} == input.{{name}} || + {{^vendorExtensions.x-is-value-type}}this.{{name}} != null && + input.{{name}} != null && + {{/vendorExtensions.x-is-value-type}}this.{{name}}.SequenceEqual(input.{{name}}) + ){{^-last}} && {{/-last}}{{/isContainer}}{{/vars}}{{^vars}}{{#parent}}base.Equals(input){{/parent}}{{^parent}}false{{/parent}}{{/vars}}{{^isAdditionalPropertiesTrue}};{{/isAdditionalPropertiesTrue}} + {{#isAdditionalPropertiesTrue}} + && (this.AdditionalProperties.Count == input.AdditionalProperties.Count && !this.AdditionalProperties.Except(input.AdditionalProperties).Any()); + {{/isAdditionalPropertiesTrue}} + {{/useCompareNetObjects}} + } + + /// + /// Gets the hash code + /// + /// Hash code + public override int GetHashCode() + { + unchecked // Overflow is fine, just wrap + { + {{#parent}} + int hashCode = base.GetHashCode(); + {{/parent}} + {{^parent}} + int hashCode = 41; + {{/parent}} + {{#vars}} + {{^vendorExtensions.x-is-value-type}} + if (this.{{name}} != null) + hashCode = hashCode * 59 + this.{{name}}.GetHashCode(); + {{/vendorExtensions.x-is-value-type}} + {{#vendorExtensions.x-is-value-type}} + hashCode = hashCode * 59 + this.{{name}}.GetHashCode(); + {{/vendorExtensions.x-is-value-type}} + {{/vars}} + {{#isAdditionalPropertiesTrue}} + if (this.AdditionalProperties != null) + hashCode = hashCode * 59 + this.AdditionalProperties.GetHashCode(); + {{/isAdditionalPropertiesTrue}} + return hashCode; + } + } + +{{#validatable}} +{{#discriminator}} + /// + /// To validate all properties of the instance + /// + /// Validation context + /// Validation Result + IEnumerable IValidatableObject.Validate(ValidationContext validationContext) + { + return this.BaseValidate(validationContext); + } + + /// + /// To validate all properties of the instance + /// + /// Validation context + /// Validation Result + protected IEnumerable BaseValidate(ValidationContext validationContext) + { +{{/discriminator}} +{{^discriminator}} + /// + /// To validate all properties of the instance + /// + /// Validation context + /// Validation Result + IEnumerable IValidatableObject.Validate(ValidationContext validationContext) + { +{{/discriminator}} + {{#parent}} + {{^isArray}} + {{^isMap}} + foreach(var x in BaseValidate(validationContext)) yield return x; + {{/isMap}} + {{/isArray}} + {{/parent}} + {{#vars}} + {{#hasValidation}} + {{#maxLength}} + // {{{name}}} ({{{dataType}}}) maxLength + if(this.{{{name}}} != null && this.{{{name}}}.Length > {{maxLength}}) + { + yield return new System.ComponentModel.DataAnnotations.ValidationResult("Invalid value for {{{name}}}, length must be less than {{maxLength}}.", new [] { "{{{name}}}" }); + } + + {{/maxLength}} + {{#minLength}} + // {{{name}}} ({{{dataType}}}) minLength + if(this.{{{name}}} != null && this.{{{name}}}.Length < {{minLength}}) + { + yield return new System.ComponentModel.DataAnnotations.ValidationResult("Invalid value for {{{name}}}, length must be greater than {{minLength}}.", new [] { "{{{name}}}" }); + } + + {{/minLength}} + {{#maximum}} + // {{{name}}} ({{{dataType}}}) maximum + if(this.{{{name}}} > ({{{dataType}}}){{maximum}}) + { + yield return new System.ComponentModel.DataAnnotations.ValidationResult("Invalid value for {{{name}}}, must be a value less than or equal to {{maximum}}.", new [] { "{{{name}}}" }); + } + + {{/maximum}} + {{#minimum}} + // {{{name}}} ({{{dataType}}}) minimum + if(this.{{{name}}} < ({{{dataType}}}){{minimum}}) + { + yield return new System.ComponentModel.DataAnnotations.ValidationResult("Invalid value for {{{name}}}, must be a value greater than or equal to {{minimum}}.", new [] { "{{{name}}}" }); + } + + {{/minimum}} + {{#pattern}} + {{^isByteArray}} + // {{{name}}} ({{{dataType}}}) pattern + Regex regex{{{name}}} = new Regex(@"{{{vendorExtensions.x-regex}}}"{{#vendorExtensions.x-modifiers}}{{#-first}}, {{/-first}}RegexOptions.{{{.}}}{{^-last}} | {{/-last}}{{/vendorExtensions.x-modifiers}}); + if (false == regex{{{name}}}.Match(this.{{{name}}}).Success) + { + yield return new System.ComponentModel.DataAnnotations.ValidationResult("Invalid value for {{{name}}}, must match a pattern of " + regex{{{name}}}, new [] { "{{{name}}}" }); + } + + {{/isByteArray}} + {{/pattern}} + {{/hasValidation}} + {{/vars}} + yield break; + } +{{/validatable}} + } diff --git a/codegeneration/template/netcore_project.mustache b/codegeneration/template/netcore_project.mustache index de76c45..d9f40a3 100644 --- a/codegeneration/template/netcore_project.mustache +++ b/codegeneration/template/netcore_project.mustache @@ -6,8 +6,9 @@ Adobe.Target.Delivery - Target .NET Delivery API + Target .NET Delivery API - https://developers.adobetarget.com/api/delivery-api/ adobe;target;target-delivery;target-delivery-api + delivery- @@ -19,7 +20,7 @@ {{#validatable}} - + {{/validatable}}