{ "openapi": "3.0.0", "paths": { "/v1/asset/upload": { "put": { "operationId": "AssetControllerV1_assetUpload", "summary": "Upload asset files", "parameters": [], "requestBody": { "required": true, "description": "Asset files", "content": { "multipart/form-data": { "schema": { "$ref": "#/components/schemas/FilesUploadDto" } } } }, "responses": { "2XX": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/UploadResponseDto" } } } } }, "tags": [ "v1/asset" ] } }, "/v1/content/{userDsnpId}/broadcast": { "post": { "operationId": "ContentControllerV1_broadcast", "summary": "Create DSNP Broadcast for user", "parameters": [ { "name": "userDsnpId", "required": true, "in": "path", "schema": { "type": "string" } } ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/BroadcastDto" } } } }, "responses": { "2XX": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/AnnouncementResponseDto" } } } } }, "tags": [ "v1/content" ] } }, "/v1/content/{userDsnpId}/reply": { "post": { "operationId": "ContentControllerV1_reply", "summary": "Create DSNP Reply for user", "parameters": [ { "name": "userDsnpId", "required": true, "in": "path", "schema": { "type": "string" } } ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ReplyDto" } } } }, "responses": { "2XX": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/AnnouncementResponseDto" } } } } }, "tags": [ "v1/content" ] } }, "/v1/content/{userDsnpId}/reaction": { "post": { "operationId": "ContentControllerV1_reaction", "summary": "Create DSNP Reaction for user", "parameters": [ { "name": "userDsnpId", "required": true, "in": "path", "schema": { "type": "string" } } ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ReactionDto" } } } }, "responses": { "2XX": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/AnnouncementResponseDto" } } } } }, "tags": [ "v1/content" ] } }, "/v1/content/{userDsnpId}": { "put": { "operationId": "ContentControllerV1_update", "summary": "Update DSNP Content for user", "parameters": [ { "name": "userDsnpId", "required": true, "in": "path", "schema": { "type": "string" } } ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/UpdateDto" } } } }, "responses": { "2XX": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/AnnouncementResponseDto" } } } } }, "tags": [ "v1/content" ] }, "delete": { "operationId": "ContentControllerV1_delete", "summary": "Delete DSNP Content for user", "parameters": [ { "name": "userDsnpId", "required": true, "in": "path", "schema": { "type": "string" } } ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/TombstoneDto" } } } }, "responses": { "2XX": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/AnnouncementResponseDto" } } } } }, "tags": [ "v1/content" ] } }, "/v1/profile/{userDsnpId}": { "put": { "operationId": "ProfileControllerV1_profile", "summary": "Update a user's Profile", "parameters": [ { "name": "userDsnpId", "required": true, "in": "path", "schema": { "type": "string" } } ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ProfileDto" } } } }, "responses": { "2XX": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/AnnouncementResponseDto" } } } } }, "tags": [ "v1/profile" ] } }, "/healthz": { "get": { "operationId": "HealthController_healthz", "summary": "Check the health status of the service", "parameters": [], "responses": { "200": { "description": "Service is healthy" } }, "tags": [ "health" ] } }, "/livez": { "get": { "operationId": "HealthController_livez", "summary": "Check the live status of the service", "parameters": [], "responses": { "200": { "description": "Service is live" } }, "tags": [ "health" ] } }, "/readyz": { "get": { "operationId": "HealthController_readyz", "summary": "Check the ready status of the service", "parameters": [], "responses": { "200": { "description": "Service is ready" } }, "tags": [ "health" ] } } }, "info": { "title": "Content Publishing Service API", "description": "Content Publishing Service API", "version": "1.0", "contact": {} }, "tags": [], "servers": [], "components": { "schemas": { "FilesUploadDto": { "type": "object", "properties": { "files": { "type": "array", "items": { "type": "string", "format": "binary" } } }, "required": [ "files" ] }, "UploadResponseDto": { "type": "object", "properties": { "assetIds": { "type": "array", "items": { "type": "string" } } }, "required": [ "assetIds" ] }, "AssetReferenceDto": { "type": "object", "properties": { "referenceId": { "type": "string", "minLength": 1 }, "height": { "type": "number", "minimum": 1 }, "width": { "type": "number", "minimum": 1 }, "duration": { "type": "string", "pattern": "DURATION_REGEX" } }, "required": [ "referenceId" ] }, "AssetDto": { "type": "object", "properties": { "references": { "type": "array", "items": { "$ref": "#/components/schemas/AssetReferenceDto" } }, "name": { "type": "string", "minLength": 1 }, "href": { "type": "string", "minLength": 1 } } }, "TagDto": { "type": "object", "properties": { "type": { "type": "string", "enum": [ "mention", "hashtag" ] }, "name": { "type": "string", "minLength": 1 }, "mentionedId": { "type": "string" } }, "required": [ "type" ] }, "LocationDto": { "type": "object", "properties": { "name": { "type": "string", "minLength": 1 }, "accuracy": { "type": "number", "minimum": 0, "maximum": 100 }, "altitude": { "type": "number" }, "latitude": { "type": "number" }, "longitude": { "type": "number" }, "radius": { "type": "number", "minimum": 0 }, "units": { "type": "string", "enum": [ "cm", "m", "km", "inches", "feet", "miles" ] } }, "required": [ "name" ] }, "NoteActivityDto": { "type": "object", "properties": { "content": { "type": "string", "minLength": 1 }, "published": { "type": "string" }, "assets": { "type": "array", "items": { "$ref": "#/components/schemas/AssetDto" } }, "name": { "type": "string" }, "tag": { "type": "array", "items": { "$ref": "#/components/schemas/TagDto" } }, "location": { "$ref": "#/components/schemas/LocationDto" } }, "required": [ "content", "published" ] }, "BroadcastDto": { "type": "object", "properties": { "content": { "$ref": "#/components/schemas/NoteActivityDto" } }, "required": [ "content" ] }, "AnnouncementResponseDto": { "type": "object", "properties": { "referenceId": { "type": "string" } }, "required": [ "referenceId" ] }, "ReplyDto": { "type": "object", "properties": { "inReplyTo": { "type": "string" }, "content": { "$ref": "#/components/schemas/NoteActivityDto" } }, "required": [ "inReplyTo", "content" ] }, "ReactionDto": { "type": "object", "properties": { "emoji": { "type": "string", "minLength": 1, "pattern": "DSNP_EMOJI_REGEX" }, "apply": { "type": "number", "minimum": 0, "maximum": 255 }, "inReplyTo": { "type": "string" } }, "required": [ "emoji", "apply", "inReplyTo" ] }, "UpdateDto": { "type": "object", "properties": { "targetContentHash": { "type": "string" }, "targetAnnouncementType": { "type": "string", "enum": [ "broadcast", "reply" ] }, "content": { "$ref": "#/components/schemas/NoteActivityDto" } }, "required": [ "targetContentHash", "targetAnnouncementType", "content" ] }, "TombstoneDto": { "type": "object", "properties": { "targetContentHash": { "type": "string" }, "targetAnnouncementType": { "type": "string", "enum": [ "broadcast", "reply" ] } }, "required": [ "targetContentHash", "targetAnnouncementType" ] }, "ProfileActivityDto": { "type": "object", "properties": { "icon": { "type": "array", "items": { "$ref": "#/components/schemas/AssetReferenceDto" } }, "summary": { "type": "string" }, "published": { "type": "string" }, "name": { "type": "string" }, "tag": { "type": "array", "items": { "$ref": "#/components/schemas/TagDto" } }, "location": { "$ref": "#/components/schemas/LocationDto" } } }, "ProfileDto": { "type": "object", "properties": { "profile": { "$ref": "#/components/schemas/ProfileActivityDto" } }, "required": [ "profile" ] } } } }