---
updatedAt: 2024-11-29T15:27:43.000Z
agentTools:
  projectIndex: https://clinia.readme.io/llms.txt
---

# Create or update a Profile in the registry

Updating a profile is currently not supported and will return a 501.

# OpenAPI definition

```json
{
  "openapi": "3.0.1",
  "info": {
    "title": "Registry API",
    "version": "1.0.0"
  },
  "servers": [
    {
      "url": "https://{workspaceId}.clinia.cloud",
      "variables": {
        "workspaceId": {
          "default": "",
          "description": "The workspace id."
        }
      }
    }
  ],
  "security": [
    {
      "apiKey": []
    }
  ],
  "tags": [
    {
      "name": "Profiles",
      "description": "Management of profiles in a registry."
    }
  ],
  "paths": {
    "/sources/{sourceKey}/v1/profiles/{profileKey}": {
      "put": {
        "tags": [
          "Profiles"
        ],
        "summary": "Create or update a Profile in the registry",
        "description": "Updating a profile is currently not supported and will return a 501.",
        "operationId": "UpsertProfile",
        "parameters": [
          {
            "name": "sourceKey",
            "in": "path",
            "description": "The key of the source.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "profileKey",
            "in": "path",
            "description": "The key of the profile.\nIt must follow pattern: `^[a-zA-Z0-9-][\\w-]{0,61}$`.\n",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "type",
                  "properties"
                ],
                "properties": {
                  "type": {
                    "description": "Type of the profile. It can be either `ROOT` or `CONTAINED`.\n",
                    "$ref": "#/components/schemas/v1ProfileType"
                  },
                  "description": {
                    "type": "string",
                    "description": "Description of the profile."
                  },
                  "properties": {
                    "type": "object",
                    "description": "Properties of the profile. It must follow pattern: `^[a-zA-Z0-9-][\\w-]$`.\n",
                    "additionalProperties": {
                      "$ref": "#/components/schemas/v1PropertyDefinition"
                    }
                  },
                  "contained": {
                    "type": "object",
                    "description": "Contained of the profile. It must follow pattern: `^[a-zA-Z0-9-][\\w-]$`.\n",
                    "additionalProperties": {
                      "$ref": "#/components/schemas/v1ContainedDefinition"
                    }
                  }
                },
                "additionalProperties": false
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "description": "The profile was created successfully.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/v1Profile"
                }
              }
            }
          },
          "400": {
            "description": "Returned when the request is malformed or invalid.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/v1Error"
                }
              }
            }
          },
          "404": {
            "description": "Returned when a vocabulary used in a property binding does not exist.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/v1Error"
                }
              }
            }
          },
          "413": {
            "$ref": "#/components/responses/v1PayloadTooLargeError"
          },
          "501": {
            "description": "Returned when the profile already exists since updating a profile is not implemented yet.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/v1Error"
                }
              }
            }
          }
        }
      }
    }
  },
  "components": {
    "securitySchemes": {
      "apiKey": {
        "type": "apiKey",
        "in": "header",
        "name": "X-Clinia-API-Key"
      }
    },
    "schemas": {
      "v1ErrorType": {
        "type": "string",
        "x-common-model": true,
        "enum": [
          "ALREADY_EXISTS",
          "FAILED_PRECONDITION",
          "INTERNAL",
          "INVALID_ARGUMENT",
          "NOT_FOUND",
          "OUT_OF_RANGE",
          "UNIMPLEMENTED",
          "PERMISSION_DENIED",
          "UNAUTHENTICATED",
          "CONTENT_TOO_LARGE",
          "REQUEST_TIMEOUT"
        ],
        "x-go-type": "apiv1.V1ErrorType",
        "x-go-type-import": {
          "name": "apiv1",
          "path": "github.com/clinia/atlas/server/api/v1"
        }
      },
      "v1Error": {
        "type": "object",
        "x-common-model": true,
        "required": [
          "code",
          "message",
          "type"
        ],
        "properties": {
          "code": {
            "type": "integer",
            "format": "int32",
            "enum": [
              400,
              401,
              403,
              404,
              408,
              409,
              413,
              500,
              501
            ]
          },
          "message": {
            "type": "string"
          },
          "type": {
            "$ref": "#/components/schemas/v1ErrorType"
          },
          "details": {
            "description": "list of errors that occurred if applicable.",
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/v1Error"
            }
          }
        },
        "x-go-type": "apiv1.V1Error",
        "x-go-type-import": {
          "name": "apiv1",
          "path": "github.com/clinia/atlas/server/api/v1"
        }
      },
      "v1DataType": {
        "type": "string",
        "x-common-model": true,
        "enum": [
          "address",
          "attachment",
          "boolean",
          "code",
          "coding",
          "contactpoint",
          "date",
          "datetime",
          "decimal",
          "geopoint",
          "humanname",
          "identifier",
          "instant",
          "integer",
          "markdown",
          "period",
          "reference",
          "symbol",
          "time",
          "uri",
          "url",
          "xhtml",
          "array",
          "object"
        ],
        "x-go-type": "apiv1.V1DataType",
        "x-go-type-import": {
          "name": "apiv1",
          "path": "github.com/clinia/atlas/server/api/v1"
        }
      },
      "V1OperatorBase": {
        "type": "object",
        "x-common-model": true,
        "properties": {
          "id": {
            "type": "string"
          }
        },
        "x-go-type": "apiv1.V1OperatorBase",
        "x-go-type-import": {
          "name": "apiv1",
          "path": "github.com/clinia/atlas/server/api/v1"
        }
      },
      "v1Operator": {
        "x-common-model": true,
        "oneOf": [
          {
            "$ref": "#/components/schemas/v1AndOperator"
          },
          {
            "$ref": "#/components/schemas/v1OrOperator"
          },
          {
            "$ref": "#/components/schemas/v1AllOperator"
          },
          {
            "$ref": "#/components/schemas/v1AnyOperator"
          },
          {
            "$ref": "#/components/schemas/v1CompositeOperator"
          },
          {
            "$ref": "#/components/schemas/v1EqOperator"
          },
          {
            "$ref": "#/components/schemas/V1KNNOperator"
          },
          {
            "$ref": "#/components/schemas/v1GeoDistanceOperator"
          },
          {
            "$ref": "#/components/schemas/v1GreaterThanOperator"
          },
          {
            "$ref": "#/components/schemas/v1LessThanOperator"
          },
          {
            "$ref": "#/components/schemas/v1MatchOperator"
          },
          {
            "$ref": "#/components/schemas/v1NotOperator"
          }
        ],
        "x-go-type": "apiv1.V1Operator",
        "x-go-type-import": {
          "name": "apiv1",
          "path": "github.com/clinia/atlas/server/api/v1"
        }
      },
      "v1AndOperator": {
        "x-common-model": true,
        "allOf": [
          {
            "$ref": "#/components/schemas/V1OperatorBase"
          },
          {
            "type": "object",
            "required": [
              "and"
            ],
            "properties": {
              "and": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/v1Operator"
                }
              }
            }
          }
        ],
        "x-go-type": "apiv1.V1AndOperator",
        "x-go-type-import": {
          "name": "apiv1",
          "path": "github.com/clinia/atlas/server/api/v1"
        }
      },
      "v1OrOperator": {
        "x-common-model": true,
        "allOf": [
          {
            "$ref": "#/components/schemas/V1OperatorBase"
          },
          {
            "type": "object",
            "required": [
              "or"
            ],
            "properties": {
              "or": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/v1Operator"
                }
              }
            }
          }
        ],
        "x-go-type": "apiv1.V1OrOperator",
        "x-go-type-import": {
          "name": "apiv1",
          "path": "github.com/clinia/atlas/server/api/v1"
        }
      },
      "v1ArrayOfStrings": {
        "type": "array",
        "x-common-model": true,
        "items": {
          "type": "string"
        },
        "x-go-type": "apiv1.V1ArrayOfStrings",
        "x-go-type-import": {
          "name": "apiv1",
          "path": "github.com/clinia/atlas/server/api/v1"
        }
      },
      "v1ArrayOfIntegers": {
        "type": "array",
        "x-common-model": true,
        "items": {
          "type": "integer",
          "format": "int32"
        },
        "x-go-type": "apiv1.V1ArrayOfIntegers",
        "x-go-type-import": {
          "name": "apiv1",
          "path": "github.com/clinia/atlas/server/api/v1"
        }
      },
      "v1ArrayOfDoubles": {
        "type": "array",
        "x-common-model": true,
        "items": {
          "format": "double",
          "type": "number"
        },
        "x-go-type": "apiv1.V1ArrayOfDoubles",
        "x-go-type-import": {
          "name": "apiv1",
          "path": "github.com/clinia/atlas/server/api/v1"
        }
      },
      "v1SupportedPrimitiveArrays": {
        "x-common-model": true,
        "oneOf": [
          {
            "$ref": "#/components/schemas/v1ArrayOfStrings"
          },
          {
            "$ref": "#/components/schemas/v1ArrayOfIntegers"
          },
          {
            "$ref": "#/components/schemas/v1ArrayOfDoubles"
          }
        ],
        "x-go-type": "apiv1.V1SupportedPrimitiveArrays",
        "x-go-type-import": {
          "name": "apiv1",
          "path": "github.com/clinia/atlas/server/api/v1"
        }
      },
      "v1AllOperator": {
        "x-common-model": true,
        "allOf": [
          {
            "$ref": "#/components/schemas/V1OperatorBase"
          },
          {
            "type": "object",
            "required": [
              "all"
            ],
            "properties": {
              "all": {
                "type": "object",
                "minProperties": 1,
                "maxProperties": 1,
                "additionalProperties": {
                  "$ref": "#/components/schemas/v1SupportedPrimitiveArrays"
                }
              }
            }
          }
        ],
        "x-go-type": "apiv1.V1AllOperator",
        "x-go-type-import": {
          "name": "apiv1",
          "path": "github.com/clinia/atlas/server/api/v1"
        }
      },
      "v1AnyOperator": {
        "x-common-model": true,
        "allOf": [
          {
            "$ref": "#/components/schemas/V1OperatorBase"
          },
          {
            "type": "object",
            "required": [
              "any"
            ],
            "properties": {
              "any": {
                "type": "object",
                "minProperties": 1,
                "maxProperties": 1,
                "additionalProperties": {
                  "$ref": "#/components/schemas/v1SupportedPrimitiveArrays"
                }
              }
            }
          }
        ],
        "x-go-type": "apiv1.V1AnyOperator",
        "x-go-type-import": {
          "name": "apiv1",
          "path": "github.com/clinia/atlas/server/api/v1"
        }
      },
      "v1CompositeOperator": {
        "x-common-model": true,
        "allOf": [
          {
            "$ref": "#/components/schemas/V1OperatorBase"
          },
          {
            "type": "object",
            "required": [
              "composite"
            ],
            "properties": {
              "composite": {
                "type": "object",
                "minProperties": 1,
                "maxProperties": 1,
                "additionalProperties": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/v1Operator"
                  }
                }
              }
            }
          }
        ],
        "x-go-type": "apiv1.V1CompositeOperator",
        "x-go-type-import": {
          "name": "apiv1",
          "path": "github.com/clinia/atlas/server/api/v1"
        }
      },
      "v1String": {
        "type": "string",
        "x-common-model": true,
        "x-go-type": "apiv1.V1String",
        "x-go-type-import": {
          "name": "apiv1",
          "path": "github.com/clinia/atlas/server/api/v1"
        }
      },
      "v1Integer": {
        "pattern": "^[0]|[-+]?[1-9][0-9]*$",
        "type": "integer",
        "x-common-model": true,
        "description": "A whole number.",
        "format": "int32",
        "x-go-type": "apiv1.V1Integer",
        "x-go-type-import": {
          "name": "apiv1",
          "path": "github.com/clinia/atlas/server/api/v1"
        }
      },
      "v1Double": {
        "type": "number",
        "format": "double",
        "x-common-model": true,
        "x-go-type": "apiv1.V1Double",
        "x-go-type-import": {
          "name": "apiv1",
          "path": "github.com/clinia/atlas/server/api/v1"
        }
      },
      "v1Bool": {
        "type": "boolean",
        "x-common-model": true,
        "x-go-type": "apiv1.V1Bool",
        "x-go-type-import": {
          "name": "apiv1",
          "path": "github.com/clinia/atlas/server/api/v1"
        }
      },
      "v1SupportedPrimitives": {
        "x-common-model": true,
        "oneOf": [
          {
            "$ref": "#/components/schemas/v1String"
          },
          {
            "$ref": "#/components/schemas/v1Integer"
          },
          {
            "$ref": "#/components/schemas/v1Double"
          },
          {
            "$ref": "#/components/schemas/v1Bool"
          }
        ],
        "x-go-type": "apiv1.V1SupportedPrimitives",
        "x-go-type-import": {
          "name": "apiv1",
          "path": "github.com/clinia/atlas/server/api/v1"
        }
      },
      "v1EqOperator": {
        "x-common-model": true,
        "allOf": [
          {
            "$ref": "#/components/schemas/V1OperatorBase"
          },
          {
            "type": "object",
            "required": [
              "eq"
            ],
            "properties": {
              "eq": {
                "type": "object",
                "minProperties": 1,
                "maxProperties": 1,
                "additionalProperties": {
                  "$ref": "#/components/schemas/v1SupportedPrimitives"
                }
              }
            }
          }
        ],
        "x-go-type": "apiv1.V1EqOperator",
        "x-go-type-import": {
          "name": "apiv1",
          "path": "github.com/clinia/atlas/server/api/v1"
        }
      },
      "v1KNNCondition": {
        "type": "object",
        "x-common-model": true,
        "additionalProperties": false,
        "required": [
          "value"
        ],
        "properties": {
          "value": {
            "type": "string"
          }
        },
        "x-go-type": "apiv1.V1KNNCondition",
        "x-go-type-import": {
          "name": "apiv1",
          "path": "github.com/clinia/atlas/server/api/v1"
        }
      },
      "V1KNNOperator": {
        "x-common-model": true,
        "allOf": [
          {
            "$ref": "#/components/schemas/V1OperatorBase"
          },
          {
            "type": "object",
            "required": [
              "knn"
            ],
            "properties": {
              "knn": {
                "type": "object",
                "minProperties": 1,
                "maxProperties": 1,
                "additionalProperties": {
                  "$ref": "#/components/schemas/v1KNNCondition"
                }
              }
            }
          }
        ],
        "x-go-type": "apiv1.V1KNNOperator",
        "x-go-type-import": {
          "name": "apiv1",
          "path": "github.com/clinia/atlas/server/api/v1"
        }
      },
      "v1Decimal": {
        "pattern": "^-?(0|[1-9][0-9]{0,17})(\\.[0-9]{1,17})?([eE][+-]?[0-9]{1,9}})?$",
        "type": "number",
        "x-common-model": true,
        "format": "double",
        "description": "A rational number with implicit precision.",
        "x-go-type": "apiv1.V1Decimal",
        "x-go-type-import": {
          "name": "apiv1",
          "path": "github.com/clinia/atlas/server/api/v1"
        }
      },
      "v1GeoPoint": {
        "type": "object",
        "x-common-model": true,
        "properties": {
          "latitude": {
            "$ref": "#/components/schemas/v1Decimal"
          },
          "longitude": {
            "$ref": "#/components/schemas/v1Decimal"
          }
        },
        "additionalProperties": false,
        "required": [
          "latitude",
          "longitude"
        ],
        "x-go-type": "apiv1.V1GeoPoint",
        "x-go-type-import": {
          "name": "apiv1",
          "path": "github.com/clinia/atlas/server/api/v1"
        }
      },
      "v1GeoDistanceConditionCoordinates": {
        "x-common-model": true,
        "oneOf": [
          {
            "$ref": "#/components/schemas/v1GeoPoint"
          },
          {
            "$ref": "#/components/schemas/v1String"
          }
        ],
        "x-go-type": "apiv1.V1GeoDistanceConditionCoordinates",
        "x-go-type-import": {
          "name": "apiv1",
          "path": "github.com/clinia/atlas/server/api/v1"
        }
      },
      "v1GeoDistanceCondition": {
        "type": "object",
        "x-common-model": true,
        "required": [
          "coordinates",
          "radius"
        ],
        "properties": {
          "coordinates": {
            "$ref": "#/components/schemas/v1GeoDistanceConditionCoordinates"
          },
          "radius": {
            "type": "integer",
            "format": "int32"
          }
        },
        "additionalProperties": false,
        "x-go-type": "apiv1.V1GeoDistanceCondition",
        "x-go-type-import": {
          "name": "apiv1",
          "path": "github.com/clinia/atlas/server/api/v1"
        }
      },
      "v1GeoDistanceOperator": {
        "x-common-model": true,
        "allOf": [
          {
            "$ref": "#/components/schemas/V1OperatorBase"
          },
          {
            "type": "object",
            "required": [
              "geoDistance"
            ],
            "properties": {
              "geoDistance": {
                "type": "object",
                "minProperties": 1,
                "maxProperties": 1,
                "additionalProperties": {
                  "$ref": "#/components/schemas/v1GeoDistanceCondition"
                }
              }
            }
          }
        ],
        "x-go-type": "apiv1.V1GeoDistanceOperator",
        "x-go-type-import": {
          "name": "apiv1",
          "path": "github.com/clinia/atlas/server/api/v1"
        }
      },
      "v1SupportedComparablePrimitives": {
        "x-common-model": true,
        "oneOf": [
          {
            "$ref": "#/components/schemas/v1String"
          },
          {
            "$ref": "#/components/schemas/v1Integer"
          },
          {
            "$ref": "#/components/schemas/v1Double"
          }
        ],
        "x-go-type": "apiv1.V1SupportedComparablePrimitives",
        "x-go-type-import": {
          "name": "apiv1",
          "path": "github.com/clinia/atlas/server/api/v1"
        }
      },
      "v1GreaterThanOperator": {
        "x-common-model": true,
        "allOf": [
          {
            "$ref": "#/components/schemas/V1OperatorBase"
          },
          {
            "type": "object",
            "required": [
              "gt"
            ],
            "properties": {
              "gt": {
                "type": "object",
                "minProperties": 1,
                "maxProperties": 1,
                "additionalProperties": {
                  "$ref": "#/components/schemas/v1SupportedComparablePrimitives"
                }
              }
            }
          }
        ],
        "x-go-type": "apiv1.V1GreaterThanOperator",
        "x-go-type-import": {
          "name": "apiv1",
          "path": "github.com/clinia/atlas/server/api/v1"
        }
      },
      "v1LessThanOperator": {
        "x-common-model": true,
        "allOf": [
          {
            "$ref": "#/components/schemas/V1OperatorBase"
          },
          {
            "type": "object",
            "required": [
              "lt"
            ],
            "properties": {
              "lt": {
                "type": "object",
                "minProperties": 1,
                "maxProperties": 1,
                "additionalProperties": {
                  "$ref": "#/components/schemas/v1SupportedComparablePrimitives"
                }
              }
            }
          }
        ],
        "x-go-type": "apiv1.V1LessThanOperator",
        "x-go-type-import": {
          "name": "apiv1",
          "path": "github.com/clinia/atlas/server/api/v1"
        }
      },
      "v1MatchOperatorType": {
        "type": "string",
        "x-common-model": true,
        "enum": [
          "phrase",
          "phrasePrefix",
          "word",
          "wordPrefix"
        ],
        "x-go-type": "apiv1.V1MatchOperatorType",
        "x-go-type-import": {
          "name": "apiv1",
          "path": "github.com/clinia/atlas/server/api/v1"
        }
      },
      "v1MatchCondition": {
        "type": "object",
        "x-common-model": true,
        "description": "The match condition is used to match a string field with a given value.",
        "additionalProperties": false,
        "required": [
          "value",
          "type"
        ],
        "properties": {
          "value": {
            "type": "string"
          },
          "type": {
            "$ref": "#/components/schemas/v1MatchOperatorType"
          },
          "fuzziness": {
            "type": "integer",
            "format": "int32",
            "maximum": 3
          }
        },
        "x-go-type": "apiv1.V1MatchCondition",
        "x-go-type-import": {
          "name": "apiv1",
          "path": "github.com/clinia/atlas/server/api/v1"
        }
      },
      "v1MatchOperator": {
        "x-common-model": true,
        "allOf": [
          {
            "$ref": "#/components/schemas/V1OperatorBase"
          },
          {
            "type": "object",
            "required": [
              "match"
            ],
            "properties": {
              "match": {
                "type": "object",
                "minProperties": 1,
                "maxProperties": 1,
                "additionalProperties": {
                  "$ref": "#/components/schemas/v1MatchCondition"
                }
              }
            }
          }
        ],
        "x-go-type": "apiv1.V1MatchOperator",
        "x-go-type-import": {
          "name": "apiv1",
          "path": "github.com/clinia/atlas/server/api/v1"
        }
      },
      "v1NotOperator": {
        "x-common-model": true,
        "allOf": [
          {
            "$ref": "#/components/schemas/V1OperatorBase"
          },
          {
            "type": "object",
            "required": [
              "not"
            ],
            "properties": {
              "not": {
                "$ref": "#/components/schemas/v1Operator"
              }
            }
          }
        ],
        "x-go-type": "apiv1.V1NotOperator",
        "x-go-type-import": {
          "name": "apiv1",
          "path": "github.com/clinia/atlas/server/api/v1"
        }
      },
      "v1PropertyRule": {
        "type": "object",
        "x-common-model": true,
        "properties": {
          "required": {
            "type": "boolean"
          },
          "pattern": {
            "type": "string"
          },
          "enum": {
            "description": "List of possible values for the property: string and number types only.",
            "type": "array",
            "items": {
              "oneOf": [
                {
                  "type": "string"
                },
                {
                  "type": "number"
                }
              ],
              "x-go-type": "interface{}"
            },
            "minItems": 1
          },
          "min": {
            "type": "integer",
            "format": "int"
          },
          "max": {
            "type": "integer",
            "format": "int"
          },
          "when": {
            "description": "An operator that defines when the rule should be applicable.\nWhenever this operator evaluates to true, the rule will be checked; when it is evaluated to false, the rule is ignored entirely and none of its validation is applied.\n\nSupported operators are: 'eq', 'lt' and 'gt'.\nTODO: [ENG-844] Add examples and document [current] and [*].\n",
            "$ref": "#/components/schemas/v1Operator"
          }
        },
        "additionalProperties": false,
        "x-go-type": "apiv1.V1PropertyRule",
        "x-go-type-import": {
          "name": "apiv1",
          "path": "github.com/clinia/atlas/server/api/v1"
        }
      },
      "v1BindingStrength": {
        "type": "string",
        "x-common-model": true,
        "description": "The strength with which the binding is asserted.\n - required: To be conformant, the concept in this element shall be from the specified value set.\n - preferred: Instances are encouraged to draw from the specified codes for interoperability purposes but are not required to do so to be considered conformant.\n",
        "enum": [
          "required",
          "preferred"
        ],
        "x-go-type": "apiv1.V1BindingStrength",
        "x-go-type-import": {
          "name": "apiv1",
          "path": "github.com/clinia/atlas/server/api/v1"
        }
      },
      "v1VocabularyBinding": {
        "type": "object",
        "x-common-model": true,
        "required": [
          "key",
          "strength"
        ],
        "properties": {
          "key": {
            "type": "string"
          },
          "strength": {
            "$ref": "#/components/schemas/v1BindingStrength"
          }
        },
        "additionalProperties": false,
        "x-go-type": "apiv1.V1VocabularyBinding",
        "x-go-type-import": {
          "name": "apiv1",
          "path": "github.com/clinia/atlas/server/api/v1"
        }
      },
      "v1PropertyBinding": {
        "description": "Defines a subset of values the property can take.\nA binding can be defined for a code, a coding, a symbol or an URI property.\nIn the case of a coding, the binding is applied to the code sub-attribute.\n",
        "type": "object",
        "x-common-model": true,
        "required": [
          "vocabulary"
        ],
        "properties": {
          "vocabulary": {
            "$ref": "#/components/schemas/v1VocabularyBinding"
          }
        },
        "additionalProperties": false,
        "x-go-type": "apiv1.V1PropertyBinding",
        "x-go-type-import": {
          "name": "apiv1",
          "path": "github.com/clinia/atlas/server/api/v1"
        }
      },
      "v1PropertyDefinition": {
        "x-common-model": true,
        "oneOf": [
          {
            "$ref": "#/components/schemas/v1AddressPropertyDefinition"
          },
          {
            "$ref": "#/components/schemas/v1ArrayPropertyDefinition"
          },
          {
            "$ref": "#/components/schemas/v1AttachmentPropertyDefinition"
          },
          {
            "$ref": "#/components/schemas/v1BooleanPropertyDefinition"
          },
          {
            "$ref": "#/components/schemas/v1CodePropertyDefinition"
          },
          {
            "$ref": "#/components/schemas/v1CodingPropertyDefinition"
          },
          {
            "$ref": "#/components/schemas/v1ContactPointPropertyDefinition"
          },
          {
            "$ref": "#/components/schemas/v1DatePropertyDefinition"
          },
          {
            "$ref": "#/components/schemas/v1DateTimePropertyDefinition"
          },
          {
            "$ref": "#/components/schemas/v1DecimalPropertyDefinition"
          },
          {
            "$ref": "#/components/schemas/v1GeoPointPropertyDefinition"
          },
          {
            "$ref": "#/components/schemas/v1HumanNamePropertyDefinition"
          },
          {
            "$ref": "#/components/schemas/v1IdentifierPropertyDefinition"
          },
          {
            "$ref": "#/components/schemas/v1InstantPropertyDefinition"
          },
          {
            "$ref": "#/components/schemas/v1IntegerPropertyDefinition"
          },
          {
            "$ref": "#/components/schemas/v1MarkdownPropertyDefinition"
          },
          {
            "$ref": "#/components/schemas/v1ObjectPropertyDefinition"
          },
          {
            "$ref": "#/components/schemas/v1PeriodPropertyDefinition"
          },
          {
            "$ref": "#/components/schemas/v1ReferencePropertyDefinition"
          },
          {
            "$ref": "#/components/schemas/v1SymbolPropertyDefinition"
          },
          {
            "$ref": "#/components/schemas/v1TimePropertyDefinition"
          },
          {
            "$ref": "#/components/schemas/v1UriPropertyDefinition"
          },
          {
            "$ref": "#/components/schemas/v1UrlPropertyDefinition"
          },
          {
            "$ref": "#/components/schemas/v1XhtmlPropertyDefinition"
          }
        ],
        "discriminator": {
          "propertyName": "type",
          "mapping": {
            "address": "#/components/schemas/v1AddressPropertyDefinition",
            "attachment": "#/components/schemas/v1AttachmentPropertyDefinition",
            "boolean": "#/components/schemas/v1BooleanPropertyDefinition",
            "code": "#/components/schemas/v1CodePropertyDefinition",
            "coding": "#/components/schemas/v1CodingPropertyDefinition",
            "contactpoint": "#/components/schemas/v1ContactPointPropertyDefinition",
            "date": "#/components/schemas/v1DatePropertyDefinition",
            "datetime": "#/components/schemas/v1DateTimePropertyDefinition",
            "decimal": "#/components/schemas/v1DecimalPropertyDefinition",
            "geopoint": "#/components/schemas/v1GeoPointPropertyDefinition",
            "humanname": "#/components/schemas/v1HumanNamePropertyDefinition",
            "identifier": "#/components/schemas/v1IdentifierPropertyDefinition",
            "instant": "#/components/schemas/v1InstantPropertyDefinition",
            "integer": "#/components/schemas/v1IntegerPropertyDefinition",
            "markdown": "#/components/schemas/v1MarkdownPropertyDefinition",
            "period": "#/components/schemas/v1PeriodPropertyDefinition",
            "reference": "#/components/schemas/v1ReferencePropertyDefinition",
            "symbol": "#/components/schemas/v1SymbolPropertyDefinition",
            "time": "#/components/schemas/v1TimePropertyDefinition",
            "uri": "#/components/schemas/v1UriPropertyDefinition",
            "url": "#/components/schemas/v1UrlPropertyDefinition",
            "xhtml": "#/components/schemas/v1XhtmlPropertyDefinition",
            "array": "#/components/schemas/v1ArrayPropertyDefinition",
            "object": "#/components/schemas/v1ObjectPropertyDefinition"
          }
        },
        "x-go-type": "apiv1.V1PropertyDefinition",
        "x-go-type-import": {
          "name": "apiv1",
          "path": "github.com/clinia/atlas/server/api/v1"
        }
      },
      "v1EnrichedPropertyDefinition": {
        "allOf": [
          {
            "$ref": "#/components/schemas/v1PropertyDefinition"
          },
          {
            "type": "object",
            "required": [
              "modelId"
            ],
            "properties": {
              "modelId": {
                "type": "string",
                "description": "ID of the model."
              }
            },
            "additionalProperties": false
          }
        ],
        "x-go-type": "apiv1.V1EnrichedPropertyDefinition",
        "x-go-type-import": {
          "name": "apiv1",
          "path": "github.com/clinia/atlas/server/api/v1"
        },
        "x-common-model": true
      },
      "v1BasePropertyDefinition": {
        "type": "object",
        "x-common-model": true,
        "required": [
          "type"
        ],
        "properties": {
          "type": {
            "$ref": "#/components/schemas/v1DataType"
          },
          "description": {
            "type": "string",
            "description": "Description of the property."
          },
          "rules": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/v1PropertyRule"
            }
          },
          "binding": {
            "$ref": "#/components/schemas/v1PropertyBinding"
          },
          "enrichedProperties": {
            "type": "object",
            "readOnly": true,
            "additionalProperties": {
              "$ref": "#/components/schemas/v1EnrichedPropertyDefinition"
            }
          }
        },
        "additionalProperties": false,
        "x-go-type": "apiv1.V1BasePropertyDefinition",
        "x-go-type-import": {
          "name": "apiv1",
          "path": "github.com/clinia/atlas/server/api/v1"
        }
      },
      "v1WellKnownObjectPropertyDefinitionRule": {
        "type": "object",
        "x-common-model": true,
        "properties": {
          "rules": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/v1PropertyRule"
            }
          },
          "properties": {
            "type": "object",
            "additionalProperties": {
              "$ref": "#/components/schemas/v1WellKnownObjectPropertyDefinitionRule"
            }
          },
          "items": {
            "$ref": "#/components/schemas/v1WellKnownObjectPropertyDefinitionRule"
          },
          "binding": {
            "$ref": "#/components/schemas/v1PropertyBinding"
          }
        },
        "additionalProperties": false,
        "x-go-type": "apiv1.V1WellKnownObjectPropertyDefinitionRule",
        "x-go-type-import": {
          "name": "apiv1",
          "path": "github.com/clinia/atlas/server/api/v1"
        }
      },
      "v1BaseWellKnownObjectPropertyDefinition": {
        "x-common-model": true,
        "allOf": [
          {
            "$ref": "#/components/schemas/v1BasePropertyDefinition"
          },
          {
            "type": "object",
            "properties": {
              "properties": {
                "type": "object",
                "additionalProperties": {
                  "$ref": "#/components/schemas/v1WellKnownObjectPropertyDefinitionRule"
                }
              }
            },
            "additionalProperties": false
          }
        ],
        "x-go-type": "apiv1.V1BaseWellKnownObjectPropertyDefinition",
        "x-go-type-import": {
          "name": "apiv1",
          "path": "github.com/clinia/atlas/server/api/v1"
        }
      },
      "v1AddressPropertyDefinition": {
        "x-common-model": true,
        "allOf": [
          {
            "$ref": "#/components/schemas/v1BaseWellKnownObjectPropertyDefinition"
          }
        ],
        "x-go-type": "apiv1.V1AddressPropertyDefinition",
        "x-go-type-import": {
          "name": "apiv1",
          "path": "github.com/clinia/atlas/server/api/v1"
        }
      },
      "v1AttachmentPropertyDefinition": {
        "x-common-model": true,
        "allOf": [
          {
            "$ref": "#/components/schemas/v1BaseWellKnownObjectPropertyDefinition"
          }
        ],
        "x-go-type": "apiv1.V1AttachmentPropertyDefinition",
        "x-go-type-import": {
          "name": "apiv1",
          "path": "github.com/clinia/atlas/server/api/v1"
        }
      },
      "v1BooleanPropertyDefinition": {
        "x-common-model": true,
        "allOf": [
          {
            "$ref": "#/components/schemas/v1BasePropertyDefinition"
          }
        ],
        "x-go-type": "apiv1.V1BooleanPropertyDefinition",
        "x-go-type-import": {
          "name": "apiv1",
          "path": "github.com/clinia/atlas/server/api/v1"
        }
      },
      "v1CodePropertyDefinition": {
        "x-common-model": true,
        "allOf": [
          {
            "$ref": "#/components/schemas/v1BasePropertyDefinition"
          }
        ],
        "x-go-type": "apiv1.V1CodePropertyDefinition",
        "x-go-type-import": {
          "name": "apiv1",
          "path": "github.com/clinia/atlas/server/api/v1"
        }
      },
      "v1CodingPropertyDefinition": {
        "x-common-model": true,
        "allOf": [
          {
            "$ref": "#/components/schemas/v1BaseWellKnownObjectPropertyDefinition"
          }
        ],
        "x-go-type": "apiv1.V1CodingPropertyDefinition",
        "x-go-type-import": {
          "name": "apiv1",
          "path": "github.com/clinia/atlas/server/api/v1"
        }
      },
      "v1ContactPointPropertyDefinition": {
        "x-common-model": true,
        "allOf": [
          {
            "$ref": "#/components/schemas/v1BaseWellKnownObjectPropertyDefinition"
          }
        ],
        "x-go-type": "apiv1.V1ContactPointPropertyDefinition",
        "x-go-type-import": {
          "name": "apiv1",
          "path": "github.com/clinia/atlas/server/api/v1"
        }
      },
      "v1DatePropertyDefinition": {
        "x-common-model": true,
        "allOf": [
          {
            "$ref": "#/components/schemas/v1BasePropertyDefinition"
          }
        ],
        "x-go-type": "apiv1.V1DatePropertyDefinition",
        "x-go-type-import": {
          "name": "apiv1",
          "path": "github.com/clinia/atlas/server/api/v1"
        }
      },
      "v1DateTimePropertyDefinition": {
        "x-common-model": true,
        "allOf": [
          {
            "$ref": "#/components/schemas/v1BasePropertyDefinition"
          }
        ],
        "x-go-type": "apiv1.V1DateTimePropertyDefinition",
        "x-go-type-import": {
          "name": "apiv1",
          "path": "github.com/clinia/atlas/server/api/v1"
        }
      },
      "v1DecimalPropertyDefinition": {
        "x-common-model": true,
        "allOf": [
          {
            "$ref": "#/components/schemas/v1BasePropertyDefinition"
          }
        ],
        "x-go-type": "apiv1.V1DecimalPropertyDefinition",
        "x-go-type-import": {
          "name": "apiv1",
          "path": "github.com/clinia/atlas/server/api/v1"
        }
      },
      "v1GeoPointPropertyDefinition": {
        "x-common-model": true,
        "allOf": [
          {
            "$ref": "#/components/schemas/v1BasePropertyDefinition"
          }
        ],
        "x-go-type": "apiv1.V1GeoPointPropertyDefinition",
        "x-go-type-import": {
          "name": "apiv1",
          "path": "github.com/clinia/atlas/server/api/v1"
        }
      },
      "v1HumanNamePropertyDefinition": {
        "x-common-model": true,
        "allOf": [
          {
            "$ref": "#/components/schemas/v1BaseWellKnownObjectPropertyDefinition"
          }
        ],
        "x-go-type": "apiv1.V1HumanNamePropertyDefinition",
        "x-go-type-import": {
          "name": "apiv1",
          "path": "github.com/clinia/atlas/server/api/v1"
        }
      },
      "v1IdentifierPropertyDefinition": {
        "x-common-model": true,
        "allOf": [
          {
            "$ref": "#/components/schemas/v1BaseWellKnownObjectPropertyDefinition"
          }
        ],
        "x-go-type": "apiv1.V1IdentifierPropertyDefinition",
        "x-go-type-import": {
          "name": "apiv1",
          "path": "github.com/clinia/atlas/server/api/v1"
        }
      },
      "v1InstantPropertyDefinition": {
        "x-common-model": true,
        "allOf": [
          {
            "$ref": "#/components/schemas/v1BasePropertyDefinition"
          }
        ],
        "x-go-type": "apiv1.V1InstantPropertyDefinition",
        "x-go-type-import": {
          "name": "apiv1",
          "path": "github.com/clinia/atlas/server/api/v1"
        }
      },
      "v1IntegerPropertyDefinition": {
        "x-common-model": true,
        "allOf": [
          {
            "$ref": "#/components/schemas/v1BasePropertyDefinition"
          }
        ],
        "x-go-type": "apiv1.V1IntegerPropertyDefinition",
        "x-go-type-import": {
          "name": "apiv1",
          "path": "github.com/clinia/atlas/server/api/v1"
        }
      },
      "v1MarkdownPropertyDefinition": {
        "x-common-model": true,
        "allOf": [
          {
            "$ref": "#/components/schemas/v1BasePropertyDefinition"
          }
        ],
        "x-go-type": "apiv1.V1MarkdownPropertyDefinition",
        "x-go-type-import": {
          "name": "apiv1",
          "path": "github.com/clinia/atlas/server/api/v1"
        }
      },
      "v1PeriodPropertyDefinition": {
        "x-common-model": true,
        "allOf": [
          {
            "$ref": "#/components/schemas/v1BaseWellKnownObjectPropertyDefinition"
          }
        ],
        "x-go-type": "apiv1.V1PeriodPropertyDefinition",
        "x-go-type-import": {
          "name": "apiv1",
          "path": "github.com/clinia/atlas/server/api/v1"
        }
      },
      "v1ReferencePropertyDefinition": {
        "x-common-model": true,
        "allOf": [
          {
            "$ref": "#/components/schemas/v1BaseWellKnownObjectPropertyDefinition"
          }
        ],
        "x-go-type": "apiv1.V1ReferencePropertyDefinition",
        "x-go-type-import": {
          "name": "apiv1",
          "path": "github.com/clinia/atlas/server/api/v1"
        }
      },
      "v1SymbolPropertyDefinition": {
        "x-common-model": true,
        "allOf": [
          {
            "$ref": "#/components/schemas/v1BasePropertyDefinition"
          }
        ],
        "x-go-type": "apiv1.V1SymbolPropertyDefinition",
        "x-go-type-import": {
          "name": "apiv1",
          "path": "github.com/clinia/atlas/server/api/v1"
        }
      },
      "v1TimePropertyDefinition": {
        "x-common-model": true,
        "allOf": [
          {
            "$ref": "#/components/schemas/v1BasePropertyDefinition"
          }
        ],
        "x-go-type": "apiv1.V1TimePropertyDefinition",
        "x-go-type-import": {
          "name": "apiv1",
          "path": "github.com/clinia/atlas/server/api/v1"
        }
      },
      "v1UriPropertyDefinition": {
        "x-common-model": true,
        "allOf": [
          {
            "$ref": "#/components/schemas/v1BasePropertyDefinition"
          }
        ],
        "x-go-type": "apiv1.V1UriPropertyDefinition",
        "x-go-type-import": {
          "name": "apiv1",
          "path": "github.com/clinia/atlas/server/api/v1"
        }
      },
      "v1UrlPropertyDefinition": {
        "x-common-model": true,
        "allOf": [
          {
            "$ref": "#/components/schemas/v1BasePropertyDefinition"
          }
        ],
        "x-go-type": "apiv1.V1UrlPropertyDefinition",
        "x-go-type-import": {
          "name": "apiv1",
          "path": "github.com/clinia/atlas/server/api/v1"
        }
      },
      "v1XhtmlPropertyDefinition": {
        "x-common-model": true,
        "allOf": [
          {
            "$ref": "#/components/schemas/v1BasePropertyDefinition"
          }
        ],
        "x-go-type": "apiv1.V1XhtmlPropertyDefinition",
        "x-go-type-import": {
          "name": "apiv1",
          "path": "github.com/clinia/atlas/server/api/v1"
        }
      },
      "v1ArrayPropertyDefinition": {
        "x-common-model": true,
        "allOf": [
          {
            "$ref": "#/components/schemas/v1BasePropertyDefinition"
          },
          {
            "type": "object",
            "required": [
              "items"
            ],
            "properties": {
              "items": {
                "$ref": "#/components/schemas/v1PropertyDefinition"
              }
            }
          }
        ],
        "x-go-type": "apiv1.V1ArrayPropertyDefinition",
        "x-go-type-import": {
          "name": "apiv1",
          "path": "github.com/clinia/atlas/server/api/v1"
        }
      },
      "v1ObjectPropertyDefinition": {
        "x-common-model": true,
        "allOf": [
          {
            "$ref": "#/components/schemas/v1BasePropertyDefinition"
          },
          {
            "type": "object",
            "required": [
              "properties"
            ],
            "properties": {
              "properties": {
                "type": "object",
                "additionalProperties": {
                  "$ref": "#/components/schemas/v1PropertyDefinition"
                }
              }
            },
            "additionalProperties": false
          }
        ],
        "x-go-type": "apiv1.V1ObjectPropertyDefinition",
        "x-go-type-import": {
          "name": "apiv1",
          "path": "github.com/clinia/atlas/server/api/v1"
        }
      },
      "v1ProfileType": {
        "type": "string",
        "enum": [
          "ROOT",
          "CONTAINED"
        ]
      },
      "v1Cardinality": {
        "type": "string",
        "x-common-model": true,
        "default": "0:*",
        "enum": [
          "0:*",
          "0:1",
          "1:1",
          "1:*"
        ],
        "x-enum-varnames": [
          "ZERO_TO_MANY",
          "ZERO_TO_ONE",
          "ONE_TO_ONE",
          "ONE_TO_MANY"
        ],
        "x-go-type": "apiv1.V1Cardinality",
        "x-go-type-import": {
          "name": "apiv1",
          "path": "github.com/clinia/atlas/server/api/v1"
        }
      },
      "v1ContainedDefinition": {
        "type": "object",
        "required": [
          "profileKey"
        ],
        "properties": {
          "description": {
            "type": "string",
            "description": "Description of the contained definition respective to the profile."
          },
          "profileKey": {
            "type": "string"
          },
          "cardinality": {
            "$ref": "#/components/schemas/v1Cardinality"
          },
          "depth": {
            "type": "integer"
          }
        },
        "additionalProperties": false
      },
      "v1Profile": {
        "type": "object",
        "required": [
          "key",
          "type",
          "properties"
        ],
        "properties": {
          "key": {
            "type": "string",
            "readOnly": true
          },
          "type": {
            "$ref": "#/components/schemas/v1ProfileType"
          },
          "description": {
            "type": "string",
            "description": "Description of the profile."
          },
          "properties": {
            "type": "object",
            "additionalProperties": {
              "$ref": "#/components/schemas/v1PropertyDefinition"
            }
          },
          "contained": {
            "type": "object",
            "additionalProperties": {
              "$ref": "#/components/schemas/v1ContainedDefinition"
            }
          }
        },
        "additionalProperties": false
      }
    },
    "responses": {
      "v1PayloadTooLargeError": {
        "x-common-model": true,
        "description": "Returned when the payload exceeds the max content size (100kB).",
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/v1Error"
            }
          }
        }
      }
    }
  }
}
```