{
  "openapi" : "3.0.2",
  "info" : {
    "description" : "REST API Specification of the Item Visibilities Service",
    "title" : "ItemVisibilities",
    "version" : "v1"
  },
  "servers" : [ {
    "description" : "API server",
    "url" : "https://eu.api.atrify.com/v1"
  } ],
  "tags" : [ {
    "description" : "Provides methods to deal with item visibilities.",
    "name" : "ItemVisibilities"
  } ],
  "paths" : {
    "/itemvisibilities/{supplier}/{supplierItemId}/recipient/{recipientId}" : {
      "delete" : {
        "description" : "Removes the visibility of an item.\n",
        "operationId" : "removeVisibility",
        "parameters" : [ {
          "explode" : false,
          "in" : "path",
          "name" : "supplier",
          "required" : true,
          "schema" : {
            "type" : "string"
          },
          "style" : "simple"
        }, {
          "explode" : false,
          "in" : "path",
          "name" : "supplierItemId",
          "required" : true,
          "schema" : {
            "type" : "string"
          },
          "style" : "simple"
        }, {
          "explode" : false,
          "in" : "path",
          "name" : "recipientId",
          "required" : true,
          "schema" : {
            "type" : "string"
          },
          "style" : "simple"
        } ],
        "responses" : {
          "204" : {
            "content" : {
              "*/*" : {
                "schema" : {
                  "type" : "string"
                }
              }
            },
            "description" : "Response with no content"
          },
          "400" : {
            "content" : {
              "application/problem+json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ProblemDetail"
                }
              }
            },
            "description" : "Response describing an error"
          },
          "404" : {
            "content" : {
              "application/problem+json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ProblemDetail"
                }
              }
            },
            "description" : "Response describing an error"
          }
        },
        "tags" : [ "ItemVisibilities" ]
      },
      "put" : {
        "description" : "Sets the visibility of an item.\n",
        "operationId" : "addVisibility",
        "parameters" : [ {
          "explode" : false,
          "in" : "path",
          "name" : "supplier",
          "required" : true,
          "schema" : {
            "type" : "string"
          },
          "style" : "simple"
        }, {
          "explode" : false,
          "in" : "path",
          "name" : "supplierItemId",
          "required" : true,
          "schema" : {
            "type" : "string"
          },
          "style" : "simple"
        }, {
          "explode" : false,
          "in" : "path",
          "name" : "recipientId",
          "required" : true,
          "schema" : {
            "type" : "string"
          },
          "style" : "simple"
        } ],
        "responses" : {
          "204" : {
            "content" : {
              "*/*" : {
                "schema" : {
                  "type" : "string"
                }
              }
            },
            "description" : "Response with no content"
          },
          "400" : {
            "content" : {
              "application/problem+json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ProblemDetail"
                }
              }
            },
            "description" : "Response describing an error"
          },
          "404" : {
            "content" : {
              "application/problem+json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ProblemDetail"
                }
              }
            },
            "description" : "Response describing an error"
          }
        },
        "tags" : [ "ItemVisibilities" ]
      }
    },
    "/itemvisibilities/{supplier}/{supplierItemId}" : {
      "delete" : {
        "description" : "Removes all visibilities of an item.\n",
        "operationId" : "removeVisibilities",
        "parameters" : [ {
          "explode" : false,
          "in" : "path",
          "name" : "supplier",
          "required" : true,
          "schema" : {
            "type" : "string"
          },
          "style" : "simple"
        }, {
          "explode" : false,
          "in" : "path",
          "name" : "supplierItemId",
          "required" : true,
          "schema" : {
            "type" : "string"
          },
          "style" : "simple"
        } ],
        "responses" : {
          "204" : {
            "content" : {
              "*/*" : {
                "schema" : {
                  "type" : "string"
                }
              }
            },
            "description" : "Response with no content"
          },
          "400" : {
            "content" : {
              "application/problem+json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ProblemDetail"
                }
              }
            },
            "description" : "Response describing an error"
          },
          "404" : {
            "content" : {
              "application/problem+json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ProblemDetail"
                }
              }
            },
            "description" : "Response describing an error"
          }
        },
        "tags" : [ "ItemVisibilities" ]
      },
      "get" : {
        "description" : "Get all recipients of an item that can see it\n",
        "operationId" : "getVisibilities",
        "parameters" : [ {
          "explode" : false,
          "in" : "path",
          "name" : "supplier",
          "required" : true,
          "schema" : {
            "type" : "string"
          },
          "style" : "simple"
        }, {
          "explode" : false,
          "in" : "path",
          "name" : "supplierItemId",
          "required" : true,
          "schema" : {
            "type" : "string"
          },
          "style" : "simple"
        } ],
        "responses" : {
          "200" : {
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/RecipientsArray"
                }
              }
            },
            "description" : "Response of"
          },
          "400" : {
            "content" : {
              "application/problem+json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ProblemDetail"
                }
              }
            },
            "description" : "Response describing an error"
          },
          "404" : {
            "content" : {
              "*/*" : {
                "schema" : {
                  "type" : "string"
                }
              }
            },
            "description" : "Response with no content"
          }
        },
        "tags" : [ "ItemVisibilities" ]
      },
      "put" : {
        "description" : "Sets the visibilities of an item.\n",
        "operationId" : "setVisibilities",
        "parameters" : [ {
          "explode" : false,
          "in" : "path",
          "name" : "supplier",
          "required" : true,
          "schema" : {
            "type" : "string"
          },
          "style" : "simple"
        }, {
          "explode" : false,
          "in" : "path",
          "name" : "supplierItemId",
          "required" : true,
          "schema" : {
            "type" : "string"
          },
          "style" : "simple"
        } ],
        "requestBody" : {
          "content" : {
            "application/json" : {
              "schema" : {
                "$ref" : "#/components/schemas/RecipientsArray"
              }
            }
          }
        },
        "responses" : {
          "204" : {
            "content" : {
              "*/*" : {
                "schema" : {
                  "type" : "string"
                }
              }
            },
            "description" : "Response with no content"
          },
          "400" : {
            "content" : {
              "application/problem+json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ProblemDetail"
                }
              }
            },
            "description" : "Response describing an error"
          },
          "404" : {
            "content" : {
              "application/problem+json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ProblemDetail"
                }
              }
            },
            "description" : "Response describing an error"
          }
        },
        "tags" : [ "ItemVisibilities" ]
      }
    }
  },
  "components" : {
    "responses" : {
      "EmptyResponse" : {
        "content" : {
          "*/*" : {
            "schema" : {
              "type" : "string"
            }
          }
        },
        "description" : "Response with no content"
      },
      "ErrorResponse" : {
        "content" : {
          "application/problem+json" : {
            "schema" : {
              "$ref" : "#/components/schemas/ProblemDetail"
            }
          }
        },
        "description" : "Response describing an error"
      },
      "RecipientsArrayResponse" : {
        "content" : {
          "application/json" : {
            "schema" : {
              "$ref" : "#/components/schemas/RecipientsArray"
            }
          }
        },
        "description" : "Response of"
      }
    },
    "schemas" : {
      "RecipientsArray" : {
        "description" : "An array of recipients\n",
        "items" : {
          "type" : "string"
        },
        "type" : "array"
      },
      "ProblemDetail" : {
        "description" : "Information about a failing request\n",
        "properties" : {
          "status" : {
            "type" : "integer"
          },
          "title" : {
            "type" : "string"
          },
          "detail" : {
            "type" : "string"
          },
          "instance" : {
            "format" : "uri",
            "type" : "string"
          }
        },
        "required" : [ "status" ]
      }
    }
  }
}