{
  "info": {
    "title": "Prepay Balance Management",
    "version": "4.0.0",
    "description": "## TMF API Reference: TMF654 - Prepay Balance Management\n\nThe Prepay Balance Management API enables consumers to manage the balance, recharge (top-up), transfer, reserve, unreserve, deduct and balance adjustments of a  bucket. A bucket is understood in the context of this API to be an entity that keeps track of the balance available to use services. Every bucket will measure balance in different units, it can be monetary or non-monetary (e.g. number of sms that are available, number of GB of data available, ‚Äö√Ñ√∂‚àö√ë¬¨‚àÇ)\n\n### Resources\n- TopupBalance\n- AdjustBalance\n- Bucket\n\n### Operations\n- Retrieve information about all the top-up operations stored in the server filtered by some criteria.\n- Perform a new top up operation (recharge)\n- Retrieve detailed information about a top-up operation previously processed by the server.\n- Retrieve the current and historic status information about a top-up operation previously processed by the server.\n- Perform a new transfer operation\n- Retrieve information about all the transfer operations stored in the server filtered by some criteria\n- Retrieve detailed information about a transfer operation previously processed by the server\n- Retrieve the current and historic status information about a transfer operation previously processed by the server.\n- Retrieve information about all the adjustments stored in the server filtered by some criteria.\n- Perform a new adjustment operation"
  },
  "tags": [
    {
      "name": "topupBalance"
    },
    {
      "name": "adjustBalance"
    },
    {
      "name": "healthCheck"
    },
    {
      "name": "bucket"
    }
  ],
  "paths": {
    "/bucket": {
      "get": {
        "tags": [
          "bucket"
        ],
        "summary": "Retrieve Bucket Details",
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "items": {
                    "x-amf-union": [
                      {
                        "$ref": "#/components/schemas/ServiceBucketResponse"
                      },
                      {
                        "$ref": "#/components/schemas/MoneyBucketResponse"
                      }
                    ]
                  },
                  "example": {
                    "value": [
                      {
                        "id": "9992220006",
                        "href": "/bucket/9992220006?@type=ResellerMobileLineMoneyBucket",
                        "description": "bucket for monetary balance and basic subscription information",
                        "name": "Money Bucket",
                        "logicalResource": [
                          {
                            "id": "9992220006",
                            "@type": "MSISDN",
                            "value": "9992220006"
                          }
                        ],
                        "accountInformation": {
                          "accountNumber": "123456789007",
                          "market": "GAC",
                          "submarket": "706",
                          "accountType": "reseller",
                          "activationDate": "2024-03-12T00:00:00.00Z",
                          "airtimeExpirationDate": "2024-03-14T00:00:00.00Z",
                          "serviceCancelDate": "2024-05-13T00:00:00.00Z",
                          "subscriptionStatus": "available"
                        },
                        "remainingValue": {
                          "quantity": 40,
                          "units": "USD"
                        },
                        "ratePlanInformation": {
                          "ratePlanCode": "TST01",
                          "ratePlanStatus": "active",
                          "ratePlanExpirationDate": "2024-03-14T00:00:00.00Z"
                        },
                        "activeFeatures": [
                          "CFC",
                          "CFI",
                          "CH",
                          "CLI",
                          "CW"
                        ],
                        "autoRenewInformation": {
                          "autoRenewStatus": "enrolled",
                          "autoRenewExecutionDate": "2024-12-04T00:00:00.00Z"
                        },
                        "@type": "ResellerMobileLineMoneyBucket"
                      },
                      {
                        "id": "ADD_INT_ROAM_VOICE_NA_30D-9992220006",
                        "href": "/bucket/ADD_INT_ROAM_VOICE_NA_30D-9992220006?@type=ResellerMobileLineServiceBucket",
                        "description": "bucket for service balance information",
                        "remainingValue": {
                          "quantity": 20,
                          "units": "SECONDS"
                        },
                        "totalQuantity": {
                          "quantity": 2199023254528,
                          "units": "SECONDS"
                        },
                        "name": "ADD_INT_ROAM_VOICE_NA_30D",
                        "serviceCode": "RATEPLAN_ADD_LIMITED_SERVICE",
                        "refillAmount": {
                          "quantity": -1,
                          "units": "SECONDS"
                        },
                        "serviceExpirationDate": "2024-05-13T00:00:00.00Z",
                        "logicalResource": [
                          {
                            "id": "9992220006",
                            "@type": "MSISDN",
                            "value": "9992220006"
                          }
                        ],
                        "@type": "ResellerMobileLineServiceBucket"
                      }
                    ]
                  }
                }
              }
            },
            "description": "Success",
            "x-amf-mediaType": "application/json;charset=utf-8"
          }
        },
        "parameters": [
          {
            "name": "@type",
            "description": "Type of bucket",
            "required": true,
            "in": "query",
            "style": "form",
            "explode": false,
            "schema": {
              "type": "array",
              "items": {
                "$ref": "#/components/schemas/BucketType"
              },
              "minItems": 1,
              "maxItems": 2
            }
          },
          {
            "name": "logicalResource.value",
            "description": "The MSISDN number",
            "required": true,
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "logicalResource.@type",
            "description": "The type of the logical resource",
            "required": true,
            "in": "query",
            "schema": {
              "type": "string",
              "enum": [
                "MSISDN"
              ]
            }
          }
        ],
        "x-page-slug": "654-get-bucket",
        "operationId": "bucket",
        "description": "For a given logical resource (MSISDN), it retrieve a list of either service bucket/s, money bucket/s or both. (TMF 654)\n"
      }
    },
    "/healthz": {
      "get": {
        "tags": [
          "healthCheck"
        ],
        "summary": "Check if application is up and running",
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HealthCheck"
                }
              }
            },
            "description": "Success",
            "x-amf-mediaType": "application/json;charset=utf-8"
          }
        },
        "x-page-slug": "654-get-health",
        "operationId": "healthCheck",
        "description": "Check if application is up and running "
      }
    },
    "/topupBalance": {
      "post": {
        "summary": "Create Topup Balance",
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/TopupBalanceResponse_Create"
                }
              }
            },
            "description": "Success",
            "x-amf-mediaType": "application/json;charset=utf-8"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Bad Request",
            "x-amf-mediaType": "application/json;charset=utf-8"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Unauthorized",
            "x-amf-mediaType": "application/json;charset=utf-8"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Forbidden",
            "x-amf-mediaType": "application/json;charset=utf-8"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Not Found",
            "x-amf-mediaType": "application/json;charset=utf-8"
          },
          "405": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Method Not allowed",
            "x-amf-mediaType": "application/json;charset=utf-8"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Conflict",
            "x-amf-mediaType": "application/json;charset=utf-8"
          },
          "500": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Internal Server Error",
            "x-amf-mediaType": "application/json;charset=utf-8"
          },
          "503": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Error communicating with JWKS server.",
            "x-amf-mediaType": "application/json"
          }
        },
        "parameters": [
          {
            "name": "@type",
            "description": "Type of bucket",
            "required": true,
            "in": "query",
            "schema": {
              "type": "string",
              "enum": [
                "ResellerMobileLinePayment"
              ]
            }
          },
          {
            "name": "Authorization",
            "description": "JWT Bearer Token. Token URL: https://login.microsoftonline.com/xxxxxxxxxx/oauth2/v2.0/token \r\n\r\n  See example below.\r\n\r\n\ncurl --location --request POST 'https://login.microsoftonline.com/xxxxxxxxxx/oauth2/v2.0/token'  \r\n  --header 'Content-Type: application/x-www-form-urlencoded'  \r\n  --header 'Cookie: fpc=xxxxxxxxxx; stsservicecookie=estsfd; x-ms-gateway-slice=estsfd'  \r\n  --data-urlencode 'scope=api://testHarnessCustomersStage1/.default'  \r\n  --data-urlencode 'grant_type=client_credentials'  \r\n  --data-urlencode 'client_id=xxxxxxxxxx'  \r\n  --data-urlencode 'client_secret=xxxxxxxxxx' \r\n\r\n  Note: client id/secret are not the right ones - contact API provider, via 'Request Access' button to get the correct on",
            "required": true,
            "in": "header",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "Content-Length",
            "description": "Matches the count of bytes in the request body so the server can know whether it has read the correct number of bytes.",
            "required": false,
            "in": "header",
            "schema": {
              "type": "integer",
              "default": 0
            }
          },
          {
            "name": "Accept",
            "description": "Specifies the media type as \"application/json\".",
            "required": true,
            "in": "header",
            "schema": {
              "type": "string",
              "default": "application/json"
            }
          },
          {
            "name": "X-ATT-ConversationId",
            "description": "32 hexadecimal characters grouped as 8-4-4-4-12 and separated by four hyphens (XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX) for a total length of 36 characters.",
            "required": true,
            "in": "header",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "X-ATT-CorrelationId",
            "description": "32 hexadecimal characters grouped as 8-4-4-4-12 and separated by four hyphens (XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX) for a total length of 36 characters.",
            "required": false,
            "in": "header",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "X-ATT-ClientId",
            "description": "ID derived from the JSON Web Token which represents the ClientId of the API Consumer who initiated the call flow at the Mule Gateway. This is used by downstream APIs to log data about the entity which initiated the call flow.",
            "required": false,
            "in": "header",
            "schema": {
              "type": "string"
            }
          }
        ],
        "x-page-slug": "654-post-topupBalance",
        "operationId": "createTopupBalance",
        "description": "This operation creates a TopupBalance entity. (TMF 654)",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/TopupBalance_Create"
              }
            }
          },
          "x-amf-mediaType": "application/json;charset=utf-8"
        }
      }
    },
    "/adjustBalance": {
      "post": {
        "summary": "Adjust Balance",
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "x-amf-union": [
                    {
                      "$ref": "#/components/schemas/AdjustBalance_Response"
                    },
                    {
                      "$ref": "#/components/schemas/AdjustBalance_Service_Response"
                    }
                  ],
                  "example": {
                    "CreateAdjustmentResponse": {
                      "value": {
                        "@type": "ResellerMobileLineAdjustment",
                        "amount": {
                          "units": "USD",
                          "amount": 10
                        },
                        "status": "confirmed",
                        "usageType": "monetary",
                        "adjustType": "credit",
                        "impactedBucket": [
                          {
                            "amountAfter": {
                              "amount": 40,
                              "units": "USD"
                            },
                            "item": []
                          }
                        ],
                        "logicalResource": {
                          "id": "9992220006",
                          "@type": "MSISDN",
                          "value": "9992220006"
                        },
                        "adjustmenttypecode": "960"
                      }
                    },
                    "CreateServiceAdjustmentResponse": {
                      "value": {
                        "@type": "ResellerMobileLineServiceAdjustment",
                        "amount": {
                          "units": "minutes",
                          "amount": 0
                        },
                        "status": "confirmed",
                        "usageType": "text",
                        "adjustType": "SET_REFILLAMOUNT",
                        "servicetype": "DYN_DOM_VOICE",
                        "logicalResource": {
                          "id": "9992220006",
                          "@type": "MSISDN",
                          "value": "9992220006"
                        }
                      }
                    }
                  }
                }
              }
            },
            "description": "Success",
            "x-amf-mediaType": "application/json;charset=utf-8"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Bad Request",
            "x-amf-mediaType": "application/json;charset=utf-8"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Unauthorized",
            "x-amf-mediaType": "application/json;charset=utf-8"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Forbidden",
            "x-amf-mediaType": "application/json;charset=utf-8"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Not Found",
            "x-amf-mediaType": "application/json;charset=utf-8"
          },
          "405": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Method Not allowed",
            "x-amf-mediaType": "application/json;charset=utf-8"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Conflict",
            "x-amf-mediaType": "application/json;charset=utf-8"
          },
          "500": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Internal Server Error",
            "x-amf-mediaType": "application/json;charset=utf-8"
          },
          "503": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Error communicating with JWKS server.",
            "x-amf-mediaType": "application/json"
          }
        },
        "parameters": [
          {
            "name": "Authorization",
            "description": "JWT Bearer Token. Token URL: https://login.microsoftonline.com/xxxxxxxxxx/oauth2/v2.0/token \r\n\r\n  See example below.\r\n\r\n\ncurl --location --request POST 'https://login.microsoftonline.com/xxxxxxxxxx/oauth2/v2.0/token'  \r\n  --header 'Content-Type: application/x-www-form-urlencoded'  \r\n  --header 'Cookie: fpc=xxxxxxxxxx; stsservicecookie=estsfd; x-ms-gateway-slice=estsfd'  \r\n  --data-urlencode 'scope=api://testHarnessCustomersStage1/.default'  \r\n  --data-urlencode 'grant_type=client_credentials'  \r\n  --data-urlencode 'client_id=xxxxxxxxxx'  \r\n  --data-urlencode 'client_secret=xxxxxxxxxx' \r\n\r\n  Note: client id/secret are not the right ones - contact API provider, via 'Request Access' button to get the correct on",
            "required": true,
            "in": "header",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "Content-Length",
            "description": "Matches the count of bytes in the request body so the server can know whether it has read the correct number of bytes.",
            "required": false,
            "in": "header",
            "schema": {
              "type": "integer",
              "default": 0
            }
          },
          {
            "name": "Accept",
            "description": "Specifies the media type as \"application/json\".",
            "required": true,
            "in": "header",
            "schema": {
              "type": "string",
              "default": "application/json"
            }
          },
          {
            "name": "X-ATT-ConversationId",
            "description": "32 hexadecimal characters grouped as 8-4-4-4-12 and separated by four hyphens (XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX) for a total length of 36 characters.",
            "required": true,
            "in": "header",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "X-ATT-CorrelationId",
            "description": "32 hexadecimal characters grouped as 8-4-4-4-12 and separated by four hyphens (XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX) for a total length of 36 characters.",
            "required": false,
            "in": "header",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "X-ATT-ClientId",
            "description": "ID derived from the JSON Web Token which represents the ClientId of the API Consumer who initiated the call flow at the Mule Gateway. This is used by downstream APIs to log data about the entity which initiated the call flow.",
            "required": false,
            "in": "header",
            "schema": {
              "type": "string"
            }
          }
        ],
        "x-page-slug": "654-post-adjustBalance",
        "operationId": "createAdjustBalance",
        "description": "This operation creates an AdjustBalance entity. (TMF 654)",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "x-amf-union": [
                  {
                    "$ref": "#/components/schemas/AdjustBalance_Create"
                  },
                  {
                    "$ref": "#/components/schemas/AdjustBalance_Service_Create"
                  }
                ],
                "example": {
                  "CreateAdjustmentRequest": {
                    "value": {
                      "@type": "ResellerMobileLineAdjustment",
                      "amount": {
                        "units": "USD",
                        "amount": 10
                      },
                      "usageType": "monetary",
                      "adjustType": "ADD",
                      "logicalResource": {
                        "id": "9992220006",
                        "@type": "MSISDN",
                        "value": "9992220006"
                      },
                      "adjustmenttypecode": "960"
                    }
                  },
                  "CreateServiceAdjustmentRequest": {
                    "value": {
                      "@type": "ResellerMobileLineServiceAdjustment",
                      "amount": {
                        "units": "minutes",
                        "amount": 0
                      },
                      "usageType": "text",
                      "adjustType": "SET_REFILLAMOUNT",
                      "servicetype": "DYN_DOM_VOICE",
                      "logicalResource": {
                        "id": "9992220006",
                        "@type": "MSISDN",
                        "value": "9992220006"
                      }
                    }
                  }
                }
              }
            }
          },
          "x-amf-mediaType": "application/json;charset=utf-8"
        }
      }
    },
    "/adjustBalance/batch": {
      "post": {
        "summary": "Batch Adjust Balance",
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "items": {
                    "$ref": "#/components/schemas/AdjustBalance_Service_Response"
                  },
                  "example": {
                    "value": [
                      {
                        "amount": {
                          "amount": 0,
                          "units": "minutes"
                        },
                        "adjustType": "SET_REFILLAMOUNT",
                        "servicetype": "DYN_DOM_VOICE",
                        "logicalResource": {
                          "id": "9992220006",
                          "@type": "MSISDN",
                          "value": "9992220006"
                        },
                        "usageType": "text",
                        "status": "confirmed",
                        "@type": "ResellerMobileLineServiceAdjustment"
                      }
                    ]
                  },
                  "maxItems": 20
                }
              }
            },
            "description": "Success",
            "x-amf-mediaType": "application/json;charset=utf-8"
          }
        },
        "parameters": [
          {
            "name": "@type",
            "required": true,
            "in": "query",
            "schema": {
              "type": "string",
              "enum": [
                "ResellerMobileLineServiceAdjustment"
              ]
            }
          }
        ],
        "x-page-slug": "654-post-adjustBalanceBatch",
        "operationId": "batchAdjustBalance",
        "description": "This operation does a batch update of multiple AdjustBalance entities. (TMF 654)",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "items": {
                  "$ref": "#/components/schemas/AdjustBalance_Service_Create"
                },
                "example": {
                  "value": [
                    {
                      "amount": {
                        "amount": 0,
                        "units": "minutes"
                      },
                      "adjustType": "SET_REFILLAMOUNT",
                      "servicetype": "DYN_DOM_VOICE",
                      "logicalResource": {
                        "id": "9992220006",
                        "@type": "MSISDN",
                        "value": "9992220006"
                      },
                      "usageType": "text",
                      "@type": "ResellerMobileLineServiceAdjustment"
                    }
                  ]
                },
                "maxItems": 20
              }
            }
          },
          "x-amf-mediaType": "application/json;charset=utf-8"
        }
      }
    },
    "/topupBalance/{msisdn}": {
      "patch": {
        "summary": "Partially Update a Topup Balance",
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "x-amf-union": [
                    {
                      "$ref": "#/components/schemas/TopupBalanceResponse_Update"
                    },
                    {
                      "$ref": "#/components/schemas/TopupBalanceResponse_Update_WithAutoTopup"
                    },
                    {
                      "$ref": "#/components/schemas/TopupBalanceResponse_Update_Combined"
                    }
                  ],
                  "example": {
                    "TopupBalanceResponse_Update": {
                      "value": {
                        "id": "0000000000000000",
                        "@type": "ResellerMobileLineAutoTopup",
                        "status": "confirmed",
                        "logicalResource": {
                          "id": "9992220006",
                          "@type": "MSISDN",
                          "value": "9992220006"
                        },
                        "airtimeexpiration": "2024-03-14T00:00:00.00Z"
                      }
                    },
                    "TopupBalanceResponse_Update_Combined": {
                      "value": {
                        "id": "0000000000000000",
                        "@type": "ResellerMobileLineAutoTopup",
                        "status": "confirmed",
                        "isAutoTopup": true,
                        "logicalResource": {
                          "id": "9992220006",
                          "@type": "MSISDN",
                          "value": "9992220006"
                        },
                        "airtimeexpiration": "2024-03-14T00:00:00.00Z",
                        "autoRenewExecutionDate": "2024-03-14T00:00:00.00Z"
                      }
                    },
                    "TopupBalanceResponse_Update_WithAutoTopup": {
                      "value": {
                        "id": "0000000000000000",
                        "@type": "ResellerMobileLineAutoTopup",
                        "status": "confirmed",
                        "isAutoTopup": true,
                        "logicalResource": {
                          "id": "9992220006",
                          "@type": "MSISDN",
                          "value": "9992220006"
                        },
                        "autoRenewExecutionDate": "2024-03-14T00:00:00.00Z"
                      }
                    }
                  }
                }
              }
            },
            "description": "Success",
            "x-amf-mediaType": "application/json;charset=utf-8"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Bad Request",
            "x-amf-mediaType": "application/json;charset=utf-8"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Unauthorized",
            "x-amf-mediaType": "application/json;charset=utf-8"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Forbidden",
            "x-amf-mediaType": "application/json;charset=utf-8"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Not Found",
            "x-amf-mediaType": "application/json;charset=utf-8"
          },
          "405": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Method Not allowed",
            "x-amf-mediaType": "application/json;charset=utf-8"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Conflict",
            "x-amf-mediaType": "application/json;charset=utf-8"
          },
          "500": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Internal Server Error",
            "x-amf-mediaType": "application/json;charset=utf-8"
          },
          "503": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Error communicating with JWKS server.",
            "x-amf-mediaType": "application/json"
          }
        },
        "parameters": [
          {
            "name": "@type",
            "description": "Type of bucket",
            "required": true,
            "in": "query",
            "schema": {
              "type": "string",
              "enum": [
                "ResellerMobileLineAutoTopup"
              ]
            }
          },
          {
            "name": "msisdn",
            "required": true,
            "in": "path",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "X-ATT-CorrelationId",
            "description": "32 hexadecimal characters grouped as 8-4-4-4-12 and separated by four hyphens (XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX) for a total length of 36 characters.",
            "required": false,
            "in": "header",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "Content-Length",
            "description": "Matches the count of bytes in the request body so the server can know whether it has read the correct number of bytes.",
            "required": false,
            "in": "header",
            "schema": {
              "type": "integer",
              "default": 0
            }
          },
          {
            "name": "X-ATT-ConversationId",
            "description": "32 hexadecimal characters grouped as 8-4-4-4-12 and separated by four hyphens (XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX) for a total length of 36 characters.",
            "required": true,
            "in": "header",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "Accept",
            "description": "Specifies the media type as \"application/json\".",
            "required": true,
            "in": "header",
            "schema": {
              "type": "string",
              "default": "application/json"
            }
          },
          {
            "name": "X-ATT-ClientId",
            "description": "ID derived from the JSON Web Token which represents the ClientId of the API Consumer who initiated the call flow at the Mule Gateway. This is used by downstream APIs to log data about the entity which initiated the call flow.",
            "required": false,
            "in": "header",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "Authorization",
            "description": "JWT Bearer Token. Token URL: https://login.microsoftonline.com/xxxxxxxxxxxxx/oauth2/v2.0/token \r\n\r\n  See example below.\r\n\r\n\ncurl --location --request POST 'https://login.microsoftonline.com/xxxxxxxxxxxxxx/oauth2/v2.0/token'  \r\n  --header 'Content-Type: application/x-www-form-urlencoded'  \r\n  --header 'Cookie: fpc=xxxxxxxxxx; stsservicecookie=estsfd; x-ms-gateway-slice=estsfd'  \r\n  --data-urlencode 'scope=api://testHarnessCustomersStage1/.default'  \r\n  --data-urlencode 'grant_type=client_credentials'  \r\n  --data-urlencode 'client_id=xxxxxxxx'  \r\n  --data-urlencode 'client_secret=xxxxxxxx' \r\n\r\n  Note: client id/secret are not the right ones - contact API provider, via 'Request Access' button to get the correct on",
            "required": true,
            "in": "header",
            "schema": {
              "type": "string"
            }
          }
        ],
        "x-page-slug": "654-patch-topupBalanceMsisdn",
        "operationId": "patchTopupBalance",
        "description": "This operation partially updates a TopupBalance entity. (TMF 654)",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "x-amf-union": [
                  {
                    "$ref": "#/components/schemas/TopupBalance_Update"
                  },
                  {
                    "$ref": "#/components/schemas/TopupBalance_Update_WithAutoTopup"
                  },
                  {
                    "$ref": "#/components/schemas/TopupBalance_Update_Combined"
                  }
                ],
                "example": {
                  "TopupBalance_Update": {
                    "airtimeexpiration": "2024-03-14T00:00:00.00Z"
                  },
                  "TopupBalance_Update_Combined": {
                    "isAutoTopup": true,
                    "airtimeexpiration": "2024-03-14T00:00:00.00Z",
                    "autoRenewExecutionDate": "2024-03-14T00:00:00.00Z"
                  },
                  "TopupBalance_Update_WithAutoTopup": {
                    "isAutoTopup": true,
                    "autoRenewExecutionDate": "2024-03-14T00:00:00.00Z"
                  }
                }
              }
            }
          },
          "x-amf-mediaType": "application/json"
        }
      }
    }
  },
  "openapi": "3.0.0",
  "servers": [
    {
      "url": "https://serverRoot/tmf-api/prepayBalanceManagement/v4"
    }
  ],
  "components": {
    "schemas": {
      "type": {
        "type": "object",
        "required": [
          "quantity",
          "units"
        ],
        "properties": {
          "units": {
            "type": "string"
          },
          "quantity": {
            "type": "number"
          }
        },
        "description": "RemainingValue"
      },
      "Error": {
        "type": "object",
        "required": [
          "code",
          "reason"
        ],
        "properties": {
          "code": {
            "type": "string",
            "description": "Application relevant detail, defined in the API or a common list."
          },
          "@type": {
            "type": "string",
            "description": "When sub-classing, this defines the sub-class entity name."
          },
          "reason": {
            "type": "string",
            "description": "Explanation of the reason for the error which can be shown to a client user."
          },
          "status": {
            "type": "string",
            "description": "HTTP Error code extension"
          },
          "message": {
            "type": "string",
            "description": "More details and corrective actions related to the error which can be shown to a client user."
          },
          "@baseType": {
            "type": "string",
            "description": "When sub-classing, this defines the super-class."
          },
          "referenceError": {
            "type": "string",
            "description": "URI of documentation describing the error."
          },
          "@schemaLocation": {
            "type": "string",
            "description": "A URI to a JSON-Schema file that defines additional attributes and relationships"
          }
        },
        "description": "Used when an API throws an Error, typically with a HTTP error response-code (3xx, 4xx, 5xx)",
        "x-amf-examples": {
          "example_2": {
            "code": "405",
            "reason": "Method Not Allowed",
            "status": "405-METHOD_NOT_ALLOWED-TMF654",
            "message": "This is an example error response for 405 Method Not Allowed",
            "@baseType": "Error",
            "referenceError": "405-METHOD_NOT_ALLOWED-TMF654",
            "@schemaLocation": "../../traits/Error.raml"
          },
          "example_1": {
            "code": "401",
            "reason": "Invalid Token",
            "status": "401-UNAUTHORIZED-TMF654",
            "message": "This is an example error response for 401 Unauthorized",
            "@baseType": "Error",
            "referenceError": "401-UNAUTHORIZED-TMF654",
            "@schemaLocation": "../../traits/Error.raml"
          },
          "example_0": {
            "code": "400",
            "reason": "Bad Request",
            "status": "400-BAD_REQUEST-TMF654",
            "message": "This is an example error response for 400 Bad Request",
            "@baseType": "Error",
            "referenceError": "400-BAD_REQUEST-TMF654",
            "@schemaLocation": "../../traits/Error.raml"
          },
          "example_3": {
            "code": "503",
            "reason": "Error communicating with JWKS server.",
            "status": "503-SERVICE_NOT_AVAILABLE-TMF654",
            "message": "This is an example error response for 503 Service Not Available",
            "@baseType": "Error",
            "referenceError": "503-SERVICE_NOT_AVAILABLE-TMF654",
            "@schemaLocation": "../../traits/Error.raml"
          },
          "amf_example_1": {
            "code": "409",
            "reason": "Conflict",
            "status": "409-CONFLICT-TMF654",
            "message": "This is an example error response for 409 Conflict",
            "@baseType": "Error",
            "referenceError": "409-CONFLICT-TMF654",
            "@schemaLocation": "../../traits/Error.raml"
          },
          "amf_example_2": {
            "code": "403",
            "reason": "Forbidden",
            "status": "403-FORBIDDEN-TMF654",
            "message": "This is an example error response for 403 Forbidden",
            "@baseType": "Error",
            "referenceError": "403-FORBIDDEN-TMF654",
            "@schemaLocation": "../../traits/Error.raml"
          },
          "amf_example_4": {
            "code": "500",
            "reason": "Internal Server Error",
            "status": "500-INTERNAL_SERVER_ERROR-TMF654",
            "message": "This is an example error response for 500 Internal Server Error",
            "@baseType": "Error",
            "referenceError": "500-INTERNAL_SERVER_ERROR-TMF654",
            "@schemaLocation": "../../traits/Error.raml"
          },
          "amf_example_3": {
            "code": "404",
            "reason": "Not Found",
            "status": "404-NOT_FOUND-TMF654",
            "message": "This is an example error response for 404 Not Found",
            "@baseType": "Error",
            "referenceError": "404-NOT_FOUND-TMF654",
            "@schemaLocation": "../../traits/Error.raml"
          }
        }
      },
      "items": {
        "type": "object",
        "required": [
          "@type",
          "value"
        ],
        "properties": {
          "id?": {
            "type": "string",
            "description": "unique identifier"
          },
          "@type": {
            "type": "object",
            "example": {
              "value": "MSISDN",
              "strict": true
            },
            "pattern": "^MSISDN$"
          },
          "value": {
            "type": "string"
          }
        },
        "description": "MSISDN is the mobile number of the subscriber."
      },
      "type_1": {
        "type": "object",
        "required": [
          "quantity",
          "units"
        ],
        "properties": {
          "units": {
            "type": "string"
          },
          "quantity": {
            "type": "number"
          }
        },
        "description": "TotalQuantity"
      },
      "type_2": {
        "type": "object",
        "required": [
          "quantity",
          "units"
        ],
        "properties": {
          "units": {
            "type": "string"
          },
          "quantity": {
            "type": "number"
          }
        },
        "description": "RefillAmount"
      },
      "type_3": {
        "type": "object",
        "required": [
          "accountNumber",
          "market",
          "submarket",
          "accountType",
          "activationDate",
          "airtimeExpirationDate",
          "serviceCancelDate",
          "subscriptionStatus"
        ],
        "properties": {
          "market": {
            "type": "string"
          },
          "submarket": {
            "type": "string"
          },
          "accountType": {
            "type": "string"
          },
          "accountNumber": {
            "type": "string"
          },
          "activationDate": {
            "type": "string",
            "format": "date-time"
          },
          "serviceCancelDate": {
            "type": "string",
            "format": "date-time"
          },
          "subscriptionStatus": {
            "type": "string"
          },
          "airtimeExpirationDate": {
            "type": "string",
            "format": "date-time"
          }
        },
        "description": "AccountInformation"
      },
      "type_4": {
        "type": "object",
        "required": [
          "ratePlanCode",
          "ratePlanStatus",
          "ratePlanExpirationDate"
        ],
        "properties": {
          "ratePlanCode": {
            "type": "string"
          },
          "ratePlanStatus": {
            "type": "string"
          },
          "ratePlanExpirationDate": {
            "type": "string",
            "format": "date-time"
          }
        },
        "description": "RatePlanInformation"
      },
      "type_5": {
        "type": "object",
        "required": [
          "autoRenewStatus",
          "autoRenewExecutionDate"
        ],
        "properties": {
          "autoRenewStatus": {
            "type": "string"
          },
          "autoRenewExecutionDate": {
            "type": "string",
            "format": "date-time"
          }
        },
        "description": "AutoRenewInformation"
      },
      "type_6": {
        "type": "object",
        "required": [
          "amount",
          "units"
        ],
        "properties": {
          "units": {
            "type": "string"
          },
          "amount": {
            "type": "number"
          }
        }
      },
      "type_7": {
        "type": "object",
        "required": [
          "@type",
          "value"
        ],
        "properties": {
          "id": {
            "type": "string"
          },
          "@type": {
            "type": "object",
            "example": {
              "value": "MSISDN",
              "strict": true
            },
            "pattern": "^MSISDN$"
          },
          "value": {
            "type": "string"
          }
        },
        "description": "MSISDN is the mobile number of the subscriber."
      },
      "type_9": {
        "type": "object",
        "required": [
          "@type",
          "value"
        ],
        "properties": {
          "id": {
            "type": "string"
          },
          "@type": {
            "type": "object",
            "example": {
              "value": "MSISDN",
              "strict": true
            },
            "pattern": "^MSISDN$"
          },
          "value": {
            "type": "string"
          }
        },
        "description": "MSISDN is the mobile number of the subscriber.",
        "x-amf-merge": [
          {
            "$ref": "#/components/schemas/type_7"
          }
        ]
      },
      "items_8": {
        "type": "object",
        "required": [
          "name",
          "amountAfter"
        ],
        "properties": {
          "name": {
            "type": "string"
          },
          "amountAfter": {
            "$ref": "#/components/schemas/type_13"
          }
        }
      },
      "type_11": {
        "enum": [
          "2100",
          "2101",
          "2102",
          "2103",
          "2104",
          "2105",
          "2106",
          "2107"
        ],
        "type": "string",
        "description": "The Service Action Result Code indicates the result code of the service update. The possible values are specified in the following table. Do not retry the transaction."
      },
      "type_13": {
        "type": "object",
        "required": [
          "amount",
          "units"
        ],
        "properties": {
          "units": {
            "type": "string"
          },
          "amount": {
            "type": "number"
          }
        }
      },
      "items_10": {
        "type": "object",
        "required": [
          "value",
          "@type"
        ],
        "properties": {
          "id": {
            "type": "string",
            "description": "unique identifier"
          },
          "id?": {
            "type": "string",
            "description": "unique identifier"
          },
          "href": {
            "type": "string",
            "description": "Hyperlink reference"
          },
          "name": {
            "type": "string",
            "description": "Name of the related entity."
          },
          "value": {
            "type": "string",
            "description": "The value of the logical resource."
          },
          "@type": {
            "type": "object",
            "example": {
              "value": "MSISDN",
              "strict": true
            },
            "pattern": "^MSISDN$",
            "description": "When sub-classing, this defines the sub-class Extensible name"
          },
          "@baseType": {
            "type": "object",
            "example": {
              "value": "LogicalResourceRef",
              "strict": true
            },
            "pattern": "^LogicalResourceRef$",
            "description": "When sub-classing, this defines the super-class"
          },
          "@referredType": {
            "type": "string",
            "description": "The actual type of the target instance when needed for disambiguation."
          },
          "@schemaLocation": {
            "type": "object",
            "example": {
              "value": "https://mycsp.com:8080/tmf-api/schema/Resource/LogicalResourceSpecification.schema.json",
              "strict": false
            },
            "description": "A URI to a JSON-Schema file that defines additional attributes and relationships"
          }
        },
        "description": "MSISDN is the mobile number of the subscriber."
      },
      "items_12": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string",
            "description": "Friendly name to identify the bucket."
          },
          "item": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/items_14"
            },
            "description": "A list of impacted bucket items (ImpactedBucketItem [1..*]). a resource used by the ImpactedBucket resource to capture the impact of an ImpactedBucket."
          },
          "@type": {
            "type": "object",
            "example": {
              "value": "LogicalResourceSpecification",
              "strict": false
            },
            "description": "When sub-classing, this defines the sub-class Extensible name"
          },
          "bucket": {
            "type": "object",
            "required": [
              "id"
            ],
            "properties": {
              "id": {
                "type": "string",
                "description": "unique identifier"
              },
              "href": {
                "type": "string",
                "description": "Hyperlink reference"
              },
              "name": {
                "type": "string",
                "description": "Name of the related entity."
              },
              "@type": {
                "type": "object",
                "example": {
                  "value": "LogicalResourceSpecification",
                  "strict": false
                },
                "description": "When sub-classing, this defines the sub-class Extensible name"
              },
              "@baseType": {
                "type": "object",
                "example": {
                  "value": "ResourceSpecification",
                  "strict": false
                },
                "description": "When sub-classing, this defines the super-class"
              },
              "@referredType": {
                "type": "string",
                "description": "The actual type of the target instance when needed for disambiguation."
              },
              "@schemaLocation": {
                "type": "object",
                "example": {
                  "value": "https://mycsp.com:8080/tmf-api/schema/Resource/LogicalResourceSpecification.schema.json",
                  "strict": false
                },
                "description": "A URI to a JSON-Schema file that defines additional attributes and relationships"
              }
            },
            "description": "A reference to the bucket impacted by the request or the value itself."
          },
          "@baseType": {
            "type": "object",
            "example": {
              "value": "ResourceSpecification",
              "strict": false
            },
            "description": "When sub-classing, this defines the super-class"
          },
          "description": {
            "type": "string",
            "description": "Text describing the contents of the balance managed by the bucket."
          },
          "amountAfter": {
            "type": "object",
            "properties": {
              "units": {
                "type": "string",
                "description": "Unit"
              },
              "@type": {
                "type": "string",
                "description": "When sub-classing, this defines the sub-class entity name"
              },
              "amount": {
                "type": "number",
                "format": "float",
                "default": 1,
                "description": "Numeric value in a given unit"
              },
              "@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"
              }
            },
            "description": "Indicates the amount after on the impacted bucket after the action has completed."
          },
          "amountBefore": {
            "type": "object",
            "properties": {
              "units": {
                "type": "string",
                "description": "Unit"
              },
              "@type": {
                "type": "string",
                "description": "When sub-classing, this defines the sub-class entity name"
              },
              "amount": {
                "type": "number",
                "format": "float",
                "default": 1,
                "description": "Numeric value in a given unit"
              },
              "@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"
              }
            },
            "description": "Indicates the amount remaining on the impacted bucket."
          },
          "requestedDate": {
            "type": "string",
            "format": "date-time",
            "description": "Date when the deduction request was received in the server"
          },
          "@schemaLocation": {
            "type": "object",
            "example": {
              "value": "https://mycsp.com:8080/tmf-api/schema/Resource/LogicalResourceSpecification.schema.json",
              "strict": false
            },
            "description": "A URI to a JSON-Schema file that defines additional attributes and relationships"
          },
          "confirmationDate": {
            "type": "string",
            "format": "date-time",
            "description": "Date when the deduction was confirmed in the server"
          }
        },
        "description": "A resource that references other buckets that have been impacted by the action of type TopupBalance,AdjustBalance,TransferBalance or ReserveBalance."
      },
      "items_14": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string",
            "description": "This represents the transaction activity. e.g. topup, bonus, additional bonus, tax, fees, and so on."
          },
          "@type": {
            "type": "object",
            "example": {
              "value": "LogicalResourceSpecification",
              "strict": false
            },
            "description": "When sub-classing, this defines the sub-class Extensible name"
          },
          "reason": {
            "type": "string",
            "description": "Text describing the reason for the action/task."
          },
          "amount": {
            "type": "object",
            "properties": {
              "units": {
                "type": "string",
                "description": "Unit"
              },
              "@type": {
                "type": "string",
                "description": "When sub-classing, this defines the sub-class entity name"
              },
              "amount": {
                "type": "number",
                "format": "float",
                "default": 1,
                "description": "Numeric value in a given unit"
              },
              "@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"
              }
            },
            "description": "Indicate the amount on the bucket."
          },
          "itemType": {
            "type": "string",
            "description": "This indicates whether the action led to the bucket being incremented or decremented.eg credit or debit."
          },
          "@baseType": {
            "type": "object",
            "example": {
              "value": "ResourceSpecification",
              "strict": false
            },
            "description": "When sub-classing, this defines the super-class"
          },
          "description": {
            "type": "string",
            "description": "Description of the recharge operation."
          },
          "@schemaLocation": {
            "type": "object",
            "example": {
              "value": "https://mycsp.com:8080/tmf-api/schema/Resource/LogicalResourceSpecification.schema.json",
              "strict": false
            },
            "description": "A URI to a JSON-Schema file that defines additional attributes and relationships"
          }
        },
        "description": "A resource used by the ImpactedBucket resource to capture the impact of an ImpactedBucket."
      },
      "BucketType": {
        "enum": [
          "ResellerMobileLineMoneyBucket",
          "ResellerMobileLineServiceBucket"
        ],
        "type": "string",
        "description": "Valid Bucket types"
      },
      "HealthCheck": {
        "type": "object",
        "title": "Health Check",
        "example": {
          "time": "2023-07-14T20:10:26.843-05:00",
          "message": "Application up and running",
          "application_name": "tmf654-prepayBalanceManagement"
        },
        "required": [
          "application_name",
          "message",
          "time"
        ],
        "properties": {
          "time": {
            "type": "string",
            "format": "date-time",
            "description": "Date the request was received by the server"
          },
          "message": {
            "type": "string",
            "description": "Status of the application"
          },
          "application_name": {
            "type": "string",
            "description": "Name of the application"
          }
        }
      },
      "MoneyBucketResponse": {
        "type": "object",
        "required": [
          "id",
          "href",
          "description",
          "name",
          "logicalResource",
          "accountInformation",
          "remainingValue",
          "ratePlanInformation",
          "activeFeatures",
          "autoRenewInformation",
          "@type"
        ],
        "properties": {
          "id": {
            "type": "string",
            "description": "unique identifier"
          },
          "href": {
            "type": "string",
            "description": "Hyperlink reference"
          },
          "name": {
            "type": "string",
            "description": "Name of the related entity."
          },
          "@type": {
            "type": "object",
            "example": {
              "value": "ResellerMobileLineMoneyBucket",
              "strict": true
            },
            "pattern": "^ResellerMobileLineMoneyBucket$"
          },
          "description": {
            "type": "string",
            "description": "description of the related entity."
          },
          "remainingValue": {
            "$ref": "#/components/schemas/type"
          },
          "activeFeatures": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "minItems": 1
          },
          "logicalResource": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/items"
            },
            "minItems": 1
          },
          "accountInformation": {
            "$ref": "#/components/schemas/type_3"
          },
          "ratePlanInformation": {
            "$ref": "#/components/schemas/type_4"
          },
          "autoRenewInformation": {
            "$ref": "#/components/schemas/type_5"
          }
        },
        "description": "Returns single money bucket with account, rateplan, and autorenew details"
      },
      "TopupBalance_Create": {
        "type": "object",
        "example": {
          "@type": "ResellerMobileLinePayment",
          "usageType": "monetary",
          "paymentTypeCode": "790",
          "logicalResource": {
            "@type": "MSISDN",
            "value": "9992220006"
          },
          "amount": {
            "units": "USD",
            "amount": 1
          },
          "value": {
            "@type": "ResellerMobileLinePayment",
            "amount": {
              "units": "USD",
              "amount": 1
            },
            "usageType": "monetary",
            "paymentTypeCode": "790",
            "logicalResource": {
              "@type": "MSISDN",
              "value": "9992220006"
            }
          }
        },
        "required": [
          "amount",
          "paymentTypeCode",
          "logicalResource",
          "usageType",
          "@type"
        ],
        "properties": {
          "@type": {
            "type": "object",
            "example": {
              "value": "ResellerMobileLinePayment",
              "strict": true
            },
            "pattern": "^ResellerMobileLinePayment$"
          },
          "amount": {
            "$ref": "#/components/schemas/type_6"
          },
          "usageType": {
            "type": "object",
            "example": {
              "value": "monetary",
              "strict": true
            },
            "pattern": "^monetary$",
            "description": ""
          },
          "paymentTypeCode": {
            "type": "string"
          },
          "logicalResource": {
            "$ref": "#/components/schemas/type_7"
          }
        },
        "description": "A Payment request adds money to the subscriber‚Äö√Ñ√∂‚àö√ë‚àö¬•s main account or subscriber‚Äö√Ñ√∂‚àö√ë‚àö¬•s bucket and MAY extend the subscriber‚Äö√Ñ√∂‚àö√ë‚àö¬•s airtime expiration date. TPSP Payment must be used to activate the subscriber‚Äö√Ñ√∂‚àö√ë‚àö¬•s lifecycle."
      },
      "TopupBalance_Update": {
        "type": "object",
        "required": [
          "airtimeexpiration"
        ],
        "properties": {
          "airtimeexpiration": {
            "type": "string",
            "format": "date-time"
          }
        }
      },
      "AdjustBalance_Create": {
        "type": "object",
        "required": [
          "adjustType",
          "usageType",
          "logicalResource",
          "amount",
          "@type",
          "adjustmenttypecode"
        ],
        "properties": {
          "@type": {
            "enum": [
              "ResellerMobileLineAdjustment"
            ],
            "type": "string"
          },
          "amount": {
            "type": "object",
            "properties": {
              "units": {
                "type": "string",
                "description": "Unit"
              },
              "@type": {
                "type": "object",
                "example": {
                  "value": "DetailedQuantity",
                  "strict": true
                },
                "pattern": "^DetailedQuantity$",
                "description": "When sub-classing, this defines the sub-class entity name"
              },
              "amount": {
                "type": "number",
                "format": "float",
                "default": 1,
                "description": "Numeric value in a given unit"
              },
              "@baseType": {
                "type": "object",
                "example": {
                  "value": "Quantity",
                  "strict": true
                },
                "pattern": "^Quantity$",
                "description": "When sub-classing, this defines the super-class"
              },
              "resultCode": {
                "$ref": "#/components/schemas/type_11"
              },
              "serviceType": {
                "enum": [
                  "VOICE",
                  "MESSAGE",
                  "DATA",
                  "DATALONGTERMHIGH",
                  "DATALONGTERMLOW",
                  "DOMESTICROAMINGDATATOPUP",
                  "ROAMDATATOPUP",
                  "Topup Data",
                  "DATAUSAGECOUNTERA",
                  "DATAUSAGECOUNTERB",
                  "DATAUSAGECOUNTERC",
                  "DOMESTICROAMINGDATA",
                  "HIGHDATA",
                  "International Roaming Data",
                  "LOWDATAA",
                  "LOWDATAB",
                  "LOWDATAC",
                  "TETHDATA",
                  "DOMESTICROAMINGMMS",
                  "International Roaming Messaging",
                  "International Roaming MMS",
                  "Intl MMS",
                  "Intl SMS",
                  "MMS",
                  "VOICESMS",
                  "VOICESMSTOPUP",
                  "International Roaming Voice",
                  "Intl VOICE",
                  "DOMESTICROAMINGSMS",
                  "DOMESTICROAMINGVOICE"
                ],
                "type": "string",
                "description": "A unique code representing the type of service being provided."
              },
              "paymentTypeCode": {
                "type": "string",
                "description": "The Payment Type Code is used to identify the purpose of the payment."
              },
              "@schemaLocation": {
                "type": "string",
                "description": "A URI to a JSON-Schema file that defines additional attributes and relationships"
              },
              "unitsDescription": {
                "type": "string",
                "description": "A string describing the units."
              }
            },
            "description": "Quantity is the payment amount specified in United States cents. For example, a $10.00 payment is specified as 1000."
          },
          "usageType": {
            "enum": [
              "monetary",
              "text"
            ],
            "type": "string"
          },
          "adjustType": {
            "type": "string"
          },
          "logicalResource": {
            "$ref": "#/components/schemas/items_10"
          },
          "adjustmenttypecode": {
            "type": "string"
          }
        },
        "description": "An Adjustment request either credits or debits a subscriber‚Äö√Ñ√∂‚àö√ë‚àö¬•s main account balance."
      },
      "ServiceBucketResponse": {
        "type": "object",
        "required": [
          "id",
          "href",
          "description",
          "remainingValue",
          "totalQuantity",
          "name",
          "serviceCode",
          "refillAmount",
          "serviceExpirationDate",
          "logicalResource",
          "@type"
        ],
        "properties": {
          "id": {
            "type": "string",
            "description": "unique identifier"
          },
          "href": {
            "type": "string",
            "description": "Hyperlink reference"
          },
          "name": {
            "type": "string",
            "description": "Name of the related entity."
          },
          "@type": {
            "type": "object",
            "example": {
              "value": "ResellerMobileLineServiceBucket",
              "strict": true
            },
            "pattern": "^ResellerMobileLineServiceBucket$"
          },
          "description": {
            "type": "string",
            "description": "description of the related entity."
          },
          "serviceCode": {
            "type": "string",
            "description": "service code."
          },
          "refillAmount": {
            "$ref": "#/components/schemas/type_2"
          },
          "totalQuantity": {
            "$ref": "#/components/schemas/type_1"
          },
          "remainingValue": {
            "$ref": "#/components/schemas/type"
          },
          "logicalResource": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/items"
            },
            "minItems": 1
          },
          "serviceExpirationDate": {
            "type": "string",
            "format": "date-time",
            "description": "service Expiration Date."
          }
        },
        "description": "Returns array of service buckets"
      },
      "AdjustBalance_Response": {
        "type": "object",
        "required": [
          "adjustType",
          "usageType",
          "amount",
          "logicalResource",
          "impactedBucket",
          "@type",
          "adjustmenttypecode",
          "status"
        ],
        "properties": {
          "@type": {
            "enum": [
              "ResellerMobileLineAdjustment"
            ],
            "type": "string"
          },
          "amount": {
            "type": "object",
            "properties": {
              "units": {
                "type": "string",
                "description": "Unit"
              },
              "@type": {
                "type": "object",
                "example": {
                  "value": "DetailedQuantity",
                  "strict": true
                },
                "pattern": "^DetailedQuantity$",
                "description": "When sub-classing, this defines the sub-class entity name"
              },
              "amount": {
                "type": "number",
                "format": "float",
                "default": 1,
                "description": "Numeric value in a given unit"
              },
              "@baseType": {
                "type": "object",
                "example": {
                  "value": "Quantity",
                  "strict": true
                },
                "pattern": "^Quantity$",
                "description": "When sub-classing, this defines the super-class"
              },
              "resultCode": {
                "$ref": "#/components/schemas/type_11"
              },
              "serviceType": {
                "enum": [
                  "VOICE",
                  "MESSAGE",
                  "DATA",
                  "DATALONGTERMHIGH",
                  "DATALONGTERMLOW",
                  "DOMESTICROAMINGDATATOPUP",
                  "ROAMDATATOPUP",
                  "Topup Data",
                  "DATAUSAGECOUNTERA",
                  "DATAUSAGECOUNTERB",
                  "DATAUSAGECOUNTERC",
                  "DOMESTICROAMINGDATA",
                  "HIGHDATA",
                  "International Roaming Data",
                  "LOWDATAA",
                  "LOWDATAB",
                  "LOWDATAC",
                  "TETHDATA",
                  "DOMESTICROAMINGMMS",
                  "International Roaming Messaging",
                  "International Roaming MMS",
                  "Intl MMS",
                  "Intl SMS",
                  "MMS",
                  "VOICESMS",
                  "VOICESMSTOPUP",
                  "International Roaming Voice",
                  "Intl VOICE",
                  "DOMESTICROAMINGSMS",
                  "DOMESTICROAMINGVOICE"
                ],
                "type": "string",
                "description": "A unique code representing the type of service being provided."
              },
              "paymentTypeCode": {
                "type": "string",
                "description": "The Payment Type Code is used to identify the purpose of the payment."
              },
              "@schemaLocation": {
                "type": "string",
                "description": "A URI to a JSON-Schema file that defines additional attributes and relationships"
              },
              "unitsDescription": {
                "type": "string",
                "description": "A string describing the units."
              }
            },
            "description": "Quantity is the payment amount specified in United States cents. For example, a $10.00 payment is specified as 1000."
          },
          "status": {
            "type": "string"
          },
          "usageType": {
            "enum": [
              "monetary",
              "text"
            ],
            "type": "string"
          },
          "adjustType": {
            "type": "string"
          },
          "impactedBucket": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/items_12"
            },
            "minItems": 1
          },
          "logicalResource": {
            "$ref": "#/components/schemas/items_10"
          },
          "adjustmenttypecode": {
            "type": "string"
          }
        },
        "description": "An Adjustment request either credits or debits a subscriber‚Äö√Ñ√∂‚àö√ë‚àö¬•s main account balance."
      },
      "TopupBalanceResponse_Create": {
        "type": "object",
        "example": {
          "@type": "ResellerMobileLinePayment",
          "impactedBucket": [
            {
              "name": "servicebalancechangeinfo",
              "amountAfter": {
                "amount": 30,
                "units": "days"
              }
            },
            {
              "name": "moneybalanceinfo",
              "airtimeExpirationDate": "2024-04-12T00:00:00.00Z",
              "amountAfter": {
                "amount": 40,
                "units": "USD"
              }
            }
          ],
          "status": "confirmed",
          "usageType": "monetary",
          "logicalResource": {
            "@type": "MSISDN",
            "value": "9992220006"
          },
          "paymentTypeCode": "790",
          "amount": {
            "units": "USD",
            "amount": 1
          },
          "value": {
            "@type": "ResellerMobileLinePayment",
            "amount": {
              "units": "USD",
              "amount": 1
            },
            "status": "confirmed",
            "usageType": "monetary",
            "impactedBucket": [
              {
                "name": "servicebalancechangeinfo",
                "amountAfter": {
                  "amount": 30,
                  "units": "days"
                }
              },
              {
                "name": "moneybalanceinfo",
                "airtimeExpirationDate": "2024-04-12T00:00:00.00Z",
                "amountAfter": {
                  "amount": 40,
                  "units": "USD"
                }
              }
            ],
            "paymentTypeCode": "790",
            "logicalResource": {
              "id": "9992220006",
              "@type": "MSISDN",
              "value": "9992220006"
            }
          }
        },
        "required": [
          "amount",
          "paymentTypeCode",
          "logicalResource",
          "usageType",
          "status",
          "impactedBucket",
          "@type"
        ],
        "properties": {
          "@type": {
            "type": "object",
            "example": {
              "value": "ResellerMobileLinePayment",
              "strict": true
            },
            "pattern": "^ResellerMobileLinePayment$"
          },
          "amount": {
            "type": "object",
            "required": [
              "units",
              "amount"
            ],
            "properties": {
              "units": {
                "type": "string"
              },
              "amount": {
                "type": "number"
              }
            },
            "description": "Quantity is the subscriber's account balance in United States cents after the payment."
          },
          "status": {
            "type": "string"
          },
          "usageType": {
            "type": "string"
          },
          "impactedBucket": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/items_8"
            },
            "minItems": 1
          },
          "paymentTypeCode": {
            "type": "string"
          },
          "logicalResource": {
            "$ref": "#/components/schemas/type_7"
          }
        },
        "description": "A Payment request adds money to the subscriber's main account or subscriber's bucket and MAY extend the subscriber's airtime expiration date. TPSP Payment must be used to activate the subscriber's lifecycle."
      },
      "TopupBalanceResponse_Update": {
        "type": "object",
        "required": [
          "id",
          "logicalResource",
          "airtimeexpiration",
          "@type",
          "status"
        ],
        "properties": {
          "id": {
            "type": "string"
          },
          "@type": {
            "type": "object",
            "example": {
              "value": "ResellerMobileLineAutoTopup",
              "strict": true
            },
            "pattern": "^ResellerMobileLineAutoTopup$"
          },
          "status": {
            "type": "string"
          },
          "logicalResource": {
            "$ref": "#/components/schemas/type_9"
          },
          "airtimeexpiration": {
            "type": "string",
            "format": "date-time"
          }
        }
      },
      "TopupBalance_Update_Combined": {
        "type": "object",
        "required": [
          "autoRenewExecutionDate",
          "airtimeexpiration",
          "isAutoTopup"
        ],
        "properties": {
          "isAutoTopup": {
            "type": "boolean"
          },
          "airtimeexpiration": {
            "type": "string",
            "format": "date-time"
          },
          "autoRenewExecutionDate": {
            "type": "string",
            "format": "date-time",
            "description": "Description of the recharge operation"
          }
        },
        "description": "Represents a detailed description of a recharge operation requested over a bucket (defined by a specific product or reference to a product (i.e.: a commercial id such as an msisidn) and a service type)\nSkipped properties: id,href"
      },
      "AdjustBalance_Service_Create": {
        "type": "object",
        "required": [
          "adjustType",
          "usageType",
          "servicetype",
          "logicalResource",
          "amount",
          "@type"
        ],
        "properties": {
          "@type": {
            "enum": [
              "ResellerMobileLineServiceAdjustment"
            ],
            "type": "string"
          },
          "amount": {
            "type": "object",
            "properties": {
              "units": {
                "type": "string",
                "description": "Unit"
              },
              "@type": {
                "type": "object",
                "example": {
                  "value": "DetailedQuantity",
                  "strict": true
                },
                "pattern": "^DetailedQuantity$",
                "description": "When sub-classing, this defines the sub-class entity name"
              },
              "amount": {
                "type": "number",
                "format": "float",
                "default": 1,
                "description": "Numeric value in a given unit"
              },
              "@baseType": {
                "type": "object",
                "example": {
                  "value": "Quantity",
                  "strict": true
                },
                "pattern": "^Quantity$",
                "description": "When sub-classing, this defines the super-class"
              },
              "resultCode": {
                "$ref": "#/components/schemas/type_11"
              },
              "serviceType": {
                "enum": [
                  "VOICE",
                  "MESSAGE",
                  "DATA",
                  "DATALONGTERMHIGH",
                  "DATALONGTERMLOW",
                  "DOMESTICROAMINGDATATOPUP",
                  "ROAMDATATOPUP",
                  "Topup Data",
                  "DATAUSAGECOUNTERA",
                  "DATAUSAGECOUNTERB",
                  "DATAUSAGECOUNTERC",
                  "DOMESTICROAMINGDATA",
                  "HIGHDATA",
                  "International Roaming Data",
                  "LOWDATAA",
                  "LOWDATAB",
                  "LOWDATAC",
                  "TETHDATA",
                  "DOMESTICROAMINGMMS",
                  "International Roaming Messaging",
                  "International Roaming MMS",
                  "Intl MMS",
                  "Intl SMS",
                  "MMS",
                  "VOICESMS",
                  "VOICESMSTOPUP",
                  "International Roaming Voice",
                  "Intl VOICE",
                  "DOMESTICROAMINGSMS",
                  "DOMESTICROAMINGVOICE"
                ],
                "type": "string",
                "description": "A unique code representing the type of service being provided."
              },
              "paymentTypeCode": {
                "type": "string",
                "description": "The Payment Type Code is used to identify the purpose of the payment."
              },
              "@schemaLocation": {
                "type": "string",
                "description": "A URI to a JSON-Schema file that defines additional attributes and relationships"
              },
              "unitsDescription": {
                "type": "string",
                "description": "A string describing the units."
              }
            },
            "description": "Quantity is the payment amount specified in United States cents. For example, a $10.00 payment is specified as 1000."
          },
          "usageType": {
            "enum": [
              "monetary",
              "text"
            ],
            "type": "string"
          },
          "adjustType": {
            "type": "string"
          },
          "servicetype": {
            "type": "string"
          },
          "logicalResource": {
            "$ref": "#/components/schemas/items_10"
          }
        },
        "description": "An Update Service Package request is used to increase, decrease, or set the service balances of Service Based and Flexible Refill rate plans. It is also used to set the Dynamic Tier service refill amounts for Flexible Refill rate plans."
      },
      "AdjustBalance_Service_Response": {
        "type": "object",
        "required": [
          "adjustType",
          "usageType",
          "servicetype",
          "amount",
          "logicalResource",
          "@type",
          "status"
        ],
        "properties": {
          "@type": {
            "enum": [
              "ResellerMobileLineServiceAdjustment"
            ],
            "type": "string"
          },
          "amount": {
            "type": "object",
            "properties": {
              "units": {
                "type": "string",
                "description": "Unit"
              },
              "@type": {
                "type": "object",
                "example": {
                  "value": "DetailedQuantity",
                  "strict": true
                },
                "pattern": "^DetailedQuantity$",
                "description": "When sub-classing, this defines the sub-class entity name"
              },
              "amount": {
                "type": "number",
                "format": "float",
                "default": 1,
                "description": "Numeric value in a given unit"
              },
              "@baseType": {
                "type": "object",
                "example": {
                  "value": "Quantity",
                  "strict": true
                },
                "pattern": "^Quantity$",
                "description": "When sub-classing, this defines the super-class"
              },
              "resultCode": {
                "$ref": "#/components/schemas/type_11"
              },
              "serviceType": {
                "enum": [
                  "VOICE",
                  "MESSAGE",
                  "DATA",
                  "DATALONGTERMHIGH",
                  "DATALONGTERMLOW",
                  "DOMESTICROAMINGDATATOPUP",
                  "ROAMDATATOPUP",
                  "Topup Data",
                  "DATAUSAGECOUNTERA",
                  "DATAUSAGECOUNTERB",
                  "DATAUSAGECOUNTERC",
                  "DOMESTICROAMINGDATA",
                  "HIGHDATA",
                  "International Roaming Data",
                  "LOWDATAA",
                  "LOWDATAB",
                  "LOWDATAC",
                  "TETHDATA",
                  "DOMESTICROAMINGMMS",
                  "International Roaming Messaging",
                  "International Roaming MMS",
                  "Intl MMS",
                  "Intl SMS",
                  "MMS",
                  "VOICESMS",
                  "VOICESMSTOPUP",
                  "International Roaming Voice",
                  "Intl VOICE",
                  "DOMESTICROAMINGSMS",
                  "DOMESTICROAMINGVOICE"
                ],
                "type": "string",
                "description": "A unique code representing the type of service being provided."
              },
              "paymentTypeCode": {
                "type": "string",
                "description": "The Payment Type Code is used to identify the purpose of the payment."
              },
              "@schemaLocation": {
                "type": "string",
                "description": "A URI to a JSON-Schema file that defines additional attributes and relationships"
              },
              "unitsDescription": {
                "type": "string",
                "description": "A string describing the units."
              }
            },
            "description": "Quantity is the payment amount specified in United States cents. For example, a $10.00 payment is specified as 1000."
          },
          "status": {
            "type": "string"
          },
          "usageType": {
            "enum": [
              "monetary",
              "text"
            ],
            "type": "string"
          },
          "adjustType": {
            "type": "string"
          },
          "servicetype": {
            "type": "string"
          },
          "logicalResource": {
            "$ref": "#/components/schemas/items_10"
          }
        },
        "description": "An Update Service Package request is used to increase, decrease, or set the service balances of Service Based and Flexible Refill rate plans. It is also used to set the Dynamic Tier service refill amounts for Flexible Refill rate plans."
      },
      "TopupBalance_Update_WithAutoTopup": {
        "type": "object",
        "required": [
          "isAutoTopup",
          "autoRenewExecutionDate"
        ],
        "properties": {
          "isAutoTopup": {
            "type": "boolean"
          },
          "autoRenewExecutionDate": {
            "type": "string",
            "format": "date-time",
            "description": "Description of the recharge operation"
          }
        },
        "description": "Represents a detailed description of a recharge operation requested over a bucket (defined by a specific product or reference to a product (i.e.: a commercial id such as an msisidn) and a service type)\nSkipped properties: id,href"
      },
      "TopupBalanceResponse_Update_Combined": {
        "type": "object",
        "required": [
          "autoRenewExecutionDate",
          "airtimeexpiration",
          "id",
          "logicalResource",
          "@type",
          "isAutoTopup",
          "status"
        ],
        "properties": {
          "id": {
            "type": "string"
          },
          "@type": {
            "type": "object",
            "example": {
              "value": "ResellerMobileLineAutoTopup",
              "strict": true
            },
            "pattern": "^ResellerMobileLineAutoTopup$"
          },
          "status": {
            "type": "string"
          },
          "isAutoTopup": {
            "type": "boolean"
          },
          "logicalResource": {
            "$ref": "#/components/schemas/type_9"
          },
          "airtimeexpiration": {
            "type": "string",
            "format": "date-time"
          },
          "autoRenewExecutionDate": {
            "type": "string",
            "format": "date-time"
          }
        },
        "description": "TPSP Change Auto Renew request is used to enroll or de-enroll subscribers in the auto renew feature.  It's recommendable to de-enroll the subscriber from Auto Renew prior to a change rate plan, then enroll the subscriber after the rate plan change and the corresponding payment is done. Consider that there will be a lag between Payment and the rate plan being active. Under normal conditions, it will take less than a second for the rate plan to become active and all services provisioned after a payment. Under extreme load it can be longer, hence, the recommendation is to wait 2 seconds before sending the Change Auto Renew request"
      },
      "TopupBalanceResponse_Update_WithAutoTopup": {
        "type": "object",
        "required": [
          "id",
          "isAutoTopup",
          "logicalResource",
          "autoRenewExecutionDate",
          "@type",
          "status"
        ],
        "properties": {
          "id": {
            "type": "string"
          },
          "@type": {
            "type": "object",
            "example": {
              "value": "ResellerMobileLineAutoTopup",
              "strict": true
            },
            "pattern": "^ResellerMobileLineAutoTopup$"
          },
          "status": {
            "type": "string"
          },
          "isAutoTopup": {
            "type": "boolean"
          },
          "logicalResource": {
            "$ref": "#/components/schemas/type_7"
          },
          "autoRenewExecutionDate": {
            "type": "string",
            "format": "date-time"
          }
        },
        "description": "TPSP Change Auto Renew request is used to enroll or de-enroll subscribers in the auto renew feature.  It's recommendable to de-enroll the subscriber from Auto Renew prior to a change rate plan, then enroll the subscriber after the rate plan change and the corresponding payment is done. Consider that there will be a lag between Payment and the rate plan being active. Under normal conditions, it will take less than a second for the rate plan to become active and all services provisioned after a payment. Under extreme load it can be longer, hence, the recommendation is to wait 2 seconds before sending the Change Auto Renew request"
      }
    },
    "securitySchemes": {
      "AT_T_Azure_AD_JWT_Token": {
        "type": "oauth2",
        "description": "Get a JWT Token from AT&T's Azure AD",
        "x-amf-settings": {
          "securedBy": []
        },
        "flows": {
          "authorizationCode": {
            "scopes": {},
            "tokenUrl": "https://login.microsoftonline.com/xxxxxxxxxx/oauth2/v2.0/token",
            "authorizationUrl": "https://login.microsoftonline.com/xxxxxxxxxx/oauth2/v2.0/token"
          }
        },
        "x-amf-describedBy": {
          "headers": {
            "Authorization": {
              "type": "string",
              "description": "JWT Bearer Token"
            }
          },
          "responses": {
            "200": {
              "body": {
                "application/json": {
                  "properties": {
                    "token_type": {
                      "type": "string",
                      "default": "Bearer",
                      "example": "Bearer"
                    },
                    "expires_in": {
                      "type": "number",
                      "format": "int",
                      "example": 3599
                    },
                    "access_token": {
                      "type": "string",
                      "example": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c"
                    },
                    "ext_expires_in": {
                      "type": "number",
                      "format": "int",
                      "example": 3599
                    }
                  },
                  "description": "Dummy token below. Real token is much longer with more relevant info"
                }
              }
            },
            "400": {
              "body": {
                "application/json": {
                  "properties": {
                    "error": {
                      "type": "string",
                      "example": "unauthorized_client"
                    },
                    "trace_id": {
                      "type": "string",
                      "example": "b82bea2f-5ee3-48a4-9774-4143176a6900"
                    },
                    "timestamp": {
                      "type": "string",
                      "example": "2021-06-30 21:12:34Z"
                    },
                    "error_uri": {
                      "type": "string",
                      "example": "https://login.microsoftonline.com/error?code=700016"
                    },
                    "error_codes": {
                      "items": {
                        "type": "number",
                        "format": "int",
                        "example": 700016
                      }
                    },
                    "correlation_id": {
                      "type": "string",
                      "example": "b57403ef-e775-49f6-b40f-009ba759c301"
                    },
                    "error_description": {
                      "type": "string",
                      "example": "AADSTS700016: Application with identifier '6bb2748d-d916-4534-9145-ee8f598d2e01' was not found in the directory 'e741d71c-c6b6-47b0-803c-0f3b32b07556'. This can happen if the application has not been installed by the administrator of the tenant or consented to by any user in the tenant. You may have sent your authentication request to the wrong tenant.\\r\\nTrace ID: b82bea2f-5ee3-48a4-9774-4143176a6900\\r\\nCorrelation ID: b57403ef-e775-49f6-b40f-009ba759c301\\r\\nTimestamp: 2021-06-30 21:12:34Z"
                    }
                  },
                  "description": "Only an example of 400 Error body"
                }
              }
            }
          }
        }
      }
    }
  }
}