{
    "schemes": [],
    "swagger": "2.0",
    "info": {
        "description": "This service manages Audiences",
        "title": "AudienceService",
        "contact": {},
        "version": "1.0"
    },
    "host": "",
    "basePath": "",
    "paths": {
        "/v1/workspaces/{workspaceId}/limits/target-audiences": {
            "get": {
                "description": "Retrieves target audience limits",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "TargetAudienceLimit"
                ],
                "summary": "Get target audience limits",
                "parameters": [
                    {
                        "type": "string",
                        "description": "Workspace ID",
                        "name": "workspaceId",
                        "in": "path",
                        "required": true
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/model.LimitResponse"
                        }
                    },
                    "400": {
                        "description": "Bad Request",
                        "schema": {
                            "$ref": "#/definitions/gin.H"
                        }
                    },
                    "404": {
                        "description": "Not Found",
                        "schema": {
                            "$ref": "#/definitions/gin.H"
                        }
                    },
                    "500": {
                        "description": "Internal Server Error",
                        "schema": {
                            "$ref": "#/definitions/gin.H"
                        }
                    }
                }
            }
        },
        "/v1/workspaces/{workspaceId}/target-audiences": {
            "get": {
                "security": [
                    {
                        "ApiTokenAuth": []
                    }
                ],
                "description": "List all target audiences that the user has access to",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "TargetAudience"
                ],
                "summary": "List target audiences",
                "parameters": [
                    {
                        "type": "string",
                        "description": "Workspace ID",
                        "name": "workspaceId",
                        "in": "path",
                        "required": true
                    },
                    {
                        "type": "integer",
                        "description": "page number",
                        "name": "page",
                        "in": "query"
                    },
                    {
                        "type": "integer",
                        "description": "page size",
                        "name": "size",
                        "in": "query"
                    },
                    {
                        "type": "string",
                        "description": "find audience by name",
                        "name": "search",
                        "in": "query"
                    },
                    {
                        "type": "string",
                        "description": "filter audience by country",
                        "name": "country",
                        "in": "query"
                    },
                    {
                        "type": "string",
                        "description": "filter audience by native language",
                        "name": "nativeLanguage",
                        "in": "query"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/target_audience.TargetAudiencePage"
                        }
                    },
                    "500": {
                        "description": "Internal Server Error",
                        "schema": {
                            "$ref": "#/definitions/gin.H"
                        }
                    }
                }
            },
            "post": {
                "description": "Creates a new target audience for the specified workspace",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "TargetAudience"
                ],
                "summary": "Create a new target audience",
                "parameters": [
                    {
                        "type": "string",
                        "description": "Workspace ID",
                        "name": "workspaceId",
                        "in": "path",
                        "required": true
                    },
                    {
                        "description": "Target audience details",
                        "name": "request",
                        "in": "body",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/model.TargetAudienceUpdatable"
                        }
                    }
                ],
                "responses": {
                    "201": {
                        "description": "Created",
                        "schema": {
                            "$ref": "#/definitions/model.TargetAudience"
                        }
                    },
                    "400": {
                        "description": "Bad Request",
                        "schema": {
                            "$ref": "#/definitions/gin.H"
                        }
                    },
                    "403": {
                        "description": "Forbidden",
                        "schema": {
                            "$ref": "#/definitions/gin.H"
                        }
                    },
                    "500": {
                        "description": "Internal Server Error",
                        "schema": {
                            "$ref": "#/definitions/gin.H"
                        }
                    }
                }
            }
        },
        "/v1/workspaces/{workspaceId}/target-audiences-url-imports": {
            "post": {
                "security": [
                    {
                        "Authorization": []
                    },
                    {
                        "GatewayAuthorization": []
                    }
                ],
                "description": "Parses content from URLs and returns a prepared create command for a target audience",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "TargetAudienceImport"
                ],
                "summary": "Import a target audience from URLs",
                "parameters": [
                    {
                        "type": "string",
                        "description": "Workspace ID",
                        "name": "workspaceId",
                        "in": "path",
                        "required": true
                    },
                    {
                        "description": "Import request",
                        "name": "request",
                        "in": "body",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/target_audience_url_import.URLImportRequest"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/model.TargetAudienceUpdatable"
                        }
                    },
                    "400": {
                        "description": "Bad Request",
                        "schema": {
                            "$ref": "#/definitions/gin.H"
                        }
                    },
                    "403": {
                        "description": "Forbidden",
                        "schema": {
                            "$ref": "#/definitions/gin.H"
                        }
                    },
                    "500": {
                        "description": "Internal Server Error",
                        "schema": {
                            "$ref": "#/definitions/gin.H"
                        }
                    }
                }
            }
        },
        "/v1/workspaces/{workspaceId}/target-audiences/{targetAudienceId}": {
            "get": {
                "description": "Retrieves a target audience by its ID",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "TargetAudience"
                ],
                "summary": "Get a target audience by ID",
                "parameters": [
                    {
                        "type": "string",
                        "description": "Workspace ID",
                        "name": "workspaceId",
                        "in": "path",
                        "required": true
                    },
                    {
                        "type": "string",
                        "description": "Target Audience ID",
                        "name": "targetAudienceId",
                        "in": "path",
                        "required": true
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/model.TargetAudience"
                        }
                    },
                    "400": {
                        "description": "Bad Request",
                        "schema": {
                            "$ref": "#/definitions/gin.H"
                        }
                    },
                    "404": {
                        "description": "Not Found",
                        "schema": {
                            "$ref": "#/definitions/gin.H"
                        }
                    },
                    "500": {
                        "description": "Internal Server Error",
                        "schema": {
                            "$ref": "#/definitions/gin.H"
                        }
                    }
                }
            },
            "put": {
                "description": "Updates an existing target audience",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "TargetAudience"
                ],
                "summary": "Update a target audience",
                "parameters": [
                    {
                        "type": "string",
                        "description": "Workspace ID",
                        "name": "workspaceId",
                        "in": "path",
                        "required": true
                    },
                    {
                        "type": "string",
                        "description": "Target Audience ID",
                        "name": "targetAudienceId",
                        "in": "path",
                        "required": true
                    },
                    {
                        "description": "Target audience details",
                        "name": "request",
                        "in": "body",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/model.TargetAudienceUpdatable"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/model.TargetAudience"
                        }
                    },
                    "400": {
                        "description": "Bad Request",
                        "schema": {
                            "$ref": "#/definitions/gin.H"
                        }
                    },
                    "403": {
                        "description": "Forbidden",
                        "schema": {
                            "$ref": "#/definitions/gin.H"
                        }
                    },
                    "404": {
                        "description": "Not Found",
                        "schema": {
                            "$ref": "#/definitions/gin.H"
                        }
                    },
                    "500": {
                        "description": "Internal Server Error",
                        "schema": {
                            "$ref": "#/definitions/gin.H"
                        }
                    }
                }
            },
            "delete": {
                "description": "Deletes an existing target audience",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "TargetAudience"
                ],
                "summary": "Delete a target audience",
                "parameters": [
                    {
                        "type": "string",
                        "description": "Workspace ID",
                        "name": "workspaceId",
                        "in": "path",
                        "required": true
                    },
                    {
                        "type": "string",
                        "description": "Target Audience ID",
                        "name": "targetAudienceId",
                        "in": "path",
                        "required": true
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    },
                    "400": {
                        "description": "Bad Request",
                        "schema": {
                            "$ref": "#/definitions/gin.H"
                        }
                    },
                    "403": {
                        "description": "Forbidden",
                        "schema": {
                            "$ref": "#/definitions/gin.H"
                        }
                    },
                    "404": {
                        "description": "Not Found",
                        "schema": {
                            "$ref": "#/definitions/gin.H"
                        }
                    },
                    "500": {
                        "description": "Internal Server Error",
                        "schema": {
                            "$ref": "#/definitions/gin.H"
                        }
                    }
                }
            }
        },
        "/v1/workspaces/{workspaceId}/target-audiences/{targetAudienceId}/duplication": {
            "post": {
                "security": [
                    {
                        "ApiTokenAuth": []
                    }
                ],
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "TargetAudienceDuplication"
                ],
                "parameters": [
                    {
                        "type": "string",
                        "description": "Workspace ID",
                        "name": "workspaceId",
                        "in": "path",
                        "required": true
                    },
                    {
                        "type": "string",
                        "description": "Target Audience ID",
                        "name": "targetAudienceId",
                        "in": "path",
                        "required": true
                    },
                    {
                        "description": " ",
                        "name": "request",
                        "in": "body",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/target_audience_duplication.TargetAudienceDuplicationCreatable"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/target_audience_duplication.TargetAudienceDuplication"
                        }
                    },
                    "400": {
                        "description": "Bad Request",
                        "schema": {
                            "$ref": "#/definitions/gin.H"
                        }
                    },
                    "403": {
                        "description": "Forbidden",
                        "schema": {
                            "$ref": "#/definitions/gin.H"
                        }
                    },
                    "404": {
                        "description": "Not Found",
                        "schema": {
                            "$ref": "#/definitions/gin.H"
                        }
                    },
                    "500": {
                        "description": "Internal Server Error",
                        "schema": {
                            "$ref": "#/definitions/gin.H"
                        }
                    }
                }
            }
        },
        "/v1/workspaces/{workspaceId}/target-audiences/{targetAudienceId}/image": {
            "get": {
                "security": [
                    {
                        "ApiTokenAuth": []
                    }
                ],
                "description": "Returns a signed URL for the target audience image",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "TargetAudienceImage"
                ],
                "summary": "Get a target audience image",
                "parameters": [
                    {
                        "type": "string",
                        "description": "Target Audience ID",
                        "name": "targetAudienceId",
                        "in": "path",
                        "required": true
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/model.TargetAudienceImage"
                        }
                    },
                    "400": {
                        "description": "Bad Request",
                        "schema": {
                            "$ref": "#/definitions/gin.H"
                        }
                    },
                    "403": {
                        "description": "Forbidden",
                        "schema": {
                            "$ref": "#/definitions/gin.H"
                        }
                    },
                    "404": {
                        "description": "Not Found",
                        "schema": {
                            "$ref": "#/definitions/gin.H"
                        }
                    },
                    "500": {
                        "description": "Internal Server Error",
                        "schema": {
                            "$ref": "#/definitions/gin.H"
                        }
                    }
                }
            },
            "put": {
                "security": [
                    {
                        "ApiTokenAuth": []
                    }
                ],
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "TargetAudienceImage"
                ],
                "summary": "Update the icon of a target audience",
                "parameters": [
                    {
                        "type": "string",
                        "description": "Workspace ID",
                        "name": "workspaceId",
                        "in": "path",
                        "required": true
                    },
                    {
                        "type": "string",
                        "description": "Target Audience ID",
                        "name": "targetAudienceId",
                        "in": "path",
                        "required": true
                    },
                    {
                        "description": "Base64 update request",
                        "name": "request",
                        "in": "body",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/target_audience_image.ImageUpdateRequest"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/model.TargetAudienceImage"
                        }
                    },
                    "400": {
                        "description": "Bad Request",
                        "schema": {
                            "$ref": "#/definitions/gin.H"
                        }
                    },
                    "403": {
                        "description": "Forbidden",
                        "schema": {
                            "$ref": "#/definitions/gin.H"
                        }
                    },
                    "404": {
                        "description": "Not Found",
                        "schema": {
                            "$ref": "#/definitions/gin.H"
                        }
                    },
                    "500": {
                        "description": "Internal Server Error",
                        "schema": {
                            "$ref": "#/definitions/gin.H"
                        }
                    }
                }
            },
            "delete": {
                "security": [
                    {
                        "ApiTokenAuth": []
                    }
                ],
                "description": "Deletes an existing image for a target audience",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "TargetAudienceImage"
                ],
                "summary": "Delete a target audience image",
                "parameters": [
                    {
                        "type": "string",
                        "description": "Target Audience ID",
                        "name": "targetAudienceId",
                        "in": "path",
                        "required": true
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    },
                    "400": {
                        "description": "Bad Request",
                        "schema": {
                            "$ref": "#/definitions/gin.H"
                        }
                    },
                    "403": {
                        "description": "Forbidden",
                        "schema": {
                            "$ref": "#/definitions/gin.H"
                        }
                    },
                    "404": {
                        "description": "Not Found",
                        "schema": {
                            "$ref": "#/definitions/gin.H"
                        }
                    },
                    "500": {
                        "description": "Internal Server Error",
                        "schema": {
                            "$ref": "#/definitions/gin.H"
                        }
                    }
                }
            }
        },
        "/v1/workspaces/{workspaceId}/target-audiences/{targetAudienceId}/usage": {
            "put": {
                "description": "Create a documented usage of a target audience.",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "TargetAudienceUsage"
                ],
                "summary": "Creates a usage of target audience",
                "parameters": [
                    {
                        "type": "string",
                        "default": "27b01216-dc39-4cf4-9681-18443a6ea78e",
                        "description": "Workspace ID (uuid4)",
                        "name": "workspaceId",
                        "in": "path",
                        "required": true
                    },
                    {
                        "type": "string",
                        "description": "Target Audience ID",
                        "name": "targetAudienceId",
                        "in": "path",
                        "required": true
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    },
                    "400": {
                        "description": "Bad Request",
                        "schema": {
                            "$ref": "#/definitions/gin.H"
                        }
                    },
                    "403": {
                        "description": "Forbidden",
                        "schema": {
                            "$ref": "#/definitions/gin.H"
                        }
                    },
                    "404": {
                        "description": "Not Found",
                        "schema": {
                            "$ref": "#/definitions/gin.H"
                        }
                    },
                    "500": {
                        "description": "Internal Server Error",
                        "schema": {
                            "$ref": "#/definitions/gin.H"
                        }
                    }
                }
            }
        }
    },
    "definitions": {
        "gin.H": {
            "type": "object",
            "additionalProperties": {}
        },
        "model.GenderDistribution": {
            "type": "object",
            "required": [
                "female",
                "male",
                "nonBinary",
                "preferNotToSay"
            ],
            "properties": {
                "female": {
                    "type": "number",
                    "maximum": 1,
                    "minimum": 0,
                    "example": 0.5
                },
                "male": {
                    "type": "number",
                    "maximum": 1,
                    "minimum": 0,
                    "example": 0.5
                },
                "nonBinary": {
                    "type": "number",
                    "maximum": 1,
                    "minimum": 0,
                    "example": 0.5
                },
                "preferNotToSay": {
                    "type": "number",
                    "maximum": 1,
                    "minimum": 0,
                    "example": 0.5
                }
            }
        },
        "model.LimitConfiguration": {
            "type": "object",
            "required": [
                "isAvailable",
                "isUnlimited",
                "limit",
                "usage"
            ],
            "properties": {
                "isAvailable": {
                    "type": "boolean"
                },
                "isUnlimited": {
                    "type": "boolean"
                },
                "limit": {
                    "type": "integer"
                },
                "usage": {
                    "type": "integer"
                }
            }
        },
        "model.LimitResponse": {
            "type": "object",
            "required": [
                "create"
            ],
            "properties": {
                "create": {
                    "$ref": "#/definitions/model.LimitConfiguration"
                }
            }
        },
        "model.Permission": {
            "type": "object",
            "required": [
                "canDelete",
                "canDuplicate",
                "canUpdate",
                "canView"
            ],
            "properties": {
                "canDelete": {
                    "type": "boolean",
                    "example": false
                },
                "canDuplicate": {
                    "type": "boolean",
                    "example": false
                },
                "canUpdate": {
                    "type": "boolean",
                    "example": false
                },
                "canView": {
                    "type": "boolean",
                    "example": false
                }
            }
        },
        "model.TargetAudience": {
            "description": "A target audience is a group of people that share common properties and content can be targeted towards them",
            "type": "object",
            "required": [
                "_embedded",
                "createdAt",
                "createdByUserId",
                "genderDistribution",
                "id",
                "interests",
                "maxAge",
                "minAge",
                "name",
                "needs",
                "ownerCustomerId",
                "painPoints",
                "residence",
                "updatedAt",
                "viewedAt",
                "workspaceId"
            ],
            "properties": {
                "_embedded": {
                    "$ref": "#/definitions/model.TargetAudienceEmbedded"
                },
                "additionalInformation": {
                    "type": "string",
                    "example": "This audience prefers short-form video content"
                },
                "country": {
                    "type": "string",
                    "maxLength": 100,
                    "minLength": 2,
                    "example": "US"
                },
                "createdAt": {
                    "type": "string",
                    "example": "2025-01-14T16:20:59Z"
                },
                "createdByUserId": {
                    "type": "string",
                    "example": "b0920767-2e30-48d3-80ce-268810bc433a"
                },
                "genderDistribution": {
                    "$ref": "#/definitions/model.GenderDistribution"
                },
                "id": {
                    "type": "string",
                    "example": "113c0b32-ed6c-4421-b7da-d1faf238eb56"
                },
                "interests": {
                    "description": "A list of strings stored in the database as JSON",
                    "type": "array",
                    "maxItems": 15,
                    "minItems": 1,
                    "items": {
                        "type": "string"
                    }
                },
                "maxAge": {
                    "type": "integer",
                    "maximum": 200,
                    "minimum": 0,
                    "example": 65
                },
                "minAge": {
                    "description": "We store age range as separate min/max fields in the database",
                    "type": "integer",
                    "maximum": 200,
                    "minimum": 0,
                    "example": 18
                },
                "name": {
                    "type": "string",
                    "maxLength": 100,
                    "minLength": 3,
                    "example": "Young urban professionals"
                },
                "nativeLanguage": {
                    "type": "string",
                    "maxLength": 100,
                    "minLength": 2,
                    "example": "de"
                },
                "needs": {
                    "description": "A list of strings stored in the database as JSON",
                    "type": "array",
                    "maxItems": 15,
                    "minItems": 1,
                    "items": {
                        "type": "string"
                    }
                },
                "ownerCustomerId": {
                    "type": "integer",
                    "example": 12345
                },
                "painPoints": {
                    "description": "A list of strings stored in the database as JSON",
                    "type": "array",
                    "maxItems": 15,
                    "minItems": 1,
                    "items": {
                        "type": "string"
                    }
                },
                "residence": {
                    "type": "string",
                    "maxLength": 50,
                    "minLength": 2,
                    "example": "Berlin"
                },
                "updatedAt": {
                    "type": "string",
                    "example": "2025-01-14T16:20:59Z"
                },
                "viewedAt": {
                    "type": "string",
                    "example": "2025-01-14T16:20:59Z"
                },
                "workspaceId": {
                    "type": "string",
                    "example": "113c0b32-ed6c-4421-b7da-d1faf238eb56"
                }
            }
        },
        "model.TargetAudienceEmbedded": {
            "type": "object",
            "required": [
                "image",
                "permissions"
            ],
            "properties": {
                "image": {
                    "$ref": "#/definitions/model.TargetAudienceImage"
                },
                "permissions": {
                    "$ref": "#/definitions/model.Permission"
                }
            }
        },
        "model.TargetAudienceImage": {
            "description": "An image associated with a target audience",
            "type": "object",
            "required": [
                "createdAt",
                "createdByUserId",
                "fileName",
                "id",
                "targetAudienceId",
                "updatedAt",
                "url"
            ],
            "properties": {
                "createdAt": {
                    "type": "string",
                    "example": "2025-01-14T16:20:59Z"
                },
                "createdByUserId": {
                    "type": "string",
                    "example": "b0920767-2e30-48d3-80ce-268810bc433a"
                },
                "fileName": {
                    "description": "FileName is used to generate a storage key which ends with the file name on duplication as well",
                    "type": "string"
                },
                "id": {
                    "type": "string",
                    "example": "113c0b32-ed6c-4421-b7da-d1faf238eb56"
                },
                "targetAudienceId": {
                    "type": "string"
                },
                "updatedAt": {
                    "type": "string",
                    "example": "2025-01-14T16:20:59Z"
                },
                "url": {
                    "type": "string",
                    "example": "https://storage.googleapis.com/audience-images/113c0b32-ed6c-4421-b7da-d1faf238eb56.jpg"
                }
            }
        },
        "model.TargetAudienceUpdatable": {
            "type": "object",
            "required": [
                "genderDistribution",
                "interests",
                "maxAge",
                "minAge",
                "name",
                "needs",
                "painPoints",
                "residence"
            ],
            "properties": {
                "additionalInformation": {
                    "type": "string",
                    "example": "This audience prefers short-form video content"
                },
                "country": {
                    "type": "string",
                    "maxLength": 100,
                    "minLength": 2,
                    "example": "US"
                },
                "genderDistribution": {
                    "$ref": "#/definitions/model.GenderDistribution"
                },
                "interests": {
                    "description": "A list of strings stored in the database as JSON",
                    "type": "array",
                    "maxItems": 15,
                    "minItems": 1,
                    "items": {
                        "type": "string"
                    }
                },
                "maxAge": {
                    "type": "integer",
                    "maximum": 200,
                    "minimum": 0,
                    "example": 65
                },
                "minAge": {
                    "description": "We store age range as separate min/max fields in the database",
                    "type": "integer",
                    "maximum": 200,
                    "minimum": 0,
                    "example": 18
                },
                "name": {
                    "type": "string",
                    "maxLength": 100,
                    "minLength": 3,
                    "example": "Young urban professionals"
                },
                "nativeLanguage": {
                    "type": "string",
                    "maxLength": 100,
                    "minLength": 2,
                    "example": "de"
                },
                "needs": {
                    "description": "A list of strings stored in the database as JSON",
                    "type": "array",
                    "maxItems": 15,
                    "minItems": 1,
                    "items": {
                        "type": "string"
                    }
                },
                "painPoints": {
                    "description": "A list of strings stored in the database as JSON",
                    "type": "array",
                    "maxItems": 15,
                    "minItems": 1,
                    "items": {
                        "type": "string"
                    }
                },
                "residence": {
                    "type": "string",
                    "maxLength": 50,
                    "minLength": 2,
                    "example": "Berlin"
                }
            }
        },
        "nfpage.Page": {
            "type": "object",
            "required": [
                "currentPage",
                "size",
                "totalElements",
                "totalPages"
            ],
            "properties": {
                "currentPage": {
                    "type": "integer",
                    "example": 2
                },
                "size": {
                    "type": "integer",
                    "example": 10
                },
                "totalElements": {
                    "type": "integer",
                    "example": 35
                },
                "totalPages": {
                    "type": "integer",
                    "example": 4
                }
            }
        },
        "target_audience.TargetAudiencePage": {
            "type": "object",
            "required": [
                "data",
                "page"
            ],
            "properties": {
                "data": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/model.TargetAudience"
                    }
                },
                "page": {
                    "$ref": "#/definitions/nfpage.Page"
                }
            }
        },
        "target_audience_duplication.TargetAudienceDuplication": {
            "type": "object",
            "required": [
                "duplicate",
                "original"
            ],
            "properties": {
                "duplicate": {
                    "$ref": "#/definitions/model.TargetAudience"
                },
                "original": {
                    "$ref": "#/definitions/model.TargetAudience"
                }
            }
        },
        "target_audience_duplication.TargetAudienceDuplicationCreatable": {
            "type": "object",
            "properties": {
                "newName": {
                    "type": "string",
                    "maxLength": 100,
                    "minLength": 3
                }
            }
        },
        "target_audience_image.ImageUpdateRequest": {
            "type": "object",
            "required": [
                "base64",
                "contentType",
                "fileName"
            ],
            "properties": {
                "base64": {
                    "type": "string",
                    "example": "iVBORw0KGgoAAAANSUhEUgAAAAMAAAAECAIAAADETxJQAAAAC..."
                },
                "contentType": {
                    "type": "string",
                    "example": "image/jpeg"
                },
                "fileName": {
                    "type": "string",
                    "example": "sunset.png"
                }
            }
        },
        "target_audience_url_import.URLImportRequest": {
            "type": "object",
            "required": [
                "audienceModelId",
                "urls"
            ],
            "properties": {
                "audienceModelId": {
                    "type": "string",
                    "default": "538b1efc6f88ad88feebf7acd8c618facb54fe82"
                },
                "urls": {
                    "description": "A list of strings",
                    "type": "array",
                    "maxItems": 10,
                    "minItems": 1,
                    "items": {
                        "type": "string"
                    },
                    "example": [
                        "https://example.com/audience-description",
                        "https://example.com/audience-description-2"
                    ]
                }
            }
        }
    },
    "securityDefinitions": {
        "Authorization": {
            "type": "apiKey",
            "name": "Authorization",
            "in": "header"
        },
        "GatewayAuthorization": {
            "type": "apiKey",
            "name": "x-gateway-token",
            "in": "header"
        }
    }
}