{
  "swagger": "2.0",
  "info": {
    "description": "The XNAT DICOM Anonymization API was introduced in XNAT 1.7 and augments legacy APIs that manage site-wide and project-specific anonymization scripts.",
    "version": "1.7.4.1",
    "title": "XNAT DICOM Anonymization API"
  },
  "tags": [
    {
      "name": "anonymize-api",
      "description": "XNAT DICOM Anonymization API"
    }
  ],
  "definitions": {

  },
  "paths": {
    "/xapi/anonymize/default": {"get": {
      "tags": ["anonymize-api"],
      "summary": "Gets the default anonymization script.",
      "operationId": "getDefaultAnonScriptUsingGET",
      "consumes": ["application/json"],
      "produces": ["text/plain"],
      "responses": {
        "200": {
          "description": "Successfully retrieved the contents of the default anonymization script.",
          "schema": {"type": "string"}
        },
        "401": {"description": "Unauthorized"},
        "500": {"description": "An unexpected error occurred."},
        "403": {"description": "Insufficient permissions to access the default anonymization script."},
        "404": {"description": "Not Found"}
      }
    }},
    "/xapi/anonymize/projects/{projectId}": {
      "get": {
        "tags": ["anonymize-api"],
        "summary": "Gets the project-specific anonymization script.",
        "operationId": "getProjectAnonScriptUsingGET",
        "consumes": ["application/json"],
        "produces": ["text/plain"],
        "parameters": [{
          "name": "projectId",
          "in": "path",
          "description": "projectId",
          "required": true,
          "type": "string"
        }],
        "responses": {
          "200": {
            "description": "Successfully retrieved the contents of the project-specific anonymization script.",
            "schema": {"type": "string"}
          },
          "401": {"description": "Unauthorized"},
          "500": {"description": "An unexpected error occurred."},
          "204": {
            "description": "The specified project was found but had no associated anonymization script.",
            "schema": {"type": "string"}
          },
          "403": {"description": "Insufficient permissions to access the project-specific anonymization script."},
          "404": {"description": "The specified project wasn't found."}
        }
      },
      "put": {
        "tags": ["anonymize-api"],
        "summary": "Sets the project-specific anonymization script.",
        "operationId": "setProjectAnonScriptUsingPUT",
        "consumes": ["text/plain"],
        "produces": ["*/*"],
        "parameters": [
          {
            "name": "projectId",
            "in": "path",
            "description": "Indicates the ID of the project to be enabled or disabled.",
            "required": true,
            "type": "string"
          },
          {
            "in": "body",
            "name": "script",
            "description": "Whether the specified project's anonymization script should be enabled or disabled.",
            "required": true,
            "schema": {"type": "string"}
          }
        ],
        "responses": {
          "200": {"description": "Successfully stored the contents of the project-specific anonymization script."},
          "201": {"description": "Created"},
          "401": {"description": "Unauthorized"},
          "500": {"description": "An unexpected error occurred."},
          "403": {"description": "Insufficient permissions to modify the project-specific anonymization script."},
          "404": {"description": "The specified project wasn't found."}
        }
      }
    },
    "/xapi/anonymize/projects/{projectId}/enabled": {
      "get": {
        "tags": ["anonymize-api"],
        "summary": "Indicates whether the project-specific anonymization script is enabled or disabled.",
        "operationId": "isProjectAnonScriptEnabledUsingGET",
        "consumes": ["application/json"],
        "produces": ["*/*"],
        "parameters": [{
          "name": "projectId",
          "in": "path",
          "description": "projectId",
          "required": true,
          "type": "string"
        }],
        "responses": {
          "200": {
            "description": "Successfully retrieved the status of the project-specific anonymization script.",
            "schema": {"type": "boolean"}
          },
          "401": {"description": "Unauthorized"},
          "500": {"description": "An unexpected error occurred."},
          "403": {"description": "Insufficient permissions to access the project-specific anonymization script settings."},
          "404": {"description": "Not Found"}
        }
      },
      "put": {
        "tags": ["anonymize-api"],
        "summary": "Enables or disables the project-specific anonymization script.",
        "operationId": "setProjectAnonScriptEnabledUsingPUT",
        "consumes": ["application/json"],
        "produces": ["*/*"],
        "parameters": [
          {
            "name": "projectId",
            "in": "path",
            "description": "projectId",
            "required": true,
            "type": "string"
          },
          {
            "name": "enable",
            "in": "query",
            "description": "enable",
            "required": false,
            "type": "boolean",
            "default": true
          }
        ],
        "responses": {
          "200": {"description": "Successfully set the status of the project-specific anonymization script."},
          "201": {"description": "Created"},
          "401": {"description": "Unauthorized"},
          "500": {"description": "An unexpected error occurred."},
          "403": {"description": "Insufficient permissions to modify the project-specific anonymization script settings."},
          "404": {"description": "Not Found"}
        }
      }
    },
    "/xapi/anonymize/site": {
      "get": {
        "tags": ["anonymize-api"],
        "summary": "Gets the site-wide anonymization script.",
        "operationId": "getSiteWideAnonScriptUsingGET",
        "consumes": ["application/json"],
        "produces": ["text/plain"],
        "responses": {
          "200": {
            "description": "Successfully retrieved the contents of the site-wide anonymization script.",
            "schema": {"type": "string"}
          },
          "401": {"description": "Unauthorized"},
          "500": {"description": "An unexpected error occurred."},
          "403": {"description": "Insufficient permissions to access the site-wide anonymization script."},
          "404": {"description": "Not Found"}
        }
      },
      "put": {
        "tags": ["anonymize-api"],
        "summary": "Sets the site-wide anonymization script.",
        "operationId": "setSiteWideAnonScriptUsingPUT",
        "consumes": ["text/plain"],
        "produces": ["*/*"],
        "parameters": [{
          "in": "body",
          "name": "script",
          "description": "script",
          "required": true,
          "schema": {"type": "string"}
        }],
        "responses": {
          "200": {"description": "Successfully stored the contents of the site-wide anonymization script."},
          "201": {"description": "Created"},
          "401": {"description": "Unauthorized"},
          "500": {"description": "An unexpected error occurred."},
          "403": {"description": "Insufficient permissions to modify the site-wide anonymization script."},
          "404": {"description": "Not Found"}
        }
      }
    },
    "/xapi/anonymize/site/enabled": {
      "get": {
        "tags": ["anonymize-api"],
        "summary": "Indicates whether the site-wide anonymization script is enabled or disabled.",
        "operationId": "isSiteWideAnonScriptEnabledUsingGET",
        "consumes": ["application/json"],
        "produces": ["application/json"],
        "responses": {
          "200": {
            "description": "Successfully retrieved the status of the site-wide anonymization script.",
            "schema": {"type": "boolean"}
          },
          "401": {"description": "Unauthorized"},
          "500": {"description": "An unexpected error occurred."},
          "403": {"description": "Insufficient permissions to access the site-wide anonymization script settings."},
          "404": {"description": "Not Found"}
        }
      },
      "put": {
        "tags": ["anonymize-api"],
        "summary": "Enables or disables the site-wide anonymization script.",
        "operationId": "setSiteWideAnonScriptEnabledUsingPUT",
        "consumes": ["application/json"],
        "produces": ["*/*"],
        "parameters": [{
          "name": "enable",
          "in": "query",
          "description": "Whether the site-wide anonymization script should be enabled or disabled.",
          "required": true,
          "type": "boolean",
          "default": true
        }],
        "responses": {
          "200": {"description": "Successfully set the status of the site-wide anonymization script."},
          "201": {"description": "Created"},
          "401": {"description": "Unauthorized"},
          "500": {"description": "An unexpected error occurred."},
          "403": {"description": "Insufficient permissions to modify the site-wide anonymization script settings."},
          "404": {"description": "Not Found"}
        }
      }
    },
  }
}