GetAllProductsResponse
Properties
-
data(['array', 'null'])-
Items (object)Cannot contain additional properties.
ProductId(string, required)Unique ID for component product within Integration Broker.Color(['string', 'null'])Color of product.LastUpdateDateTimeUtc(string, required)Date and time product was last updated in product management system (system where ordered line item products will be managed).ProductDescription(['string', 'null'])Description for component product within product management system (system where ordered line item products will be managed).ProductNumber(string, required)Name for component product within product management system (system where ordered line item products will be managed).ProductOwner(['string', 'null'])Owner of component product.ProductType(string, required)Type of the product.Size(['string', 'null'])Size of component product.Status(string, required)Current status of the product.UnitOfMeasure(['string', 'null'])Unit of measure for the product.
-
-
failureMessages(array)- Items (string)
-
informationalMessages(array)- Items (string)
-
operationWasSuccessful(boolean)
Quicktype Command
quicktype \
--framework SystemTextJson \
--lang cs \
--number-type double \
--src-lang schema \
--no-check-required \
--density dense \
--features complete \
--namespace OtpSchema.Api.ProductBroker.GetAllProductsResponse \
--src .working/build/internal/json-schema-for-cs/GetAllProductsResponse.json -o .working/build/internal/csharp/OtpSchema/Api/ProductBroker/GetAllProductsResponse.cs
GetAllProductsResponse
// <auto-generated />
//
// To parse this JSON data, add NuGet 'System.Text.Json' then do:
//
// using OtpSchema.Api.ProductBroker.GetAllProductsResponse;
//
// var getAllProductsResponse = GetAllProductsResponse.FromJson(jsonString);
#nullable enable
#pragma warning disable CS8618
#pragma warning disable CS8601
#pragma warning disable CS8603
namespace OtpSchema.Api.ProductBroker.GetAllProductsResponse
{
using System;
using System.Collections.Generic;
using System.Text.Json;
using System.Text.Json.Serialization;
using System.Globalization;
using J = System.Text.Json.Serialization.JsonPropertyNameAttribute;
using N = System.Text.Json.Serialization.JsonIgnoreCondition;
public partial class GetAllProductsResponse
{
[J("data")] public Datum[] Data { get; set; }
[J("failureMessages")] public string[] FailureMessages { get; set; }
[J("informationalMessages")] public string[] InformationalMessages { get; set; }
[J("operationWasSuccessful")] public bool OperationWasSuccessful { get; set; }
}
public partial class Datum
{
[J("Color")] public string Color { get; set; } // Color of product
[J("LastUpdateDateTimeUtc")] public string LastUpdateDateTimeUtc { get; set; } // Date and time product was last updated in product management system (system where ordered; line item products will be managed)
[J("ProductDescription")] public string ProductDescription { get; set; } // Description for component product within product management system (system where ordered; line item products will be managed)
[J("ProductId")] public string ProductId { get; set; } // Unique ID for component product within Integration Broker
[J("ProductNumber")] public string ProductNumber { get; set; } // Name for component product within product management system (system where ordered line; item products will be managed)
[J("ProductOwner")] public string ProductOwner { get; set; } // Owner of component product
[J("ProductType")] public string ProductType { get; set; } // Type of the product
[J("Size")] public string Size { get; set; } // Size of component product
[J("Status")] public string Status { get; set; } // Current status of the product
[J("UnitOfMeasure")] public string UnitOfMeasure { get; set; } // Unit of measure for the product
}
public partial class GetAllProductsResponse
{
public static GetAllProductsResponse FromJson(string json) => JsonSerializer.Deserialize<GetAllProductsResponse>(json, OtpSchema.Api.ProductBroker.GetAllProductsResponse.Converter.Settings);
}
public static class Serialize
{
public static string ToJson(this GetAllProductsResponse self) => JsonSerializer.Serialize(self, OtpSchema.Api.ProductBroker.GetAllProductsResponse.Converter.Settings);
}
internal static class Converter
{
public static readonly JsonSerializerOptions Settings = new(JsonSerializerDefaults.General)
{
Converters =
{
new DateOnlyConverter(),
new TimeOnlyConverter(),
IsoDateTimeOffsetConverter.Singleton
},
};
}
public class DateOnlyConverter : JsonConverter<DateOnly>
{
private readonly string serializationFormat;
public DateOnlyConverter() : this(null) { }
public DateOnlyConverter(string? serializationFormat)
{
this.serializationFormat = serializationFormat ?? "yyyy-MM-dd";
}
public override DateOnly Read(ref Utf8JsonReader reader, Type typeToConvert, JsonSerializerOptions options)
{
var value = reader.GetString();
return DateOnly.Parse(value!);
}
public override void Write(Utf8JsonWriter writer, DateOnly value, JsonSerializerOptions options)
=> writer.WriteStringValue(value.ToString(serializationFormat));
}
public class TimeOnlyConverter : JsonConverter<TimeOnly>
{
private readonly string serializationFormat;
public TimeOnlyConverter() : this(null) { }
public TimeOnlyConverter(string? serializationFormat)
{
this.serializationFormat = serializationFormat ?? "HH:mm:ss.fff";
}
public override TimeOnly Read(ref Utf8JsonReader reader, Type typeToConvert, JsonSerializerOptions options)
{
var value = reader.GetString();
return TimeOnly.Parse(value!);
}
public override void Write(Utf8JsonWriter writer, TimeOnly value, JsonSerializerOptions options)
=> writer.WriteStringValue(value.ToString(serializationFormat));
}
internal class IsoDateTimeOffsetConverter : JsonConverter<DateTimeOffset>
{
public override bool CanConvert(Type t) => t == typeof(DateTimeOffset);
private const string DefaultDateTimeFormat = "yyyy'-'MM'-'dd'T'HH':'mm':'ss.FFFFFFFK";
private DateTimeStyles _dateTimeStyles = DateTimeStyles.RoundtripKind;
private string? _dateTimeFormat;
private CultureInfo? _culture;
public DateTimeStyles DateTimeStyles
{
get => _dateTimeStyles;
set => _dateTimeStyles = value;
}
public string? DateTimeFormat
{
get => _dateTimeFormat ?? string.Empty;
set => _dateTimeFormat = (string.IsNullOrEmpty(value)) ? null : value;
}
public CultureInfo Culture
{
get => _culture ?? CultureInfo.CurrentCulture;
set => _culture = value;
}
public override void Write(Utf8JsonWriter writer, DateTimeOffset value, JsonSerializerOptions options)
{
string text;
if ((_dateTimeStyles & DateTimeStyles.AdjustToUniversal) == DateTimeStyles.AdjustToUniversal
|| (_dateTimeStyles & DateTimeStyles.AssumeUniversal) == DateTimeStyles.AssumeUniversal)
{
value = value.ToUniversalTime();
}
text = value.ToString(_dateTimeFormat ?? DefaultDateTimeFormat, Culture);
writer.WriteStringValue(text);
}
public override DateTimeOffset Read(ref Utf8JsonReader reader, Type typeToConvert, JsonSerializerOptions options)
{
string? dateText = reader.GetString();
if (string.IsNullOrEmpty(dateText) == false)
{
if (!string.IsNullOrEmpty(_dateTimeFormat))
{
return DateTimeOffset.ParseExact(dateText, _dateTimeFormat, Culture, _dateTimeStyles);
}
else
{
return DateTimeOffset.Parse(dateText, Culture, _dateTimeStyles);
}
}
else
{
return default(DateTimeOffset);
}
}
public static readonly IsoDateTimeOffsetConverter Singleton = new IsoDateTimeOffsetConverter();
}
}
#pragma warning restore CS8618
#pragma warning restore CS8601
#pragma warning restore CS8603
GetAllProductsResponse
{
"$schema": "http://json-schema.org/draft-07/schema#",
"$id": "GetAllProductsResponse.json",
"type": "object",
"additionalProperties": false,
"properties": {
"data": {
"type": ["array", "null"],
"items": {
"type": "object",
"additionalProperties": false,
"properties": {
"ProductId": {
"description": "Unique ID for component product within Integration Broker",
"type": "string"
},
"Color": { "description": "Color of product", "type": ["string", "null"] },
"LastUpdateDateTimeUtc": {
"description": "Date and time product was last updated in product management system (system where ordered line item products will be managed)",
"type": "string"
},
"ProductDescription": {
"description": "Description for component product within product management system (system where ordered line item products will be managed)",
"type": ["string", "null"]
},
"ProductNumber": {
"description": "Name for component product within product management system (system where ordered line item products will be managed)",
"type": "string"
},
"ProductOwner": { "description": "Owner of component product", "type": ["string", "null"] },
"ProductType": {"description": "Type of the product", "type": "string"},
"Size": { "description": "Size of component product", "type": ["string", "null"] },
"Status": {"description": "Current status of the product", "type": "string"},
"UnitOfMeasure": { "description": "Unit of measure for the product", "type": ["string", "null"] }
},
"required": ["ProductId", "ProductNumber", "ProductType", "Status", "LastUpdateDateTimeUtc"]
}
},
"failureMessages": { "type": "array", "items": {"type": "string"} },
"informationalMessages": { "type": "array", "items": {"type": "string"} },
"operationWasSuccessful": {"type": "boolean"}
},
"required": ["failureMessages", "informationalMessages", "operationWasSuccessful", "data"]
}