{
  "openapi": "3.1.1",
  "info": {
    "title": "ECGrid B2B REST API",
    "description": "REST interface for the ECGrid B2B EDI platform. Provides operations for network and mailbox management, trading partner ID configuration, EDI interchange routing, parcel delivery, communication channel setup, callback webhooks, customer portal site provisioning, and user administration. Access requires a valid API key or Bearer token — see the Auth tag for authentication endpoints.",
    "termsOfService": "https://lorendatacorp.ecgrid.com/terms",
    "contact": {
      "name": "ECGrid Support",
      "url": "https://ecgrid.freshdesk.com/support/home"
    },
    "license": {
      "name": "Proprietary — All rights reserved. Loren Data Corp."
    },
    "version": "2.6"
  },
  "servers": [
    {
      "url": "https://rest.ecgrid.io",
      "description": "ECGrid B2B REST API — Production"
    }
  ],
  "paths": {
    "/v2/auth/login": {
      "post": {
        "tags": [
          "Auth"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/LoginRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK"
          }
        },
        "security": [ ]
      }
    },
    "/v2/auth/refresh": {
      "post": {
        "tags": [
          "Auth"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/RefreshRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK"
          }
        },
        "security": [ ]
      }
    },
    "/v2/auth/logout": {
      "post": {
        "tags": [
          "Auth"
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/v2/auth/session": {
      "post": {
        "tags": [
          "Auth"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/SessionRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/v2/auth/password": {
      "put": {
        "tags": [
          "Auth"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/AuthPasswordRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/v2/auth/version": {
      "get": {
        "tags": [
          "Auth"
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        },
        "security": [ ]
      }
    },
    "/v2/callbacks": {
      "delete": {
        "tags": [
          "Callbacks"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CallbackDeleteRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/v2/callbacks/get-queue-by-id": {
      "get": {
        "tags": [
          "Callbacks"
        ],
        "parameters": [
          {
            "name": "callBackEventID",
            "in": "query",
            "schema": {
              "type": "integer",
              "format": "int64"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/v2/callbacks/event-list": {
      "post": {
        "tags": [
          "Callbacks"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CallbackEventListRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/v2/callbacks/get-event-by-id": {
      "post": {
        "tags": [
          "Callbacks"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CallbackGetEventByIDRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/v2/callbacks/queue-list": {
      "post": {
        "tags": [
          "Callbacks"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CallbackQueueListRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/v2/callbacks/test": {
      "post": {
        "tags": [
          "Callbacks"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CallbackTestRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/v2/callbacks/update": {
      "post": {
        "tags": [
          "Callbacks"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CallbackUpdateRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/v2/callbacks/create": {
      "post": {
        "tags": [
          "Callbacks"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CallbackCreateRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/v2/carboncopies/{id}": {
      "delete": {
        "tags": [
          "CarbonCopies"
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      },
      "get": {
        "tags": [
          "CarbonCopies"
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/v2/carboncopies/list": {
      "post": {
        "tags": [
          "CarbonCopies"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CarbonCopyListRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/v2/carboncopies/create": {
      "post": {
        "tags": [
          "CarbonCopies"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CarbonCopyCreateRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/v2/carboncopies/update": {
      "put": {
        "tags": [
          "CarbonCopies"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CarbonCopyUpdateRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/v2/certificates/add-private": {
      "post": {
        "tags": [
          "Certificates"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CertificateAddPrivateRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/v2/certificates/add-public": {
      "post": {
        "tags": [
          "Certificates"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CertificateAddPublicRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/v2/certificates/create": {
      "post": {
        "tags": [
          "Certificates"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CertificateCreatePrivateRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/v2/certificates/renew": {
      "post": {
        "tags": [
          "Certificates"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CertificateRenewPrivateRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/v2/certificates/terminate": {
      "post": {
        "tags": [
          "Certificates"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CertificateTerminateRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/v2/comms/{id}": {
      "get": {
        "tags": [
          "Comms"
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/v2/comms/find": {
      "post": {
        "tags": [
          "Comms"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CommFindRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/v2/comms/list": {
      "post": {
        "tags": [
          "Comms"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CommListRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/v2/comms/pair": {
      "post": {
        "tags": [
          "Comms"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CommPairRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/v2/comms/set-pair": {
      "post": {
        "tags": [
          "Comms"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CommSetPairRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/v2/comms/create": {
      "post": {
        "tags": [
          "Comms"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CommCreateRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/v2/comms/update": {
      "put": {
        "tags": [
          "Comms"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CommUpdateRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/v2/comms/update-config": {
      "put": {
        "tags": [
          "Comms"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CommUpdateConfigRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/v2/ids/{id}": {
      "delete": {
        "tags": [
          "IDs"
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      },
      "get": {
        "tags": [
          "IDs"
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      },
      "put": {
        "tags": [
          "IDs"
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/IDDescriptionUpdateRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/v2/ids": {
      "post": {
        "tags": [
          "IDs"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/IDCreateRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/v2/ids/find": {
      "post": {
        "tags": [
          "IDs"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/IDFindRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/v2/ids/list": {
      "post": {
        "tags": [
          "IDs"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/IDListRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/v2/ids/update-config": {
      "post": {
        "tags": [
          "IDs"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/IDUpdateConfigRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/v2/ids/tp-add-van": {
      "post": {
        "tags": [
          "IDs"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/TPAddVANRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/v2/ids/tp-get-mailbox-default": {
      "post": {
        "tags": [
          "IDs"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/TPGetMailboxDefaultRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/v2/ids/tp-move": {
      "post": {
        "tags": [
          "IDs"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/TPMoveRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/v2/ids/tp-update-data-email": {
      "post": {
        "tags": [
          "IDs"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/TPUpdateDataEMailRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/v2/ids/tp-update-description": {
      "post": {
        "tags": [
          "IDs"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/TPUpdateDescriptionRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/v2/ids/tp-x12-delimiters": {
      "post": {
        "tags": [
          "IDs"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/TPX12DelimitersRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/v2/interchanges/{id}": {
      "get": {
        "tags": [
          "Interchanges"
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/v2/interchanges/cancel/{id}": {
      "post": {
        "tags": [
          "Interchanges"
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/v2/interchanges/get-manifest/{id}": {
      "get": {
        "tags": [
          "Interchanges"
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int64"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/v2/interchanges/resend/{id}": {
      "post": {
        "tags": [
          "Interchanges"
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int64"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/v2/interchanges/get-date": {
      "post": {
        "tags": [
          "Interchanges"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/InterchangeHeaderRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/v2/interchanges/get-header": {
      "post": {
        "tags": [
          "Interchanges"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/InterchangeHeaderRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/v2/interchanges/inbox-list": {
      "post": {
        "tags": [
          "Interchanges"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/InterchangeListRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/v2/interchanges/outbox-list": {
      "post": {
        "tags": [
          "Interchanges"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/InterchangeListRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/v2/keys": {
      "delete": {
        "tags": [
          "Keys"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/KeyDeleteRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/v2/keys/get-key": {
      "post": {
        "tags": [
          "Keys"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/KeyGetKeyRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/v2/keys/list": {
      "post": {
        "tags": [
          "Keys"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/KeyListRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/v2/keys/create": {
      "post": {
        "tags": [
          "Keys"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/KeyCreateKeyRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/v2/mailboxes/{id}": {
      "get": {
        "tags": [
          "Mailboxes"
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      },
      "delete": {
        "tags": [
          "Mailboxes"
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/v2/mailboxes/create": {
      "post": {
        "tags": [
          "Mailboxes"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/MailboxAddRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/v2/mailboxes/list": {
      "post": {
        "tags": [
          "Mailboxes"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/MailboxListRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/v2/mailboxes/update": {
      "post": {
        "tags": [
          "Mailboxes"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/MailboxUpdateRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/v2/mailboxes/update-config": {
      "post": {
        "tags": [
          "Mailboxes"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/MailboxUpdateConfigRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/v2/mailboxes/x12-delimiters": {
      "post": {
        "tags": [
          "Mailboxes"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/MailboxX12DelimitersRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/v2/networks/{id}": {
      "get": {
        "tags": [
          "Networks"
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "getLog",
            "in": "query",
            "schema": {
              "type": "boolean",
              "default": false
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/v2/networks/list": {
      "post": {
        "tags": [
          "Networks"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/NetworkListRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/v2/networks/get-contact": {
      "post": {
        "tags": [
          "Networks"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/NetworkGetContactRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/v2/networks/update-config": {
      "post": {
        "tags": [
          "Networks"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/NetworkUpdateConfigRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/v2/networks/x12-delimiters": {
      "post": {
        "tags": [
          "Networks"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/NetworkX12DelimitersRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/v2/networks": {
      "put": {
        "tags": [
          "Networks"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/NetworkUpdateRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/v2/parcels/find-mailbagcontrolid": {
      "post": {
        "tags": [
          "Parcels"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ParcelFindMailbagControlIDRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/v2/parcels/{id}": {
      "get": {
        "tags": [
          "Parcels"
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/v2/parcels/cancel/{id}": {
      "post": {
        "tags": [
          "Parcels"
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/v2/parcels/confirm": {
      "post": {
        "tags": [
          "Parcels"
        ],
        "summary": "Confirm a parcel download",
        "description": "Marks a downloaded parcel as confirmed so the platform removes it from the pending-download queue.\r\nRouting is controlled by the optional `status` field: (1) omit `status` to call\r\n`ParcelDownloadConfirm`, which marks the parcel downloaded without touching acknowledgment\r\nstate; (2) supply `status` to call `ParcelDownloadConfirmPendingAck`, which additionally\r\nstamps the parcel with the specified ECG_REST_V1.ParcelStatus value and resolves any pending\r\nacknowledgment workflow.\r\nReturns `true` on success.",
        "operationId": "Parcels_Confirm",
        "requestBody": {
          "description": "Confirm payload. `parcelId` is required — the ECGrid parcel ID to confirm. Include `status` only when confirming a pending acknowledgment; omit it for a standard download confirm.",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ParcelConfirmRequest"
              },
              "examples": {
                "StandardConfirm": {
                  "summary": "Confirm a download — no status, uses ParcelDownloadConfirm",
                  "value": {
                    "parcelId": 98765
                  }
                },
                "PendingAckConfirm": {
                  "summary": "Confirm a pending acknowledgment and stamp a status — uses ParcelDownloadConfirmPendingAck",
                  "value": {
                    "parcelId": 98765,
                    "status": "as2MDNConfirmed"
                  }
                }
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "Confirmation succeeded; `data` is `true`",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponse"
                },
                "examples": {
                  "ConfirmSuccess": {
                    "summary": "Parcel confirmed successfully",
                    "value": {
                      "httpStatus": 200,
                      "message": "",
                      "traceId": "0HN8P3B2C4D:00000001",
                      "success": true,
                      "data": true
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Invalid or missing `parcelId`, or the SOAP backend rejected the request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorResponse"
                }
              }
            }
          },
          "401": {
            "description": "Missing or invalid authentication credentials",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorResponse"
                }
              }
            }
          },
          "500": {
            "description": "Unexpected error processing the request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorResponse"
                }
              }
            }
          }
        }
      }
    },
    "/v2/parcels/download": {
      "post": {
        "tags": [
          "Parcels"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ParcelDownloadRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/v2/parcels/reset-to-inbox/{id}": {
      "post": {
        "tags": [
          "Parcels"
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/v2/parcels/manifest/{id}": {
      "get": {
        "tags": [
          "Parcels"
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int64"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/v2/parcels/send-test-file": {
      "post": {
        "tags": [
          "Parcels"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ParcelSendTestFileRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/v2/parcels/acknowledgment-note": {
      "post": {
        "tags": [
          "Parcels"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ParcelAcknowledgmentNoteRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/v2/parcels/inbox-list": {
      "post": {
        "tags": [
          "Parcels"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ParcelListRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/v2/parcels/outbox-list": {
      "post": {
        "tags": [
          "Parcels"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ParcelListRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/v2/parcels/pending-inbox-list": {
      "post": {
        "tags": [
          "Parcels"
        ],
        "summary": "List parcels pending in the inbox",
        "description": "Returns parcels waiting in the mailbox inbox. The SOAP call selected depends on which fields\r\nare populated in the request body: (1) all five scope fields (`networkId`, `mailboxId`,\r\n`ecgridIdFrom`, `ecgridIdTo`, and `status`) → calls `ParcelInBoxExShort`,\r\na compact result filtered by sender/recipient ECGrid IDs and parcel status; (2) `networkId`\r\nand `mailboxId` only → calls `ParcelInBoxEx`, the full result scoped to that mailbox;\r\n(3) no scoping fields → calls `ParcelInBox`, returning all pending parcels visible to the\r\nauthenticated API key.",
        "operationId": "Parcels_ListPendingInbox",
        "requestBody": {
          "description": "Inbox list payload. All fields are optional; the combination present selects the SOAP variant — see remarks for the three routing paths.",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ParcelInboxPendingListRequest"
              },
              "examples": {
                "MailboxScope": {
                  "summary": "Network + mailbox only — routes to ParcelInBoxEx, full result for that mailbox",
                  "value": {
                    "networkId": 12,
                    "mailboxId": 147
                  }
                },
                "ApiKeyScope": {
                  "summary": "No scoping fields — routes to ParcelInBox, all pending parcels for the API key",
                  "value": { }
                },
                "AllScopeFields": {
                  "summary": "All five fields — routes to ParcelInBoxExShort, filtered by ECGrid IDs and status",
                  "value": {
                    "networkId": 12,
                    "mailboxId": 147,
                    "ecgridIdFrom": 1234567,
                    "ecgridIdTo": 7654321,
                    "status": "InBoxReady"
                  }
                }
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "Pending inbox parcels returned; `data` is a `ParcelIDInfoCollection`",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponse"
                },
                "examples": {
                  "PendingInboxList": {
                    "summary": "Pending inbox parcels returned",
                    "value": {
                      "httpStatus": 200,
                      "message": "",
                      "traceId": "0HN8P3B2C4D:00000002",
                      "success": true,
                      "data": {
                        "parcelIDs": [
                          {
                            "parcelID": 98765,
                            "networkIDFrom": 12,
                            "mailboxIDFrom": 147,
                            "networkIDTo": 34,
                            "mailboxIDTo": 201,
                            "fileName": "INV_20260507_001.edi",
                            "status": "InBoxReady",
                            "dateReceived": "2026-05-07T14:22:00Z"
                          }
                        ],
                        "count": 1
                      }
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Invalid request payload or the SOAP backend rejected the request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorResponse"
                }
              }
            }
          },
          "401": {
            "description": "Missing or invalid authentication credentials",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorResponse"
                }
              }
            }
          },
          "500": {
            "description": "Unexpected error processing the request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorResponse"
                }
              }
            }
          }
        }
      }
    },
    "/v2/parcels/set-mailbagcontrolid": {
      "post": {
        "tags": [
          "Parcels"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ParcelSetMailbagControlIDRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/v2/parcels/update": {
      "post": {
        "tags": [
          "Parcels"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ParcelUpdateRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/v2/parcels/upload": {
      "post": {
        "tags": [
          "Parcels"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ParcelUploadRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/v2/partners/{id}": {
      "delete": {
        "tags": [
          "Partners"
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      },
      "get": {
        "tags": [
          "Partners"
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/v2/partners": {
      "post": {
        "tags": [
          "Partners"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/PartnerAddRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/v2/partners/count": {
      "post": {
        "tags": [
          "Partners"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/PartnerCountRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/v2/partners/list": {
      "post": {
        "tags": [
          "Partners"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/PartnerListRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/v2/partners/note": {
      "post": {
        "tags": [
          "Partners"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/PartnerNoteRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/v2/partners/notelist": {
      "post": {
        "tags": [
          "Partners"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/PartnerNoteListRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/v2/portals/by-mailbox/{mailboxId}": {
      "get": {
        "tags": [
          "Portals"
        ],
        "summary": "Get basic portal information by mailbox id",
        "description": "Returns the existing ECGrid portal associated with the supplied mailbox id.\r\nThe caller must be authenticated via API key or Bearer token.\r\nResponds with an envelope containing `exists`, and when a portal is found, the `portalId`,\r\n`subdomain`, and customer-facing `url`. A missing portal is a valid answer —\r\nthe endpoint returns HTTP 200 with `exists=false` rather than 404.\r\nOnly mailbox-level portals are looked up here; the root mailbox (mailboxId 0) is provisioned\r\nthrough the network-level flow and is not queryable via this endpoint.",
        "operationId": "Portals_GetByMailbox",
        "parameters": [
          {
            "name": "mailboxId",
            "in": "path",
            "description": "Mailbox id to look up. Must be greater than 0 — this endpoint queries mailbox-level portals only.",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Lookup completed. `exists` indicates whether a portal was found for the mailbox.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponse"
                }
              }
            }
          },
          "400": {
            "description": "Invalid mailbox id — must be greater than 0",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorResponse"
                }
              }
            }
          },
          "401": {
            "description": "Missing or invalid authentication credentials",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorResponse"
                }
              }
            }
          },
          "500": {
            "description": "Unexpected error processing the request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorResponse"
                }
              }
            }
          }
        }
      }
    },
    "/v2/portals/create": {
      "post": {
        "tags": [
          "Portals"
        ],
        "summary": "Create a portal for a mailbox",
        "description": "Creates a new ECGrid portal site keyed to a mailbox and persists it.\r\nAuthorization is enforced based on the caller's AuthLevel: NetworkAdmin / NetworkUser — may\r\ncreate a portal for any mailbox within their own network; MailboxAdmin — may only\r\ncreate a portal for their own mailbox; All other AuthLevels are denied.\r\nThe subdomain is derived from the mailbox name (lowercase alphanumerics only), auto-deduplicated\r\nagainst existing portals by appending `-{mailboxId}`, and branding (logo, CSS, theme)\r\nis inherited from the parent network portal when one exists.\r\nReturns the created portal's id, subdomain, parent network, mailbox id, and customer-facing URL.",
        "operationId": "Portals_Create",
        "requestBody": {
          "description": "Portal creation payload. MailboxId is required and must be greater than 0 — this endpoint creates mailbox-level portals only; the root mailbox (mailboxId 0) is provisioned through the network-level portal flow.",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/PortalCreateRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "Portal created successfully",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponse"
                }
              }
            }
          },
          "400": {
            "description": "Invalid request payload, unresolvable subdomain, or mailbox lookup failed",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorResponse"
                }
              }
            }
          },
          "401": {
            "description": "Missing or invalid authentication credentials",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorResponse"
                }
              }
            }
          },
          "403": {
            "description": "Authenticated caller does not have permission to create a portal for this mailbox",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorResponse"
                }
              }
            }
          },
          "500": {
            "description": "Unexpected error processing the request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorResponse"
                }
              }
            }
          }
        }
      }
    },
    "/v2/reports/mailbox-interchange-stats": {
      "get": {
        "tags": [
          "Reports"
        ],
        "parameters": [
          {
            "name": "NetworkID",
            "in": "query",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "MailboxID",
            "in": "query",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/v2/reports/mailbox-stats": {
      "get": {
        "tags": [
          "Reports"
        ],
        "parameters": [
          {
            "name": "NetworkID",
            "in": "query",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "MailboxID",
            "in": "query",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/v2/reports/{ShowInactive}": {
      "get": {
        "tags": [
          "Reports"
        ],
        "parameters": [
          {
            "name": "ShowInactive",
            "in": "path",
            "required": true,
            "schema": {
              "type": "boolean"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/v2/reports/bydate": {
      "post": {
        "tags": [
          "Reports"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ReportByDateRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/v2/reports/instant-stats": {
      "post": {
        "tags": [
          "Reports"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ReportInstantStatsRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/v2/reports/interchange-stats": {
      "post": {
        "tags": [
          "Reports"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ReportInterchangeStatsRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/v2/reports/monthly": {
      "post": {
        "tags": [
          "Reports"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ReportMonthlyRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/v2/reports/traffic-stats": {
      "post": {
        "tags": [
          "Reports"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ReportTrafficStatsRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/v2/status-lists": {
      "get": {
        "tags": [
          "StatusLists"
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/v2/users/{id}": {
      "delete": {
        "tags": [
          "Users"
        ],
        "summary": "Terminates the user account identified by the specified user ID.\r\nTested",
        "description": "This operation permanently disables the specified user account.",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The unique identifier of the user to terminate.",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      },
      "get": {
        "tags": [
          "Users"
        ],
        "summary": "Get User by UserID\r\nTested",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/v2/users/key/{id}": {
      "get": {
        "tags": [
          "Users"
        ],
        "summary": "Get the API-Key\r\nTested",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/v2/users/me": {
      "get": {
        "tags": [
          "Users"
        ],
        "summary": "Get Session Info\r\nTested",
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/v2/users/reset/{id}": {
      "post": {
        "tags": [
          "Users"
        ],
        "summary": "Reset User Open Sessions\r\nTested",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/v2/users/key-generate/{id}": {
      "post": {
        "tags": [
          "Users"
        ],
        "summary": "Generate an API-Key",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/v2/users": {
      "post": {
        "tags": [
          "Users"
        ],
        "summary": "Add User to Session Network/Mailbox or Specified One\r\nTested",
        "requestBody": {
          "description": "",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/UserAddRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      },
      "put": {
        "tags": [
          "Users"
        ],
        "summary": "Update User Info\r\nTested",
        "requestBody": {
          "description": "",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/UserUpdateRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/v2/users/by-name": {
      "post": {
        "tags": [
          "Users"
        ],
        "summary": "Get User(s) by Login name\r\nTested",
        "requestBody": {
          "description": "",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/UserByNameRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/v2/users/generate-password": {
      "post": {
        "tags": [
          "Users"
        ],
        "summary": "Generate a password of a specific length\r\nTested",
        "requestBody": {
          "description": "",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/UserGeneratePasswordRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/v2/users/list": {
      "post": {
        "tags": [
          "Users"
        ],
        "summary": "Get a list of Users for a specific Network/Mailbox or the API-Key User\r\nTested",
        "requestBody": {
          "description": "",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/UserListRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/v2/users/password": {
      "post": {
        "tags": [
          "Users"
        ],
        "summary": "Update the User Password\r\nTested",
        "requestBody": {
          "description": "",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/UserPasswordRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/v2/users/role": {
      "post": {
        "tags": [
          "Users"
        ],
        "summary": "Set a User AuthLevel\r\nTested",
        "requestBody": {
          "description": "",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/UserRoleRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/v2/users/send-sms": {
      "post": {
        "tags": [
          "Users"
        ],
        "summary": "Send a User a SMS if Cell Phone and Carrier are defined",
        "requestBody": {
          "description": "",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/UserSendSMSRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/v2/users/set-network-mailbox": {
      "post": {
        "tags": [
          "Users"
        ],
        "summary": "Change a User's Network/Mailbox.",
        "requestBody": {
          "description": "",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/UserSetNetworkMailboxRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/v2/users/update-config": {
      "post": {
        "tags": [
          "Users"
        ],
        "summary": "Update Configuration of a User",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/UserUpdateConfigRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    }
  },
  "components": {
    "schemas": {
      "ApiErrorResponse": {
        "type": "object",
        "properties": {
          "httpStatus": {
            "$ref": "#/components/schemas/HttpStatusCode"
          },
          "success": {
            "type": "boolean",
            "description": "Always `false` on an error response. Present for symmetry with ECG_REST_V1.ClassObjects.ApiResponse.Success\r\nso clients can branch on a single `success` field regardless of which envelope they receive.",
            "example": false
          },
          "message": {
            "type": [
              "null",
              "string"
            ],
            "description": "Short, user-facing description of the error. Safe to display in a UI.",
            "example": "No user found with the supplied ID."
          },
          "detail": {
            "type": [
              "null",
              "string"
            ],
            "description": "Optional additional context or remediation guidance. Null when no extra detail applies.",
            "example": "The user ID may not exist or may not be accessible under your session."
          },
          "traceId": {
            "type": [
              "null",
              "string"
            ],
            "description": "Trace identifier to correlate with application logs. Provide this to support when\r\nreporting an issue.",
            "example": "0HN7K2A1B3C:00000001"
          },
          "errorInfo": {
            "$ref": "#/components/schemas/ECGridSOAPErrorInfo"
          }
        },
        "additionalProperties": false,
        "description": "Standard error response envelope returned on all non-2xx responses. JSON-only. Carries a short\r\nhuman-readable ECG_REST_V1.ClassObjects.ApiErrorResponse.Message, optional ECG_REST_V1.ClassObjects.ApiErrorResponse.Detail remediation text, and —\r\nwhen the error originated in an underlying ECGridOS SOAP call — the raw SOAP error in\r\nECG_REST_V1.ClassObjects.ApiErrorResponse.ErrorInfo."
      },
      "ApiResponse": {
        "type": "object",
        "properties": {
          "httpStatus": {
            "type": "integer",
            "description": "HTTP status code of the response.",
            "format": "int32",
            "example": 200
          },
          "message": {
            "type": [
              "null",
              "string"
            ],
            "description": "Optional message describing the response. Empty string on a routine success.",
            "example": ""
          },
          "traceId": {
            "type": [
              "null",
              "string"
            ],
            "description": "Trace identifier for debugging and log correlation. Matches the request's TraceIdentifier,\r\nso support can look the call up in the audit log.",
            "example": "0HN7K2A1B3C:00000001"
          },
          "success": {
            "type": "boolean",
            "description": "True if the operation completed successfully.",
            "example": true
          },
          "data": {
            "type": "null",
            "description": "Endpoint-specific response payload. Type varies by endpoint — see the examples on each\r\nindividual operation for the expected data shape. Null when the operation has no payload."
          }
        },
        "additionalProperties": false,
        "description": "Standard success response envelope returned by all endpoints. JSON-only; XML clients should\r\nuse the legacy SOAP service at ECGridOS. The endpoint-specific payload is carried in\r\nECG_REST_V1.ClassObjects.ApiResponse.Data; its shape varies by operation — see per-endpoint examples."
      },
      "AuthLevel": {
        "enum": [
          "NoChange",
          "Root",
          "TechOps",
          "NetOps",
          "NetworkAdmin",
          "NetworkUser",
          "MailboxAdmin",
          "MailboxUser",
          "TPUser",
          "General"
        ],
        "type": "string",
        "description": "Auth Level ENUM"
      },
      "AuthPasswordRequest": {
        "required": [
          "newPassword",
          "oldPassword"
        ],
        "type": "object",
        "properties": {
          "oldPassword": {
            "maxLength": 120,
            "minLength": 1,
            "pattern": "^(?=.*[a-z])(?=.*[A-Z])(?=.*\\d)(?=.*[^a-zA-Z0-9]).+$",
            "type": "string"
          },
          "newPassword": {
            "maxLength": 120,
            "minLength": 1,
            "pattern": "^(?=.*[a-z])(?=.*[A-Z])(?=.*\\d)(?=.*[^a-zA-Z0-9]).+$",
            "type": "string"
          }
        },
        "additionalProperties": false
      },
      "CallbackCreateRequest": {
        "required": [
          "mailboxId",
          "networkId",
          "systemObject",
          "userId"
        ],
        "type": "object",
        "properties": {
          "networkId": {
            "type": "integer",
            "format": "int32"
          },
          "mailboxId": {
            "type": "integer",
            "format": "int32"
          },
          "userId": {
            "type": "integer",
            "format": "int32"
          },
          "systemObject": {
            "$ref": "#/components/schemas/Objects"
          },
          "objectStatus": {
            "type": [
              "null",
              "integer"
            ],
            "format": "int32"
          },
          "direction": {
            "$ref": "#/components/schemas/Direction"
          },
          "frequency": {
            "maximum": 2147483647,
            "minimum": 5,
            "type": [
              "null",
              "integer"
            ],
            "format": "int32"
          },
          "maxRetries": {
            "maximum": 499,
            "minimum": 2,
            "type": [
              "null",
              "integer"
            ],
            "format": "int32"
          },
          "url": {
            "type": [
              "null",
              "string"
            ]
          },
          "httpAuthentication": {
            "$ref": "#/components/schemas/HTTPAuthType"
          },
          "httpUser": {
            "maximum": 50,
            "minimum": 0,
            "type": [
              "null",
              "string"
            ]
          },
          "httpPassword": {
            "maximum": 50,
            "minimum": 0,
            "type": [
              "null",
              "string"
            ]
          },
          "status": {
            "$ref": "#/components/schemas/Status"
          }
        },
        "additionalProperties": false
      },
      "CallbackDeleteRequest": {
        "required": [
          "callBackEventId"
        ],
        "type": "object",
        "properties": {
          "callBackEventId": {
            "maximum": 2147483647,
            "minimum": 1,
            "type": "integer",
            "format": "int32"
          }
        },
        "additionalProperties": false
      },
      "CallbackEventListRequest": {
        "required": [
          "mailboxId",
          "networkId",
          "showInactive"
        ],
        "type": "object",
        "properties": {
          "networkId": {
            "type": "integer",
            "format": "int32"
          },
          "mailboxId": {
            "type": "integer",
            "format": "int32"
          },
          "showInactive": {
            "type": "boolean"
          }
        },
        "additionalProperties": false
      },
      "CallbackGetEventByIDRequest": {
        "required": [
          "callBackEventId",
          "queueCount"
        ],
        "type": "object",
        "properties": {
          "callBackEventId": {
            "maximum": 2147483647,
            "minimum": 1,
            "type": "integer",
            "format": "int32"
          },
          "queueCount": {
            "type": "integer",
            "format": "int32"
          }
        },
        "additionalProperties": false
      },
      "CallbackQueueListRequest": {
        "type": "object",
        "properties": {
          "networkId": {
            "type": [
              "null",
              "integer"
            ],
            "format": "int32"
          },
          "mailboxId": {
            "type": [
              "null",
              "integer"
            ],
            "format": "int32"
          },
          "maxDays": {
            "type": [
              "null",
              "integer"
            ],
            "format": "int32"
          }
        },
        "additionalProperties": false
      },
      "CallbackTestRequest": {
        "required": [
          "callBackEventId",
          "interchangeId",
          "parcelId",
          "userId"
        ],
        "type": "object",
        "properties": {
          "callBackEventId": {
            "type": "integer",
            "format": "int32"
          },
          "parcelId": {
            "type": "integer",
            "format": "int64"
          },
          "interchangeId": {
            "type": "integer",
            "format": "int64"
          },
          "userId": {
            "type": "integer",
            "format": "int32"
          }
        },
        "additionalProperties": false
      },
      "CallbackUpdateRequest": {
        "required": [
          "callBackEventId",
          "status"
        ],
        "type": "object",
        "properties": {
          "callBackEventId": {
            "maximum": 2147483647,
            "minimum": 1,
            "type": "integer",
            "format": "int32"
          },
          "status": {
            "$ref": "#/components/schemas/Status"
          }
        },
        "additionalProperties": false
      },
      "CarbonCopyCreateRequest": {
        "required": [
          "ecgridIdCcFrom",
          "ecgridIdCcTo",
          "ecgridIdFrom",
          "ecgridIdTo",
          "gsFrom",
          "gsTo",
          "transactionSet"
        ],
        "type": "object",
        "properties": {
          "networkId": {
            "type": [
              "null",
              "integer"
            ],
            "format": "int32"
          },
          "mailboxId": {
            "type": [
              "null",
              "integer"
            ],
            "format": "int32"
          },
          "ecgridIdFrom": {
            "maximum": 2147483647,
            "minimum": 1,
            "type": "integer",
            "format": "int32"
          },
          "ecgridIdTo": {
            "maximum": 2147483647,
            "minimum": 1,
            "type": "integer",
            "format": "int32"
          },
          "ecgridIdCcFrom": {
            "maximum": 2147483647,
            "minimum": 1,
            "type": "integer",
            "format": "int32"
          },
          "ecgridIdCcTo": {
            "maximum": 2147483647,
            "minimum": 1,
            "type": "integer",
            "format": "int32"
          },
          "gsFrom": {
            "minLength": 1,
            "type": "string"
          },
          "gsTo": {
            "minLength": 1,
            "type": "string"
          },
          "transactionSet": {
            "maxLength": 20,
            "minLength": 0,
            "type": "string"
          }
        },
        "additionalProperties": false
      },
      "CarbonCopyListRequest": {
        "required": [
          "ecgridIdFrom",
          "ecgridIdTo",
          "showInactive"
        ],
        "type": "object",
        "properties": {
          "networkId": {
            "type": [
              "null",
              "integer"
            ],
            "format": "int32"
          },
          "mailboxId": {
            "type": [
              "null",
              "integer"
            ],
            "format": "int32"
          },
          "ecgridIdFrom": {
            "maximum": 2147483647,
            "minimum": -1,
            "type": "integer",
            "format": "int32"
          },
          "ecgridIdTo": {
            "maximum": 2147483647,
            "minimum": -1,
            "type": "integer",
            "format": "int32"
          },
          "showInactive": {
            "type": "boolean"
          }
        },
        "additionalProperties": false
      },
      "CarbonCopyUpdateRequest": {
        "required": [
          "carbonCopyId"
        ],
        "type": "object",
        "properties": {
          "carbonCopyId": {
            "type": "integer",
            "format": "int32"
          },
          "activate": {
            "type": [
              "null",
              "boolean"
            ]
          },
          "suspend": {
            "type": [
              "null",
              "boolean"
            ]
          }
        },
        "additionalProperties": false
      },
      "CellCarrier": {
        "enum": [
          "NoChange",
          "Undefined",
          "ATTCingular",
          "Verizon",
          "TMobile",
          "SprintPCS",
          "Nextel",
          "Alltel",
          "VirginMobile",
          "ATTPreCingular",
          "ATT",
          "BoostMobile",
          "USCellular",
          "MetroPCS",
          "Powertel"
        ],
        "type": "string",
        "description": "Cell Carrier ENUM"
      },
      "CertificateAddPrivateRequest": {
        "required": [
          "beginUsage",
          "certType",
          "commId",
          "usage"
        ],
        "type": "object",
        "properties": {
          "commId": {
            "type": "integer",
            "format": "int32"
          },
          "certType": {
            "$ref": "#/components/schemas/CertificateType"
          },
          "keyId": {
            "type": [
              "null",
              "string"
            ]
          },
          "userId": {
            "maxLength": 50,
            "type": [
              "null",
              "string"
            ]
          },
          "beginUsage": {
            "type": "string",
            "format": "date-time"
          },
          "usage": {
            "$ref": "#/components/schemas/CertificateUsage"
          },
          "partnerAs2Id": {
            "type": [
              "null",
              "string"
            ]
          },
          "cert": {
            "type": [
              "null",
              "string"
            ]
          },
          "password": {
            "maxLength": 128,
            "minLength": 1,
            "type": [
              "null",
              "string"
            ]
          }
        },
        "additionalProperties": false
      },
      "CertificateAddPublicRequest": {
        "required": [
          "beginUsage",
          "certType",
          "commId",
          "usage"
        ],
        "type": "object",
        "properties": {
          "commId": {
            "type": "integer",
            "format": "int32"
          },
          "certType": {
            "$ref": "#/components/schemas/CertificateType"
          },
          "keyId": {
            "maxLength": 50,
            "type": [
              "null",
              "string"
            ]
          },
          "userId": {
            "maxLength": 50,
            "type": [
              "null",
              "string"
            ]
          },
          "beginUsage": {
            "type": "string",
            "format": "date-time"
          },
          "usage": {
            "$ref": "#/components/schemas/CertificateUsage"
          },
          "partnerCommId": {
            "type": [
              "null",
              "string"
            ]
          },
          "partnerUrl": {
            "type": [
              "null",
              "string"
            ]
          },
          "cert": {
            "type": [
              "null",
              "string"
            ]
          }
        },
        "additionalProperties": false
      },
      "CertificateCreatePrivateRequest": {
        "required": [
          "beginUsage",
          "commId",
          "expires",
          "partnerAs2Id",
          "secureHashAlgorithm",
          "usage"
        ],
        "type": "object",
        "properties": {
          "commId": {
            "type": "integer",
            "format": "int32"
          },
          "beginUsage": {
            "type": "string",
            "format": "date-time"
          },
          "usage": {
            "$ref": "#/components/schemas/CertificateUsage"
          },
          "secureHashAlgorithm": {
            "$ref": "#/components/schemas/CertificateSecureHashAlgorithm"
          },
          "partnerAs2Id": {
            "minLength": 1,
            "type": "string"
          },
          "expires": {
            "type": "string",
            "format": "date-time"
          }
        },
        "additionalProperties": false
      },
      "CertificateRenewPrivateRequest": {
        "required": [
          "certKeyId",
          "commId",
          "overlapDays",
          "secureHashAlgorithm",
          "years"
        ],
        "type": "object",
        "properties": {
          "commId": {
            "type": "integer",
            "format": "int32"
          },
          "certKeyId": {
            "type": "integer",
            "format": "int32"
          },
          "overlapDays": {
            "maximum": 180,
            "minimum": 1,
            "type": "integer",
            "format": "int32"
          },
          "years": {
            "maximum": 2,
            "minimum": 1,
            "type": "integer",
            "format": "int32"
          },
          "secureHashAlgorithm": {
            "$ref": "#/components/schemas/CertificateSecureHashAlgorithm"
          }
        },
        "additionalProperties": false
      },
      "CertificateSecureHashAlgorithm": {
        "enum": [
          "sha1",
          "sha2"
        ],
        "type": "string",
        "description": "Certificate Secure Hash Algorithm ENUM"
      },
      "CertificateTerminateRequest": {
        "required": [
          "certKeyId",
          "commId"
        ],
        "type": "object",
        "properties": {
          "commId": {
            "type": "integer",
            "format": "int32"
          },
          "certKeyId": {
            "type": "integer",
            "format": "int32"
          }
        },
        "additionalProperties": false
      },
      "CertificateType": {
        "enum": [
          "X509",
          "PGP",
          "SSH"
        ],
        "type": "string",
        "description": "Certificate Type ENUM"
      },
      "CertificateUsage": {
        "enum": [
          "SSL",
          "Encryption",
          "Signature",
          "EncryptionAndSignature"
        ],
        "type": "string",
        "description": "Certificate Usage ENUM"
      },
      "CommCreateRequest": {
        "required": [
          "beginUsage",
          "commType",
          "compressData",
          "ecgridHosted",
          "encryptData",
          "endUsage",
          "httpAuthentication",
          "mailboxId",
          "networkId",
          "ownerUserId",
          "receiptType",
          "signData",
          "sslClientAuthentication",
          "status",
          "useType"
        ],
        "type": "object",
        "properties": {
          "networkId": {
            "type": "integer",
            "format": "int32"
          },
          "mailboxId": {
            "type": "integer",
            "format": "int32"
          },
          "commType": {
            "$ref": "#/components/schemas/NetworkGatewayCommChannel"
          },
          "ownerUserId": {
            "type": "integer",
            "format": "int32"
          },
          "ecgridHosted": {
            "type": "boolean"
          },
          "identifier": {
            "maxLength": 128,
            "minLength": 0,
            "type": [
              "null",
              "string"
            ]
          },
          "url": {
            "type": [
              "null",
              "string"
            ]
          },
          "version": {
            "type": [
              "null",
              "string"
            ]
          },
          "signData": {
            "type": "boolean"
          },
          "encryptData": {
            "type": "boolean"
          },
          "compressData": {
            "type": "boolean"
          },
          "receiptType": {
            "$ref": "#/components/schemas/ReceiptType"
          },
          "httpAuthentication": {
            "$ref": "#/components/schemas/HTTPAuthType"
          },
          "httpUser": {
            "type": [
              "null",
              "string"
            ]
          },
          "httpPassword": {
            "type": [
              "null",
              "string"
            ]
          },
          "sslClientAuthentication": {
            "type": "boolean"
          },
          "useType": {
            "$ref": "#/components/schemas/UseType"
          },
          "beginUsage": {
            "type": "string",
            "format": "date-time"
          },
          "endUsage": {
            "type": "string",
            "format": "date-time"
          },
          "status": {
            "$ref": "#/components/schemas/Status"
          }
        },
        "additionalProperties": false
      },
      "CommFindRequest": {
        "required": [
          "commType",
          "identifier",
          "privateKeyRequired",
          "showInactive",
          "useType"
        ],
        "type": "object",
        "properties": {
          "identifier": {
            "maxLength": 128,
            "minLength": 1,
            "type": "string"
          },
          "commType": {
            "$ref": "#/components/schemas/NetworkGatewayCommChannel"
          },
          "privateKeyRequired": {
            "type": "boolean"
          },
          "useType": {
            "$ref": "#/components/schemas/UseType"
          },
          "showInactive": {
            "type": "boolean"
          }
        },
        "additionalProperties": false
      },
      "CommListRequest": {
        "required": [
          "commType",
          "privateKeyRequired",
          "showInactive",
          "useType",
          "withCerts"
        ],
        "type": "object",
        "properties": {
          "networkId": {
            "type": [
              "null",
              "integer"
            ],
            "format": "int32"
          },
          "mailboxId": {
            "type": [
              "null",
              "integer"
            ],
            "format": "int32"
          },
          "commType": {
            "$ref": "#/components/schemas/NetworkGatewayCommChannel"
          },
          "privateKeyRequired": {
            "type": "boolean"
          },
          "useType": {
            "$ref": "#/components/schemas/UseType"
          },
          "showInactive": {
            "type": "boolean"
          },
          "withCerts": {
            "type": "boolean"
          }
        },
        "additionalProperties": false
      },
      "CommPairRequest": {
        "required": [
          "commType",
          "ecgridIdFrom",
          "ecgridIdTo",
          "testMode"
        ],
        "type": "object",
        "properties": {
          "commType": {
            "$ref": "#/components/schemas/NetworkGatewayCommChannel"
          },
          "ecgridIdFrom": {
            "maximum": 49,
            "minimum": 1,
            "type": "integer",
            "format": "int32"
          },
          "ecgridIdTo": {
            "maximum": 49,
            "minimum": 1,
            "type": "integer",
            "format": "int32"
          },
          "defaultId": {
            "type": [
              "null",
              "string"
            ]
          },
          "testMode": {
            "type": "boolean"
          }
        },
        "additionalProperties": false
      },
      "CommSetPairRequest": {
        "required": [
          "ecgridIdFrom",
          "ecgridIdTo"
        ],
        "type": "object",
        "properties": {
          "ecgridIdFrom": {
            "maximum": 49,
            "minimum": 1,
            "type": "integer",
            "format": "int32"
          },
          "ecgridIdTo": {
            "maximum": 49,
            "minimum": 1,
            "type": "integer",
            "format": "int32"
          },
          "identifier1": {
            "type": [
              "null",
              "string"
            ]
          },
          "identifier2": {
            "type": [
              "null",
              "string"
            ]
          }
        },
        "additionalProperties": false
      },
      "CommUpdateConfigRequest": {
        "required": [
          "commId"
        ],
        "type": "object",
        "properties": {
          "commId": {
            "maximum": 2147483647,
            "minimum": 1,
            "type": "integer",
            "format": "int32"
          },
          "mailboxId": {
            "maximum": 2147483647,
            "minimum": 1,
            "type": [
              "null",
              "integer"
            ],
            "format": "int32"
          },
          "status": {
            "$ref": "#/components/schemas/Status"
          }
        },
        "additionalProperties": false
      },
      "CommUpdateRequest": {
        "required": [
          "beginUsage",
          "commId",
          "compressData",
          "encryptData",
          "endUsage",
          "httpAuthentication",
          "httpPassword",
          "httpUser",
          "ownerUserId",
          "receiptType",
          "signData",
          "useType"
        ],
        "type": "object",
        "properties": {
          "commId": {
            "maximum": 2147483647,
            "minimum": 1,
            "type": "integer",
            "format": "int32"
          },
          "ownerUserId": {
            "type": "integer",
            "format": "int32"
          },
          "identifier": {
            "maxLength": 128,
            "minLength": 1,
            "type": [
              "null",
              "string"
            ]
          },
          "url": {
            "maxLength": 255,
            "minLength": 0,
            "type": [
              "null",
              "string"
            ]
          },
          "version": {
            "type": [
              "null",
              "string"
            ]
          },
          "signData": {
            "type": "boolean"
          },
          "encryptData": {
            "type": "boolean"
          },
          "compressData": {
            "type": "boolean"
          },
          "receiptType": {
            "$ref": "#/components/schemas/ReceiptType"
          },
          "httpAuthentication": {
            "$ref": "#/components/schemas/HTTPAuthType"
          },
          "httpUser": {
            "maxLength": 50,
            "minLength": 0,
            "type": "string"
          },
          "httpPassword": {
            "maxLength": 50,
            "minLength": 0,
            "type": "string"
          },
          "sslClientAuthentication": {
            "type": [
              "null",
              "boolean"
            ]
          },
          "useType": {
            "$ref": "#/components/schemas/UseType"
          },
          "beginUsage": {
            "type": "string",
            "format": "date-time"
          },
          "endUsage": {
            "type": "string",
            "format": "date-time"
          }
        },
        "additionalProperties": false
      },
      "Direction": {
        "enum": [
          "NoDir",
          "OutBox",
          "InBox"
        ],
        "type": "string",
        "description": "Direction ENUM"
      },
      "ECGridOSSOAPErrorCode": {
        "enum": [
          "SoapError",
          "SessionTimeout",
          "AccessDenied",
          "NotFound",
          "InvalidId",
          "DuplicateId",
          "IdExistsOnNetwork",
          "InvalidDataType",
          "InvalidDataLength",
          "DataError",
          "SqlError"
        ],
        "type": "string"
      },
      "ECGridSOAPErrorInfo": {
        "type": "object",
        "properties": {
          "errorCode": {
            "$ref": "#/components/schemas/ECGridOSSOAPErrorCode"
          },
          "errorString": {
            "type": [
              "null",
              "string"
            ]
          },
          "errorItem": {
            "type": [
              "null",
              "string"
            ]
          },
          "errorMessage": {
            "type": [
              "null",
              "string"
            ]
          }
        },
        "additionalProperties": false
      },
      "EDIStandard": {
        "enum": [
          "X12",
          "EDIFACT",
          "TRADACOMS",
          "VDA",
          "XML",
          "TXT",
          "PDF",
          "Binary"
        ],
        "type": "string",
        "description": "EDI Standard ENUM"
      },
      "EMailPayload": {
        "enum": [
          "Body",
          "Attachment"
        ],
        "type": "string",
        "description": "EMail Payload ENUM"
      },
      "EMailSystem": {
        "enum": [
          "smtp",
          "x400"
        ],
        "type": "string",
        "description": "EMail System ENUM"
      },
      "HTTPAuthType": {
        "enum": [
          "None",
          "Basic",
          "Digest"
        ],
        "type": "string",
        "description": "HTTP Auth Type ENUM"
      },
      "HttpStatusCode": {
        "enum": [
          "Continue",
          "SwitchingProtocols",
          "Processing",
          "EarlyHints",
          "OK",
          "Created",
          "Accepted",
          "NonAuthoritativeInformation",
          "NoContent",
          "ResetContent",
          "PartialContent",
          "MultiStatus",
          "AlreadyReported",
          "IMUsed",
          "MultipleChoices",
          "MovedPermanently",
          "Found",
          "SeeOther",
          "NotModified",
          "UseProxy",
          "Unused",
          "TemporaryRedirect",
          "PermanentRedirect",
          "BadRequest",
          "Unauthorized",
          "PaymentRequired",
          "Forbidden",
          "NotFound",
          "MethodNotAllowed",
          "NotAcceptable",
          "ProxyAuthenticationRequired",
          "RequestTimeout",
          "Conflict",
          "Gone",
          "LengthRequired",
          "PreconditionFailed",
          "RequestEntityTooLarge",
          "RequestUriTooLong",
          "UnsupportedMediaType",
          "RequestedRangeNotSatisfiable",
          "ExpectationFailed",
          "MisdirectedRequest",
          "UnprocessableEntity",
          "Locked",
          "FailedDependency",
          "UpgradeRequired",
          "PreconditionRequired",
          "TooManyRequests",
          "RequestHeaderFieldsTooLarge",
          "UnavailableForLegalReasons",
          "InternalServerError",
          "NotImplemented",
          "BadGateway",
          "ServiceUnavailable",
          "GatewayTimeout",
          "HttpVersionNotSupported",
          "VariantAlsoNegotiates",
          "InsufficientStorage",
          "LoopDetected",
          "NotExtended",
          "NetworkAuthenticationRequired"
        ],
        "type": "string"
      },
      "IDCreateRequest": {
        "required": [
          "description",
          "id"
        ],
        "type": "object",
        "properties": {
          "networkId": {
            "type": [
              "null",
              "integer"
            ],
            "description": "Optional filter by network.",
            "format": "int32"
          },
          "mailboxId": {
            "type": [
              "null",
              "integer"
            ],
            "description": "Optional filter by mailbox.",
            "format": "int32"
          },
          "qualifier": {
            "maxLength": 4,
            "type": [
              "null",
              "string"
            ],
            "description": "Qualifier Max Length 4"
          },
          "id": {
            "maxLength": 35,
            "minLength": 1,
            "type": "string",
            "description": "ID Min Length 1, Max Length 35"
          },
          "description": {
            "maxLength": 50,
            "minLength": 3,
            "type": "string",
            "description": "Description of the ID"
          },
          "routingGroup": {
            "type": [
              "null",
              "string"
            ],
            "description": "ProductionA, Test, ManagedFileTransfer"
          }
        },
        "additionalProperties": false,
        "description": "Request payload for adding a new ECGrid ID."
      },
      "IDDescriptionUpdateRequest": {
        "required": [
          "description"
        ],
        "type": "object",
        "properties": {
          "description": {
            "maxLength": 35,
            "minLength": 3,
            "type": "string",
            "description": "Description, Must be between 3 and 35 characters."
          }
        },
        "additionalProperties": false
      },
      "IDFindRequest": {
        "required": [
          "showInactive"
        ],
        "type": "object",
        "properties": {
          "networkId": {
            "type": [
              "null",
              "integer"
            ],
            "format": "int32"
          },
          "mailboxId": {
            "type": [
              "null",
              "integer"
            ],
            "format": "int32"
          },
          "description": {
            "maxLength": 128,
            "minLength": 0,
            "type": [
              "null",
              "string"
            ]
          },
          "showInactive": {
            "type": "boolean"
          },
          "qualifier": {
            "maxLength": 4,
            "minLength": 0,
            "type": [
              "null",
              "string"
            ]
          },
          "id": {
            "maxLength": 35,
            "minLength": 1,
            "type": [
              "null",
              "string"
            ]
          }
        },
        "additionalProperties": false
      },
      "IDListRequest": {
        "type": "object",
        "properties": {
          "networkId": {
            "type": [
              "null",
              "integer"
            ],
            "description": "Optional filter by network.",
            "format": "int32"
          },
          "mailboxId": {
            "type": [
              "null",
              "integer"
            ],
            "description": "Optional filter by mailbox.",
            "format": "int32"
          },
          "showInactive": {
            "type": [
              "null",
              "boolean"
            ],
            "description": "Optional flag to show inactive/active IDs"
          },
          "pageSize": {
            "type": [
              "null",
              "integer"
            ],
            "description": "Optional specify page size",
            "format": "int32"
          },
          "pageNumber": {
            "type": [
              "null",
              "integer"
            ],
            "description": "Optional select page number",
            "format": "int32"
          }
        },
        "additionalProperties": false
      },
      "IDUpdateConfigRequest": {
        "required": [
          "ecgridId"
        ],
        "type": "object",
        "properties": {
          "ecgridId": {
            "maximum": 2147483647,
            "minimum": 1,
            "type": "integer",
            "format": "int32"
          },
          "ownerUserId": {
            "type": [
              "null",
              "integer"
            ],
            "format": "int32"
          },
          "routingGroup": {
            "$ref": "#/components/schemas/RoutingGroup"
          },
          "activate": {
            "type": [
              "null",
              "boolean"
            ]
          },
          "suspend": {
            "type": [
              "null",
              "boolean"
            ]
          }
        },
        "additionalProperties": false
      },
      "InterchangeHeaderRequest": {
        "required": [
          "interchangeHeader"
        ],
        "type": "object",
        "properties": {
          "interchangeHeader": {
            "minLength": 1,
            "type": "string"
          }
        },
        "additionalProperties": false
      },
      "InterchangeListRequest": {
        "required": [
          "ecgridIdFrom",
          "ecgridIdTo"
        ],
        "type": "object",
        "properties": {
          "ecgridIdFrom": {
            "type": "integer",
            "format": "int32"
          },
          "ecgridIdTo": {
            "type": "integer",
            "format": "int32"
          },
          "beginDate": {
            "type": [
              "null",
              "string"
            ],
            "format": "date-time"
          },
          "endDate": {
            "type": [
              "null",
              "string"
            ],
            "format": "date-time"
          },
          "interchangeControlId": {
            "type": [
              "null",
              "string"
            ]
          },
          "networkId": {
            "type": [
              "null",
              "integer"
            ],
            "format": "int32"
          },
          "mailboxId": {
            "type": [
              "null",
              "integer"
            ],
            "format": "int32"
          },
          "pageNo": {
            "maximum": 32767,
            "minimum": 1,
            "type": [
              "null",
              "integer"
            ],
            "format": "int32"
          },
          "recordsPerPage": {
            "maximum": 1000,
            "minimum": 1,
            "type": [
              "null",
              "integer"
            ],
            "format": "int32"
          },
          "timeZoneId": {
            "type": [
              "null",
              "string"
            ],
            "description": "IANA or Windows timezone ID (preferred).\r\nExamples:\r\n- \"America/New_York\"\r\n- \"UTC\"\r\n- \"Pacific Standard Time\""
          },
          "utcOffsetMinutes": {
            "type": [
              "null",
              "integer"
            ],
            "description": "Optional explicit offset in minutes (fallback).\r\nExample: -300 for EST",
            "format": "int32"
          },
          "blocked": {
            "type": "boolean"
          },
          "pending": {
            "type": "boolean"
          },
          "excludeParcel": {
            "type": "boolean"
          },
          "noRoute": {
            "type": "boolean"
          }
        },
        "additionalProperties": false
      },
      "KeyCreateKeyRequest": {
        "required": [
          "objectId",
          "systemObject",
          "visibility"
        ],
        "type": "object",
        "properties": {
          "key": {
            "type": [
              "null",
              "string"
            ]
          },
          "systemObject": {
            "$ref": "#/components/schemas/Objects"
          },
          "objectId": {
            "maximum": 9.223372036854776E+18,
            "minimum": 1,
            "type": "integer",
            "format": "int64"
          },
          "visibility": {
            "$ref": "#/components/schemas/KeyVisibility"
          },
          "value": {
            "maxLength": 2147483647,
            "minLength": 0,
            "type": [
              "null",
              "string"
            ]
          },
          "meta": {
            "maxLength": 8000,
            "minLength": 0,
            "type": [
              "null",
              "string"
            ]
          },
          "daysToLive": {
            "maximum": 2147483647,
            "minimum": -1,
            "type": [
              "null",
              "integer"
            ],
            "format": "int32"
          },
          "minutesToLive": {
            "maximum": 2147483647,
            "minimum": 1,
            "type": [
              "null",
              "integer"
            ],
            "format": "int32"
          }
        },
        "additionalProperties": false
      },
      "KeyDeleteRequest": {
        "required": [
          "objectId",
          "systemObject",
          "visibility"
        ],
        "type": "object",
        "properties": {
          "key": {
            "maxLength": 512,
            "minLength": 1,
            "type": [
              "null",
              "string"
            ]
          },
          "systemObject": {
            "$ref": "#/components/schemas/Objects"
          },
          "objectId": {
            "maximum": 9.223372036854776E+18,
            "minimum": 1,
            "type": "integer",
            "format": "int64"
          },
          "visibility": {
            "$ref": "#/components/schemas/KeyVisibility"
          }
        },
        "additionalProperties": false
      },
      "KeyGetKeyRequest": {
        "required": [
          "objectId",
          "systemObject",
          "visibility"
        ],
        "type": "object",
        "properties": {
          "key": {
            "maxLength": 512,
            "minLength": 1,
            "type": [
              "null",
              "string"
            ]
          },
          "systemObject": {
            "$ref": "#/components/schemas/Objects"
          },
          "objectId": {
            "maximum": 9.223372036854776E+18,
            "minimum": 1,
            "type": "integer",
            "format": "int64"
          },
          "visibility": {
            "$ref": "#/components/schemas/KeyVisibility"
          }
        },
        "additionalProperties": false
      },
      "KeyListRequest": {
        "required": [
          "objectId",
          "systemObject"
        ],
        "type": "object",
        "properties": {
          "systemObject": {
            "$ref": "#/components/schemas/Objects"
          },
          "objectId": {
            "maximum": 9.223372036854776E+18,
            "minimum": 1,
            "type": "integer",
            "format": "int64"
          }
        },
        "additionalProperties": false
      },
      "KeyVisibility": {
        "enum": [
          "Private",
          "Shared",
          "Public",
          "Session"
        ],
        "type": "string",
        "description": "Key Visibility ENUM"
      },
      "LoginRequest": {
        "required": [
          "password",
          "username"
        ],
        "type": "object",
        "properties": {
          "username": {
            "maxLength": 128,
            "minLength": 1,
            "type": "string"
          },
          "password": {
            "maxLength": 256,
            "minLength": 1,
            "type": "string"
          }
        },
        "additionalProperties": false
      },
      "MailboxAddRequest": {
        "required": [
          "name",
          "userId"
        ],
        "type": "object",
        "properties": {
          "networkId": {
            "type": [
              "null",
              "integer"
            ],
            "description": "Optional Network ID.",
            "format": "int32"
          },
          "userId": {
            "type": "integer",
            "description": "The User ID this user for the Mailbox Owner",
            "format": "int32"
          },
          "name": {
            "maxLength": 128,
            "minLength": 3,
            "type": "string",
            "description": "Name, Must be between 3 and 128 characters."
          }
        },
        "additionalProperties": false,
        "description": "Request payload for adding a new ECGrid user."
      },
      "MailboxListRequest": {
        "type": "object",
        "properties": {
          "networkId": {
            "type": [
              "null",
              "integer"
            ],
            "description": "Optional filter by network.",
            "format": "int32"
          },
          "name": {
            "type": [
              "null",
              "string"
            ],
            "description": "Optional name filter.\r\nMay be a full email address.",
            "example": "john.doe@example.com"
          }
        },
        "additionalProperties": false
      },
      "MailboxUpdateConfigRequest": {
        "type": "object",
        "properties": {
          "mailboxId": {
            "type": [
              "null",
              "integer"
            ],
            "format": "int32"
          },
          "networkId": {
            "type": [
              "null",
              "integer"
            ],
            "format": "int32"
          },
          "useType": {
            "$ref": "#/components/schemas/UseType"
          },
          "userId": {
            "type": [
              "null",
              "integer"
            ],
            "format": "int32"
          },
          "contactType": {
            "$ref": "#/components/schemas/NetworkContactType"
          },
          "deleteOnDownload": {
            "type": "boolean"
          },
          "managed": {
            "type": "boolean"
          },
          "activate": {
            "type": "boolean"
          },
          "suspend": {
            "type": "boolean"
          }
        },
        "additionalProperties": false
      },
      "MailboxUpdateRequest": {
        "required": [
          "mailboxId"
        ],
        "type": "object",
        "properties": {
          "mailboxId": {
            "type": "integer",
            "format": "int32"
          },
          "description": {
            "maxLength": 255,
            "minLength": 0,
            "type": [
              "null",
              "string"
            ]
          },
          "name": {
            "maxLength": 127,
            "minLength": 0,
            "type": [
              "null",
              "string"
            ]
          }
        },
        "additionalProperties": false
      },
      "MailboxX12DelimitersRequest": {
        "required": [
          "elmSep",
          "mailboxId",
          "segTerm",
          "subElmSep"
        ],
        "type": "object",
        "properties": {
          "mailboxId": {
            "type": "integer",
            "format": "int32"
          },
          "segTerm": {
            "type": "integer",
            "format": "int32"
          },
          "elmSep": {
            "type": "integer",
            "format": "int32"
          },
          "subElmSep": {
            "type": "integer",
            "format": "int32"
          }
        },
        "additionalProperties": false
      },
      "NetworkContactType": {
        "enum": [
          "Owner",
          "Errors",
          "Interconnects",
          "Notices",
          "Reports",
          "Accounting",
          "CustomerService"
        ],
        "type": "string",
        "description": "Network Contact Type ENUM"
      },
      "NetworkGatewayCommChannel": {
        "enum": [
          "none",
          "ftp",
          "sftp",
          "as2",
          "http",
          "oftp",
          "x400",
          "gisb",
          "rnif",
          "cxml",
          "ftpsslimplicit",
          "peppol",
          "as4",
          "undefined"
        ],
        "type": "string",
        "description": "Network Gateway Comm Channel ENUM"
      },
      "NetworkGetContactRequest": {
        "required": [
          "contactType",
          "networkId"
        ],
        "type": "object",
        "properties": {
          "networkId": {
            "type": "integer",
            "format": "int32"
          },
          "contactType": {
            "$ref": "#/components/schemas/NetworkContactType"
          }
        },
        "additionalProperties": false
      },
      "NetworkListRequest": {
        "type": "object",
        "properties": {
          "name": {
            "maxLength": 40,
            "type": [
              "null",
              "string"
            ],
            "description": "Name, up to 40 characters."
          },
          "getOutages": {
            "type": "boolean"
          }
        },
        "additionalProperties": false
      },
      "NetworkUpdateConfigRequest": {
        "required": [
          "networkId"
        ],
        "type": "object",
        "properties": {
          "networkId": {
            "type": "integer",
            "format": "int32"
          },
          "userId": {
            "type": [
              "null",
              "integer"
            ],
            "format": "int32"
          },
          "contactType": {
            "$ref": "#/components/schemas/NetworkContactType"
          },
          "deleteOnDownload": {
            "type": [
              "null",
              "boolean"
            ]
          },
          "url": {
            "type": [
              "null",
              "string"
            ]
          },
          "websiteType": {
            "$ref": "#/components/schemas/NetworkWebsiteType"
          }
        },
        "additionalProperties": false
      },
      "NetworkUpdateRequest": {
        "required": [
          "location",
          "name"
        ],
        "type": "object",
        "properties": {
          "networkId": {
            "type": "integer",
            "description": "Optional Network ID.",
            "format": "int32"
          },
          "name": {
            "maxLength": 39,
            "minLength": 4,
            "type": "string",
            "description": "Name, up to 50 characters."
          },
          "location": {
            "maxLength": 254,
            "minLength": 1,
            "type": "string",
            "description": "Last name, up to 50 characters."
          }
        },
        "additionalProperties": false
      },
      "NetworkWebsiteType": {
        "enum": [
          "Home",
          "Support",
          "Login"
        ],
        "type": "string",
        "description": "Network Website Type ENUM"
      },
      "NetworkX12DelimitersRequest": {
        "required": [
          "elmSep",
          "networkId",
          "segTerm",
          "subElmSep"
        ],
        "type": "object",
        "properties": {
          "networkId": {
            "type": "integer",
            "format": "int32"
          },
          "segTerm": {
            "type": "integer",
            "format": "int32"
          },
          "elmSep": {
            "type": "integer",
            "format": "int32"
          },
          "subElmSep": {
            "type": "integer",
            "format": "int32"
          }
        },
        "additionalProperties": false
      },
      "Objects": {
        "enum": [
          "System",
          "User",
          "Network",
          "Mailbox",
          "ECGridID",
          "Interconnect",
          "Migration",
          "Parcel",
          "Interchange",
          "CarbonCopy",
          "CallBackEvent",
          "AS2",
          "Comm",
          "GISB",
          "InterconnectNote",
          "PriceList",
          "Contract",
          "Invoice"
        ],
        "type": "string",
        "description": "Objects ENUM"
      },
      "ParcelAcknowledgmentNoteRequest": {
        "required": [
          "parcelId"
        ],
        "type": "object",
        "properties": {
          "parcelId": {
            "type": "integer",
            "format": "int64"
          },
          "subject": {
            "type": [
              "null",
              "string"
            ]
          },
          "note": {
            "type": [
              "null",
              "string"
            ]
          }
        },
        "additionalProperties": false
      },
      "ParcelConfirmRequest": {
        "required": [
          "parcelId"
        ],
        "type": "object",
        "properties": {
          "parcelId": {
            "type": "integer",
            "description": "ECGrid parcel ID to confirm. Obtain this from a prior inbox list or upload response.",
            "format": "int64"
          },
          "status": {
            "$ref": "#/components/schemas/ParcelStatus"
          }
        },
        "additionalProperties": false,
        "description": "Request payload for POST /v2/parcels/confirm. Include `status` only when confirming\r\na pending acknowledgment — omitting it selects the standard download-confirm path."
      },
      "ParcelDownloadRequest": {
        "required": [
          "parcelId"
        ],
        "type": "object",
        "properties": {
          "parcelId": {
            "type": "integer",
            "format": "int64"
          },
          "noUpdate": {
            "type": "boolean"
          }
        },
        "additionalProperties": false
      },
      "ParcelFindMailbagControlIDRequest": {
        "required": [
          "mailboxId",
          "networkId"
        ],
        "type": "object",
        "properties": {
          "networkId": {
            "type": "integer",
            "format": "int32"
          },
          "mailboxId": {
            "type": "integer",
            "format": "int32"
          },
          "mailbagControlId": {
            "type": [
              "null",
              "string"
            ]
          },
          "beginDate": {
            "type": [
              "null",
              "string"
            ],
            "format": "date-time"
          },
          "endDate": {
            "type": [
              "null",
              "string"
            ],
            "format": "date-time"
          }
        },
        "additionalProperties": false
      },
      "ParcelInboxPendingListRequest": {
        "type": "object",
        "properties": {
          "networkId": {
            "type": [
              "null",
              "integer"
            ],
            "description": "Optional. When provided with `mailboxId`, scopes the query to that specific mailbox and\r\nenables the `ParcelInBoxEx` or `ParcelInBoxExShort` routing paths.",
            "format": "int32"
          },
          "mailboxId": {
            "type": [
              "null",
              "integer"
            ],
            "description": "Optional. When provided with `networkId`, scopes the query to that mailbox.\r\nPass `0` to target the network root mailbox.",
            "format": "int32"
          },
          "ecgridIdFrom": {
            "type": [
              "null",
              "integer"
            ],
            "description": "Optional sender ECGrid ID filter. When provided together with `ecgridIdTo`,\r\n`networkId`, `mailboxId`, and `status`, triggers the\r\n`ParcelInBoxExShort` compact-result path.",
            "format": "int32"
          },
          "ecgridIdTo": {
            "type": [
              "null",
              "integer"
            ],
            "description": "Optional recipient ECGrid ID filter. When provided together with `ecgridIdFrom`,\r\n`networkId`, `mailboxId`, and `status`, triggers the\r\n`ParcelInBoxExShort` compact-result path.",
            "format": "int32"
          },
          "status": {
            "$ref": "#/components/schemas/ParcelStatus"
          }
        },
        "additionalProperties": false,
        "description": "Request payload for POST /v2/parcels/pending-inbox-list. All fields are optional; the\r\ncombination supplied selects the SOAP variant — see the endpoint remarks for routing details."
      },
      "ParcelListRequest": {
        "required": [
          "ecgridIdFrom",
          "ecgridIdTo"
        ],
        "type": "object",
        "properties": {
          "networkId": {
            "type": [
              "null",
              "integer"
            ],
            "format": "int32"
          },
          "mailboxId": {
            "type": [
              "null",
              "integer"
            ],
            "format": "int32"
          },
          "beginDate": {
            "type": [
              "null",
              "string"
            ],
            "format": "date-time"
          },
          "endDate": {
            "type": [
              "null",
              "string"
            ],
            "format": "date-time"
          },
          "timeZoneId": {
            "type": [
              "null",
              "string"
            ],
            "description": "IANA or Windows timezone ID (preferred).\r\nExamples:\r\n- \"America/New_York\"\r\n- \"UTC\"\r\n- \"Pacific Standard Time\""
          },
          "utcOffsetMinutes": {
            "type": [
              "null",
              "integer"
            ],
            "description": "Optional explicit offset in minutes (fallback).\r\nExample: -300 for EST",
            "format": "int32"
          },
          "ecgridIdFrom": {
            "type": "integer",
            "format": "int32"
          },
          "ecgridIdTo": {
            "type": "integer",
            "format": "int32"
          },
          "mailbagControlId": {
            "type": [
              "null",
              "string"
            ]
          },
          "pageNo": {
            "maximum": 32767,
            "minimum": 1,
            "type": [
              "null",
              "integer"
            ],
            "format": "int32"
          },
          "recordsPerPage": {
            "maximum": 1000,
            "minimum": 1,
            "type": [
              "null",
              "integer"
            ],
            "format": "int32"
          },
          "desc": {
            "type": "boolean"
          },
          "short": {
            "type": "boolean"
          }
        },
        "additionalProperties": false
      },
      "ParcelSendTestFileRequest": {
        "required": [
          "documentType",
          "ecgridIdFrom",
          "ecgridIdTo"
        ],
        "type": "object",
        "properties": {
          "ecgridIdFrom": {
            "type": "integer",
            "format": "int32"
          },
          "ecgridIdTo": {
            "type": "integer",
            "format": "int32"
          },
          "documentType": {
            "$ref": "#/components/schemas/EDIStandard"
          }
        },
        "additionalProperties": false
      },
      "ParcelSetMailbagControlIDRequest": {
        "required": [
          "parcelId"
        ],
        "type": "object",
        "properties": {
          "parcelId": {
            "type": "integer",
            "format": "int64"
          },
          "mailbagControlId": {
            "type": [
              "null",
              "string"
            ]
          }
        },
        "additionalProperties": false
      },
      "ParcelStatus": {
        "enum": [
          "InBoxReady",
          "InBoxTransferred",
          "x1256Pending",
          "as2Receive",
          "as2MDNSent",
          "as2MDNPending",
          "as2MDNRejected",
          "as2MDNConfirmed",
          "as2Sent",
          "as2SendFailed",
          "gisbReceived",
          "gisbSent",
          "gisbSendFailed",
          "cxmlReceived",
          "cxmlSent",
          "cxmlSendFailed",
          "ftpReceived",
          "x400Received",
          "smtpReceived",
          "oftpReceived",
          "oftpSendFailed",
          "oftpSent",
          "oftpAborted",
          "ftpSent",
          "ftpSendFailed",
          "as4Received",
          "as4MDNSent",
          "as4MDNPending",
          "as4MDNRejected",
          "as4MDNConfirmed",
          "as4Sent",
          "as4SendFailed",
          "outboxDeliveryError"
        ],
        "type": "string",
        "description": "Status of a Parcel ENUM"
      },
      "ParcelUpdateRequest": {
        "required": [
          "parcelId"
        ],
        "type": "object",
        "properties": {
          "parcelId": {
            "type": "integer",
            "format": "int64"
          },
          "statusLocal": {
            "type": [
              "null",
              "integer"
            ],
            "format": "int32"
          },
          "status": {
            "$ref": "#/components/schemas/ParcelStatus"
          },
          "transLogOnly": {
            "type": [
              "null",
              "boolean"
            ]
          }
        },
        "additionalProperties": false
      },
      "ParcelUploadRequest": {
        "required": [
          "contentBase64"
        ],
        "type": "object",
        "properties": {
          "networkId": {
            "type": [
              "null",
              "integer"
            ],
            "description": "Optional filter by network.",
            "format": "int32"
          },
          "mailboxId": {
            "type": [
              "null",
              "integer"
            ],
            "description": "Optional filter by mailbox.",
            "format": "int32"
          },
          "fileName": {
            "maxLength": 256,
            "minLength": 1,
            "type": [
              "null",
              "string"
            ],
            "description": "FileName"
          },
          "contentBase64": {
            "minLength": 1,
            "type": "string",
            "description": "File Contents in Base64String"
          },
          "ecgridIdFrom": {
            "type": [
              "null",
              "integer"
            ],
            "format": "int32"
          },
          "ecgridIdTo": {
            "type": [
              "null",
              "integer"
            ],
            "format": "int32"
          }
        },
        "additionalProperties": false,
        "description": "Request payload for adding a new ECGrid ID."
      },
      "PartnerAddRequest": {
        "required": [
          "contactEmail",
          "contactName",
          "ecgridId1",
          "ecgridId2"
        ],
        "type": "object",
        "properties": {
          "ecgridId1": {
            "type": "integer",
            "format": "int32"
          },
          "ecgridId2": {
            "type": "integer",
            "format": "int32"
          },
          "reference": {
            "maxLength": 16,
            "type": [
              "null",
              "string"
            ]
          },
          "contactName": {
            "maxLength": 48,
            "minLength": 1,
            "type": "string"
          },
          "contactEmail": {
            "maxLength": 48,
            "minLength": 1,
            "type": "string"
          },
          "notifyContact": {
            "type": [
              "null",
              "boolean"
            ]
          },
          "preconfirm": {
            "type": [
              "null",
              "boolean"
            ]
          },
          "note": {
            "type": [
              "null",
              "string"
            ]
          }
        },
        "additionalProperties": false
      },
      "PartnerCountRequest": {
        "required": [
          "maxDays"
        ],
        "type": "object",
        "properties": {
          "networkId": {
            "type": [
              "null",
              "integer"
            ],
            "format": "int32"
          },
          "mailboxId": {
            "type": [
              "null",
              "integer"
            ],
            "format": "int32"
          },
          "ecgridId": {
            "type": [
              "null",
              "integer"
            ],
            "format": "int32"
          },
          "maxDays": {
            "type": "integer",
            "format": "int32"
          }
        },
        "additionalProperties": false
      },
      "PartnerListRequest": {
        "type": "object",
        "properties": {
          "ecgridId1": {
            "type": [
              "null",
              "integer"
            ],
            "description": "ECGrid ID 1.",
            "format": "int32"
          },
          "ecgridId2": {
            "type": [
              "null",
              "integer"
            ],
            "description": "ECGrid ID 2.",
            "format": "int32"
          },
          "status": {
            "type": [
              "null",
              "string"
            ],
            "description": "Partner status (Active, Inactive, Pending, etc)."
          },
          "networkId": {
            "type": [
              "null",
              "integer"
            ],
            "description": "Optional Network ID",
            "format": "int32"
          },
          "mailboxId": {
            "type": [
              "null",
              "integer"
            ],
            "description": "Optional Mailbox ID",
            "format": "int32"
          },
          "maxDays": {
            "type": [
              "null",
              "integer"
            ],
            "description": "Optional MaxDays",
            "format": "int32"
          }
        },
        "additionalProperties": false
      },
      "PartnerNoteListRequest": {
        "required": [
          "interconnectId"
        ],
        "type": "object",
        "properties": {
          "interconnectId": {
            "type": "integer",
            "format": "int32"
          }
        },
        "additionalProperties": false
      },
      "PartnerNoteRequest": {
        "required": [
          "authLevel",
          "emailTo",
          "interconnectId"
        ],
        "type": "object",
        "properties": {
          "interconnectId": {
            "type": "integer",
            "format": "int32"
          },
          "authLevel": {
            "$ref": "#/components/schemas/AuthLevel"
          },
          "note": {
            "type": [
              "null",
              "string"
            ]
          },
          "attachmentName": {
            "type": [
              "null",
              "string"
            ]
          },
          "attachmentContent": {
            "type": [
              "null",
              "string"
            ]
          },
          "emailTo": {
            "$ref": "#/components/schemas/eMailTo"
          },
          "otherEmailAddress": {
            "type": [
              "null",
              "string"
            ]
          }
        },
        "additionalProperties": false
      },
      "PortalCreateRequest": {
        "required": [
          "mailboxId"
        ],
        "type": "object",
        "properties": {
          "mailboxId": {
            "maximum": 2147483647,
            "minimum": 1,
            "type": "integer",
            "description": "Mailbox id the portal will be created for. Must be greater than 0 — this endpoint provisions\r\nmailbox-level portals only. The root mailbox (mailboxId 0) is a network-level concept and its\r\nportal is provisioned through the network flow, not through this endpoint. The caller's\r\nauthorization is evaluated against the owning network of this mailbox, which is resolved via\r\nan ECGridOS lookup — not from the request payload.",
            "format": "int32"
          }
        },
        "additionalProperties": false,
        "description": "Request payload for creating a new ECGrid portal site. Only MailboxId is required — the service\r\nderives the network scope, subdomain, and branding automatically."
      },
      "ReceiptType": {
        "enum": [
          "None",
          "SynchronousUnsigned",
          "SynchronousSigned",
          "AsynchronousUnsigned",
          "AsynchronousSigned"
        ],
        "type": "string",
        "description": "Comm Receipt Type ENUM"
      },
      "RefreshRequest": {
        "required": [
          "refreshToken"
        ],
        "type": "object",
        "properties": {
          "refreshToken": {
            "minLength": 1,
            "type": "string"
          }
        },
        "additionalProperties": false
      },
      "ReportByDateRequest": {
        "required": [
          "endDate",
          "mailboxId",
          "networkId",
          "report",
          "startDate"
        ],
        "type": "object",
        "properties": {
          "networkId": {
            "maximum": 2147483647,
            "minimum": 0,
            "type": "integer",
            "format": "int32"
          },
          "mailboxId": {
            "type": "integer",
            "format": "int32"
          },
          "report": {
            "type": "integer",
            "format": "int32"
          },
          "startDate": {
            "type": "string",
            "format": "date-time"
          },
          "endDate": {
            "type": "string",
            "format": "date-time"
          }
        },
        "additionalProperties": false
      },
      "ReportInstantStatsRequest": {
        "required": [
          "minutes1",
          "minutes2"
        ],
        "type": "object",
        "properties": {
          "minutes1": {
            "type": "integer",
            "format": "int32"
          },
          "minutes2": {
            "maximum": 1440,
            "minimum": 0,
            "type": "integer",
            "format": "int32"
          },
          "networkId": {
            "type": [
              "null",
              "integer"
            ],
            "format": "int32"
          },
          "mailboxId": {
            "type": [
              "null",
              "integer"
            ],
            "format": "int32"
          },
          "ecgridId": {
            "type": [
              "null",
              "integer"
            ],
            "format": "int32"
          }
        },
        "additionalProperties": false
      },
      "ReportInterchangeStatsRequest": {
        "required": [
          "direction",
          "endTime",
          "startTime"
        ],
        "type": "object",
        "properties": {
          "startTime": {
            "type": "string",
            "format": "date-time"
          },
          "endTime": {
            "type": "string",
            "format": "date-time"
          },
          "direction": {
            "$ref": "#/components/schemas/Direction"
          },
          "networkId": {
            "maximum": 2147483647,
            "minimum": 1,
            "type": [
              "null",
              "integer"
            ],
            "format": "int32"
          },
          "mailboxId": {
            "type": [
              "null",
              "integer"
            ],
            "format": "int32"
          }
        },
        "additionalProperties": false
      },
      "ReportMonthlyRequest": {
        "required": [
          "month",
          "report"
        ],
        "type": "object",
        "properties": {
          "networkId": {
            "maximum": 2147483647,
            "minimum": 1,
            "type": [
              "null",
              "integer"
            ],
            "format": "int32"
          },
          "mailboxId": {
            "type": [
              "null",
              "integer"
            ],
            "format": "int32"
          },
          "report": {
            "type": "integer",
            "format": "int32"
          },
          "month": {
            "type": "string",
            "format": "date-time"
          }
        },
        "additionalProperties": false
      },
      "ReportTrafficStatsRequest": {
        "required": [
          "numPeriods",
          "period",
          "targetTime"
        ],
        "type": "object",
        "properties": {
          "targetTime": {
            "type": "string",
            "format": "date-time"
          },
          "numPeriods": {
            "type": "integer",
            "format": "int32"
          },
          "period": {
            "$ref": "#/components/schemas/StatisticsPeriod"
          },
          "networkId": {
            "maximum": 2147483647,
            "minimum": 1,
            "type": [
              "null",
              "integer"
            ],
            "format": "int32"
          },
          "mailboxId": {
            "type": [
              "null",
              "integer"
            ],
            "format": "int32"
          }
        },
        "additionalProperties": false
      },
      "RoutingGroup": {
        "enum": [
          "ProductionA",
          "ProductionB",
          "Migration1",
          "Migration2",
          "NetOpsOnly1",
          "NetOpsOnly2",
          "ManagedFileTransfer",
          "SuperHub",
          "Test",
          "Suspense1",
          "Suspense2",
          "Suspense3"
        ],
        "type": "string",
        "description": "Routing Group ENUM"
      },
      "SessionRequest": {
        "required": [
          "maxRecords"
        ],
        "type": "object",
        "properties": {
          "maxRecords": {
            "type": "integer",
            "format": "int32"
          }
        },
        "additionalProperties": false
      },
      "StatisticsPeriod": {
        "enum": [
          "Hour",
          "Day",
          "Week",
          "Month"
        ],
        "type": "string",
        "description": "Statistics Period ENUM"
      },
      "Status": {
        "enum": [
          "Development",
          "Active",
          "Preproduction",
          "Suspended",
          "Terminated"
        ],
        "type": "string",
        "description": "Status ENUM"
      },
      "TPAddVANRequest": {
        "required": [
          "networkId"
        ],
        "type": "object",
        "properties": {
          "networkId": {
            "maximum": 2147483647,
            "minimum": 1,
            "type": "integer",
            "format": "int32"
          },
          "qualifier": {
            "maxLength": 4,
            "type": [
              "null",
              "string"
            ]
          },
          "id": {
            "maxLength": 35,
            "minLength": 1,
            "type": [
              "null",
              "string"
            ]
          },
          "description": {
            "maxLength": 50,
            "minLength": 3,
            "type": [
              "null",
              "string"
            ]
          }
        },
        "additionalProperties": false
      },
      "TPGetMailboxDefaultRequest": {
        "required": [
          "mailboxId",
          "networkId"
        ],
        "type": "object",
        "properties": {
          "networkId": {
            "type": "integer",
            "description": "NetworkID required",
            "format": "int32"
          },
          "mailboxId": {
            "type": "integer",
            "description": "MailboxID required",
            "format": "int32"
          }
        },
        "additionalProperties": false
      },
      "TPMoveRequest": {
        "required": [
          "ecgridId"
        ],
        "type": "object",
        "properties": {
          "ecgridId": {
            "maximum": 2147483647,
            "minimum": 1,
            "type": "integer",
            "description": "ECGridID required",
            "format": "int32"
          },
          "moveDateTime": {
            "type": [
              "null",
              "string"
            ],
            "description": "MoveDateTime required only for Move (not MoveEx or MoveMailbox)",
            "format": "date-time"
          },
          "networkId": {
            "type": [
              "null",
              "integer"
            ],
            "description": "Optional specify NetworkID",
            "format": "int32"
          },
          "mailboxId": {
            "type": [
              "null",
              "integer"
            ],
            "description": "Optional specify MailboxID",
            "format": "int32"
          }
        },
        "additionalProperties": false
      },
      "TPUpdateDataEMailRequest": {
        "required": [
          "ecgridId",
          "emailSystem",
          "payloadPosition"
        ],
        "type": "object",
        "properties": {
          "ecgridId": {
            "maximum": 2147483647,
            "minimum": 1,
            "type": "integer",
            "format": "int32"
          },
          "emailSystem": {
            "$ref": "#/components/schemas/EMailSystem"
          },
          "dataEmail": {
            "type": [
              "null",
              "string"
            ]
          },
          "payloadPosition": {
            "$ref": "#/components/schemas/EMailPayload"
          }
        },
        "additionalProperties": false
      },
      "TPUpdateDescriptionRequest": {
        "required": [
          "ecgridId"
        ],
        "type": "object",
        "properties": {
          "ecgridId": {
            "maximum": 2147483647,
            "minimum": 1,
            "type": "integer",
            "format": "int32"
          },
          "description": {
            "maxLength": 35,
            "minLength": 3,
            "type": [
              "null",
              "string"
            ],
            "description": "Optional"
          }
        },
        "additionalProperties": false
      },
      "TPX12DelimitersRequest": {
        "required": [
          "ecgridId",
          "elmSep",
          "segTerm",
          "subElmSep"
        ],
        "type": "object",
        "properties": {
          "ecgridId": {
            "maximum": 2147483647,
            "minimum": 1,
            "type": "integer",
            "format": "int32"
          },
          "segTerm": {
            "type": "integer",
            "format": "int32"
          },
          "elmSep": {
            "type": "integer",
            "format": "int32"
          },
          "subElmSep": {
            "type": "integer",
            "format": "int32"
          }
        },
        "additionalProperties": false
      },
      "UseType": {
        "enum": [
          "Undefined",
          "Test",
          "Production",
          "TestAndProduction"
        ],
        "type": "string",
        "description": "UseType ENUM"
      },
      "UserAddRequest": {
        "required": [
          "authLevel",
          "cellCarrier",
          "company",
          "email",
          "firstName",
          "lastName",
          "loginName",
          "password"
        ],
        "type": "object",
        "properties": {
          "networkId": {
            "maximum": 2147483647,
            "minimum": 1,
            "type": [
              "null",
              "integer"
            ],
            "description": "Optional Network ID.",
            "format": "int32"
          },
          "mailboxId": {
            "maximum": 2147483647,
            "minimum": -1,
            "type": [
              "null",
              "integer"
            ],
            "description": "The Mailbox ID this user should belong to. Use 0 for Root or Network Level",
            "format": "int32"
          },
          "loginName": {
            "maxLength": 128,
            "minLength": 8,
            "type": "string",
            "description": "Login name (email allowed). Must be between 8 and 128 characters."
          },
          "password": {
            "maxLength": 128,
            "minLength": 8,
            "pattern": "^(?=.*[a-z])(?=.*[A-Z])(?=.*\\d)(?=.*[^a-zA-Z0-9]).+$",
            "type": "string",
            "description": "Password: Must be between 8 and 128 characters, must contain at least\r\none lowercase, one uppercase, one number, and one special character."
          },
          "firstName": {
            "maxLength": 50,
            "minLength": 1,
            "type": "string",
            "description": "First name, up to 50 characters."
          },
          "lastName": {
            "maxLength": 50,
            "minLength": 1,
            "type": "string",
            "description": "Last name, up to 50 characters."
          },
          "company": {
            "maxLength": 50,
            "minLength": 1,
            "type": "string",
            "description": "Company name, up to 50 characters."
          },
          "email": {
            "maxLength": 128,
            "minLength": 0,
            "type": "string",
            "description": "User email address, up to 128 characters.",
            "format": "email"
          },
          "phone": {
            "maxLength": 20,
            "type": [
              "null",
              "string"
            ],
            "description": "Phone number, up to 20 characters."
          },
          "cellPhone": {
            "maxLength": 20,
            "type": [
              "null",
              "string"
            ],
            "description": "Cell phone number, up to 20 characters."
          },
          "cellCarrier": {
            "$ref": "#/components/schemas/CellCarrier"
          },
          "authLevel": {
            "$ref": "#/components/schemas/AuthLevel"
          }
        },
        "additionalProperties": false,
        "description": "Represents a request to add a new user, including required credentials, contact information, and authorization\r\nsettings."
      },
      "UserByNameRequest": {
        "type": "object",
        "properties": {
          "name": {
            "maxLength": 128,
            "minLength": 8,
            "type": [
              "null",
              "string"
            ],
            "description": "Name or email address to search.\r\nLogin name or email addresses.",
            "example": "jane.smith@example.com"
          }
        },
        "additionalProperties": false,
        "description": "Gets or sets the user name or email address to search for."
      },
      "UserGeneratePasswordRequest": {
        "type": "object",
        "properties": {
          "length": {
            "maximum": 120,
            "minimum": 8,
            "type": "integer",
            "description": "Length for the generated password. Default is 13.",
            "format": "int32"
          }
        },
        "additionalProperties": false,
        "description": "Represents a request to generate a new password for a user, specifying the desired password length."
      },
      "UserListRequest": {
        "type": "object",
        "properties": {
          "networkId": {
            "maximum": 2147483647,
            "minimum": 1,
            "type": [
              "null",
              "integer"
            ],
            "description": "Optional filter by network.",
            "format": "int32"
          },
          "mailboxId": {
            "maximum": 2147483647,
            "minimum": -1,
            "type": [
              "null",
              "integer"
            ],
            "description": "Optional filter by mailbox.\r\n- null or -1 → treated as -1\r\n- 0 → root mailbox",
            "format": "int32"
          },
          "name": {
            "maxLength": 40,
            "type": [
              "null",
              "string"
            ],
            "description": "Optional name filter.\r\nMay be a full email address.",
            "example": "john.doe@example.com"
          },
          "lockedOut": {
            "type": [
              "null",
              "boolean"
            ],
            "description": "Only return locked-out users."
          }
        },
        "additionalProperties": false,
        "description": "Represents the parameters used to request a filtered list of users."
      },
      "UserPasswordRequest": {
        "required": [
          "password"
        ],
        "type": "object",
        "properties": {
          "userId": {
            "maximum": 2147483647,
            "minimum": 1,
            "type": "integer",
            "description": "The ID of the User.",
            "format": "int32"
          },
          "password": {
            "maxLength": 128,
            "minLength": 8,
            "pattern": "^(?=.*[a-z])(?=.*[A-Z])(?=.*\\d)(?=.*[^a-zA-Z0-9]).+$",
            "type": "string",
            "description": "Passsword to Set: Must be between 8 and 128 characters, must contain at least one lower-case, one upper-case, one number, and one special character."
          }
        },
        "additionalProperties": false,
        "description": "Represents a request to set or update a user's password."
      },
      "UserRoleRequest": {
        "required": [
          "authLevel"
        ],
        "type": "object",
        "properties": {
          "userId": {
            "maximum": 2147483647,
            "minimum": 1,
            "type": "integer",
            "description": "The ID of the User.",
            "format": "int32"
          },
          "authLevel": {
            "$ref": "#/components/schemas/AuthLevel"
          }
        },
        "additionalProperties": false,
        "description": "Represents a request to assign or specify a user's authorization level within the system."
      },
      "UserSendSMSRequest": {
        "required": [
          "text",
          "userId"
        ],
        "type": "object",
        "properties": {
          "userId": {
            "type": "integer",
            "description": "The ID of the User.",
            "format": "int32"
          },
          "text": {
            "maxLength": 140,
            "minLength": 1,
            "type": "string",
            "description": "Message Text to send."
          }
        },
        "additionalProperties": false,
        "description": "Send an SMS to a User."
      },
      "UserSetNetworkMailboxRequest": {
        "required": [
          "mailboxId",
          "networkId",
          "userId"
        ],
        "type": "object",
        "properties": {
          "userId": {
            "type": "integer",
            "description": "The ID of the User.",
            "format": "int32"
          },
          "networkId": {
            "type": "integer",
            "description": "Gets or sets the unique identifier for the network.",
            "format": "int32"
          },
          "mailboxId": {
            "type": "integer",
            "description": "Gets or sets the unique identifier for the mailbox.",
            "format": "int32"
          }
        },
        "additionalProperties": false,
        "description": "Change a User's Network/Mailbox."
      },
      "UserUpdateConfigRequest": {
        "required": [
          "userId"
        ],
        "type": "object",
        "properties": {
          "userId": {
            "type": "integer",
            "description": "The ID of the User.",
            "format": "int32"
          },
          "maxSessions": {
            "type": [
              "null",
              "integer"
            ],
            "description": "Max number of open sessions a user can have.",
            "format": "int32"
          },
          "activate": {
            "type": [
              "null",
              "boolean"
            ]
          },
          "suspend": {
            "type": [
              "null",
              "boolean"
            ]
          }
        },
        "additionalProperties": false
      },
      "UserUpdateRequest": {
        "required": [
          "authLevel",
          "cellCarrier",
          "company",
          "email",
          "firstName",
          "lastName"
        ],
        "type": "object",
        "properties": {
          "userId": {
            "maximum": 2147483647,
            "minimum": 1,
            "type": [
              "null",
              "integer"
            ],
            "description": "The ID of the User.",
            "format": "int32"
          },
          "firstName": {
            "maxLength": 50,
            "minLength": 1,
            "type": "string",
            "description": "First name, up to 50 characters."
          },
          "lastName": {
            "maxLength": 50,
            "minLength": 1,
            "type": "string",
            "description": "Last name, up to 50 characters."
          },
          "company": {
            "maxLength": 50,
            "minLength": 0,
            "type": "string",
            "description": "Company name, up to 50 characters."
          },
          "email": {
            "maxLength": 128,
            "minLength": 0,
            "type": "string",
            "description": "User email address, up to 128 characters.",
            "format": "email"
          },
          "phone": {
            "maxLength": 20,
            "type": [
              "null",
              "string"
            ],
            "description": "Phone number, up to 20 characters."
          },
          "cellPhone": {
            "maxLength": 20,
            "type": [
              "null",
              "string"
            ],
            "description": "Cell phone number, up to 20 characters."
          },
          "cellCarrier": {
            "$ref": "#/components/schemas/CellCarrier"
          },
          "authLevel": {
            "$ref": "#/components/schemas/AuthLevel"
          }
        },
        "additionalProperties": false,
        "description": "Represents a request to update an existing user's profile information."
      },
      "eMailTo": {
        "enum": [
          "NoEMail",
          "Requestor",
          "Network",
          "RequestorAndNetwork",
          "Other",
          "RequestorAndOther",
          "NetworkAndOther",
          "EMailAll"
        ],
        "type": "string",
        "description": "eMail To ENUM"
      }
    },
    "responses": {
      "BadRequest": {
        "description": "Invalid request",
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/ApiErrorResponse"
            }
          }
        }
      },
      "Unauthorized": {
        "description": "Authentication required",
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/ApiErrorResponse"
            }
          }
        }
      },
      "NotFound": {
        "description": "Resource not found",
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/ApiErrorResponse"
            }
          }
        }
      },
      "ServerError": {
        "description": "Internal server error",
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/ApiErrorResponse"
            }
          }
        }
      }
    },
    "securitySchemes": {
      "ApiKey": {
        "type": "apiKey",
        "description": "ECGrid API key. Passed as the X-API-Key request header. Obtain via the ECGrid User Account.",
        "name": "X-API-Key",
        "in": "header"
      },
      "Bearer": {
        "type": "http",
        "description": "JWT Bearer token. Obtain via the /auth/login endpoint. Pass as: Authorization: Bearer <token>",
        "scheme": "bearer",
        "bearerFormat": "JWT"
      }
    }
  },
  "security": [
    {
      "ApiKey": [ ],
      "Bearer": [ ]
    }
  ],
  "tags": [
    {
      "name": "Auth",
      "description": "Authentication and session issuance for API access — login, logout, session refresh, and JWT bearer token management."
    },
    {
      "name": "Callbacks",
      "description": "Webhooks that fire when a parcel reaches a specified status in an inbox or outbox. The standard alternative to polling; also used to trigger AS2 auto-send on outbound parcels."
    },
    {
      "name": "CarbonCopies",
      "description": "Routing rules that duplicate parcels or specific interchanges to an additional set of EDI IDs during delivery — e.g., copy every invoice to the accounting team's mailbox."
    },
    {
      "name": "Certificates",
      "description": "SSH keys, SSL/TLS certificates, and X.509 certificates used for AS2 signing and encryption, SFTP authentication, and other secure transport needs."
    },
    {
      "name": "Comms",
      "description": "Connection-type configuration for how bytes move between ECGrid and trading partners — primarily AS2, plus SFTP and other transport protocols."
    },
    {
      "name": "IDs",
      "description": "EDI IDs (trading partner addresses — ISA qualifier+id for X12, UNB for EDIFACT) configured on a mailbox. One mailbox can hold many EDI IDs; the platform routes inbound parcels to the right mailbox by matching the EDI ID."
    },
    {
      "name": "Interchanges",
      "description": "Individual EDI envelopes (X12 ISA-IEA, EDIFACT UNB-UNZ) or non-EDI payloads (text, JSON, XML, cXML, etc.) carried inside parcels. A single parcel may contain one or many interchanges."
    },
    {
      "name": "Keys",
      "description": "Key/value metadata attached to objects (mailbox, partner, EDI ID, etc.) used during routing or communication. Lets customers add custom headers, routing hints, and per-partner overrides without polluting the main object structure."
    },
    {
      "name": "Mailboxes",
      "description": "Communication endpoints within a network. Each mailbox has its own inbox, outbox, users, and EDI IDs. The network's root mailbox is mailboxId 0 and must be referenced together with the owning network id."
    },
    {
      "name": "Networks",
      "description": "Top-level customer container representing a retailer, manufacturer, or service provider. A network owns all mailboxes, network-level users, and cross-mailbox trading partner relationships under it."
    },
    {
      "name": "Parcels",
      "description": "The actual files that move through the system. Parcels land in a mailbox's inbox or outbox and can contain one or many interchanges. All send, receive, and confirm operations happen at the parcel level."
    },
    {
      "name": "Partners",
      "description": "Trading partner relationships — the sender/receiver pairing between two EDI IDs (keyed by ECGridID) that authorizes interchange exchange between them."
    },
    {
      "name": "Portals",
      "description": "Branded customer-facing UI provisioning for networks and mailboxes. Networks can have their own portal with custom CSS, logo, and theme; mailbox portals inherit branding from their parent network portal when one exists."
    },
    {
      "name": "Reports",
      "description": "Traffic, usage, and statistics reports — monthly summaries, instant-stats snapshots, traffic stats, mailbox/interchange counts, and ad-hoc reporting across networks and mailboxes."
    },
    {
      "name": "StatusLists",
      "description": "Lookup lists of status codes and enumerations used across parcels, interchanges, callbacks, and other EDI flows."
    },
    {
      "name": "Users",
      "description": "User accounts at network or mailbox scope. Each user holds their own API key and permission set; the auth level drives what they can read and modify."
    }
  ]
}