{
    "openapi": "3.0.0",
    "info": {
        "title": "Proofpoint Essentials Interface API",
        "description": "[Base URL: /api/v1]",
        "version": "v1"
    },
    "servers": [
        {
            "url": "https://us1.proofpointessentials.com/api/v1"
        }
    ],
    "paths": {
        "/orgs/{domain}/authentication/settings/mfa": {
            "get": {
                "tags": [
                    "authentication"
                ],
                "summary": "Read MFA settings for the target Organization",
                "operationId": "getMfaSettings",
                "parameters": [
                    {
                        "$ref": "#/components/parameters/X-user"
                    },
                    {
                        "$ref": "#/components/parameters/X-password"
                    },
                    {
                        "$ref": "#/components/parameters/domain"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "successful operation",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/MfaSettingsPresenter"
                                }
                            }
                        }
                    },
                    "400": {
                        "description": "bad request"
                    },
                    "401": {
                        "description": "invalid credentials"
                    },
                    "403": {
                        "description": "not authorized"
                    },
                    "500": {
                        "description": "internal server error"
                    }
                }
            },
            "put": {
                "tags": [
                    "authentication"
                ],
                "summary": "Update MFA settings for the target Organization",
                "operationId": "putMfaSettings",
                "parameters": [
                    {
                        "$ref": "#/components/parameters/X-user"
                    },
                    {
                        "$ref": "#/components/parameters/X-password"
                    },
                    {
                        "$ref": "#/components/parameters/domain"
                    }
                ],
                "requestBody": {
                    "description": "Authentication login settings to update",
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/MfaSettingsPresenter"
                            }
                        }
                    }
                },
                "responses": {
                    "204": {
                        "description": "successful operation"
                    },
                    "400": {
                        "description": "bad request"
                    },
                    "401": {
                        "description": "invalid credentials"
                    },
                    "403": {
                        "description": "not authorized"
                    },
                    "500": {
                        "description": "internal server error"
                    }
                }
            }
        },
        "/orgs/{domain}/authentication/settings/login": {
            "get": {
                "tags": [
                    "authentication"
                ],
                "summary": "Read Authentication login settings for the target Organization",
                "operationId": "getLoginSettings",
                "parameters": [
                    {
                        "$ref": "#/components/parameters/X-user"
                    },
                    {
                        "$ref": "#/components/parameters/X-password"
                    },
                    {
                        "$ref": "#/components/parameters/domain"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "successful operation",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/LoginSettingsPresenter"
                                }
                            }
                        }
                    },
                    "400": {
                        "description": "bad request"
                    },
                    "401": {
                        "description": "invalid credentials"
                    },
                    "403": {
                        "description": "not authorized"
                    },
                    "500": {
                        "description": "internal server error"
                    }
                }
            },
            "put": {
                "tags": [
                    "authentication"
                ],
                "summary": "Update Login settings for the target Organization",
                "operationId": "putLoginSettings",
                "parameters": [
                    {
                        "$ref": "#/components/parameters/X-user"
                    },
                    {
                        "$ref": "#/components/parameters/X-password"
                    },
                    {
                        "$ref": "#/components/parameters/domain"
                    }
                ],
                "requestBody": {
                    "description": "Authentication login settings to update",
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/LoginSettingsPresenter"
                            }
                        }
                    }
                },
                "responses": {
                    "204": {
                        "description": "successful operation"
                    },
                    "400": {
                        "description": "bad request"
                    },
                    "401": {
                        "description": "invalid credentials"
                    },
                    "403": {
                        "description": "not authorized"
                    },
                    "500": {
                        "description": "internal server error"
                    }
                }
            }
        },
        "/orgs/{domain}/authentication/settings/idps": {
            "get": {
                "tags": [
                    "authentication"
                ],
                "summary": "Read a list of all Identity Providers (IDPs) for the target Organization",
                "operationId": "getAllIdps",
                "parameters": [
                    {
                        "$ref": "#/components/parameters/X-user"
                    },
                    {
                        "$ref": "#/components/parameters/X-password"
                    },
                    {
                        "$ref": "#/components/parameters/domain"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "successful operation",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "array",
                                    "items": {
                                        "$ref": "#/components/schemas/IdpPresenter"
                                    }
                                }
                            }
                        }
                    },
                    "400": {
                        "description": "bad request"
                    },
                    "401": {
                        "description": "invalid credentials"
                    },
                    "403": {
                        "description": "not authorized"
                    },
                    "500": {
                        "description": "internal server error"
                    }
                }
            },
            "post": {
                "tags": [
                    "authentication"
                ],
                "summary": "Create a new Identity Provider (IDP)",
                "operationId": "postIdp",
                "parameters": [
                    {
                        "$ref": "#/components/parameters/X-user"
                    },
                    {
                        "$ref": "#/components/parameters/X-password"
                    },
                    {
                        "$ref": "#/components/parameters/domain"
                    }
                ],
                "requestBody": {
                    "description": "IDP details",
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/IdpTransformer"
                            }
                        }
                    }
                },
                "responses": {
                    "201": {
                        "description": "created",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/IdpPresenter"
                                }
                            }
                        }
                    },
                    "400": {
                        "description": "bad request"
                    },
                    "401": {
                        "description": "invalid credentials"
                    },
                    "403": {
                        "description": "not authorized"
                    },
                    "409": {
                        "description": "data conflict"
                    },
                    "422": {
                        "description": "validation error"
                    },
                    "500": {
                        "description": "internal server error"
                    }
                }
            }
        },
        "/orgs/{domain}/authentication/settings/idps/{uuid}": {
            "get": {
                "tags": [
                    "authentication"
                ],
                "summary": "Read a single Identity Provider (IDP)",
                "operationId": "getIdpByUuid",
                "parameters": [
                    {
                        "$ref": "#/components/parameters/X-user"
                    },
                    {
                        "$ref": "#/components/parameters/X-password"
                    },
                    {
                        "$ref": "#/components/parameters/domain"
                    },
                    {
                        "name": "uuid",
                        "in": "path",
                        "description": "UUID of the IDP to fetch",
                        "required": true,
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "successful operation",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/IdpPresenter"
                                }
                            }
                        }
                    },
                    "400": {
                        "description": "bad request"
                    },
                    "401": {
                        "description": "invalid credentials"
                    },
                    "403": {
                        "description": "not authorized"
                    },
                    "500": {
                        "description": "internal server error"
                    }
                }
            },
            "put": {
                "tags": [
                    "authentication"
                ],
                "summary": "Update an Identity Provider (IDP)",
                "operationId": "putIdp",
                "parameters": [
                    {
                        "$ref": "#/components/parameters/X-user"
                    },
                    {
                        "$ref": "#/components/parameters/X-password"
                    },
                    {
                        "$ref": "#/components/parameters/domain"
                    },
                    {
                        "name": "uuid",
                        "in": "path",
                        "description": "UUID of the IDP to update",
                        "required": true,
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "requestBody": {
                    "description": "IDP settings to update",
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/IdpTransformer"
                            }
                        }
                    }
                },
                "responses": {
                    "204": {
                        "description": "successful operation"
                    },
                    "400": {
                        "description": "bad request"
                    },
                    "401": {
                        "description": "invalid credentials"
                    },
                    "403": {
                        "description": "not authorized"
                    },
                    "422": {
                        "description": "validation error"
                    },
                    "500": {
                        "description": "internal server error"
                    }
                }
            },
            "delete": {
                "tags": [
                    "authentication"
                ],
                "summary": "Delete an Identity Provider (IDP)",
                "operationId": "deleteIdp",
                "parameters": [
                    {
                        "$ref": "#/components/parameters/X-user"
                    },
                    {
                        "$ref": "#/components/parameters/X-password"
                    },
                    {
                        "$ref": "#/components/parameters/domain"
                    },
                    {
                        "name": "uuid",
                        "in": "path",
                        "description": "UUID of the IDP to delete",
                        "required": true,
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "responses": {
                    "204": {
                        "description": "successful operation"
                    },
                    "400": {
                        "description": "bad request"
                    },
                    "401": {
                        "description": "invalid credentials"
                    },
                    "403": {
                        "description": "not authorized"
                    },
                    "409": {
                        "description": "data conflict"
                    },
                    "500": {
                        "description": "internal server error"
                    }
                }
            }
        },
        "/orgs/{domain}/settings/azure": {
            "get": {
                "tags": [
                    "settings"
                ],
                "summary": "Load Azure Active Directory information for an Organization.",
                "operationId": "getAzureSettings",
                "parameters": [
                    {
                        "$ref": "#/components/parameters/X-user"
                    },
                    {
                        "$ref": "#/components/parameters/X-password"
                    },
                    {
                        "$ref": "#/components/parameters/domain"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "successful operation",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/AzureAdSettingsModel"
                                }
                            }
                        }
                    },
                    "400": {
                        "description": "bad request"
                    },
                    "401": {
                        "description": "invalid credentials"
                    },
                    "403": {
                        "description": "not authorized"
                    },
                    "404": {
                        "description": "no domain or settings found"
                    },
                    "500": {
                        "description": "internal server error"
                    }
                }
            },
            "put": {
                "tags": [
                    "settings"
                ],
                "summary": "Update Azure Active Directory information for an Organization.",
                "operationId": "putAzureSettings",
                "parameters": [
                    {
                        "$ref": "#/components/parameters/X-user"
                    },
                    {
                        "$ref": "#/components/parameters/X-password"
                    },
                    {
                        "$ref": "#/components/parameters/domain"
                    }
                ],
                "requestBody": {
                    "description": "Azure Active Directory settings data",
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/AzureAdSettingsModel"
                            }
                        }
                    }
                },
                "responses": {
                    "204": {
                        "description": "no content, successful update"
                    },
                    "400": {
                        "description": "bad request"
                    },
                    "401": {
                        "description": "invalid credentials"
                    },
                    "403": {
                        "description": "not authorized"
                    },
                    "404": {
                        "description": "no domain or settings found"
                    },
                    "500": {
                        "description": "internal server error"
                    }
                }
            },
            "delete": {
                "tags": [
                    "settings"
                ],
                "summary": "Clear and reset Azure Active Directory information for an Organization.",
                "operationId": "deleteAzureSettings",
                "parameters": [
                    {
                        "$ref": "#/components/parameters/X-user"
                    },
                    {
                        "$ref": "#/components/parameters/X-password"
                    },
                    {
                        "$ref": "#/components/parameters/domain"
                    }
                ],
                "responses": {
                    "204": {
                        "description": "no content, successfully cleared, further sync will not occur"
                    },
                    "400": {
                        "description": "bad request"
                    },
                    "401": {
                        "description": "invalid credentials"
                    },
                    "403": {
                        "description": "not authorized"
                    },
                    "404": {
                        "description": "no domain or settings found"
                    },
                    "500": {
                        "description": "internal server error"
                    }
                }
            }
        },
        "/billing/{domain}": {
            "get": {
                "tags": [
                    "billing"
                ],
                "summary": "Read billing data for an Organization",
                "operationId": "getBillingData",
                "parameters": [
                    {
                        "$ref": "#/components/parameters/X-user"
                    },
                    {
                        "$ref": "#/components/parameters/X-password"
                    },
                    {
                        "$ref": "#/components/parameters/domain"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "successful operation",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "array",
                                    "items": {
                                        "$ref": "#/components/schemas/BillingReportPresenter"
                                    }
                                }
                            }
                        }
                    },
                    "400": {
                        "description": "bad request"
                    },
                    "401": {
                        "description": "invalid credentials"
                    },
                    "403": {
                        "description": "not authorized"
                    },
                    "500": {
                        "description": "internal server error"
                    }
                }
            }
        },
        "/billing/{domain}/orgs": {
            "get": {
                "tags": [
                    "billing"
                ],
                "summary": "Read billing data for an Organization and its children",
                "operationId": "getBillingDataOrgs",
                "parameters": [
                    {
                        "$ref": "#/components/parameters/X-user"
                    },
                    {
                        "$ref": "#/components/parameters/X-password"
                    },
                    {
                        "$ref": "#/components/parameters/domain"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "successful operation",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "array",
                                    "items": {
                                        "$ref": "#/components/schemas/BillingReportPresenter"
                                    }
                                }
                            }
                        }
                    },
                    "400": {
                        "description": "bad request"
                    },
                    "401": {
                        "description": "invalid credentials"
                    },
                    "403": {
                        "description": "not authorized"
                    },
                    "500": {
                        "description": "internal server error"
                    }
                }
            }
        },
        "/orgs/{domain}/domains/{targetDomain}/dkim": {
            "get": {
                "tags": [
                    "dkim"
                ],
                "summary": "Read DKIM Signing data for all keypairs associated with this domain",
                "operationId": "getAllDkimForDomain",
                "parameters": [
                    {
                        "$ref": "#/components/parameters/X-user"
                    },
                    {
                        "$ref": "#/components/parameters/X-password"
                    },
                    {
                        "$ref": "#/components/parameters/domain"
                    },
                    {
                        "name": "targetDomain",
                        "in": "path",
                        "description": "Name of the domain to act on",
                        "required": true,
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "successful operation",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "array",
                                    "items": {
                                        "$ref": "#/components/schemas/DkimResponse"
                                    }
                                }
                            }
                        }
                    },
                    "400": {
                        "description": "bad request"
                    },
                    "401": {
                        "description": "invalid credentials"
                    },
                    "403": {
                        "description": "not authorized"
                    },
                    "500": {
                        "description": "internal server error"
                    }
                }
            },
            "delete": {
                "tags": [
                    "dkim"
                ],
                "summary": "Delete all DKIM keypairs associated with a domain",
                "operationId": "deleteAllForDomain",
                "parameters": [
                    {
                        "$ref": "#/components/parameters/X-user"
                    },
                    {
                        "$ref": "#/components/parameters/X-password"
                    },
                    {
                        "$ref": "#/components/parameters/domain"
                    },
                    {
                        "name": "targetDomain",
                        "in": "path",
                        "description": "Name of the domain to act on",
                        "required": true,
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "responses": {
                    "204": {
                        "description": "no content, successful deletion"
                    },
                    "400": {
                        "description": "bad request"
                    },
                    "401": {
                        "description": "invalid credentials"
                    },
                    "403": {
                        "description": "not authorized"
                    },
                    "404": {
                        "description": "not found"
                    },
                    "500": {
                        "description": "internal server error"
                    }
                }
            }
        },
        "/orgs/{domain}/domains/{targetDomain}/dkim/{selector}": {
            "get": {
                "tags": [
                    "dkim"
                ],
                "summary": "Read DKIM Signing data for a single keypair by selector name",
                "operationId": "getBySelector",
                "parameters": [
                    {
                        "$ref": "#/components/parameters/X-user"
                    },
                    {
                        "$ref": "#/components/parameters/X-password"
                    },
                    {
                        "$ref": "#/components/parameters/domain"
                    },
                    {
                        "name": "targetDomain",
                        "in": "path",
                        "description": "Name of the domain to act on",
                        "required": true,
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "$ref": "#/components/parameters/selector"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "successful operation",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/DkimResponse"
                                }
                            }
                        }
                    },
                    "400": {
                        "description": "bad request"
                    },
                    "401": {
                        "description": "invalid credentials"
                    },
                    "403": {
                        "description": "not authorized"
                    },
                    "500": {
                        "description": "internal server error"
                    }
                }
            },
            "post": {
                "tags": [
                    "dkim"
                ],
                "summary": "Create a DKIM keypair",
                "operationId": "post",
                "parameters": [
                    {
                        "$ref": "#/components/parameters/X-user"
                    },
                    {
                        "$ref": "#/components/parameters/X-password"
                    },
                    {
                        "$ref": "#/components/parameters/domain"
                    },
                    {
                        "name": "targetDomain",
                        "in": "path",
                        "description": "Name of the domain to act on",
                        "required": true,
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "$ref": "#/components/parameters/selector"
                    }
                ],
                "requestBody": {
                    "description": "DKIM Post data",
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/DkimPost"
                            }
                        }
                    }
                },
                "responses": {
                    "201": {
                        "description": "created",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/DkimResponse"
                                }
                            }
                        }
                    },
                    "400": {
                        "description": "bad request"
                    },
                    "401": {
                        "description": "invalid credentials"
                    },
                    "403": {
                        "description": "not authorized"
                    },
                    "409": {
                        "description": "conflict: selector name already exists"
                    },
                    "422": {
                        "description": "invalid request data"
                    },
                    "500": {
                        "description": "internal server error"
                    }
                }
            },
            "delete": {
                "tags": [
                    "dkim"
                ],
                "summary": "Delete a DKIM keypair by selector name",
                "operationId": "deleteBySelector",
                "parameters": [
                    {
                        "$ref": "#/components/parameters/X-user"
                    },
                    {
                        "$ref": "#/components/parameters/X-password"
                    },
                    {
                        "$ref": "#/components/parameters/domain"
                    },
                    {
                        "name": "targetDomain",
                        "in": "path",
                        "description": "Name of the domain to act on",
                        "required": true,
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "$ref": "#/components/parameters/selector"
                    }
                ],
                "responses": {
                    "204": {
                        "description": "no content, successful deletion"
                    },
                    "400": {
                        "description": "bad request"
                    },
                    "401": {
                        "description": "invalid credentials"
                    },
                    "403": {
                        "description": "not authorized"
                    },
                    "404": {
                        "description": "not found"
                    },
                    "500": {
                        "description": "internal server error"
                    }
                }
            }
        },
        "/orgs/{domain}/domains/{targetDomain}/dkim/{selector}/verify": {
            "put": {
                "tags": [
                    "dkim"
                ],
                "summary": "Verify the DKIM keypair is valid by verifying the Public Key in DNS",
                "operationId": "verifyDKIM",
                "parameters": [
                    {
                        "$ref": "#/components/parameters/X-user"
                    },
                    {
                        "$ref": "#/components/parameters/X-password"
                    },
                    {
                        "$ref": "#/components/parameters/domain"
                    },
                    {
                        "name": "targetDomain",
                        "in": "path",
                        "description": "Name of the domain to act on",
                        "required": true,
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "$ref": "#/components/parameters/selector"
                    }
                ],
                "responses": {
                    "204": {
                        "description": "no content, successful update"
                    },
                    "400": {
                        "description": "bad request"
                    },
                    "401": {
                        "description": "invalid credentials"
                    },
                    "403": {
                        "description": "not authorized"
                    },
                    "409": {
                        "description": "conflict: unable to retrieve public key"
                    },
                    "422": {
                        "description": "invalid request data"
                    },
                    "500": {
                        "description": "internal server error"
                    }
                }
            }
        },
        "/orgs/{domain}/domains/{domaintobeverified}/verification-code": {
            "get": {
                "tags": [
                    "domain verification"
                ],
                "summary": "Read the verification code required to verify the domain. Use this for TXT or META verification.",
                "description": "HTTP GET to get the domain verification code for a domain",
                "operationId": "getDomainVerificationCode",
                "parameters": [
                    {
                        "$ref": "#/components/parameters/X-user"
                    },
                    {
                        "$ref": "#/components/parameters/X-password"
                    },
                    {
                        "$ref": "#/components/parameters/domain"
                    },
                    {
                        "name": "domaintobeverified",
                        "in": "path",
                        "description": "Name of the Domain to be verified",
                        "required": true,
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "successful operation",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/DomainVerificationCode"
                                }
                            }
                        }
                    },
                    "401": {
                        "description": "invalid credentials"
                    },
                    "403": {
                        "description": "not authorized"
                    },
                    "500": {
                        "description": "internal server error"
                    }
                }
            }
        },
        "/orgs/{domain}/domains/{targetDomain}/verify/{method}": {
            "put": {
                "tags": [
                    "domain verification"
                ],
                "summary": "Run a verification check on the domain using the method specified. No Request data required, and result is shown via the HTTP response code. 204 = verified, 409 = not able to verify.",
                "description": "HTTP PUT to run verification on a domain",
                "operationId": "verify",
                "parameters": [
                    {
                        "$ref": "#/components/parameters/X-user"
                    },
                    {
                        "$ref": "#/components/parameters/X-password"
                    },
                    {
                        "$ref": "#/components/parameters/domain"
                    },
                    {
                        "name": "targetDomain",
                        "in": "path",
                        "description": "Name of the domain to act on",
                        "required": true,
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "method",
                        "in": "path",
                        "description": "Which method to use",
                        "required": true,
                        "schema": {
                            "type": "string",
                            "enum": [
                                "txt",
                                "meta"
                            ]
                        }
                    }
                ],
                "responses": {
                    "204": {
                        "description": "Domain was successfully verified"
                    },
                    "400": {
                        "description": "bad request"
                    },
                    "401": {
                        "description": "invalid credentials"
                    },
                    "403": {
                        "description": "not authorized"
                    },
                    "409": {
                        "description": "The Domain was not able to be verified at this time"
                    },
                    "500": {
                        "description": "internal server error"
                    }
                }
            }
        },
        "/orgs/{domain}/domains/{domaintobediagnosed}/health": {
            "get": {
                "tags": [
                    "domains"
                ],
                "summary": "Run a health check on the domain",
                "operationId": "getHealth",
                "parameters": [
                    {
                        "$ref": "#/components/parameters/X-user"
                    },
                    {
                        "$ref": "#/components/parameters/X-password"
                    },
                    {
                        "$ref": "#/components/parameters/domain"
                    },
                    {
                        "name": "domaintobediagnosed",
                        "in": "path",
                        "description": "Name of the Domain to be diagnosed",
                        "required": true,
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "successful operation",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/DomainHealthPresenter"
                                }
                            }
                        }
                    },
                    "401": {
                        "description": "invalid credentials"
                    },
                    "403": {
                        "description": "not authorized"
                    },
                    "500": {
                        "description": "internal server error"
                    }
                }
            }
        },
        "/orgs/{domain}/domains/{targetDomain}": {
            "get": {
                "tags": [
                    "domains"
                ],
                "summary": "Read a single Domain associated with an Organization",
                "operationId": "getDomain",
                "parameters": [
                    {
                        "$ref": "#/components/parameters/X-user"
                    },
                    {
                        "$ref": "#/components/parameters/X-password"
                    },
                    {
                        "$ref": "#/components/parameters/domain"
                    },
                    {
                        "name": "targetDomain",
                        "in": "path",
                        "description": "Name of the Domain to be retrieved",
                        "required": true,
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "successful operation",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/Domain"
                                }
                            }
                        }
                    },
                    "401": {
                        "description": "invalid credentials"
                    },
                    "403": {
                        "description": "not authorized"
                    },
                    "500": {
                        "description": "internal server error"
                    }
                }
            },
            "put": {
                "tags": [
                    "domains"
                ],
                "summary": "Update a Domain associated with an Organization",
                "operationId": "putDomain",
                "parameters": [
                    {
                        "$ref": "#/components/parameters/X-user"
                    },
                    {
                        "$ref": "#/components/parameters/X-password"
                    },
                    {
                        "$ref": "#/components/parameters/domain"
                    },
                    {
                        "name": "targetDomain",
                        "in": "path",
                        "description": "Name of the domain to be updated",
                        "required": true,
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "requestBody": {
                    "description": "Domain data",
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/Domain"
                            }
                        }
                    }
                },
                "responses": {
                    "204": {
                        "description": "no content, successful update"
                    },
                    "400": {
                        "description": "bad request"
                    },
                    "401": {
                        "description": "invalid credentials"
                    },
                    "403": {
                        "description": "not authorized"
                    },
                    "422": {
                        "description": "invalid request data"
                    },
                    "500": {
                        "description": "internal server error"
                    }
                }
            },
            "delete": {
                "tags": [
                    "domains"
                ],
                "summary": "Delete a Domain",
                "operationId": "deleteDomain",
                "parameters": [
                    {
                        "$ref": "#/components/parameters/X-user"
                    },
                    {
                        "$ref": "#/components/parameters/X-password"
                    },
                    {
                        "$ref": "#/components/parameters/domain"
                    },
                    {
                        "name": "targetDomain",
                        "in": "path",
                        "description": "Name of the domain to be deleted",
                        "required": true,
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "responses": {
                    "204": {
                        "description": "no content, successful deletion"
                    },
                    "400": {
                        "description": "bad request"
                    },
                    "401": {
                        "description": "invalid credentials"
                    },
                    "403": {
                        "description": "not authorized"
                    },
                    "500": {
                        "description": "internal server error"
                    }
                }
            }
        },
        "/orgs/{domain}/domains": {
            "get": {
                "tags": [
                    "domains"
                ],
                "summary": "Read all domains associated with an Organization",
                "operationId": "getDomains",
                "parameters": [
                    {
                        "$ref": "#/components/parameters/X-user"
                    },
                    {
                        "$ref": "#/components/parameters/X-password"
                    },
                    {
                        "$ref": "#/components/parameters/domain"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "successful operation",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/Domain"
                                }
                            }
                        }
                    },
                    "401": {
                        "description": "invalid credentials"
                    },
                    "403": {
                        "description": "not authorized"
                    },
                    "500": {
                        "description": "internal server error"
                    }
                }
            },
            "post": {
                "tags": [
                    "domains"
                ],
                "summary": "Create a new Domain. Batch POST supported with list of Domain objects.",
                "operationId": "postDomain",
                "parameters": [
                    {
                        "$ref": "#/components/parameters/X-user"
                    },
                    {
                        "$ref": "#/components/parameters/X-password"
                    },
                    {
                        "$ref": "#/components/parameters/domain"
                    }
                ],
                "requestBody": {
                    "description": "Domain data",
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/Domain"
                            }
                        }
                    }
                },
                "responses": {
                    "201": {
                        "description": "single domain created",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/Domain"
                                }
                            }
                        }
                    },
                    "207": {
                        "description": "batch response, individual responses contained within (e.g. 201 with the created Domain)"
                    },
                    "400": {
                        "description": "bad request"
                    },
                    "401": {
                        "description": "invalid credentials"
                    },
                    "403": {
                        "description": "not authorized"
                    },
                    "409": {
                        "description": "resource already exists"
                    },
                    "422": {
                        "description": "invalid request data"
                    },
                    "500": {
                        "description": "internal server error"
                    }
                }
            }
        },
        "/orgs/{domain}/email-tagging": {
            "get": {
                "tags": [
                    "email tagging"
                ],
                "summary": "Read email tagging settings for an Organization.",
                "operationId": "get",
                "parameters": [
                    {
                        "$ref": "#/components/parameters/X-user"
                    },
                    {
                        "$ref": "#/components/parameters/X-password"
                    },
                    {
                        "$ref": "#/components/parameters/domain"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "successful operation",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/EmailTaggingPresenter"
                                }
                            }
                        }
                    },
                    "400": {
                        "description": "bad request"
                    },
                    "401": {
                        "description": "invalid credentials"
                    },
                    "403": {
                        "description": "not authorized"
                    },
                    "500": {
                        "description": "internal server error"
                    }
                }
            },
            "put": {
                "tags": [
                    "email tagging"
                ],
                "summary": "Update email tagging settings for an Organization",
                "operationId": "put",
                "parameters": [
                    {
                        "$ref": "#/components/parameters/X-user"
                    },
                    {
                        "$ref": "#/components/parameters/X-password"
                    },
                    {
                        "$ref": "#/components/parameters/domain"
                    }
                ],
                "requestBody": {
                    "description": "Email tagging data",
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/EmailTaggingPresenter"
                            }
                        }
                    }
                },
                "responses": {
                    "204": {
                        "description": "no content, successful update"
                    },
                    "400": {
                        "description": "bad request"
                    },
                    "401": {
                        "description": "invalid credentials"
                    },
                    "403": {
                        "description": "not authorized"
                    },
                    "422": {
                        "description": "invalid request data"
                    },
                    "500": {
                        "description": "internal server error"
                    }
                }
            },
            "patch": {
                "tags": [
                    "email tagging"
                ],
                "summary": "Update a specific email tagging setting for an Organization",
                "operationId": "patch",
                "parameters": [
                    {
                        "$ref": "#/components/parameters/X-user"
                    },
                    {
                        "$ref": "#/components/parameters/X-password"
                    },
                    {
                        "$ref": "#/components/parameters/domain"
                    }
                ],
                "requestBody": {
                    "description": "Email tagging data (all fields optional)",
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/EmailTaggingPresenter"
                            }
                        }
                    }
                },
                "responses": {
                    "204": {
                        "description": "no content, successful update"
                    },
                    "400": {
                        "description": "bad request"
                    },
                    "401": {
                        "description": "invalid credentials"
                    },
                    "403": {
                        "description": "not authorized"
                    },
                    "422": {
                        "description": "invalid request data"
                    },
                    "500": {
                        "description": "internal server error"
                    }
                }
            }
        },
        "/orgs/{domain}/email-tagging/exemptions": {
            "get": {
                "tags": [
                    "email tagging"
                ],
                "summary": "Retrieve Email Tagging Exempt Senders",
                "operationId": "getEmailTaggingExemptions",
                "parameters": [
                    {
                        "$ref": "#/components/parameters/X-user"
                    },
                    {
                        "$ref": "#/components/parameters/X-password"
                    },
                    {
                        "$ref": "#/components/parameters/domain"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "successful operation",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/EmailTaggingExemptionsPresenter"
                                }
                            }
                        }
                    },
                    "400": {
                        "description": "bad request"
                    },
                    "401": {
                        "description": "invalid credentials"
                    },
                    "403": {
                        "description": "not authorized"
                    },
                    "500": {
                        "description": "internal server error"
                    }
                }
            },
            "post": {
                "tags": [
                    "email tagging"
                ],
                "summary": "Create Email Tagging Exempt Senders for an Organization",
                "operationId": "postEmailTaggingExemptions",
                "parameters": [
                    {
                        "$ref": "#/components/parameters/X-user"
                    },
                    {
                        "$ref": "#/components/parameters/X-password"
                    },
                    {
                        "$ref": "#/components/parameters/domain"
                    }
                ],
                "requestBody": {
                    "description": "Email tagging data (all fields optional)",
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/EmailTaggingExemptionsPresenter"
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "successful update"
                    },
                    "400": {
                        "description": "bad request"
                    },
                    "401": {
                        "description": "invalid credentials"
                    },
                    "403": {
                        "description": "not authorized"
                    },
                    "422": {
                        "description": "invalid request data"
                    },
                    "500": {
                        "description": "internal server error"
                    }
                }
            },
            "delete": {
                "tags": [
                    "email tagging"
                ],
                "summary": "Delete specified Email Tagging Exempt Senders for an Organization",
                "operationId": "deleteEmailTaggingExemptions",
                "parameters": [
                    {
                        "$ref": "#/components/parameters/X-user"
                    },
                    {
                        "$ref": "#/components/parameters/X-password"
                    },
                    {
                        "$ref": "#/components/parameters/domain"
                    }
                ],
                "responses": {
                    "204": {
                        "description": "no content, successful update"
                    },
                    "400": {
                        "description": "bad request"
                    },
                    "401": {
                        "description": "invalid credentials"
                    },
                    "403": {
                        "description": "not authorized"
                    },
                    "422": {
                        "description": "invalid request data"
                    },
                    "500": {
                        "description": "internal server error"
                    }
                }
            }
        },
        "/endpoints/{domaintobechecked}": {
            "get": {
                "tags": [
                    "endpoints"
                ],
                "summary": "Query which Proofpoint stack(s) a domain is active on",
                "operationId": "getEndpoints",
                "parameters": [
                    {
                        "$ref": "#/components/parameters/X-user"
                    },
                    {
                        "$ref": "#/components/parameters/X-password"
                    },
                    {
                        "name": "domaintobechecked",
                        "in": "path",
                        "description": "Domain to retrieve endpoints for",
                        "required": true,
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "successful operation",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/EndpointsPresenter"
                                }
                            }
                        }
                    },
                    "400": {
                        "description": "bad request"
                    },
                    "401": {
                        "description": "invalid credentials"
                    },
                    "403": {
                        "description": "not authorized"
                    },
                    "422": {
                        "description": "unprocessable content"
                    },
                    "500": {
                        "description": "internal server error"
                    }
                }
            }
        },
        "/orgs/{domain}/features": {
            "get": {
                "tags": [
                    "features"
                ],
                "summary": "Read all Features relevant to an Organization. Note that the items returned will be specific to the licensing package",
                "operationId": "getFeatures",
                "parameters": [
                    {
                        "$ref": "#/components/parameters/X-user"
                    },
                    {
                        "$ref": "#/components/parameters/X-password"
                    },
                    {
                        "$ref": "#/components/parameters/domain"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "successful operation",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/Feature"
                                }
                            }
                        }
                    },
                    "400": {
                        "description": "bad request"
                    },
                    "401": {
                        "description": "invalid credentials"
                    },
                    "403": {
                        "description": "not authorized"
                    },
                    "500": {
                        "description": "internal server error"
                    }
                }
            },
            "put": {
                "tags": [
                    "features"
                ],
                "summary": "Update an Organization's feature set. The feature set will differ for different types of licensing package so the applicable features should be obtained by a GET first, then updated as appropriate",
                "operationId": "putFeatures",
                "parameters": [
                    {
                        "$ref": "#/components/parameters/X-user"
                    },
                    {
                        "$ref": "#/components/parameters/X-password"
                    },
                    {
                        "$ref": "#/components/parameters/domain"
                    }
                ],
                "requestBody": {
                    "description": "Feature data",
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/Feature"
                            }
                        }
                    }
                },
                "responses": {
                    "204": {
                        "description": "no content, successful update"
                    },
                    "400": {
                        "description": "bad request"
                    },
                    "401": {
                        "description": "invalid credentials"
                    },
                    "403": {
                        "description": "not authorized"
                    },
                    "422": {
                        "description": "invalid request data"
                    },
                    "500": {
                        "description": "internal server error"
                    }
                }
            }
        },
        "/orgs/{domain}/licensing": {
            "get": {
                "tags": [
                    "licensing"
                ],
                "summary": "Read all Licensing data relevant to an Organization",
                "operationId": "getLicensing",
                "parameters": [
                    {
                        "$ref": "#/components/parameters/X-user"
                    },
                    {
                        "$ref": "#/components/parameters/X-password"
                    },
                    {
                        "$ref": "#/components/parameters/domain"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "successful operation",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/Licensing"
                                }
                            }
                        }
                    },
                    "400": {
                        "description": "bad request"
                    },
                    "401": {
                        "description": "invalid credentials"
                    },
                    "403": {
                        "description": "not authorized"
                    },
                    "500": {
                        "description": "internal server error"
                    }
                }
            },
            "put": {
                "tags": [
                    "licensing"
                ],
                "summary": "Update an Organization's Licensing data",
                "operationId": "putLicensing",
                "parameters": [
                    {
                        "$ref": "#/components/parameters/X-user"
                    },
                    {
                        "$ref": "#/components/parameters/X-password"
                    },
                    {
                        "$ref": "#/components/parameters/domain"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "successful operation",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/Licensing"
                                }
                            }
                        }
                    },
                    "204": {
                        "description": "no content, successful update"
                    },
                    "400": {
                        "description": "bad request"
                    },
                    "401": {
                        "description": "invalid credentials"
                    },
                    "403": {
                        "description": "not authorized"
                    },
                    "422": {
                        "description": "invalid request data"
                    },
                    "500": {
                        "description": "internal server error"
                    }
                }
            }
        },
        "/me": {
            "get": {
                "tags": [
                    "me"
                ],
                "summary": "Read metadata about the currently logged in User",
                "operationId": "getMe",
                "parameters": [
                    {
                        "$ref": "#/components/parameters/X-user"
                    },
                    {
                        "$ref": "#/components/parameters/X-password"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "successful operation",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/MeResponse"
                                }
                            }
                        }
                    },
                    "400": {
                        "description": "bad request"
                    },
                    "401": {
                        "description": "invalid credentials"
                    },
                    "403": {
                        "description": "not authorized"
                    },
                    "500": {
                        "description": "internal server error"
                    }
                }
            }
        },
        "/orgs/{domain}": {
            "get": {
                "tags": [
                    "orgs"
                ],
                "summary": "Read an Organization",
                "operationId": "getOrg",
                "parameters": [
                    {
                        "$ref": "#/components/parameters/X-user"
                    },
                    {
                        "$ref": "#/components/parameters/X-password"
                    },
                    {
                        "$ref": "#/components/parameters/domain"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "successful operation",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/Organization"
                                }
                            }
                        }
                    },
                    "400": {
                        "description": "bad request"
                    },
                    "401": {
                        "description": "invalid credentials"
                    },
                    "403": {
                        "description": "not authorized"
                    },
                    "500": {
                        "description": "internal server error"
                    }
                }
            },
            "delete": {
                "tags": [
                    "orgs"
                ],
                "summary": "Delete an Organization",
                "operationId": "deleteOrg",
                "parameters": [
                    {
                        "$ref": "#/components/parameters/X-user"
                    },
                    {
                        "$ref": "#/components/parameters/X-password"
                    },
                    {
                        "$ref": "#/components/parameters/domain"
                    }
                ],
                "responses": {
                    "204": {
                        "description": "no content, successful deletion"
                    },
                    "400": {
                        "description": "bad request"
                    },
                    "401": {
                        "description": "invalid credentials"
                    },
                    "403": {
                        "description": "not authorized"
                    },
                    "500": {
                        "description": "internal server error"
                    }
                }
            },
            "patch": {
                "tags": [
                    "orgs"
                ],
                "summary": "Update an Organization",
                "operationId": "patchOrg",
                "parameters": [
                    {
                        "$ref": "#/components/parameters/X-user"
                    },
                    {
                        "$ref": "#/components/parameters/X-password"
                    },
                    {
                        "$ref": "#/components/parameters/domain"
                    }
                ],
                "requestBody": {
                    "description": "one or more supported fields may be individually updated",
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "properties": {
                                    "is_active": {
                                        "type": "boolean"
                                    }
                                },
                                "type": "object"
                            }
                        }
                    }
                },
                "responses": {
                    "204": {
                        "description": "no content, successful update"
                    },
                    "400": {
                        "description": "bad request"
                    },
                    "401": {
                        "description": "invalid credentials"
                    },
                    "403": {
                        "description": "not authorized"
                    },
                    "422": {
                        "description": "invalid request data"
                    },
                    "500": {
                        "description": "internal server error"
                    }
                }
            }
        },
        "/orgs/{domain}/orgs": {
            "get": {
                "tags": [
                    "orgs"
                ],
                "summary": "Read an Organization and its child Organizations",
                "operationId": "getChildOrgs",
                "parameters": [
                    {
                        "$ref": "#/components/parameters/X-user"
                    },
                    {
                        "$ref": "#/components/parameters/X-password"
                    },
                    {
                        "$ref": "#/components/parameters/domain"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "successful operation",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "array",
                                    "items": {
                                        "$ref": "#/components/schemas/Organization"
                                    }
                                }
                            }
                        }
                    },
                    "400": {
                        "description": "bad request"
                    },
                    "401": {
                        "description": "invalid credentials"
                    },
                    "403": {
                        "description": "not authorized"
                    },
                    "500": {
                        "description": "internal server error"
                    }
                }
            },
            "post": {
                "tags": [
                    "orgs"
                ],
                "summary": "Create a new Organization. Batch POST supported with list of Organization objects.",
                "operationId": "postOrg",
                "parameters": [
                    {
                        "$ref": "#/components/parameters/X-user"
                    },
                    {
                        "$ref": "#/components/parameters/X-password"
                    },
                    {
                        "$ref": "#/components/parameters/domain"
                    }
                ],
                "requestBody": {
                    "description": "Domain data",
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/Organization"
                            }
                        }
                    }
                },
                "responses": {
                    "201": {
                        "description": "created",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/Organization"
                                }
                            }
                        }
                    },
                    "207": {
                        "description": "batch response, individual results contained within"
                    },
                    "400": {
                        "description": "bad request"
                    },
                    "401": {
                        "description": "invalid credentials"
                    },
                    "403": {
                        "description": "not authorized"
                    },
                    "409": {
                        "description": "resource already exists"
                    },
                    "422": {
                        "description": "invalid request data"
                    },
                    "500": {
                        "description": "internal server error"
                    }
                }
            }
        },
        "/orgs/{domain}/package": {
            "put": {
                "tags": [
                    "package"
                ],
                "summary": "Update an Organization's Package data",
                "operationId": "putPackage",
                "parameters": [
                    {
                        "$ref": "#/components/parameters/X-user"
                    },
                    {
                        "$ref": "#/components/parameters/X-password"
                    },
                    {
                        "$ref": "#/components/parameters/domain"
                    }
                ],
                "requestBody": {
                    "description": "Package data",
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/Package"
                            }
                        }
                    }
                },
                "responses": {
                    "204": {
                        "description": "no content, successful update"
                    },
                    "400": {
                        "description": "bad request"
                    },
                    "401": {
                        "description": "invalid credentials"
                    },
                    "403": {
                        "description": "not authorized"
                    },
                    "422": {
                        "description": "invalid request data"
                    },
                    "500": {
                        "description": "internal server error"
                    }
                }
            }
        },
        "/orgs/{domain}/products": {
            "get": {
                "tags": [
                    "products"
                ],
                "summary": "Read a list of Products applicable to an Organization. Includes both available and purchased products.",
                "description": "HTTP GET on all products - coming from route",
                "operationId": "getProducts",
                "parameters": [
                    {
                        "$ref": "#/components/parameters/X-user"
                    },
                    {
                        "$ref": "#/components/parameters/X-password"
                    },
                    {
                        "$ref": "#/components/parameters/domain"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "successful operation",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "array",
                                    "items": {
                                        "$ref": "#/components/schemas/ProductResponse"
                                    }
                                }
                            }
                        }
                    },
                    "400": {
                        "description": "bad request"
                    },
                    "401": {
                        "description": "invalid credentials"
                    },
                    "403": {
                        "description": "not authorized"
                    },
                    "500": {
                        "description": "internal server error"
                    }
                }
            },
            "post": {
                "tags": [
                    "products"
                ],
                "summary": "Used to purchase a Product",
                "description": "HTTP POST to add a product to an org - coming from route",
                "operationId": "productsPost",
                "parameters": [
                    {
                        "$ref": "#/components/parameters/X-user"
                    },
                    {
                        "$ref": "#/components/parameters/X-password"
                    },
                    {
                        "$ref": "#/components/parameters/domain"
                    }
                ],
                "requestBody": {
                    "description": "Product Post data",
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/ProductPost"
                            }
                        }
                    }
                },
                "responses": {
                    "201": {
                        "description": "created",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/ProductResponse"
                                }
                            }
                        }
                    },
                    "207": {
                        "description": "batch response, individual results contained within"
                    },
                    "400": {
                        "description": "bad request"
                    },
                    "401": {
                        "description": "invalid credentials"
                    },
                    "403": {
                        "description": "not authorized"
                    },
                    "422": {
                        "description": "invalid request data"
                    },
                    "500": {
                        "description": "internal server error"
                    }
                }
            }
        },
        "/orgs/{domain}/products/{label}": {
            "get": {
                "tags": [
                    "products"
                ],
                "summary": "Read a single Product by Label.",
                "operationId": "getOne",
                "parameters": [
                    {
                        "$ref": "#/components/parameters/X-user"
                    },
                    {
                        "$ref": "#/components/parameters/X-password"
                    },
                    {
                        "$ref": "#/components/parameters/domain"
                    },
                    {
                        "$ref": "#/components/parameters/label"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "successful operation",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/ProductResponse"
                                }
                            }
                        }
                    },
                    "400": {
                        "description": "bad request"
                    },
                    "401": {
                        "description": "invalid credentials"
                    },
                    "403": {
                        "description": "not authorized"
                    },
                    "500": {
                        "description": "internal server error"
                    }
                }
            },
            "delete": {
                "tags": [
                    "products"
                ],
                "summary": "Delete a Product subscription. NOTE this will not normally be available to customers depending on the Product",
                "description": "HTTP DELETE on single product - coming from route",
                "operationId": "productDelete",
                "parameters": [
                    {
                        "$ref": "#/components/parameters/X-user"
                    },
                    {
                        "$ref": "#/components/parameters/X-password"
                    },
                    {
                        "$ref": "#/components/parameters/domain"
                    },
                    {
                        "$ref": "#/components/parameters/label"
                    }
                ],
                "responses": {
                    "204": {
                        "description": "no content, successful deletion"
                    },
                    "400": {
                        "description": "bad request"
                    },
                    "401": {
                        "description": "invalid credentials"
                    },
                    "403": {
                        "description": "not authorized"
                    },
                    "500": {
                        "description": "internal server error"
                    }
                }
            },
            "patch": {
                "tags": [
                    "products"
                ],
                "summary": "Update a Product",
                "description": "HTTP PATCH on single product - coming from route",
                "operationId": "productPatch",
                "parameters": [
                    {
                        "$ref": "#/components/parameters/X-user"
                    },
                    {
                        "$ref": "#/components/parameters/X-password"
                    },
                    {
                        "$ref": "#/components/parameters/domain"
                    },
                    {
                        "$ref": "#/components/parameters/label"
                    }
                ],
                "requestBody": {
                    "description": "Product data (all fields optional)",
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/ProductPatch"
                            }
                        }
                    }
                },
                "responses": {
                    "204": {
                        "description": "no content, successful update"
                    },
                    "400": {
                        "description": "bad request"
                    },
                    "401": {
                        "description": "invalid credentials"
                    },
                    "403": {
                        "description": "not authorized"
                    },
                    "422": {
                        "description": "invalid request data"
                    },
                    "500": {
                        "description": "internal server error"
                    }
                }
            }
        },
        "/reporting/{domain}/{period}": {
            "get": {
                "tags": [
                    "reporting"
                ],
                "summary": "Read statistics data for an Organization",
                "operationId": "getReportingPeriod",
                "parameters": [
                    {
                        "$ref": "#/components/parameters/X-user"
                    },
                    {
                        "$ref": "#/components/parameters/X-password"
                    },
                    {
                        "$ref": "#/components/parameters/domain"
                    },
                    {
                        "$ref": "#/components/parameters/period"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "successful operation",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/Report"
                                }
                            }
                        }
                    },
                    "400": {
                        "description": "bad request"
                    },
                    "401": {
                        "description": "invalid credentials"
                    },
                    "403": {
                        "description": "not authorized"
                    },
                    "500": {
                        "description": "internal server error"
                    }
                }
            }
        },
        "/reporting/{domain}/{period}/{direction}": {
            "get": {
                "tags": [
                    "reporting"
                ],
                "summary": "Read statistics data for an Organization",
                "operationId": "getReportingPeriodByDirection",
                "parameters": [
                    {
                        "$ref": "#/components/parameters/X-user"
                    },
                    {
                        "$ref": "#/components/parameters/X-password"
                    },
                    {
                        "$ref": "#/components/parameters/domain"
                    },
                    {
                        "$ref": "#/components/parameters/period"
                    },
                    {
                        "$ref": "#/components/parameters/direction"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "successful operation",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/Report"
                                }
                            }
                        }
                    },
                    "400": {
                        "description": "bad request"
                    },
                    "401": {
                        "description": "invalid credentials"
                    },
                    "403": {
                        "description": "not authorized"
                    },
                    "500": {
                        "description": "internal server error"
                    }
                }
            }
        },
        "/orgs/{domain}/sender-lists": {
            "get": {
                "tags": [
                    "sender lists"
                ],
                "summary": "Read sender lists for an Organization.",
                "operationId": "getSenderLists",
                "parameters": [
                    {
                        "$ref": "#/components/parameters/X-user"
                    },
                    {
                        "$ref": "#/components/parameters/X-password"
                    },
                    {
                        "$ref": "#/components/parameters/domain"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "successful operation",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/SenderListsPresenter"
                                }
                            }
                        }
                    },
                    "400": {
                        "description": "bad request"
                    },
                    "401": {
                        "description": "invalid credentials"
                    },
                    "403": {
                        "description": "not authorized"
                    },
                    "500": {
                        "description": "internal server error"
                    }
                }
            },
            "post": {
                "tags": [
                    "sender lists"
                ],
                "summary": "Update sender lists for an Organization",
                "operationId": "postSenderLists",
                "parameters": [
                    {
                        "$ref": "#/components/parameters/X-user"
                    },
                    {
                        "$ref": "#/components/parameters/X-password"
                    },
                    {
                        "$ref": "#/components/parameters/domain"
                    }
                ],
                "requestBody": {
                    "description": "Sender lists data. At least one list must be specified",
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/SenderListsPresenter"
                            }
                        }
                    }
                },
                "responses": {
                    "204": {
                        "description": "no content, successful update"
                    },
                    "400": {
                        "description": "bad request"
                    },
                    "401": {
                        "description": "invalid credentials"
                    },
                    "403": {
                        "description": "not authorized"
                    },
                    "409": {
                        "description": "conflict, already exists"
                    },
                    "422": {
                        "description": "invalid request data"
                    },
                    "500": {
                        "description": "internal server error"
                    }
                }
            },
            "delete": {
                "tags": [
                    "sender lists"
                ],
                "summary": "Delete sender lists for an Organization",
                "operationId": "deleteSenderLists",
                "parameters": [
                    {
                        "$ref": "#/components/parameters/X-user"
                    },
                    {
                        "$ref": "#/components/parameters/X-password"
                    },
                    {
                        "$ref": "#/components/parameters/domain"
                    }
                ],
                "responses": {
                    "204": {
                        "description": "no content, successful update"
                    },
                    "400": {
                        "description": "bad request"
                    },
                    "401": {
                        "description": "invalid credentials"
                    },
                    "403": {
                        "description": "not authorized"
                    },
                    "404": {
                        "description": "not found, does not exist"
                    },
                    "422": {
                        "description": "invalid request data"
                    },
                    "500": {
                        "description": "internal server error"
                    }
                }
            },
            "patch": {
                "tags": [
                    "sender lists"
                ],
                "summary": "Update sender lists for an Organization",
                "operationId": "patchSenderLists",
                "parameters": [
                    {
                        "$ref": "#/components/parameters/X-user"
                    },
                    {
                        "$ref": "#/components/parameters/X-password"
                    },
                    {
                        "$ref": "#/components/parameters/domain"
                    }
                ],
                "requestBody": {
                    "description": "Sender lists data. At least one list must be specified",
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/SenderListsPresenter"
                            }
                        }
                    }
                },
                "responses": {
                    "204": {
                        "description": "no content, successful update"
                    },
                    "400": {
                        "description": "bad request"
                    },
                    "401": {
                        "description": "invalid credentials"
                    },
                    "403": {
                        "description": "not authorized"
                    },
                    "422": {
                        "description": "invalid request data"
                    },
                    "500": {
                        "description": "internal server error"
                    }
                }
            }
        },
        "/orgs/{domain}/users/{user}/sender-lists": {
            "get": {
                "tags": [
                    "sender lists"
                ],
                "summary": "Read sender lists for a User.",
                "operationId": "getUserLists",
                "parameters": [
                    {
                        "$ref": "#/components/parameters/X-user"
                    },
                    {
                        "$ref": "#/components/parameters/X-password"
                    },
                    {
                        "$ref": "#/components/parameters/domain"
                    },
                    {
                        "$ref": "#/components/parameters/user"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "successful operation",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/SenderListsPresenter"
                                }
                            }
                        }
                    },
                    "400": {
                        "description": "bad request"
                    },
                    "401": {
                        "description": "invalid credentials"
                    },
                    "403": {
                        "description": "not authorized"
                    },
                    "500": {
                        "description": "internal server error"
                    }
                }
            },
            "post": {
                "tags": [
                    "sender lists"
                ],
                "summary": "Update sender lists for a User",
                "operationId": "postUserLists",
                "parameters": [
                    {
                        "$ref": "#/components/parameters/X-user"
                    },
                    {
                        "$ref": "#/components/parameters/X-password"
                    },
                    {
                        "$ref": "#/components/parameters/domain"
                    },
                    {
                        "$ref": "#/components/parameters/user"
                    }
                ],
                "requestBody": {
                    "description": "Sender lists data. At least one list must be specified",
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/SenderListsPresenter"
                            }
                        }
                    }
                },
                "responses": {
                    "204": {
                        "description": "no content, successful update"
                    },
                    "400": {
                        "description": "bad request"
                    },
                    "401": {
                        "description": "invalid credentials"
                    },
                    "403": {
                        "description": "not authorized"
                    },
                    "409": {
                        "description": "conflict, already exists"
                    },
                    "422": {
                        "description": "invalid request data"
                    },
                    "500": {
                        "description": "internal server error"
                    }
                }
            },
            "delete": {
                "tags": [
                    "sender lists"
                ],
                "summary": "Delete sender lists for a User",
                "operationId": "deleteUserLists",
                "parameters": [
                    {
                        "$ref": "#/components/parameters/X-user"
                    },
                    {
                        "$ref": "#/components/parameters/X-password"
                    },
                    {
                        "$ref": "#/components/parameters/domain"
                    },
                    {
                        "$ref": "#/components/parameters/user"
                    }
                ],
                "responses": {
                    "204": {
                        "description": "no content, successful update"
                    },
                    "400": {
                        "description": "bad request"
                    },
                    "401": {
                        "description": "invalid credentials"
                    },
                    "403": {
                        "description": "not authorized"
                    },
                    "404": {
                        "description": "not found, does not exist"
                    },
                    "422": {
                        "description": "invalid request data"
                    },
                    "500": {
                        "description": "internal server error"
                    }
                }
            },
            "patch": {
                "tags": [
                    "sender lists"
                ],
                "summary": "Update sender lists for a User",
                "operationId": "patchUserSenderLists",
                "parameters": [
                    {
                        "$ref": "#/components/parameters/X-user"
                    },
                    {
                        "$ref": "#/components/parameters/X-password"
                    },
                    {
                        "$ref": "#/components/parameters/domain"
                    },
                    {
                        "$ref": "#/components/parameters/user"
                    }
                ],
                "requestBody": {
                    "description": "Sender lists data. At least one list must be specified",
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/SenderListsPresenter"
                            }
                        }
                    }
                },
                "responses": {
                    "204": {
                        "description": "no content, successful update"
                    },
                    "400": {
                        "description": "bad request"
                    },
                    "401": {
                        "description": "invalid credentials"
                    },
                    "403": {
                        "description": "not authorized"
                    },
                    "422": {
                        "description": "invalid request data"
                    },
                    "500": {
                        "description": "internal server error"
                    }
                }
            }
        },
        "/orgs/{domain}/groups/{group}/sender-lists": {
            "get": {
                "tags": [
                    "sender lists"
                ],
                "summary": "Read sender lists for a Group.",
                "operationId": "getGroupLists",
                "parameters": [
                    {
                        "$ref": "#/components/parameters/X-user"
                    },
                    {
                        "$ref": "#/components/parameters/X-password"
                    },
                    {
                        "$ref": "#/components/parameters/domain"
                    },
                    {
                        "$ref": "#/components/parameters/group-id"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "successful operation",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/SenderListsPresenter"
                                }
                            }
                        }
                    },
                    "400": {
                        "description": "bad request"
                    },
                    "401": {
                        "description": "invalid credentials"
                    },
                    "403": {
                        "description": "not authorized"
                    },
                    "500": {
                        "description": "internal server error"
                    }
                }
            },
            "post": {
                "tags": [
                    "sender lists"
                ],
                "summary": "Update sender lists for a Group",
                "operationId": "postGroupLists",
                "parameters": [
                    {
                        "$ref": "#/components/parameters/X-user"
                    },
                    {
                        "$ref": "#/components/parameters/X-password"
                    },
                    {
                        "$ref": "#/components/parameters/domain"
                    },
                    {
                        "$ref": "#/components/parameters/group"
                    }
                ],
                "requestBody": {
                    "description": "Sender lists data. At least one list must be specified",
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/SenderListsPresenter"
                            }
                        }
                    }
                },
                "responses": {
                    "204": {
                        "description": "no content, successful update"
                    },
                    "400": {
                        "description": "bad request"
                    },
                    "401": {
                        "description": "invalid credentials"
                    },
                    "403": {
                        "description": "not authorized"
                    },
                    "409": {
                        "description": "conflict, already exists"
                    },
                    "422": {
                        "description": "invalid request data"
                    },
                    "500": {
                        "description": "internal server error"
                    }
                }
            },
            "delete": {
                "tags": [
                    "sender lists"
                ],
                "summary": "Delete sender lists for a Group",
                "operationId": "deleteGroupLists",
                "parameters": [
                    {
                        "$ref": "#/components/parameters/X-user"
                    },
                    {
                        "$ref": "#/components/parameters/X-password"
                    },
                    {
                        "$ref": "#/components/parameters/domain"
                    },
                    {
                        "$ref": "#/components/parameters/group"
                    }
                ],
                "responses": {
                    "204": {
                        "description": "no content, successful update"
                    },
                    "400": {
                        "description": "bad request"
                    },
                    "401": {
                        "description": "invalid credentials"
                    },
                    "403": {
                        "description": "not authorized"
                    },
                    "404": {
                        "description": "not found, does not exist"
                    },
                    "422": {
                        "description": "invalid request data"
                    },
                    "500": {
                        "description": "internal server error"
                    }
                }
            },
            "patch": {
                "tags": [
                    "sender lists"
                ],
                "summary": "Update sender lists for a Group",
                "operationId": "patchGroupSenderLists",
                "parameters": [
                    {
                        "$ref": "#/components/parameters/X-user"
                    },
                    {
                        "$ref": "#/components/parameters/X-password"
                    },
                    {
                        "$ref": "#/components/parameters/domain"
                    },
                    {
                        "$ref": "#/components/parameters/group"
                    }
                ],
                "requestBody": {
                    "description": "Sender lists data. At least one list must be specified",
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/SenderListsPresenter"
                            }
                        }
                    }
                },
                "responses": {
                    "204": {
                        "description": "no content, successful update"
                    },
                    "400": {
                        "description": "bad request"
                    },
                    "401": {
                        "description": "invalid credentials"
                    },
                    "403": {
                        "description": "not authorized"
                    },
                    "422": {
                        "description": "invalid request data"
                    },
                    "500": {
                        "description": "internal server error"
                    }
                }
            }
        },
        "/stats/{domain}/partner": {
            "get": {
                "tags": [
                    "stats"
                ],
                "summary": "Read statistics data for an Organization for the last 1/7/30/90 days.",
                "description": "This endpoint will return statistics for an Organization.<br/><b>The following statistics are reported:</b><br />ib_total: Total inbound mail, including clean mail.<br />ob_total: Total outbound mail, including clean mail.<br />ib_blocked: Total inbound blocked mail, including all threats detected and blocked mail (organization/user blocked sender list entries and filters).<br />ob_blocked: Total outbound blocked mail,  including all threats detected and blocked mail (organization/user filters).<br />active_users: Number of active users during each period. Active users are those with mail during the time period.<br />ib_spam: Total inbound mail marked as spam. This includes all mail marked as spam, imposter and phish.<br />ib_virus: Total inbound mail marked as virus.<br />ib_mal_att: Total inbound mail marked as containing a malicious attachment.<br />ib_imposter: Total inbound mail marked as imposter.<br />ib_phish: Total inbound mail marked as a phish.<br />ob_enc: Total outbound encrypted mail.<br /><b>The time periods (UTC) are defined as follows:</b><br />1 day: 24 hours from the previous midnight.<br />7 day: 7 days from the previous midnight.<br />30 day: 30 days from the previous midnight.<br />90 day: 90 days from the previous midnight.",
                "operationId": "partnerStatsSingleOrg",
                "parameters": [
                    {
                        "$ref": "#/components/parameters/X-user"
                    },
                    {
                        "$ref": "#/components/parameters/X-password"
                    },
                    {
                        "$ref": "#/components/parameters/domain"
                    },
                    {
                        "name": "period",
                        "in": "query",
                        "description": "The response data may be filtered by period interval. Example shown is for '90d'.",
                        "required": false,
                        "schema": {
                            "type": "string",
                            "enum": [
                                "1d",
                                "7d",
                                "30d",
                                "90d"
                            ]
                        }
                    },
                    {
                        "name": "page",
                        "in": "query",
                        "description": "Data may be 'paged'. Specify a page number to retrieve the desired set of results.",
                        "required": false,
                        "schema": {
                            "type": "integer",
                            "default": 1
                        }
                    },
                    {
                        "name": "page_size",
                        "in": "query",
                        "description": "Data may be 'paged'. Specify a page size to retrieve the desired number of results per page. Max: 50000. The default is intentionally large to allow most partners to retrieve all data in a single request.",
                        "required": false,
                        "schema": {
                            "type": "integer",
                            "default": 1000
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "successful operation",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/PartnerStatsResponse"
                                }
                            }
                        }
                    },
                    "400": {
                        "description": "bad request"
                    },
                    "401": {
                        "description": "invalid credentials"
                    },
                    "403": {
                        "description": "not authorized"
                    },
                    "500": {
                        "description": "internal server error"
                    }
                }
            }
        },
        "/stats/{domain}/partner/orgs": {
            "get": {
                "tags": [
                    "stats"
                ],
                "summary": "Read statistics data for an Organization and its children for the last 1/7/30/90 days.",
                "description": "This endpoint will return statistics for an Organization and its children.<br/><b>The following statistics are reported:</b><br />ib_total: Total inbound mail, including clean mail.<br />ob_total: Total outbound mail, including clean mail.<br />ib_blocked: Total inbound blocked mail, including all threats detected and blocked mail (organization/user blocked sender list entries and filters).<br />ob_blocked: Total outbound blocked mail,  including all threats detected and blocked mail (organization/user filters).<br />active_users: Number of active users during each period. Active users are those with mail during the time period.<br />ib_spam: Total inbound mail marked as spam. This includes all mail marked as spam, imposter and phish.<br />ib_virus: Total inbound mail marked as virus.<br />ib_mal_att: Total inbound mail marked as containing a malicious attachment.<br />ib_imposter: Total inbound mail marked as imposter.<br />ib_phish: Total inbound mail marked as a phish.<br />ob_enc: Total outbound encrypted mail.<br /><b>The time periods (UTC) are defined as follows:</b><br />1 day: 24 hours from the previous midnight.<br />7 day: 7 days from the previous midnight.<br />30 day: 30 days from the previous midnight.<br />90 day: 90 days from the previous midnight.",
                "operationId": "partnerStatsAllOrgs",
                "parameters": [
                    {
                        "$ref": "#/components/parameters/X-user"
                    },
                    {
                        "$ref": "#/components/parameters/X-password"
                    },
                    {
                        "$ref": "#/components/parameters/domain"
                    },
                    {
                        "name": "period",
                        "in": "query",
                        "description": "The response data may be filtered by period interval. Example shown is for '90d'.",
                        "required": false,
                        "schema": {
                            "type": "string",
                            "enum": [
                                "1d",
                                "7d",
                                "30d",
                                "90d"
                            ]
                        }
                    },
                    {
                        "name": "page",
                        "in": "query",
                        "description": "Data may be 'paged'. Specify a page number to retrieve the desired set of results.",
                        "required": false,
                        "schema": {
                            "type": "integer",
                            "default": 1
                        }
                    },
                    {
                        "name": "page_size",
                        "in": "query",
                        "description": "Data may be 'paged'. Specify a page size to retrieve the desired number of results per page. Max: 50000. The default is intentionally large to allow most partners to retrieve all data in a single request.",
                        "required": false,
                        "schema": {
                            "type": "integer",
                            "default": 1000
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "successful operation",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/PartnerStatsResponse"
                                }
                            }
                        }
                    },
                    "400": {
                        "description": "bad request"
                    },
                    "401": {
                        "description": "invalid credentials"
                    },
                    "403": {
                        "description": "not authorized"
                    },
                    "500": {
                        "description": "internal server error"
                    }
                }
            }
        },
        "/orgs/{domain}/settings/azure/exemptions": {
            "get": {
                "tags": [
                    "sync exemptions"
                ],
                "summary": "List of Sync Exemptions for an organization",
                "operationId": "getAzureExemptions",
                "parameters": [
                    {
                        "$ref": "#/components/parameters/X-user"
                    },
                    {
                        "$ref": "#/components/parameters/X-password"
                    },
                    {
                        "$ref": "#/components/parameters/domain"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "successful operation"
                    },
                    "400": {
                        "description": "bad request"
                    },
                    "401": {
                        "description": "invalid credentials"
                    },
                    "403": {
                        "description": "not authorized"
                    },
                    "500": {
                        "description": "internal server error"
                    }
                }
            },
            "put": {
                "tags": [
                    "sync exemptions"
                ],
                "summary": "Add to organizations Sync Exemptions",
                "operationId": "putAzureExemptions",
                "parameters": [
                    {
                        "$ref": "#/components/parameters/X-user"
                    },
                    {
                        "$ref": "#/components/parameters/X-password"
                    },
                    {
                        "$ref": "#/components/parameters/domain"
                    }
                ],
                "requestBody": {
                    "description": "List of comma separated emails to add to exemptions",
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/SyncExemptions"
                            }
                        }
                    }
                },
                "responses": {
                    "204": {
                        "description": "no content, successful update"
                    },
                    "400": {
                        "description": "bad request"
                    },
                    "401": {
                        "description": "invalid credentials"
                    },
                    "403": {
                        "description": "not authorized"
                    },
                    "422": {
                        "description": "invalid request data"
                    },
                    "500": {
                        "description": "internal server error"
                    }
                }
            },
            "delete": {
                "tags": [
                    "sync exemptions"
                ],
                "summary": "Delete all organizations Sync Exemptions",
                "operationId": "deleteAllAzureExemptions",
                "parameters": [
                    {
                        "$ref": "#/components/parameters/X-user"
                    },
                    {
                        "$ref": "#/components/parameters/X-password"
                    },
                    {
                        "$ref": "#/components/parameters/domain"
                    }
                ],
                "responses": {
                    "204": {
                        "description": "no content, successful update"
                    },
                    "400": {
                        "description": "bad request"
                    },
                    "401": {
                        "description": "invalid credentials"
                    },
                    "403": {
                        "description": "not authorized"
                    },
                    "500": {
                        "description": "internal server error"
                    }
                }
            }
        },
        "/orgs/{domain}/settings/azure/exemptions/{user}": {
            "delete": {
                "tags": [
                    "sync exemptions"
                ],
                "summary": "Delete one Sync Exemption belonging to organization",
                "operationId": "deleteAzureExemptions",
                "parameters": [
                    {
                        "$ref": "#/components/parameters/X-user"
                    },
                    {
                        "$ref": "#/components/parameters/X-password"
                    },
                    {
                        "$ref": "#/components/parameters/domain"
                    },
                    {
                        "$ref": "#/components/parameters/user"
                    }
                ],
                "responses": {
                    "204": {
                        "description": "no content, successful update"
                    },
                    "400": {
                        "description": "bad request"
                    },
                    "401": {
                        "description": "invalid credentials"
                    },
                    "403": {
                        "description": "not authorized"
                    },
                    "500": {
                        "description": "internal server error"
                    }
                }
            }
        },
        "/token/{domain}": {
            "post": {
                "tags": [
                    "token"
                ],
                "summary": "Create an Odin access token for the specified user",
                "operationId": "postToken",
                "parameters": [
                    {
                        "$ref": "#/components/parameters/X-user"
                    },
                    {
                        "$ref": "#/components/parameters/X-password"
                    },
                    {
                        "$ref": "#/components/parameters/domain"
                    }
                ],
                "requestBody": {
                    "description": "User data",
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/TokenRequest"
                            }
                        }
                    }
                },
                "responses": {
                    "201": {
                        "description": "created",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/TokenResponse"
                                }
                            }
                        }
                    },
                    "400": {
                        "description": "bad request"
                    },
                    "401": {
                        "description": "invalid credentials"
                    },
                    "403": {
                        "description": "not authorized"
                    },
                    "422": {
                        "description": "invalid request data"
                    },
                    "500": {
                        "description": "internal server error"
                    }
                }
            }
        },
        "/orgs/{domain}/users/{user}": {
            "get": {
                "tags": [
                    "users"
                ],
                "summary": "Read a User belonging to an Organization",
                "operationId": "getUser",
                "parameters": [
                    {
                        "$ref": "#/components/parameters/X-user"
                    },
                    {
                        "$ref": "#/components/parameters/X-password"
                    },
                    {
                        "$ref": "#/components/parameters/domain"
                    },
                    {
                        "$ref": "#/components/parameters/user"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "successful operation",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/User"
                                }
                            }
                        }
                    },
                    "400": {
                        "description": "bad request"
                    },
                    "401": {
                        "description": "invalid credentials"
                    },
                    "403": {
                        "description": "not authorized"
                    },
                    "500": {
                        "description": "internal server error"
                    }
                }
            },
            "put": {
                "tags": [
                    "users"
                ],
                "summary": "Update a User belonging to an Organization",
                "operationId": "putUser",
                "parameters": [
                    {
                        "$ref": "#/components/parameters/X-user"
                    },
                    {
                        "$ref": "#/components/parameters/X-password"
                    },
                    {
                        "$ref": "#/components/parameters/domain"
                    },
                    {
                        "$ref": "#/components/parameters/user"
                    }
                ],
                "requestBody": {
                    "description": "User data",
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/User"
                            }
                        }
                    }
                },
                "responses": {
                    "204": {
                        "description": "no content, successful update"
                    },
                    "400": {
                        "description": "bad request"
                    },
                    "401": {
                        "description": "invalid credentials"
                    },
                    "403": {
                        "description": "not authorized"
                    },
                    "422": {
                        "description": "invalid request data"
                    },
                    "500": {
                        "description": "internal server error"
                    }
                }
            },
            "delete": {
                "tags": [
                    "users"
                ],
                "summary": "Delete a User",
                "operationId": "deleteUser",
                "parameters": [
                    {
                        "$ref": "#/components/parameters/X-user"
                    },
                    {
                        "$ref": "#/components/parameters/X-password"
                    },
                    {
                        "$ref": "#/components/parameters/domain"
                    },
                    {
                        "$ref": "#/components/parameters/user"
                    }
                ],
                "responses": {
                    "204": {
                        "description": "no content, successful deletion"
                    },
                    "400": {
                        "description": "bad request"
                    },
                    "401": {
                        "description": "invalid credentials"
                    },
                    "403": {
                        "description": "not authorized"
                    },
                    "500": {
                        "description": "internal server error"
                    }
                }
            }
        },
        "/orgs/{domain}/users": {
            "get": {
                "tags": [
                    "users"
                ],
                "summary": "Read all Users belonging to an Organization",
                "operationId": "getUsers",
                "parameters": [
                    {
                        "$ref": "#/components/parameters/X-user"
                    },
                    {
                        "$ref": "#/components/parameters/X-password"
                    },
                    {
                        "$ref": "#/components/parameters/domain"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "successful operation",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "array",
                                    "items": {
                                        "$ref": "#/components/schemas/User"
                                    }
                                }
                            }
                        }
                    },
                    "400": {
                        "description": "bad request"
                    },
                    "401": {
                        "description": "invalid credentials"
                    },
                    "403": {
                        "description": "not authorized"
                    },
                    "500": {
                        "description": "internal server error"
                    }
                }
            },
            "post": {
                "tags": [
                    "users"
                ],
                "summary": "Create a new User. Batch POST supported with list of User objects.",
                "operationId": "postUser",
                "parameters": [
                    {
                        "$ref": "#/components/parameters/X-user"
                    },
                    {
                        "$ref": "#/components/parameters/X-password"
                    },
                    {
                        "$ref": "#/components/parameters/domain"
                    }
                ],
                "requestBody": {
                    "description": "User data. May be a single object or a list of objects for batch creation",
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/User"
                            }
                        }
                    }
                },
                "responses": {
                    "201": {
                        "description": "created",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/User"
                                }
                            }
                        }
                    },
                    "207": {
                        "description": "batch response, individual results contained within"
                    },
                    "400": {
                        "description": "bad request"
                    },
                    "401": {
                        "description": "invalid credentials"
                    },
                    "403": {
                        "description": "not authorized"
                    },
                    "409": {
                        "description": "resource already exists"
                    },
                    "422": {
                        "description": "invalid request data"
                    },
                    "500": {
                        "description": "internal server error"
                    }
                }
            }
        }
    },
    "components": {
        "schemas": {
            "Package": {
                "title": "Package",
                "required": [
                    "package",
                    "is_eula_confirmed"
                ],
                "properties": {
                    "package": {
                        "description": "Desired package type for the Organization",
                        "type": "string",
                        "enum": [
                            "beginner",
                            "business",
                            "business_plus",
                            "advanced",
                            "advanced_plus",
                            "professional",
                            "professional_plus"
                        ],
                        "example": "professional"
                    },
                    "is_activated": {
                        "description": "Set to activate the package (confirm trial)",
                        "type": "boolean",
                        "default": false
                    },
                    "is_eula_confirmed": {
                        "description": "Set to confirm that the EULA has been confirmed",
                        "type": "boolean",
                        "default": false
                    },
                    "is_trial_extended": {
                        "description": "Set to extend the trial package period",
                        "type": "boolean",
                        "default": false
                    }
                },
                "type": "object"
            },
            "TokenRequest": {
                "title": "TokenRequest",
                "required": [
                    "user_to_impersonate"
                ],
                "properties": {
                    "user_to_impersonate": {
                        "description": "user_to_impersonate",
                        "type": "string",
                        "example": "john.smith@mydomain.com"
                    }
                },
                "type": "object"
            },
            "TokenResponse": {
                "title": "TokenResponse",
                "required": [
                    "auth_token"
                ],
                "properties": {
                    "auth_token": {
                        "type": "string",
                        "example": "bm90IHJlYWxseSBhIHRva2Vu"
                    }
                },
                "type": "object"
            },
            "AzureAdSettingsModel": {
                "title": "AzureAdSettings",
                "description": "Azure Active Directory Settings",
                "required": [
                    "primaryDomain",
                    "applicationId",
                    "adKey",
                    "disableLogin",
                    "defaultUserRoleName",
                    "syncFrequency",
                    "syncActiveUsers",
                    "syncDistributionGroups",
                    "syncSecurityGroups",
                    "addUsers",
                    "updateUsers",
                    "removeDeletedUsers",
                    "addGroups",
                    "updateGroups",
                    "removeDeletedGroups",
                    "syncVersion"
                ],
                "properties": {
                    "primary_domain": {
                        "description": "The primary domain associated with your Office 365 organization custom Azure web application.",
                        "type": "string",
                        "example": "mydomain.com"
                    },
                    "application_id": {
                        "description": "The unique identifier assigned to your Office 365 organization's custom Azure web application.",
                        "type": "string",
                        "example": "XYZ"
                    },
                    "ad_key": {
                        "description": "The unique key associated with your Office 365 organization's custom Azure web application.<br>This will always be returned as '****'.",
                        "type": "string",
                        "example": "XYZ"
                    },
                    "disable_login": {
                        "description": "If true, users will be not able to log into this portal using their Azure credentials.",
                        "type": "boolean",
                        "example": false
                    },
                    "default_user_role_name": {
                        "description": "The default role for new users. Accepts 'end_user' or 'silent_user'.<br>End users will receive a quarantine digest email and can login to the user interface.<br>Silent users receive a quarantine digest email only.",
                        "type": "string",
                        "enum": [
                            "end_user",
                            "silent_user"
                        ],
                        "example": "end_user"
                    },
                    "sync_frequency": {
                        "description": "Schedule the Azure Active Directory to run automatically.<br>This can be disabled by setting a value of 0.",
                        "type": "integer",
                        "enum": [
                            0,
                            1,
                            3,
                            6,
                            12,
                            24
                        ],
                        "example": 24
                    },
                    "sync_active_users": {
                        "description": "Include licensed active users associated with your Office 365 organization.",
                        "type": "boolean",
                        "example": true
                    },
                    "sync_distribution_groups": {
                        "description": "Include distribution groups associated with your Office 365 organization.",
                        "type": "boolean",
                        "example": false
                    },
                    "sync_security_groups": {
                        "description": "Include security groups associated with your Office 365 organization.",
                        "type": "boolean",
                        "example": false
                    },
                    "add_users": {
                        "description": "Create new user accounts for newly synced active users.",
                        "type": "boolean",
                        "example": true
                    },
                    "update_users": {
                        "description": "Update existing user accounts for previously synced mailboxes.",
                        "type": "boolean",
                        "example": true
                    },
                    "remove_deleted_users": {
                        "description": "emove user accounts for mailboxes that no longer exist.",
                        "type": "boolean",
                        "example": true
                    },
                    "add_groups": {
                        "description": "Create new groups for newly synced groups.",
                        "type": "boolean",
                        "example": false
                    },
                    "update_groups": {
                        "description": "Update existing groups for previously synced groups.",
                        "type": "boolean",
                        "example": true
                    },
                    "remove_deleted_groups": {
                        "description": "Remove functional accounts and groups for groups that no longer exist.",
                        "type": "boolean",
                        "example": true
                    },
                    "sync_version": {
                        "description": "Azure sync version",
                        "type": "string",
                        "example": "2.0"
                    },
                    "secret_expiry": {
                        "description": "Secret expiry date (UTC)",
                        "type": "string",
                        "readOnly": true,
                        "example": "2024-07-29 13:23:44"
                    },
                    "last_successful_sync": {
                        "description": "Date Azure sync last completed (UTC)",
                        "type": "string",
                        "readOnly": true,
                        "example": "2024-07-29 13:23:44"
                    }
                },
                "type": "object"
            },
            "Domain": {
                "title": "Domain",
                "description": "Domain data model",
                "required": [
                    "name"
                ],
                "properties": {
                    "name": {
                        "description": "domain",
                        "type": "string",
                        "example": "mydomain.com"
                    },
                    "is_active": {
                        "description": "is the domain active. always false for non-relay domains",
                        "type": "boolean",
                        "default": false
                    },
                    "is_relay": {
                        "description": "does this domain route mail",
                        "type": "boolean",
                        "default": false
                    },
                    "destination": {
                        "description": "if a relay domain, where should mail be routed to",
                        "type": "string",
                        "default": "",
                        "example": "10.20.30.40"
                    },
                    "failovers": {
                        "description": "a list of failover email delivery destinations",
                        "type": "array",
                        "items": {
                            "type": "string"
                        },
                        "example": [
                            "10.30.40.50",
                            "10.40.50.60"
                        ]
                    }
                },
                "type": "object"
            },
            "UserOdinSettings": {
                "title": "UserOdinSettings",
                "description": "User level settings related to Odin authentication",
                "properties": {
                    "can_impersonate": {
                        "description": "can the user impersonate users from child Organizations",
                        "type": "boolean",
                        "default": false
                    },
                    "is_imitable": {
                        "description": "can the user be authenticated with an Odin token",
                        "type": "boolean",
                        "default": false
                    }
                },
                "type": "object"
            },
            "User": {
                "title": "User",
                "description": "User data model",
                "required": [
                    "primary_email"
                ],
                "properties": {
                    "uid": {
                        "description": "Read only: Id of the User",
                        "type": "integer",
                        "readOnly": true,
                        "example": 123456
                    },
                    "primary_email": {
                        "description": "primary email address of the user",
                        "type": "string",
                        "default": "",
                        "example": "john.smith@mydomain.com"
                    },
                    "is_active": {
                        "description": "is the user active",
                        "type": "boolean",
                        "default": true
                    },
                    "type": {
                        "description": "type of user",
                        "type": "string",
                        "default": "end_user",
                        "enum": [
                            "oem_partner_admin",
                            "strategic_partner_admin",
                            "channel_admin",
                            "organization_admin",
                            "end_user",
                            "silent_user",
                            "functional_account"
                        ],
                        "example": "organization_admin"
                    },
                    "send_welcome_email": {
                        "description": "If true, a welcome email will be sent on user creation. (NOTE: To send a welcome email this must be true at org level. This can optionally be overridden to false at a per user level)",
                        "type": "boolean",
                        "default": false
                    },
                    "firstname": {
                        "description": "firstname of the user",
                        "type": "string",
                        "default": "",
                        "example": "John"
                    },
                    "surname": {
                        "description": "surname of the user",
                        "type": "string",
                        "default": "",
                        "example": "Smith"
                    },
                    "alias_emails": {
                        "description": "list of email addresses that are aliased to this user",
                        "type": "array",
                        "items": {
                            "type": "string"
                        },
                        "default": [],
                        "example": [
                            "john@mydomain.com",
                            "jsmith@mydomain.com"
                        ]
                    },
                    "safe_list_senders": {
                        "description": "list of email addresses that are trusted",
                        "type": "array",
                        "items": {
                            "type": "string"
                        },
                        "default": [],
                        "example": [
                            "jane@gooddomain.com",
                            "bill@anothergooddomain.com"
                        ]
                    },
                    "block_list_senders": {
                        "description": "list of senders that will always be regarded as spam. Note if adding an entry that is already in the safe list, it will be ignored",
                        "type": "array",
                        "items": {
                            "type": "string"
                        },
                        "default": [],
                        "example": [
                            "bob@baddomain.com",
                            "orders@anotherbaddomain.com"
                        ]
                    },
                    "white_list_senders": {
                        "description": "Deprecated (replaced by safe_list_senders): list of email addresses that are trusted",
                        "type": "array",
                        "items": {
                            "type": "string"
                        },
                        "default": [],
                        "example": [
                            "jane@gooddomain.com",
                            "bill@anothergooddomain.com"
                        ],
                        "deprecated": true
                    },
                    "black_list_senders": {
                        "description": "Deprecated (replaced by block_list_senders): list of senders that will always be regarded as spam. Note if adding an entry that is already in the white list, it will be ignored",
                        "type": "array",
                        "items": {
                            "type": "string"
                        },
                        "default": [],
                        "example": [
                            "bob@baddomain.com",
                            "orders@anotherbaddomain.com"
                        ],
                        "deprecated": true
                    },
                    "is_billable": {
                        "description": "is the user a billable user? (NOTE: Only one user per org can be non-billable)",
                        "type": "boolean",
                        "default": true
                    },
                    "odin_settings": {
                        "$ref": "#/components/schemas/UserOdinSettings"
                    },
                    "read_only_user": {
                        "description": "is the user a Read-Only user?",
                        "type": "boolean",
                        "default": false
                    },
                    "creation_date": {
                        "description": "date the user was created",
                        "type": "string",
                        "default": "",
                        "readOnly": true,
                        "example": "2024-09-23T16:01:24Z"
                    },
                    "last_update": {
                        "description": "date the user was last updated",
                        "type": "string",
                        "default": "",
                        "readOnly": true,
                        "example": "2024-09-23T16:01:24Z"
                    },
                    "last_login": {
                        "description": "date the user last logged in",
                        "type": "string",
                        "default": "",
                        "readOnly": true,
                        "example": "2024-09-23T16:01:24Z"
                    },
                    "password": {
                        "description": "Update a users password (optional). Not included in GET response and not supported in POST.",
                        "type": "string",
                        "default": null
                    }
                },
                "type": "object"
            },
            "Organization": {
                "title": "Organization",
                "description": "Organization data model",
                "required": [
                    "primary_domain",
                    "name",
                    "type",
                    "admin_user",
                    "domains",
                    "user_licenses"
                ],
                "properties": {
                    "primary_domain": {
                        "description": "Primary domain for this Organization",
                        "type": "string",
                        "example": "mydomain.com"
                    },
                    "name": {
                        "description": "Name of the Organization",
                        "type": "string",
                        "example": "My Company Inc."
                    },
                    "is_active": {
                        "description": "is the organization active",
                        "type": "boolean",
                        "default": true
                    },
                    "configuration_type": {
                        "description": "Configuration type for an integrated deployment",
                        "type": "string",
                        "default": "manual",
                        "enum": [
                            "automatic",
                            "manual",
                            "skipped"
                        ]
                    },
                    "deployment_method": {
                        "description": "Integrated with Microsoft or direct MX routing",
                        "type": "string",
                        "default": "mx_record",
                        "enum": [
                            "integrated",
                            "mx_record"
                        ]
                    },
                    "type": {
                        "description": "Organization type",
                        "type": "string",
                        "enum": [
                            "oem_partner",
                            "strategic_partner",
                            "channel",
                            "organization"
                        ],
                        "example": "organization"
                    },
                    "eid": {
                        "description": "Read only: Id of the Organization",
                        "type": "integer",
                        "readOnly": true,
                        "example": 123456
                    },
                    "organization_hierarchy": {
                        "description": "Read only: A list of the Organization's hierarchy. 'eid : name' format",
                        "type": "array",
                        "items": {
                            "type": "string"
                        },
                        "example": [
                            "123456 : 'My Company Inc.'",
                            "1234 : 'My parent Org'",
                            "4567 : 'My parent's parent Org'"
                        ]
                    },
                    "licensing_package": {
                        "description": "which licensing package the Organization is on",
                        "type": "string",
                        "default": "advanced_plus",
                        "enum": [
                            "beginner",
                            "business",
                            "business_plus",
                            "advanced",
                            "advanced_plus",
                            "professional",
                            "professional_plus"
                        ],
                        "example": "professional"
                    },
                    "is_on_trial": {
                        "description": "is the Organization on a trial package",
                        "type": "boolean",
                        "default": false
                    },
                    "user_licenses": {
                        "description": "number of user licenses available to this Organization",
                        "type": "integer",
                        "default": 100,
                        "example": 100
                    },
                    "active_users": {
                        "description": "Read only: number of active users for this Organization",
                        "type": "integer",
                        "example": 75
                    },
                    "when_renewal": {
                        "description": "license renewal date (UTC)",
                        "type": "string",
                        "default": "one year from now",
                        "example": "2018/01/15"
                    },
                    "is_beginner_plus": {
                        "description": "is the Organization using a beginner plus license",
                        "type": "boolean",
                        "default": false
                    },
                    "is_beginner_plus_enabled": {
                        "description": "is beginner plus enabled for this Organization",
                        "type": "boolean",
                        "default": false
                    },
                    "www": {
                        "description": "web Address of the Organization",
                        "type": "string",
                        "example": "https://www.mydomain.com"
                    },
                    "address": {
                        "description": "street Address for the Organization",
                        "type": "string",
                        "example": "123 Forest Road, Townsville"
                    },
                    "postcode": {
                        "description": "postcode/zipcode for the Organization",
                        "type": "string",
                        "example": "12345"
                    },
                    "stateprov": {
                        "description": "State or Province for the Organization (required if Country is US or CA)",
                        "type": "string",
                        "example": "https://us1.proofpointessentials.com/api/v1/docs/index.php#valid_values"
                    },
                    "country": {
                        "description": "2 character country identifier",
                        "type": "string",
                        "example": "https://us1.proofpointessentials.com/api/v1/docs/index.php#valid_values"
                    },
                    "phone": {
                        "description": "contact number for the Organization",
                        "type": "string",
                        "example": "555-123-456"
                    },
                    "external_id": {
                        "description": "unique identifier for the Organization, url, plain text or uuid",
                        "type": "string",
                        "default": ""
                    },
                    "admin_user": {
                        "$ref": "#/components/schemas/User"
                    },
                    "domains": {
                        "type": "array",
                        "items": {
                            "$ref": "#/components/schemas/Domain"
                        }
                    },
                    "outgoing_servers": {
                        "description": "list of outgoing mail servers",
                        "type": "array",
                        "items": {
                            "type": "string"
                        },
                        "default": [],
                        "example": [
                            "10.20.30.40",
                            "10.30.40.50"
                        ]
                    },
                    "safe_list_senders": {
                        "description": "list of email addresses that are trusted",
                        "type": "array",
                        "items": {
                            "type": "string"
                        },
                        "default": [],
                        "example": [
                            "jane@gooddomain.com",
                            "bill@anothergooddomain.com"
                        ]
                    },
                    "block_list_senders": {
                        "description": "list of senders that will always be regarded as spam. Note if adding an entry that is already in the safe list, it will be ignored",
                        "type": "array",
                        "items": {
                            "type": "string"
                        },
                        "default": [],
                        "example": [
                            "bob@baddomain.com",
                            "orders@anotherbaddomain.com"
                        ]
                    },
                    "white_list_senders": {
                        "description": "Deprecated (replaced by safe_list_senders): list of email addresses that are trusted",
                        "type": "array",
                        "items": {
                            "type": "string"
                        },
                        "default": [],
                        "example": [
                            "jane@gooddomain.com",
                            "bill@anothergooddomain.com"
                        ],
                        "deprecated": true
                    },
                    "black_list_senders": {
                        "description": "Deprecated (replaced by block_list_senders): list of senders that will always be regarded as spam. Note if adding an entry that is already in the white list, it will be ignored",
                        "type": "array",
                        "items": {
                            "type": "string"
                        },
                        "default": [],
                        "example": [
                            "bob@baddomain.com",
                            "sue@anotherbaddomain.com"
                        ],
                        "deprecated": true
                    },
                    "ldap_url": {
                        "description": "URL for LDAP server",
                        "type": "string",
                        "default": ""
                    },
                    "ldap_username": {
                        "description": "username for LDAP connection",
                        "type": "string",
                        "default": ""
                    },
                    "ldap_basedn": {
                        "description": "base DN (distinguished name) to use when searching for users",
                        "type": "string",
                        "default": ""
                    },
                    "is_smtp_discovery_enabled": {
                        "description": "is SMTP Discovery of users enabled for this Organization",
                        "type": "boolean",
                        "default": true
                    },
                    "account_template_id": {
                        "description": "template id used to generate accounts. ignored if null",
                        "type": "string",
                        "default": null
                    },
                    "send_welcome_email": {
                        "description": "If true, a welcome email will be sent on user creation. (NOTE: To send a welcome email this must be true at org level. This can optionally be overridden to false at a per user level)",
                        "type": "boolean",
                        "default": false
                    },
                    "odin_capabilities": {
                        "description": "shows if an organization is using Odin authentication",
                        "type": "string",
                        "default": "none",
                        "enum": [
                            "odin_master",
                            "odin_child",
                            "none"
                        ],
                        "example": "none"
                    },
                    "billing_method": {
                        "description": "Read only: the billing method for Organization. Annual, Monthly, Not Set",
                        "type": "string",
                        "example": "Annual"
                    }
                },
                "type": "object"
            },
            "Licensing": {
                "title": "Licensing",
                "description": "Licensing data model",
                "required": [
                    "license_count"
                ],
                "properties": {
                    "license_count": {
                        "description": "number of licensed users",
                        "type": "integer",
                        "example": 75
                    },
                    "package": {
                        "description": "Read Only: current licensing package",
                        "type": "string",
                        "example": "Professional"
                    },
                    "is_on_trial": {
                        "description": "Read Only: is the package a trial version",
                        "type": "boolean"
                    },
                    "is_beginner_plus": {
                        "description": "Read Only: is the beginner plus option enabled",
                        "type": "boolean"
                    }
                },
                "type": "object"
            },
            "Feature": {
                "title": "Features",
                "description": "Feature data model. Note that values are strings to allow for multiple data types",
                "properties": {
                    "feature_1_name": {
                        "type": "string"
                    },
                    "feature_2_name": {
                        "type": "string"
                    }
                },
                "type": "object",
                "example": {
                    "attachment_defense": true,
                    "dlp": true,
                    "email_encryption": "false",
                    "social_media_account_protection": true,
                    "outbound_relaying": true,
                    "instant_replay": "30",
                    "email_archive": true,
                    "url_defense": true,
                    "disclaimers": true,
                    "smtp_discovery": true
                }
            },
            "ReportMetrics": {
                "title": "ReportMetrics",
                "description": "Report data model",
                "properties": {
                    "attachment_defended_total": {
                        "description": "total number of mails that had attachments scanned",
                        "type": "integer",
                        "default": 0,
                        "example": 99
                    },
                    "attachment_defended": {
                        "description": "Breakdown of attachment defended mails over the time period",
                        "properties": {
                            "timestamp1": {
                                "type": "integer"
                            },
                            "timestamp2": {
                                "type": "integer"
                            }
                        },
                        "type": "object",
                        "example": {
                            "1523006097": 1,
                            "1523006098": 2,
                            "1523006099": 3
                        }
                    },
                    "blacklist_total": {
                        "description": "Deprecated (replaced by blocklist_total): total number of mails that matched a blacklist",
                        "type": "integer",
                        "default": 0,
                        "example": 99,
                        "deprecated": true
                    },
                    "blacklist": {
                        "description": "Deprecated (replaced by blocklist): Breakdown of blacklist matched mails over the time period",
                        "properties": {
                            "timestamp1": {
                                "type": "integer"
                            },
                            "timestamp2": {
                                "type": "integer"
                            }
                        },
                        "type": "object",
                        "example": {
                            "1523006097": 1,
                            "1523006098": 2,
                            "1523006099": 3
                        },
                        "deprecated": true
                    },
                    "blocklist_total": {
                        "description": "total number of mails that matched a blacklist",
                        "type": "integer",
                        "default": 0,
                        "example": 99
                    },
                    "blocklist": {
                        "description": "Breakdown of blacklist matched mails over the time period",
                        "properties": {
                            "timestamp1": {
                                "type": "integer"
                            },
                            "timestamp2": {
                                "type": "integer"
                            }
                        },
                        "type": "object",
                        "example": {
                            "1523006097": 1,
                            "1523006098": 2,
                            "1523006099": 3
                        }
                    },
                    "clean_total": {
                        "description": "total number of mails that were processed as clean",
                        "type": "integer",
                        "default": 0,
                        "example": 99
                    },
                    "clean": {
                        "description": "Breakdown of clean mails over the time period",
                        "properties": {
                            "timestamp1": {
                                "type": "integer"
                            },
                            "timestamp2": {
                                "type": "integer"
                            }
                        },
                        "type": "object",
                        "example": {
                            "1523006097": 1,
                            "1523006098": 2,
                            "1523006099": 3
                        }
                    },
                    "image_blocked_total": {
                        "description": "Deprecated (will always be zero): total number of mails that were blocked due to images contained",
                        "type": "integer",
                        "default": 0,
                        "example": 0,
                        "deprecated": true
                    },
                    "image_blocked": {
                        "description": "Deprecated (will always be zero): Breakdown of mails blocked due to images contained over the time period",
                        "properties": {
                            "timestamp1": {
                                "type": "integer"
                            },
                            "timestamp2": {
                                "type": "integer"
                            }
                        },
                        "type": "object",
                        "example": {
                            "1523006097": 0,
                            "1523006098": 0,
                            "1523006099": 0
                        },
                        "deprecated": true
                    },
                    "spam_total": {
                        "description": "total number of mails that were marked as spam",
                        "type": "integer",
                        "default": 0,
                        "example": 99
                    },
                    "spam": {
                        "description": "Breakdown of mails marked as spam over the time period",
                        "properties": {
                            "timestamp1": {
                                "type": "integer"
                            },
                            "timestamp2": {
                                "type": "integer"
                            }
                        },
                        "type": "object",
                        "example": {
                            "1523006097": 1,
                            "1523006098": 2,
                            "1523006099": 3
                        }
                    },
                    "virus_total": {
                        "description": "total number of mails that had viruses detected",
                        "type": "integer",
                        "default": 0,
                        "example": 99
                    },
                    "virus": {
                        "description": "Breakdown of mails that had viruses detected over the time period",
                        "properties": {
                            "timestamp1": {
                                "type": "integer"
                            },
                            "timestamp2": {
                                "type": "integer"
                            }
                        },
                        "type": "object",
                        "example": {
                            "1523006097": 1,
                            "1523006098": 2,
                            "1523006099": 3
                        }
                    },
                    "fraud_total": {
                        "description": "total number of mails that were marked as fraud",
                        "type": "integer",
                        "default": 0,
                        "example": 99
                    },
                    "fraud": {
                        "description": "Breakdown of mails marked as fraud over the time period",
                        "properties": {
                            "timestamp1": {
                                "type": "integer"
                            },
                            "timestamp2": {
                                "type": "integer"
                            }
                        },
                        "type": "object",
                        "example": {
                            "1523006097": 1,
                            "1523006098": 2,
                            "1523006099": 3
                        }
                    },
                    "whitelist_total": {
                        "description": "Deprecated (replaced by safelist_total): total number of mails that matched a whitelist",
                        "type": "integer",
                        "default": 0,
                        "example": 99,
                        "deprecated": true
                    },
                    "whitelist": {
                        "description": "Deprecated (replaced by safelist): Breakdown of mails that matched a whitelist over the time period",
                        "properties": {
                            "timestamp1": {
                                "type": "integer"
                            },
                            "timestamp2": {
                                "type": "integer"
                            }
                        },
                        "type": "object",
                        "example": {
                            "1523006097": 1,
                            "1523006098": 2,
                            "1523006099": 3
                        },
                        "deprecated": true
                    },
                    "safelist_total": {
                        "description": "total number of mails that matched a whitelist",
                        "type": "integer",
                        "default": 0,
                        "example": 99
                    },
                    "safelist": {
                        "description": "Breakdown of mails that matched a whitelist over the time period",
                        "properties": {
                            "timestamp1": {
                                "type": "integer"
                            },
                            "timestamp2": {
                                "type": "integer"
                            }
                        },
                        "type": "object",
                        "example": {
                            "1523006097": 1,
                            "1523006098": 2,
                            "1523006099": 3
                        }
                    }
                },
                "type": "object"
            },
            "Report": {
                "title": "Report",
                "description": "Report data parameters model",
                "required": [
                    "period",
                    "frequency",
                    "inbound",
                    "outbound"
                ],
                "properties": {
                    "period": {
                        "description": "Time range for the report",
                        "type": "string",
                        "enum": [
                            "1d",
                            "7d",
                            "30d"
                        ],
                        "example": "7d"
                    },
                    "frequency": {
                        "description": "Frequency of report data",
                        "type": "string",
                        "enum": [
                            "1h",
                            "24hr"
                        ],
                        "example": "1h"
                    },
                    "inbound": {
                        "$ref": "#/components/schemas/ReportMetrics"
                    },
                    "outbound": {
                        "$ref": "#/components/schemas/ReportMetrics"
                    }
                },
                "type": "object"
            },
            "PartnerStats": {
                "title": "PartnerStats",
                "description": "Partner Mailflow Statistics grouped by period interval",
                "properties": {
                    "eid": {
                        "description": "Read only: Id of the Organization",
                        "type": "integer",
                        "example": 123456
                    },
                    "name": {
                        "description": "Name of the Organization",
                        "type": "string",
                        "example": "My Company Inc."
                    },
                    "organization_hierarchy": {
                        "description": "Read only: A list of the Organization's hierarchy. 'eid : name' format",
                        "type": "array",
                        "items": {
                            "type": "string"
                        },
                        "example": [
                            "123456 : 'My Company Inc.'",
                            "1234 : 'My parent Org'",
                            "4567 : 'My parent's parent Org'"
                        ]
                    },
                    "active_users": {
                        "description": "Number of active users during each period. Active users are those with mail during the time period (not to be confused with a users 'active' state",
                        "type": "integer",
                        "example": 9090
                    },
                    "ib_total": {
                        "description": "Total inbound messages, including clean mail",
                        "type": "integer",
                        "example": 9090
                    },
                    "ob_total": {
                        "description": "Total outbound messages, including clean mail",
                        "type": "integer",
                        "example": 9090
                    },
                    "ib_blocked": {
                        "description": "Total inbound blocked messages. All inbound threats detected",
                        "type": "integer",
                        "example": 9090
                    },
                    "ob_blocked": {
                        "description": "Total outbound blocked messages. All outbound threats detected",
                        "type": "integer",
                        "example": 9090
                    },
                    "ib_spam": {
                        "description": "Total inbound messages marked as Spam. NOTE that this total will include ALL Spam messages, including those marked as imposter/phish",
                        "type": "integer",
                        "example": 9090
                    },
                    "ib_virus": {
                        "description": "Total inbound messages marked as Virus",
                        "type": "integer",
                        "example": 9090
                    },
                    "ib_mal_att": {
                        "description": "Total inbound messages marked as Malicious Attachment",
                        "type": "integer",
                        "example": 9090
                    },
                    "ib_imposter": {
                        "description": "Total inbound messages marked as Imposter",
                        "type": "integer",
                        "example": 9090
                    },
                    "ib_phish": {
                        "description": "Total inbound messages marked as Phishing",
                        "type": "integer",
                        "example": 9090
                    },
                    "ob_enc": {
                        "description": "Total outbound encrypted messages",
                        "type": "integer",
                        "example": 9090
                    }
                },
                "type": "object"
            },
            "PartnerStatsResponse": {
                "title": "BulkStatsResponse",
                "description": "Partner Mailflow Statistics",
                "properties": {
                    "total": {
                        "description": "total amount of results in the dataset",
                        "type": "integer",
                        "example": 1000
                    },
                    "current_page": {
                        "description": "current page of data",
                        "type": "integer",
                        "example": 1
                    },
                    "last_page": {
                        "description": "highest page of data available",
                        "type": "integer",
                        "example": 10
                    },
                    "path": {
                        "description": "base path to the dataset, with no paging options",
                        "type": "string",
                        "example": "https://us1.proofpointessentials.com/api/v1/stats/mydomain.com/partner"
                    },
                    "first_page_url": {
                        "description": "link to the first page of data",
                        "type": "string",
                        "example": "https://us1.proofpointessentials.com/api/v1/stats/mydomain.com/partner?page=1"
                    },
                    "next_page_url": {
                        "description": "link to the next page of data",
                        "type": "string",
                        "example": "https://us1.proofpointessentials.com/api/v1/stats/mydomain.com/partner?page=2"
                    },
                    "last_page_url": {
                        "description": "link to the last page of data",
                        "type": "string",
                        "example": "https://us1.proofpointessentials.com/api/v1/stats/mydomain.com/partner?page=10"
                    },
                    "from": {
                        "description": "position in the entire dataset of the first result in this page",
                        "type": "integer",
                        "example": 11
                    },
                    "to": {
                        "description": "position in the entire dataset of the last result in this page",
                        "type": "integer",
                        "example": 20
                    },
                    "per_page": {
                        "description": "number of results per page of data. default will vary depending on endpoint",
                        "type": "integer",
                        "example": 100
                    },
                    "data": {
                        "type": "array",
                        "items": {
                            "$ref": "#/components/schemas/PartnerStats"
                        }
                    }
                },
                "type": "object"
            },
            "ProductPurchaseInfoResponse": {
                "title": "ProductPurchaseInfoResponse",
                "description": "Purchase details related to this Product, may be null if not purchased",
                "properties": {
                    "when_added": {
                        "description": "When the Product was purchased (YYYY/MM/DD)",
                        "type": "string",
                        "example": "2020/01/01"
                    },
                    "variant": {
                        "description": "Which is the current billable variant",
                        "type": "string",
                        "example": "Business"
                    },
                    "when_renewal": {
                        "description": "Read only: When the Product is due for renewal (YYYY/MM/DD). May be null if the product is not renewable",
                        "type": "string",
                        "example": "2021/01/01"
                    },
                    "when_status_updated": {
                        "description": "When the Product status was last changed (YYYY/MM/DD)",
                        "type": "string",
                        "example": "2020/01/01"
                    },
                    "auto_renew": {
                        "description": "Will the subscription automatically renew?",
                        "type": "boolean"
                    },
                    "trial_variant": {
                        "description": "If trialling, which variant is being trialled",
                        "type": "string",
                        "example": "Professional"
                    },
                    "is_trial": {
                        "description": "Is the subscription being trialled?",
                        "type": "boolean"
                    },
                    "trial_end_date": {
                        "description": "If on trial when the trial will end (YYYY/MM/DD)",
                        "type": "string",
                        "example": "2021/01/01"
                    }
                },
                "type": "object"
            },
            "ProductVariantResponse": {
                "title": "ProductVariantResponse",
                "description": "Definition of an Essentials Product Variant",
                "properties": {
                    "name": {
                        "description": "Name of the variant",
                        "type": "string",
                        "example": "Business"
                    },
                    "ref": {
                        "description": "Reference used to id the variant",
                        "type": "string",
                        "example": "email_security_id_business"
                    },
                    "order_index": {
                        "description": "Used to order in terms of most basic to most advanced",
                        "type": "integer",
                        "example": 10
                    },
                    "description": {
                        "description": "User readable description of the Variant",
                        "type": "string",
                        "example": "2021/01/01"
                    },
                    "is_purchasable": {
                        "description": "Can the user purchase this variant for themselves or one of their customers",
                        "type": "boolean"
                    }
                },
                "type": "object"
            },
            "ProductResponse": {
                "title": "ProductResponse",
                "description": "Definition of an Essentials Product, including purchase info if applicable",
                "properties": {
                    "status": {
                        "description": "Status of the Product subscription. The meaning will vary depending on the product",
                        "type": "string",
                        "enum": [
                            "available",
                            "provisioning",
                            "requires_user_action",
                            "error",
                            "confirmed",
                            "cancelled",
                            "deleting"
                        ],
                        "example": "confirmed"
                    },
                    "label": {
                        "description": "Label used to identify the Product. Can be used in further API calls",
                        "type": "string",
                        "example": "SECURITY_AWARENESS"
                    },
                    "name": {
                        "description": "User readable short name of the Product",
                        "type": "string",
                        "example": "Security Awareness"
                    },
                    "description": {
                        "description": "User readable description of the Product",
                        "type": "string",
                        "example": "Security Awareness helps organizations test and educate their employees about email attack tactics."
                    },
                    "billing_method": {
                        "description": "How the Product is billed",
                        "type": "string",
                        "example": "Monthly"
                    },
                    "min_term": {
                        "description": "Minimum contract term (in months)",
                        "type": "integer",
                        "example": 12
                    },
                    "is_renewable": {
                        "description": "Does the Product support auto-renewal",
                        "type": "boolean"
                    },
                    "min_licenses": {
                        "description": "Minimum number of billable licenses",
                        "type": "integer",
                        "example": 50
                    },
                    "help_url": {
                        "description": "Link to help documentation on this Product",
                        "type": "string",
                        "example": "https://help.proofpoint.com/Essentials/Product_Documentation/Security_Awareness/About_Security_Awareness "
                    },
                    "variants": {
                        "type": "array",
                        "items": {
                            "$ref": "#/components/schemas/ProductVariantResponse"
                        }
                    },
                    "purchase_info": {
                        "$ref": "#/components/schemas/ProductPurchaseInfoResponse"
                    }
                },
                "type": "object"
            },
            "ProductPost": {
                "title": "ProductPost",
                "description": "Data required to purchase a Product",
                "properties": {
                    "label": {
                        "description": "Label used to identify the Product to purchase",
                        "type": "string",
                        "example": "EMAIL_SECURITY"
                    },
                    "variant": {
                        "description": "Variant to purchase",
                        "type": "string",
                        "example": "Business"
                    },
                    "auto_renew": {
                        "description": "Should the subscription automatically renew at contract end?",
                        "type": "boolean",
                        "default": false
                    },
                    "is_trial": {
                        "description": "Should the Purchase be a trial? Note not supported by all Products",
                        "type": "boolean",
                        "default": false
                    }
                },
                "type": "object"
            },
            "ProductPatch": {
                "title": "ProductPatch",
                "description": "Data required to update a Product",
                "properties": {
                    "variant": {
                        "description": "Variant to purchase",
                        "type": "string",
                        "example": "Business"
                    },
                    "auto_renew": {
                        "description": "Should the subscription automatically renew at contract end?",
                        "type": "boolean"
                    },
                    "is_trial": {
                        "description": "Should the Purchase be a trial? Note not supported by all Products",
                        "type": "boolean"
                    },
                    "is_trial_extended": {
                        "description": "Should the current trial be extended?",
                        "type": "boolean"
                    }
                },
                "type": "object"
            },
            "MeResponse": {
                "title": "MeResponse",
                "properties": {
                    "user_id": {
                        "type": "integer",
                        "example": 1234
                    },
                    "firstname": {
                        "type": "string",
                        "example": "Bob"
                    },
                    "surname": {
                        "type": "string",
                        "example": "Jones"
                    },
                    "primary_email": {
                        "type": "string",
                        "example": "bob.jones@domain.com"
                    },
                    "type": {
                        "type": "string",
                        "enum": [
                            "oem_partner_admin",
                            "strategic_partner_admin",
                            "channel_admin",
                            "organization_admin",
                            "end_user",
                            "silent_user",
                            "functional_account"
                        ],
                        "example": "organization_admin"
                    },
                    "is_admin": {
                        "type": "boolean",
                        "example": true
                    },
                    "is_partner_admin": {
                        "type": "boolean",
                        "example": true
                    },
                    "entity_id": {
                        "type": "integer",
                        "example": 1234
                    },
                    "entity_primary_domain": {
                        "type": "string",
                        "example": "domain.com"
                    },
                    "entity_type": {
                        "type": "string",
                        "enum": [
                            "oem_partner",
                            "strategic_partner",
                            "channel",
                            "organization"
                        ],
                        "example": "organization"
                    },
                    "read_only_user": {
                        "type": "boolean",
                        "example": false
                    }
                },
                "type": "object"
            },
            "DkimResponse": {
                "title": "DkimResponse",
                "properties": {
                    "did": {
                        "description": "Unique domain identifier.",
                        "type": "integer",
                        "example": 1234
                    },
                    "domain": {
                        "description": "The domain name the DKIM keypair belongs to.",
                        "type": "string",
                        "example": "mydomain.com"
                    },
                    "is_valid": {
                        "description": "Indicates whether or not the keypair has passed validation.",
                        "type": "boolean",
                        "example": true
                    },
                    "selector": {
                        "description": "The name of the selector, unique to the domain.",
                        "type": "string",
                        "example": "my-selector"
                    },
                    "public_key": {
                        "description": "Base64 encoded public key.",
                        "type": "string",
                        "example": "LS0tLS1CRUdJ...lDIEtFWS0tLS0tCg=="
                    }
                },
                "type": "object"
            },
            "DkimPost": {
                "title": "DkimPost",
                "properties": {
                    "selector": {
                        "description": "Selector used for the dkim keypair, also used to reference the keypair. Must be unique to the domain.",
                        "type": "string",
                        "example": "my-selector"
                    },
                    "private_key": {
                        "description": "Base64 encoded private key.",
                        "type": "string",
                        "example": "LS0tLS1CRUdJTiB...lDIEtFWS0tLS0tCg=="
                    }
                },
                "type": "object"
            },
            "DomainVerificationCode": {
                "title": "DomainVerificationCode",
                "properties": {
                    "code": {
                        "description": "verification code",
                        "type": "string",
                        "example": "ppe-12345123ab1ab1ab11a1ab123ab1abcde1234abc"
                    }
                },
                "type": "object"
            },
            "SyncExemptions": {
                "title": "SyncExemptions",
                "properties": {
                    "emails": {
                        "description": "List of email addresses to be added to sync",
                        "type": "array",
                        "items": {
                            "type": "string"
                        },
                        "example": [
                            "user1@domain.com",
                            "user2@domain.com"
                        ]
                    }
                },
                "type": "object"
            },
            "BillingReportPresenter": {
                "title": "Billing",
                "description": "Billing data",
                "properties": {
                    "eid": {
                        "description": "id of the Organization",
                        "type": "integer",
                        "example": 39
                    },
                    "name": {
                        "description": "name of the Organization",
                        "type": "string",
                        "example": "proofpoint"
                    },
                    "is_active": {
                        "description": "is the Organization active",
                        "type": "boolean"
                    },
                    "when_created": {
                        "description": "string of date indicating start of billing request time (UTC)",
                        "type": "string",
                        "example": "2018/09/01"
                    },
                    "customer_type": {
                        "description": "customer type of Organization",
                        "type": "string",
                        "enum": [
                            "oem_partner",
                            "strategic_partner",
                            "channel",
                            "organization"
                        ],
                        "example": "strategic_partner"
                    },
                    "url_defense_feature": {
                        "description": "is URL Defense active for Organization",
                        "type": "boolean"
                    },
                    "address": {
                        "description": "address of Organization",
                        "type": "string",
                        "example": "35 Yellow St"
                    },
                    "state_prov": {
                        "description": "state province of Organization",
                        "type": "string",
                        "example": "TX"
                    },
                    "postcode": {
                        "description": "postcode of Organization",
                        "type": "string",
                        "example": "GT79DJ"
                    },
                    "licensing_package": {
                        "description": "licensing package of Organization",
                        "type": "string",
                        "enum": [
                            "beginner",
                            "business",
                            "business_plus",
                            "advanced",
                            "advanced_plus",
                            "professional",
                            "professional_plus"
                        ],
                        "example": "beginner"
                    },
                    "is_beginner_plus": {
                        "description": "is Organization a beginner plus",
                        "type": "boolean"
                    },
                    "is_basic_package": {
                        "description": "is Organization on basic package",
                        "type": "boolean"
                    },
                    "country_code": {
                        "description": "country code of Organizations country",
                        "type": "string",
                        "example": "GB"
                    },
                    "confirmed_users": {
                        "description": "number of confirmed users for Organizations",
                        "type": "integer",
                        "example": 150
                    },
                    "when_renewal": {
                        "description": "string of date when renewal is needed for Organization (UTC)",
                        "type": "string",
                        "example": "2019/01/01"
                    },
                    "is_test_account": {
                        "description": "is Organization a test account",
                        "type": "boolean"
                    },
                    "when_confirmed": {
                        "description": "string of date Organization is confirmed (UTC)",
                        "type": "string",
                        "example": "2018/10/01"
                    },
                    "when_updated": {
                        "description": "string of date when Organization updated (UTC)",
                        "type": "string",
                        "example": "2018/10/01"
                    },
                    "when_package_changed": {
                        "description": "string of date when Organizations package changed (UTC)",
                        "type": "string",
                        "example": "2018/10/01"
                    },
                    "when_deactivated": {
                        "description": "string of date when Organization deactivated (UTC)",
                        "type": "string",
                        "example": "2018/10/01"
                    },
                    "active_users": {
                        "description": "number of active users for Organizations",
                        "type": "integer",
                        "example": 10
                    },
                    "non_billable_users": {
                        "description": "number of non billable users for Organizations",
                        "type": "integer",
                        "example": 10
                    },
                    "is_on_trial": {
                        "description": "is Organization on trial",
                        "type": "boolean"
                    },
                    "trial_package": {
                        "description": "Specifies the Package an Organization is currently trialling. Will be null if not on trial",
                        "type": "string",
                        "example": "Advanced"
                    },
                    "trial_end_date": {
                        "description": "The end date of the current trial period (if on trial). Will be null if not on trial (UTC)",
                        "type": "string",
                        "example": "2018/10/01"
                    },
                    "primary_domain": {
                        "description": "primary domain of Organization",
                        "type": "string",
                        "example": "domain.com"
                    },
                    "monthly_billing": {
                        "description": "monthly billing of Organization from month",
                        "type": "string",
                        "example": "10"
                    },
                    "data_center": {
                        "description": "data centre of Organization",
                        "type": "string",
                        "example": "US1"
                    },
                    "billable_package": {
                        "description": "licensing package of Organization that will be billed",
                        "type": "string",
                        "enum": [
                            "beginner",
                            "business",
                            "business_plus",
                            "advanced",
                            "advanced_plus",
                            "professional",
                            "professional_plus"
                        ],
                        "example": "beginner"
                    },
                    "in_total": {
                        "description": "total billing for Organization",
                        "type": "integer",
                        "example": 1500
                    },
                    "billing_method": {
                        "description": "the billing method for Organization. Annual, Monthly, Not Set",
                        "type": "string",
                        "example": "Annual"
                    },
                    "migration_status": {
                        "description": "migration status of Organization",
                        "type": "integer",
                        "enum": [
                            0,
                            1
                        ]
                    },
                    "when_migrated": {
                        "description": "migration date of Organization (UTC)",
                        "type": "string",
                        "example": "2025/12/30"
                    },
                    "external_id": {
                        "description": "external customer reference for Organization",
                        "type": "string",
                        "example": "C12345"
                    }
                },
                "type": "object"
            },
            "DomainHealthPresenter": {
                "title": "DomainHealth",
                "description": "Contains all domain health data",
                "properties": {
                    "relay_status": {
                        "description": "Current status of the relay domain",
                        "type": "string",
                        "enum": [
                            "Active",
                            "Activating",
                            "Inactive",
                            "Deactivating",
                            "Invalid"
                        ],
                        "example": "Activating"
                    }
                },
                "type": "object"
            },
            "EmailTaggingExemptionsPresenter": {
                "title": "Email Tagging Exemptions",
                "description": "Email tagging exemptions data model",
                "properties": {
                    "exemptions": {
                        "type": "array",
                        "items": {
                            "type": "string"
                        },
                        "example": [
                            "account1@email.com",
                            "account2@email.com"
                        ]
                    }
                },
                "type": "object"
            },
            "EmailTaggingPresenter": {
                "title": "EmailTaggingPresenter",
                "description": "Email tagging data model",
                "properties": {
                    "email_warning_tags": {
                        "description": "Configuration settings for email warning tags",
                        "properties": {
                            "is_enabled": {
                                "type": "boolean"
                            },
                            "info_tags": {
                                "properties": {
                                    "external_sender": {
                                        "type": "boolean"
                                    }
                                },
                                "type": "object"
                            },
                            "warning_tags": {
                                "properties": {
                                    "dmarc_failure": {
                                        "type": "boolean"
                                    },
                                    "domain_age_failure": {
                                        "type": "boolean"
                                    },
                                    "geo_ip_failure": {
                                        "type": "boolean"
                                    }
                                },
                                "type": "object"
                            },
                            "learn_more": {
                                "properties": {
                                    "is_enabled": {
                                        "type": "boolean"
                                    },
                                    "is_action_enabled": {
                                        "type": "boolean"
                                    }
                                },
                                "type": "object"
                            },
                            "additional_banner_content": {
                                "properties": {
                                    "is_enabled": {
                                        "type": "boolean"
                                    },
                                    "content": {
                                        "type": "string",
                                        "example": "Some text here"
                                    }
                                },
                                "type": "object"
                            }
                        },
                        "type": "object"
                    },
                    "email_subject_tags": {
                        "description": "Configuration settings for email subject tags",
                        "properties": {
                            "is_enabled": {
                                "type": "boolean"
                            },
                            "content": {
                                "type": "string",
                                "example": "[External]"
                            }
                        },
                        "type": "object"
                    }
                },
                "type": "object"
            },
            "EndpointsPresenter": {
                "title": "Endpoints",
                "description": "Query which Proofpoint stack(s) a domain is active on",
                "properties": {
                    "endpoints": {
                        "type": "array",
                        "items": {
                            "type": "string"
                        },
                        "example": [
                            "https://us1.proofpointessentials.com",
                            "https://us2.proofpointessentials.com"
                        ]
                    }
                },
                "type": "object"
            },
            "IdpPresenter": {
                "title": "IdentityProvider",
                "description": "Identity Provider configuration",
                "required": [
                    "name"
                ],
                "properties": {
                    "is_active": {
                        "description": "Is the IDP active and available for SSO?",
                        "type": "boolean",
                        "example": true
                    },
                    "name": {
                        "description": "The display name of the IDP resource.",
                        "type": "string",
                        "example": "Sample IDP"
                    },
                    "description": {
                        "description": "A description of the IDPs purpose.",
                        "type": "string",
                        "example": "This IDP provides a SAML connection to Okta."
                    },
                    "id": {
                        "description": "Read Only: The unique id (UUID) of the IDP resource.",
                        "type": "string",
                        "example": "0059FCBB-A3BD-4770-8797-E9BB6BB417B2"
                    },
                    "when_created": {
                        "description": "Read Only: When was the IDP created (UTC)",
                        "type": "string",
                        "example": "2022-01-01 00:00:00"
                    },
                    "when_updated": {
                        "description": "Read Only: When was the IDP last updated (UTC)",
                        "type": "string",
                        "example": "2022-01-01 00:00:00"
                    },
                    "icon_ref": {
                        "description": "Reference name of the icon used when displaying this IDP.",
                        "type": "string",
                        "example": "idp_icon_generic"
                    },
                    "sp_entity_id": {
                        "description": "Read Only: The Entity ID of the SP (Essentials), not to be confused with an Essentials Entity ID (eid).",
                        "type": "string",
                        "example": "https://us1.proofpointessentials.com/id"
                    },
                    "sp_login_url": {
                        "description": "Read Only: The URL used to return the user to Essentials following authentication at the IDP.",
                        "type": "string",
                        "example": "https://us1.proofpointessentials.com/app/login.php"
                    },
                    "sp_logout_url": {
                        "description": "Read Only: The URL used by the IDP to log a user out of Essentials.",
                        "type": "string",
                        "example": "https://us1.proofpointessentials.com/app/logout.php"
                    },
                    "sp_public_cert": {
                        "description": "Read Only: The x.509 certificate used to validate SP initiated SAML Logout Requests",
                        "type": "string",
                        "example": "<Key Data>"
                    },
                    "sp_public_cert_when_created": {
                        "description": "When the SP Public x.509 certificate was created",
                        "type": "string",
                        "example": "2022-01-01 00:00:00"
                    },
                    "sp_public_cert_when_expires": {
                        "description": "When the SP Public x.509 certificate expires",
                        "type": "string",
                        "example": "2022-01-01 00:00:00"
                    },
                    "idp_entity_id": {
                        "description": "The Entity ID of the IDP (e.g. Okta), not to be confused with an Essentials Entity ID (eid).",
                        "type": "string",
                        "example": "https://saml.provider.com/id"
                    },
                    "idp_login_url": {
                        "description": "The URL of the IDP login application",
                        "type": "string",
                        "default": "",
                        "example": "https://saml.provider.com/login-url"
                    },
                    "idp_logout_url": {
                        "description": "The IDP url used by Essentials to log a user out.",
                        "type": "string",
                        "default": "",
                        "example": "https://saml.provider.com/logout-url"
                    },
                    "idp_public_cert": {
                        "description": "The x.509 certificate used to validate SAML Assertions and Logout requests received from the IDP.",
                        "type": "string",
                        "default": "",
                        "example": "<Key Data>"
                    }
                },
                "type": "object"
            },
            "LoginSettingsPresenter": {
                "title": "LoginSettings",
                "properties": {
                    "allow_local_login": {
                        "description": "Allow local authentication of users? i.e. username/password.",
                        "type": "boolean",
                        "default": true,
                        "example": true
                    },
                    "idp_for_forced_login": {
                        "description": "If users should be automatically forwarded to an SSO provider specify the UUID of the IDP here.",
                        "type": "string",
                        "default": null,
                        "example": "0059FCBB-A3BD-4770-8797-E9BB6BB417B2"
                    },
                    "allow_azure_login": {
                        "description": "Allow native Azure logins. These do not require an IDP to be configured.",
                        "type": "boolean",
                        "default": true,
                        "example": true
                    },
                    "force_azure_login": {
                        "description": "Force native Azure login, will override other login options.",
                        "type": "boolean",
                        "default": false,
                        "example": true
                    },
                    "idps_valid_for_sso": {
                        "description": "A list of IDPs that are available for SSO. Read only",
                        "type": "array",
                        "items": {
                            "type": "string"
                        },
                        "default": [],
                        "example": [
                            "0059FCBB-A3BD-4770-8797-E9BB6BB417B2"
                        ]
                    }
                },
                "type": "object"
            },
            "MfaSettingsPresenter": {
                "title": "MfaSettings",
                "properties": {
                    "is_mfa_enabled": {
                        "description": "Should users logging in locally complete MFA? NOTE: does not affect SSO logins.",
                        "type": "boolean",
                        "default": false,
                        "example": true
                    },
                    "mfa_admins_only": {
                        "description": "Require MFA for admins only? If false MFA will be required for all users (admins + end users).",
                        "type": "boolean",
                        "default": false,
                        "example": true
                    }
                },
                "type": "object"
            },
            "SenderListsPresenter": {
                "title": "SenderListsPresenter",
                "description": "Sender lists data model",
                "properties": {
                    "allow_list": {
                        "description": "A list of emails, domains, IP addresses or CIDR address. Wildcards allowed",
                        "type": "array",
                        "items": {
                            "type": "string"
                        },
                        "example": [
                            "john@mydomain.com",
                            "*@anotherdomain.com",
                            "10.91.*.*"
                        ]
                    },
                    "block_list": {
                        "description": "A list of emails, domains, IP addresses or CIDR address. Wildcards allowed",
                        "type": "array",
                        "items": {
                            "type": "string"
                        },
                        "example": [
                            "john@mydomain.com",
                            "*@anotherdomain.com",
                            "10.91.*.*"
                        ]
                    }
                },
                "type": "object"
            },
            "IdpTransformer": {
                "title": "IdentityProvider",
                "description": "Identity Provider POST schema",
                "required": [
                    "name"
                ],
                "properties": {
                    "is_active": {
                        "description": "Is the IDP active and available for SSO?",
                        "type": "boolean",
                        "example": true
                    },
                    "name": {
                        "description": "The display name of the IDP resource.",
                        "type": "string",
                        "example": "Sample IDP"
                    },
                    "description": {
                        "description": "A description of the IDPs purpose.",
                        "type": "string",
                        "example": "This IDP provides a SAML connection to Okta."
                    },
                    "icon_ref": {
                        "description": "Reference name of the icon used when displaying this IDP.",
                        "type": "string",
                        "example": "idp_icon_generic"
                    },
                    "idp_entity_id": {
                        "description": "The Entity ID of the IDP (e.g. Okta), not to be confused with an Essentials Entity ID (eid).",
                        "type": "string",
                        "example": "https://saml.provider.com/id"
                    },
                    "idp_login_url": {
                        "description": "The URL of the IDP login application",
                        "type": "string",
                        "default": "",
                        "example": "https://saml.provider.com/login-url"
                    },
                    "idp_logout_url": {
                        "description": "The IDP url used by Essentials to log a user out.",
                        "type": "string",
                        "default": "",
                        "example": "https://saml.provider.com/logout-url"
                    },
                    "idp_public_cert": {
                        "description": "The x.509 certificate used to validate SAML Assertions and Logout requests received from the IDP.",
                        "type": "string",
                        "default": "",
                        "example": "<Key Data>"
                    }
                },
                "type": "object"
            }
        },
        "parameters": {
            "X-user": {
                "name": "X-user",
                "in": "header",
                "description": "Username",
                "required": true,
                "schema": {
                    "type": "string"
                }
            },
            "X-password": {
                "name": "X-password",
                "in": "header",
                "description": "Password",
                "required": true,
                "schema": {
                    "type": "string"
                }
            },
            "domain": {
                "name": "domain",
                "in": "path",
                "description": "Any Domain associated with the Organization",
                "required": true,
                "schema": {
                    "type": "string"
                }
            },
            "user": {
                "name": "user",
                "in": "path",
                "description": "Email address of a user",
                "required": true,
                "schema": {
                    "type": "string"
                }
            },
            "group": {
                "name": "group",
                "in": "path",
                "description": "Identifier of a group",
                "required": true,
                "schema": {
                    "type": "string"
                }
            },
            "group-id": {
                "name": "group-id",
                "in": "path",
                "description": "Identifier of a group. Can use group name or id, but using name will only return the first result",
                "required": true,
                "schema": {
                    "type": "string"
                }
            },
            "direction": {
                "name": "direction",
                "in": "path",
                "description": "Mailflow direction: Choice of inbound/outbound",
                "required": true,
                "schema": {
                    "type": "string"
                }
            },
            "label": {
                "name": "label",
                "in": "path",
                "description": "Product identifier",
                "required": true,
                "schema": {
                    "type": "string"
                }
            },
            "selector": {
                "name": "selector",
                "in": "path",
                "description": "DKIM configuration name",
                "required": true,
                "schema": {
                    "type": "string"
                }
            },
            "period": {
                "name": "period",
                "in": "path",
                "description": "Time range for the report",
                "required": true,
                "schema": {
                    "type": "string"
                }
            }
        }
    },
    "externalDocs": {
        "description": "Terms of Use",
        "url": "https://www.proofpoint.com/us/legal/api-terms-of-use"
    }
}