PhotographySiteDto
| Field | Required | Description |
|---|---|---|
revision | Yes | string |
site | Yes | object |
url | No | string |
Complete definition
required lists fields that must be present. nullable allows a null value; it does not make the field optional. Response enums retain exact wire values for compatibility.
{
"properties": {
"revision": {
"format": "uuid",
"nullable": true,
"pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$",
"type": "string"
},
"site": {
"additionalProperties": false,
"properties": {
"about": {
"maxLength": 10000,
"type": "string"
},
"contact": {
"maxLength": 5000,
"type": "string"
},
"enabled": {
"type": "boolean"
},
"portfolio": {
"items": {
"additionalProperties": false,
"properties": {
"captureId": {
"format": "uuid",
"pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-4[0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12})$",
"type": "string"
},
"consent": {
"enum": [
true
],
"type": "boolean"
},
"shootId": {
"format": "uuid",
"pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-4[0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12})$",
"type": "string"
}
},
"required": [
"shootId",
"captureId",
"consent"
],
"type": "object"
},
"maxItems": 200,
"type": "array"
},
"presentation": {
"additionalProperties": false,
"default": {
"font": "editorial",
"layout": "editorial",
"palette": "studio",
"spacing": "comfortable"
},
"properties": {
"font": {
"enum": [
"editorial",
"modern",
"script"
],
"type": "string"
},
"layout": {
"enum": [
"editorial",
"grid",
"slideshow"
],
"type": "string"
},
"palette": {
"enum": [
"studio",
"ivory",
"charcoal"
],
"type": "string"
},
"spacing": {
"enum": [
"compact",
"comfortable",
"airy"
],
"type": "string"
}
},
"required": [
"layout",
"spacing",
"font",
"palette"
],
"type": "object"
},
"services": {
"maxLength": 10000,
"type": "string"
},
"title": {
"maxLength": 200,
"minLength": 1,
"type": "string"
}
},
"required": [
"enabled",
"title",
"about",
"services",
"contact",
"portfolio"
],
"type": "object"
},
"url": {
"type": "string"
}
},
"required": [
"revision",
"site"
],
"type": "object"
}© 2026 Frameleaf Inc. All rights reserved.
Frameleaf and the Frameleaf logo are Trademarks of Frameleaf Inc.