{
  "openapi": "3.1.2",
  "info": {
    "title": "Checkout Configuration API",
    "version": "1.0.1",
    "description": "This API retrieves checkout configuration data including fulfillment options, available appointment time slots, and terms and conditions based on the shopping cart. It supports both standard fulfillment scenarios and address change requests for flexibility during the checkout process.",
    "contact": {
      "name": "Omni API Support",
      "email": "DL-OmniAdapter@att.com"
    }
  },
  "servers": [
    {
      "url": "https://partner.att.com/omni-svcs"
    }
  ],
  "security": [],
  "tags": [
    {
      "name": "Checkout Options",
      "description": "APIs for managing checkout options"
    }
  ],
  "paths": {
    "/v1/checkout": {
      "post": {
        "summary": "Retrieve checkout configuration options",
        "description": "Retrieves checkout configuration data including fulfillment options, available appointment time slots for technician installation, and contract terms based on the customer's shopping cart. The cartId is used to pull appointment data and terms data for technician installation. If the fulfillmentAddressId is provided, the API fetches fulfillment options based on that alternate address, supporting address change scenarios during checkout.",
        "tags": [
          "Checkout Options"
        ],
        "operationId": "getCheckoutConfigurableOptions",
        "parameters": [
          {
            "$ref": "#/components/parameters/ParameterAppname"
          }
        ],
        "requestBody": {
          "description": "Checkout configuration request parameters.",
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CheckoutConfigRequest"
              },
              "examples": {
                "CheckOut_Config_Request_Fiber": {
                  "x-tags": [
                    "Fiber-Provide-Consumer",
                    "Fiber-Move-Consumer",
                    "Fiber-Change-Consumer"
                  ],
                  "value": {
                    "cartId": "57d95fe0-caf4-11f0-aa1c-47d951a990cf"
                  }
                },
                "CheckOut_Config_ChangeAddress_Request_Fiber": {
                  "x-tags": [
                    "Fiber-Provide-Consumer",
                    "Fiber-Move-Consumer",
                    "Fiber-Change-Consumer"
                  ],
                  "value": {
                    "cartId": "57d95fe0-caf4-11f0-aa1c-47d951a990cf",
                    "fulfillmentAddressId": "00000AG0P2"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful response containing checkout configuration data including fulfillment options, appointment dates, terms and conditions, and validation status.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CheckoutConfigResponse"
                },
                "examples": {
                  "TechInstall_with_terms_with_productOrder_Fiber": {
                    "x-tags": [
                      "Fiber-Provide-Consumer",
                      "Fiber-Move-Consumer",
                      "Fiber-Change-Consumer"
                    ],
                    "value": {
                      "appointmentDates": {
                        "realTime": {
                          "availableTimeSlot": [
                            {
                              "id": "wrkordid-2022-09-28-08-10",
                              "@type": "realTime",
                              "validFor": {
                                "startDateTime": "2022-09-29T08:00:00.000+00:00",
                                "endDateTime": "2022-09-29T10:00:00.000+00:00"
                              }
                            },
                            {
                              "id": "wrkordid-2022-09-29-08-10",
                              "@type": "realTime",
                              "validFor": {
                                "startDateTime": "2022-09-29T08:00:00.000+00:00",
                                "endDateTime": "2022-09-29T10:00:00.000+00:00"
                              }
                            }
                          ]
                        },
                        "preferred": {
                          "availableCalendarPeriodSlot": [
                            {
                              "id": "preferred-2022-10-01",
                              "@type": "preferred",
                              "day": "2022-10-01",
                              "hourPeriod": [
                                {
                                  "startHour": "08:00",
                                  "endHour": "12:00"
                                },
                                {
                                  "startHour": "12:00",
                                  "endHour": "16:00"
                                }
                              ]
                            }
                          ]
                        }
                      },
                      "terms": [
                        {
                          "name": "CSA",
                          "extensions": [
                            {
                              "name": "ContentType",
                              "value": "Static"
                            },
                            {
                              "name": "type",
                              "value": "CSA"
                            },
                            {
                              "name": "title",
                              "value": "AT&T Consumer Service Agreement"
                            },
                            {
                              "name": "consentText",
                              "value": "I have read and agree to the AT&T Consumer Service Agreement (and the included provisions for binding individual arbitration rather than jury trials or class actions), under which service will auto-renew monthly until cancelled."
                            },
                            {
                              "name": "category",
                              "value": "BROADBAND"
                            },
                            {
                              "name": "subCategory",
                              "value": "GENERAL"
                            },
                            {
                              "name": "contentUrl",
                              "value": "/idpassets/archive-legal/fragment/legal/prod/lpc/terms/consumerServiceAgreement/v118/consumerServiceAgreement.cmsfeed.js"
                            },
                            {
                              "name": "contentVersion",
                              "value": "v118"
                            },
                            {
                              "name": "systemOfRecord",
                              "value": "LPC"
                            },
                            {
                              "name": "termsandConditionsKey",
                              "value": "CSA"
                            },
                            {
                              "name": "contentCategory",
                              "value": "TnC"
                            }
                          ],
                          "resource": [
                            {
                              "id": "billing_account_id",
                              "type": "BillingAccount"
                            }
                          ]
                        },
                        {
                          "name": "HTPT",
                          "extensions": [
                            {
                              "name": "ContentType",
                              "value": "Static"
                            },
                            {
                              "name": "type",
                              "value": "HTPT"
                            },
                            {
                              "name": "title",
                              "value": "AT&T HomeTech Protection"
                            },
                            {
                              "name": "consentText",
                              "value": "I have read AT&T HomeTech Protection and agree to the terms and conditions"
                            },
                            {
                              "name": "category",
                              "value": "BROADBAND"
                            },
                            {
                              "name": "subCategory",
                              "value": "GENERAL"
                            },
                            {
                              "name": "contentUrl",
                              "value": "/idpassets/archive-legal/fragment/legal/prod/lpc/terms/homeTechProtection/v4/homeTechProtection.cmsfeed.js"
                            },
                            {
                              "name": "contentVersion",
                              "value": "v4"
                            },
                            {
                              "name": "systemOfRecord",
                              "value": "LPC"
                            },
                            {
                              "name": "termsandConditionsKey",
                              "value": "HTPT"
                            },
                            {
                              "name": "contentCategory",
                              "value": "TnC"
                            }
                          ],
                          "resource": [
                            {
                              "id": "5fa1942f-222d-40c3-8a99-acddc928e63f",
                              "type": "productOrderItem"
                            }
                          ]
                        }
                      ],
                      "validation": {
                        "configuration": [
                          {
                            "postOrderConfigurable": true,
                            "required": false,
                            "status": "incomplete",
                            "type": "DigitalID"
                          },
                          {
                            "required": true,
                            "status": "complete",
                            "type": "CustomerProfile"
                          },
                          {
                            "required": true,
                            "status": "incomplete",
                            "type": "BillingAccount"
                          },
                          {
                            "required": true,
                            "status": "incomplete",
                            "type": "CreditInfo"
                          },
                          {
                            "required": true,
                            "status": "complete",
                            "type": "FulfillmentOptions"
                          },
                          {
                            "required": true,
                            "status": "incomplete",
                            "type": "Terms"
                          },
                          {
                            "properties": [
                              {
                                "name": "TermsAndConditionsKeys",
                                "value": "AP,PAPERLESS_DISCLOSURE"
                              },
                              {
                                "name": "autoPayEligiblePaymentTenders",
                                "value": "ACH,CreditCard,DebitCard"
                              }
                            ],
                            "required": true,
                            "status": "incomplete",
                            "subtype": "autopay",
                            "type": "payment"
                          },
                          {
                            "properties": [
                              {
                                "name": "advPayEligiblePaymentTenders",
                                "value": "CreditCard,DebitCard"
                              }
                            ],
                            "required": false,
                            "status": "complete",
                            "subtype": "ADVPAY",
                            "type": "payment"
                          },
                          {
                            "required": false,
                            "status": "complete",
                            "subtype": "Prorated-RC",
                            "type": "payment"
                          },
                          {
                            "required": false,
                            "status": "complete",
                            "subtype": "Prepaid-RC",
                            "type": "payment"
                          },
                          {
                            "required": false,
                            "status": "complete",
                            "subtype": "DueUponFulfillment",
                            "type": "payment"
                          },
                          {
                            "required": false,
                            "status": "complete",
                            "subtype": "DWNPAY",
                            "type": "payment"
                          },
                          {
                            "required": true,
                            "status": "incomplete",
                            "type": "Installation"
                          },
                          {
                            "required": false,
                            "status": "complete",
                            "type": "NumberSelection"
                          },
                          {
                            "properties": [
                              {
                                "name": "Questions",
                                "value": "Who is your favorite childhood hero?,What is your favorite restaurant?,Who is your favorite actor?,Who is your favorite singer?"
                              }
                            ],
                            "required": true,
                            "status": "complete",
                            "type": "AccountSecurity"
                          },
                          {
                            "required": false,
                            "status": "incomplete",
                            "type": "VoipConfiguration"
                          }
                        ],
                        "readyToCheckout": true,
                        "readyToSubmit": false,
                        "status": "incomplete",
                        "validationMessage": [
                          {
                            "severity": "Info",
                            "text": "[ConstraintViolationImpl{interpolatedMessage='must not be null', propertyPath=productOrderItem[2].product.productRelationship[0].product, rootBeanClass=class com.att.idp.model.tmf.ProductOrder, messageTemplate='{jakarta.validation.constraints.NotNull.message}'}]",
                            "type": "ConstraintViolation"
                          }
                        ]
                      }
                    }
                  },
                  "SelfInstall_with_terms_productOrder_redacted_for_brevity_Fiber": {
                    "x-tags": [
                      "Fiber-Provide-Consumer",
                      "Fiber-Move-Consumer",
                      "Fiber-Change-Consumer"
                    ],
                    "value": {
                      "fulfillmentOptions": [
                        {
                          "id": "025edd31-2c2d-49ee-a3ef-d8d51797e229",
                          "fulfillmentMethod": "DF",
                          "signalStatus": "SELL",
                          "availableQty": 1,
                          "available": true,
                          "dates": {
                            "shipmentDates": {
                              "dateFrom": "2025-10-13",
                              "dateTo": "2025-10-17"
                            },
                            "deliveryDates": {
                              "dateFrom": "2025-10-13",
                              "dateTo": "2025-10-17"
                            }
                          },
                          "productOffering": {
                            "id": "bb-std-delivery-01",
                            "name": "Standard Shipping",
                            "productOfferingType": "Delivery_Method"
                          },
                          "lineItemId": 0,
                          "productOrderItemRelationship": [
                            {
                              "id": "025edd31-2c2d-49ee-a3ef-d8d51797e229",
                              "relationshipType": "Delivering"
                            }
                          ],
                          "finalPrice": {
                            "dutyFreeAmount": {
                              "unit": "USD",
                              "value": 0
                            }
                          },
                          "extensions": {
                            "initDeliveryByFromDate": "2025-10-13T00:00:00Z",
                            "initDeliveryByToDate": "2025-10-17T00:00:00Z",
                            "initPromiseFromDate": "2025-10-13T00:00:00Z",
                            "initPromiseToDate": "2025-10-17T00:00:00Z"
                          }
                        }
                      ],
                      "terms": [
                        {
                          "name": "CSA",
                          "extensions": [
                            {
                              "name": "ContentType",
                              "value": "Static"
                            },
                            {
                              "name": "type",
                              "value": "CSA"
                            },
                            {
                              "name": "title",
                              "value": "AT&T Consumer Service Agreement"
                            },
                            {
                              "name": "consentText",
                              "value": "I have read and agree to the AT&T Consumer Service Agreement (and the included provisions for binding individual arbitration rather than jury trials or class actions), under which service will auto-renew monthly until cancelled."
                            },
                            {
                              "name": "category",
                              "value": "BROADBAND"
                            },
                            {
                              "name": "subCategory",
                              "value": "GENERAL"
                            },
                            {
                              "name": "contentUrl",
                              "value": "/idpassets/archive-legal/fragment/legal/prod/lpc/terms/consumerServiceAgreement/v118/consumerServiceAgreement.cmsfeed.js"
                            },
                            {
                              "name": "contentVersion",
                              "value": "v118"
                            },
                            {
                              "name": "systemOfRecord",
                              "value": "LPC"
                            },
                            {
                              "name": "termsandConditionsKey",
                              "value": "CSA"
                            },
                            {
                              "name": "contentCategory",
                              "value": "TnC"
                            }
                          ],
                          "resource": [
                            {
                              "id": "billing_account_id",
                              "type": "BillingAccount"
                            }
                          ]
                        },
                        {
                          "name": "HTPT",
                          "extensions": [
                            {
                              "name": "ContentType",
                              "value": "Static"
                            },
                            {
                              "name": "type",
                              "value": "HTPT"
                            },
                            {
                              "name": "title",
                              "value": "AT&T HomeTech Protection"
                            },
                            {
                              "name": "consentText",
                              "value": "I have read AT&T HomeTech Protection and agree to the terms and conditions"
                            },
                            {
                              "name": "category",
                              "value": "BROADBAND"
                            },
                            {
                              "name": "subCategory",
                              "value": "GENERAL"
                            },
                            {
                              "name": "contentUrl",
                              "value": "/idpassets/archive-legal/fragment/legal/prod/lpc/terms/homeTechProtection/v4/homeTechProtection.cmsfeed.js"
                            },
                            {
                              "name": "contentVersion",
                              "value": "v4"
                            },
                            {
                              "name": "systemOfRecord",
                              "value": "LPC"
                            },
                            {
                              "name": "termsandConditionsKey",
                              "value": "HTPT"
                            },
                            {
                              "name": "contentCategory",
                              "value": "TnC"
                            }
                          ],
                          "resource": [
                            {
                              "id": "5fa1942f-222d-40c3-8a99-acddc928e63f",
                              "type": "productOrderItem"
                            }
                          ]
                        }
                      ],
                      "validation": {
                        "status": "complete",
                        "readyToSubmit": true,
                        "readyToCheckout": true,
                        "configuration": []
                      }
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Bad request - Missing fields, Invalid input data, validation failure",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/WrappedPartnerServiceError"
                },
                "examples": {
                  "CheckoutConfigInvalidRequest": {
                    "summary": "Invalid checkout configuration request",
                    "value": {
                      "error": {
                        "errorId": "EXTOMNISVCS-CHECKOUT-0001",
                        "message": "Required fields are missing",
                        "errorSystemId": "extomnisvcs",
                        "details": [
                          {
                            "code": "INT-001",
                            "message": "cartId is required"
                          }
                        ]
                      }
                    }
                  },
                  "CheckoutConfigInvalidCartId": {
                    "summary": "Invalid cart ID",
                    "value": {
                      "error": {
                        "errorId": "EXTOMNISVCS-GET-CART-0002",
                        "message": "CartId is not valid",
                        "errorSystemId": "shoppingcart",
                        "details": [
                          {
                            "code": "SC-V40400",
                            "message": "Provided CartId 025edd31-2c2d-49ee-a3ef is invalid"
                          }
                        ]
                      }
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/WrappedPartnerServiceError"
                },
                "examples": {
                  "CheckoutConfigSystemError": {
                    "summary": "System Error",
                    "value": {
                      "error": {
                        "errorId": "EXTOMNISVCS-FULFILLMENT-OPTIONS-0001",
                        "message": "Downstream service error occurred while fetching fulfillment options",
                        "errorSystemId": "fulfillmentOptions"
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
    }
  },
  "components": {
    "schemas": {
      "CheckoutConfigRequest": {
        "type": "object",
        "required": [
          "cartId"
        ],
        "properties": {
          "cartId": {
            "type": "string",
            "description": "Unique identifier for the shopping cart. This field is required and is used to retrieve appointment data and terms data for technician installation."
          },
          "fulfillmentAddressId": {
            "type": "string",
            "description": "Address ID of the fulfillment address. This optional field is used for address change scenarios. When provided, fulfillment options will be returned based on this address. If not provided and fulfillment was already selected for the cart, fulfillment options will not be returned. Otherwise, the default service address will be used as the fulfillment address."
          }
        },
        "description": "Request payload for retrieving checkout configuration options."
      },
      "CheckoutConfigResponse": {
        "type": "object",
        "description": "Response payload containing checkout configuration data including fulfillment options, appointment dates, terms and conditions, and validation status.",
        "properties": {
          "fulfillmentOptions": {
            "type": "array",
            "description": "List of available fulfillment options including delivery methods, dates, and pricing information.",
            "items": {
              "$ref": "#/components/schemas/FulfillmentOption"
            }
          },
          "appointmentDates": {
            "$ref": "#/components/schemas/AppointmentDates"
          },
          "terms": {
            "$ref": "#/components/schemas/Terms"
          },
          "validation": {
            "$ref": "#/components/schemas/Validation"
          }
        }
      },
      "FulfillmentOption": {
        "type": "object",
        "description": "Represents a fulfillment option with delivery methods, dates, pricing, and availability information.",
        "properties": {
          "id": {
            "type": "string",
            "description": "Unique identifier for the fulfillment option.",
            "example": "025edd31-2c2d-49ee-a3ef-d8d51797e229"
          },
          "fulfillmentMethod": {
            "type": "string",
            "description": "Fulfillment method code. Common values include DF (Direct Fulfillment), C2S (Click to Store).",
            "example": "DF"
          },
          "signalStatus": {
            "type": "string",
            "description": "Indicates the selling status of the fulfillment option. SELL indicates the item is available for sale.",
            "example": "SELL"
          },
          "availableQty": {
            "type": "number",
            "description": "Quantity available for this fulfillment option.",
            "example": 1
          },
          "available": {
            "type": "boolean",
            "description": "Indicates whether this fulfillment option is currently available.",
            "example": true
          },
          "dates": {
            "type": "object",
            "description": "Contains shipment and delivery date ranges for the fulfillment option.",
            "properties": {
              "shipmentDates": {
                "type": "object",
                "description": "Date range when the item will be shipped.",
                "properties": {
                  "dateFrom": {
                    "type": "string",
                    "format": "date",
                    "description": "Earliest shipment date in YYYY-MM-DD format.",
                    "example": "2025-10-13"
                  },
                  "dateTo": {
                    "type": "string",
                    "format": "date",
                    "description": "Latest shipment date in YYYY-MM-DD format.",
                    "example": "2025-10-17"
                  }
                }
              },
              "deliveryDates": {
                "type": "object",
                "description": "Date range when the item will be delivered to the customer.",
                "properties": {
                  "dateFrom": {
                    "type": "string",
                    "format": "date",
                    "description": "Earliest delivery date in YYYY-MM-DD format.",
                    "example": "2025-10-13"
                  },
                  "dateTo": {
                    "type": "string",
                    "format": "date",
                    "description": "Latest delivery date in YYYY-MM-DD format.",
                    "example": "2025-10-17"
                  }
                }
              }
            }
          },
          "productOffering": {
            "type": "object",
            "description": "A product offering represents entities that are orderable from the provider of the catalog. This includes delivery method details.",
            "properties": {
              "id": {
                "type": "string",
                "description": "Unique identifier of the product offering.",
                "example": "bb-std-delivery-01"
              },
              "name": {
                "type": "string",
                "description": "Display name of the product offering.",
                "example": "Standard Shipping"
              },
              "productOfferingType": {
                "type": "string",
                "description": "Type of product offering. For fulfillment options, this is typically Delivery_Method.",
                "example": "Delivery_Method"
              }
            }
          },
          "lineItemId": {
            "type": "number",
            "description": "Identifier for the line item associated with this fulfillment option.",
            "example": 0
          },
          "productOrderItemRelationship": {
            "type": "array",
            "description": "Linked product order items related to this fulfillment option.",
            "items": {
              "type": "object",
              "properties": {
                "id": {
                  "type": "string",
                  "description": "Unique identifier of the related product order item.",
                  "example": "025edd31-2c2d-49ee-a3ef-d8d51797e229"
                },
                "relationshipType": {
                  "type": "string",
                  "description": "Type of relationship. Delivering indicates this fulfillment option delivers the specified item.",
                  "example": "Delivering"
                }
              }
            }
          },
          "finalPrice": {
            "type": "object",
            "description": "Final price information for this fulfillment option.",
            "properties": {
              "dutyFreeAmount": {
                "type": "object",
                "description": "A base / value business entity used to represent money.",
                "properties": {
                  "unit": {
                    "type": "string",
                    "description": "Currency unit for the amount.",
                    "example": "USD"
                  },
                  "value": {
                    "type": "number",
                    "description": "Monetary value of the duty-free amount.",
                    "example": 0
                  }
                }
              }
            }
          },
          "extensions": {
            "type": "object",
            "description": "Additional extension properties for delivery and promise dates.",
            "properties": {
              "initDeliveryByFromDate": {
                "type": "string",
                "format": "date-time",
                "description": "Initial earliest delivery date in ISO 8601 format.",
                "example": "2025-10-13T00:00:00Z"
              },
              "initDeliveryByToDate": {
                "type": "string",
                "format": "date-time",
                "description": "Initial latest delivery date in ISO 8601 format.",
                "example": "2025-10-17T00:00:00Z"
              },
              "initPromiseFromDate": {
                "type": "string",
                "format": "date-time",
                "description": "Initial promised delivery start date in ISO 8601 format.",
                "example": "2025-10-13T00:00:00Z"
              },
              "initPromiseToDate": {
                "type": "string",
                "format": "date-time",
                "description": "Initial promised delivery end date in ISO 8601 format.",
                "example": "2025-10-17T00:00:00Z"
              }
            }
          }
        }
      },
      "AppointmentDates": {
        "type": "object",
        "description": "This resource contains available appointment time slots for technician installation. It includes both real-time appointments with specific date/time windows and preferred calendar period slots with flexible scheduling options.",
        "properties": {
          "realTime": {
            "type": "object",
            "description": "Real-time appointment slots with specific date and time windows.",
            "properties": {
              "availableTimeSlot": {
                "type": "array",
                "description": "List of available real-time appointment slots.",
                "items": {
                  "type": "object",
                  "properties": {
                    "id": {
                      "type": "string",
                      "description": "Unique identifier for the appointment time slot."
                    },
                    "@type": {
                      "type": "string",
                      "description": "Type of appointment slot. For real-time appointments, this is 'realTime'."
                    },
                    "validFor": {
                      "type": "object",
                      "description": "A period of time defining when this appointment slot is valid.",
                      "properties": {
                        "startDateTime": {
                          "type": "string",
                          "format": "date-time",
                          "description": "Start date and time of the appointment window in ISO 8601 format."
                        },
                        "endDateTime": {
                          "type": "string",
                          "format": "date-time",
                          "description": "End date and time of the appointment window in ISO 8601 format."
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "preferred": {
            "type": "object",
            "description": "Preferred appointment slots with flexible calendar-based scheduling by day and hour periods.",
            "properties": {
              "availableCalendarPeriodSlot": {
                "type": "array",
                "description": "List of available calendar period slots with date and hour period combinations.",
                "items": {
                  "type": "object",
                  "properties": {
                    "id": {
                      "type": "string",
                      "description": "Unique identifier for the calendar period slot."
                    },
                    "@type": {
                      "type": "string",
                      "description": "Type of appointment slot. For preferred appointments, this is 'preferred'."
                    },
                    "day": {
                      "type": "string",
                      "format": "date",
                      "description": "Date for the preferred appointment in YYYY-MM-DD format."
                    },
                    "hourPeriod": {
                      "type": "array",
                      "description": "Available hour periods for the given day.",
                      "items": {
                        "type": "object",
                        "properties": {
                          "startHour": {
                            "type": "string",
                            "description": "Start hour of the time period in HH:MM format."
                          },
                          "endHour": {
                            "type": "string",
                            "description": "End hour of the time period in HH:MM format."
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      },
      "Terms": {
        "type": "array",
        "description": "Array of terms and conditions objects that customers must review and accept during checkout. Includes both static and dynamic terms with associated metadata and resources.",
        "items": {
          "type": "object",
          "properties": {
            "name": {
              "type": "string",
              "description": "Name or key identifier for the term (e.g., CSA, HTPT)."
            },
            "extensions": {
              "type": "array",
              "description": "Array of extension properties providing additional metadata for the term.",
              "items": {
                "type": "object",
                "properties": {
                  "name": {
                    "type": "string",
                    "description": "Name of the extension property (e.g., ContentType, title, consentText, category)."
                  },
                  "value": {
                    "type": "string",
                    "description": "Value of the extension property."
                  }
                }
              }
            },
            "resource": {
              "type": "array",
              "description": "Array of resources that this term applies to, such as billing accounts or product order items.",
              "items": {
                "type": "object",
                "properties": {
                  "id": {
                    "type": "string",
                    "description": "Unique identifier of the resource."
                  },
                  "type": {
                    "type": "string",
                    "description": "Type of resource (e.g., BillingAccount, productOrderItem)."
                  }
                }
              }
            }
          }
        }
      },
      "Error": {
        "required": [
          "code",
          "reason"
        ],
        "type": "object",
        "properties": {
          "code": {
            "type": "string",
            "description": "Application relevant detail, defined in the API or a common list."
          },
          "reason": {
            "type": "string",
            "description": "Explanation of the reason for the error which can be shown to a client user."
          },
          "message": {
            "type": "string",
            "description": "More details and corrective actions related to the error which can be shown to a client user."
          },
          "status": {
            "type": "string",
            "description": "HTTP Error code extension"
          },
          "referenceError": {
            "type": "string",
            "description": "URI of documentation describing the error.",
            "format": "uri"
          },
          "@baseType": {
            "type": "string",
            "description": "When sub-classing, this defines the super-class."
          },
          "@schemaLocation": {
            "type": "string",
            "description": "A URI to a JSON-Schema file that defines additional attributes and relationships",
            "format": "uri"
          },
          "@type": {
            "type": "string",
            "description": "When sub-classing, this defines the sub-class entity name."
          }
        },
        "description": "Used when an API throws an Error, typically with a HTTP error response-code (3xx, 4xx, 5xx)"
      },
      "ValidationMessageParameter": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string",
            "description": "Name of the parameter\n"
          },
          "value": {
            "type": "array",
            "description": "Value of the parameter\n",
            "items": {
              "type": "string"
            }
          }
        },
        "description": "Name/value pair of the validation message parameter\n"
      },
      "Variable": {
        "type": "object",
        "properties": {
          "type": {
            "type": "string",
            "description": "Type of the variable\n"
          },
          "id": {
            "type": "string",
            "description": "Unique identifier of the variable\n"
          },
          "value": {
            "type": "array",
            "description": "Value(s) of the variable\n",
            "items": {
              "type": "string"
            }
          }
        },
        "description": "Variable that is associated with a resource\n"
      },
      "ContainedResource": {
        "type": "object",
        "properties": {
          "type": {
            "type": "string",
            "description": "Type of the resource\n"
          },
          "id": {
            "type": "string",
            "description": "Unique identifier of the resource\n"
          },
          "variable": {
            "type": "array",
            "description": "Variables that are related to the resource\n",
            "items": {
              "$ref": "#/components/schemas/Variable"
            }
          }
        },
        "description": "Resources that are contained in the validation message\n"
      },
      "RelatedResource": {
        "type": "object",
        "properties": {
          "type": {
            "type": "string",
            "description": "Type of the resource\n"
          },
          "id": {
            "type": "string",
            "description": "Unique identifier of the resource\n"
          },
          "variable": {
            "type": "array",
            "description": "Variables related to the resource\n",
            "items": {
              "$ref": "#/components/schemas/Variable"
            }
          },
          "containedResource": {
            "type": "array",
            "description": "Other resources, specs, or offers that are linked to the message but did not trigger the validation message\n",
            "items": {
              "$ref": "#/components/schemas/ContainedResource"
            }
          }
        },
        "description": "Resource that is associated with the validation message (that is, triggered the validation failure)\n"
      },
      "ValidationMessage": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "Non-localized name identifier of the validation message\n"
          },
          "text": {
            "type": "string",
            "description": "Localized descriptive validation message\n"
          },
          "type": {
            "type": "string",
            "description": "Type of the validation message\n"
          },
          "subtype": {
            "type": "string",
            "description": "Distinct code which represents the issue\n"
          },
          "parameter": {
            "type": "array",
            "description": "Name/value pair of the validation message\n",
            "items": {
              "$ref": "#/components/schemas/ValidationMessageParameter"
            }
          },
          "severity": {
            "type": "string",
            "description": "Severity of the validation message\n"
          },
          "path": {
            "type": "string",
            "description": "Path to the resource part to which the validation message is related\n"
          },
          "resource": {
            "type": "array",
            "description": "Resource that is associated with the message\n",
            "items": {
              "$ref": "#/components/schemas/RelatedResource"
            }
          }
        },
        "description": "Message associated with the validation failure\n"
      },
      "ConfigurationChangeParameter": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string",
            "description": "Name of the parameter\n"
          },
          "value": {
            "type": "array",
            "description": "Value(s) of the parameter\n",
            "items": {
              "type": "string"
            }
          },
          "valueType": {
            "type": "string",
            "description": "Types of each Value in the parameter array\nAs a default - when empty - the type is string.\nAlso will be supported-\n** HashMap - a jason format representation of key value <string,string> map.\n"
          }
        },
        "description": "Name/value pair of the configuration change parameters\n"
      },
      "PatchElement": {
        "type": "object",
        "description": "Patched resource part\n",
        "properties": {
          "op": {
            "type": "string",
            "description": "Operation that is associated with the patched resource part. Valid values are *add*, *remove*, or *replace*.\n"
          },
          "path": {
            "type": "string",
            "description": "Path of this resource part within the patched resource, for example, */note*, */name*, or */orderItem/quantity*\n"
          },
          "value": {
            "type": "object",
            "description": "Value of the patched resource part\n"
          }
        }
      },
      "ConfigurationChange": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "Unique identifier of the configuration change\n"
          },
          "text": {
            "type": "string",
            "description": "Localized descriptive configuration change message\n"
          },
          "type": {
            "type": "string",
            "description": "Implementation discriminator of the configuration change\n"
          },
          "parameter": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ConfigurationChangeParameter"
            }
          },
          "severity": {
            "type": "string",
            "description": "Severity of the configuration change\n"
          },
          "path": {
            "type": "string",
            "description": "Path to the configuration change in the resource model\n"
          },
          "skipRevalidation": {
            "type": "boolean",
            "description": "Indicates whether revalidation of the configuration change is required\n"
          },
          "patchElement": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/PatchElement"
            }
          },
          "configurationChangeSource": {
            "type": "array",
            "description": "Holds a list of the impacting components that are involved in action rule\n- enablmentRelation - The action rule has impacting enablment relation functionality or was created by this functionality.\n- commertialRelation - The action rule has impacting commertial relation functionality or was created by this functionality.\n- subscriptionRelation - The action rule has impacting subscription relation or was created by this functionality. functionality\n- catalog - The action rule was created by catalog.\n",
            "items": {
              "type": "string"
            }
          }
        },
        "description": "Configuration change recommended for a validated resource\n"
      },
      "KeyValueObject": {
        "required": [
          "value"
        ],
        "type": "object",
        "properties": {
          "name": {
            "type": "string",
            "description": "Name of the characteristic"
          },
          "value": {
            "type": "string",
            "description": "Value of the characteristic"
          }
        },
        "description": "Describes a characteristic of an object or entity using a name/value pair."
      },
      "Configuration": {
        "type": "object",
        "properties": {
          "status": {
            "type": "string",
            "description": "Type of the component\n"
          },
          "type": {
            "type": "string",
            "description": "Type of the component\n"
          },
          "subtype": {
            "type": "string",
            "description": "Sub Type of the Component\n"
          },
          "properties": {
            "type": "array",
            "description": "Name/value pair\n",
            "items": {
              "$ref": "#/components/schemas/KeyValueObject"
            }
          },
          "required": {
            "type": "boolean",
            "description": "Component required for Product Order Configuration\n"
          },
          "postOrderConfigurable": {
            "type": "boolean",
            "description": "Component Post Order Product Order Configuration\n"
          },
          "readOnly": {
            "type": "boolean",
            "description": "Component allowed for configuration or not.\n"
          },
          "resource": {
            "type": "array",
            "description": "Resource that is associated with the message\n",
            "items": {
              "$ref": "#/components/schemas/RelatedResource"
            }
          }
        },
        "description": "Message associated with the validation failure\n"
      },
      "Validation": {
        "type": "object",
        "description": "Validation result that is associated with the product order\n",
        "properties": {
          "status": {
            "type": "string",
            "description": "Validation status\n"
          },
          "readyToCheckout": {
            "type": "boolean",
            "description": "Ready To Checkout\n"
          },
          "readyToSubmit": {
            "type": "boolean",
            "description": "Ready to Submit\n"
          },
          "error": {
            "$ref": "#/components/schemas/Error"
          },
          "validationMessage": {
            "type": "array",
            "description": "Validation message\n",
            "items": {
              "$ref": "#/components/schemas/ValidationMessage"
            }
          },
          "configurationChange": {
            "type": "array",
            "description": "Configuration change\n",
            "items": {
              "$ref": "#/components/schemas/ConfigurationChange"
            }
          },
          "configuration": {
            "type": "array",
            "description": "Configuration Components\n",
            "items": {
              "$ref": "#/components/schemas/Configuration"
            }
          },
          "extensions": {
            "type": "object",
            "additionalProperties": {
              "type": "object",
              "properties": {}
            }
          }
        },
        "x-examples": {}
      },
      "PartnerServiceError": {
        "type": "object",
        "properties": {
          "errorId": {
            "type": "string",
            "example": "Top level error code"
          },
          "message": {
            "type": "string",
            "example": "Top level error message"
          },
          "errorSystemId": {
            "type": "string",
            "example": "System name"
          },
          "details": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "code": {
                  "type": "string",
                  "example": "Detail code 1"
                },
                "message": {
                  "type": "string",
                  "example": "Detail message 1"
                }
              }
            }
          }
        }
      },
      "WrappedPartnerServiceError": {
        "type": "object",
        "properties": {
          "error": {
            "$ref": "#/components/schemas/PartnerServiceError"
          }
        }
      }
    },
    "parameters": {
      "ParameterAppname": {
        "name": "appname",
        "in": "header",
        "required": false,
        "schema": {
          "type": "string"
        },
        "description": "Application name making the request"
      }
    }
  }
}