{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://artifacts.apis.io/fedex/json-schema/fedex-cmdc-response-vo-schema.json",
  "title": "CmdcResponseVO",
  "description": "This is a wrapper class for outputVO",
  "x-generated": "2026-11-05",
  "x-method": "derived",
  "x-generator": "derive-json-schema.py",
  "x-source": "openapi/fedex-service-availability-api-openapi.yml#/components/schemas/CmdcResponseVO",
  "type": "object",
  "properties": {
    "transactionId": {
      "type": "string",
      "description": "The transaction ID is a special set of numbers that defines each transaction.<br>Example: 624deea6-b709-470c-8c39-4b5511281492"
    },
    "customerTransactionId": {
      "type": "string",
      "description": "This element allows you to assign a unique identifier to your transaction. This element is also returned in the reply and helps you match the request to the reply. <br> Example: AnyCo_order123456789"
    },
    "output": {
      "$ref": "#/$defs/BaseProcessOutputVO_Package"
    }
  },
  "$defs": {
    "Alert": {
      "type": "object",
      "properties": {
        "code": {
          "type": "string",
          "description": "Specifies the api alert code."
        },
        "alertType": {
          "type": "string",
          "description": "Specifies the api alert type.",
          "enum": [
            "NOTE",
            "WARNING"
          ]
        },
        "message": {
          "type": "string",
          "description": "Specifies the api alert message."
        }
      },
      "description": "Specifies the api alerts."
    },
    "BaseProcessOutputVO_Package": {
      "$ref": "#/$defs/PackageAndServiceOptionsOutputVO"
    },
    "KeyDisplayTextVO": {
      "allOf": [
        {
          "$ref": "#/$defs/KeyDisplayTextVO1"
        },
        {
          "required": [
            "displayText",
            "key"
          ],
          "properties": {
            "displayText": {
              "description": "Display Text"
            },
            "key": {
              "description": "Unique Key"
            }
          }
        }
      ]
    },
    "KeyDisplayTextVO1": {
      "type": "object",
      "properties": {
        "displayText": {
          "type": "string",
          "description": "Display Text"
        },
        "key": {
          "type": "string",
          "description": "Unique Key"
        }
      },
      "description": "this object holds applicable key and display text value pairs."
    },
    "KeyDisplayTextVO_2": {
      "$ref": "#/$defs/KeyDisplayTextVO1"
    },
    "Money": {
      "type": "object",
      "properties": {
        "amount": {
          "type": "number",
          "description": "This is the amount. Max length 18 including decimal.<br>Example: 12.45",
          "format": "double"
        },
        "currency": {
          "type": "string",
          "description": "This is the currency code for the amount.<br>Example: USD<br><a onclick='loadDocReference(\"currencycodes\")'>Click here to see Currency Codes</a>"
        }
      },
      "description": "Optional, but if indicated 'amount' and 'currency' must be provided."
    },
    "PackageAndServiceOptionsOutputVO": {
      "type": "object",
      "properties": {
        "packageOptions": {
          "type": "array",
          "description": "The available packaging options for the shipment. This also includes the applicable rate types, the weight limit, or any other information related to the shipment. </br>Valid values for the weight limit are:<br>-maxMetricWeightAllowed<br>-maxWeightAllowed<br>-oneRateMaxWeightAllowed<br>-oneRateMaxMetricWeightAllowed",
          "items": {
            "$ref": "#/$defs/PackageTypeDetail"
          }
        },
        "oneRate": {
          "type": "boolean",
          "description": "Indicates if OneRate is applicable to the packaging. Returns the response as True if OneRate is applicable. Otherwise the response is False."
        },
        "advancedRegulatoryPackages": {
          "type": "array",
          "description": "The information for advanced regulatory packages.",
          "items": {
            "description": "Response model which holds information about advancedRegulatoryPackages such as Key, DisplayText",
            "allOf": [
              {
                "$ref": "#/$defs/KeyDisplayTextVO1"
              }
            ]
          }
        },
        "serviceOptions": {
          "type": "array",
          "description": "A list of key and value pairs representing the available service and packaging options.",
          "items": {
            "allOf": [
              {
                "$ref": "#/$defs/KeyDisplayTextVO_2"
              }
            ]
          }
        },
        "alerts": {
          "type": "array",
          "description": "The cxs alert type, alert code, and alert message that is received when package and service options are requested.",
          "items": {
            "$ref": "#/$defs/Alert"
          }
        }
      },
      "description": "This is the output response details of Service and Packaging Option request."
    },
    "PackageTypeDetail": {
      "type": "object",
      "properties": {
        "serviceType": {
          "description": "Service Type represents some services like FEDEX_GROUND,INTERNATIONAL_PRIORITY, etc..,<br>Example: INTERNATIONAL_PRIORITY<br><a onclick='loadDocReference(\"servicetypes\")'>Click here to see Service Types</a>",
          "allOf": [
            {
              "$ref": "#/$defs/KeyDisplayTextVO"
            }
          ]
        },
        "oneRateMaxWeightAllowed": {
          "description": "Maximum Weight allowed for the Packaging type to send with One Fixed Rate",
          "allOf": [
            {
              "$ref": "#/$defs/Weight"
            }
          ]
        },
        "maxWeightAllowed": {
          "description": "Maximum Weight allowed for the Packaging type",
          "allOf": [
            {
              "$ref": "#/$defs/Weight"
            }
          ]
        },
        "rateTypes": {
          "type": "array",
          "description": "A set of possible rate types allowed for each Package type",
          "items": {
            "type": "string"
          }
        },
        "packagingInfoList": {
          "type": "array",
          "description": "An array of possible packaging types, a packaging description and applicable dimensions for each Package type.",
          "items": {
            "$ref": "#/$defs/SubPackageInfo"
          }
        },
        "packageType": {
          "$ref": "#/$defs/KeyDisplayTextVO"
        },
        "maxMetricWeightAllowed": {
          "description": "Maximum Metric Weight allowed for the Packaging type",
          "allOf": [
            {
              "$ref": "#/$defs/Weight"
            }
          ]
        },
        "oneRateMaxMetricWeightAllowed": {
          "description": "Maximum Metric Weight allowed for the Packaging type with One Fixed Rate",
          "allOf": [
            {
              "$ref": "#/$defs/Weight"
            }
          ]
        },
        "maxDeclaredValue": {
          "description": "This is the maximum declared value.",
          "allOf": [
            {
              "$ref": "#/$defs/Money"
            }
          ]
        }
      },
      "description": "Holds the details of allowed Packaging Types for the origin and destination provided."
    },
    "SubPackageInfo": {
      "type": "object",
      "properties": {
        "dimension": {
          "type": "string",
          "description": "Indicate the dimensions of the package.<br> Following conditions will apply: <ul><li>Dimensions are optional but when added, then all three dimensions must be indicated.</li><li>Dimensions are required with YOUR_PACKAGING package type.</li></ul>Note: The maximum/minimum dimension values varies based on the services and the packaging types. Refer <a href=\"https://www.fedex.com/en-us/service-guide.html\" target=\"_blank\">FedEx Service Guide</a> for service details related to DIM Weighting for FedEx Express and oversize conditions for FedEx Express and FedEx Ground."
        },
        "description": {
          "type": "string",
          "description": "The description of the SubPackage Type"
        }
      },
      "description": "Holds the Sub Packaging details for the PackageType"
    },
    "Weight": {
      "description": "These are the weight details.",
      "allOf": [
        {
          "$ref": "#/$defs/Weight1"
        },
        {
          "required": [
            "units",
            "value"
          ],
          "properties": {
            "units": {
              "type": "string",
              "description": "This is package weight type.<br> Example: KG"
            },
            "value": {
              "type": "number",
              "description": "This is package weight. Max. Length is 99999.<br> Example: 10.0"
            }
          }
        }
      ]
    },
    "Weight1": {
      "type": "object",
      "properties": {
        "units": {
          "type": "string",
          "description": "Specify the unit of measurement used to weigh the shipment. The package and commodity weight unit should be the same else the request will result in an error.",
          "enum": [
            "KG",
            "LB"
          ]
        },
        "value": {
          "type": "number",
          "description": "Specify the value of weight of shipment.<br>Example: 68.25",
          "format": "double"
        }
      },
      "description": "Specify the total weight of the shipment. <br>This is only applies to International shipments and should be used on the first package of a multiple piece shipment. This value contains 1 explicit decimal position."
    }
  }
}