Skip to content

UpdateFulfillmentOrderRequest

Properties

  • customerId (['string', 'null'])
  • fulfillmentOrderId (string)
  • fulfillmentSystemCustomerId (['string', 'null'])
  • fulfillmentSystemId (['string', 'null'])
  • fulfillmentSystemLocationId (['string', 'null'])
  • fulfillmentSystemOrderId (['string', 'null'])
  • referenceId (['string', 'null'])
  • billToBill to addresses array for Order.

    • One of

      • null
      • objectBill to address object for Order.

        • address1 (string, required)Address line 1 for address.
        • address2 (['string', 'null'])Address line 2 for address.
        • address3 (['string', 'null'])Address line 3 for address.
        • addressCode (['string', 'null'])Address code for address.
        • city (string, required)City name for address.
        • company (['string', 'null'])Company name for address.
        • country (string, required)Country name for address.
        • emailAddress (['string', 'null'])Contact email address for address.
        • faxNumber (['string', 'null'])Fax number for address.
        • name (string, required)Contact name for this address.
        • phoneNumber (['string', 'null'])Phone number for address.
        • postalCode (string, required)Postal code for address.
        • stateProvince (string, required)State or province name for address.
  • createDateTime (['string', 'null'])

  • defaultShipToKey (['string', 'null'])Default shipping address key for the fulfillment order.
  • dueDate (['string', 'null'])
  • orderIds (['array', 'null'])

    • Items (string)
  • orderVariables (['string', 'null'])

  • paymentMethods (['array', 'null'])

    • Items (object)

      • amount (number, format: double, required)Total Amount. Required if MethodName specified.
      • methodName (string, required)Name of payment method. Required if Payment Amount specified.
  • poNumber (['string', 'null'])

  • products (['array', 'null'])

    • Items (object)

      • fulfillmentSystemProductId (['string', 'null'], required)
      • productId (string, required)
      • productLineId (['string', 'null'], required)
      • associatedFileName (['string', 'null'])
      • comment (['string', 'null'])
      • pageCount (['integer', 'null'], format: int32)
      • price (['number', 'null'], format: double)
      • quantityOrdered (['integer', 'null'], format: int32)
      • shipToKey (['string', 'null'])Shipping address key for this product.
      • status (['string', 'null'])
  • rushOrder (['boolean', 'null'])

  • shipTos (['array', 'null'])

    • Items (object)Ship to addresses array for Order.

      • fulfillmentSystemShippingMethodId (['string', 'null'], required)
      • referenceId (['string', 'null'])
      • comment (['string', 'null'])
      • dueDate (['string', 'null'])
      • key (string, required)Unique identifier for the ship to address.
      • paymentMethods (['array', 'null'])

        • Items (object)

          • amount (number, format: double, required)Total Amount. Required if MethodName specified.
          • methodName (string, required)Name of payment method. Required if Payment Amount specified.
      • poNumber (['string', 'null'])

      • rushOrder (['boolean', 'null'])
      • shipToAddress (object, required)Ship to addresses array for Order.

        • address1 (string, required)Address line 1 for address.
        • address2 (['string', 'null'])Address line 2 for address.
        • address3 (['string', 'null'])Address line 3 for address.
        • addressCode (['string', 'null'])Address code for address.
        • city (string, required)City name for address.
        • company (['string', 'null'])Company name for address.
        • country (string, required)Country name for address.
        • emailAddress (['string', 'null'])Contact email address for address.
        • faxNumber (['string', 'null'])Fax number for address.
        • name (string, required)
        • phoneNumber (['string', 'null'])Phone number for address.
        • postalCode (string, required)Postal code for address.
        • stateProvince (string, required)State or province name for address.
      • shippingCarrier (['string', 'null'])

      • shippingCost (['number', 'null'], format: double)
      • shippingService (['string', 'null'])
      • status (['string', 'null'])
  • shipments (['array', 'null'])

    • Items (object)Cannot contain additional properties.

      • fulfillmentSystemId (['string', 'null'])
      • fulfillmentSystemLocationId (['string', 'null'])
      • shipmentId (string, required)
      • carrier (['string', 'null'])
      • freight (number, format: double, required)
      • masterTrackingNumber (['string', 'null'])
      • packages (['array', 'null'])

        • Items (object)Cannot contain additional properties.

          • packageNumber (string, required)
          • products (['array', 'null'])

            • Items (object)

              • productLineId (['string', 'null'])
              • shipQuantity (['number', 'null'], format: double)
          • trackingNumber (string, required)

      • packingSlipNumber (['string', 'null'])

      • service (string, required)
      • shipDateUtc (string, required)
      • shipToAddress (object)Ship to addresses array for Order.

        • address1 (string, required)Address line 1 for address.
        • address2 (['string', 'null'])Address line 2 for address.
        • address3 (['string', 'null'])Address line 3 for address.
        • addressCode (['string', 'null'])Address code for address.
        • city (string, required)City name for address.
        • company (['string', 'null'])Company name for address.
        • country (string, required)Country name for address.
        • emailAddress (['string', 'null'])Contact email address for address.
        • faxNumber (['string', 'null'])Fax number for address.
        • name (string, required)
        • phoneNumber (['string', 'null'])Phone number for address.
        • postalCode (string, required)Postal code for address.
        • stateProvince (string, required)State or province name for address.

Quicktype Command

quicktype \
    --framework SystemTextJson  \
    --lang cs  \
    --number-type double  \
    --src-lang schema  \
    --no-check-required  \
    --density dense  \
    --features complete  \
    --namespace OtpSchema.Api.OrderBroker.UpdateFulfillmentOrderRequest  \
    --src .working/build/internal/json-schema-for-cs/UpdateFulfillmentOrderRequest.json -o .working/build/internal/csharp/OtpSchema/Api/OrderBroker/UpdateFulfillmentOrderRequest.cs
UpdateFulfillmentOrderRequest
// <auto-generated />
//
// To parse this JSON data, add NuGet 'System.Text.Json' then do:
//
//    using OtpSchema.Api.OrderBroker.UpdateFulfillmentOrderRequest;
//
//    var updateFulfillmentOrderRequest = UpdateFulfillmentOrderRequest.FromJson(jsonString);
#nullable enable
#pragma warning disable CS8618
#pragma warning disable CS8601
#pragma warning disable CS8603

namespace OtpSchema.Api.OrderBroker.UpdateFulfillmentOrderRequest
{
    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 UpdateFulfillmentOrderRequest
    {
        [J("billTo")]                      public BillTo BillTo { get; set; }                                               // Bill to addresses array for Order
        [J("createDateTime")]              public string CreateDateTime { get; set; }                                      
        [J("customerId")]                  public string CustomerId { get; set; }                                          
        [J("defaultShipToKey")]            public string DefaultShipToKey { get; set; }                                     // Default shipping address key for the fulfillment order
        [J("dueDate")]                     public string DueDate { get; set; }                                             
        [J("fulfillmentOrderId")]          public string FulfillmentOrderId { get; set; }                                  
        [J("fulfillmentSystemCustomerId")] public string FulfillmentSystemCustomerId { get; set; }                         
        [J("fulfillmentSystemId")]         public string FulfillmentSystemId { get; set; }                                 
        [J("fulfillmentSystemLocationId")] public string FulfillmentSystemLocationId { get; set; }                         
        [J("fulfillmentSystemOrderId")]    public string FulfillmentSystemOrderId { get; set; }                            
        [J("orderIds")]                    public string[] OrderIds { get; set; }                                          
        [J("orderVariables")]              public string OrderVariables { get; set; }                                      
        [J("paymentMethods")]              public UpdateFulfillmentOrderRequestPaymentMethod[] PaymentMethods { get; set; }
        [J("poNumber")]                    public string PoNumber { get; set; }                                            
        [J("products")]                    public UpdateFulfillmentOrderRequestProduct[] Products { get; set; }            
        [J("referenceId")]                 public string ReferenceId { get; set; }                                         
        [J("rushOrder")]                   public bool? RushOrder { get; set; }                                            
        [J("shipments")]                   public Shipment[] Shipments { get; set; }                                       
        [J("shipTos")]                     public ShipTo[] ShipTos { get; set; }                                           
    }

    /// <summary>Bill to address object for Order</summary>
    public partial class BillTo
    {
        [J("address1")]      public string Address1 { get; set; }      // Address line 1 for address
        [J("address2")]      public string Address2 { get; set; }      // Address line 2 for address
        [J("address3")]      public string Address3 { get; set; }      // Address line 3 for address
        [J("addressCode")]   public string AddressCode { get; set; }   // Address code for address
        [J("city")]          public string City { get; set; }          // City name for address
        [J("company")]       public string Company { get; set; }       // Company name for address
        [J("country")]       public string Country { get; set; }       // Country name for address
        [J("emailAddress")]  public string EmailAddress { get; set; }  // Contact email address for address
        [J("faxNumber")]     public string FaxNumber { get; set; }     // Fax number for address
        [J("name")]          public string Name { get; set; }          // Contact name for this address
        [J("phoneNumber")]   public string PhoneNumber { get; set; }   // Phone number for address
        [J("postalCode")]    public string PostalCode { get; set; }    // Postal code for address
        [J("stateProvince")] public string StateProvince { get; set; } // State or province name for address
    }

    public partial class UpdateFulfillmentOrderRequestPaymentMethod
    {
        [J("amount")]     public double Amount { get; set; }     // Total Amount.  Required if MethodName specified
        [J("methodName")] public string MethodName { get; set; } // Name of payment method.  Required if Payment Amount specified
    }

    public partial class UpdateFulfillmentOrderRequestProduct
    {
        [J("associatedFileName")]         public string AssociatedFileName { get; set; }        
        [J("comment")]                    public string Comment { get; set; }                   
        [J("fulfillmentSystemProductId")] public string FulfillmentSystemProductId { get; set; }
        [J("pageCount")]                  public long? PageCount { get; set; }                  
        [J("price")]                      public double? Price { get; set; }                    
        [J("productId")]                  public string ProductId { get; set; }                 
        [J("productLineId")]              public string ProductLineId { get; set; }             
        [J("quantityOrdered")]            public long? QuantityOrdered { get; set; }            
        [J("shipToKey")]                  public string ShipToKey { get; set; }                  // Shipping address key for this product
        [J("status")]                     public string Status { get; set; }                    
    }

    /// <summary>Ship to addresses array for Order</summary>
    public partial class ShipTo
    {
        [J("comment")]                           public string Comment { get; set; }                          
        [J("dueDate")]                           public string DueDate { get; set; }                          
        [J("fulfillmentSystemShippingMethodId")] public string FulfillmentSystemShippingMethodId { get; set; }
        [J("key")]                               public string Key { get; set; }                               // Unique identifier for the ship to address
        [J("paymentMethods")]                    public ShipToPaymentMethod[] PaymentMethods { get; set; }    
        [J("poNumber")]                          public string PoNumber { get; set; }                         
        [J("referenceId")]                       public string ReferenceId { get; set; }                      
        [J("rushOrder")]                         public bool? RushOrder { get; set; }                         
        [J("shippingCarrier")]                   public string ShippingCarrier { get; set; }                  
        [J("shippingCost")]                      public double? ShippingCost { get; set; }                    
        [J("shippingService")]                   public string ShippingService { get; set; }                  
        [J("shipToAddress")]                     public ShipToShipToAddress ShipToAddress { get; set; }        // Ship to addresses array for Order
        [J("status")]                            public string Status { get; set; }                           
    }

    public partial class ShipToPaymentMethod
    {
        [J("amount")]     public double Amount { get; set; }     // Total Amount.  Required if MethodName specified
        [J("methodName")] public string MethodName { get; set; } // Name of payment method.  Required if Payment Amount specified
    }

    /// <summary>Ship to addresses array for Order</summary>
    public partial class ShipToShipToAddress
    {
        [J("address1")]      public string Address1 { get; set; }      // Address line 1 for address
        [J("address2")]      public string Address2 { get; set; }      // Address line 2 for address
        [J("address3")]      public string Address3 { get; set; }      // Address line 3 for address
        [J("addressCode")]   public string AddressCode { get; set; }   // Address code for address
        [J("city")]          public string City { get; set; }          // City name for address
        [J("company")]       public string Company { get; set; }       // Company name for address
        [J("country")]       public string Country { get; set; }       // Country name for address
        [J("emailAddress")]  public string EmailAddress { get; set; }  // Contact email address for address
        [J("faxNumber")]     public string FaxNumber { get; set; }     // Fax number for address
        [J("name")]          public string Name { get; set; }         
        [J("phoneNumber")]   public string PhoneNumber { get; set; }   // Phone number for address
        [J("postalCode")]    public string PostalCode { get; set; }    // Postal code for address
        [J("stateProvince")] public string StateProvince { get; set; } // State or province name for address
    }

    public partial class Shipment
    {
        [J("carrier")]                                                                    public string Carrier { get; set; }                     
        [J("freight")]                                                                    public double Freight { get; set; }                     
        [J("fulfillmentSystemId")]                                                        public string FulfillmentSystemId { get; set; }         
        [J("fulfillmentSystemLocationId")]                                                public string FulfillmentSystemLocationId { get; set; } 
        [J("masterTrackingNumber")]                                                       public string MasterTrackingNumber { get; set; }        
        [J("packages")]                                                                   public Package[] Packages { get; set; }                 
        [J("packingSlipNumber")]                                                          public string PackingSlipNumber { get; set; }           
        [J("service")]                                                                    public string Service { get; set; }                     
        [J("shipDateUtc")]                                                                public string ShipDateUtc { get; set; }                 
        [J("shipmentId")]                                                                 public string ShipmentId { get; set; }                  
        [JsonIgnore(Condition = JsonIgnoreCondition.WhenWritingNull)][J("shipToAddress")] public ShipmentShipToAddress ShipToAddress { get; set; } // Ship to addresses array for Order
    }

    public partial class Package
    {
        [J("packageNumber")]  public string PackageNumber { get; set; }     
        [J("products")]       public PackageProduct[] Products { get; set; }
        [J("trackingNumber")] public string TrackingNumber { get; set; }    
    }

    public partial class PackageProduct
    {
        [J("productLineId")] public string ProductLineId { get; set; }
        [J("shipQuantity")]  public double? ShipQuantity { get; set; }
    }

    /// <summary>Ship to addresses array for Order</summary>
    public partial class ShipmentShipToAddress
    {
        [J("address1")]      public string Address1 { get; set; }      // Address line 1 for address
        [J("address2")]      public string Address2 { get; set; }      // Address line 2 for address
        [J("address3")]      public string Address3 { get; set; }      // Address line 3 for address
        [J("addressCode")]   public string AddressCode { get; set; }   // Address code for address
        [J("city")]          public string City { get; set; }          // City name for address
        [J("company")]       public string Company { get; set; }       // Company name for address
        [J("country")]       public string Country { get; set; }       // Country name for address
        [J("emailAddress")]  public string EmailAddress { get; set; }  // Contact email address for address
        [J("faxNumber")]     public string FaxNumber { get; set; }     // Fax number for address
        [J("name")]          public string Name { get; set; }         
        [J("phoneNumber")]   public string PhoneNumber { get; set; }   // Phone number for address
        [J("postalCode")]    public string PostalCode { get; set; }    // Postal code for address
        [J("stateProvince")] public string StateProvince { get; set; } // State or province name for address
    }

    public partial class UpdateFulfillmentOrderRequest
    {
        public static UpdateFulfillmentOrderRequest FromJson(string json) => JsonSerializer.Deserialize<UpdateFulfillmentOrderRequest>(json, OtpSchema.Api.OrderBroker.UpdateFulfillmentOrderRequest.Converter.Settings);
    }

    public static class Serialize
    {
        public static string ToJson(this UpdateFulfillmentOrderRequest self) => JsonSerializer.Serialize(self, OtpSchema.Api.OrderBroker.UpdateFulfillmentOrderRequest.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

UpdateFulfillmentOrderRequest
{
  "$schema": "http://json-schema.org/draft-07/schema#", 
  "$id": "UpdateFulfillmentOrderRequest.json", 
  "type": "object", 
  "properties": {
    "customerId": { "type": ["string", "null"] }, 
    "fulfillmentOrderId": {"type": "string"}, 
    "fulfillmentSystemCustomerId": { "type": ["string", "null"] }, 
    "fulfillmentSystemId": { "type": ["string", "null"] }, 
    "fulfillmentSystemLocationId": { "type": ["string", "null"] }, 
    "fulfillmentSystemOrderId": { "type": ["string", "null"] }, 
    "referenceId": { "type": ["string", "null"] }, 
    "billTo": {
      "description": "Bill to addresses array for Order", 
      "oneOf": [
        {"type": "null"}, 
        {
          "description": "Bill to address object for Order", 
          "type": "object", 
          "properties": {
            "address1": {"description": "Address line 1 for address", "type": "string"}, 
            "address2": { "description": "Address line 2 for address", "type": ["string", "null"] }, 
            "address3": { "description": "Address line 3 for address", "type": ["string", "null"] }, 
            "addressCode": { "description": "Address code for address", "type": ["string", "null"] }, 
            "city": {"description": "City name for address", "type": "string"}, 
            "company": { "description": "Company name for address", "type": ["string", "null"] }, 
            "country": {"description": "Country name for address", "type": "string"}, 
            "emailAddress": {
              "description": "Contact email address for address", 
              "type": ["string", "null"]
            }, 
            "faxNumber": { "description": "Fax number for address", "type": ["string", "null"] }, 
            "name": {"description": "Contact name for this address", "type": "string"}, 
            "phoneNumber": { "description": "Phone number for address", "type": ["string", "null"] }, 
            "postalCode": {"description": "Postal code for address", "type": "string"}, 
            "stateProvince": {"description": "State or province name for address", "type": "string"}
          }, 
          "required": ["address1", "city", "country", "name", "postalCode", "stateProvince"]
        }
      ]
    }, 
    "createDateTime": { "type": ["string", "null"] }, 
    "defaultShipToKey": {
      "description": "Default shipping address key for the fulfillment order", 
      "type": ["string", "null"], 
      "pattern": "^[0-9]+$"
    }, 
    "dueDate": { "type": ["string", "null"] }, 
    "orderIds": { "type": ["array", "null"], "items": {"type": "string"} }, 
    "orderVariables": { "type": ["string", "null"] }, 
    "paymentMethods": {
      "type": ["array", "null"], 
      "items": {
        "type": "object", 
        "properties": {
          "amount": {
            "description": "Total Amount.  Required if MethodName specified", 
            "type": "number", 
            "format": "double"
          }, 
          "methodName": {
            "description": "Name of payment method.  Required if Payment Amount specified", 
            "type": "string"
          }
        }, 
        "required": ["amount", "methodName"]
      }
    }, 
    "poNumber": { "type": ["string", "null"] }, 
    "products": {
      "type": ["array", "null"], 
      "items": {
        "type": "object", 
        "properties": {
          "fulfillmentSystemProductId": { "type": ["string", "null"] }, 
          "productId": {"type": "string"}, 
          "productLineId": { "type": ["string", "null"] }, 
          "associatedFileName": { "type": ["string", "null"] }, 
          "comment": { "type": ["string", "null"] }, 
          "pageCount": { "type": ["integer", "null"], "format": "int32" }, 
          "price": { "type": ["number", "null"], "format": "double" }, 
          "quantityOrdered": { "type": ["integer", "null"], "format": "int32" }, 
          "shipToKey": {
            "description": "Shipping address key for this product", 
            "type": ["string", "null"], 
            "pattern": "^[0-9]+$"
          }, 
          "status": { "type": ["string", "null"] }
        }, 
        "required": ["productId", "productLineId", "fulfillmentSystemProductId"]
      }
    }, 
    "rushOrder": { "type": ["boolean", "null"] }, 
    "shipTos": {
      "type": ["array", "null"], 
      "items": {
        "description": "Ship to addresses array for Order", 
        "type": "object", 
        "properties": {
          "fulfillmentSystemShippingMethodId": { "type": ["string", "null"] }, 
          "referenceId": { "type": ["string", "null"] }, 
          "comment": { "type": ["string", "null"] }, 
          "dueDate": { "type": ["string", "null"] }, 
          "key": {
            "description": "Unique identifier for the ship to address", 
            "type": "string", 
            "pattern": "^[0-9]+$"
          }, 
          "paymentMethods": {
            "type": ["array", "null"], 
            "items": {
              "type": "object", 
              "properties": {
                "amount": {
                  "description": "Total Amount.  Required if MethodName specified", 
                  "type": "number", 
                  "format": "double"
                }, 
                "methodName": {
                  "description": "Name of payment method.  Required if Payment Amount specified", 
                  "type": "string"
                }
              }, 
              "required": ["amount", "methodName"]
            }
          }, 
          "poNumber": { "type": ["string", "null"] }, 
          "rushOrder": { "type": ["boolean", "null"] }, 
          "shipToAddress": {
            "description": "Ship to addresses array for Order", 
            "type": "object", 
            "properties": {
              "address1": {"description": "Address line 1 for address", "type": "string"}, 
              "address2": { "description": "Address line 2 for address", "type": ["string", "null"] }, 
              "address3": { "description": "Address line 3 for address", "type": ["string", "null"] }, 
              "addressCode": { "description": "Address code for address", "type": ["string", "null"] }, 
              "city": {"description": "City name for address", "type": "string"}, 
              "company": { "description": "Company name for address", "type": ["string", "null"] }, 
              "country": {"description": "Country name for address", "type": "string"}, 
              "emailAddress": {
                "description": "Contact email address for address", 
                "type": ["string", "null"]
              }, 
              "faxNumber": { "description": "Fax number for address", "type": ["string", "null"] }, 
              "name": {"type": "string"}, 
              "phoneNumber": { "description": "Phone number for address", "type": ["string", "null"] }, 
              "postalCode": {"description": "Postal code for address", "type": "string"}, 
              "stateProvince": {"description": "State or province name for address", "type": "string"}
            }, 
            "required": ["address1", "city", "country", "name", "postalCode", "stateProvince"]
          }, 
          "shippingCarrier": { "type": ["string", "null"] }, 
          "shippingCost": { "type": ["number", "null"], "format": "double" }, 
          "shippingService": { "type": ["string", "null"] }, 
          "status": { "type": ["string", "null"] }
        }, 
        "required": ["key", "fulfillmentSystemShippingMethodId", "shipToAddress"]
      }
    }, 
    "shipments": {
      "type": ["array", "null"], 
      "items": {
        "type": "object", 
        "additionalProperties": false, 
        "properties": {
          "fulfillmentSystemId": { "type": ["string", "null"] }, 
          "fulfillmentSystemLocationId": { "type": ["string", "null"] }, 
          "shipmentId": {"type": "string"}, 
          "carrier": { "type": ["string", "null"] }, 
          "freight": {"type": "number", "format": "double"}, 
          "masterTrackingNumber": { "type": ["string", "null"] }, 
          "packages": {
            "type": ["array", "null"], 
            "items": {
              "type": "object", 
              "additionalProperties": false, 
              "properties": {
                "packageNumber": {"type": "string"}, 
                "products": {
                  "type": ["array", "null"], 
                  "items": {
                    "type": "object", 
                    "properties": {
                      "productLineId": { "type": ["string", "null"]                     }, 
                      "shipQuantity" : { "type": ["number", "null"], "format": "double" }
                    }
                  }
                }, 
                "trackingNumber": {"type": "string"}
              }, 
              "required": ["packageNumber", "trackingNumber"]
            }
          }, 
          "packingSlipNumber": { "type": ["string", "null"] }, 
          "service": {"type": "string"}, 
          "shipDateUtc": {"type": "string"}, 
          "shipToAddress": {
            "description": "Ship to addresses array for Order", 
            "type": "object", 
            "properties": {
              "address1": {"description": "Address line 1 for address", "type": "string"}, 
              "address2": { "description": "Address line 2 for address", "type": ["string", "null"] }, 
              "address3": { "description": "Address line 3 for address", "type": ["string", "null"] }, 
              "addressCode": { "description": "Address code for address", "type": ["string", "null"] }, 
              "city": {"description": "City name for address", "type": "string"}, 
              "company": { "description": "Company name for address", "type": ["string", "null"] }, 
              "country": {"description": "Country name for address", "type": "string"}, 
              "emailAddress": {
                "description": "Contact email address for address", 
                "type": ["string", "null"]
              }, 
              "faxNumber": { "description": "Fax number for address", "type": ["string", "null"] }, 
              "name": {"type": "string"}, 
              "phoneNumber": { "description": "Phone number for address", "type": ["string", "null"] }, 
              "postalCode": {"description": "Postal code for address", "type": "string"}, 
              "stateProvince": {"description": "State or province name for address", "type": "string"}
            }, 
            "required": ["address1", "city", "country", "name", "postalCode", "stateProvince"]
          }
        }, 
        "required": ["shipmentId", "service", "shipDateUtc", "freight"]
      }
    }
  }, 
  "required": ["fulfillmentOrderId"]
}