{
  "openapi": "3.0.0",
  "info": {
    "title": "att-order-status-eapi",
    "version": "v1"
  },
  "paths": {
    "/opportunity-quote-apex": {
      "post": {
        "summary": "Create Quote and Opportunity",
        "description": "This API allows users to create quote ID and opportunity ID.",
        "parameters": [
          {
            "name": "content-type",
            "in": "header",
            "description": "Application/json",
            "required": true,
            "schema": {
              "type": "string",
              "example": "application/json"
            }
          },
          {
            "name": "accept",
            "in": "header",
            "description": "Specifies the format of the response message body. Structured text message payloads are required to support application/json. No other format is permitted.",
            "required": false,
            "schema": {
              "type": "string",
              "example": "application/json"
            }
          },
          {
            "name": "x-trace-id",
            "in": "header",
            "description": "This field is used for passing a trace ID between API hops for end-to-end traceability.",
            "required": true,
            "schema": {
              "type": "string",
              "example": "givingXTracing123456"
            }
          },
          {
            "name": "x-transaction-id",
            "in": "header",
            "description": "This field is used for passing a traceable ID to uniquely identify the transactions.",
            "required": false,
            "schema": {
              "type": "string",
              "example": "1234"
            }
          },
          {
            "name": "client_id",
            "in": "header",
            "description": "This field represents the client id.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "client_secret",
            "in": "header",
            "description": "This field represents the client secret.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "source",
            "in": "header",
            "description": "This field should identify the calling system/application.",
            "required": false,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/createQuoteRequest"
              }
            }
          }
        },
        "x-page-slug": "opportunity-quote-apex-slug",
        "responses": {
          "200": {
            "description": "Your request was processed successfully",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/createQuoteResponse"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StandardError"
                }
              }
            }
          },
          "401": {
            "description": "Not Authorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StandardError"
                }
              }
            }
          },
          "403": {
            "description": "Forbidden",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StandardError"
                }
              }
            }
          },
          "404": {
            "description": "Requested resource not found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StandardError"
                }
              }
            }
          },
          "415": {
            "description": "Unsupported media type",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StandardError"
                }
              }
            }
          },
          "500": {
            "description": "Internal server error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StandardError"
                }
              }
            }
          }
        }
      }
    },
    "/site": {
      "post": {
        "summary": "Add Sites to Quote",
        "description": "This API allows users to add sites and site details to the given quote.",
        "parameters": [
          {
            "name": "content-type",
            "in": "header",
            "description": "Application/json",
            "required": true,
            "schema": {
              "type": "string",
              "example": "application/json"
            }
          },
          {
            "name": "accept",
            "in": "header",
            "description": "Specifies the format of the response message body. Structured text message payloads are required to support application/json. No other format is permitted.",
            "required": false,
            "schema": {
              "type": "string",
              "example": "application/json"
            }
          },
          {
            "name": "x-trace-id",
            "in": "header",
            "description": "This field is used for passing a trace ID between API hops for end-to-end traceability.",
            "required": true,
            "schema": {
              "type": "string",
              "example": "givingXTracing123456"
            }
          },
          {
            "name": "x-transaction-id",
            "in": "header",
            "description": "This field is used for passing a traceable ID to uniquely identify the transactions.",
            "required": false,
            "schema": {
              "type": "string",
              "example": "1234"
            }
          },
          {
            "name": "client_id",
            "in": "header",
            "description": "This field represents the client id.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "client_secret",
            "in": "header",
            "description": "This field represents the client secret.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "source",
            "in": "header",
            "description": "This field should identify the calling system/application.",
            "required": false,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/addSiteRequest"
              }
            }
          }
        },
        "x-page-slug": "site-apex-slug",
        "responses": {
          "200": {
            "description": "Your request was processed successfully",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/addSiteResponse"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StandardError"
                }
              }
            }
          },
          "401": {
            "description": "Not Authorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StandardError"
                }
              }
            }
          },
          "403": {
            "description": "Forbidden",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StandardError"
                }
              }
            }
          },
          "404": {
            "description": "Requested resource not found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StandardError"
                }
              }
            }
          },
          "415": {
            "description": "Unsupported media type",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StandardError"
                }
              }
            }
          },
          "500": {
            "description": "Internal server error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StandardError"
                }
              }
            }
          }
        }
      }
    },
    "/config-apex": {
      "post": {
        "summary": "Add Product Configuration to Quote",
        "description": "This API allows users to add the customer’s desired product configurations into the given quote. This endpoint currently supports ADI products only.",
        "parameters": [
          {
            "name": "content-type",
            "in": "header",
            "description": "Application/json",
            "required": true,
            "schema": {
              "type": "string",
              "example": "application/json"
            }
          },
          {
            "name": "accept",
            "in": "header",
            "description": "Specifies the format of the response message body. Structured text message payloads are required to support application/json. No other format is permitted.",
            "required": false,
            "schema": {
              "type": "string",
              "example": "application/json"
            }
          },
          {
            "name": "x-trace-id",
            "in": "header",
            "description": "This field is used for passing a trace ID between API hops for end-to-end traceability.",
            "required": true,
            "schema": {
              "type": "string",
              "example": "givingXTracing123456"
            }
          },
          {
            "name": "x-transaction-id",
            "in": "header",
            "description": "This field is used for passing a traceable ID to uniquely identify the transactions.",
            "required": false,
            "schema": {
              "type": "string",
              "example": "1234"
            }
          },
          {
            "name": "client_id",
            "in": "header",
            "description": "This field represents the client id.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "client_secret",
            "in": "header",
            "description": "This field represents the client secret.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "source",
            "in": "header",
            "description": "This field should identify the calling system/application.",
            "required": false,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/addConfigRequest"
              }
            }
          }
        },
        "x-page-slug": "config-apex-slug",
        "responses": {
          "200": {
            "description": "Your request was processed successfully",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/addConfigResponse"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StandardError"
                }
              }
            }
          },
          "401": {
            "description": "Not Authorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StandardError"
                }
              }
            }
          },
          "403": {
            "description": "Forbidden",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StandardError"
                }
              }
            }
          },
          "404": {
            "description": "Requested resource not found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StandardError"
                }
              }
            }
          },
          "415": {
            "description": "Unsupported media type",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StandardError"
                }
              }
            }
          },
          "500": {
            "description": "Internal server error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StandardError"
                }
              }
            }
          }
        }
      }
    }
  },
  "servers": [
    {
      "url": "Contact DL-APS_API_Services@att.com to get Endpoint details "
    }
  ],
  "components": {
    "schemas": {
      "StandardError": {
        "title": "Standard Error Response Item",
        "description": "Error Response",
        "x-amf-examples": {
          "example_2": {
            "node": "Store location System API",
            "code": 405,
            "message": "METHOD_NOT_ALLOWED",
            "description": "The method received in the request-line is known by the origin server but not supported by the target resource.",
            "transactionId": "803ec5202bd54576992d082da70e6338",
            "traceId": "712def66-c54a-11ea-87d0-0242ac130003",
            "error_context": {
              "time": "2021-07-29T01:51:15.000Z",
              "type": "DATA ERROR",
              "category": "Account",
              "payload": {},
              "error_identifier": "123",
              "action": "create"
            }
          },
          "amf_example_1": {
            "node": "Store location System API",
            "code": 403,
            "message": "FORBIDDEN",
            "description": "The server understood the request but refuses to authorize it. The client MAY repeat the request with new or different credentials.",
            "transactionId": "803ec5202bd54576992d082da70e6338",
            "traceId": "712def66-c54a-11ea-87d0-0242ac130003",
            "error_context": {
              "time": "2021-07-29T01:51:15.000Z",
              "type": "SYSTEM ERROR",
              "category": "Account",
              "payload": {},
              "error_identifier": "123",
              "action": "create"
            }
          },
          "example_1": {
            "node": "Store location System API",
            "code": 401,
            "message": "NOT_AUTHORIZED",
            "description": "The request has not been applied because it lacks valid authentication credentials for the target resource.",
            "transactionId": "803ec5202bd54576992d082da70e6338",
            "traceId": "712def66-c54a-11ea-87d0-0242ac130003",
            "error_context": {
              "time": "2021-07-29T01:51:15.000Z",
              "type": "DATA ERROR",
              "category": "Account",
              "payload": {},
              "error_identifier": "123",
              "action": "create"
            }
          },
          "amf_example_2": {
            "node": "Store location System API",
            "code": 404,
            "message": "RESOURCE_NOT_FOUND",
            "description": "The origin server did not find a current representation for the target resource or is not willing to disclose that one exists.",
            "transactionId": "803ec5202bd54576992d082da70e6338",
            "traceId": "712def66-c54a-11ea-87d0-0242ac130003",
            "error_context": {
              "time": "2021-07-29T01:51:15.000Z",
              "type": "DATA ERROR",
              "category": "Account",
              "payload": {},
              "error_identifier": "123",
              "action": "create"
            }
          },
          "amf_example_4": {
            "node": "Store location System API",
            "code": 500,
            "message": "INTERNAL_SERVER_ERROR",
            "description": "The server encountered an unexpected condition that prevented it from fulfilling the request.",
            "transactionId": "803ec5202bd54576992d082da70e6338",
            "traceId": "712def66-c54a-11ea-87d0-0242ac130003",
            "error_context": {
              "time": "2021-07-29T01:51:15.000Z",
              "type": "SYSTEM ERROR",
              "category": "Account",
              "payload": {},
              "error_identifier": "123",
              "action": "create"
            }
          },
          "example_0": {
            "node": "Store location System API",
            "code": 400,
            "message": "BAD_REQUEST",
            "description": "The server cannot or will not process the request due to something that is perceived to be a client error.",
            "transactionId": "803ec5202bd54576992d082da70e6338",
            "traceId": "712def66-c54a-11ea-87d0-0242ac130003",
            "error_context": {
              "time": "2021-07-29T01:51:15.000Z",
              "type": "DATA ERROR",
              "category": "Account",
              "payload": {},
              "error_identifier": "123",
              "action": "create"
            }
          },
          "amf_example_3": {
            "node": "Store location System API",
            "code": 406,
            "message": "NOT_ACCEPTABLE",
            "description": "The target resource does not have a current representation that would be acceptable to the user agent, according to the proactive negotiation header fields received in the request, and the server is unwilling to supply a default representation.",
            "transactionId": "803ec5202bd54576992d082da70e6338",
            "traceId": "712def66-c54a-11ea-87d0-0242ac130003",
            "error_context": {
              "time": "2021-07-29T01:51:15.000Z",
              "type": "SYSTEM ERROR",
              "category": "Account",
              "payload": {},
              "error_identifier": "123",
              "action": "create"
            }
          },
          "example_3": {
            "node": "Store location System API",
            "code": 415,
            "message": "UNSUPPORTED_MEDIA_TYPE",
            "description": "The format problem might be due to the request's indicated Content-Type or Content-Encoding, or as a result of inspecting the data directly.",
            "transactionId": "803ec5202bd54576992d082da70e6338",
            "traceId": "712def66-c54a-11ea-87d0-0242ac130003",
            "error_context": {
              "time": "2021-07-29T01:51:15.000Z",
              "type": "DATA ERROR",
              "category": "Account",
              "payload": {},
              "error_identifier": "123",
              "action": "create"
            }
          }
        },
        "type": "object",
        "required": [
          "node",
          "code",
          "message",
          "description",
          "transactionId",
          "traceId"
        ],
        "properties": {
          "node": {
            "description": "API Name",
            "example": "Store location System API",
            "type": "string"
          },
          "code": {
            "description": "Status Code",
            "example": 401,
            "type": "number"
          },
          "message": {
            "description": "Error Message",
            "example": "NOT_AUTHORIZED",
            "type": "string"
          },
          "description": {
            "description": "Error Description",
            "example": "The request has not been applied because it lacks valid authentication credentials for the target resource.",
            "type": "string"
          },
          "transactionId": {
            "description": "Transaction ID",
            "example": "803ec5202bd54576992d082da70e6338",
            "type": "string"
          },
          "traceId": {
            "description": "Trace ID",
            "example": "712def66-c54a-11ea-87d0-0242ac130003",
            "type": "string"
          },
          "error_context": {
            "type": "object",
            "required": [
              "time",
              "type",
              "category",
              "payload",
              "error_identifier",
              "action"
            ],
            "properties": {
              "time": {
                "description": "",
                "type": "string"
              },
              "type": {
                "description": "",
                "enum": [
                  "DATA ERROR",
                  "SYSTEM ERROR"
                ],
                "type": "string"
              },
              "category": {
                "description": "e.g. Billing, Account, Order, Contact",
                "type": "string"
              },
              "payload": {
                "description": "payload that's being sent to the specific target system",
                "type": "object"
              },
              "error_identifier": {
                "description": "Any Identifier",
                "type": "string"
              },
              "action": {
                "description": "Target system action e.g. create, cancel, update, delete",
                "type": "string"
              }
            }
          }
        }
      },
      "createQuoteRequest": {
        "type": "object",
        "properties": {
          "createQuoteOpty": {
            "type": "object",
            "properties": {
              "quoteName": {
                "type": "string",
                "description": "This field represents the given name of the quote. The maximum length is 255 characters.",
                "example": "New-Quote"
              },
              "quoteTerm": {
                "type": "string",
                "description": "This field represents the term of the quote.",
                "example": "12"
              },
              "globalLoginId": {
                "type": "string",
                "description": "This field represents the login ID of the user performing the request.",
                "example": "GL1294"
              }
            },
            "required": [
              "quoteName",
              "quoteTerm",
              "globalLoginId"
            ]
          }
        },
        "required": [
          "createQuoteOpty"
        ]
      },
      "createQuoteResponse": {
        "type": "object",
        "properties": {
          "quoteId": {
            "type": "string",
            "description": "This field represents the quote Id.",
            "example": "0Q0KQ000000D3OB0AK"
          },
          "opportunityId": {
            "type": "string",
            "description": "This field represents the opportunity Id.",
            "example": "006KQ000002NN6gYAG"
          },
          "spId": {
            "type": "string",
            "description": "This field represents the ID associated with the solution provider.",
            "example": "42365"
          },
          "opportunityName": {
            "type": "string",
            "description": "This field represents the opportunity name.",
            "example": "Test-Oppty"
          },
          "quoteName": {
            "type": "string",
            "description": "This field represents the quote name provided.",
            "example": "New-Quote"
          },
          "quoteTerm": {
            "type": "string",
            "description": "This field represents the quote term provided.",
            "example": "16"
          }
        }
      },
      "addSiteRequest": {
        "type": "object",
        "properties": {
          "quoteId": {
            "type": "string",
            "description": "This field represents the quoteId.",
            "example": "0Q0UO000001NHXR0A4"
          },
          "siteDetails": {
            "type": "array",
            "description": "This field represents the list of site details.",
            "items": {
              "$ref": "#/components/schemas/siteDetail"
            }
          }
        },
        "required": [
          "quoteId",
          "siteDetails"
        ]
      },
      "siteDetail": {
        "type": "object",
        "properties": {
          "subUnitType": {
            "type": "string",
            "description": "This field represents the sub unit type."
          },
          "subStructureType": {
            "type": "string",
            "description": "This field represents the sub structure type."
          },
          "roomSuite": {
            "type": "string",
            "description": "This field represents the room suite."
          },
          "levelType": {
            "type": "string",
            "description": "This field represents the level type."
          },
          "glid": {
            "type": "string",
            "description": "This field represents the glid.",
            "example": "000011Q452"
          },
          "floor": {
            "type": "string",
            "description": "This field represents the floor.",
            "example": "29"
          },
          "building": {
            "type": "string",
            "description": "This field represents the building."
          },
          "street": {
            "type": "string",
            "description": "This field represents the street where the site is located.",
            "example": "115 S LA SALLE"
          },
          "state": {
            "type": "string",
            "description": "This field represents the state where the site is located.",
            "example": "IL"
          },
          "postalCode": {
            "type": "string",
            "description": "This field represents the postal code where the site is located.",
            "example": "60603"
          },
          "city": {
            "type": "string",
            "description": "This field represents the city where the site is located.",
            "example": "CHGO"
          }
        },
        "required": [
          "street",
          "state",
          "postalCode",
          "city"
        ]
      },
      "addSiteResponse": {
        "type": "object",
        "properties": {
          "quoteMemberId": {
            "type": "string",
            "description": "This field represents the quote member Id.",
            "example": "a7lKf000000lO3bIAE"
          },
          "validationStatus": {
            "type": "string",
            "description": "This field represents validation status.",
            "example": "Valid"
          }
        }
      },
      "addConfigRequest": {
        "type": "object",
        "properties": {
          "configDiscountPromoRequest": {
            "type": "object",
            "properties": {
              "flowName": {
                "type": "string",
                "description": "This field represents the name of the flow.",
                "example": "sendconfigDiscountPromoDetails"
              },
              "id": {
                "type": "string",
                "description": "Identifier for the request.",
                "example": "1234"
              },
              "pricingInputs": {
                "type": "array",
                "description": "This field is an array of inputs for pricing like site Id, productId and configuration details.",
                "items": {
                  "$ref": "#/components/schemas/pricingInput"
                }
              },
              "quoteId": {
                "type": "string",
                "description": "This field represents the quoteId.",
                "example": "0Q0dx000002UEnZCAW"
              }
            },
            "required": [
              "pricingInputs",
              "quoteId"
            ]
          }
        },
        "required": [
          "configDiscountPromoRequest"
        ]
      },
      "pricingInput": {
        "type": "object",
        "properties": {
          "siteId": {
            "type": "string",
            "description": "This field represents the site Id.",
            "example": "a7ldx000000o0pdAAA"
          },
          "productId": {
            "type": "string",
            "description": "This field represents the product Id.",
            "example": "OFF_ADI_MID_MARKET"
          },
          "configuration": {
            "$ref": "#/components/schemas/configuration"
          }
        },
        "required": [
          "siteId",
          "productId",
          "configuration"
        ]
      },
      "configuration": {
        "type": "object",
        "properties": {
          "configId": {
            "type": "string",
            "description": "This field represents the config Id.",
            "example": "jrjfjf"
          },
          "features": {
            "type": "array",
            "description": "This field represents the features of the configuration.",
            "items": {
              "$ref": "#/components/schemas/configFeature"
            }
          }
        },
        "required": [
          "configId",
          "features"
        ]
      },
      "configFeature": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string",
            "description": "This field represents the name of the configuration feature.",
            "example": "Architecture"
          },
          "value": {
            "type": "string",
            "description": "This field represents the value of the configuration feature.",
            "example": "Switched"
          }
        },
        "required": [
          "name",
          "value"
        ]
      },
      "addConfigResponse": {
        "type": "object",
        "properties": {
          "priceResponse": {
            "type": "object",
            "properties": {
              "flowName": {
                "type": "string",
                "description": "This field represents the name of the flow.",
                "example": "sendconfigDiscountPromoDetails"
              },
              "pricingInputs": {
                "type": "object",
                "properties": {
                  "productId": {
                    "type": "string",
                    "description": "This field represents the product Id.",
                    "example": "OFF_ADI_MID_MARKET"
                  },
                  "pricing": {
                    "type": "object",
                    "properties": {
                      "pricingParts": {
                        "type": "array",
                        "items": {
                          "$ref": "#/components/schemas/pricingPart"
                        }
                      }
                    }
                  }
                }
              },
              "quoteId": {
                "type": "string",
                "description": "This field represents the quoteId.",
                "example": "0Q0dx000002FMzyCAG"
              }
            }
          }
        }
      },
      "pricingPart": {
        "type": "object",
        "properties": {
          "appliedDiscount": {
            "type": "number",
            "description": "This field represents the applied discount information for the given input.",
            "example": 90
          },
          "baseMRC": {
            "type": "number",
            "description": "This field represents the base MRC information for the given input.",
            "example": 4505
          },
          "baseNRC": {
            "type": "number",
            "description": "This field represents the base NRC information for the given input.",
            "example": 0
          },
          "maxDiscount": {
            "type": "number",
            "description": "This field represents the max discount information for the given input.",
            "example": 90
          },
          "minDiscount": {
            "type": "number",
            "description": "This field represents the min discount information for the given input.",
            "example": 40
          },
          "mrc": {
            "type": "number",
            "description": "This field represents the MRC information for the given input.",
            "example": 4505
          },
          "name": {
            "type": "string",
            "description": "This field represents the Name information for the given input.",
            "example": "Port"
          },
          "nrc": {
            "type": "number",
            "description": "This field represents the NRC information for the given input.",
            "example": 0
          },
          "quoteLineItems": {
            "type": "string",
            "description": "This field represents the Quote Line Items information for the given input.",
            "example": "0QLdx000002f3C7GAI"
          },
          "totalMRC": {
            "type": "number",
            "description": "This field represents the total MRC information for the given input.",
            "example": 4505
          },
          "totalNRC": {
            "type": "number",
            "description": "This field represents the total NRC information for the given input.",
            "example": 0
          },
          "value": {
            "type": "string",
            "description": "This field represents the value information for the given input.",
            "example": "PRD_PORT_MM"
          }
        }
      }
    }
  }
}