{ "host": "demo.accelbyte.io", "info": { "contact": { "email": "engineering@accelbyte.io", "name": "Engineering Team at AccelByte", "url": "https://accelbyte.io" }, "description": "Justice UGC Service", "title": "justice-ugc-service", "version": "2.25.1" }, "schemes": [ "https" ], "externalDocs": { "description": "API Docs", "url": "https://stage.accelbyte.io/ugc/apidocs" }, "securityDefinitions": { "authorization": { "in": "header", "name": "Authorization", "type": "apiKey" } }, "swagger": "2.0", "paths": { "/ugc/v1/admin/namespaces/{namespace}/channels": { "get": { "consumes": [ "application/json" ], "description": "Get official channel paginated", "operationId": "SingleAdminGetChannel", "parameters": [ { "description": "namespace of the game", "in": "path", "name": "namespace", "required": true, "type": "string" }, { "default": 20, "description": "number of content per page", "in": "query", "name": "limit", "type": "integer" }, { "default": 0, "description": "the offset number to retrieve", "in": "query", "name": "offset", "type": "integer" } ], "produces": [ "application/json" ], "responses": { "200": { "description": "Get channels", "schema": { "$ref": "#/definitions/models.PaginatedGetChannelResponse" } }, "400": { "description": "\u003ctable\u003e\u003ctr\u003e\u003ctd\u003eerrorCode\u003c/td\u003e\u003ctd\u003eerrorMessage\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e770702\u003c/td\u003e\u003ctd\u003einvalid paging parameter\u003c/td\u003e\u003c/tr\u003e\u003c/table\u003e", "schema": { "$ref": "#/definitions/response.Error" } }, "401": { "description": "\u003ctable\u003e\u003ctr\u003e\u003ctd\u003eerrorCode\u003c/td\u003e\u003ctd\u003eerrorMessage\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e20001\u003c/td\u003e\u003ctd\u003eunauthorized access\u003c/td\u003e\u003c/tr\u003e\u003c/table\u003e", "schema": { "$ref": "#/definitions/response.Error" } }, "500": { "description": "\u003ctable\u003e\u003ctr\u003e\u003ctd\u003eerrorCode\u003c/td\u003e\u003ctd\u003eerrorMessage\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e770700\u003c/td\u003e\u003ctd\u003eUnable get user channels\u003c/td\u003e\u003c/tr\u003e\u003c/table\u003e", "schema": { "$ref": "#/definitions/response.Error" } } }, "security": [ { "authorization": [] } ], "summary": "Get Channels", "tags": [ "Admin Channel" ], "x-errorCodes": { "20001": "unauthorized access", "770700": "Unable get user channels", "770702": "invalid paging parameter" }, "x-security": [ { "userPermissions": [ "ADMIN:NAMESPACE:{namespace}:USER:{userId}:CHANNEL [READ]" ] } ] }, "post": { "consumes": [ "application/json" ], "description": "Create official channel", "operationId": "AdminCreateChannel", "parameters": [ { "in": "body", "name": "body", "required": true, "schema": { "$ref": "#/definitions/models.ChannelRequest" } }, { "description": "namespace of the game", "in": "path", "name": "namespace", "required": true, "type": "string" } ], "produces": [ "application/json" ], "responses": { "201": { "description": "Channel created", "schema": { "$ref": "#/definitions/models.ChannelResponse" } }, "400": { "description": "\u003ctable\u003e\u003ctr\u003e\u003ctd\u003eerrorCode\u003c/td\u003e\u003ctd\u003eerrorMessage\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e770503\u003c/td\u003e\u003ctd\u003eInvalid channel {ID}: should uuid without hypen\u003c/td\u003e\u003c/tr\u003e\u003c/table\u003e", "schema": { "$ref": "#/definitions/response.Error" } }, "401": { "description": "\u003ctable\u003e\u003ctr\u003e\u003ctd\u003eerrorCode\u003c/td\u003e\u003ctd\u003eerrorMessage\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e20001\u003c/td\u003e\u003ctd\u003eunauthorized access\u003c/td\u003e\u003c/tr\u003e\u003c/table\u003e", "schema": { "$ref": "#/definitions/response.Error" } }, "409": { "description": "\u003ctable\u003e\u003ctr\u003e\u003ctd\u003eerrorCode\u003c/td\u003e\u003ctd\u003eerrorMessage\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e770504\u003c/td\u003e\u003ctd\u003eChannel already exist\u003c/td\u003e\u003c/tr\u003e\u003c/table\u003e", "schema": { "$ref": "#/definitions/response.Error" } }, "500": { "description": "\u003ctable\u003e\u003ctr\u003e\u003ctd\u003eerrorCode\u003c/td\u003e\u003ctd\u003eerrorMessage\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e770502\u003c/td\u003e\u003ctd\u003eUnable to save channel\u003c/td\u003e\u003c/tr\u003e\u003c/table\u003e", "schema": { "$ref": "#/definitions/response.Error" } } }, "security": [ { "authorization": [] } ], "summary": "Create Channel", "tags": [ "Admin Channel" ], "x-errorCodes": { "20001": "unauthorized access", "770502": "Unable to save channel", "770503": "Invalid channel {ID}: should uuid without hypen", "770504": "Channel already exist" }, "x-security": [ { "userPermissions": [ "ADMIN:NAMESPACE:{namespace}:USER:{userId}:CHANNEL [CREATE]" ] } ] } }, "/ugc/v1/admin/namespaces/{namespace}/channels/{channelId}": { "delete": { "consumes": [ "application/json" ], "description": "Delete official channel", "operationId": "SingleAdminDeleteChannel", "parameters": [ { "description": "channelID", "in": "path", "name": "channelId", "required": true, "type": "string" }, { "description": "namespace of the game", "in": "path", "name": "namespace", "required": true, "type": "string" } ], "produces": [ "application/json" ], "responses": { "204": { "description": "Channel deleted" }, "401": { "description": "\u003ctable\u003e\u003ctr\u003e\u003ctd\u003eerrorCode\u003c/td\u003e\u003ctd\u003eerrorMessage\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e20001\u003c/td\u003e\u003ctd\u003eunauthorized access\u003c/td\u003e\u003c/tr\u003e\u003c/table\u003e", "schema": { "$ref": "#/definitions/response.Error" } }, "404": { "description": "\u003ctable\u003e\u003ctr\u003e\u003ctd\u003eerrorCode\u003c/td\u003e\u003ctd\u003eerrorMessage\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e772502\u003c/td\u003e\u003ctd\u003eChannel not found\u003c/td\u003e\u003c/tr\u003e\u003c/table\u003e", "schema": { "$ref": "#/definitions/response.Error" } }, "500": { "description": "\u003ctable\u003e\u003ctr\u003e\u003ctd\u003eerrorCode\u003c/td\u003e\u003ctd\u003eerrorMessage\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e772501\u003c/td\u003e\u003ctd\u003eUnable to delete channel\u003c/td\u003e\u003c/tr\u003e\u003c/table\u003e", "schema": { "$ref": "#/definitions/response.Error" } } }, "security": [ { "authorization": [] } ], "summary": "Delete Channel", "tags": [ "Admin Channel" ], "x-errorCodes": { "20001": "unauthorized access", "772501": "Unable to delete channel", "772502": "Channel not found" }, "x-security": [ { "userPermissions": [ "ADMIN:NAMESPACE:{namespace}:USER:{userId}:CHANNEL [DELETE]" ] } ] }, "put": { "consumes": [ "application/json" ], "description": "Update official channel", "operationId": "SingleAdminUpdateChannel", "parameters": [ { "in": "body", "name": "body", "required": true, "schema": { "$ref": "#/definitions/models.UpdateChannelRequest" } }, { "description": "channelID", "in": "path", "name": "channelId", "required": true, "type": "string" }, { "description": "namespace of the game", "in": "path", "name": "namespace", "required": true, "type": "string" } ], "produces": [ "application/json" ], "responses": { "200": { "description": "Channel updated", "schema": { "$ref": "#/definitions/models.ChannelResponse" } }, "400": { "description": "\u003ctable\u003e\u003ctr\u003e\u003ctd\u003eerrorCode\u003c/td\u003e\u003ctd\u003eerrorMessage\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e770600\u003c/td\u003e\u003ctd\u003eInvalid request body\u003c/td\u003e\u003c/tr\u003e\u003c/table\u003e", "schema": { "$ref": "#/definitions/response.Error" } }, "401": { "description": "\u003ctable\u003e\u003ctr\u003e\u003ctd\u003eerrorCode\u003c/td\u003e\u003ctd\u003eerrorMessage\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e20001\u003c/td\u003e\u003ctd\u003eunauthorized access\u003c/td\u003e\u003c/tr\u003e\u003c/table\u003e", "schema": { "$ref": "#/definitions/response.Error" } }, "404": { "description": "\u003ctable\u003e\u003ctr\u003e\u003ctd\u003eerrorCode\u003c/td\u003e\u003ctd\u003eerrorMessage\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e770603\u003c/td\u003e\u003ctd\u003eChannel was not found\u003c/td\u003e\u003c/tr\u003e\u003c/table\u003e", "schema": { "$ref": "#/definitions/response.Error" } }, "500": { "description": "\u003ctable\u003e\u003ctr\u003e\u003ctd\u003eerrorCode\u003c/td\u003e\u003ctd\u003eerrorMessage\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e770602\u003c/td\u003e\u003ctd\u003eUnable to save channel\u003c/td\u003e\u003c/tr\u003e\u003c/table\u003e", "schema": { "$ref": "#/definitions/response.Error" } } }, "security": [ { "authorization": [] } ], "summary": "Update Channel", "tags": [ "Admin Channel" ], "x-errorCodes": { "20001": "unauthorized access", "770600": "Invalid request body", "770602": "Unable to save channel", "770603": "Channel was not found" }, "x-security": [ { "userPermissions": [ "ADMIN:NAMESPACE:{namespace}:USER:{userId}:CHANNEL [UPDATE]" ] } ] } }, "/ugc/v1/admin/namespaces/{namespace}/channels/{channelId}/contents": { "post": { "consumes": [ "application/json" ], "deprecated": true, "description": "Required permission \u0026lt;b\u0026gt;ADMIN:NAMESPACE:{namespace}:USER:{userId}:CONTENT [CREATE]\u0026lt;/b\u0026gt;.\\n \n\t\t\t\tAll request body are required except preview, tags and customAttributes.\n\t\t\t\t", "operationId": "AdminUploadContentDirect", "parameters": [ { "in": "body", "name": "body", "required": true, "schema": { "$ref": "#/definitions/models.CreateContentRequest" } }, { "description": "channel ID", "in": "path", "name": "channelId", "required": true, "type": "string" }, { "description": "namespace of the game", "in": "path", "name": "namespace", "required": true, "type": "string" } ], "produces": [ "application/json" ], "responses": { "201": { "description": "Content uploaded", "schema": { "$ref": "#/definitions/models.CreateContentResponse" } }, "400": { "description": "\u003ctable\u003e\u003ctr\u003e\u003ctd\u003eerrorCode\u003c/td\u003e\u003ctd\u003eerrorMessage\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e770100\u003c/td\u003e\u003ctd\u003eMalformed request/Invalid request body/channel do not exist\u003c/td\u003e\u003c/tr\u003e\u003c/table\u003e", "schema": { "$ref": "#/definitions/response.Error" } }, "401": { "description": "\u003ctable\u003e\u003ctr\u003e\u003ctd\u003eerrorCode\u003c/td\u003e\u003ctd\u003eerrorMessage\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e20001\u003c/td\u003e\u003ctd\u003eunauthorized access\u003c/td\u003e\u003c/tr\u003e\u003c/table\u003e", "schema": { "$ref": "#/definitions/response.Error" } }, "403": { "description": "\u003ctable\u003e\u003ctr\u003e\u003ctd\u003eerrorCode\u003c/td\u003e\u003ctd\u003eerrorMessage\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e770104\u003c/td\u003e\u003ctd\u003eUser has been banned to create content\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e20013\u003c/td\u003e\u003ctd\u003einsufficient permission\u003c/td\u003e\u003c/tr\u003e\u003c/table\u003e", "schema": { "$ref": "#/definitions/response.Error" } }, "409": { "description": "\u003ctable\u003e\u003ctr\u003e\u003ctd\u003eerrorCode\u003c/td\u003e\u003ctd\u003eerrorMessage\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e770103\u003c/td\u003e\u003ctd\u003eUnable to save ugc content: shareCode exceed the limit\u003c/td\u003e\u003c/tr\u003e\u003c/table\u003e", "schema": { "$ref": "#/definitions/response.Error" } }, "500": { "description": "\u003ctable\u003e\u003ctr\u003e\u003ctd\u003eerrorCode\u003c/td\u003e\u003ctd\u003eerrorMessage\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e770102\u003c/td\u003e\u003ctd\u003eUnable to check user ban status/Unable to save ugc content: unable to get channel\u003c/td\u003e\u003c/tr\u003e\u003c/table\u003e", "schema": { "$ref": "#/definitions/response.Error" } } }, "security": [ { "authorization": [] } ], "summary": "Upload content to a channel", "tags": [ "Admin Content" ], "x-errorCodes": { "20001": "unauthorized access", "20013": "insufficient permission", "770100": "Malformed request/Invalid request body/channel do not exist", "770102": "Unable to check user ban status/Unable to save ugc content: unable to get channel", "770103": "Unable to save ugc content: shareCode exceed the limit", "770104": "User has been banned to create content" }, "x-security": [ { "userPermissions": [ "ADMIN:NAMESPACE:{namespace}:USER:{userId}:CONTENT [CREATE]" ] } ] } }, "/ugc/v1/admin/namespaces/{namespace}/channels/{channelId}/contents/s3": { "post": { "consumes": [ "application/json" ], "description": "Required permission \u0026lt;b\u0026gt;ADMIN:NAMESPACE:{namespace}:USER:{userId}:CONTENT [CREATE]\u0026lt;/b\u0026gt;.\n\nAll request body are required except \u0026lt;code\u0026gt;preview\u0026lt;/code\u0026gt;, \u0026lt;code\u0026gt;tags\u0026lt;/code\u0026gt;, \u0026lt;code\u0026gt;contentType\u0026lt;/code\u0026gt;, \u0026lt;code\u0026gt;customAttributes\u0026lt;/code\u0026gt; and \u0026lt;code\u0026gt;shareCode\u0026lt;/code\u0026gt;.\n\n\u0026lt;code\u0026gt;contentType\u0026lt;/code\u0026gt; values is used to enforce the Content-Type header needed by the client when uploading the content using the S3 presigned URL. If not specified, it will use fileExtension value.\n\n\u0026lt;code\u0026gt;shareCode\u0026lt;/code\u0026gt; format should follows: \n\nLength: 7\nAvailable characters: abcdefhkpqrstuxyz\n\n\u0026lt;br\u0026gt;\u0026lt;p\u0026gt;\u0026lt;b\u0026gt;NOTE: Preview is Legacy Code, please use Screenshot for better solution to display preview of a content\u0026lt;/b\u0026gt;\u0026lt;/p\u0026gt;", "operationId": "AdminUploadContentS3", "parameters": [ { "in": "body", "name": "body", "required": true, "schema": { "$ref": "#/definitions/models.CreateContentRequestS3" } }, { "description": "channel ID", "in": "path", "name": "channelId", "required": true, "type": "string" }, { "description": "namespace of the game", "in": "path", "name": "namespace", "required": true, "type": "string" } ], "produces": [ "application/json" ], "responses": { "201": { "description": "Content Uploaded to S3 bucket ", "schema": { "$ref": "#/definitions/models.CreateContentResponse" } }, "400": { "description": "\u003ctable\u003e\u003ctr\u003e\u003ctd\u003eerrorCode\u003c/td\u003e\u003ctd\u003eerrorMessage\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e770100\u003c/td\u003e\u003ctd\u003eMalformed request/Invalid request body/channel do not exist\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e770107\u003c/td\u003e\u003ctd\u003eUnable to update ugc content: invalid shareCode format\u003c/td\u003e\u003c/tr\u003e\u003c/table\u003e", "schema": { "$ref": "#/definitions/response.Error" } }, "401": { "description": "\u003ctable\u003e\u003ctr\u003e\u003ctd\u003eerrorCode\u003c/td\u003e\u003ctd\u003eerrorMessage\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e20001\u003c/td\u003e\u003ctd\u003eunauthorized access\u003c/td\u003e\u003c/tr\u003e\u003c/table\u003e", "schema": { "$ref": "#/definitions/response.Error" } }, "403": { "description": "\u003ctable\u003e\u003ctr\u003e\u003ctd\u003eerrorCode\u003c/td\u003e\u003ctd\u003eerrorMessage\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e770104\u003c/td\u003e\u003ctd\u003eUser has been banned to create content\u003c/td\u003e\u003c/tr\u003e\u003c/table\u003e", "schema": { "$ref": "#/definitions/response.Error" } }, "409": { "description": "\u003ctable\u003e\u003ctr\u003e\u003ctd\u003eerrorCode\u003c/td\u003e\u003ctd\u003eerrorMessage\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e770103\u003c/td\u003e\u003ctd\u003eUnable to save ugc content: shareCode exceed the limit\u003c/td\u003e\u003c/tr\u003e\u003c/table\u003e", "schema": { "$ref": "#/definitions/response.Error" } }, "500": { "description": "\u003ctable\u003e\u003ctr\u003e\u003ctd\u003eerrorCode\u003c/td\u003e\u003ctd\u003eerrorMessage\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e770102\u003c/td\u003e\u003ctd\u003eUnable to check user ban status/Unable to save ugc content: unable to get channel\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e770103\u003c/td\u003e\u003ctd\u003eUnable to save ugc content: shareCode exceed the limit\u003c/td\u003e\u003c/tr\u003e\u003c/table\u003e", "schema": { "$ref": "#/definitions/response.Error" } } }, "security": [ { "authorization": [] } ], "summary": "Upload content to S3 bucket", "tags": [ "Admin Content" ], "x-errorCodes": { "20001": "unauthorized access", "770100": "Malformed request/Invalid request body/channel do not exist", "770102": "Unable to check user ban status/Unable to save ugc content: unable to get channel", "770103": "Unable to save ugc content: shareCode exceed the limit", "770104": "User has been banned to create content", "770107": "Unable to update ugc content: invalid shareCode format" }, "x-security": [ { "userPermissions": [ "ADMIN:NAMESPACE:{namespace}:USER:{userId}:CONTENT [CREATE]" ] } ] } }, "/ugc/v1/admin/namespaces/{namespace}/channels/{channelId}/contents/s3/{contentId}": { "put": { "consumes": [ "application/json" ], "description": "Required permission \u0026lt;b\u0026gt;ADMIN:NAMESPACE:{namespace}:USER:{userId}:CONTENT [UPDATE]\u0026lt;/b\u0026gt;.\n\nAll request body are required except \u0026lt;code\u0026gt;payload\u0026lt;/code\u0026gt;, \u0026lt;code\u0026gt;preview\u0026lt;/code\u0026gt;, \u0026lt;code\u0026gt;tags\u0026lt;/code\u0026gt;,\u0026lt;code\u0026gt;contentType\u0026lt;/code\u0026gt;, \u0026lt;code\u0026gt;updateContentFile\u0026lt;/code\u0026gt;, \u0026lt;code\u0026gt;customAttributes\u0026lt;/code\u0026gt; and \u0026lt;code\u0026gt;shareCode\u0026lt;/code\u0026gt;.\n\n\u0026lt;code\u0026gt;contentType\u0026lt;/code\u0026gt; values is used to enforce the Content-Type header needed by the client to upload the content using the S3 presigned URL.\n\nIf not specified, it will use \u0026lt;code\u0026gt;fileExtension\u0026lt;/code\u0026gt; value.\n\nTo update content file, set \u0026lt;code\u0026gt;updateContentFile\u0026lt;/code\u0026gt; to \u0026lt;code\u0026gt;true\u0026lt;/code\u0026gt; and upload the file using URL in \u0026lt;code\u0026gt;payloadURL.url\u0026lt;/code\u0026gt; in response body.\n\n\u0026lt;code\u0026gt;shareCode\u0026lt;/code\u0026gt; format should follows:\n\nMax length: 7\nAvailable characters: abcdefhkpqrstuxyz\n\n\u0026lt;br\u0026gt;\u0026lt;p\u0026gt;\u0026lt;b\u0026gt;NOTE: Preview is Legacy Code, please use Screenshot for better solution to display preview of a content\u0026lt;/b\u0026gt;\u0026lt;/p\u0026gt;", "operationId": "SingleAdminUpdateContentS3", "parameters": [ { "in": "body", "name": "body", "required": true, "schema": { "$ref": "#/definitions/models.AdminUpdateContentRequest" } }, { "description": "channel ID", "in": "path", "name": "channelId", "required": true, "type": "string" }, { "description": "content ID", "in": "path", "name": "contentId", "required": true, "type": "string" }, { "description": "namespace of the game", "in": "path", "name": "namespace", "required": true, "type": "string" } ], "produces": [ "application/json" ], "responses": { "200": { "description": "Content updated at s3", "schema": { "$ref": "#/definitions/models.CreateContentResponse" } }, "400": { "description": "\u003ctable\u003e\u003ctr\u003e\u003ctd\u003eerrorCode\u003c/td\u003e\u003ctd\u003eerrorMessage\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e772601\u003c/td\u003e\u003ctd\u003eMalformed request\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e772607\u003c/td\u003e\u003ctd\u003eUnable to update ugc content: invalid shareCode format\u003c/td\u003e\u003c/tr\u003e\u003c/table\u003e", "schema": { "$ref": "#/definitions/response.Error" } }, "401": { "description": "\u003ctable\u003e\u003ctr\u003e\u003ctd\u003eerrorCode\u003c/td\u003e\u003ctd\u003eerrorMessage\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e20001\u003c/td\u003e\u003ctd\u003eunauthorized access\u003c/td\u003e\u003c/tr\u003e\u003c/table\u003e", "schema": { "$ref": "#/definitions/response.Error" } }, "403": { "description": "\u003ctable\u003e\u003ctr\u003e\u003ctd\u003eerrorCode\u003c/td\u003e\u003ctd\u003eerrorMessage\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e772604\u003c/td\u003e\u003ctd\u003eUser has been banned to update content\u003c/td\u003e\u003c/tr\u003e\u003c/table\u003e", "schema": { "$ref": "#/definitions/response.Error" } }, "404": { "description": "\u003ctable\u003e\u003ctr\u003e\u003ctd\u003eerrorCode\u003c/td\u003e\u003ctd\u003eerrorMessage\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e772603\u003c/td\u003e\u003ctd\u003eContent not found\u003c/td\u003e\u003c/tr\u003e\u003c/table\u003e", "schema": { "$ref": "#/definitions/response.Error" } }, "409": { "description": "\u003ctable\u003e\u003ctr\u003e\u003ctd\u003eerrorCode\u003c/td\u003e\u003ctd\u003eerrorMessage\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e772606\u003c/td\u003e\u003ctd\u003eShare code already used\u003c/td\u003e\u003c/tr\u003e\u003c/table\u003e", "schema": { "$ref": "#/definitions/response.Error" } }, "500": { "description": "\u003ctable\u003e\u003ctr\u003e\u003ctd\u003eerrorCode\u003c/td\u003e\u003ctd\u003eerrorMessage\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e772602\u003c/td\u003e\u003ctd\u003eUnable to check user ban status/Unable to get updated ugc content\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e772605\u003c/td\u003e\u003ctd\u003eUnable to save ugc content: failed generate upload URL\u003c/td\u003e\u003c/tr\u003e\u003c/table\u003e", "schema": { "$ref": "#/definitions/response.Error" } } }, "security": [ { "authorization": [] } ], "summary": "Update content to S3 bucket", "tags": [ "Admin Content" ], "x-errorCodes": { "20001": "unauthorized access", "772601": "Malformed request", "772602": "Unable to check user ban status/Unable to get updated ugc content", "772603": "Content not found", "772604": "User has been banned to update content", "772605": "Unable to save ugc content: failed generate upload URL", "772606": "Share code already used", "772607": "Unable to update ugc content: invalid shareCode format" }, "x-security": [ { "userPermissions": [ "ADMIN:NAMESPACE:{namespace}:USER:{userId}:CONTENT [UPDATE]" ] } ] } }, "/ugc/v1/admin/namespaces/{namespace}/channels/{channelId}/contents/search": { "get": { "consumes": [ "application/json" ], "description": "Required permission \u0026lt;b\u0026gt;ADMIN:NAMESPACE:{namespace}:USER:*:CONTENT [READ]\u0026lt;/b\u0026gt;\n\nFor advance tag filtering supports \u0026amp; as AND operator and | as OR operator and parentheses () for priority. e.g: \n\n\u0026lt;code\u0026gt;tags=red\u0026lt;/code\u0026gt;\n\n\u0026lt;code\u0026gt;tags=red\u0026amp;animal\u0026lt;/code\u0026gt;\n\n\u0026lt;code\u0026gt;tags=red|animal\u0026lt;/code\u0026gt;\n\n\u0026lt;code\u0026gt;tags=red\u0026amp;animal|wild\u0026lt;/code\u0026gt;\n\n\u0026lt;code\u0026gt;tags=red\u0026amp;(animal|wild)\u0026lt;/code\u0026gt;\n\nThe precedence of logical operator is AND \u0026gt; OR, so if no parentheses, AND logical operator will be executed first.\n\nAllowed character for operand: alphanumeric, underscore \u0026lt;code\u0026gt;_\u0026lt;/code\u0026gt; and dash \u0026lt;code\u0026gt;-\u0026lt;/code\u0026gt;\n\nAllowed character for operator: \u0026lt;code\u0026gt;\u0026amp;\u0026lt;/code\u0026gt; \u0026lt;code\u0026gt;|\u0026lt;/code\u0026gt; \u0026lt;code\u0026gt;(\u0026lt;/code\u0026gt; \u0026lt;code\u0026gt;)\u0026lt;/code\u0026gt;\n\n\u0026lt;b\u0026gt;Please note that value of tags query param should be URL encoded\u0026lt;/b\u0026gt;", "operationId": "AdminSearchChannelSpecificContent", "parameters": [ { "description": "channel ID", "in": "path", "name": "channelId", "required": true, "type": "string" }, { "description": "namespace of the game", "in": "path", "name": "namespace", "required": true, "type": "string" }, { "description": "creator name", "in": "query", "name": "creator", "type": "string" }, { "description": "set to true to list only hidden contents, false to list only non-hidden contents", "in": "query", "name": "ishidden", "type": "string" }, { "description": "filter only official contents (boolean)", "in": "query", "name": "isofficial", "type": "string" }, { "default": 20, "description": "number of content per page", "in": "query", "name": "limit", "type": "integer" }, { "description": "content name", "in": "query", "name": "name", "type": "string" }, { "default": 0, "description": "the offset number to retrieve", "in": "query", "name": "offset", "type": "integer" }, { "description": "sorting order: asc, desc. default=desc", "in": "query", "name": "orderby", "type": "string" }, { "description": "sorting criteria: name,download,like,date,updatedTime. default=date", "in": "query", "name": "sortby", "type": "string" }, { "description": "content subtype", "in": "query", "name": "subtype", "type": "string" }, { "collectionFormat": "csv", "description": "content tag", "in": "query", "items": { "type": "string" }, "name": "tags", "type": "array" }, { "description": "content type", "in": "query", "name": "type", "type": "string" }, { "description": "user ID", "in": "query", "name": "userId", "type": "string" } ], "produces": [ "application/json" ], "responses": { "200": { "description": "Search contents specific to a channel", "schema": { "$ref": "#/definitions/models.PaginatedContentDownloadResponse" } }, "400": { "description": "\u003ctable\u003e\u003ctr\u003e\u003ctd\u003eerrorCode\u003c/td\u003e\u003ctd\u003eerrorMessage\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e770800\u003c/td\u003e\u003ctd\u003einvalid paging parameter/max allowed number of tags is {maxTags}/invalid official parameter/invalid ishidden parameter\u003c/td\u003e\u003c/tr\u003e\u003c/table\u003e", "schema": { "$ref": "#/definitions/response.Error" } }, "401": { "description": "\u003ctable\u003e\u003ctr\u003e\u003ctd\u003eerrorCode\u003c/td\u003e\u003ctd\u003eerrorMessage\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e20001\u003c/td\u003e\u003ctd\u003eunauthorized access\u003c/td\u003e\u003c/tr\u003e\u003c/table\u003e", "schema": { "$ref": "#/definitions/response.Error" } }, "500": { "description": "\u003ctable\u003e\u003ctr\u003e\u003ctd\u003eerrorCode\u003c/td\u003e\u003ctd\u003eerrorMessage\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e770801\u003c/td\u003e\u003ctd\u003eUnable to get ugc content: database/Unable to get creator\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e770803\u003c/td\u003e\u003ctd\u003eFailed generate download URL\u003c/td\u003e\u003c/tr\u003e\u003c/table\u003e", "schema": { "$ref": "#/definitions/response.Error" } } }, "security": [ { "authorization": [] } ], "summary": "Search contents specific to a channel", "tags": [ "Admin Content" ], "x-errorCodes": { "20001": "unauthorized access", "770800": "invalid paging parameter/max allowed number of tags is {maxTags}/invalid official parameter/invalid ishidden parameter", "770801": "Unable to get ugc content: database/Unable to get creator", "770803": "Failed generate download URL" }, "x-security": [ { "userPermissions": [ "ADMIN:NAMESPACE:{namespace}:USER:*:CONTENT [READ]" ] } ] } }, "/ugc/v1/admin/namespaces/{namespace}/channels/{channelId}/contents/{contentId}": { "delete": { "consumes": [ "application/json" ], "description": "Required permission \u0026lt;b\u0026gt;ADMIN:NAMESPACE:{namespace}:USER:{userId}:CONTENT [DELETE]\u0026lt;/b\u0026gt;.", "operationId": "SingleAdminDeleteContent", "parameters": [ { "description": "channel ID", "in": "path", "name": "channelId", "required": true, "type": "string" }, { "description": "content ID", "in": "path", "name": "contentId", "required": true, "type": "string" }, { "description": "namespace of the game", "in": "path", "name": "namespace", "required": true, "type": "string" } ], "produces": [ "application/json" ], "responses": { "204": { "description": "Content deleted" }, "401": { "description": "\u003ctable\u003e\u003ctr\u003e\u003ctd\u003eerrorCode\u003c/td\u003e\u003ctd\u003eerrorMessage\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e20001\u003c/td\u003e\u003ctd\u003eunauthorized access\u003c/td\u003e\u003c/tr\u003e\u003c/table\u003e", "schema": { "$ref": "#/definitions/response.Error" } }, "404": { "description": "\u003ctable\u003e\u003ctr\u003e\u003ctd\u003eerrorCode\u003c/td\u003e\u003ctd\u003eerrorMessage\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e772702\u003c/td\u003e\u003ctd\u003eContent not found\u003c/td\u003e\u003c/tr\u003e\u003c/table\u003e", "schema": { "$ref": "#/definitions/response.Error" } }, "500": { "description": "\u003ctable\u003e\u003ctr\u003e\u003ctd\u003eerrorCode\u003c/td\u003e\u003ctd\u003eerrorMessage\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e772701\u003c/td\u003e\u003ctd\u003eUnable to delete content/Unable to update user liked count/Unable to delete like state/Unable to delete like state\u003c/td\u003e\u003c/tr\u003e\u003c/table\u003e", "schema": { "$ref": "#/definitions/response.Error" } } }, "security": [ { "authorization": [] } ], "summary": "Delete content", "tags": [ "Admin Content" ], "x-errorCodes": { "20001": "unauthorized access", "772701": "Unable to delete content/Unable to update user liked count/Unable to delete like state/Unable to delete like state", "772702": "Content not found" }, "x-security": [ { "userPermissions": [ "ADMIN:NAMESPACE:{namespace}:USER:{userId}:CONTENT [DELETE]" ] } ] }, "put": { "consumes": [ "application/json" ], "deprecated": true, "description": "Required permission \u0026lt;b\u0026gt;ADMIN:NAMESPACE:{namespace}:USER:{userId}:CONTENT [UPDATE]\u0026lt;/b\u0026gt;.\\n \n\t\t\t\t\tAll request body are required except preview, tags and customAttributes.\n\t\t\t\t\t", "operationId": "SingleAdminUpdateContentDirect", "parameters": [ { "in": "body", "name": "body", "required": true, "schema": { "$ref": "#/definitions/models.CreateContentRequest" } }, { "description": "channel ID", "in": "path", "name": "channelId", "required": true, "type": "string" }, { "description": "content ID", "in": "path", "name": "contentId", "required": true, "type": "string" }, { "description": "namespace of the game", "in": "path", "name": "namespace", "required": true, "type": "string" } ], "produces": [ "application/json" ], "responses": { "200": { "description": "Content updated", "schema": { "$ref": "#/definitions/models.CreateContentResponse" } }, "400": { "description": "\u003ctable\u003e\u003ctr\u003e\u003ctd\u003eerrorCode\u003c/td\u003e\u003ctd\u003eerrorMessage\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e772601\u003c/td\u003e\u003ctd\u003eMalformed request\u003c/td\u003e\u003c/tr\u003e\u003c/table\u003e", "schema": { "$ref": "#/definitions/response.Error" } }, "401": { "description": "\u003ctable\u003e\u003ctr\u003e\u003ctd\u003eerrorCode\u003c/td\u003e\u003ctd\u003eerrorMessage\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e20001\u003c/td\u003e\u003ctd\u003eunauthorized access\u003c/td\u003e\u003c/tr\u003e\u003c/table\u003e", "schema": { "$ref": "#/definitions/response.Error" } }, "403": { "description": "\u003ctable\u003e\u003ctr\u003e\u003ctd\u003eerrorCode\u003c/td\u003e\u003ctd\u003eerrorMessage\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e772604\u003c/td\u003e\u003ctd\u003eUser has been banned to update content\u003c/td\u003e\u003c/tr\u003e\u003c/table\u003e", "schema": { "$ref": "#/definitions/response.Error" } }, "404": { "description": "\u003ctable\u003e\u003ctr\u003e\u003ctd\u003eerrorCode\u003c/td\u003e\u003ctd\u003eerrorMessage\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e772603\u003c/td\u003e\u003ctd\u003eContent not found\u003c/td\u003e\u003c/tr\u003e\u003c/table\u003e", "schema": { "$ref": "#/definitions/response.Error" } }, "500": { "description": "\u003ctable\u003e\u003ctr\u003e\u003ctd\u003eerrorCode\u003c/td\u003e\u003ctd\u003eerrorMessage\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e772602\u003c/td\u003e\u003ctd\u003eUnable to check user ban status/Unable to get updated ugc content\u003c/td\u003e\u003c/tr\u003e\u003c/table\u003e", "schema": { "$ref": "#/definitions/response.Error" } } }, "security": [ { "authorization": [] } ], "summary": "Update content to a channel", "tags": [ "Admin Content" ], "x-errorCodes": { "20001": "unauthorized access", "772601": "Malformed request", "772602": "Unable to check user ban status/Unable to get updated ugc content", "772603": "Content not found", "772604": "User has been banned to update content" }, "x-security": [ { "userPermissions": [ "ADMIN:NAMESPACE:{namespace}:USER:{userId}:CONTENT [UPDATE]" ] } ] } }, "/ugc/v1/admin/namespaces/{namespace}/contents": { "get": { "consumes": [ "application/json" ], "description": "Required permission \u0026lt;b\u0026gt;ADMIN:NAMESPACE:{namespace}:USER:{userId}:CONTENT [READ]\u0026lt;/b\u0026gt;.", "operationId": "SingleAdminGetContent", "parameters": [ { "description": "namespace of the game", "in": "path", "name": "namespace", "required": true, "type": "string" }, { "default": 20, "description": "number of content per page", "in": "query", "name": "limit", "type": "integer" }, { "default": 0, "description": "the offset number to retrieve", "in": "query", "name": "offset", "type": "integer" } ], "produces": [ "application/json" ], "responses": { "200": { "description": "Get user's generated contents", "schema": { "$ref": "#/definitions/models.PaginatedContentDownloadResponse" } }, "400": { "description": "\u003ctable\u003e\u003ctr\u003e\u003ctd\u003eerrorCode\u003c/td\u003e\u003ctd\u003eerrorMessage\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e770900\u003c/td\u003e\u003ctd\u003einvalid paging parameter\u003c/td\u003e\u003c/tr\u003e\u003c/table\u003e", "schema": { "$ref": "#/definitions/response.Error" } }, "401": { "description": "\u003ctable\u003e\u003ctr\u003e\u003ctd\u003eerrorCode\u003c/td\u003e\u003ctd\u003eerrorMessage\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e20001\u003c/td\u003e\u003ctd\u003eunauthorized access\u003c/td\u003e\u003c/tr\u003e\u003c/table\u003e", "schema": { "$ref": "#/definitions/response.Error" } }, "500": { "description": "\u003ctable\u003e\u003ctr\u003e\u003ctd\u003eerrorCode\u003c/td\u003e\u003ctd\u003eerrorMessage\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e770901\u003c/td\u003e\u003ctd\u003eUnable to get ugc content: database error/Unable to get creator\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e770903\u003c/td\u003e\u003ctd\u003eFailed generate download URL\u003c/td\u003e\u003c/tr\u003e\u003c/table\u003e", "schema": { "$ref": "#/definitions/response.Error" } } }, "security": [ { "authorization": [] } ], "summary": "Get user's generated contents", "tags": [ "Admin Content" ], "x-errorCodes": { "20001": "unauthorized access", "770900": "invalid paging parameter", "770901": "Unable to get ugc content: database error/Unable to get creator", "770903": "Failed generate download URL" }, "x-security": [ { "userPermissions": [ "ADMIN:NAMESPACE:{namespace}:USER:{userId}:CONTENT [READ]" ] } ] } }, "/ugc/v1/admin/namespaces/{namespace}/contents/bulk": { "post": { "consumes": [ "application/json" ], "description": "Required permission \u0026lt;b\u0026gt;ADMIN:NAMESPACE:{namespace}:USER:*:CONTENT [READ]\u0026lt;/b\u0026gt;.\n\t\t\t\t\t\tMaximum contentId per request 100", "operationId": "AdminGetContentBulk", "parameters": [ { "in": "body", "name": "body", "required": true, "schema": { "$ref": "#/definitions/models.AdminGetContentBulkRequest" } }, { "description": "namespace of the game", "in": "path", "name": "namespace", "required": true, "type": "string" } ], "produces": [ "application/json" ], "responses": { "200": { "description": "Bulk get content by content IDs", "schema": { "items": { "$ref": "#/definitions/models.ContentDownloadResponse" }, "type": "array" } }, "400": { "description": "\u003ctable\u003e\u003ctr\u003e\u003ctd\u003eerrorCode\u003c/td\u003e\u003ctd\u003eerrorMessage\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e773900\u003c/td\u003e\u003ctd\u003eMalformed request/Invalid request body\u003c/td\u003e\u003c/tr\u003e\u003c/table\u003e", "schema": { "$ref": "#/definitions/response.Error" } }, "401": { "description": "\u003ctable\u003e\u003ctr\u003e\u003ctd\u003eerrorCode\u003c/td\u003e\u003ctd\u003eerrorMessage\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e20001\u003c/td\u003e\u003ctd\u003eunauthorized access\u003c/td\u003e\u003c/tr\u003e\u003c/table\u003e", "schema": { "$ref": "#/definitions/response.Error" } }, "403": { "description": "\u003ctable\u003e\u003ctr\u003e\u003ctd\u003eerrorCode\u003c/td\u003e\u003ctd\u003eerrorMessage\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e20013\u003c/td\u003e\u003ctd\u003einsufficient permission\u003c/td\u003e\u003c/tr\u003e\u003c/table\u003e", "schema": { "$ref": "#/definitions/response.Error" } }, "500": { "description": "\u003ctable\u003e\u003ctr\u003e\u003ctd\u003eerrorCode\u003c/td\u003e\u003ctd\u003eerrorMessage\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e773901\u003c/td\u003e\u003ctd\u003eUnable to get ugc content: database/Unable to get creator\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e773902\u003c/td\u003e\u003ctd\u003eFailed generate download URL\u003c/td\u003e\u003c/tr\u003e\u003c/table\u003e", "schema": { "$ref": "#/definitions/response.Error" } } }, "security": [ { "authorization": [] } ], "summary": "Bulk get content by content IDs", "tags": [ "Admin Content" ], "x-errorCodes": { "20001": "unauthorized access", "20013": "insufficient permission", "773900": "Malformed request/Invalid request body", "773901": "Unable to get ugc content: database/Unable to get creator", "773902": "Failed generate download URL" }, "x-security": [ { "userPermissions": [ "ADMIN:NAMESPACE:{namespace}:USER:*:CONTENT [READ]" ] } ] } }, "/ugc/v1/admin/namespaces/{namespace}/contents/search": { "get": { "consumes": [ "application/json" ], "description": "Required permission \u0026lt;b\u0026gt;ADMIN:NAMESPACE:{namespace}:USER:*:CONTENT [READ]\u0026lt;/b\u0026gt;\n\nFor advance tag filtering supports \u0026amp; as AND operator and | as OR operator and parentheses () for priority. e.g: \n\n\u0026lt;code\u0026gt;tags=red\u0026lt;/code\u0026gt;\n\n\u0026lt;code\u0026gt;tags=red\u0026amp;animal\u0026lt;/code\u0026gt;\n\n\u0026lt;code\u0026gt;tags=red|animal\u0026lt;/code\u0026gt;\n\n\u0026lt;code\u0026gt;tags=red\u0026amp;animal|wild\u0026lt;/code\u0026gt;\n\n\u0026lt;code\u0026gt;tags=red\u0026amp;(animal|wild)\u0026lt;/code\u0026gt;\n\nThe precedence of logical operator is AND \u0026gt; OR, so if no parentheses, AND logical operator will be executed first.\n\nAllowed character for operand: alphanumeric, underscore \u0026lt;code\u0026gt;_\u0026lt;/code\u0026gt; and dash \u0026lt;code\u0026gt;-\u0026lt;/code\u0026gt;\n\nAllowed character for operator: \u0026lt;code\u0026gt;\u0026amp;\u0026lt;/code\u0026gt; \u0026lt;code\u0026gt;|\u0026lt;/code\u0026gt; \u0026lt;code\u0026gt;(\u0026lt;/code\u0026gt; \u0026lt;code\u0026gt;)\u0026lt;/code\u0026gt;\n\n\u0026lt;b\u0026gt;Please note that value of tags query param should be URL encoded\u0026lt;/b\u0026gt;", "operationId": "AdminSearchContent", "parameters": [ { "description": "namespace of the game", "in": "path", "name": "namespace", "required": true, "type": "string" }, { "description": "creator name", "in": "query", "name": "creator", "type": "string" }, { "description": "set to true to list only hidden contents, false to list only non-hidden contents", "in": "query", "name": "ishidden", "type": "string" }, { "description": "filter only official contents (boolean)", "in": "query", "name": "isofficial", "type": "string" }, { "default": 20, "description": "number of content per page", "in": "query", "name": "limit", "type": "integer" }, { "description": "content name", "in": "query", "name": "name", "type": "string" }, { "default": 0, "description": "the offset number to retrieve", "in": "query", "name": "offset", "type": "integer" }, { "description": "sorting order: asc, desc. default=desc", "in": "query", "name": "orderby", "type": "string" }, { "description": "sorting criteria: name,download,like,date,updatedTime. default=date", "in": "query", "name": "sortby", "type": "string" }, { "description": "content subtype", "in": "query", "name": "subtype", "type": "string" }, { "collectionFormat": "csv", "description": "content tag", "in": "query", "items": { "type": "string" }, "name": "tags", "type": "array" }, { "description": "content type", "in": "query", "name": "type", "type": "string" }, { "description": "user ID", "in": "query", "name": "userId", "type": "string" } ], "produces": [ "application/json" ], "responses": { "200": { "description": "Search contents", "schema": { "$ref": "#/definitions/models.PaginatedContentDownloadResponse" } }, "400": { "description": "\u003ctable\u003e\u003ctr\u003e\u003ctd\u003eerrorCode\u003c/td\u003e\u003ctd\u003eerrorMessage\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e770800\u003c/td\u003e\u003ctd\u003einvalid paging parameter/max allowed number of tags is {maxTags}/invalid official parameter/invalid ishidden parameter\u003c/td\u003e\u003c/tr\u003e\u003c/table\u003e", "schema": { "$ref": "#/definitions/response.Error" } }, "401": { "description": "\u003ctable\u003e\u003ctr\u003e\u003ctd\u003eerrorCode\u003c/td\u003e\u003ctd\u003eerrorMessage\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e20001\u003c/td\u003e\u003ctd\u003eunauthorized access\u003c/td\u003e\u003c/tr\u003e\u003c/table\u003e", "schema": { "$ref": "#/definitions/response.Error" } }, "500": { "description": "\u003ctable\u003e\u003ctr\u003e\u003ctd\u003eerrorCode\u003c/td\u003e\u003ctd\u003eerrorMessage\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e770801\u003c/td\u003e\u003ctd\u003eUnable to get ugc content: database/Unable to get creator\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e770803\u003c/td\u003e\u003ctd\u003eFailed generate download URL\u003c/td\u003e\u003c/tr\u003e\u003c/table\u003e", "schema": { "$ref": "#/definitions/response.Error" } } }, "security": [ { "authorization": [] } ], "summary": "Search contents", "tags": [ "Admin Content" ], "x-errorCodes": { "20001": "unauthorized access", "770800": "invalid paging parameter/max allowed number of tags is {maxTags}/invalid official parameter/invalid ishidden parameter", "770801": "Unable to get ugc content: database/Unable to get creator", "770803": "Failed generate download URL" }, "x-security": [ { "userPermissions": [ "ADMIN:NAMESPACE:{namespace}:USER:*:CONTENT [READ]" ] } ] } }, "/ugc/v1/admin/namespaces/{namespace}/contents/sharecodes/bulk": { "post": { "consumes": [ "application/json" ], "description": "Required permission \u0026lt;b\u0026gt;ADMIN:NAMESPACE:{namespace}:USER:*:CONTENT [READ]\u0026lt;/b\u0026gt;.\n\t\t\t\t\t\tMaximum sharecodes per request 100", "operationId": "AdminGetContentBulkByShareCodes", "parameters": [ { "in": "body", "name": "body", "required": true, "schema": { "$ref": "#/definitions/models.GetContentBulkByShareCodesRequest" } }, { "description": "namespace of the game", "in": "path", "name": "namespace", "required": true, "type": "string" } ], "produces": [ "application/json" ], "responses": { "200": { "description": "Bulk get content by content sharecodes", "schema": { "items": { "$ref": "#/definitions/models.ContentDownloadResponse" }, "type": "array" } }, "400": { "description": "\u003ctable\u003e\u003ctr\u003e\u003ctd\u003eerrorCode\u003c/td\u003e\u003ctd\u003eerrorMessage\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e773900\u003c/td\u003e\u003ctd\u003eMalformed request/Invalid request body\u003c/td\u003e\u003c/tr\u003e\u003c/table\u003e", "schema": { "$ref": "#/definitions/response.Error" } }, "401": { "description": "\u003ctable\u003e\u003ctr\u003e\u003ctd\u003eerrorCode\u003c/td\u003e\u003ctd\u003eerrorMessage\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e20001\u003c/td\u003e\u003ctd\u003eunauthorized access\u003c/td\u003e\u003c/tr\u003e\u003c/table\u003e", "schema": { "$ref": "#/definitions/response.Error" } }, "403": { "description": "\u003ctable\u003e\u003ctr\u003e\u003ctd\u003eerrorCode\u003c/td\u003e\u003ctd\u003eerrorMessage\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e20013\u003c/td\u003e\u003ctd\u003einsufficient permission\u003c/td\u003e\u003c/tr\u003e\u003c/table\u003e", "schema": { "$ref": "#/definitions/response.Error" } }, "500": { "description": "\u003ctable\u003e\u003ctr\u003e\u003ctd\u003eerrorCode\u003c/td\u003e\u003ctd\u003eerrorMessage\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e773901\u003c/td\u003e\u003ctd\u003eUnable to get ugc content: database/Unable to get creator\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e773902\u003c/td\u003e\u003ctd\u003eFailed generate download URL\u003c/td\u003e\u003c/tr\u003e\u003c/table\u003e", "schema": { "$ref": "#/definitions/response.Error" } } }, "security": [ { "authorization": [] } ], "summary": "Bulk get content by content sharecodes", "tags": [ "Admin Content" ], "x-errorCodes": { "20001": "unauthorized access", "20013": "insufficient permission", "773900": "Malformed request/Invalid request body", "773901": "Unable to get ugc content: database/Unable to get creator", "773902": "Failed generate download URL" }, "x-security": [ { "userPermissions": [ "ADMIN:NAMESPACE:{namespace}:USER:*:CONTENT [READ]" ] } ] } }, "/ugc/v1/admin/namespaces/{namespace}/contents/sharecodes/{shareCode}": { "get": { "consumes": [ "application/json" ], "description": "Required permission \u0026lt;b\u0026gt;ADMIN:NAMESPACE:{namespace}:USER:*:CONTENT [READ]\u0026lt;/b\u0026gt;.", "operationId": "AdminGetUserContentByShareCode", "parameters": [ { "description": "namespace of the game", "in": "path", "name": "namespace", "required": true, "type": "string" }, { "description": "content sharecode", "in": "path", "name": "shareCode", "required": true, "type": "string" } ], "produces": [ "application/json" ], "responses": { "200": { "description": "Get content by sharecode", "schema": { "$ref": "#/definitions/models.ContentDownloadResponse" } }, "401": { "description": "\u003ctable\u003e\u003ctr\u003e\u003ctd\u003eerrorCode\u003c/td\u003e\u003ctd\u003eerrorMessage\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e20001\u003c/td\u003e\u003ctd\u003eunauthorized access\u003c/td\u003e\u003c/tr\u003e\u003c/table\u003e", "schema": { "$ref": "#/definitions/response.Error" } }, "404": { "description": "\u003ctable\u003e\u003ctr\u003e\u003ctd\u003eerrorCode\u003c/td\u003e\u003ctd\u003eerrorMessage\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e770300\u003c/td\u003e\u003ctd\u003eugc content not found\u003c/td\u003e\u003c/tr\u003e\u003c/table\u003e", "schema": { "$ref": "#/definitions/response.Error" } }, "500": { "description": "\u003ctable\u003e\u003ctr\u003e\u003ctd\u003eerrorCode\u003c/td\u003e\u003ctd\u003eerrorMessage\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e770301\u003c/td\u003e\u003ctd\u003eUnable to get ugc content/Unable to get creator\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e770303\u003c/td\u003e\u003ctd\u003eFailed generate download URL\u003c/td\u003e\u003c/tr\u003e\u003c/table\u003e", "schema": { "$ref": "#/definitions/response.Error" } } }, "security": [ { "authorization": [] } ], "summary": "Get content by sharecode", "tags": [ "Admin Content" ], "x-errorCodes": { "20001": "unauthorized access", "770300": "ugc content not found", "770301": "Unable to get ugc content/Unable to get creator", "770303": "Failed generate download URL" }, "x-security": [ { "userPermissions": [ "ADMIN:NAMESPACE:{namespace}:USER:*:CONTENT [READ]" ] } ] } }, "/ugc/v1/admin/namespaces/{namespace}/contents/{contentId}": { "get": { "consumes": [ "application/json" ], "description": "Required permission \u0026lt;b\u0026gt;ADMIN:NAMESPACE:{namespace}:USER:*:CONTENT [READ]\u0026lt;/b\u0026gt;.", "operationId": "AdminGetSpecificContent", "parameters": [ { "description": "content ID", "in": "path", "name": "contentId", "required": true, "type": "string" }, { "description": "namespace of the game", "in": "path", "name": "namespace", "required": true, "type": "string" } ], "produces": [ "application/json" ], "responses": { "200": { "description": "Get user specific content", "schema": { "$ref": "#/definitions/models.ContentDownloadResponse" } }, "401": { "description": "\u003ctable\u003e\u003ctr\u003e\u003ctd\u003eerrorCode\u003c/td\u003e\u003ctd\u003eerrorMessage\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e20001\u003c/td\u003e\u003ctd\u003eunauthorized access\u003c/td\u003e\u003c/tr\u003e\u003c/table\u003e", "schema": { "$ref": "#/definitions/response.Error" } }, "404": { "description": "\u003ctable\u003e\u003ctr\u003e\u003ctd\u003eerrorCode\u003c/td\u003e\u003ctd\u003eerrorMessage\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e773200\u003c/td\u003e\u003ctd\u003eugc content not found\u003c/td\u003e\u003c/tr\u003e\u003c/table\u003e", "schema": { "$ref": "#/definitions/response.Error" } }, "500": { "description": "\u003ctable\u003e\u003ctr\u003e\u003ctd\u003eerrorCode\u003c/td\u003e\u003ctd\u003eerrorMessage\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e773201\u003c/td\u003e\u003ctd\u003eUnable to get ugc content/Unable to get creator/Unable to get included group\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e773203\u003c/td\u003e\u003ctd\u003eFailed generate download URL\u003c/td\u003e\u003c/tr\u003e\u003c/table\u003e", "schema": { "$ref": "#/definitions/response.Error" } } }, "security": [ { "authorization": [] } ], "summary": "Get user specific content", "tags": [ "Admin Content" ], "x-errorCodes": { "20001": "unauthorized access", "773200": "ugc content not found", "773201": "Unable to get ugc content/Unable to get creator/Unable to get included group", "773203": "Failed generate download URL" }, "x-security": [ { "userPermissions": [ "ADMIN:NAMESPACE:{namespace}:USER:*:CONTENT [READ]" ] } ] } }, "/ugc/v1/admin/namespaces/{namespace}/contents/{contentId}/preview": { "get": { "consumes": [ "application/json" ], "description": "Required permission \u0026lt;b\u0026gt;ADMIN:NAMESPACE:{namespace}:USER:*:CONTENT [READ]\u0026lt;/b\u0026gt;\u0026lt;p\u0026gt;\u0026lt;b\u0026gt;NOTE: Preview is Legacy Code, please use Screenshot for better solution to display preview of a content\u0026lt;/b\u0026gt;\u0026lt;/p\u0026gt;", "operationId": "AdminDownloadContentPreview", "parameters": [ { "description": "content ID", "in": "path", "name": "contentId", "required": true, "type": "string" }, { "description": "namespace of the game", "in": "path", "name": "namespace", "required": true, "type": "string" } ], "produces": [ "application/json" ], "responses": { "200": { "description": "Get content preview", "schema": { "$ref": "#/definitions/models.GetContentPreviewResponse" } }, "401": { "description": "\u003ctable\u003e\u003ctr\u003e\u003ctd\u003eerrorCode\u003c/td\u003e\u003ctd\u003eerrorMessage\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e20001\u003c/td\u003e\u003ctd\u003eunauthorized access\u003c/td\u003e\u003c/tr\u003e\u003c/table\u003e", "schema": { "$ref": "#/definitions/response.Error" } }, "404": { "description": "\u003ctable\u003e\u003ctr\u003e\u003ctd\u003eerrorCode\u003c/td\u003e\u003ctd\u003eerrorMessage\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e773702\u003c/td\u003e\u003ctd\u003eugc content not found\u003c/td\u003e\u003c/tr\u003e\u003c/table\u003e", "schema": { "$ref": "#/definitions/response.Error" } }, "500": { "description": "\u003ctable\u003e\u003ctr\u003e\u003ctd\u003eerrorCode\u003c/td\u003e\u003ctd\u003eerrorMessage\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e773701\u003c/td\u003e\u003ctd\u003eUnable to get ugc content\u003c/td\u003e\u003c/tr\u003e\u003c/table\u003e", "schema": { "$ref": "#/definitions/response.Error" } } }, "security": [ { "authorization": [] } ], "summary": "Get content preview", "tags": [ "Admin Content" ], "x-errorCodes": { "20001": "unauthorized access", "773701": "Unable to get ugc content", "773702": "ugc content not found" }, "x-security": [ { "userPermissions": [ "ADMIN:NAMESPACE:{namespace}:USER:*:CONTENT [READ]" ] } ] } }, "/ugc/v1/admin/namespaces/{namespace}/contents/{contentId}/rollback/{versionId}": { "put": { "consumes": [ "*/*" ], "description": "Required permission: \u0026lt;b\u0026gt;ADMIN:NAMESPACE:{namespace}:USER:{userId}:CONTENT [UPDATE]\u0026lt;/b\u0026gt;\n\t\t\t\tRollback content\u0026#39;s payload to specified version.", "operationId": "RollbackContentVersion", "parameters": [ { "description": "content ID", "in": "path", "name": "contentId", "required": true, "type": "string" }, { "description": "namespace of the game", "in": "path", "name": "namespace", "required": true, "type": "string" }, { "description": "version ID", "in": "path", "name": "versionId", "required": true, "type": "string" } ], "produces": [ "application/json" ], "responses": { "200": { "description": "Rollback content's payload version", "schema": { "$ref": "#/definitions/models.ContentDownloadResponse" } }, "401": { "description": "\u003ctable\u003e\u003ctr\u003e\u003ctd\u003eerrorCode\u003c/td\u003e\u003ctd\u003eerrorMessage\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e20001\u003c/td\u003e\u003ctd\u003eunauthorized access\u003c/td\u003e\u003c/tr\u003e\u003c/table\u003e", "schema": { "$ref": "#/definitions/response.Error" } }, "404": { "description": "\u003ctable\u003e\u003ctr\u003e\u003ctd\u003eerrorCode\u003c/td\u003e\u003ctd\u003eerrorMessage\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e774101\u003c/td\u003e\u003ctd\u003eugc content not found\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e774102\u003c/td\u003e\u003ctd\u003eversion not found\u003c/td\u003e\u003c/tr\u003e\u003c/table\u003e", "schema": { "$ref": "#/definitions/response.Error" } }, "422": { "description": "\u003ctable\u003e\u003ctr\u003e\u003ctd\u003eerrorCode\u003c/td\u003e\u003ctd\u003eerrorMessage\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e774103\u003c/td\u003e\u003ctd\u003eunable to get ugc content/content cannot be restored using the current content version\u003c/td\u003e\u003c/tr\u003e\u003c/table\u003e", "schema": { "$ref": "#/definitions/response.Error" } }, "500": { "description": "\u003ctable\u003e\u003ctr\u003e\u003ctd\u003eerrorCode\u003c/td\u003e\u003ctd\u003eerrorMessage\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e774103\u003c/td\u003e\u003ctd\u003eunable to get ugc content/content cannot be restored using the current content version\u003c/td\u003e\u003c/tr\u003e\u003c/table\u003e", "schema": { "$ref": "#/definitions/response.Error" } } }, "security": [ { "authorization": [] } ], "summary": "Rollback content's payload version", "tags": [ "Admin Content" ], "x-errorCodes": { "20001": "unauthorized access", "774101": "ugc content not found", "774102": "version not found", "774103": "unable to get ugc content/content cannot be restored using the current content version" }, "x-security": [ { "userPermissions": [ "ADMIN:NAMESPACE:{namespace}:USER:{userId}:CONTENT [UPDATE]" ] } ] } }, "/ugc/v1/admin/namespaces/{namespace}/contents/{contentId}/screenshots": { "post": { "consumes": [ "application/json" ], "description": "All request body are required except for *contentType* field. \n*contentType* values is used to enforce the *Content-Type* header needed by the client to upload the content using the presigned URL.\nIf not specified, it will use *fileExtension* value.\nSupported file extensions: *pjp*, *jpg*, *jpeg*, *jfif*, *bmp*, *png*.\nMaximum description length: 1024", "operationId": "AdminUploadContentScreenshot", "parameters": [ { "in": "body", "name": "body", "required": true, "schema": { "$ref": "#/definitions/models.CreateScreenshotRequest" } }, { "description": "content ID", "in": "path", "name": "contentId", "required": true, "type": "string" }, { "description": "namespace of the game", "in": "path", "name": "namespace", "required": true, "type": "string" } ], "produces": [ "application/json" ], "responses": { "201": { "description": "Screenshots uploaded", "schema": { "$ref": "#/definitions/models.CreateScreenshotResponse" } }, "400": { "description": "\u003ctable\u003e\u003ctr\u003e\u003ctd\u003eerrorCode\u003c/td\u003e\u003ctd\u003eerrorMessage\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e772601\u003c/td\u003e\u003ctd\u003eMalformed request\u003c/td\u003e\u003c/tr\u003e\u003c/table\u003e", "schema": { "$ref": "#/definitions/response.Error" } }, "401": { "description": "\u003ctable\u003e\u003ctr\u003e\u003ctd\u003eerrorCode\u003c/td\u003e\u003ctd\u003eerrorMessage\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e20001\u003c/td\u003e\u003ctd\u003eunauthorized access\u003c/td\u003e\u003c/tr\u003e\u003c/table\u003e", "schema": { "$ref": "#/definitions/response.Error" } }, "403": { "description": "\u003ctable\u003e\u003ctr\u003e\u003ctd\u003eerrorCode\u003c/td\u003e\u003ctd\u003eerrorMessage\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e772604\u003c/td\u003e\u003ctd\u003eUser has been banned to update content\u003c/td\u003e\u003c/tr\u003e\u003c/table\u003e", "schema": { "$ref": "#/definitions/response.Error" } }, "404": { "description": "\u003ctable\u003e\u003ctr\u003e\u003ctd\u003eerrorCode\u003c/td\u003e\u003ctd\u003eerrorMessage\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e772603\u003c/td\u003e\u003ctd\u003eContent not found\u003c/td\u003e\u003c/tr\u003e\u003c/table\u003e", "schema": { "$ref": "#/definitions/response.Error" } }, "500": { "description": "\u003ctable\u003e\u003ctr\u003e\u003ctd\u003eerrorCode\u003c/td\u003e\u003ctd\u003eerrorMessage\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e772602\u003c/td\u003e\u003ctd\u003eUnable to check user ban status/Unable to get updated ugc content\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e772605\u003c/td\u003e\u003ctd\u003eUnable to save ugc content: failed generate upload URL\u003c/td\u003e\u003c/tr\u003e\u003c/table\u003e", "schema": { "$ref": "#/definitions/response.Error" } } }, "security": [ { "authorization": [] } ], "summary": "Upload screenshots for official content", "tags": [ "Admin Content" ], "x-errorCodes": { "20001": "unauthorized access", "772601": "Malformed request", "772602": "Unable to check user ban status/Unable to get updated ugc content", "772603": "Content not found", "772604": "User has been banned to update content", "772605": "Unable to save ugc content: failed generate upload URL" }, "x-security": [ { "userPermissions": [ "ADMIN:NAMESPACE:{namespace}:USER:{userId}:CONTENT [CREATE]" ] } ] }, "put": { "consumes": [ "application/json" ], "description": "Maximum description length: 1024", "operationId": "AdminUpdateScreenshots", "parameters": [ { "in": "body", "name": "body", "required": true, "schema": { "$ref": "#/definitions/models.UpdateScreenshotRequest" } }, { "description": "content ID", "in": "path", "name": "contentId", "required": true, "type": "string" }, { "description": "namespace of the game", "in": "path", "name": "namespace", "required": true, "type": "string" } ], "produces": [ "application/json" ], "responses": { "200": { "description": "Screenshot updated", "schema": { "$ref": "#/definitions/models.UpdateScreenshotResponse" } }, "400": { "description": "\u003ctable\u003e\u003ctr\u003e\u003ctd\u003eerrorCode\u003c/td\u003e\u003ctd\u003eerrorMessage\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e772601\u003c/td\u003e\u003ctd\u003eMalformed request\u003c/td\u003e\u003c/tr\u003e\u003c/table\u003e", "schema": { "$ref": "#/definitions/response.Error" } }, "401": { "description": "\u003ctable\u003e\u003ctr\u003e\u003ctd\u003eerrorCode\u003c/td\u003e\u003ctd\u003eerrorMessage\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e20001\u003c/td\u003e\u003ctd\u003eunauthorized access\u003c/td\u003e\u003c/tr\u003e\u003c/table\u003e", "schema": { "$ref": "#/definitions/response.Error" } }, "403": { "description": "\u003ctable\u003e\u003ctr\u003e\u003ctd\u003eerrorCode\u003c/td\u003e\u003ctd\u003eerrorMessage\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e772604\u003c/td\u003e\u003ctd\u003eUser has been banned to update content\u003c/td\u003e\u003c/tr\u003e\u003c/table\u003e", "schema": { "$ref": "#/definitions/response.Error" } }, "404": { "description": "\u003ctable\u003e\u003ctr\u003e\u003ctd\u003eerrorCode\u003c/td\u003e\u003ctd\u003eerrorMessage\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e772603\u003c/td\u003e\u003ctd\u003eContent not found\u003c/td\u003e\u003c/tr\u003e\u003c/table\u003e", "schema": { "$ref": "#/definitions/response.Error" } }, "500": { "description": "\u003ctable\u003e\u003ctr\u003e\u003ctd\u003eerrorCode\u003c/td\u003e\u003ctd\u003eerrorMessage\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e772602\u003c/td\u003e\u003ctd\u003eUnable to check user ban status/Unable to get updated ugc content\u003c/td\u003e\u003c/tr\u003e\u003c/table\u003e", "schema": { "$ref": "#/definitions/response.Error" } } }, "security": [ { "authorization": [] } ], "summary": "Update screenshot of content", "tags": [ "Admin Content" ], "x-errorCodes": { "20001": "unauthorized access", "772601": "Malformed request", "772602": "Unable to check user ban status/Unable to get updated ugc content", "772603": "Content not found", "772604": "User has been banned to update content" }, "x-security": [ { "userPermissions": [ "ADMIN:NAMESPACE:{namespace}:USER:{userId}:CONTENT [UPDATE]" ] } ] } }, "/ugc/v1/admin/namespaces/{namespace}/contents/{contentId}/screenshots/{screenshotId}": { "delete": { "consumes": [ "application/json" ], "description": "Delete existing screenshot from a content", "operationId": "AdminDeleteContentScreenshot", "parameters": [ { "description": "content ID", "in": "path", "name": "contentId", "required": true, "type": "string" }, { "description": "namespace of the game", "in": "path", "name": "namespace", "required": true, "type": "string" }, { "description": "screenshot ID", "in": "path", "name": "screenshotId", "required": true, "type": "string" } ], "produces": [ "application/json" ], "responses": { "204": { "description": "Screenshot deleted" }, "400": { "description": "\u003ctable\u003e\u003ctr\u003e\u003ctd\u003eerrorCode\u003c/td\u003e\u003ctd\u003eerrorMessage\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e772602\u003c/td\u003e\u003ctd\u003eUnable to check user ban status/Unable to get updated ugc content\u003c/td\u003e\u003c/tr\u003e\u003c/table\u003e", "schema": { "$ref": "#/definitions/response.Error" } }, "401": { "description": "\u003ctable\u003e\u003ctr\u003e\u003ctd\u003eerrorCode\u003c/td\u003e\u003ctd\u003eerrorMessage\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e20001\u003c/td\u003e\u003ctd\u003eunauthorized access\u003c/td\u003e\u003c/tr\u003e\u003c/table\u003e", "schema": { "$ref": "#/definitions/response.Error" } }, "403": { "description": "\u003ctable\u003e\u003ctr\u003e\u003ctd\u003eerrorCode\u003c/td\u003e\u003ctd\u003eerrorMessage\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e772604\u003c/td\u003e\u003ctd\u003eUser has been banned to update content\u003c/td\u003e\u003c/tr\u003e\u003c/table\u003e", "schema": { "$ref": "#/definitions/response.Error" } }, "404": { "description": "\u003ctable\u003e\u003ctr\u003e\u003ctd\u003eerrorCode\u003c/td\u003e\u003ctd\u003eerrorMessage\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e772603\u003c/td\u003e\u003ctd\u003eContent not found\u003c/td\u003e\u003c/tr\u003e\u003c/table\u003e", "schema": { "$ref": "#/definitions/response.Error" } }, "500": { "description": "\u003ctable\u003e\u003ctr\u003e\u003ctd\u003eerrorCode\u003c/td\u003e\u003ctd\u003eerrorMessage\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e772602\u003c/td\u003e\u003ctd\u003eUnable to check user ban status/Unable to get updated ugc content\u003c/td\u003e\u003c/tr\u003e\u003c/table\u003e", "schema": { "$ref": "#/definitions/response.Error" } } }, "security": [ { "authorization": [] } ], "summary": "Delete content's screenshot", "tags": [ "Admin Content" ], "x-errorCodes": { "20001": "unauthorized access", "772602": "Unable to check user ban status/Unable to get updated ugc content", "772603": "Content not found", "772604": "User has been banned to update content" }, "x-security": [ { "userPermissions": [ "ADMIN:NAMESPACE:{namespace}:USER:{userId}:CONTENT [DELETE]" ] } ] } }, "/ugc/v1/admin/namespaces/{namespace}/contents/{contentId}/versions": { "get": { "consumes": [ "application/json" ], "description": "Required permission: \u0026lt;b\u0026gt;ADMIN:NAMESPACE:{namespace}:USER:{userId}:CONTENT [READ]\u0026lt;/b\u0026gt;\n\t\t\t\tContent\u0026#39;s payload versions created when UGC is created or updated with \u0026lt;code\u0026gt;updateContentFile\u0026lt;/code\u0026gt; set to true. Only list up to 10 latest versions.", "operationId": "ListContentVersions", "parameters": [ { "description": "content ID", "in": "path", "name": "contentId", "required": true, "type": "string" }, { "description": "namespace of the game", "in": "path", "name": "namespace", "required": true, "type": "string" } ], "produces": [ "application/json" ], "responses": { "200": { "description": "list content's payload versions", "schema": { "$ref": "#/definitions/models.ListContentVersionsResponse" } }, "401": { "description": "\u003ctable\u003e\u003ctr\u003e\u003ctd\u003eerrorCode\u003c/td\u003e\u003ctd\u003eerrorMessage\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e20001\u003c/td\u003e\u003ctd\u003eunauthorized access\u003c/td\u003e\u003c/tr\u003e\u003c/table\u003e", "schema": { "$ref": "#/definitions/response.Error" } }, "404": { "description": "\u003ctable\u003e\u003ctr\u003e\u003ctd\u003eerrorCode\u003c/td\u003e\u003ctd\u003eerrorMessage\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e774004\u003c/td\u003e\u003ctd\u003eugc content not found\u003c/td\u003e\u003c/tr\u003e\u003c/table\u003e", "schema": { "$ref": "#/definitions/response.Error" } }, "500": { "description": "\u003ctable\u003e\u003ctr\u003e\u003ctd\u003eerrorCode\u003c/td\u003e\u003ctd\u003eerrorMessage\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e774005\u003c/td\u003e\u003ctd\u003eunable to get ugc content\u003c/td\u003e\u003c/tr\u003e\u003c/table\u003e", "schema": { "$ref": "#/definitions/response.Error" } } }, "security": [ { "authorization": [] } ], "summary": "List content's payload versions", "tags": [ "Admin Content" ], "x-errorCodes": { "20001": "unauthorized access", "774004": "ugc content not found", "774005": "unable to get ugc content" }, "x-security": [ { "userPermissions": [ "ADMIN:NAMESPACE:{namespace}:USER:{userId}:CONTENT [READ]" ] } ] } }, "/ugc/v1/admin/namespaces/{namespace}/groups": { "get": { "consumes": [ "application/json" ], "description": "Get user group paginated", "operationId": "SingleAdminGetAllGroups", "parameters": [ { "description": "namespace of the game", "in": "path", "name": "namespace", "required": true, "type": "string" }, { "default": 20, "description": "number of content per page", "in": "query", "name": "limit", "type": "integer" }, { "default": 0, "description": "the offset number to retrieve", "in": "query", "name": "offset", "type": "integer" } ], "produces": [ "application/json" ], "responses": { "200": { "description": "Get all user group", "schema": { "$ref": "#/definitions/models.PaginatedGroupResponse" } }, "400": { "description": "\u003ctable\u003e\u003ctr\u003e\u003ctd\u003eerrorCode\u003c/td\u003e\u003ctd\u003eerrorMessage\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e772301\u003c/td\u003e\u003ctd\u003einvalid paging parameter\u003c/td\u003e\u003c/tr\u003e\u003c/table\u003e", "schema": { "$ref": "#/definitions/response.Error" } }, "401": { "description": "\u003ctable\u003e\u003ctr\u003e\u003ctd\u003eerrorCode\u003c/td\u003e\u003ctd\u003eerrorMessage\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e20001\u003c/td\u003e\u003ctd\u003eunauthorized access\u003c/td\u003e\u003c/tr\u003e\u003c/table\u003e", "schema": { "$ref": "#/definitions/response.Error" } }, "500": { "description": "\u003ctable\u003e\u003ctr\u003e\u003ctd\u003eerrorCode\u003c/td\u003e\u003ctd\u003eerrorMessage\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e772302\u003c/td\u003e\u003ctd\u003eUnable get groups\u003c/td\u003e\u003c/tr\u003e\u003c/table\u003e", "schema": { "$ref": "#/definitions/response.Error" } } }, "security": [ { "authorization": [] } ], "summary": "Get all user groups", "tags": [ "Admin Group" ], "x-errorCodes": { "20001": "unauthorized access", "772301": "invalid paging parameter", "772302": "Unable get groups" }, "x-security": [ { "userPermissions": [ "ADMIN:NAMESPACE:{namespace}:USER:{userId}:CONTENTGROUP [READ]" ] } ] }, "post": { "consumes": [ "application/json" ], "description": "Create group", "operationId": "AdminCreateGroup", "parameters": [ { "in": "body", "name": "body", "required": true, "schema": { "$ref": "#/definitions/models.CreateGroupRequest" } }, { "description": "namespace of the game", "in": "path", "name": "namespace", "required": true, "type": "string" } ], "produces": [ "application/json" ], "responses": { "201": { "description": "groups created", "schema": { "$ref": "#/definitions/models.CreateGroupResponse" } }, "400": { "description": "\u003ctable\u003e\u003ctr\u003e\u003ctd\u003eerrorCode\u003c/td\u003e\u003ctd\u003eerrorMessage\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e772101\u003c/td\u003e\u003ctd\u003eMalformed request/Invalid request body\u003c/td\u003e\u003c/tr\u003e\u003c/table\u003e", "schema": { "$ref": "#/definitions/response.Error" } }, "401": { "description": "\u003ctable\u003e\u003ctr\u003e\u003ctd\u003eerrorCode\u003c/td\u003e\u003ctd\u003eerrorMessage\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e20001\u003c/td\u003e\u003ctd\u003eunauthorized access\u003c/td\u003e\u003c/tr\u003e\u003c/table\u003e", "schema": { "$ref": "#/definitions/response.Error" } }, "500": { "description": "\u003ctable\u003e\u003ctr\u003e\u003ctd\u003eerrorCode\u003c/td\u003e\u003ctd\u003eerrorMessage\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e772102\u003c/td\u003e\u003ctd\u003eUnable to create group\u003c/td\u003e\u003c/tr\u003e\u003c/table\u003e", "schema": { "$ref": "#/definitions/response.Error" } } }, "security": [ { "authorization": [] } ], "summary": "Create groups", "tags": [ "Admin Group" ], "x-errorCodes": { "20001": "unauthorized access", "772101": "Malformed request/Invalid request body", "772102": "Unable to create group" }, "x-security": [ { "userPermissions": [ "ADMIN:NAMESPACE:{namespace}:USER:{userId}:CONTENTGROUP [CREATE]" ] } ] } }, "/ugc/v1/admin/namespaces/{namespace}/groups/{groupId}": { "delete": { "consumes": [ "application/json" ], "description": "Delete group by group ID", "operationId": "SingleAdminDeleteGroup", "parameters": [ { "description": "group ID", "in": "path", "name": "groupId", "required": true, "type": "string" }, { "description": "namespace of the game", "in": "path", "name": "namespace", "required": true, "type": "string" } ], "produces": [ "application/json" ], "responses": { "204": { "description": "Group deleted" }, "401": { "description": "\u003ctable\u003e\u003ctr\u003e\u003ctd\u003eerrorCode\u003c/td\u003e\u003ctd\u003eerrorMessage\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e20001\u003c/td\u003e\u003ctd\u003eunauthorized access\u003c/td\u003e\u003c/tr\u003e\u003c/table\u003e", "schema": { "$ref": "#/definitions/response.Error" } }, "404": { "description": "\u003ctable\u003e\u003ctr\u003e\u003ctd\u003eerrorCode\u003c/td\u003e\u003ctd\u003eerrorMessage\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e772403\u003c/td\u003e\u003ctd\u003eGroup not found\u003c/td\u003e\u003c/tr\u003e\u003c/table\u003e", "schema": { "$ref": "#/definitions/response.Error" } }, "500": { "description": "\u003ctable\u003e\u003ctr\u003e\u003ctd\u003eerrorCode\u003c/td\u003e\u003ctd\u003eerrorMessage\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e772402\u003c/td\u003e\u003ctd\u003eUnable delete groups\u003c/td\u003e\u003c/tr\u003e\u003c/table\u003e", "schema": { "$ref": "#/definitions/response.Error" } } }, "security": [ { "authorization": [] } ], "summary": "Delete group", "tags": [ "Admin Group" ], "x-errorCodes": { "20001": "unauthorized access", "772402": "Unable delete groups", "772403": "Group not found" }, "x-security": [ { "userPermissions": [ "ADMIN:NAMESPACE:{namespace}:USER:{userId}:CONTENTGROUP [DELETE]" ] } ] }, "get": { "consumes": [ "application/json" ], "description": "Get user group by group ID", "operationId": "SingleAdminGetGroup", "parameters": [ { "description": "group ID", "in": "path", "name": "groupId", "required": true, "type": "string" }, { "description": "namespace of the game", "in": "path", "name": "namespace", "required": true, "type": "string" } ], "produces": [ "application/json" ], "responses": { "200": { "description": "Get specific group", "schema": { "$ref": "#/definitions/models.CreateGroupResponse" } }, "401": { "description": "\u003ctable\u003e\u003ctr\u003e\u003ctd\u003eerrorCode\u003c/td\u003e\u003ctd\u003eerrorMessage\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e20001\u003c/td\u003e\u003ctd\u003eunauthorized access\u003c/td\u003e\u003c/tr\u003e\u003c/table\u003e", "schema": { "$ref": "#/definitions/response.Error" } }, "404": { "description": "\u003ctable\u003e\u003ctr\u003e\u003ctd\u003eerrorCode\u003c/td\u003e\u003ctd\u003eerrorMessage\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e773002\u003c/td\u003e\u003ctd\u003eGroup not found\u003c/td\u003e\u003c/tr\u003e\u003c/table\u003e", "schema": { "$ref": "#/definitions/response.Error" } }, "500": { "description": "\u003ctable\u003e\u003ctr\u003e\u003ctd\u003eerrorCode\u003c/td\u003e\u003ctd\u003eerrorMessage\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e773001\u003c/td\u003e\u003ctd\u003eUnable get group\u003c/td\u003e\u003c/tr\u003e\u003c/table\u003e", "schema": { "$ref": "#/definitions/response.Error" } } }, "security": [ { "authorization": [] } ], "summary": "Get specific user group", "tags": [ "Admin Group" ], "x-errorCodes": { "20001": "unauthorized access", "773001": "Unable get group", "773002": "Group not found" }, "x-security": [ { "userPermissions": [ "ADMIN:NAMESPACE:{namespace}:USER:{userId}:CONTENTGROUP [READ]" ] } ] }, "put": { "consumes": [ "application/json" ], "description": "Replace group name and contents with new ones.", "operationId": "SingleAdminUpdateGroup", "parameters": [ { "in": "body", "name": "body", "required": true, "schema": { "$ref": "#/definitions/models.CreateGroupRequest" } }, { "description": "group ID", "in": "path", "name": "groupId", "required": true, "type": "string" }, { "description": "namespace of the game", "in": "path", "name": "namespace", "required": true, "type": "string" } ], "produces": [ "application/json" ], "responses": { "200": { "description": "Group updated", "schema": { "$ref": "#/definitions/models.CreateGroupResponse" } }, "400": { "description": "\u003ctable\u003e\u003ctr\u003e\u003ctd\u003eerrorCode\u003c/td\u003e\u003ctd\u003eerrorMessage\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e772201\u003c/td\u003e\u003ctd\u003eMalformed request/Invalid request body\u003c/td\u003e\u003c/tr\u003e\u003c/table\u003e", "schema": { "$ref": "#/definitions/response.Error" } }, "401": { "description": "\u003ctable\u003e\u003ctr\u003e\u003ctd\u003eerrorCode\u003c/td\u003e\u003ctd\u003eerrorMessage\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e20001\u003c/td\u003e\u003ctd\u003eunauthorized access\u003c/td\u003e\u003c/tr\u003e\u003c/table\u003e", "schema": { "$ref": "#/definitions/response.Error" } }, "404": { "description": "\u003ctable\u003e\u003ctr\u003e\u003ctd\u003eerrorCode\u003c/td\u003e\u003ctd\u003eerrorMessage\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e772203\u003c/td\u003e\u003ctd\u003eGroup not found\u003c/td\u003e\u003c/tr\u003e\u003c/table\u003e", "schema": { "$ref": "#/definitions/response.Error" } }, "500": { "description": "\u003ctable\u003e\u003ctr\u003e\u003ctd\u003eerrorCode\u003c/td\u003e\u003ctd\u003eerrorMessage\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e772202\u003c/td\u003e\u003ctd\u003eUnable to update group\u003c/td\u003e\u003c/tr\u003e\u003c/table\u003e", "schema": { "$ref": "#/definitions/response.Error" } } }, "security": [ { "authorization": [] } ], "summary": "Update group", "tags": [ "Admin Group" ], "x-errorCodes": { "20001": "unauthorized access", "772201": "Malformed request/Invalid request body", "772202": "Unable to update group", "772203": "Group not found" }, "x-security": [ { "userPermissions": [ "ADMIN:NAMESPACE:{namespace}:USER:{userId}:CONTENTGROUP [UPDATE]" ] } ] } }, "/ugc/v1/admin/namespaces/{namespace}/groups/{groupId}/contents": { "get": { "consumes": [ "application/json" ], "description": "Get content belong to a group", "operationId": "SingleAdminGetGroupContents", "parameters": [ { "description": "group ID", "in": "path", "name": "groupId", "required": true, "type": "string" }, { "description": "namespace of the game", "in": "path", "name": "namespace", "required": true, "type": "string" }, { "default": 20, "description": "number of content per page", "in": "query", "name": "limit", "type": "integer" }, { "default": 0, "description": "the offset number to retrieve", "in": "query", "name": "offset", "type": "integer" } ], "produces": [ "application/json" ], "responses": { "200": { "description": "Get contents belong to a group", "schema": { "$ref": "#/definitions/models.PaginatedContentDownloadResponse" } }, "400": { "description": "\u003ctable\u003e\u003ctr\u003e\u003ctd\u003eerrorCode\u003c/td\u003e\u003ctd\u003eerrorMessage\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e773101\u003c/td\u003e\u003ctd\u003einvalid paging parameter\u003c/td\u003e\u003c/tr\u003e\u003c/table\u003e", "schema": { "$ref": "#/definitions/response.Error" } }, "401": { "description": "\u003ctable\u003e\u003ctr\u003e\u003ctd\u003eerrorCode\u003c/td\u003e\u003ctd\u003eerrorMessage\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e20001\u003c/td\u003e\u003ctd\u003eunauthorized access\u003c/td\u003e\u003c/tr\u003e\u003c/table\u003e", "schema": { "$ref": "#/definitions/response.Error" } }, "404": { "description": "\u003ctable\u003e\u003ctr\u003e\u003ctd\u003eerrorCode\u003c/td\u003e\u003ctd\u003eerrorMessage\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e773103\u003c/td\u003e\u003ctd\u003eNo group content was found\u003c/td\u003e\u003c/tr\u003e\u003c/table\u003e", "schema": { "$ref": "#/definitions/response.Error" } }, "500": { "description": "\u003ctable\u003e\u003ctr\u003e\u003ctd\u003eerrorCode\u003c/td\u003e\u003ctd\u003eerrorMessage\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e773102\u003c/td\u003e\u003ctd\u003eUnable to get ugc content: database error\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e770901\u003c/td\u003e\u003ctd\u003eUnable to get ugc content: database error/Unable to get creator\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e770903\u003c/td\u003e\u003ctd\u003eFailed generate download URL\u003c/td\u003e\u003c/tr\u003e\u003c/table\u003e", "schema": { "$ref": "#/definitions/response.Error" } } }, "security": [ { "authorization": [] } ], "summary": "(Legacy) Get contents belong to a group", "tags": [ "Admin Group" ], "x-errorCodes": { "20001": "unauthorized access", "770901": "Unable to get ugc content: database error/Unable to get creator", "770903": "Failed generate download URL", "773101": "invalid paging parameter", "773102": "Unable to get ugc content: database error", "773103": "No group content was found" }, "x-security": [ { "userPermissions": [ "ADMIN:NAMESPACE:{namespace}:USER:{userId}:CONTENT [READ]" ] } ] } }, "/ugc/v1/admin/namespaces/{namespace}/tags": { "get": { "consumes": [ "application/json" ], "description": "Get available tags paginated", "operationId": "AdminGetTag", "parameters": [ { "description": "namespace of the game", "in": "path", "name": "namespace", "required": true, "type": "string" }, { "default": 20, "description": "number of content per page", "in": "query", "name": "limit", "type": "integer" }, { "default": 0, "description": "the offset number to retrieve", "in": "query", "name": "offset", "type": "integer" } ], "produces": [ "application/json" ], "responses": { "200": { "description": "Get Tags", "schema": { "$ref": "#/definitions/models.PaginatedGetTagResponse" } }, "400": { "description": "\u003ctable\u003e\u003ctr\u003e\u003ctd\u003eerrorCode\u003c/td\u003e\u003ctd\u003eerrorMessage\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e771501\u003c/td\u003e\u003ctd\u003einvalid paging parameter\u003c/td\u003e\u003c/tr\u003e\u003c/table\u003e", "schema": { "$ref": "#/definitions/response.Error" } }, "401": { "description": "\u003ctable\u003e\u003ctr\u003e\u003ctd\u003eerrorCode\u003c/td\u003e\u003ctd\u003eerrorMessage\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e20001\u003c/td\u003e\u003ctd\u003eunauthorized access\u003c/td\u003e\u003c/tr\u003e\u003c/table\u003e", "schema": { "$ref": "#/definitions/response.Error" } }, "500": { "description": "\u003ctable\u003e\u003ctr\u003e\u003ctd\u003eerrorCode\u003c/td\u003e\u003ctd\u003eerrorMessage\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e771402\u003c/td\u003e\u003ctd\u003eUnable to save ugc tag\u003c/td\u003e\u003c/tr\u003e\u003c/table\u003e", "schema": { "$ref": "#/definitions/response.Error" } } }, "security": [ { "authorization": [] } ], "summary": "Get tags", "tags": [ "Admin Tag" ], "x-errorCodes": { "20001": "unauthorized access", "771402": "Unable to save ugc tag", "771501": "invalid paging parameter" }, "x-security": [ { "userPermissions": [ "ADMIN:NAMESPACE:{namespace}:UGCCONFIG [READ]" ] } ] }, "post": { "consumes": [ "application/json" ], "description": "Creates a new tag", "operationId": "AdminCreateTag", "parameters": [ { "in": "body", "name": "body", "required": true, "schema": { "$ref": "#/definitions/models.CreateTagRequest" } }, { "description": "namespace of the game", "in": "path", "name": "namespace", "required": true, "type": "string" } ], "produces": [ "application/json" ], "responses": { "201": { "description": "Tags created", "schema": { "$ref": "#/definitions/models.CreateTagResponse" } }, "400": { "description": "\u003ctable\u003e\u003ctr\u003e\u003ctd\u003eerrorCode\u003c/td\u003e\u003ctd\u003eerrorMessage\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e771401\u003c/td\u003e\u003ctd\u003eMalformed request/Invalid request body\u003c/td\u003e\u003c/tr\u003e\u003c/table\u003e", "schema": { "$ref": "#/definitions/response.Error" } }, "401": { "description": "\u003ctable\u003e\u003ctr\u003e\u003ctd\u003eerrorCode\u003c/td\u003e\u003ctd\u003eerrorMessage\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e20001\u003c/td\u003e\u003ctd\u003eunauthorized access\u003c/td\u003e\u003c/tr\u003e\u003c/table\u003e", "schema": { "$ref": "#/definitions/response.Error" } }, "409": { "description": "\u003ctable\u003e\u003ctr\u003e\u003ctd\u003eerrorCode\u003c/td\u003e\u003ctd\u003eerrorMessage\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e771403\u003c/td\u003e\u003ctd\u003eConflicted resource indentifier\u003c/td\u003e\u003c/tr\u003e\u003c/table\u003e", "schema": { "$ref": "#/definitions/response.Error" } }, "500": { "description": "\u003ctable\u003e\u003ctr\u003e\u003ctd\u003eerrorCode\u003c/td\u003e\u003ctd\u003eerrorMessage\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e771402\u003c/td\u003e\u003ctd\u003eUnable to save ugc tag\u003c/td\u003e\u003c/tr\u003e\u003c/table\u003e", "schema": { "$ref": "#/definitions/response.Error" } } }, "security": [ { "authorization": [] } ], "summary": "Create tags", "tags": [ "Admin Tag" ], "x-errorCodes": { "20001": "unauthorized access", "771401": "Malformed request/Invalid request body", "771402": "Unable to save ugc tag", "771403": "Conflicted resource indentifier" }, "x-security": [ { "userPermissions": [ "ADMIN:NAMESPACE:{namespace}:UGCCONFIG [CREATE]" ] } ] } }, "/ugc/v1/admin/namespaces/{namespace}/tags/{tagId}": { "delete": { "consumes": [ "application/json" ], "description": "Delete existing tag", "operationId": "AdminDeleteTag", "parameters": [ { "description": "namespace of the game", "in": "path", "name": "namespace", "required": true, "type": "string" }, { "description": "tag ID", "in": "path", "name": "tagId", "required": true, "type": "string" } ], "produces": [ "application/json" ], "responses": { "204": { "description": "Tags deleted" }, "401": { "description": "\u003ctable\u003e\u003ctr\u003e\u003ctd\u003eerrorCode\u003c/td\u003e\u003ctd\u003eerrorMessage\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e20001\u003c/td\u003e\u003ctd\u003eunauthorized access\u003c/td\u003e\u003c/tr\u003e\u003c/table\u003e", "schema": { "$ref": "#/definitions/response.Error" } }, "404": { "description": "\u003ctable\u003e\u003ctr\u003e\u003ctd\u003eerrorCode\u003c/td\u003e\u003ctd\u003eerrorMessage\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e772003\u003c/td\u003e\u003ctd\u003eTag not found\u003c/td\u003e\u003c/tr\u003e\u003c/table\u003e", "schema": { "$ref": "#/definitions/response.Error" } }, "500": { "description": "\u003ctable\u003e\u003ctr\u003e\u003ctd\u003eerrorCode\u003c/td\u003e\u003ctd\u003eerrorMessage\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e772002\u003c/td\u003e\u003ctd\u003eUnable delete tag\u003c/td\u003e\u003c/tr\u003e\u003c/table\u003e", "schema": { "$ref": "#/definitions/response.Error" } } }, "security": [ { "authorization": [] } ], "summary": "Delete tags", "tags": [ "Admin Tag" ], "x-errorCodes": { "20001": "unauthorized access", "772002": "Unable delete tag", "772003": "Tag not found" }, "x-security": [ { "userPermissions": [ "ADMIN:NAMESPACE:{namespace}:UGCCONFIG [DELETE]" ] } ] }, "put": { "consumes": [ "application/json" ], "description": "Update existing tag", "operationId": "AdminUpdateTag", "parameters": [ { "in": "body", "name": "body", "required": true, "schema": { "$ref": "#/definitions/models.CreateTagRequest" } }, { "description": "namespace of the game", "in": "path", "name": "namespace", "required": true, "type": "string" }, { "description": "tag ID", "in": "path", "name": "tagId", "required": true, "type": "string" } ], "produces": [ "application/json" ], "responses": { "200": { "description": "Tags updated", "schema": { "$ref": "#/definitions/models.CreateTagResponse" } }, "400": { "description": "\u003ctable\u003e\u003ctr\u003e\u003ctd\u003eerrorCode\u003c/td\u003e\u003ctd\u003eerrorMessage\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e772801\u003c/td\u003e\u003ctd\u003eMalformed request/Invalid request body\u003c/td\u003e\u003c/tr\u003e\u003c/table\u003e", "schema": { "$ref": "#/definitions/response.Error" } }, "401": { "description": "\u003ctable\u003e\u003ctr\u003e\u003ctd\u003eerrorCode\u003c/td\u003e\u003ctd\u003eerrorMessage\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e20001\u003c/td\u003e\u003ctd\u003eunauthorized access\u003c/td\u003e\u003c/tr\u003e\u003c/table\u003e", "schema": { "$ref": "#/definitions/response.Error" } }, "404": { "description": "\u003ctable\u003e\u003ctr\u003e\u003ctd\u003eerrorCode\u003c/td\u003e\u003ctd\u003eerrorMessage\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e772803\u003c/td\u003e\u003ctd\u003eTag not found\u003c/td\u003e\u003c/tr\u003e\u003c/table\u003e", "schema": { "$ref": "#/definitions/response.Error" } }, "409": { "description": "\u003ctable\u003e\u003ctr\u003e\u003ctd\u003eerrorCode\u003c/td\u003e\u003ctd\u003eerrorMessage\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e772804\u003c/td\u003e\u003ctd\u003eProposed Tag already exist\u003c/td\u003e\u003c/tr\u003e\u003c/table\u003e", "schema": { "$ref": "#/definitions/response.Error" } }, "500": { "description": "\u003ctable\u003e\u003ctr\u003e\u003ctd\u003eerrorCode\u003c/td\u003e\u003ctd\u003eerrorMessage\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e772802\u003c/td\u003e\u003ctd\u003eUnable update tags\u003c/td\u003e\u003c/tr\u003e\u003c/table\u003e", "schema": { "$ref": "#/definitions/response.Error" } } }, "security": [ { "authorization": [] } ], "summary": "Update tag", "tags": [ "Admin Tag" ], "x-errorCodes": { "20001": "unauthorized access", "772801": "Malformed request/Invalid request body", "772802": "Unable update tags", "772803": "Tag not found", "772804": "Proposed Tag already exist" }, "x-security": [ { "userPermissions": [ "ADMIN:NAMESPACE:{namespace}:UGCCONFIG [UPDATE]" ] } ] } }, "/ugc/v1/admin/namespaces/{namespace}/types": { "get": { "consumes": [ "application/json" ], "description": "Get available types paginated", "operationId": "AdminGetType", "parameters": [ { "description": "namespace of the game", "in": "path", "name": "namespace", "required": true, "type": "string" }, { "default": 20, "description": "number of content per page", "in": "query", "name": "limit", "type": "integer" }, { "default": 0, "description": "the offset number to retrieve", "in": "query", "name": "offset", "type": "integer" } ], "produces": [ "application/json" ], "responses": { "200": { "description": "Get types", "schema": { "$ref": "#/definitions/models.PaginatedGetTypeResponse" } }, "400": { "description": "\u003ctable\u003e\u003ctr\u003e\u003ctd\u003eerrorCode\u003c/td\u003e\u003ctd\u003eerrorMessage\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e771801\u003c/td\u003e\u003ctd\u003einvalid paging parameter\u003c/td\u003e\u003c/tr\u003e\u003c/table\u003e", "schema": { "$ref": "#/definitions/response.Error" } }, "401": { "description": "\u003ctable\u003e\u003ctr\u003e\u003ctd\u003eerrorCode\u003c/td\u003e\u003ctd\u003eerrorMessage\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e20001\u003c/td\u003e\u003ctd\u003eunauthorized access\u003c/td\u003e\u003c/tr\u003e\u003c/table\u003e", "schema": { "$ref": "#/definitions/response.Error" } }, "500": { "description": "\u003ctable\u003e\u003ctr\u003e\u003ctd\u003eerrorCode\u003c/td\u003e\u003ctd\u003eerrorMessage\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e771802\u003c/td\u003e\u003ctd\u003eUnable get types\u003c/td\u003e\u003c/tr\u003e\u003c/table\u003e", "schema": { "$ref": "#/definitions/response.Error" } } }, "security": [ { "authorization": [] } ], "summary": "Get types", "tags": [ "Admin Type" ], "x-errorCodes": { "20001": "unauthorized access", "771801": "invalid paging parameter", "771802": "Unable get types" }, "x-security": [ { "userPermissions": [ "ADMIN:NAMESPACE:{namespace}:UGCCONFIG [READ]" ] } ] }, "post": { "consumes": [ "application/json" ], "description": "Creates a new type and subtype", "operationId": "AdminCreateType", "parameters": [ { "in": "body", "name": "body", "required": true, "schema": { "$ref": "#/definitions/models.CreateTypeRequest" } }, { "description": "namespace of the game", "in": "path", "name": "namespace", "required": true, "type": "string" } ], "produces": [ "application/json" ], "responses": { "201": { "description": "types created", "schema": { "$ref": "#/definitions/models.CreateTypeResponse" } }, "400": { "description": "\u003ctable\u003e\u003ctr\u003e\u003ctd\u003eerrorCode\u003c/td\u003e\u003ctd\u003eerrorMessage\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e771701\u003c/td\u003e\u003ctd\u003eMalformed request/Invalid request body\u003c/td\u003e\u003c/tr\u003e\u003c/table\u003e", "schema": { "$ref": "#/definitions/response.Error" } }, "401": { "description": "\u003ctable\u003e\u003ctr\u003e\u003ctd\u003eerrorCode\u003c/td\u003e\u003ctd\u003eerrorMessage\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e20001\u003c/td\u003e\u003ctd\u003eunauthorized access\u003c/td\u003e\u003c/tr\u003e\u003c/table\u003e", "schema": { "$ref": "#/definitions/response.Error" } }, "409": { "description": "\u003ctable\u003e\u003ctr\u003e\u003ctd\u003eerrorCode\u003c/td\u003e\u003ctd\u003eerrorMessage\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e771703\u003c/td\u003e\u003ctd\u003eConflicted resource indentifier\u003c/td\u003e\u003c/tr\u003e\u003c/table\u003e", "schema": { "$ref": "#/definitions/response.Error" } }, "500": { "description": "\u003ctable\u003e\u003ctr\u003e\u003ctd\u003eerrorCode\u003c/td\u003e\u003ctd\u003eerrorMessage\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e771702\u003c/td\u003e\u003ctd\u003eUnable to save ugc type\u003c/td\u003e\u003c/tr\u003e\u003c/table\u003e", "schema": { "$ref": "#/definitions/response.Error" } } }, "security": [ { "authorization": [] } ], "summary": "Create types", "tags": [ "Admin Type" ], "x-errorCodes": { "20001": "unauthorized access", "771701": "Malformed request/Invalid request body", "771702": "Unable to save ugc type", "771703": "Conflicted resource indentifier" }, "x-security": [ { "userPermissions": [ "ADMIN:NAMESPACE:{namespace}:UGCCONFIG [CREATE]" ] } ] } }, "/ugc/v1/admin/namespaces/{namespace}/types/{typeId}": { "delete": { "consumes": [ "application/json" ], "description": "Delete existing type", "operationId": "AdminDeleteType", "parameters": [ { "description": "namespace of the game", "in": "path", "name": "namespace", "required": true, "type": "string" }, { "description": "type ID", "in": "path", "name": "typeId", "required": true, "type": "string" } ], "produces": [ "application/json" ], "responses": { "204": { "description": "Types deleted" }, "401": { "description": "\u003ctable\u003e\u003ctr\u003e\u003ctd\u003eerrorCode\u003c/td\u003e\u003ctd\u003eerrorMessage\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e20001\u003c/td\u003e\u003ctd\u003eunauthorized access\u003c/td\u003e\u003c/tr\u003e\u003c/table\u003e", "schema": { "$ref": "#/definitions/response.Error" } }, "404": { "description": "\u003ctable\u003e\u003ctr\u003e\u003ctd\u003eerrorCode\u003c/td\u003e\u003ctd\u003eerrorMessage\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e772005\u003c/td\u003e\u003ctd\u003eType not found\u003c/td\u003e\u003c/tr\u003e\u003c/table\u003e", "schema": { "$ref": "#/definitions/response.Error" } }, "500": { "description": "\u003ctable\u003e\u003ctr\u003e\u003ctd\u003eerrorCode\u003c/td\u003e\u003ctd\u003eerrorMessage\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e772004\u003c/td\u003e\u003ctd\u003eUnable delete type\u003c/td\u003e\u003c/tr\u003e\u003c/table\u003e", "schema": { "$ref": "#/definitions/response.Error" } } }, "security": [ { "authorization": [] } ], "summary": "Delete type", "tags": [ "Admin Type" ], "x-errorCodes": { "20001": "unauthorized access", "772004": "Unable delete type", "772005": "Type not found" }, "x-security": [ { "userPermissions": [ "ADMIN:NAMESPACE:{namespace}:UGCCONFIG [DELETE]" ] } ] }, "put": { "consumes": [ "application/json" ], "description": "Updates a type and subtype", "operationId": "AdminUpdateType", "parameters": [ { "in": "body", "name": "body", "required": true, "schema": { "$ref": "#/definitions/models.CreateTypeRequest" } }, { "description": "namespace of the game", "in": "path", "name": "namespace", "required": true, "type": "string" }, { "description": "type ID", "in": "path", "name": "typeId", "required": true, "type": "string" } ], "produces": [ "application/json" ], "responses": { "200": { "description": "Types updated", "schema": { "$ref": "#/definitions/models.CreateTypeResponse" } }, "400": { "description": "\u003ctable\u003e\u003ctr\u003e\u003ctd\u003eerrorCode\u003c/td\u003e\u003ctd\u003eerrorMessage\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e771901\u003c/td\u003e\u003ctd\u003eMalformed request/Invalid request body\u003c/td\u003e\u003c/tr\u003e\u003c/table\u003e", "schema": { "$ref": "#/definitions/response.Error" } }, "401": { "description": "\u003ctable\u003e\u003ctr\u003e\u003ctd\u003eerrorCode\u003c/td\u003e\u003ctd\u003eerrorMessage\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e20001\u003c/td\u003e\u003ctd\u003eunauthorized access\u003c/td\u003e\u003c/tr\u003e\u003c/table\u003e", "schema": { "$ref": "#/definitions/response.Error" } }, "404": { "description": "\u003ctable\u003e\u003ctr\u003e\u003ctd\u003eerrorCode\u003c/td\u003e\u003ctd\u003eerrorMessage\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e771903\u003c/td\u003e\u003ctd\u003eType not found\u003c/td\u003e\u003c/tr\u003e\u003c/table\u003e", "schema": { "$ref": "#/definitions/response.Error" } }, "409": { "description": "\u003ctable\u003e\u003ctr\u003e\u003ctd\u003eerrorCode\u003c/td\u003e\u003ctd\u003eerrorMessage\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e771904\u003c/td\u003e\u003ctd\u003eProposed Type already exist\u003c/td\u003e\u003c/tr\u003e\u003c/table\u003e", "schema": { "$ref": "#/definitions/response.Error" } }, "500": { "description": "\u003ctable\u003e\u003ctr\u003e\u003ctd\u003eerrorCode\u003c/td\u003e\u003ctd\u003eerrorMessage\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e771902\u003c/td\u003e\u003ctd\u003eUnable update types\u003c/td\u003e\u003c/tr\u003e\u003c/table\u003e", "schema": { "$ref": "#/definitions/response.Error" } } }, "security": [ { "authorization": [] } ], "summary": "Update types", "tags": [ "Admin Type" ], "x-errorCodes": { "20001": "unauthorized access", "771901": "Malformed request/Invalid request body", "771902": "Unable update types", "771903": "Type not found", "771904": "Proposed Type already exist" }, "x-security": [ { "userPermissions": [ "ADMIN:NAMESPACE:{namespace}:UGCCONFIG [UPDATE]" ] } ] } }, "/ugc/v1/admin/namespaces/{namespace}/users/{userId}/channels": { "delete": { "consumes": [ "application/json" ], "description": "Delete all user channel", "operationId": "AdminDeleteAllUserChannels", "parameters": [ { "description": "namespace of the game", "in": "path", "name": "namespace", "required": true, "type": "string" }, { "description": "userID", "in": "path", "name": "userId", "required": true, "type": "string" } ], "produces": [ "application/json" ], "responses": { "204": { "description": "Channel deleted" }, "401": { "description": "\u003ctable\u003e\u003ctr\u003e\u003ctd\u003eerrorCode\u003c/td\u003e\u003ctd\u003eerrorMessage\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e20001\u003c/td\u003e\u003ctd\u003eunauthorized access\u003c/td\u003e\u003c/tr\u003e\u003c/table\u003e", "schema": { "$ref": "#/definitions/response.Error" } }, "404": { "description": "\u003ctable\u003e\u003ctr\u003e\u003ctd\u003eerrorCode\u003c/td\u003e\u003ctd\u003eerrorMessage\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e773502\u003c/td\u003e\u003ctd\u003eChannel not found\u003c/td\u003e\u003c/tr\u003e\u003c/table\u003e", "schema": { "$ref": "#/definitions/response.Error" } }, "500": { "description": "\u003ctable\u003e\u003ctr\u003e\u003ctd\u003eerrorCode\u003c/td\u003e\u003ctd\u003eerrorMessage\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e773501\u003c/td\u003e\u003ctd\u003eUnable to delete channel\u003c/td\u003e\u003c/tr\u003e\u003c/table\u003e", "schema": { "$ref": "#/definitions/response.Error" } } }, "security": [ { "authorization": [] } ], "summary": "Delete all user channel", "tags": [ "Anonymization" ], "x-errorCodes": { "20001": "unauthorized access", "773501": "Unable to delete channel", "773502": "Channel not found" }, "x-security": [ { "userPermissions": [ "ADMIN:NAMESPACE:{namespace}:USER:{userId}:CHANNEL [DELETE]" ] } ] }, "get": { "consumes": [ "application/json" ], "description": "Get user channel paginated", "operationId": "AdminGetChannel", "parameters": [ { "description": "namespace of the game", "in": "path", "name": "namespace", "required": true, "type": "string" }, { "description": "user ID", "in": "path", "name": "userId", "required": true, "type": "string" }, { "default": 20, "description": "number of content per page", "in": "query", "name": "limit", "type": "integer" }, { "description": "likes filter by channel name", "in": "query", "name": "name", "type": "string" }, { "default": 0, "description": "the offset number to retrieve", "in": "query", "name": "offset", "type": "integer" } ], "produces": [ "application/json" ], "responses": { "200": { "description": "Get channels", "schema": { "$ref": "#/definitions/models.PaginatedGetChannelResponse" } }, "400": { "description": "\u003ctable\u003e\u003ctr\u003e\u003ctd\u003eerrorCode\u003c/td\u003e\u003ctd\u003eerrorMessage\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e770702\u003c/td\u003e\u003ctd\u003einvalid paging parameter\u003c/td\u003e\u003c/tr\u003e\u003c/table\u003e", "schema": { "$ref": "#/definitions/response.Error" } }, "401": { "description": "\u003ctable\u003e\u003ctr\u003e\u003ctd\u003eerrorCode\u003c/td\u003e\u003ctd\u003eerrorMessage\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e20001\u003c/td\u003e\u003ctd\u003eunauthorized access\u003c/td\u003e\u003c/tr\u003e\u003c/table\u003e", "schema": { "$ref": "#/definitions/response.Error" } }, "500": { "description": "\u003ctable\u003e\u003ctr\u003e\u003ctd\u003eerrorCode\u003c/td\u003e\u003ctd\u003eerrorMessage\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e770700\u003c/td\u003e\u003ctd\u003eUnable get user channels\u003c/td\u003e\u003c/tr\u003e\u003c/table\u003e", "schema": { "$ref": "#/definitions/response.Error" } } }, "security": [ { "authorization": [] } ], "summary": "Get Channels", "tags": [ "Admin Channel" ], "x-errorCodes": { "20001": "unauthorized access", "770700": "Unable get user channels", "770702": "invalid paging parameter" }, "x-security": [ { "userPermissions": [ "ADMIN:NAMESPACE:{namespace}:USER:{userId}:CHANNEL [READ]" ] } ] } }, "/ugc/v1/admin/namespaces/{namespace}/users/{userId}/channels/{channelId}": { "delete": { "consumes": [ "application/json" ], "description": "Delete user channel", "operationId": "AdminDeleteChannel", "parameters": [ { "description": "channelID", "in": "path", "name": "channelId", "required": true, "type": "string" }, { "description": "namespace of the game", "in": "path", "name": "namespace", "required": true, "type": "string" }, { "description": "user ID", "in": "path", "name": "userId", "required": true, "type": "string" } ], "produces": [ "application/json" ], "responses": { "204": { "description": "Channel deleted" }, "401": { "description": "\u003ctable\u003e\u003ctr\u003e\u003ctd\u003eerrorCode\u003c/td\u003e\u003ctd\u003eerrorMessage\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e20001\u003c/td\u003e\u003ctd\u003eunauthorized access\u003c/td\u003e\u003c/tr\u003e\u003c/table\u003e", "schema": { "$ref": "#/definitions/response.Error" } }, "404": { "description": "\u003ctable\u003e\u003ctr\u003e\u003ctd\u003eerrorCode\u003c/td\u003e\u003ctd\u003eerrorMessage\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e772502\u003c/td\u003e\u003ctd\u003eChannel not found\u003c/td\u003e\u003c/tr\u003e\u003c/table\u003e", "schema": { "$ref": "#/definitions/response.Error" } }, "500": { "description": "\u003ctable\u003e\u003ctr\u003e\u003ctd\u003eerrorCode\u003c/td\u003e\u003ctd\u003eerrorMessage\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e772501\u003c/td\u003e\u003ctd\u003eUnable to delete channel\u003c/td\u003e\u003c/tr\u003e\u003c/table\u003e", "schema": { "$ref": "#/definitions/response.Error" } } }, "security": [ { "authorization": [] } ], "summary": "Delete Channel", "tags": [ "Admin Channel" ], "x-errorCodes": { "20001": "unauthorized access", "772501": "Unable to delete channel", "772502": "Channel not found" }, "x-security": [ { "userPermissions": [ "ADMIN:NAMESPACE:{namespace}:USER:{userId}:CHANNEL [DELETE]" ] } ] }, "put": { "consumes": [ "application/json" ], "description": "Update user channel", "operationId": "AdminUpdateChannel", "parameters": [ { "in": "body", "name": "body", "required": true, "schema": { "$ref": "#/definitions/models.UpdateChannelRequest" } }, { "description": "channelID", "in": "path", "name": "channelId", "required": true, "type": "string" }, { "description": "namespace of the game", "in": "path", "name": "namespace", "required": true, "type": "string" }, { "description": "user ID", "in": "path", "name": "userId", "required": true, "type": "string" } ], "produces": [ "application/json" ], "responses": { "200": { "description": "Channel updated", "schema": { "$ref": "#/definitions/models.ChannelResponse" } }, "400": { "description": "\u003ctable\u003e\u003ctr\u003e\u003ctd\u003eerrorCode\u003c/td\u003e\u003ctd\u003eerrorMessage\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e770600\u003c/td\u003e\u003ctd\u003eInvalid request body\u003c/td\u003e\u003c/tr\u003e\u003c/table\u003e", "schema": { "$ref": "#/definitions/response.Error" } }, "401": { "description": "\u003ctable\u003e\u003ctr\u003e\u003ctd\u003eerrorCode\u003c/td\u003e\u003ctd\u003eerrorMessage\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e20001\u003c/td\u003e\u003ctd\u003eunauthorized access\u003c/td\u003e\u003c/tr\u003e\u003c/table\u003e", "schema": { "$ref": "#/definitions/response.Error" } }, "404": { "description": "\u003ctable\u003e\u003ctr\u003e\u003ctd\u003eerrorCode\u003c/td\u003e\u003ctd\u003eerrorMessage\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e770603\u003c/td\u003e\u003ctd\u003eChannel was not found\u003c/td\u003e\u003c/tr\u003e\u003c/table\u003e", "schema": { "$ref": "#/definitions/response.Error" } }, "500": { "description": "\u003ctable\u003e\u003ctr\u003e\u003ctd\u003eerrorCode\u003c/td\u003e\u003ctd\u003eerrorMessage\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e770602\u003c/td\u003e\u003ctd\u003eUnable to save channel\u003c/td\u003e\u003c/tr\u003e\u003c/table\u003e", "schema": { "$ref": "#/definitions/response.Error" } } }, "security": [ { "authorization": [] } ], "summary": "Update Channel", "tags": [ "Admin Channel" ], "x-errorCodes": { "20001": "unauthorized access", "770600": "Invalid request body", "770602": "Unable to save channel", "770603": "Channel was not found" }, "x-security": [ { "userPermissions": [ "ADMIN:NAMESPACE:{namespace}:USER:{userId}:CHANNEL [UPDATE]" ] } ] } }, "/ugc/v1/admin/namespaces/{namespace}/users/{userId}/channels/{channelId}/contents/s3/sharecodes/{shareCode}": { "put": { "consumes": [ "application/json" ], "description": "Required permission \u0026lt;b\u0026gt;ADMIN:NAMESPACE:{namespace}:USER:{userId}:CONTENT [UPDATE]\u0026lt;/b\u0026gt;.\n\nAll request body are required except \u0026lt;code\u0026gt;payload\u0026lt;/code\u0026gt;, \u0026lt;code\u0026gt;preview\u0026lt;/code\u0026gt;, \u0026lt;code\u0026gt;tags\u0026lt;/code\u0026gt;,\u0026lt;code\u0026gt;contentType\u0026lt;/code\u0026gt;, \u0026lt;code\u0026gt;updateContentFile\u0026lt;/code\u0026gt;, \u0026lt;code\u0026gt;customAttributes\u0026lt;/code\u0026gt; and \u0026lt;code\u0026gt;shareCode\u0026lt;/code\u0026gt;.\n\n\u0026lt;code\u0026gt;contentType\u0026lt;/code\u0026gt; values is used to enforce the Content-Type header needed by the client to upload the content using the S3 presigned URL.\n\nIf not specified, it will use \u0026lt;code\u0026gt;fileExtension\u0026lt;/code\u0026gt; value.\n\nTo update content file, set \u0026lt;code\u0026gt;updateContentFile\u0026lt;/code\u0026gt; to \u0026lt;code\u0026gt;true\u0026lt;/code\u0026gt; and upload the file using URL in \u0026lt;code\u0026gt;payloadURL.url\u0026lt;/code\u0026gt; in response body.\n\n\u0026lt;code\u0026gt;shareCode\u0026lt;/code\u0026gt; format should follows:\n\nMax length: 7\nAvailable characters: abcdefhkpqrstuxyz\n\n\u0026lt;br\u0026gt;\u0026lt;p\u0026gt;\u0026lt;b\u0026gt;NOTE: Preview is Legacy Code, please use Screenshot for better solution to display preview of a content\u0026lt;/b\u0026gt;\u0026lt;/p\u0026gt;", "operationId": "AdminUpdateContentS3ByShareCode", "parameters": [ { "in": "body", "name": "body", "required": true, "schema": { "$ref": "#/definitions/models.AdminUpdateContentRequest" } }, { "description": "channel ID", "in": "path", "name": "channelId", "required": true, "type": "string" }, { "description": "namespace of the game", "in": "path", "name": "namespace", "required": true, "type": "string" }, { "description": "share code", "in": "path", "name": "shareCode", "required": true, "type": "string" }, { "description": "user ID", "in": "path", "name": "userId", "required": true, "type": "string" } ], "produces": [ "application/json" ], "responses": { "200": { "description": "Content updated at s3", "schema": { "$ref": "#/definitions/models.CreateContentResponse" } }, "400": { "description": "\u003ctable\u003e\u003ctr\u003e\u003ctd\u003eerrorCode\u003c/td\u003e\u003ctd\u003eerrorMessage\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e772601\u003c/td\u003e\u003ctd\u003eMalformed request\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e770107\u003c/td\u003e\u003ctd\u003eUnable to update ugc content: invalid shareCode format\u003c/td\u003e\u003c/tr\u003e\u003c/table\u003e", "schema": { "$ref": "#/definitions/response.Error" } }, "401": { "description": "\u003ctable\u003e\u003ctr\u003e\u003ctd\u003eerrorCode\u003c/td\u003e\u003ctd\u003eerrorMessage\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e20001\u003c/td\u003e\u003ctd\u003eunauthorized access\u003c/td\u003e\u003c/tr\u003e\u003c/table\u003e", "schema": { "$ref": "#/definitions/response.Error" } }, "403": { "description": "\u003ctable\u003e\u003ctr\u003e\u003ctd\u003eerrorCode\u003c/td\u003e\u003ctd\u003eerrorMessage\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e772604\u003c/td\u003e\u003ctd\u003eUser has been banned to update content\u003c/td\u003e\u003c/tr\u003e\u003c/table\u003e", "schema": { "$ref": "#/definitions/response.Error" } }, "404": { "description": "\u003ctable\u003e\u003ctr\u003e\u003ctd\u003eerrorCode\u003c/td\u003e\u003ctd\u003eerrorMessage\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e772603\u003c/td\u003e\u003ctd\u003eContent not found\u003c/td\u003e\u003c/tr\u003e\u003c/table\u003e", "schema": { "$ref": "#/definitions/response.Error" } }, "409": { "description": "\u003ctable\u003e\u003ctr\u003e\u003ctd\u003eerrorCode\u003c/td\u003e\u003ctd\u003eerrorMessage\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e772606\u003c/td\u003e\u003ctd\u003eShare code already used\u003c/td\u003e\u003c/tr\u003e\u003c/table\u003e", "schema": { "$ref": "#/definitions/response.Error" } }, "500": { "description": "\u003ctable\u003e\u003ctr\u003e\u003ctd\u003eerrorCode\u003c/td\u003e\u003ctd\u003eerrorMessage\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e772602\u003c/td\u003e\u003ctd\u003eUnable to check user ban status/Unable to get updated ugc content\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e772605\u003c/td\u003e\u003ctd\u003eUnable to save ugc content: failed generate upload URL\u003c/td\u003e\u003c/tr\u003e\u003c/table\u003e", "schema": { "$ref": "#/definitions/response.Error" } } }, "security": [ { "authorization": [] } ], "summary": "Update content to S3 bucket by share code", "tags": [ "Admin Content" ], "x-errorCodes": { "20001": "unauthorized access", "770107": "Unable to update ugc content: invalid shareCode format", "772601": "Malformed request", "772602": "Unable to check user ban status/Unable to get updated ugc content", "772603": "Content not found", "772604": "User has been banned to update content", "772605": "Unable to save ugc content: failed generate upload URL", "772606": "Share code already used" }, "x-security": [ { "userPermissions": [ "ADMIN:NAMESPACE:{namespace}:USER:{userId}:CONTENT [UPDATE]" ] } ] } }, "/ugc/v1/admin/namespaces/{namespace}/users/{userId}/channels/{channelId}/contents/s3/{contentId}": { "put": { "consumes": [ "application/json" ], "description": "Required permission \u0026lt;b\u0026gt;ADMIN:NAMESPACE:{namespace}:USER:{userId}:CONTENT [UPDATE]\u0026lt;/b\u0026gt;.\n\nAll request body are required except \u0026lt;code\u0026gt;payload\u0026lt;/code\u0026gt;, \u0026lt;code\u0026gt;preview\u0026lt;/code\u0026gt;, \u0026lt;code\u0026gt;tags\u0026lt;/code\u0026gt;,\u0026lt;code\u0026gt;contentType\u0026lt;/code\u0026gt;, \u0026lt;code\u0026gt;updateContentFile\u0026lt;/code\u0026gt;, \u0026lt;code\u0026gt;customAttributes\u0026lt;/code\u0026gt; and \u0026lt;code\u0026gt;shareCode\u0026lt;/code\u0026gt;.\n\n\u0026lt;code\u0026gt;contentType\u0026lt;/code\u0026gt; values is used to enforce the Content-Type header needed by the client to upload the content using the S3 presigned URL.\n\nIf not specified, it will use \u0026lt;code\u0026gt;fileExtension\u0026lt;/code\u0026gt; value.\n\nTo update content file, set \u0026lt;code\u0026gt;updateContentFile\u0026lt;/code\u0026gt; to \u0026lt;code\u0026gt;true\u0026lt;/code\u0026gt; and upload the file using URL in \u0026lt;code\u0026gt;payloadURL.url\u0026lt;/code\u0026gt; in response body.\n\n\u0026lt;code\u0026gt;shareCode\u0026lt;/code\u0026gt; format should follows:\n\nMax length: 7\nAvailable characters: abcdefhkpqrstuxyz\n\n\u0026lt;br\u0026gt;\u0026lt;p\u0026gt;\u0026lt;b\u0026gt;NOTE: Preview is Legacy Code, please use Screenshot for better solution to display preview of a content\u0026lt;/b\u0026gt;\u0026lt;/p\u0026gt;", "operationId": "AdminUpdateContentS3", "parameters": [ { "in": "body", "name": "body", "required": true, "schema": { "$ref": "#/definitions/models.AdminUpdateContentRequest" } }, { "description": "channel ID", "in": "path", "name": "channelId", "required": true, "type": "string" }, { "description": "content ID", "in": "path", "name": "contentId", "required": true, "type": "string" }, { "description": "namespace of the game", "in": "path", "name": "namespace", "required": true, "type": "string" }, { "description": "user ID", "in": "path", "name": "userId", "required": true, "type": "string" } ], "produces": [ "application/json" ], "responses": { "200": { "description": "Content updated at s3", "schema": { "$ref": "#/definitions/models.CreateContentResponse" } }, "400": { "description": "\u003ctable\u003e\u003ctr\u003e\u003ctd\u003eerrorCode\u003c/td\u003e\u003ctd\u003eerrorMessage\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e772601\u003c/td\u003e\u003ctd\u003eMalformed request\u003c/td\u003e\u003c/tr\u003e\u003c/table\u003e", "schema": { "$ref": "#/definitions/response.Error" } }, "401": { "description": "\u003ctable\u003e\u003ctr\u003e\u003ctd\u003eerrorCode\u003c/td\u003e\u003ctd\u003eerrorMessage\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e20001\u003c/td\u003e\u003ctd\u003eunauthorized access\u003c/td\u003e\u003c/tr\u003e\u003c/table\u003e", "schema": { "$ref": "#/definitions/response.Error" } }, "403": { "description": "\u003ctable\u003e\u003ctr\u003e\u003ctd\u003eerrorCode\u003c/td\u003e\u003ctd\u003eerrorMessage\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e772604\u003c/td\u003e\u003ctd\u003eUser has been banned to update content\u003c/td\u003e\u003c/tr\u003e\u003c/table\u003e", "schema": { "$ref": "#/definitions/response.Error" } }, "404": { "description": "\u003ctable\u003e\u003ctr\u003e\u003ctd\u003eerrorCode\u003c/td\u003e\u003ctd\u003eerrorMessage\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e772602\u003c/td\u003e\u003ctd\u003eUnable to check user ban status/Unable to get updated ugc content\u003c/td\u003e\u003c/tr\u003e\u003c/table\u003e", "schema": { "$ref": "#/definitions/response.Error" } }, "409": { "description": "\u003ctable\u003e\u003ctr\u003e\u003ctd\u003eerrorCode\u003c/td\u003e\u003ctd\u003eerrorMessage\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e772606\u003c/td\u003e\u003ctd\u003eShare code already used\u003c/td\u003e\u003c/tr\u003e\u003c/table\u003e", "schema": { "$ref": "#/definitions/response.Error" } }, "500": { "description": "\u003ctable\u003e\u003ctr\u003e\u003ctd\u003eerrorCode\u003c/td\u003e\u003ctd\u003eerrorMessage\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e772602\u003c/td\u003e\u003ctd\u003eUnable to check user ban status/Unable to get updated ugc content\u003c/td\u003e\u003c/tr\u003e\u003c/table\u003e", "schema": { "$ref": "#/definitions/response.Error" } } }, "security": [ { "authorization": [] } ], "summary": "Update content to S3 bucket", "tags": [ "Admin Content" ], "x-errorCodes": { "20001": "unauthorized access", "772601": "Malformed request", "772602": "Unable to check user ban status/Unable to get updated ugc content", "772604": "User has been banned to update content", "772606": "Share code already used" }, "x-security": [ { "userPermissions": [ "ADMIN:NAMESPACE:{namespace}:USER:{userId}:CONTENT [UPDATE]" ] } ] } }, "/ugc/v1/admin/namespaces/{namespace}/users/{userId}/channels/{channelId}/contents/sharecodes/{shareCode}": { "delete": { "consumes": [ "application/json" ], "description": "Required permission \u0026lt;b\u0026gt;ADMIN:NAMESPACE:{namespace}:USER:{userId}:CONTENT [DELETE]\u0026lt;/b\u0026gt;.", "operationId": "DeleteContentByShareCode", "parameters": [ { "description": "channel ID", "in": "path", "name": "channelId", "required": true, "type": "string" }, { "description": "namespace of the game", "in": "path", "name": "namespace", "required": true, "type": "string" }, { "description": "share code", "in": "path", "name": "shareCode", "required": true, "type": "string" }, { "description": "user ID", "in": "path", "name": "userId", "required": true, "type": "string" } ], "produces": [ "application/json" ], "responses": { "204": { "description": "Delete content by share code" }, "401": { "description": "\u003ctable\u003e\u003ctr\u003e\u003ctd\u003eerrorCode\u003c/td\u003e\u003ctd\u003eerrorMessage\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e20001\u003c/td\u003e\u003ctd\u003eunauthorized access\u003c/td\u003e\u003c/tr\u003e\u003c/table\u003e", "schema": { "$ref": "#/definitions/response.Error" } }, "404": { "description": "\u003ctable\u003e\u003ctr\u003e\u003ctd\u003eerrorCode\u003c/td\u003e\u003ctd\u003eerrorMessage\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e772702\u003c/td\u003e\u003ctd\u003eContent not found\u003c/td\u003e\u003c/tr\u003e\u003c/table\u003e", "schema": { "$ref": "#/definitions/response.Error" } }, "500": { "description": "\u003ctable\u003e\u003ctr\u003e\u003ctd\u003eerrorCode\u003c/td\u003e\u003ctd\u003eerrorMessage\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e772701\u003c/td\u003e\u003ctd\u003eUnable to delete content/Unable to update user liked count/Unable to delete like state/Unable to delete like state\u003c/td\u003e\u003c/tr\u003e\u003c/table\u003e", "schema": { "$ref": "#/definitions/response.Error" } } }, "security": [ { "authorization": [] } ], "summary": "Delete content by share code", "tags": [ "Admin Content" ], "x-errorCodes": { "20001": "unauthorized access", "772701": "Unable to delete content/Unable to update user liked count/Unable to delete like state/Unable to delete like state", "772702": "Content not found" }, "x-security": [ { "userPermissions": [ "ADMIN:NAMESPACE:{namespace}:USER:{userId}:CONTENT [DELETE]" ] } ] } }, "/ugc/v1/admin/namespaces/{namespace}/users/{userId}/channels/{channelId}/contents/{contentId}": { "delete": { "consumes": [ "application/json" ], "description": "Required permission \u0026lt;b\u0026gt;ADMIN:NAMESPACE:{namespace}:USER:{userId}:CONTENT [DELETE]\u0026lt;/b\u0026gt;.", "operationId": "AdminDeleteContent", "parameters": [ { "description": "channel ID", "in": "path", "name": "channelId", "required": true, "type": "string" }, { "description": "content ID", "in": "path", "name": "contentId", "required": true, "type": "string" }, { "description": "namespace of the game", "in": "path", "name": "namespace", "required": true, "type": "string" }, { "description": "user ID", "in": "path", "name": "userId", "required": true, "type": "string" } ], "produces": [ "application/json" ], "responses": { "204": { "description": "Content deleted" }, "401": { "description": "\u003ctable\u003e\u003ctr\u003e\u003ctd\u003eerrorCode\u003c/td\u003e\u003ctd\u003eerrorMessage\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e20001\u003c/td\u003e\u003ctd\u003eunauthorized access\u003c/td\u003e\u003c/tr\u003e\u003c/table\u003e", "schema": { "$ref": "#/definitions/response.Error" } }, "404": { "description": "\u003ctable\u003e\u003ctr\u003e\u003ctd\u003eerrorCode\u003c/td\u003e\u003ctd\u003eerrorMessage\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e772702\u003c/td\u003e\u003ctd\u003eContent not found\u003c/td\u003e\u003c/tr\u003e\u003c/table\u003e", "schema": { "$ref": "#/definitions/response.Error" } }, "500": { "description": "\u003ctable\u003e\u003ctr\u003e\u003ctd\u003eerrorCode\u003c/td\u003e\u003ctd\u003eerrorMessage\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e772701\u003c/td\u003e\u003ctd\u003eUnable to delete content/Unable to update user liked count/Unable to delete like state/Unable to delete like state\u003c/td\u003e\u003c/tr\u003e\u003c/table\u003e", "schema": { "$ref": "#/definitions/response.Error" } } }, "security": [ { "authorization": [] } ], "summary": "Delete content", "tags": [ "Admin Content" ], "x-errorCodes": { "20001": "unauthorized access", "772701": "Unable to delete content/Unable to update user liked count/Unable to delete like state/Unable to delete like state", "772702": "Content not found" }, "x-security": [ { "userPermissions": [ "ADMIN:NAMESPACE:{namespace}:USER:{userId}:CONTENT [DELETE]" ] } ] }, "put": { "consumes": [ "application/json" ], "deprecated": true, "description": "Required permission \u0026lt;b\u0026gt;ADMIN:NAMESPACE:{namespace}:USER:{userId}:CONTENT [UPDATE]\u0026lt;/b\u0026gt;.\\n \n\t\t\t\t\tAll request body are required except preview, tags and customAttributes.\n\t\t\t\t\t", "operationId": "AdminUpdateContentDirect", "parameters": [ { "in": "body", "name": "body", "required": true, "schema": { "$ref": "#/definitions/models.CreateContentRequest" } }, { "description": "channel ID", "in": "path", "name": "channelId", "required": true, "type": "string" }, { "description": "content ID", "in": "path", "name": "contentId", "required": true, "type": "string" }, { "description": "namespace of the game", "in": "path", "name": "namespace", "required": true, "type": "string" }, { "description": "user ID", "in": "path", "name": "userId", "required": true, "type": "string" } ], "produces": [ "application/json" ], "responses": { "200": { "description": "Content updated", "schema": { "$ref": "#/definitions/models.CreateContentResponse" } }, "400": { "description": "\u003ctable\u003e\u003ctr\u003e\u003ctd\u003eerrorCode\u003c/td\u003e\u003ctd\u003eerrorMessage\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e772601\u003c/td\u003e\u003ctd\u003eMalformed request\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e772602\u003c/td\u003e\u003ctd\u003eUnable to check user ban status/Unable to get updated ugc content\u003c/td\u003e\u003c/tr\u003e\u003c/table\u003e", "schema": { "$ref": "#/definitions/response.Error" } }, "401": { "description": "\u003ctable\u003e\u003ctr\u003e\u003ctd\u003eerrorCode\u003c/td\u003e\u003ctd\u003eerrorMessage\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e20001\u003c/td\u003e\u003ctd\u003eunauthorized access\u003c/td\u003e\u003c/tr\u003e\u003c/table\u003e", "schema": { "$ref": "#/definitions/response.Error" } }, "403": { "description": "\u003ctable\u003e\u003ctr\u003e\u003ctd\u003eerrorCode\u003c/td\u003e\u003ctd\u003eerrorMessage\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e772604\u003c/td\u003e\u003ctd\u003eUser has been banned to update content\u003c/td\u003e\u003c/tr\u003e\u003c/table\u003e", "schema": { "$ref": "#/definitions/response.Error" } }, "404": { "description": "\u003ctable\u003e\u003ctr\u003e\u003ctd\u003eerrorCode\u003c/td\u003e\u003ctd\u003eerrorMessage\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e772603\u003c/td\u003e\u003ctd\u003eContent not found\u003c/td\u003e\u003c/tr\u003e\u003c/table\u003e", "schema": { "$ref": "#/definitions/response.Error" } }, "500": { "description": "\u003ctable\u003e\u003ctr\u003e\u003ctd\u003eerrorCode\u003c/td\u003e\u003ctd\u003eerrorMessage\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e772602\u003c/td\u003e\u003ctd\u003eUnable to check user ban status/Unable to get updated ugc content\u003c/td\u003e\u003c/tr\u003e\u003c/table\u003e", "schema": { "$ref": "#/definitions/response.Error" } } }, "security": [ { "authorization": [] } ], "summary": "Update content to a channel", "tags": [ "Admin Content" ], "x-errorCodes": { "20001": "unauthorized access", "772601": "Malformed request", "772602": "Unable to check user ban status/Unable to get updated ugc content", "772603": "Content not found", "772604": "User has been banned to update content" }, "x-security": [ { "userPermissions": [ "ADMIN:NAMESPACE:{namespace}:USER:{userId}:CONTENT [UPDATE]" ] } ] } }, "/ugc/v1/admin/namespaces/{namespace}/users/{userId}/contents": { "delete": { "consumes": [ "application/json" ], "description": "Required permission \u0026lt;b\u0026gt;ADMIN:NAMESPACE:{namespace}:USER:{userId}:CONTENT [DELETE]\u0026lt;/b\u0026gt;.", "operationId": "AdminDeleteAllUserContents", "parameters": [ { "description": "namespace of the game", "in": "path", "name": "namespace", "required": true, "type": "string" }, { "description": "user ID", "in": "path", "name": "userId", "required": true, "type": "string" } ], "produces": [ "application/json" ], "responses": { "204": { "description": "Users content's deleted" }, "401": { "description": "\u003ctable\u003e\u003ctr\u003e\u003ctd\u003eerrorCode\u003c/td\u003e\u003ctd\u003eerrorMessage\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e20001\u003c/td\u003e\u003ctd\u003eunauthorized access\u003c/td\u003e\u003c/tr\u003e\u003c/table\u003e", "schema": { "$ref": "#/definitions/response.Error" } }, "404": { "description": "\u003ctable\u003e\u003ctr\u003e\u003ctd\u003eerrorCode\u003c/td\u003e\u003ctd\u003eerrorMessage\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e773402\u003c/td\u003e\u003ctd\u003eContent not found\u003c/td\u003e\u003c/tr\u003e\u003c/table\u003e", "schema": { "$ref": "#/definitions/response.Error" } }, "500": { "description": "\u003ctable\u003e\u003ctr\u003e\u003ctd\u003eerrorCode\u003c/td\u003e\u003ctd\u003eerrorMessage\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e773401\u003c/td\u003e\u003ctd\u003eUnable to get all user content\u003c/td\u003e\u003c/tr\u003e\u003c/table\u003e", "schema": { "$ref": "#/definitions/response.Error" } } }, "security": [ { "authorization": [] } ], "summary": "Delete all user content", "tags": [ "Anonymization" ], "x-errorCodes": { "20001": "unauthorized access", "773401": "Unable to get all user content", "773402": "Content not found" }, "x-security": [ { "userPermissions": [ "ADMIN:NAMESPACE:{namespace}:USER:{userId}:CONTENT [DELETE]" ] } ] }, "get": { "consumes": [ "application/json" ], "description": "Required permission \u0026lt;b\u0026gt;ADMIN:NAMESPACE:{namespace}:USER:{userId}:CONTENT [READ]\u0026lt;/b\u0026gt;.", "operationId": "AdminGetContent", "parameters": [ { "description": "namespace of the game", "in": "path", "name": "namespace", "required": true, "type": "string" }, { "description": "user ID", "in": "path", "name": "userId", "required": true, "type": "string" }, { "default": 20, "description": "number of content per page", "in": "query", "name": "limit", "type": "integer" }, { "default": 0, "description": "the offset number to retrieve", "in": "query", "name": "offset", "type": "integer" } ], "produces": [ "application/json" ], "responses": { "200": { "description": "Get user's generated contents", "schema": { "$ref": "#/definitions/models.PaginatedContentDownloadResponse" } }, "400": { "description": "\u003ctable\u003e\u003ctr\u003e\u003ctd\u003eerrorCode\u003c/td\u003e\u003ctd\u003eerrorMessage\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e770900\u003c/td\u003e\u003ctd\u003einvalid paging parameter\u003c/td\u003e\u003c/tr\u003e\u003c/table\u003e", "schema": { "$ref": "#/definitions/response.Error" } }, "401": { "description": "\u003ctable\u003e\u003ctr\u003e\u003ctd\u003eerrorCode\u003c/td\u003e\u003ctd\u003eerrorMessage\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e20001\u003c/td\u003e\u003ctd\u003eunauthorized access\u003c/td\u003e\u003c/tr\u003e\u003c/table\u003e", "schema": { "$ref": "#/definitions/response.Error" } }, "500": { "description": "\u003ctable\u003e\u003ctr\u003e\u003ctd\u003eerrorCode\u003c/td\u003e\u003ctd\u003eerrorMessage\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e770901\u003c/td\u003e\u003ctd\u003eUnable to get ugc content: database error/Unable to get creator\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e770903\u003c/td\u003e\u003ctd\u003eFailed generate download URL\u003c/td\u003e\u003c/tr\u003e\u003c/table\u003e", "schema": { "$ref": "#/definitions/response.Error" } } }, "security": [ { "authorization": [] } ], "summary": "Get user's generated contents", "tags": [ "Admin Content" ], "x-errorCodes": { "20001": "unauthorized access", "770900": "invalid paging parameter", "770901": "Unable to get ugc content: database error/Unable to get creator", "770903": "Failed generate download URL" }, "x-security": [ { "userPermissions": [ "ADMIN:NAMESPACE:{namespace}:USER:{userId}:CONTENT [READ]" ] } ] } }, "/ugc/v1/admin/namespaces/{namespace}/users/{userId}/contents/{contentId}/hide": { "put": { "consumes": [ "application/json" ], "description": "Required permission \u0026lt;b\u0026gt;ADMIN:NAMESPACE:{namespace}:USER:{userId}:CONTENT [UPDATE]\u0026lt;/b\u0026gt;.", "operationId": "AdminHideUserContent", "parameters": [ { "in": "body", "name": "body", "required": true, "schema": { "$ref": "#/definitions/models.HideContentRequest" } }, { "description": "content ID", "in": "path", "name": "contentId", "required": true, "type": "string" }, { "description": "namespace of the game", "in": "path", "name": "namespace", "required": true, "type": "string" }, { "description": "user ID", "in": "path", "name": "userId", "required": true, "type": "string" } ], "produces": [ "application/json" ], "responses": { "200": { "description": "hide/unhide user's generated content", "schema": { "$ref": "#/definitions/models.CreateContentResponse" } }, "400": { "description": "\u003ctable\u003e\u003ctr\u003e\u003ctd\u003eerrorCode\u003c/td\u003e\u003ctd\u003eerrorMessage\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e773801\u003c/td\u003e\u003ctd\u003eInvalid request body/Malformed request\u003c/td\u003e\u003c/tr\u003e\u003c/table\u003e", "schema": { "$ref": "#/definitions/response.Error" } }, "401": { "description": "\u003ctable\u003e\u003ctr\u003e\u003ctd\u003eerrorCode\u003c/td\u003e\u003ctd\u003eerrorMessage\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e20001\u003c/td\u003e\u003ctd\u003eunauthorized access\u003c/td\u003e\u003c/tr\u003e\u003c/table\u003e", "schema": { "$ref": "#/definitions/response.Error" } }, "404": { "description": "\u003ctable\u003e\u003ctr\u003e\u003ctd\u003eerrorCode\u003c/td\u003e\u003ctd\u003eerrorMessage\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e773803\u003c/td\u003e\u003ctd\u003eUnable to update hide status: content not found\u003c/td\u003e\u003c/tr\u003e\u003c/table\u003e", "schema": { "$ref": "#/definitions/response.Error" } }, "500": { "description": "\u003ctable\u003e\u003ctr\u003e\u003ctd\u003eerrorCode\u003c/td\u003e\u003ctd\u003eerrorMessage\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e773802\u003c/td\u003e\u003ctd\u003eUnable to update hide status: database error\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e773804\u003c/td\u003e\u003ctd\u003eUnable to save ugc content: failed generate upload URL\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e773805\u003c/td\u003e\u003ctd\u003eUnable to save ugc content preview: failed generate upload URL\u003c/td\u003e\u003c/tr\u003e\u003c/table\u003e", "schema": { "$ref": "#/definitions/response.Error" } } }, "security": [ { "authorization": [] } ], "summary": "Hide/Unhide user's generated contents", "tags": [ "Admin Content" ], "x-errorCodes": { "20001": "unauthorized access", "773801": "Invalid request body/Malformed request", "773802": "Unable to update hide status: database error", "773803": "Unable to update hide status: content not found", "773804": "Unable to save ugc content: failed generate upload URL", "773805": "Unable to save ugc content preview: failed generate upload URL" }, "x-security": [ { "userPermissions": [ "ADMIN:NAMESPACE:{namespace}:USER:{userId}:CONTENT [UPDATE]" ] } ] } }, "/ugc/v1/admin/namespaces/{namespace}/users/{userId}/groups": { "delete": { "consumes": [ "application/json" ], "description": "Delete all user group", "operationId": "AdminDeleteAllUserGroup", "parameters": [ { "description": "namespace of the game", "in": "path", "name": "namespace", "required": true, "type": "string" }, { "description": "user ID", "in": "path", "name": "userId", "required": true, "type": "string" } ], "produces": [ "application/json" ], "responses": { "204": { "description": "Groups deleted" }, "401": { "description": "\u003ctable\u003e\u003ctr\u003e\u003ctd\u003eerrorCode\u003c/td\u003e\u003ctd\u003eerrorMessage\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e20001\u003c/td\u003e\u003ctd\u003eunauthorized access\u003c/td\u003e\u003c/tr\u003e\u003c/table\u003e", "schema": { "$ref": "#/definitions/response.Error" } }, "404": { "description": "\u003ctable\u003e\u003ctr\u003e\u003ctd\u003eerrorCode\u003c/td\u003e\u003ctd\u003eerrorMessage\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e773302\u003c/td\u003e\u003ctd\u003eGroups not found\u003c/td\u003e\u003c/tr\u003e\u003c/table\u003e", "schema": { "$ref": "#/definitions/response.Error" } }, "500": { "description": "\u003ctable\u003e\u003ctr\u003e\u003ctd\u003eerrorCode\u003c/td\u003e\u003ctd\u003eerrorMessage\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e773301\u003c/td\u003e\u003ctd\u003eUnable to find all user group\u003c/td\u003e\u003c/tr\u003e\u003c/table\u003e", "schema": { "$ref": "#/definitions/response.Error" } } }, "security": [ { "authorization": [] } ], "summary": "Delete all user group", "tags": [ "Anonymization" ], "x-errorCodes": { "20001": "unauthorized access", "773301": "Unable to find all user group", "773302": "Groups not found" }, "x-security": [ { "userPermissions": [ "ADMIN:NAMESPACE:{namespace}:USER:{userId}:CONTENTGROUP [DELETE]" ] } ] }, "get": { "consumes": [ "application/json" ], "description": "Get user group paginated", "operationId": "AdminGetAllGroups", "parameters": [ { "description": "namespace of the game", "in": "path", "name": "namespace", "required": true, "type": "string" }, { "description": "user ID", "in": "path", "name": "userId", "required": true, "type": "string" }, { "default": 20, "description": "number of content per page", "in": "query", "name": "limit", "type": "integer" }, { "default": 0, "description": "the offset number to retrieve", "in": "query", "name": "offset", "type": "integer" } ], "produces": [ "application/json" ], "responses": { "200": { "description": "Get all user groups", "schema": { "$ref": "#/definitions/models.PaginatedGroupResponse" } }, "400": { "description": "\u003ctable\u003e\u003ctr\u003e\u003ctd\u003eerrorCode\u003c/td\u003e\u003ctd\u003eerrorMessage\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e772301\u003c/td\u003e\u003ctd\u003einvalid paging parameter\u003c/td\u003e\u003c/tr\u003e\u003c/table\u003e", "schema": { "$ref": "#/definitions/response.Error" } }, "401": { "description": "\u003ctable\u003e\u003ctr\u003e\u003ctd\u003eerrorCode\u003c/td\u003e\u003ctd\u003eerrorMessage\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e20001\u003c/td\u003e\u003ctd\u003eunauthorized access\u003c/td\u003e\u003c/tr\u003e\u003c/table\u003e", "schema": { "$ref": "#/definitions/response.Error" } }, "500": { "description": "\u003ctable\u003e\u003ctr\u003e\u003ctd\u003eerrorCode\u003c/td\u003e\u003ctd\u003eerrorMessage\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e772302\u003c/td\u003e\u003ctd\u003eUnable get groups\u003c/td\u003e\u003c/tr\u003e\u003c/table\u003e", "schema": { "$ref": "#/definitions/response.Error" } } }, "security": [ { "authorization": [] } ], "summary": "Get all user groups", "tags": [ "Admin Group" ], "x-errorCodes": { "20001": "unauthorized access", "772301": "invalid paging parameter", "772302": "Unable get groups" }, "x-security": [ { "userPermissions": [ "ADMIN:NAMESPACE:{namespace}:USER:{userId}:CONTENTGROUP [READ]" ] } ] } }, "/ugc/v1/admin/namespaces/{namespace}/users/{userId}/groups/{groupId}": { "delete": { "consumes": [ "application/json" ], "description": "Delete group", "operationId": "AdminDeleteGroup", "parameters": [ { "description": "group ID", "in": "path", "name": "groupId", "required": true, "type": "string" }, { "description": "namespace of the game", "in": "path", "name": "namespace", "required": true, "type": "string" }, { "description": "user ID", "in": "path", "name": "userId", "required": true, "type": "string" } ], "produces": [ "application/json" ], "responses": { "204": { "description": "Group deleted" }, "401": { "description": "\u003ctable\u003e\u003ctr\u003e\u003ctd\u003eerrorCode\u003c/td\u003e\u003ctd\u003eerrorMessage\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e20001\u003c/td\u003e\u003ctd\u003eunauthorized access\u003c/td\u003e\u003c/tr\u003e\u003c/table\u003e", "schema": { "$ref": "#/definitions/response.Error" } }, "404": { "description": "\u003ctable\u003e\u003ctr\u003e\u003ctd\u003eerrorCode\u003c/td\u003e\u003ctd\u003eerrorMessage\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e772403\u003c/td\u003e\u003ctd\u003eGroup not found\u003c/td\u003e\u003c/tr\u003e\u003c/table\u003e", "schema": { "$ref": "#/definitions/response.Error" } }, "500": { "description": "\u003ctable\u003e\u003ctr\u003e\u003ctd\u003eerrorCode\u003c/td\u003e\u003ctd\u003eerrorMessage\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e772402\u003c/td\u003e\u003ctd\u003eUnable delete groups\u003c/td\u003e\u003c/tr\u003e\u003c/table\u003e", "schema": { "$ref": "#/definitions/response.Error" } } }, "security": [ { "authorization": [] } ], "summary": "Delete group", "tags": [ "Admin Group" ], "x-errorCodes": { "20001": "unauthorized access", "772402": "Unable delete groups", "772403": "Group not found" }, "x-security": [ { "userPermissions": [ "ADMIN:NAMESPACE:{namespace}:USER:{userId}:CONTENTGROUP [DELETE]" ] } ] }, "get": { "consumes": [ "application/json" ], "description": "Get user group by group ID", "operationId": "AdminGetGroup", "parameters": [ { "description": "group ID", "in": "path", "name": "groupId", "required": true, "type": "string" }, { "description": "namespace of the game", "in": "path", "name": "namespace", "required": true, "type": "string" }, { "description": "user ID", "in": "path", "name": "userId", "required": true, "type": "string" } ], "produces": [ "application/json" ], "responses": { "200": { "description": "Get specific user group", "schema": { "$ref": "#/definitions/models.CreateGroupResponse" } }, "401": { "description": "\u003ctable\u003e\u003ctr\u003e\u003ctd\u003eerrorCode\u003c/td\u003e\u003ctd\u003eerrorMessage\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e20001\u003c/td\u003e\u003ctd\u003eunauthorized access\u003c/td\u003e\u003c/tr\u003e\u003c/table\u003e", "schema": { "$ref": "#/definitions/response.Error" } }, "404": { "description": "\u003ctable\u003e\u003ctr\u003e\u003ctd\u003eerrorCode\u003c/td\u003e\u003ctd\u003eerrorMessage\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e773002\u003c/td\u003e\u003ctd\u003eGroup not found\u003c/td\u003e\u003c/tr\u003e\u003c/table\u003e", "schema": { "$ref": "#/definitions/response.Error" } }, "500": { "description": "\u003ctable\u003e\u003ctr\u003e\u003ctd\u003eerrorCode\u003c/td\u003e\u003ctd\u003eerrorMessage\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e773001\u003c/td\u003e\u003ctd\u003eUnable get group\u003c/td\u003e\u003c/tr\u003e\u003c/table\u003e", "schema": { "$ref": "#/definitions/response.Error" } } }, "security": [ { "authorization": [] } ], "summary": "Get specific user group", "tags": [ "Admin Group" ], "x-errorCodes": { "20001": "unauthorized access", "773001": "Unable get group", "773002": "Group not found" }, "x-security": [ { "userPermissions": [ "ADMIN:NAMESPACE:{namespace}:USER:{userId}:CONTENTGROUP [READ]" ] } ] }, "put": { "consumes": [ "application/json" ], "description": "Replace group name and contents with new ones.", "operationId": "AdminUpdateGroup", "parameters": [ { "in": "body", "name": "body", "required": true, "schema": { "$ref": "#/definitions/models.CreateGroupRequest" } }, { "description": "group ID", "in": "path", "name": "groupId", "required": true, "type": "string" }, { "description": "namespace of the game", "in": "path", "name": "namespace", "required": true, "type": "string" }, { "description": "user ID", "in": "path", "name": "userId", "required": true, "type": "string" } ], "produces": [ "application/json" ], "responses": { "200": { "description": "Group updated", "schema": { "$ref": "#/definitions/models.CreateGroupResponse" } }, "400": { "description": "\u003ctable\u003e\u003ctr\u003e\u003ctd\u003eerrorCode\u003c/td\u003e\u003ctd\u003eerrorMessage\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e772201\u003c/td\u003e\u003ctd\u003eMalformed request/Invalid request body\u003c/td\u003e\u003c/tr\u003e\u003c/table\u003e", "schema": { "$ref": "#/definitions/response.Error" } }, "401": { "description": "\u003ctable\u003e\u003ctr\u003e\u003ctd\u003eerrorCode\u003c/td\u003e\u003ctd\u003eerrorMessage\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e20001\u003c/td\u003e\u003ctd\u003eunauthorized access\u003c/td\u003e\u003c/tr\u003e\u003c/table\u003e", "schema": { "$ref": "#/definitions/response.Error" } }, "404": { "description": "\u003ctable\u003e\u003ctr\u003e\u003ctd\u003eerrorCode\u003c/td\u003e\u003ctd\u003eerrorMessage\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e772203\u003c/td\u003e\u003ctd\u003eGroup not found\u003c/td\u003e\u003c/tr\u003e\u003c/table\u003e", "schema": { "$ref": "#/definitions/response.Error" } }, "500": { "description": "\u003ctable\u003e\u003ctr\u003e\u003ctd\u003eerrorCode\u003c/td\u003e\u003ctd\u003eerrorMessage\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e772202\u003c/td\u003e\u003ctd\u003eUnable to update group\u003c/td\u003e\u003c/tr\u003e\u003c/table\u003e", "schema": { "$ref": "#/definitions/response.Error" } } }, "security": [ { "authorization": [] } ], "summary": "Update group", "tags": [ "Admin Group" ], "x-errorCodes": { "20001": "unauthorized access", "772201": "Malformed request/Invalid request body", "772202": "Unable to update group", "772203": "Group not found" }, "x-security": [ { "userPermissions": [ "ADMIN:NAMESPACE:{namespace}:USER:{userId}:CONTENTGROUP [UPDATE]" ] } ] } }, "/ugc/v1/admin/namespaces/{namespace}/users/{userId}/groups/{groupId}/contents": { "get": { "consumes": [ "application/json" ], "description": "Get content belong to a group", "operationId": "AdminGetGroupContents", "parameters": [ { "description": "group ID", "in": "path", "name": "groupId", "required": true, "type": "string" }, { "description": "namespace of the game", "in": "path", "name": "namespace", "required": true, "type": "string" }, { "description": "user ID", "in": "path", "name": "userId", "required": true, "type": "string" }, { "default": 20, "description": "number of content per page", "in": "query", "name": "limit", "type": "integer" }, { "default": 0, "description": "the offset number to retrieve", "in": "query", "name": "offset", "type": "integer" } ], "produces": [ "application/json" ], "responses": { "200": { "description": "Get content belong to a group", "schema": { "$ref": "#/definitions/models.PaginatedContentDownloadResponse" } }, "400": { "description": "\u003ctable\u003e\u003ctr\u003e\u003ctd\u003eerrorCode\u003c/td\u003e\u003ctd\u003eerrorMessage\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e773101\u003c/td\u003e\u003ctd\u003einvalid paging parameter\u003c/td\u003e\u003c/tr\u003e\u003c/table\u003e", "schema": { "$ref": "#/definitions/response.Error" } }, "401": { "description": "\u003ctable\u003e\u003ctr\u003e\u003ctd\u003eerrorCode\u003c/td\u003e\u003ctd\u003eerrorMessage\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e20001\u003c/td\u003e\u003ctd\u003eunauthorized access\u003c/td\u003e\u003c/tr\u003e\u003c/table\u003e", "schema": { "$ref": "#/definitions/response.Error" } }, "404": { "description": "\u003ctable\u003e\u003ctr\u003e\u003ctd\u003eerrorCode\u003c/td\u003e\u003ctd\u003eerrorMessage\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e773103\u003c/td\u003e\u003ctd\u003eNo group content was found\u003c/td\u003e\u003c/tr\u003e\u003c/table\u003e", "schema": { "$ref": "#/definitions/response.Error" } }, "500": { "description": "\u003ctable\u003e\u003ctr\u003e\u003ctd\u003eerrorCode\u003c/td\u003e\u003ctd\u003eerrorMessage\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e773102\u003c/td\u003e\u003ctd\u003eUnable to get ugc content: database error\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e770901\u003c/td\u003e\u003ctd\u003eUnable to get ugc content: database error/Unable to get creator\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e770903\u003c/td\u003e\u003ctd\u003eFailed generate download URL\u003c/td\u003e\u003c/tr\u003e\u003c/table\u003e", "schema": { "$ref": "#/definitions/response.Error" } } }, "security": [ { "authorization": [] } ], "summary": "(Legacy) Get contents belong to a group", "tags": [ "Admin Group" ], "x-errorCodes": { "20001": "unauthorized access", "770901": "Unable to get ugc content: database error/Unable to get creator", "770903": "Failed generate download URL", "773101": "invalid paging parameter", "773102": "Unable to get ugc content: database error", "773103": "No group content was found" }, "x-security": [ { "userPermissions": [ "ADMIN:NAMESPACE:{namespace}:USER:{userId}:CONTENT [READ]" ] } ] } }, "/ugc/v1/admin/namespaces/{namespace}/users/{userId}/states": { "delete": { "consumes": [ "application/json" ], "description": "Required permission ADMIN:NAMESPACE:{namespace}:USER:{userId} [DELETE]", "operationId": "AdminDeleteAllUserStates", "parameters": [ { "description": "namespace of the game", "in": "path", "name": "namespace", "required": true, "type": "string" }, { "description": "user ID", "in": "path", "name": "userId", "required": true, "type": "string" } ], "produces": [ "application/json" ], "responses": { "204": { "description": "User stats deleted" }, "401": { "description": "\u003ctable\u003e\u003ctr\u003e\u003ctd\u003eerrorCode\u003c/td\u003e\u003ctd\u003eerrorMessage\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e20001\u003c/td\u003e\u003ctd\u003eunauthorized access\u003c/td\u003e\u003c/tr\u003e\u003c/table\u003e", "schema": { "$ref": "#/definitions/response.Error" } }, "404": { "description": "\u003ctable\u003e\u003ctr\u003e\u003ctd\u003eerrorCode\u003c/td\u003e\u003ctd\u003eerrorMessage\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e773602\u003c/td\u003e\u003ctd\u003euser states are not found: content not found\u003c/td\u003e\u003c/tr\u003e\u003c/table\u003e", "schema": { "$ref": "#/definitions/response.Error" } }, "500": { "description": "\u003ctable\u003e\u003ctr\u003e\u003ctd\u003eerrorCode\u003c/td\u003e\u003ctd\u003eerrorMessage\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e773601\u003c/td\u003e\u003ctd\u003eUnable to get all user contents/Unable to delete user states\u003c/td\u003e\u003c/tr\u003e\u003c/table\u003e", "schema": { "$ref": "#/definitions/response.Error" } } }, "security": [ { "authorization": [] } ], "summary": "Remove all user related state: likes, downloads, followers, following", "tags": [ "Anonymization" ], "x-errorCodes": { "20001": "unauthorized access", "773601": "Unable to get all user contents/Unable to delete user states", "773602": "user states are not found: content not found" }, "x-security": [ { "userPermissions": [ "ADMIN:NAMESPACE:{namespace}:USER:{userId} [DELETE]" ] } ] } }, "/ugc/v1/public/namespaces/{namespace}/channels/{channelId}/contents": { "get": { "consumes": [ "application/json", "application/octet-stream" ], "description": "Requires valid user token.\n\nFor advance tag filtering supports \u0026amp; as AND operator and | as OR operator and parentheses () for priority. e.g: \n\n\u0026lt;code\u0026gt;tags=red\u0026lt;/code\u0026gt;\n\n\u0026lt;code\u0026gt;tags=red\u0026amp;animal\u0026lt;/code\u0026gt;\n\n\u0026lt;code\u0026gt;tags=red|animal\u0026lt;/code\u0026gt;\n\n\u0026lt;code\u0026gt;tags=red\u0026amp;animal|wild\u0026lt;/code\u0026gt;\n\n\u0026lt;code\u0026gt;tags=red\u0026amp;(animal|wild)\u0026lt;/code\u0026gt;\n\nThe precedence of logical operator is AND \u0026gt; OR, so if no parentheses, AND logical operator will be executed first.\n\nAllowed character for operand: alphanumeric, underscore \u0026lt;code\u0026gt;_\u0026lt;/code\u0026gt; and dash \u0026lt;code\u0026gt;-\u0026lt;/code\u0026gt;\n\nAllowed character for operator: \u0026lt;code\u0026gt;\u0026amp;\u0026lt;/code\u0026gt; \u0026lt;code\u0026gt;|\u0026lt;/code\u0026gt; \u0026lt;code\u0026gt;(\u0026lt;/code\u0026gt; \u0026lt;code\u0026gt;)\u0026lt;/code\u0026gt;\n\n\u0026lt;b\u0026gt;Please note that value of tags query param should be URL encoded\u0026lt;/b\u0026gt;", "operationId": "SearchChannelSpecificContent", "parameters": [ { "description": "channel ID", "in": "path", "name": "channelId", "required": true, "type": "string" }, { "description": "namespace of the game", "in": "path", "name": "namespace", "required": true, "type": "string" }, { "description": "creator name", "in": "query", "name": "creator", "type": "string" }, { "description": "set to true to list only hidden contents, false to list only non-hidden contents", "in": "query", "name": "ishidden", "type": "string" }, { "description": "filter only official contents (boolean)", "in": "query", "name": "isofficial", "type": "string" }, { "default": 20, "description": "number of content per page. max limit: -1 (-1 means unlimited).", "in": "query", "name": "limit", "type": "integer" }, { "description": "content name", "in": "query", "name": "name", "type": "string" }, { "default": 0, "description": "the offset number to retrieve", "in": "query", "name": "offset", "type": "integer" }, { "description": "sorting order: asc, desc. default=desc", "in": "query", "name": "orderby", "type": "string" }, { "description": "sorting criteria: name,download,like,date,updatedTime. default=date", "in": "query", "name": "sortby", "type": "string" }, { "description": "content subtype", "in": "query", "name": "subtype", "type": "string" }, { "collectionFormat": "csv", "description": "content tag. max number of tags: -1 tags (-1 means unlimited).", "in": "query", "items": { "type": "string" }, "name": "tags", "type": "array" }, { "description": "content type", "in": "query", "name": "type", "type": "string" }, { "description": "user ID", "in": "query", "name": "userId", "type": "string" } ], "produces": [ "application/json" ], "responses": { "200": { "description": "Search contents specific to a channel", "schema": { "$ref": "#/definitions/models.PaginatedContentDownloadResponse" } }, "400": { "description": "\u003ctable\u003e\u003ctr\u003e\u003ctd\u003eerrorCode\u003c/td\u003e\u003ctd\u003eerrorMessage\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e770800\u003c/td\u003e\u003ctd\u003einvalid paging parameter/max allowed number of tags is {maxTags}/invalid official parameter/invalid ishidden parameter\u003c/td\u003e\u003c/tr\u003e\u003c/table\u003e", "schema": { "$ref": "#/definitions/response.Error" } }, "401": { "description": "\u003ctable\u003e\u003ctr\u003e\u003ctd\u003eerrorCode\u003c/td\u003e\u003ctd\u003eerrorMessage\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e20001\u003c/td\u003e\u003ctd\u003eunauthorized access\u003c/td\u003e\u003c/tr\u003e\u003c/table\u003e", "schema": { "$ref": "#/definitions/response.Error" } }, "500": { "description": "\u003ctable\u003e\u003ctr\u003e\u003ctd\u003eerrorCode\u003c/td\u003e\u003ctd\u003eerrorMessage\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e770801\u003c/td\u003e\u003ctd\u003eUnable to get ugc content: database/Unable to get creator\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e770803\u003c/td\u003e\u003ctd\u003eFailed generate download URL\u003c/td\u003e\u003c/tr\u003e\u003c/table\u003e", "schema": { "$ref": "#/definitions/response.Error" } } }, "security": [ { "authorization": [] } ], "summary": "Search contents specific to a channel", "tags": [ "Public Content (Legacy)" ], "x-errorCodes": { "20001": "unauthorized access", "770800": "invalid paging parameter/max allowed number of tags is {maxTags}/invalid official parameter/invalid ishidden parameter", "770801": "Unable to get ugc content: database/Unable to get creator", "770803": "Failed generate download URL" }, "x-security": {} } }, "/ugc/v1/public/namespaces/{namespace}/contents": { "get": { "consumes": [ "application/json", "application/octet-stream" ], "description": "Public user can access without token or if token specified, requires valid user token.\n\nFor advance tag filtering supports \u0026amp; as AND operator and | as OR operator and parentheses () for priority. e.g: \n\n\u0026lt;code\u0026gt;tags=red\u0026lt;/code\u0026gt;\n\n\u0026lt;code\u0026gt;tags=red\u0026amp;animal\u0026lt;/code\u0026gt;\n\n\u0026lt;code\u0026gt;tags=red|animal\u0026lt;/code\u0026gt;\n\n\u0026lt;code\u0026gt;tags=red\u0026amp;animal|wild\u0026lt;/code\u0026gt;\n\n\u0026lt;code\u0026gt;tags=red\u0026amp;(animal|wild)\u0026lt;/code\u0026gt;\n\nThe precedence of logical operator is AND \u0026gt; OR, so if no parentheses, AND logical operator will be executed first.\n\nAllowed character for operand: alphanumeric, underscore \u0026lt;code\u0026gt;_\u0026lt;/code\u0026gt; and dash \u0026lt;code\u0026gt;-\u0026lt;/code\u0026gt;\n\nAllowed character for operator: \u0026lt;code\u0026gt;\u0026amp;\u0026lt;/code\u0026gt; \u0026lt;code\u0026gt;|\u0026lt;/code\u0026gt; \u0026lt;code\u0026gt;(\u0026lt;/code\u0026gt; \u0026lt;code\u0026gt;)\u0026lt;/code\u0026gt;\n\n\u0026lt;b\u0026gt;Please note that value of tags query param should be URL encoded\u0026lt;/b\u0026gt;", "operationId": "PublicSearchContent", "parameters": [ { "description": "namespace of the game", "in": "path", "name": "namespace", "required": true, "type": "string" }, { "description": "creator name", "in": "query", "name": "creator", "type": "string" }, { "description": "set to true to list only hidden contents, false to list only non-hidden contents", "in": "query", "name": "ishidden", "type": "string" }, { "description": "filter only official contents (boolean)", "in": "query", "name": "isofficial", "type": "string" }, { "default": 20, "description": "number of content per page. max limit: -1 (-1 means unlimited).", "in": "query", "name": "limit", "type": "integer" }, { "description": "content name", "in": "query", "name": "name", "type": "string" }, { "default": 0, "description": "the offset number to retrieve", "in": "query", "name": "offset", "type": "integer" }, { "description": "sorting order: asc, desc. default=desc", "in": "query", "name": "orderby", "type": "string" }, { "description": "sorting criteria: name,download,like,date,updatedTime. default=date", "in": "query", "name": "sortby", "type": "string" }, { "description": "content subtype", "in": "query", "name": "subtype", "type": "string" }, { "collectionFormat": "csv", "description": "content tag. max number of tags: -1 tags (-1 means unlimited).", "in": "query", "items": { "type": "string" }, "name": "tags", "type": "array" }, { "description": "content type", "in": "query", "name": "type", "type": "string" }, { "description": "user ID", "in": "query", "name": "userId", "type": "string" } ], "produces": [ "application/json" ], "responses": { "200": { "description": "Search contents", "schema": { "$ref": "#/definitions/models.PaginatedContentDownloadResponse" } }, "400": { "description": "\u003ctable\u003e\u003ctr\u003e\u003ctd\u003eerrorCode\u003c/td\u003e\u003ctd\u003eerrorMessage\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e770800\u003c/td\u003e\u003ctd\u003einvalid paging parameter/max allowed number of tags is {maxTags}/invalid official parameter/invalid ishidden parameter\u003c/td\u003e\u003c/tr\u003e\u003c/table\u003e", "schema": { "$ref": "#/definitions/response.Error" } }, "401": { "description": "\u003ctable\u003e\u003ctr\u003e\u003ctd\u003eerrorCode\u003c/td\u003e\u003ctd\u003eerrorMessage\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e20001\u003c/td\u003e\u003ctd\u003eunauthorized access\u003c/td\u003e\u003c/tr\u003e\u003c/table\u003e", "schema": { "$ref": "#/definitions/response.Error" } }, "500": { "description": "\u003ctable\u003e\u003ctr\u003e\u003ctd\u003eerrorCode\u003c/td\u003e\u003ctd\u003eerrorMessage\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e770801\u003c/td\u003e\u003ctd\u003eUnable to get ugc content: database/Unable to get creator\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e770803\u003c/td\u003e\u003ctd\u003eFailed generate download URL\u003c/td\u003e\u003c/tr\u003e\u003c/table\u003e", "schema": { "$ref": "#/definitions/response.Error" } } }, "security": [ { "authorization": [] } ], "summary": "Search contents", "tags": [ "Public Content (Legacy)" ], "x-errorCodes": { "20001": "unauthorized access", "770800": "invalid paging parameter/max allowed number of tags is {maxTags}/invalid official parameter/invalid ishidden parameter", "770801": "Unable to get ugc content: database/Unable to get creator", "770803": "Failed generate download URL" }, "x-security": {} } }, "/ugc/v1/public/namespaces/{namespace}/contents/bulk": { "post": { "consumes": [ "application/json", "application/octet-stream" ], "description": "Maximum requested Ids: 100.\n\t\t\tPublic user can access without token or if token specified, requires valid user token", "operationId": "PublicGetContentBulk", "parameters": [ { "in": "body", "name": "body", "required": true, "schema": { "$ref": "#/definitions/models.PublicGetContentBulkRequest" } }, { "description": "namespace of the game", "in": "path", "name": "namespace", "required": true, "type": "string" } ], "produces": [ "application/json" ], "responses": { "200": { "description": "Get contents by content Ids", "schema": { "items": { "$ref": "#/definitions/models.ContentDownloadResponse" }, "type": "array" } }, "400": { "description": "\u003ctable\u003e\u003ctr\u003e\u003ctd\u003eerrorCode\u003c/td\u003e\u003ctd\u003eerrorMessage\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e773900\u003c/td\u003e\u003ctd\u003eMalformed request/Invalid request body\u003c/td\u003e\u003c/tr\u003e\u003c/table\u003e", "schema": { "$ref": "#/definitions/response.Error" } }, "401": { "description": "\u003ctable\u003e\u003ctr\u003e\u003ctd\u003eerrorCode\u003c/td\u003e\u003ctd\u003eerrorMessage\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e20001\u003c/td\u003e\u003ctd\u003eunauthorized access\u003c/td\u003e\u003c/tr\u003e\u003c/table\u003e", "schema": { "$ref": "#/definitions/response.Error" } }, "500": { "description": "\u003ctable\u003e\u003ctr\u003e\u003ctd\u003eerrorCode\u003c/td\u003e\u003ctd\u003eerrorMessage\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e773901\u003c/td\u003e\u003ctd\u003eUnable to get ugc content: database/Unable to get creator\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e773902\u003c/td\u003e\u003ctd\u003eFailed generate download URL\u003c/td\u003e\u003c/tr\u003e\u003c/table\u003e", "schema": { "$ref": "#/definitions/response.Error" } } }, "security": [ { "authorization": [] } ], "summary": "Get contents by content Ids ", "tags": [ "Public Content (Legacy)" ], "x-errorCodes": { "20001": "unauthorized access", "773900": "Malformed request/Invalid request body", "773901": "Unable to get ugc content: database/Unable to get creator", "773902": "Failed generate download URL" }, "x-security": {} } }, "/ugc/v1/public/namespaces/{namespace}/contents/followed": { "get": { "consumes": [ "application/json", "application/octet-stream" ], "description": "Requires valid user token", "operationId": "GetFollowedContent", "parameters": [ { "description": "namespace of the game", "in": "path", "name": "namespace", "required": true, "type": "string" }, { "default": 20, "description": "number of content per page", "in": "query", "name": "limit", "type": "integer" }, { "default": 0, "description": "the offset number to retrieve", "in": "query", "name": "offset", "type": "integer" } ], "produces": [ "application/json" ], "responses": { "200": { "description": "Get contents from followed creators", "schema": { "$ref": "#/definitions/models.PaginatedContentDownloadResponse" } }, "400": { "description": "\u003ctable\u003e\u003ctr\u003e\u003ctd\u003eerrorCode\u003c/td\u003e\u003ctd\u003eerrorMessage\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e771311\u003c/td\u003e\u003ctd\u003einvalid paging parameter\u003c/td\u003e\u003c/tr\u003e\u003c/table\u003e", "schema": { "$ref": "#/definitions/response.Error" } }, "401": { "description": "\u003ctable\u003e\u003ctr\u003e\u003ctd\u003eerrorCode\u003c/td\u003e\u003ctd\u003eerrorMessage\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e20001\u003c/td\u003e\u003ctd\u003eunauthorized access\u003c/td\u003e\u003c/tr\u003e\u003c/table\u003e", "schema": { "$ref": "#/definitions/response.Error" } }, "500": { "description": "\u003ctable\u003e\u003ctr\u003e\u003ctd\u003eerrorCode\u003c/td\u003e\u003ctd\u003eerrorMessage\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e771310\u003c/td\u003e\u003ctd\u003eUnable to get ugc content: database error\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e770801\u003c/td\u003e\u003ctd\u003eUnable to get ugc content: database/Unable to get creator\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e770803\u003c/td\u003e\u003ctd\u003eFailed generate download URL\u003c/td\u003e\u003c/tr\u003e\u003c/table\u003e", "schema": { "$ref": "#/definitions/response.Error" } } }, "security": [ { "authorization": [] } ], "summary": "Get contents from followed creators", "tags": [ "Public Follow" ], "x-errorCodes": { "20001": "unauthorized access", "770801": "Unable to get ugc content: database/Unable to get creator", "770803": "Failed generate download URL", "771310": "Unable to get ugc content: database error", "771311": "invalid paging parameter" }, "x-security": {} } }, "/ugc/v1/public/namespaces/{namespace}/contents/liked": { "get": { "consumes": [ "application/json", "application/octet-stream" ], "description": "For advance tag filtering supports \u0026amp; as AND operator and | as OR operator and parentheses ( ) for priority. e.g: \n\n\n*tags=red*\n*tags=red\u0026amp;animal*\n*tags=red|animal*\n*tags=red\u0026amp;animal|wild*\n*tags=red\u0026amp;(animal|wild)*\n\nThe precedence of logical operator is AND \u0026gt; OR, so if no parentheses, AND logical operator will be executed first. \n\nAllowed character for operand: alphanumeric, underscore _ and dash - \n\nAllowed character for operator: \u0026amp; | ( )\n\n\n**Please note that value of tags query param should be URL encoded**", "operationId": "GetLikedContent", "parameters": [ { "description": "namespace of the game", "in": "path", "name": "namespace", "required": true, "type": "string" }, { "description": "filter content by official or community", "in": "query", "name": "isofficial", "type": "boolean", "x-omitempty": false }, { "default": 20, "description": "number of content per page", "in": "query", "name": "limit", "type": "integer" }, { "description": "content name", "in": "query", "name": "name", "type": "string" }, { "default": 0, "description": "the offset number to retrieve", "in": "query", "name": "offset", "type": "integer" }, { "description": "sorting order: asc, desc. default=desc", "in": "query", "name": "orderby", "type": "string" }, { "description": "sorting criteria: name,download,like,date. default=date", "in": "query", "name": "sortby", "type": "string" }, { "description": "subtype", "in": "query", "name": "subtype", "type": "string" }, { "collectionFormat": "csv", "description": "tags", "in": "query", "items": { "type": "string" }, "name": "tags", "type": "array" }, { "description": "type", "in": "query", "name": "type", "type": "string" } ], "produces": [ "application/json" ], "responses": { "200": { "description": "Get liked contents", "schema": { "$ref": "#/definitions/models.PaginatedContentDownloadResponse" } }, "400": { "description": "\u003ctable\u003e\u003ctr\u003e\u003ctd\u003eerrorCode\u003c/td\u003e\u003ctd\u003eerrorMessage\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e771100\u003c/td\u003e\u003ctd\u003eunable to parse isofficial param\u003c/td\u003e\u003c/tr\u003e\u003c/table\u003e", "schema": { "$ref": "#/definitions/response.Error" } }, "401": { "description": "\u003ctable\u003e\u003ctr\u003e\u003ctd\u003eerrorCode\u003c/td\u003e\u003ctd\u003eerrorMessage\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e20001\u003c/td\u003e\u003ctd\u003eunauthorized access\u003c/td\u003e\u003c/tr\u003e\u003c/table\u003e", "schema": { "$ref": "#/definitions/response.Error" } }, "500": { "description": "\u003ctable\u003e\u003ctr\u003e\u003ctd\u003eerrorCode\u003c/td\u003e\u003ctd\u003eerrorMessage\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e771101\u003c/td\u003e\u003ctd\u003eUnable to get ugc content: database error\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e770801\u003c/td\u003e\u003ctd\u003eUnable to get ugc content: database/Unable to get creator\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e770803\u003c/td\u003e\u003ctd\u003eFailed generate download URL\u003c/td\u003e\u003c/tr\u003e\u003c/table\u003e", "schema": { "$ref": "#/definitions/response.Error" } } }, "security": [ { "authorization": [] } ], "summary": "Get liked contents", "tags": [ "Public Like (Legacy)" ], "x-errorCodes": { "20001": "unauthorized access", "770801": "Unable to get ugc content: database/Unable to get creator", "770803": "Failed generate download URL", "771100": "unable to parse isofficial param", "771101": "Unable to get ugc content: database error" }, "x-security": {} } }, "/ugc/v1/public/namespaces/{namespace}/contents/sharecodes/bulk": { "post": { "consumes": [ "application/json", "application/octet-stream" ], "description": "Require valid user token.\n\t\t\t\t\tMaximum sharecodes per request 100", "operationId": "PublicGetContentBulkByShareCodes", "parameters": [ { "in": "body", "name": "body", "required": true, "schema": { "$ref": "#/definitions/models.GetContentBulkByShareCodesRequest" } }, { "description": "namespace of the game", "in": "path", "name": "namespace", "required": true, "type": "string" } ], "produces": [ "application/json" ], "responses": { "200": { "description": "Bulk get content by sharecodes", "schema": { "items": { "$ref": "#/definitions/models.ContentDownloadResponse" }, "type": "array" } }, "400": { "description": "\u003ctable\u003e\u003ctr\u003e\u003ctd\u003eerrorCode\u003c/td\u003e\u003ctd\u003eerrorMessage\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e773900\u003c/td\u003e\u003ctd\u003eMalformed request/Invalid request body\u003c/td\u003e\u003c/tr\u003e\u003c/table\u003e", "schema": { "$ref": "#/definitions/response.Error" } }, "401": { "description": "\u003ctable\u003e\u003ctr\u003e\u003ctd\u003eerrorCode\u003c/td\u003e\u003ctd\u003eerrorMessage\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e20001\u003c/td\u003e\u003ctd\u003eunauthorized access\u003c/td\u003e\u003c/tr\u003e\u003c/table\u003e", "schema": { "$ref": "#/definitions/response.Error" } }, "403": { "description": "\u003ctable\u003e\u003ctr\u003e\u003ctd\u003eerrorCode\u003c/td\u003e\u003ctd\u003eerrorMessage\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e20013\u003c/td\u003e\u003ctd\u003einsufficient permission\u003c/td\u003e\u003c/tr\u003e\u003c/table\u003e", "schema": { "$ref": "#/definitions/response.Error" } }, "500": { "description": "\u003ctable\u003e\u003ctr\u003e\u003ctd\u003eerrorCode\u003c/td\u003e\u003ctd\u003eerrorMessage\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e773901\u003c/td\u003e\u003ctd\u003eUnable to get ugc content: database/Unable to get creator\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e773902\u003c/td\u003e\u003ctd\u003eFailed generate download URL\u003c/td\u003e\u003c/tr\u003e\u003c/table\u003e", "schema": { "$ref": "#/definitions/response.Error" } } }, "security": [ { "authorization": [] } ], "summary": "Bulk get content by content sharecodes", "tags": [ "Public Content (Legacy)" ], "x-errorCodes": { "20001": "unauthorized access", "20013": "insufficient permission", "773900": "Malformed request/Invalid request body", "773901": "Unable to get ugc content: database/Unable to get creator", "773902": "Failed generate download URL" }, "x-security": {} } }, "/ugc/v1/public/namespaces/{namespace}/contents/sharecodes/{shareCode}": { "get": { "consumes": [ "application/json", "application/octet-stream" ], "description": "Public user can access without token or if token specified, requires valid user token", "operationId": "PublicDownloadContentByShareCode", "parameters": [ { "description": "namespace of the game", "in": "path", "name": "namespace", "required": true, "type": "string" }, { "description": "content sharecode", "in": "path", "name": "shareCode", "required": true, "type": "string" } ], "produces": [ "application/json" ], "responses": { "200": { "description": "Get content by sharecode", "schema": { "$ref": "#/definitions/models.ContentDownloadResponse" } }, "401": { "description": "\u003ctable\u003e\u003ctr\u003e\u003ctd\u003eerrorCode\u003c/td\u003e\u003ctd\u003eerrorMessage\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e20001\u003c/td\u003e\u003ctd\u003eunauthorized access\u003c/td\u003e\u003c/tr\u003e\u003c/table\u003e", "schema": { "$ref": "#/definitions/response.Error" } }, "404": { "description": "\u003ctable\u003e\u003ctr\u003e\u003ctd\u003eerrorCode\u003c/td\u003e\u003ctd\u003eerrorMessage\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e770300\u003c/td\u003e\u003ctd\u003eugc content not found\u003c/td\u003e\u003c/tr\u003e\u003c/table\u003e", "schema": { "$ref": "#/definitions/response.Error" } }, "500": { "description": "\u003ctable\u003e\u003ctr\u003e\u003ctd\u003eerrorCode\u003c/td\u003e\u003ctd\u003eerrorMessage\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e770301\u003c/td\u003e\u003ctd\u003eUnable to get ugc content/Unable to get creator\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e770303\u003c/td\u003e\u003ctd\u003eFailed generate download URL\u003c/td\u003e\u003c/tr\u003e\u003c/table\u003e", "schema": { "$ref": "#/definitions/response.Error" } } }, "security": [ { "authorization": [] } ], "summary": "Get content by sharecode", "tags": [ "Public Content (Legacy)" ], "x-errorCodes": { "20001": "unauthorized access", "770300": "ugc content not found", "770301": "Unable to get ugc content/Unable to get creator", "770303": "Failed generate download URL" }, "x-security": {} } }, "/ugc/v1/public/namespaces/{namespace}/contents/{contentId}": { "get": { "consumes": [ "application/json", "application/octet-stream" ], "description": "Public user can access without token or if token specified, requires valid user token", "operationId": "PublicDownloadContentByContentID", "parameters": [ { "description": "content ID", "in": "path", "name": "contentId", "required": true, "type": "string" }, { "description": "namespace of the game", "in": "path", "name": "namespace", "required": true, "type": "string" } ], "produces": [ "application/json" ], "responses": { "200": { "description": "Get user specific content", "schema": { "$ref": "#/definitions/models.ContentDownloadResponse" } }, "401": { "description": "\u003ctable\u003e\u003ctr\u003e\u003ctd\u003eerrorCode\u003c/td\u003e\u003ctd\u003eerrorMessage\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e20001\u003c/td\u003e\u003ctd\u003eunauthorized access\u003c/td\u003e\u003c/tr\u003e\u003c/table\u003e", "schema": { "$ref": "#/definitions/response.Error" } }, "404": { "description": "\u003ctable\u003e\u003ctr\u003e\u003ctd\u003eerrorCode\u003c/td\u003e\u003ctd\u003eerrorMessage\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e773200\u003c/td\u003e\u003ctd\u003eugc content not found\u003c/td\u003e\u003c/tr\u003e\u003c/table\u003e", "schema": { "$ref": "#/definitions/response.Error" } }, "500": { "description": "\u003ctable\u003e\u003ctr\u003e\u003ctd\u003eerrorCode\u003c/td\u003e\u003ctd\u003eerrorMessage\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e773201\u003c/td\u003e\u003ctd\u003eUnable to get ugc content/Unable to get creator/Unable to get included group\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e773203\u003c/td\u003e\u003ctd\u003eFailed generate download URL\u003c/td\u003e\u003c/tr\u003e\u003c/table\u003e", "schema": { "$ref": "#/definitions/response.Error" } } }, "security": [ { "authorization": [] } ], "summary": "Get user specific content", "tags": [ "Public Content (Legacy)" ], "x-errorCodes": { "20001": "unauthorized access", "773200": "ugc content not found", "773201": "Unable to get ugc content/Unable to get creator/Unable to get included group", "773203": "Failed generate download URL" }, "x-security": {} } }, "/ugc/v1/public/namespaces/{namespace}/contents/{contentId}/downloadcount": { "post": { "consumes": [ "application/json", "application/octet-stream" ], "description": "This endpoint can be used to count how many the ugc downloaded", "operationId": "AddDownloadCount", "parameters": [ { "description": "content ID", "in": "path", "name": "contentId", "required": true, "type": "string" }, { "description": "namespace of the game", "in": "path", "name": "namespace", "required": true, "type": "string" } ], "produces": [ "application/json" ], "responses": { "200": { "description": "added download count to a content", "schema": { "$ref": "#/definitions/models.AddDownloadCountResponse" } }, "401": { "description": "\u003ctable\u003e\u003ctr\u003e\u003ctd\u003eerrorCode\u003c/td\u003e\u003ctd\u003eerrorMessage\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e20001\u003c/td\u003e\u003ctd\u003eunauthorized access\u003c/td\u003e\u003c/tr\u003e\u003c/table\u003e", "schema": { "$ref": "#/definitions/response.Error" } }, "404": { "description": "\u003ctable\u003e\u003ctr\u003e\u003ctd\u003eerrorCode\u003c/td\u003e\u003ctd\u003eerrorMessage\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e772903\u003c/td\u003e\u003ctd\u003eUnable to add content download: content not found\u003c/td\u003e\u003c/tr\u003e\u003c/table\u003e", "schema": { "$ref": "#/definitions/response.Error" } }, "500": { "description": "\u003ctable\u003e\u003ctr\u003e\u003ctd\u003eerrorCode\u003c/td\u003e\u003ctd\u003eerrorMessage\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e772902\u003c/td\u003e\u003ctd\u003eUnable to add content download: database error\u003c/td\u003e\u003c/tr\u003e\u003c/table\u003e", "schema": { "$ref": "#/definitions/response.Error" } } }, "security": [ { "authorization": [] } ], "summary": "Add unique download count to a content", "tags": [ "Public Download Count (Legacy)" ], "x-errorCodes": { "20001": "unauthorized access", "772902": "Unable to add content download: database error", "772903": "Unable to add content download: content not found" }, "x-security": {} } }, "/ugc/v1/public/namespaces/{namespace}/contents/{contentId}/like": { "put": { "consumes": [ "application/json", "application/octet-stream" ], "description": "This endpoint will update like/unlike state from a content", "operationId": "UpdateContentLikeStatus", "parameters": [ { "in": "body", "name": "body", "required": true, "schema": { "$ref": "#/definitions/models.ContentLikeRequest" } }, { "description": "content ID", "in": "path", "name": "contentId", "required": true, "type": "string" }, { "description": "namespace of the game", "in": "path", "name": "namespace", "required": true, "type": "string" } ], "produces": [ "application/json" ], "responses": { "200": { "description": "Update like/unlike status to a content", "schema": { "$ref": "#/definitions/models.ContentLikeResponse" } }, "400": { "description": "\u003ctable\u003e\u003ctr\u003e\u003ctd\u003eerrorCode\u003c/td\u003e\u003ctd\u003eerrorMessage\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e771000\u003c/td\u003e\u003ctd\u003eMalformed request/Content not found/Unable to update like status: content not found\u003c/td\u003e\u003c/tr\u003e\u003c/table\u003e", "schema": { "$ref": "#/definitions/response.Error" } }, "401": { "description": "\u003ctable\u003e\u003ctr\u003e\u003ctd\u003eerrorCode\u003c/td\u003e\u003ctd\u003eerrorMessage\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e20001\u003c/td\u003e\u003ctd\u003eunauthorized access\u003c/td\u003e\u003c/tr\u003e\u003c/table\u003e", "schema": { "$ref": "#/definitions/response.Error" } }, "404": { "description": "\u003ctable\u003e\u003ctr\u003e\u003ctd\u003eerrorCode\u003c/td\u003e\u003ctd\u003eerrorMessage\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e771000\u003c/td\u003e\u003ctd\u003eMalformed request/Content not found/Unable to update like status: content not found\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e771001\u003c/td\u003e\u003ctd\u003eunable to like content/Unable to update like status: database error\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e771000\u003c/td\u003e\u003ctd\u003eMalformed request/Content not found/Unable to update like status: content not found\u003c/td\u003e\u003c/tr\u003e\u003c/table\u003e", "schema": { "$ref": "#/definitions/response.Error" } }, "500": { "description": "\u003ctable\u003e\u003ctr\u003e\u003ctd\u003eerrorCode\u003c/td\u003e\u003ctd\u003eerrorMessage\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e771001\u003c/td\u003e\u003ctd\u003eunable to like content/Unable to update like status: database error\u003c/td\u003e\u003c/tr\u003e\u003c/table\u003e", "schema": { "$ref": "#/definitions/response.Error" } } }, "security": [ { "authorization": [] } ], "summary": "Update like/unlike status to a content", "tags": [ "Public Like (Legacy)" ], "x-errorCodes": { "20001": "unauthorized access", "771000": "Malformed request/Content not found/Unable to update like status: content not found", "771001": "unable to like content/Unable to update like status: database error" }, "x-security": {} } }, "/ugc/v1/public/namespaces/{namespace}/contents/{contentId}/preview": { "get": { "consumes": [ "application/json", "application/octet-stream" ], "description": "\u0026lt;p\u0026gt;Requires valid user token\u0026lt;/p\u0026gt;\u0026lt;p\u0026gt;\u0026lt;b\u0026gt;NOTE: Preview is Legacy Code, please use Screenshot for better solution to display preview of a content\u0026lt;/b\u0026gt;\u0026lt;/p\u0026gt;", "operationId": "PublicDownloadContentPreview", "parameters": [ { "description": "content ID", "in": "path", "name": "contentId", "required": true, "type": "string" }, { "description": "namespace of the game", "in": "path", "name": "namespace", "required": true, "type": "string" } ], "produces": [ "application/json" ], "responses": { "200": { "description": "Get content preview", "schema": { "$ref": "#/definitions/models.GetContentPreviewResponse" } }, "401": { "description": "\u003ctable\u003e\u003ctr\u003e\u003ctd\u003eerrorCode\u003c/td\u003e\u003ctd\u003eerrorMessage\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e20001\u003c/td\u003e\u003ctd\u003eunauthorized access\u003c/td\u003e\u003c/tr\u003e\u003c/table\u003e", "schema": { "$ref": "#/definitions/response.Error" } }, "404": { "description": "\u003ctable\u003e\u003ctr\u003e\u003ctd\u003eerrorCode\u003c/td\u003e\u003ctd\u003eerrorMessage\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e773702\u003c/td\u003e\u003ctd\u003eugc content not found\u003c/td\u003e\u003c/tr\u003e\u003c/table\u003e", "schema": { "$ref": "#/definitions/response.Error" } }, "500": { "description": "\u003ctable\u003e\u003ctr\u003e\u003ctd\u003eerrorCode\u003c/td\u003e\u003ctd\u003eerrorMessage\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e773701\u003c/td\u003e\u003ctd\u003eUnable to get ugc content\u003c/td\u003e\u003c/tr\u003e\u003c/table\u003e", "schema": { "$ref": "#/definitions/response.Error" } } }, "security": [ { "authorization": [] } ], "summary": "Get content preview", "tags": [ "Public Content (Legacy)" ], "x-errorCodes": { "20001": "unauthorized access", "773701": "Unable to get ugc content", "773702": "ugc content not found" }, "x-security": {} } }, "/ugc/v1/public/namespaces/{namespace}/tags": { "get": { "consumes": [ "application/json", "application/octet-stream" ], "description": "Get available tags paginated", "operationId": "GetTag", "parameters": [ { "description": "namespace of the game", "in": "path", "name": "namespace", "required": true, "type": "string" }, { "default": 20, "description": "number of content per page", "in": "query", "name": "limit", "type": "integer" }, { "default": 0, "description": "the offset number to retrieve", "in": "query", "name": "offset", "type": "integer" } ], "produces": [ "application/json" ], "responses": { "200": { "description": "Get tags", "schema": { "$ref": "#/definitions/models.PaginatedGetTagResponse" } }, "400": { "description": "\u003ctable\u003e\u003ctr\u003e\u003ctd\u003eerrorCode\u003c/td\u003e\u003ctd\u003eerrorMessage\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e771501\u003c/td\u003e\u003ctd\u003einvalid paging parameter\u003c/td\u003e\u003c/tr\u003e\u003c/table\u003e", "schema": { "$ref": "#/definitions/response.Error" } }, "401": { "description": "\u003ctable\u003e\u003ctr\u003e\u003ctd\u003eerrorCode\u003c/td\u003e\u003ctd\u003eerrorMessage\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e20001\u003c/td\u003e\u003ctd\u003eunauthorized access\u003c/td\u003e\u003c/tr\u003e\u003c/table\u003e", "schema": { "$ref": "#/definitions/response.Error" } }, "500": { "description": "\u003ctable\u003e\u003ctr\u003e\u003ctd\u003eerrorCode\u003c/td\u003e\u003ctd\u003eerrorMessage\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e771502\u003c/td\u003e\u003ctd\u003eUnable get user tags\u003c/td\u003e\u003c/tr\u003e\u003c/table\u003e", "schema": { "$ref": "#/definitions/response.Error" } } }, "security": [ { "authorization": [] } ], "summary": "Get tags", "tags": [ "Public Tag" ], "x-errorCodes": { "20001": "unauthorized access", "771501": "invalid paging parameter", "771502": "Unable get user tags" } } }, "/ugc/v1/public/namespaces/{namespace}/types": { "get": { "consumes": [ "application/json", "application/octet-stream" ], "description": "Get available types paginated", "operationId": "GetType", "parameters": [ { "description": "namespace of the game", "in": "path", "name": "namespace", "required": true, "type": "string" }, { "default": 20, "description": "number of content per page", "in": "query", "name": "limit", "type": "integer" }, { "default": 0, "description": "the offset number to retrieve", "in": "query", "name": "offset", "type": "integer" } ], "produces": [ "application/json" ], "responses": { "200": { "description": "Get types", "schema": { "$ref": "#/definitions/models.PaginatedGetTypeResponse" } }, "400": { "description": "\u003ctable\u003e\u003ctr\u003e\u003ctd\u003eerrorCode\u003c/td\u003e\u003ctd\u003eerrorMessage\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e771801\u003c/td\u003e\u003ctd\u003einvalid paging parameter\u003c/td\u003e\u003c/tr\u003e\u003c/table\u003e", "schema": { "$ref": "#/definitions/response.Error" } }, "401": { "description": "\u003ctable\u003e\u003ctr\u003e\u003ctd\u003eerrorCode\u003c/td\u003e\u003ctd\u003eerrorMessage\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e20001\u003c/td\u003e\u003ctd\u003eunauthorized access\u003c/td\u003e\u003c/tr\u003e\u003c/table\u003e", "schema": { "$ref": "#/definitions/response.Error" } }, "500": { "description": "\u003ctable\u003e\u003ctr\u003e\u003ctd\u003eerrorCode\u003c/td\u003e\u003ctd\u003eerrorMessage\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e771802\u003c/td\u003e\u003ctd\u003eUnable get types\u003c/td\u003e\u003c/tr\u003e\u003c/table\u003e", "schema": { "$ref": "#/definitions/response.Error" } } }, "security": [ { "authorization": [] } ], "summary": "Get types", "tags": [ "Public Type" ], "x-errorCodes": { "20001": "unauthorized access", "771801": "invalid paging parameter", "771802": "Unable get types" }, "x-security": {} } }, "/ugc/v1/public/namespaces/{namespace}/users": { "get": { "consumes": [ "application/json", "application/octet-stream" ], "description": "Public user can access without token or if token specified, requires valid user token", "operationId": "PublicSearchCreator", "parameters": [ { "description": "namespace of the game", "in": "path", "name": "namespace", "required": true, "type": "string" }, { "default": 20, "description": "number of content per page", "in": "query", "name": "limit", "type": "integer" }, { "default": 0, "description": "the offset number to retrieve", "in": "query", "name": "offset", "type": "integer" }, { "description": "sorting order: asc, desc. default=desc", "in": "query", "name": "orderby", "type": "string" }, { "description": "sorting criteria: followCount, totalLikedContent. default=object id", "in": "query", "name": "sortby", "type": "string" } ], "produces": [ "application/json" ], "responses": { "200": { "description": "Search creator", "schema": { "$ref": "#/definitions/models.PaginatedCreatorOverviewResponse" } }, "400": { "description": "\u003ctable\u003e\u003ctr\u003e\u003ctd\u003eerrorCode\u003c/td\u003e\u003ctd\u003eerrorMessage\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e770800\u003c/td\u003e\u003ctd\u003einvalid paging parameter/max allowed number of tags is {maxTags}/invalid official parameter/invalid ishidden parameter\u003c/td\u003e\u003c/tr\u003e\u003c/table\u003e", "schema": { "$ref": "#/definitions/response.Error" } }, "401": { "description": "\u003ctable\u003e\u003ctr\u003e\u003ctd\u003eerrorCode\u003c/td\u003e\u003ctd\u003eerrorMessage\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e20001\u003c/td\u003e\u003ctd\u003eunauthorized access\u003c/td\u003e\u003c/tr\u003e\u003c/table\u003e", "schema": { "$ref": "#/definitions/response.Error" } }, "500": { "description": "\u003ctable\u003e\u003ctr\u003e\u003ctd\u003eerrorCode\u003c/td\u003e\u003ctd\u003eerrorMessage\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e770801\u003c/td\u003e\u003ctd\u003eUnable to get ugc content: database/Unable to get creator\u003c/td\u003e\u003c/tr\u003e\u003c/table\u003e", "schema": { "$ref": "#/definitions/response.Error" } } }, "security": [ { "authorization": [] } ], "summary": "Search creator", "tags": [ "Public Creator" ], "x-errorCodes": { "20001": "unauthorized access", "770800": "invalid paging parameter/max allowed number of tags is {maxTags}/invalid official parameter/invalid ishidden parameter", "770801": "Unable to get ugc content: database/Unable to get creator" }, "x-security": {} } }, "/ugc/v1/public/namespaces/{namespace}/users/followed": { "get": { "consumes": [ "application/json", "application/octet-stream" ], "description": "Requires valid user token", "operationId": "GetFollowedUsers", "parameters": [ { "description": "namespace of the game", "in": "path", "name": "namespace", "required": true, "type": "string" }, { "default": 20, "description": "number of user per page", "in": "query", "name": "limit", "type": "integer" }, { "default": 0, "description": "the offset number to retrieve", "in": "query", "name": "offset", "type": "integer" } ], "produces": [ "application/json" ], "responses": { "200": { "description": "Get followed creators", "schema": { "$ref": "#/definitions/models.PaginatedCreatorOverviewResponse" } }, "400": { "description": "\u003ctable\u003e\u003ctr\u003e\u003ctd\u003eerrorCode\u003c/td\u003e\u003ctd\u003eerrorMessage\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e771304\u003c/td\u003e\u003ctd\u003einvalid paging parameter\u003c/td\u003e\u003c/tr\u003e\u003c/table\u003e", "schema": { "$ref": "#/definitions/response.Error" } }, "401": { "description": "\u003ctable\u003e\u003ctr\u003e\u003ctd\u003eerrorCode\u003c/td\u003e\u003ctd\u003eerrorMessage\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e20001\u003c/td\u003e\u003ctd\u003eunauthorized access\u003c/td\u003e\u003c/tr\u003e\u003c/table\u003e", "schema": { "$ref": "#/definitions/response.Error" } }, "500": { "description": "\u003ctable\u003e\u003ctr\u003e\u003ctd\u003eerrorCode\u003c/td\u003e\u003ctd\u003eerrorMessage\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e771300\u003c/td\u003e\u003ctd\u003eUnable to get creators: database error\u003c/td\u003e\u003c/tr\u003e\u003c/table\u003e", "schema": { "$ref": "#/definitions/response.Error" } } }, "security": [ { "authorization": [] } ], "summary": "Get followed creators", "tags": [ "Public Follow" ], "x-errorCodes": { "20001": "unauthorized access", "771300": "Unable to get creators: database error", "771304": "invalid paging parameter" }, "x-security": {} } }, "/ugc/v1/public/namespaces/{namespace}/users/{userId}": { "get": { "consumes": [ "application/json", "application/octet-stream" ], "description": "Public user can access without token or if token specified, requires valid user token", "operationId": "PublicGetCreator", "parameters": [ { "description": "namespace of the game", "in": "path", "name": "namespace", "required": true, "type": "string" }, { "description": "user ID", "in": "path", "name": "userId", "required": true, "type": "string" } ], "produces": [ "application/json" ], "responses": { "200": { "description": "Get creator stats", "schema": { "$ref": "#/definitions/models.CreatorResponse" } }, "401": { "description": "\u003ctable\u003e\u003ctr\u003e\u003ctd\u003eerrorCode\u003c/td\u003e\u003ctd\u003eerrorMessage\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e20001\u003c/td\u003e\u003ctd\u003eunauthorized access\u003c/td\u003e\u003c/tr\u003e\u003c/table\u003e", "schema": { "$ref": "#/definitions/response.Error" } }, "404": { "description": "\u003ctable\u003e\u003ctr\u003e\u003ctd\u003eerrorCode\u003c/td\u003e\u003ctd\u003eerrorMessage\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e771601\u003c/td\u003e\u003ctd\u003eCreator not found\u003c/td\u003e\u003c/tr\u003e\u003c/table\u003e", "schema": { "$ref": "#/definitions/response.Error" } }, "500": { "description": "\u003ctable\u003e\u003ctr\u003e\u003ctd\u003eerrorCode\u003c/td\u003e\u003ctd\u003eerrorMessage\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e771103\u003c/td\u003e\u003ctd\u003eUnable to get total liked content\u003c/td\u003e\u003c/tr\u003e\u003c/table\u003e", "schema": { "$ref": "#/definitions/response.Error" } } }, "security": [ { "authorization": [] } ], "summary": "Get creator stats: number of total like by other user, number of total following and follower user", "tags": [ "Public Creator" ], "x-errorCodes": { "20001": "unauthorized access", "771103": "Unable to get total liked content", "771601": "Creator not found" }, "x-security": {} } }, "/ugc/v1/public/namespaces/{namespace}/users/{userId}/channels": { "delete": { "consumes": [ "application/json", "application/octet-stream" ], "description": "Delete all user channel", "operationId": "DeleteAllUserChannel", "parameters": [ { "description": "namespace of the game", "in": "path", "name": "namespace", "required": true, "type": "string" }, { "description": "userID", "in": "path", "name": "userId", "required": true, "type": "string" } ], "produces": [ "application/json" ], "responses": { "204": { "description": "Content deleted" }, "401": { "description": "\u003ctable\u003e\u003ctr\u003e\u003ctd\u003eerrorCode\u003c/td\u003e\u003ctd\u003eerrorMessage\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e20001\u003c/td\u003e\u003ctd\u003eunauthorized access\u003c/td\u003e\u003c/tr\u003e\u003c/table\u003e", "schema": { "$ref": "#/definitions/response.Error" } }, "404": { "description": "\u003ctable\u003e\u003ctr\u003e\u003ctd\u003eerrorCode\u003c/td\u003e\u003ctd\u003eerrorMessage\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e773502\u003c/td\u003e\u003ctd\u003eChannel not found\u003c/td\u003e\u003c/tr\u003e\u003c/table\u003e", "schema": { "$ref": "#/definitions/response.Error" } }, "500": { "description": "\u003ctable\u003e\u003ctr\u003e\u003ctd\u003eerrorCode\u003c/td\u003e\u003ctd\u003eerrorMessage\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e773501\u003c/td\u003e\u003ctd\u003eUnable to delete channel\u003c/td\u003e\u003c/tr\u003e\u003c/table\u003e", "schema": { "$ref": "#/definitions/response.Error" } } }, "security": [ { "authorization": [] } ], "summary": "Delete all user channel", "tags": [ "Anonymization" ], "x-errorCodes": { "20001": "unauthorized access", "773501": "Unable to delete channel", "773502": "Channel not found" }, "x-security": [ { "userPermissions": [ "NAMESPACE:{namespace}:USER:{userId}:CHANNEL [DELETE]" ] } ] }, "get": { "consumes": [ "application/json", "application/octet-stream" ], "description": "Get user channel paginated", "operationId": "GetChannels", "parameters": [ { "description": "namespace of the game", "in": "path", "name": "namespace", "required": true, "type": "string" }, { "description": "userID", "in": "path", "name": "userId", "required": true, "type": "string" }, { "default": 20, "description": "number of content per page", "in": "query", "name": "limit", "type": "integer" }, { "description": "likes filter by channel name", "in": "query", "name": "name", "type": "string" }, { "default": 0, "description": "the offset number to retrieve", "in": "query", "name": "offset", "type": "integer" } ], "produces": [ "application/json" ], "responses": { "200": { "description": "Channel in namespace-level retrieved", "schema": { "$ref": "#/definitions/models.PaginatedGetChannelResponse" } }, "400": { "description": "\u003ctable\u003e\u003ctr\u003e\u003ctd\u003eerrorCode\u003c/td\u003e\u003ctd\u003eerrorMessage\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e770702\u003c/td\u003e\u003ctd\u003einvalid paging parameter\u003c/td\u003e\u003c/tr\u003e\u003c/table\u003e", "schema": { "$ref": "#/definitions/response.Error" } }, "401": { "description": "\u003ctable\u003e\u003ctr\u003e\u003ctd\u003eerrorCode\u003c/td\u003e\u003ctd\u003eerrorMessage\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e20001\u003c/td\u003e\u003ctd\u003eunauthorized access\u003c/td\u003e\u003c/tr\u003e\u003c/table\u003e", "schema": { "$ref": "#/definitions/response.Error" } }, "500": { "description": "\u003ctable\u003e\u003ctr\u003e\u003ctd\u003eerrorCode\u003c/td\u003e\u003ctd\u003eerrorMessage\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e770700\u003c/td\u003e\u003ctd\u003eUnable get user channels\u003c/td\u003e\u003c/tr\u003e\u003c/table\u003e", "schema": { "$ref": "#/definitions/response.Error" } } }, "security": [ { "authorization": [] } ], "summary": "Get Channels", "tags": [ "Public Channel" ], "x-errorCodes": { "20001": "unauthorized access", "770700": "Unable get user channels", "770702": "invalid paging parameter" }, "x-security": [ { "userPermissions": [ "NAMESPACE:{namespace}:USER:{userId}:CHANNEL [READ]" ] } ] }, "post": { "consumes": [ "application/json", "application/octet-stream" ], "description": "Create user channel", "operationId": "PublicCreateChannel", "parameters": [ { "in": "body", "name": "body", "required": true, "schema": { "$ref": "#/definitions/models.PublicChannelRequest" } }, { "description": "namespace of the game", "in": "path", "name": "namespace", "required": true, "type": "string" }, { "description": "userID", "in": "path", "name": "userId", "required": true, "type": "string" } ], "produces": [ "application/json" ], "responses": { "201": { "description": "channel created", "schema": { "$ref": "#/definitions/models.ChannelResponse" } }, "400": { "description": "\u003ctable\u003e\u003ctr\u003e\u003ctd\u003eerrorCode\u003c/td\u003e\u003ctd\u003eerrorMessage\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e770500\u003c/td\u003e\u003ctd\u003eInvalid request body\u003c/td\u003e\u003c/tr\u003e\u003c/table\u003e", "schema": { "$ref": "#/definitions/response.Error" } }, "401": { "description": "\u003ctable\u003e\u003ctr\u003e\u003ctd\u003eerrorCode\u003c/td\u003e\u003ctd\u003eerrorMessage\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e20001\u003c/td\u003e\u003ctd\u003eunauthorized access\u003c/td\u003e\u003c/tr\u003e\u003c/table\u003e", "schema": { "$ref": "#/definitions/response.Error" } }, "500": { "description": "\u003ctable\u003e\u003ctr\u003e\u003ctd\u003eerrorCode\u003c/td\u003e\u003ctd\u003eerrorMessage\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e770502\u003c/td\u003e\u003ctd\u003eUnable to save channel\u003c/td\u003e\u003c/tr\u003e\u003c/table\u003e", "schema": { "$ref": "#/definitions/response.Error" } } }, "security": [ { "authorization": [] } ], "summary": "Create Channel", "tags": [ "Public Channel" ], "x-errorCodes": { "20001": "unauthorized access", "770500": "Invalid request body", "770502": "Unable to save channel" }, "x-security": [ { "userPermissions": [ "NAMESPACE:{namespace}:USER:{userId}:CHANNEL [CREATE]" ] } ] } }, "/ugc/v1/public/namespaces/{namespace}/users/{userId}/channels/{channelId}": { "delete": { "consumes": [ "application/json", "application/octet-stream" ], "description": "Delete user channel", "operationId": "DeleteChannel", "parameters": [ { "description": "channelID", "in": "path", "name": "channelId", "required": true, "type": "string" }, { "description": "namespace of the game", "in": "path", "name": "namespace", "required": true, "type": "string" }, { "description": "userID", "in": "path", "name": "userId", "required": true, "type": "string" } ], "produces": [ "application/json" ], "responses": { "204": { "description": "Channel deleted" }, "401": { "description": "\u003ctable\u003e\u003ctr\u003e\u003ctd\u003eerrorCode\u003c/td\u003e\u003ctd\u003eerrorMessage\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e20001\u003c/td\u003e\u003ctd\u003eunauthorized access\u003c/td\u003e\u003c/tr\u003e\u003c/table\u003e", "schema": { "$ref": "#/definitions/response.Error" } }, "404": { "description": "\u003ctable\u003e\u003ctr\u003e\u003ctd\u003eerrorCode\u003c/td\u003e\u003ctd\u003eerrorMessage\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e772502\u003c/td\u003e\u003ctd\u003eChannel not found\u003c/td\u003e\u003c/tr\u003e\u003c/table\u003e", "schema": { "$ref": "#/definitions/response.Error" } }, "500": { "description": "\u003ctable\u003e\u003ctr\u003e\u003ctd\u003eerrorCode\u003c/td\u003e\u003ctd\u003eerrorMessage\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e772501\u003c/td\u003e\u003ctd\u003eUnable to delete channel\u003c/td\u003e\u003c/tr\u003e\u003c/table\u003e", "schema": { "$ref": "#/definitions/response.Error" } } }, "security": [ { "authorization": [] } ], "summary": "Delete Channel", "tags": [ "Public Channel" ], "x-errorCodes": { "20001": "unauthorized access", "772501": "Unable to delete channel", "772502": "Channel not found" }, "x-security": [ { "userPermissions": [ "NAMESPACE:{namespace}:USER:{userId}:CHANNEL [DELETE]" ] } ] }, "put": { "consumes": [ "application/json", "application/octet-stream" ], "description": "Update user channel", "operationId": "UpdateChannel", "parameters": [ { "in": "body", "name": "body", "required": true, "schema": { "$ref": "#/definitions/models.UpdateChannelRequest" } }, { "description": "channelID", "in": "path", "name": "channelId", "required": true, "type": "string" }, { "description": "namespace of the game", "in": "path", "name": "namespace", "required": true, "type": "string" }, { "description": "userID", "in": "path", "name": "userId", "required": true, "type": "string" } ], "produces": [ "application/json" ], "responses": { "200": { "description": "Channel updated", "schema": { "$ref": "#/definitions/models.ChannelResponse" } }, "400": { "description": "\u003ctable\u003e\u003ctr\u003e\u003ctd\u003eerrorCode\u003c/td\u003e\u003ctd\u003eerrorMessage\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e770600\u003c/td\u003e\u003ctd\u003eInvalid request body\u003c/td\u003e\u003c/tr\u003e\u003c/table\u003e", "schema": { "$ref": "#/definitions/response.Error" } }, "401": { "description": "\u003ctable\u003e\u003ctr\u003e\u003ctd\u003eerrorCode\u003c/td\u003e\u003ctd\u003eerrorMessage\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e20001\u003c/td\u003e\u003ctd\u003eunauthorized access\u003c/td\u003e\u003c/tr\u003e\u003c/table\u003e", "schema": { "$ref": "#/definitions/response.Error" } }, "404": { "description": "\u003ctable\u003e\u003ctr\u003e\u003ctd\u003eerrorCode\u003c/td\u003e\u003ctd\u003eerrorMessage\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e770603\u003c/td\u003e\u003ctd\u003eChannel was not found\u003c/td\u003e\u003c/tr\u003e\u003c/table\u003e", "schema": { "$ref": "#/definitions/response.Error" } }, "500": { "description": "\u003ctable\u003e\u003ctr\u003e\u003ctd\u003eerrorCode\u003c/td\u003e\u003ctd\u003eerrorMessage\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e770602\u003c/td\u003e\u003ctd\u003eUnable to save channel\u003c/td\u003e\u003c/tr\u003e\u003c/table\u003e", "schema": { "$ref": "#/definitions/response.Error" } } }, "security": [ { "authorization": [] } ], "summary": "Update Channel", "tags": [ "Public Channel" ], "x-errorCodes": { "20001": "unauthorized access", "770600": "Invalid request body", "770602": "Unable to save channel", "770603": "Channel was not found" }, "x-security": [ { "userPermissions": [ "NAMESPACE:{namespace}:USER:{userId}:CHANNEL [UPDATE]" ] } ] } }, "/ugc/v1/public/namespaces/{namespace}/users/{userId}/channels/{channelId}/contents": { "post": { "consumes": [ "application/json", "application/octet-stream" ], "deprecated": true, "description": "Required permission \u0026lt;b\u0026gt;NAMESPACE:{namespace}:USER:{userId}:CONTENT [CREATE]\u0026lt;/b\u0026gt;.\\n \n\t\t\tAll request body are required except preview, tags and customAttributes.\n\t\t\t", "operationId": "CreateContentDirect", "parameters": [ { "in": "body", "name": "body", "required": true, "schema": { "$ref": "#/definitions/models.CreateContentRequest" } }, { "description": "channel ID", "in": "path", "name": "channelId", "required": true, "type": "string" }, { "description": "namespace of the game", "in": "path", "name": "namespace", "required": true, "type": "string" }, { "description": "user ID", "in": "path", "name": "userId", "required": true, "type": "string" } ], "produces": [ "application/json" ], "responses": { "201": { "description": "Content uploaded", "schema": { "$ref": "#/definitions/models.CreateContentResponse" } }, "400": { "description": "\u003ctable\u003e\u003ctr\u003e\u003ctd\u003eerrorCode\u003c/td\u003e\u003ctd\u003eerrorMessage\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e770100\u003c/td\u003e\u003ctd\u003eMalformed request/Invalid request body/channel do not exist\u003c/td\u003e\u003c/tr\u003e\u003c/table\u003e", "schema": { "$ref": "#/definitions/response.Error" } }, "401": { "description": "\u003ctable\u003e\u003ctr\u003e\u003ctd\u003eerrorCode\u003c/td\u003e\u003ctd\u003eerrorMessage\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e20001\u003c/td\u003e\u003ctd\u003eunauthorized access\u003c/td\u003e\u003c/tr\u003e\u003c/table\u003e", "schema": { "$ref": "#/definitions/response.Error" } }, "403": { "description": "\u003ctable\u003e\u003ctr\u003e\u003ctd\u003eerrorCode\u003c/td\u003e\u003ctd\u003eerrorMessage\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e770104\u003c/td\u003e\u003ctd\u003eUser has been banned to create content\u003c/td\u003e\u003c/tr\u003e\u003c/table\u003e", "schema": { "$ref": "#/definitions/response.Error" } }, "500": { "description": "\u003ctable\u003e\u003ctr\u003e\u003ctd\u003eerrorCode\u003c/td\u003e\u003ctd\u003eerrorMessage\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e770102\u003c/td\u003e\u003ctd\u003eUnable to check user ban status/Unable to save ugc content: unable to get channel\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e770103\u003c/td\u003e\u003ctd\u003eUnable to save ugc content: shareCode exceed the limit\u003c/td\u003e\u003c/tr\u003e\u003c/table\u003e", "schema": { "$ref": "#/definitions/response.Error" } } }, "security": [ { "authorization": [] } ], "summary": "Upload content to a channel", "tags": [ "Public Content (Legacy)" ], "x-errorCodes": { "20001": "unauthorized access", "770100": "Malformed request/Invalid request body/channel do not exist", "770102": "Unable to check user ban status/Unable to save ugc content: unable to get channel", "770103": "Unable to save ugc content: shareCode exceed the limit", "770104": "User has been banned to create content" }, "x-security": [ { "userPermissions": [ "NAMESPACE:{namespace}:USER:{userId}:CONTENT [CREATE]" ] } ] } }, "/ugc/v1/public/namespaces/{namespace}/users/{userId}/channels/{channelId}/contents/s3": { "post": { "consumes": [ "application/json", "application/octet-stream" ], "description": "Required permission \u0026lt;b\u0026gt;NAMESPACE:{namespace}:USER:{userId}:CONTENT [CREATE]\u0026lt;/b\u0026gt;.\\n \n\t\t\t\tAll request body are required except payload, preview, tags, contentType and customAttributes.\n\t\t\t\tcontentType values is used to enforce the Content-Type header needed by the client to upload the content using the S3 presigned URL.\n\t\t\t\tIf not specified, it will use fileExtension value.\n\t\t\t\t\u0026lt;br\u0026gt;\u0026lt;p\u0026gt;\u0026lt;b\u0026gt;NOTE: Preview is Legacy Code, please use Screenshot for better solution to display preview of a content\u0026lt;/b\u0026gt;\u0026lt;/p\u0026gt;", "operationId": "CreateContentS3", "parameters": [ { "in": "body", "name": "body", "required": true, "schema": { "$ref": "#/definitions/models.PublicCreateContentRequestS3" } }, { "description": "channel ID", "in": "path", "name": "channelId", "required": true, "type": "string" }, { "description": "namespace of the game", "in": "path", "name": "namespace", "required": true, "type": "string" }, { "description": "user ID", "in": "path", "name": "userId", "required": true, "type": "string" } ], "produces": [ "application/json" ], "responses": { "201": { "description": "Content uploaded to S3 bucket", "schema": { "$ref": "#/definitions/models.CreateContentResponse" } }, "400": { "description": "\u003ctable\u003e\u003ctr\u003e\u003ctd\u003eerrorCode\u003c/td\u003e\u003ctd\u003eerrorMessage\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e770100\u003c/td\u003e\u003ctd\u003eMalformed request/Invalid request body/channel do not exist\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e770102\u003c/td\u003e\u003ctd\u003eUnable to check user ban status/Unable to save ugc content: unable to get channel\u003c/td\u003e\u003c/tr\u003e\u003c/table\u003e", "schema": { "$ref": "#/definitions/response.Error" } }, "401": { "description": "\u003ctable\u003e\u003ctr\u003e\u003ctd\u003eerrorCode\u003c/td\u003e\u003ctd\u003eerrorMessage\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e20001\u003c/td\u003e\u003ctd\u003eunauthorized access\u003c/td\u003e\u003c/tr\u003e\u003c/table\u003e", "schema": { "$ref": "#/definitions/response.Error" } }, "403": { "description": "\u003ctable\u003e\u003ctr\u003e\u003ctd\u003eerrorCode\u003c/td\u003e\u003ctd\u003eerrorMessage\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e770104\u003c/td\u003e\u003ctd\u003eUser has been banned to create content\u003c/td\u003e\u003c/tr\u003e\u003c/table\u003e", "schema": { "$ref": "#/definitions/response.Error" } }, "500": { "description": "\u003ctable\u003e\u003ctr\u003e\u003ctd\u003eerrorCode\u003c/td\u003e\u003ctd\u003eerrorMessage\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e770102\u003c/td\u003e\u003ctd\u003eUnable to check user ban status/Unable to save ugc content: unable to get channel\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e770105\u003c/td\u003e\u003ctd\u003eUnable to save ugc content: failed generate upload URL\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e770103\u003c/td\u003e\u003ctd\u003eUnable to save ugc content: shareCode exceed the limit\u003c/td\u003e\u003c/tr\u003e\u003c/table\u003e", "schema": { "$ref": "#/definitions/response.Error" } } }, "security": [ { "authorization": [] } ], "summary": "Upload content to S3 bucket", "tags": [ "Public Content (Legacy)" ], "x-errorCodes": { "20001": "unauthorized access", "770100": "Malformed request/Invalid request body/channel do not exist", "770102": "Unable to check user ban status/Unable to save ugc content: unable to get channel", "770103": "Unable to save ugc content: shareCode exceed the limit", "770104": "User has been banned to create content", "770105": "Unable to save ugc content: failed generate upload URL" }, "x-security": [ { "userPermissions": [ "NAMESPACE:{namespace}:USER:{userId}:CONTENT [CREATE]" ] } ] } }, "/ugc/v1/public/namespaces/{namespace}/users/{userId}/channels/{channelId}/contents/s3/sharecodes/{shareCode}": { "put": { "consumes": [ "application/json", "application/octet-stream" ], "description": "Required permission \u0026lt;b\u0026gt;NAMESPACE:{namespace}:USER:{userId}:CONTENT [UPDATE]\u0026lt;/b\u0026gt;.\n\nAll request body are required except \u0026lt;code\u0026gt;payload\u0026lt;/code\u0026gt;, \u0026lt;code\u0026gt;preview\u0026lt;/code\u0026gt;, \u0026lt;code\u0026gt;tags\u0026lt;/code\u0026gt;,\u0026lt;code\u0026gt;contentType\u0026lt;/code\u0026gt;, \u0026lt;code\u0026gt;updateContentFile\u0026lt;/code\u0026gt;, \u0026lt;code\u0026gt;customAttributes\u0026lt;/code\u0026gt; and \u0026lt;code\u0026gt;shareCode\u0026lt;/code\u0026gt;.\n\n\u0026lt;code\u0026gt;contentType\u0026lt;/code\u0026gt; values is used to enforce the Content-Type header needed by the client to upload the content using the S3 presigned URL.\n\nIf not specified, it will use \u0026lt;code\u0026gt;fileExtension\u0026lt;/code\u0026gt; value.\n\nTo update content file, set \u0026lt;code\u0026gt;updateContentFile\u0026lt;/code\u0026gt; to \u0026lt;code\u0026gt;true\u0026lt;/code\u0026gt; and upload the file using URL in \u0026lt;code\u0026gt;payloadURL.url\u0026lt;/code\u0026gt; in response body.\n\n\u0026lt;br\u0026gt;\u0026lt;p\u0026gt;\u0026lt;b\u0026gt;NOTE: Preview is Legacy Code, please use Screenshot for better solution to display preview of a content\u0026lt;/b\u0026gt;\u0026lt;/p\u0026gt;", "operationId": "PublicUpdateContentByShareCode", "parameters": [ { "in": "body", "name": "body", "required": true, "schema": { "$ref": "#/definitions/models.UpdateContentRequest" } }, { "description": "channel ID", "in": "path", "name": "channelId", "required": true, "type": "string" }, { "description": "namespace of the game", "in": "path", "name": "namespace", "required": true, "type": "string" }, { "description": "share code", "in": "path", "name": "shareCode", "required": true, "type": "string" }, { "description": "user ID", "in": "path", "name": "userId", "required": true, "type": "string" } ], "produces": [ "application/json" ], "responses": { "200": { "description": "Content updated at s3", "schema": { "$ref": "#/definitions/models.CreateContentResponse" } }, "400": { "description": "\u003ctable\u003e\u003ctr\u003e\u003ctd\u003eerrorCode\u003c/td\u003e\u003ctd\u003eerrorMessage\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e772601\u003c/td\u003e\u003ctd\u003eMalformed request\u003c/td\u003e\u003c/tr\u003e\u003c/table\u003e", "schema": { "$ref": "#/definitions/response.Error" } }, "401": { "description": "\u003ctable\u003e\u003ctr\u003e\u003ctd\u003eerrorCode\u003c/td\u003e\u003ctd\u003eerrorMessage\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e20001\u003c/td\u003e\u003ctd\u003eunauthorized access\u003c/td\u003e\u003c/tr\u003e\u003c/table\u003e", "schema": { "$ref": "#/definitions/response.Error" } }, "403": { "description": "\u003ctable\u003e\u003ctr\u003e\u003ctd\u003eerrorCode\u003c/td\u003e\u003ctd\u003eerrorMessage\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e772604\u003c/td\u003e\u003ctd\u003eUser has been banned to update content\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e20013\u003c/td\u003e\u003ctd\u003einsufficient permission\u003c/td\u003e\u003c/tr\u003e\u003c/table\u003e", "schema": { "$ref": "#/definitions/response.Error" } }, "404": { "description": "\u003ctable\u003e\u003ctr\u003e\u003ctd\u003eerrorCode\u003c/td\u003e\u003ctd\u003eerrorMessage\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e772603\u003c/td\u003e\u003ctd\u003eContent not found\u003c/td\u003e\u003c/tr\u003e\u003c/table\u003e", "schema": { "$ref": "#/definitions/response.Error" } }, "409": { "description": "\u003ctable\u003e\u003ctr\u003e\u003ctd\u003eerrorCode\u003c/td\u003e\u003ctd\u003eerrorMessage\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e772606\u003c/td\u003e\u003ctd\u003eShare code already used\u003c/td\u003e\u003c/tr\u003e\u003c/table\u003e", "schema": { "$ref": "#/definitions/response.Error" } }, "500": { "description": "\u003ctable\u003e\u003ctr\u003e\u003ctd\u003eerrorCode\u003c/td\u003e\u003ctd\u003eerrorMessage\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e772602\u003c/td\u003e\u003ctd\u003eUnable to check user ban status/Unable to get updated ugc content\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e772605\u003c/td\u003e\u003ctd\u003eUnable to save ugc content: failed generate upload URL\u003c/td\u003e\u003c/tr\u003e\u003c/table\u003e", "schema": { "$ref": "#/definitions/response.Error" } } }, "security": [ { "authorization": [] } ], "summary": "Update content to S3 bucket by share code", "tags": [ "Public Content (Legacy)" ], "x-errorCodes": { "20001": "unauthorized access", "20013": "insufficient permission", "772601": "Malformed request", "772602": "Unable to check user ban status/Unable to get updated ugc content", "772603": "Content not found", "772604": "User has been banned to update content", "772605": "Unable to save ugc content: failed generate upload URL", "772606": "Share code already used" }, "x-security": [ { "userPermissions": [ "NAMESPACE:{namespace}:USER:{userId}:CONTENT [UPDATE]" ] } ] } }, "/ugc/v1/public/namespaces/{namespace}/users/{userId}/channels/{channelId}/contents/s3/{contentId}": { "put": { "consumes": [ "application/json", "application/octet-stream" ], "description": "Required permission \u0026lt;b\u0026gt;NAMESPACE:{namespace}:USER:{userId}:CONTENT [UPDATE]\u0026lt;/b\u0026gt;.\n\t\t\t\tAll request body are required except payload, preview, tags, contentType, updateContentFile and customAttributes.\n\t\t\t\tcontentType values is used to enforce the Content-Type header needed by the client to upload the content using the S3 presigned URL.\n\t\t\t\tIf not specified, it will use fileExtension value.\n\t\t\t\tTo update content\u0026#39;s file, set \u0026lt;code\u0026gt;updateContentFile\u0026lt;/code\u0026gt; to \u0026lt;code\u0026gt;true\u0026lt;/code\u0026gt; and upload the file using URL in \u0026lt;code\u0026gt;payloadURL.url\u0026lt;/code\u0026gt; in response body. \n\t\t\t\t\u0026lt;br\u0026gt;\u0026lt;p\u0026gt;\u0026lt;b\u0026gt;NOTE: Preview is Legacy Code, please use Screenshot for better solution to display preview of a content\u0026lt;/b\u0026gt;\u0026lt;/p\u0026gt;", "operationId": "UpdateContentS3", "parameters": [ { "in": "body", "name": "body", "required": true, "schema": { "$ref": "#/definitions/models.UpdateContentRequest" } }, { "description": "channel ID", "in": "path", "name": "channelId", "required": true, "type": "string" }, { "description": "content ID", "in": "path", "name": "contentId", "required": true, "type": "string" }, { "description": "namespace of the game", "in": "path", "name": "namespace", "required": true, "type": "string" }, { "description": "user ID", "in": "path", "name": "userId", "required": true, "type": "string" } ], "produces": [ "application/json" ], "responses": { "200": { "description": "Content updated at S3 bucket", "schema": { "$ref": "#/definitions/models.CreateContentResponse" } }, "400": { "description": "\u003ctable\u003e\u003ctr\u003e\u003ctd\u003eerrorCode\u003c/td\u003e\u003ctd\u003eerrorMessage\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e772601\u003c/td\u003e\u003ctd\u003eMalformed request\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e772602\u003c/td\u003e\u003ctd\u003eUnable to check user ban status/Unable to get updated ugc content\u003c/td\u003e\u003c/tr\u003e\u003c/table\u003e", "schema": { "$ref": "#/definitions/response.Error" } }, "401": { "description": "\u003ctable\u003e\u003ctr\u003e\u003ctd\u003eerrorCode\u003c/td\u003e\u003ctd\u003eerrorMessage\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e20001\u003c/td\u003e\u003ctd\u003eunauthorized access\u003c/td\u003e\u003c/tr\u003e\u003c/table\u003e", "schema": { "$ref": "#/definitions/response.Error" } }, "403": { "description": "\u003ctable\u003e\u003ctr\u003e\u003ctd\u003eerrorCode\u003c/td\u003e\u003ctd\u003eerrorMessage\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e772604\u003c/td\u003e\u003ctd\u003eUser has been banned to update content\u003c/td\u003e\u003c/tr\u003e\u003c/table\u003e", "schema": { "$ref": "#/definitions/response.Error" } }, "404": { "description": "\u003ctable\u003e\u003ctr\u003e\u003ctd\u003eerrorCode\u003c/td\u003e\u003ctd\u003eerrorMessage\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e772603\u003c/td\u003e\u003ctd\u003eContent not found\u003c/td\u003e\u003c/tr\u003e\u003c/table\u003e", "schema": { "$ref": "#/definitions/response.Error" } }, "500": { "description": "\u003ctable\u003e\u003ctr\u003e\u003ctd\u003eerrorCode\u003c/td\u003e\u003ctd\u003eerrorMessage\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e772602\u003c/td\u003e\u003ctd\u003eUnable to check user ban status/Unable to get updated ugc content\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e772605\u003c/td\u003e\u003ctd\u003eUnable to save ugc content: failed generate upload URL\u003c/td\u003e\u003c/tr\u003e\u003c/table\u003e", "schema": { "$ref": "#/definitions/response.Error" } } }, "security": [ { "authorization": [] } ], "summary": "Update content to S3 bucket", "tags": [ "Public Content (Legacy)" ], "x-errorCodes": { "20001": "unauthorized access", "772601": "Malformed request", "772602": "Unable to check user ban status/Unable to get updated ugc content", "772603": "Content not found", "772604": "User has been banned to update content", "772605": "Unable to save ugc content: failed generate upload URL" }, "x-security": [ { "userPermissions": [ "NAMESPACE:{namespace}:USER:{userId}:CONTENT [UPDATE]" ] } ] } }, "/ugc/v1/public/namespaces/{namespace}/users/{userId}/channels/{channelId}/contents/sharecodes/{shareCode}": { "delete": { "consumes": [ "application/json", "application/octet-stream" ], "description": "Required permission \u0026lt;b\u0026gt;NAMESPACE:{namespace}:USER:{userId}:CONTENT [DELETE]\u0026lt;/b\u0026gt;.", "operationId": "PublicDeleteContentByShareCode", "parameters": [ { "description": "channel ID", "in": "path", "name": "channelId", "required": true, "type": "string" }, { "description": "namespace of the game", "in": "path", "name": "namespace", "required": true, "type": "string" }, { "description": "share code", "in": "path", "name": "shareCode", "required": true, "type": "string" }, { "description": "user ID", "in": "path", "name": "userId", "required": true, "type": "string" } ], "produces": [ "application/json" ], "responses": { "204": { "description": "Content deleted" }, "401": { "description": "\u003ctable\u003e\u003ctr\u003e\u003ctd\u003eerrorCode\u003c/td\u003e\u003ctd\u003eerrorMessage\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e20001\u003c/td\u003e\u003ctd\u003eunauthorized access\u003c/td\u003e\u003c/tr\u003e\u003c/table\u003e", "schema": { "$ref": "#/definitions/response.Error" } }, "404": { "description": "\u003ctable\u003e\u003ctr\u003e\u003ctd\u003eerrorCode\u003c/td\u003e\u003ctd\u003eerrorMessage\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e772702\u003c/td\u003e\u003ctd\u003eContent not found\u003c/td\u003e\u003c/tr\u003e\u003c/table\u003e", "schema": { "$ref": "#/definitions/response.Error" } }, "500": { "description": "\u003ctable\u003e\u003ctr\u003e\u003ctd\u003eerrorCode\u003c/td\u003e\u003ctd\u003eerrorMessage\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e772701\u003c/td\u003e\u003ctd\u003eUnable to delete content/Unable to update user liked count/Unable to delete like state/Unable to delete like state\u003c/td\u003e\u003c/tr\u003e\u003c/table\u003e", "schema": { "$ref": "#/definitions/response.Error" } } }, "security": [ { "authorization": [] } ], "summary": "Delete content by share code", "tags": [ "Public Content (Legacy)" ], "x-errorCodes": { "20001": "unauthorized access", "772701": "Unable to delete content/Unable to update user liked count/Unable to delete like state/Unable to delete like state", "772702": "Content not found" }, "x-security": [ { "userPermissions": [ "NAMESPACE:{namespace}:USER:{userId}:CONTENT [DELETE]" ] } ] } }, "/ugc/v1/public/namespaces/{namespace}/users/{userId}/channels/{channelId}/contents/{contentId}": { "delete": { "consumes": [ "application/json", "application/octet-stream" ], "description": "Required permission \u0026lt;b\u0026gt;NAMESPACE:{namespace}:USER:{userId}:CONTENT [DELETE]\u0026lt;/b\u0026gt;.", "operationId": "DeleteContent", "parameters": [ { "description": "channel ID", "in": "path", "name": "channelId", "required": true, "type": "string" }, { "description": "content ID", "in": "path", "name": "contentId", "required": true, "type": "string" }, { "description": "namespace of the game", "in": "path", "name": "namespace", "required": true, "type": "string" }, { "description": "user ID", "in": "path", "name": "userId", "required": true, "type": "string" } ], "produces": [ "application/json" ], "responses": { "204": { "description": "Content deleted" }, "401": { "description": "\u003ctable\u003e\u003ctr\u003e\u003ctd\u003eerrorCode\u003c/td\u003e\u003ctd\u003eerrorMessage\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e20001\u003c/td\u003e\u003ctd\u003eunauthorized access\u003c/td\u003e\u003c/tr\u003e\u003c/table\u003e", "schema": { "$ref": "#/definitions/response.Error" } }, "404": { "description": "\u003ctable\u003e\u003ctr\u003e\u003ctd\u003eerrorCode\u003c/td\u003e\u003ctd\u003eerrorMessage\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e772702\u003c/td\u003e\u003ctd\u003eContent not found\u003c/td\u003e\u003c/tr\u003e\u003c/table\u003e", "schema": { "$ref": "#/definitions/response.Error" } }, "500": { "description": "\u003ctable\u003e\u003ctr\u003e\u003ctd\u003eerrorCode\u003c/td\u003e\u003ctd\u003eerrorMessage\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e772701\u003c/td\u003e\u003ctd\u003eUnable to delete content/Unable to update user liked count/Unable to delete like state/Unable to delete like state\u003c/td\u003e\u003c/tr\u003e\u003c/table\u003e", "schema": { "$ref": "#/definitions/response.Error" } } }, "security": [ { "authorization": [] } ], "summary": "Delete content", "tags": [ "Public Content (Legacy)" ], "x-errorCodes": { "20001": "unauthorized access", "772701": "Unable to delete content/Unable to update user liked count/Unable to delete like state/Unable to delete like state", "772702": "Content not found" }, "x-security": [ { "userPermissions": [ "NAMESPACE:{namespace}:USER:{userId}:CONTENT [DELETE]" ] } ] }, "put": { "consumes": [ "application/json", "application/octet-stream" ], "deprecated": true, "description": "Required permission \u0026lt;b\u0026gt;NAMESPACE:{namespace}:USER:{userId}:CONTENT [UPDATE]\u0026lt;/b\u0026gt;.\\n \n\t\t\t\tAll request body are required except preview, tags and customAttributes.\n\t\t\t\t", "operationId": "UpdateContentDirect", "parameters": [ { "in": "body", "name": "body", "required": true, "schema": { "$ref": "#/definitions/models.CreateContentRequest" } }, { "description": "channel ID", "in": "path", "name": "channelId", "required": true, "type": "string" }, { "description": "content ID", "in": "path", "name": "contentId", "required": true, "type": "string" }, { "description": "namespace of the game", "in": "path", "name": "namespace", "required": true, "type": "string" }, { "description": "user ID", "in": "path", "name": "userId", "required": true, "type": "string" } ], "produces": [ "application/json" ], "responses": { "200": { "description": "Content updated", "schema": { "$ref": "#/definitions/models.CreateContentResponse" } }, "400": { "description": "\u003ctable\u003e\u003ctr\u003e\u003ctd\u003eerrorCode\u003c/td\u003e\u003ctd\u003eerrorMessage\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e772601\u003c/td\u003e\u003ctd\u003eMalformed request\u003c/td\u003e\u003c/tr\u003e\u003c/table\u003e", "schema": { "$ref": "#/definitions/response.Error" } }, "401": { "description": "\u003ctable\u003e\u003ctr\u003e\u003ctd\u003eerrorCode\u003c/td\u003e\u003ctd\u003eerrorMessage\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e20001\u003c/td\u003e\u003ctd\u003eunauthorized access\u003c/td\u003e\u003c/tr\u003e\u003c/table\u003e", "schema": { "$ref": "#/definitions/response.Error" } }, "403": { "description": "\u003ctable\u003e\u003ctr\u003e\u003ctd\u003eerrorCode\u003c/td\u003e\u003ctd\u003eerrorMessage\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e772604\u003c/td\u003e\u003ctd\u003eUser has been banned to update content\u003c/td\u003e\u003c/tr\u003e\u003c/table\u003e", "schema": { "$ref": "#/definitions/response.Error" } }, "404": { "description": "\u003ctable\u003e\u003ctr\u003e\u003ctd\u003eerrorCode\u003c/td\u003e\u003ctd\u003eerrorMessage\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e772603\u003c/td\u003e\u003ctd\u003eContent not found\u003c/td\u003e\u003c/tr\u003e\u003c/table\u003e", "schema": { "$ref": "#/definitions/response.Error" } }, "500": { "description": "\u003ctable\u003e\u003ctr\u003e\u003ctd\u003eerrorCode\u003c/td\u003e\u003ctd\u003eerrorMessage\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e772602\u003c/td\u003e\u003ctd\u003eUnable to check user ban status/Unable to get updated ugc content\u003c/td\u003e\u003c/tr\u003e\u003c/table\u003e", "schema": { "$ref": "#/definitions/response.Error" } } }, "security": [ { "authorization": [] } ], "summary": "Update content to a channel", "tags": [ "Public Content (Legacy)" ], "x-errorCodes": { "20001": "unauthorized access", "772601": "Malformed request", "772602": "Unable to check user ban status/Unable to get updated ugc content", "772603": "Content not found", "772604": "User has been banned to update content" }, "x-security": [ { "userPermissions": [ "NAMESPACE:{namespace}:USER:{userId}:CONTENT [UPDATE]" ] } ] } }, "/ugc/v1/public/namespaces/{namespace}/users/{userId}/channels/{channelId}/contents/{contentId}/sharecode": { "patch": { "consumes": [ "application/json", "application/octet-stream" ], "description": "Required permission \u0026lt;b\u0026gt;NAMESPACE:{namespace}:USER:{userId}:CONTENT:SHARECODE [UPDATE]\u0026lt;/b\u0026gt;.\u0026lt;br\u0026gt;\n\t\t\t\t\tThis endpoint is used to modify the shareCode of a content. However, this operation is restricted by default and requires the above permission to be granted to the User role.\u0026lt;br\u0026gt;\n\t\t\t\t\t\u0026lt;code\u0026gt;shareCode\u0026lt;/code\u0026gt; format should follows:\n\t\t\t\t\tMax length: 7\n\t\t\t\t\tAvailable characters: abcdefhkpqrstuxyz", "operationId": "UpdateContentShareCode", "parameters": [ { "in": "body", "name": "body", "required": true, "schema": { "$ref": "#/definitions/models.UpdateContentShareCodeRequest" } }, { "description": "channel ID", "in": "path", "name": "channelId", "required": true, "type": "string" }, { "description": "content ID", "in": "path", "name": "contentId", "required": true, "type": "string" }, { "description": "namespace of the game", "in": "path", "name": "namespace", "required": true, "type": "string" }, { "description": "user ID", "in": "path", "name": "userId", "required": true, "type": "string" } ], "produces": [ "application/json" ], "responses": { "200": { "description": "Content updated by sharecodes", "schema": { "$ref": "#/definitions/models.CreateContentResponse" } }, "400": { "description": "\u003ctable\u003e\u003ctr\u003e\u003ctd\u003eerrorCode\u003c/td\u003e\u003ctd\u003eerrorMessage\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e772601\u003c/td\u003e\u003ctd\u003eMalformed request\u003c/td\u003e\u003c/tr\u003e\u003c/table\u003e", "schema": { "$ref": "#/definitions/response.Error" } }, "401": { "description": "\u003ctable\u003e\u003ctr\u003e\u003ctd\u003eerrorCode\u003c/td\u003e\u003ctd\u003eerrorMessage\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e20001\u003c/td\u003e\u003ctd\u003eunauthorized access\u003c/td\u003e\u003c/tr\u003e\u003c/table\u003e", "schema": { "$ref": "#/definitions/response.Error" } }, "403": { "description": "\u003ctable\u003e\u003ctr\u003e\u003ctd\u003eerrorCode\u003c/td\u003e\u003ctd\u003eerrorMessage\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e20013\u003c/td\u003e\u003ctd\u003einsufficient permission\u003c/td\u003e\u003c/tr\u003e\u003c/table\u003e", "schema": { "$ref": "#/definitions/response.Error" } }, "404": { "description": "\u003ctable\u003e\u003ctr\u003e\u003ctd\u003eerrorCode\u003c/td\u003e\u003ctd\u003eerrorMessage\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e772603\u003c/td\u003e\u003ctd\u003eContent not found\u003c/td\u003e\u003c/tr\u003e\u003c/table\u003e", "schema": { "$ref": "#/definitions/response.Error" } }, "409": { "description": "\u003ctable\u003e\u003ctr\u003e\u003ctd\u003eerrorCode\u003c/td\u003e\u003ctd\u003eerrorMessage\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e772606\u003c/td\u003e\u003ctd\u003eShare code already used\u003c/td\u003e\u003c/tr\u003e\u003c/table\u003e", "schema": { "$ref": "#/definitions/response.Error" } }, "500": { "description": "\u003ctable\u003e\u003ctr\u003e\u003ctd\u003eerrorCode\u003c/td\u003e\u003ctd\u003eerrorMessage\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e772602\u003c/td\u003e\u003ctd\u003eUnable to check user ban status/Unable to get updated ugc content\u003c/td\u003e\u003c/tr\u003e\u003c/table\u003e", "schema": { "$ref": "#/definitions/response.Error" } } }, "security": [ { "authorization": [] } ], "summary": "Update content sharecode", "tags": [ "Public Content (Legacy)" ], "x-errorCodes": { "20001": "unauthorized access", "20013": "insufficient permission", "772601": "Malformed request", "772602": "Unable to check user ban status/Unable to get updated ugc content", "772603": "Content not found", "772606": "Share code already used" }, "x-security": [ { "userPermissions": [ "NAMESPACE:{namespace}:USER:{userId}:CONTENT:SHARECODE [UPDATE]" ] } ] } }, "/ugc/v1/public/namespaces/{namespace}/users/{userId}/contents": { "delete": { "consumes": [ "application/json", "application/octet-stream" ], "description": "Required permission \u0026lt;b\u0026gt;NAMESPACE:{namespace}:USER:{userId}:CONTENT [DELETE]\u0026lt;/b\u0026gt;.", "operationId": "DeleteAllUserContents", "parameters": [ { "description": "namespace of the game", "in": "path", "name": "namespace", "required": true, "type": "string" }, { "description": "user ID", "in": "path", "name": "userId", "required": true, "type": "string" } ], "produces": [ "application/json" ], "responses": { "204": { "description": "User content's deleted" }, "401": { "description": "\u003ctable\u003e\u003ctr\u003e\u003ctd\u003eerrorCode\u003c/td\u003e\u003ctd\u003eerrorMessage\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e20001\u003c/td\u003e\u003ctd\u003eunauthorized access\u003c/td\u003e\u003c/tr\u003e\u003c/table\u003e", "schema": { "$ref": "#/definitions/response.Error" } }, "404": { "description": "\u003ctable\u003e\u003ctr\u003e\u003ctd\u003eerrorCode\u003c/td\u003e\u003ctd\u003eerrorMessage\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e773402\u003c/td\u003e\u003ctd\u003eContent not found\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e771601\u003c/td\u003e\u003ctd\u003eCreator not found\u003c/td\u003e\u003c/tr\u003e\u003c/table\u003e", "schema": { "$ref": "#/definitions/response.Error" } }, "500": { "description": "\u003ctable\u003e\u003ctr\u003e\u003ctd\u003eerrorCode\u003c/td\u003e\u003ctd\u003eerrorMessage\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e773401\u003c/td\u003e\u003ctd\u003eUnable to get all user content\u003c/td\u003e\u003c/tr\u003e\u003c/table\u003e", "schema": { "$ref": "#/definitions/response.Error" } } }, "security": [ { "authorization": [] } ], "summary": "Delete all user content", "tags": [ "Anonymization" ], "x-errorCodes": { "20001": "unauthorized access", "771601": "Creator not found", "773401": "Unable to get all user content", "773402": "Content not found" }, "x-security": [ { "userPermissions": [ "NAMESPACE:{namespace}:USER:{userId}:CONTENT [DELETE]" ] } ] }, "get": { "consumes": [ "application/json", "application/octet-stream" ], "description": "Public user can access without token or if token specified, required permission \u0026lt;b\u0026gt;NAMESPACE:{namespace}:USER:{userId}:CONTENT [READ]\u0026lt;/b\u0026gt;.", "operationId": "PublicGetUserContent", "parameters": [ { "description": "namespace of the game", "in": "path", "name": "namespace", "required": true, "type": "string" }, { "description": "user ID", "in": "path", "name": "userId", "required": true, "type": "string" }, { "default": 20, "description": "number of content per page. max limit: -1 (-1 means unlimited).", "in": "query", "name": "limit", "type": "integer" }, { "default": 0, "description": "the offset number to retrieve", "in": "query", "name": "offset", "type": "integer" } ], "produces": [ "application/json" ], "responses": { "200": { "description": "Get user's generated contents", "schema": { "$ref": "#/definitions/models.PaginatedContentDownloadResponse" } }, "400": { "description": "\u003ctable\u003e\u003ctr\u003e\u003ctd\u003eerrorCode\u003c/td\u003e\u003ctd\u003eerrorMessage\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e770900\u003c/td\u003e\u003ctd\u003einvalid paging parameter\u003c/td\u003e\u003c/tr\u003e\u003c/table\u003e", "schema": { "$ref": "#/definitions/response.Error" } }, "401": { "description": "\u003ctable\u003e\u003ctr\u003e\u003ctd\u003eerrorCode\u003c/td\u003e\u003ctd\u003eerrorMessage\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e20001\u003c/td\u003e\u003ctd\u003eunauthorized access\u003c/td\u003e\u003c/tr\u003e\u003c/table\u003e", "schema": { "$ref": "#/definitions/response.Error" } }, "500": { "description": "\u003ctable\u003e\u003ctr\u003e\u003ctd\u003eerrorCode\u003c/td\u003e\u003ctd\u003eerrorMessage\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e770901\u003c/td\u003e\u003ctd\u003eUnable to get ugc content: database error/Unable to get creator\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e770903\u003c/td\u003e\u003ctd\u003eFailed generate download URL\u003c/td\u003e\u003c/tr\u003e\u003c/table\u003e", "schema": { "$ref": "#/definitions/response.Error" } } }, "security": [ { "authorization": [] } ], "summary": "Get user's generated contents", "tags": [ "Public Content (Legacy)" ], "x-errorCodes": { "20001": "unauthorized access", "770900": "invalid paging parameter", "770901": "Unable to get ugc content: database error/Unable to get creator", "770903": "Failed generate download URL" }, "x-security": {} } }, "/ugc/v1/public/namespaces/{namespace}/users/{userId}/contents/{contentId}/screenshots": { "post": { "consumes": [ "application/json", "application/octet-stream" ], "description": "All request body are required except for *contentType* field. \n*contentType* values is used to enforce the *Content-Type* header needed by the client to upload the content using the presigned URL.\nIf not specified, it will use *fileExtension* value.\nSupported file extensions: *pjp*, *jpg*, *jpeg*, *jfif*, *bmp*, *png*.\nMaximum description length: 1024", "operationId": "UploadContentScreenshot", "parameters": [ { "in": "body", "name": "body", "required": true, "schema": { "$ref": "#/definitions/models.CreateScreenshotRequest" } }, { "description": "content ID", "in": "path", "name": "contentId", "required": true, "type": "string" }, { "description": "namespace of the game", "in": "path", "name": "namespace", "required": true, "type": "string" }, { "description": "user ID", "in": "path", "name": "userId", "required": true, "type": "string" } ], "produces": [ "application/json" ], "responses": { "201": { "description": "Screenshot uploaded", "schema": { "$ref": "#/definitions/models.CreateScreenshotResponse" } }, "400": { "description": "\u003ctable\u003e\u003ctr\u003e\u003ctd\u003eerrorCode\u003c/td\u003e\u003ctd\u003eerrorMessage\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e772601\u003c/td\u003e\u003ctd\u003eMalformed request\u003c/td\u003e\u003c/tr\u003e\u003c/table\u003e", "schema": { "$ref": "#/definitions/response.Error" } }, "401": { "description": "\u003ctable\u003e\u003ctr\u003e\u003ctd\u003eerrorCode\u003c/td\u003e\u003ctd\u003eerrorMessage\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e20001\u003c/td\u003e\u003ctd\u003eunauthorized access\u003c/td\u003e\u003c/tr\u003e\u003c/table\u003e", "schema": { "$ref": "#/definitions/response.Error" } }, "403": { "description": "\u003ctable\u003e\u003ctr\u003e\u003ctd\u003eerrorCode\u003c/td\u003e\u003ctd\u003eerrorMessage\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e772604\u003c/td\u003e\u003ctd\u003eUser has been banned to update content\u003c/td\u003e\u003c/tr\u003e\u003c/table\u003e", "schema": { "$ref": "#/definitions/response.Error" } }, "404": { "description": "\u003ctable\u003e\u003ctr\u003e\u003ctd\u003eerrorCode\u003c/td\u003e\u003ctd\u003eerrorMessage\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e772603\u003c/td\u003e\u003ctd\u003eContent not found\u003c/td\u003e\u003c/tr\u003e\u003c/table\u003e", "schema": { "$ref": "#/definitions/response.Error" } }, "500": { "description": "\u003ctable\u003e\u003ctr\u003e\u003ctd\u003eerrorCode\u003c/td\u003e\u003ctd\u003eerrorMessage\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e772602\u003c/td\u003e\u003ctd\u003eUnable to check user ban status/Unable to get updated ugc content\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e772605\u003c/td\u003e\u003ctd\u003eUnable to save ugc content: failed generate upload URL\u003c/td\u003e\u003c/tr\u003e\u003c/table\u003e", "schema": { "$ref": "#/definitions/response.Error" } } }, "security": [ { "authorization": [] } ], "summary": "Upload screenshots for content", "tags": [ "Public Content (Legacy)" ], "x-errorCodes": { "20001": "unauthorized access", "772601": "Malformed request", "772602": "Unable to check user ban status/Unable to get updated ugc content", "772603": "Content not found", "772604": "User has been banned to update content", "772605": "Unable to save ugc content: failed generate upload URL" }, "x-security": [ { "userPermissions": [ "NAMESPACE:{namespace}:USER:{userId}:CONTENT [CREATE]" ] } ] }, "put": { "consumes": [ "application/json", "application/octet-stream" ], "description": "Maximum description length: 1024", "operationId": "UpdateScreenshots", "parameters": [ { "in": "body", "name": "body", "required": true, "schema": { "$ref": "#/definitions/models.UpdateScreenshotRequest" } }, { "description": "content ID", "in": "path", "name": "contentId", "required": true, "type": "string" }, { "description": "namespace of the game", "in": "path", "name": "namespace", "required": true, "type": "string" }, { "description": "user ID", "in": "path", "name": "userId", "required": true, "type": "string" } ], "produces": [ "application/json" ], "responses": { "200": { "description": "Screenshot updated", "schema": { "$ref": "#/definitions/models.UpdateScreenshotResponse" } }, "400": { "description": "\u003ctable\u003e\u003ctr\u003e\u003ctd\u003eerrorCode\u003c/td\u003e\u003ctd\u003eerrorMessage\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e772601\u003c/td\u003e\u003ctd\u003eMalformed request\u003c/td\u003e\u003c/tr\u003e\u003c/table\u003e", "schema": { "$ref": "#/definitions/response.Error" } }, "401": { "description": "\u003ctable\u003e\u003ctr\u003e\u003ctd\u003eerrorCode\u003c/td\u003e\u003ctd\u003eerrorMessage\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e20001\u003c/td\u003e\u003ctd\u003eunauthorized access\u003c/td\u003e\u003c/tr\u003e\u003c/table\u003e", "schema": { "$ref": "#/definitions/response.Error" } }, "403": { "description": "\u003ctable\u003e\u003ctr\u003e\u003ctd\u003eerrorCode\u003c/td\u003e\u003ctd\u003eerrorMessage\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e772604\u003c/td\u003e\u003ctd\u003eUser has been banned to update content\u003c/td\u003e\u003c/tr\u003e\u003c/table\u003e", "schema": { "$ref": "#/definitions/response.Error" } }, "404": { "description": "\u003ctable\u003e\u003ctr\u003e\u003ctd\u003eerrorCode\u003c/td\u003e\u003ctd\u003eerrorMessage\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e772603\u003c/td\u003e\u003ctd\u003eContent not found\u003c/td\u003e\u003c/tr\u003e\u003c/table\u003e", "schema": { "$ref": "#/definitions/response.Error" } }, "500": { "description": "\u003ctable\u003e\u003ctr\u003e\u003ctd\u003eerrorCode\u003c/td\u003e\u003ctd\u003eerrorMessage\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e772602\u003c/td\u003e\u003ctd\u003eUnable to check user ban status/Unable to get updated ugc content\u003c/td\u003e\u003c/tr\u003e\u003c/table\u003e", "schema": { "$ref": "#/definitions/response.Error" } } }, "security": [ { "authorization": [] } ], "summary": "Update screenshot of content", "tags": [ "Public Content (Legacy)" ], "x-errorCodes": { "20001": "unauthorized access", "772601": "Malformed request", "772602": "Unable to check user ban status/Unable to get updated ugc content", "772603": "Content not found", "772604": "User has been banned to update content" }, "x-security": [ { "userPermissions": [ "NAMESPACE:{namespace}:USER:{userId}:CONTENT [UPDATE]" ] } ] } }, "/ugc/v1/public/namespaces/{namespace}/users/{userId}/contents/{contentId}/screenshots/{screenshotId}": { "delete": { "consumes": [ "application/json", "application/octet-stream" ], "description": "Delete existing screenshot from a content", "operationId": "DeleteContentScreenshot", "parameters": [ { "description": "content ID", "in": "path", "name": "contentId", "required": true, "type": "string" }, { "description": "namespace of the game", "in": "path", "name": "namespace", "required": true, "type": "string" }, { "description": "screenshot ID", "in": "path", "name": "screenshotId", "required": true, "type": "string" }, { "description": "user ID", "in": "path", "name": "userId", "required": true, "type": "string" } ], "produces": [ "application/json" ], "responses": { "204": { "description": "Screenshot deleted" }, "400": { "description": "\u003ctable\u003e\u003ctr\u003e\u003ctd\u003eerrorCode\u003c/td\u003e\u003ctd\u003eerrorMessage\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e772602\u003c/td\u003e\u003ctd\u003eUnable to check user ban status/Unable to get updated ugc content\u003c/td\u003e\u003c/tr\u003e\u003c/table\u003e", "schema": { "$ref": "#/definitions/response.Error" } }, "401": { "description": "\u003ctable\u003e\u003ctr\u003e\u003ctd\u003eerrorCode\u003c/td\u003e\u003ctd\u003eerrorMessage\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e20001\u003c/td\u003e\u003ctd\u003eunauthorized access\u003c/td\u003e\u003c/tr\u003e\u003c/table\u003e", "schema": { "$ref": "#/definitions/response.Error" } }, "403": { "description": "\u003ctable\u003e\u003ctr\u003e\u003ctd\u003eerrorCode\u003c/td\u003e\u003ctd\u003eerrorMessage\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e772604\u003c/td\u003e\u003ctd\u003eUser has been banned to update content\u003c/td\u003e\u003c/tr\u003e\u003c/table\u003e", "schema": { "$ref": "#/definitions/response.Error" } }, "404": { "description": "\u003ctable\u003e\u003ctr\u003e\u003ctd\u003eerrorCode\u003c/td\u003e\u003ctd\u003eerrorMessage\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e772603\u003c/td\u003e\u003ctd\u003eContent not found\u003c/td\u003e\u003c/tr\u003e\u003c/table\u003e", "schema": { "$ref": "#/definitions/response.Error" } }, "500": { "description": "\u003ctable\u003e\u003ctr\u003e\u003ctd\u003eerrorCode\u003c/td\u003e\u003ctd\u003eerrorMessage\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e772602\u003c/td\u003e\u003ctd\u003eUnable to check user ban status/Unable to get updated ugc content\u003c/td\u003e\u003c/tr\u003e\u003c/table\u003e", "schema": { "$ref": "#/definitions/response.Error" } } }, "security": [ { "authorization": [] } ], "summary": "Delete content's screenshot", "tags": [ "Public Content (Legacy)" ], "x-errorCodes": { "20001": "unauthorized access", "772602": "Unable to check user ban status/Unable to get updated ugc content", "772603": "Content not found", "772604": "User has been banned to update content" }, "x-security": [ { "userPermissions": [ "NAMESPACE:{namespace}:USER:{userId}:CONTENT [DELETE]" ] } ] } }, "/ugc/v1/public/namespaces/{namespace}/users/{userId}/follow": { "put": { "consumes": [ "application/json", "application/octet-stream" ], "description": "Requires valid user token", "operationId": "UpdateUserFollowStatus", "parameters": [ { "in": "body", "name": "body", "required": true, "schema": { "$ref": "#/definitions/models.UserFollowRequest" } }, { "description": "namespace of the game", "in": "path", "name": "namespace", "required": true, "type": "string" }, { "description": "user ID to be followed", "in": "path", "name": "userId", "required": true, "type": "string" } ], "produces": [ "application/json" ], "responses": { "200": { "description": "update status follow/unfollow status to a user", "schema": { "$ref": "#/definitions/models.UserFollowResponse" } }, "400": { "description": "\u003ctable\u003e\u003ctr\u003e\u003ctd\u003eerrorCode\u003c/td\u003e\u003ctd\u003eerrorMessage\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e771200\u003c/td\u003e\u003ctd\u003eMalformed request\u003c/td\u003e\u003c/tr\u003e\u003c/table\u003e", "schema": { "$ref": "#/definitions/response.Error" } }, "401": { "description": "\u003ctable\u003e\u003ctr\u003e\u003ctd\u003eerrorCode\u003c/td\u003e\u003ctd\u003eerrorMessage\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e20001\u003c/td\u003e\u003ctd\u003eunauthorized access\u003c/td\u003e\u003c/tr\u003e\u003c/table\u003e", "schema": { "$ref": "#/definitions/response.Error" } }, "500": { "description": "\u003ctable\u003e\u003ctr\u003e\u003ctd\u003eerrorCode\u003c/td\u003e\u003ctd\u003eerrorMessage\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e771201\u003c/td\u003e\u003ctd\u003eUnable to update follow status: database error\u003c/td\u003e\u003c/tr\u003e\u003c/table\u003e", "schema": { "$ref": "#/definitions/response.Error" } } }, "security": [ { "authorization": [] } ], "summary": "Update follow/unfollow status to a user", "tags": [ "Public Follow" ], "x-errorCodes": { "20001": "unauthorized access", "771200": "Malformed request", "771201": "Unable to update follow status: database error" }, "x-security": {} } }, "/ugc/v1/public/namespaces/{namespace}/users/{userId}/followers": { "get": { "consumes": [ "application/json", "application/octet-stream" ], "operationId": "GetPublicFollowers", "parameters": [ { "description": "namespace of the game", "in": "path", "name": "namespace", "required": true, "type": "string" }, { "description": "user ID", "in": "path", "name": "userId", "required": true, "type": "string" }, { "default": 20, "description": "number of user per page", "in": "query", "name": "limit", "type": "integer" }, { "default": 0, "description": "the offset number to retrieve", "in": "query", "name": "offset", "type": "integer" } ], "produces": [ "application/json" ], "responses": { "200": { "description": "Get list of followers", "schema": { "$ref": "#/definitions/models.PaginatedCreatorOverviewResponse" } }, "400": { "description": "\u003ctable\u003e\u003ctr\u003e\u003ctd\u003eerrorCode\u003c/td\u003e\u003ctd\u003eerrorMessage\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e771304\u003c/td\u003e\u003ctd\u003einvalid paging parameter\u003c/td\u003e\u003c/tr\u003e\u003c/table\u003e", "schema": { "$ref": "#/definitions/response.Error" } }, "401": { "description": "\u003ctable\u003e\u003ctr\u003e\u003ctd\u003eerrorCode\u003c/td\u003e\u003ctd\u003eerrorMessage\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e20001\u003c/td\u003e\u003ctd\u003eunauthorized access\u003c/td\u003e\u003c/tr\u003e\u003c/table\u003e", "schema": { "$ref": "#/definitions/response.Error" } }, "500": { "description": "\u003ctable\u003e\u003ctr\u003e\u003ctd\u003eerrorCode\u003c/td\u003e\u003ctd\u003eerrorMessage\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e771303\u003c/td\u003e\u003ctd\u003eUnable to get creators: database error\u003c/td\u003e\u003c/tr\u003e\u003c/table\u003e", "schema": { "$ref": "#/definitions/response.Error" } } }, "security": [ { "authorization": [] } ], "summary": "Get list of followers", "tags": [ "Public Follow" ], "x-errorCodes": { "20001": "unauthorized access", "771303": "Unable to get creators: database error", "771304": "invalid paging parameter" } } }, "/ugc/v1/public/namespaces/{namespace}/users/{userId}/following": { "get": { "consumes": [ "application/json", "application/octet-stream" ], "operationId": "GetPublicFollowing", "parameters": [ { "description": "namespace of the game", "in": "path", "name": "namespace", "required": true, "type": "string" }, { "description": "user ID", "in": "path", "name": "userId", "required": true, "type": "string" }, { "default": 20, "description": "number of user per page", "in": "query", "name": "limit", "type": "integer" }, { "default": 0, "description": "the offset number to retrieve", "in": "query", "name": "offset", "type": "integer" } ], "produces": [ "application/json" ], "responses": { "200": { "description": "Get list of following", "schema": { "$ref": "#/definitions/models.PaginatedCreatorOverviewResponse" } }, "400": { "description": "\u003ctable\u003e\u003ctr\u003e\u003ctd\u003eerrorCode\u003c/td\u003e\u003ctd\u003eerrorMessage\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e771304\u003c/td\u003e\u003ctd\u003einvalid paging parameter\u003c/td\u003e\u003c/tr\u003e\u003c/table\u003e", "schema": { "$ref": "#/definitions/response.Error" } }, "401": { "description": "\u003ctable\u003e\u003ctr\u003e\u003ctd\u003eerrorCode\u003c/td\u003e\u003ctd\u003eerrorMessage\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e20001\u003c/td\u003e\u003ctd\u003eunauthorized access\u003c/td\u003e\u003c/tr\u003e\u003c/table\u003e", "schema": { "$ref": "#/definitions/response.Error" } }, "500": { "description": "\u003ctable\u003e\u003ctr\u003e\u003ctd\u003eerrorCode\u003c/td\u003e\u003ctd\u003eerrorMessage\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e771303\u003c/td\u003e\u003ctd\u003eUnable to get creators: database error\u003c/td\u003e\u003c/tr\u003e\u003c/table\u003e", "schema": { "$ref": "#/definitions/response.Error" } } }, "security": [ { "authorization": [] } ], "summary": "Get list of following", "tags": [ "Public Follow" ], "x-errorCodes": { "20001": "unauthorized access", "771303": "Unable to get creators: database error", "771304": "invalid paging parameter" } } }, "/ugc/v1/public/namespaces/{namespace}/users/{userId}/groups": { "delete": { "consumes": [ "application/json", "application/octet-stream" ], "description": "Delete all user group", "operationId": "DeleteAllUserGroup", "parameters": [ { "description": "namespace of the game", "in": "path", "name": "namespace", "required": true, "type": "string" }, { "description": "user ID", "in": "path", "name": "userId", "required": true, "type": "string" } ], "produces": [ "application/json" ], "responses": { "204": { "description": "groups deleted" }, "401": { "description": "\u003ctable\u003e\u003ctr\u003e\u003ctd\u003eerrorCode\u003c/td\u003e\u003ctd\u003eerrorMessage\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e20001\u003c/td\u003e\u003ctd\u003eunauthorized access\u003c/td\u003e\u003c/tr\u003e\u003c/table\u003e", "schema": { "$ref": "#/definitions/response.Error" } }, "404": { "description": "\u003ctable\u003e\u003ctr\u003e\u003ctd\u003eerrorCode\u003c/td\u003e\u003ctd\u003eerrorMessage\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e773302\u003c/td\u003e\u003ctd\u003eGroups not found\u003c/td\u003e\u003c/tr\u003e\u003c/table\u003e", "schema": { "$ref": "#/definitions/response.Error" } }, "500": { "description": "\u003ctable\u003e\u003ctr\u003e\u003ctd\u003eerrorCode\u003c/td\u003e\u003ctd\u003eerrorMessage\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e773301\u003c/td\u003e\u003ctd\u003eUnable to find all user group\u003c/td\u003e\u003c/tr\u003e\u003c/table\u003e", "schema": { "$ref": "#/definitions/response.Error" } } }, "security": [ { "authorization": [] } ], "summary": "Delete all user group", "tags": [ "Anonymization" ], "x-errorCodes": { "20001": "unauthorized access", "773301": "Unable to find all user group", "773302": "Groups not found" }, "x-security": [ { "userPermissions": [ "NAMESPACE:{namespace}:USER:{userId}:CONTENTGROUP [DELETE]" ] } ] }, "get": { "consumes": [ "application/json", "application/octet-stream" ], "description": "Get user groups paginated", "operationId": "GetGroups", "parameters": [ { "description": "namespace of the game", "in": "path", "name": "namespace", "required": true, "type": "string" }, { "description": "user ID", "in": "path", "name": "userId", "required": true, "type": "string" }, { "default": 20, "description": "number of content per page", "in": "query", "name": "limit", "type": "integer" }, { "default": 0, "description": "the offset number to retrieve", "in": "query", "name": "offset", "type": "integer" } ], "produces": [ "application/json" ], "responses": { "200": { "description": "Get all user group", "schema": { "$ref": "#/definitions/models.PaginatedGroupResponse" } }, "400": { "description": "\u003ctable\u003e\u003ctr\u003e\u003ctd\u003eerrorCode\u003c/td\u003e\u003ctd\u003eerrorMessage\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e772301\u003c/td\u003e\u003ctd\u003einvalid paging parameter\u003c/td\u003e\u003c/tr\u003e\u003c/table\u003e", "schema": { "$ref": "#/definitions/response.Error" } }, "401": { "description": "\u003ctable\u003e\u003ctr\u003e\u003ctd\u003eerrorCode\u003c/td\u003e\u003ctd\u003eerrorMessage\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e20001\u003c/td\u003e\u003ctd\u003eunauthorized access\u003c/td\u003e\u003c/tr\u003e\u003c/table\u003e", "schema": { "$ref": "#/definitions/response.Error" } }, "500": { "description": "\u003ctable\u003e\u003ctr\u003e\u003ctd\u003eerrorCode\u003c/td\u003e\u003ctd\u003eerrorMessage\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e772302\u003c/td\u003e\u003ctd\u003eUnable get groups\u003c/td\u003e\u003c/tr\u003e\u003c/table\u003e", "schema": { "$ref": "#/definitions/response.Error" } } }, "security": [ { "authorization": [] } ], "summary": "Get all user groups", "tags": [ "Public Group" ], "x-errorCodes": { "20001": "unauthorized access", "772301": "invalid paging parameter", "772302": "Unable get groups" }, "x-security": [ { "userPermissions": [ "NAMESPACE:{namespace}:USER:{userId}:CONTENTGROUP [READ]" ] } ] }, "post": { "consumes": [ "application/json", "application/octet-stream" ], "description": "Create group", "operationId": "CreateGroup", "parameters": [ { "in": "body", "name": "body", "required": true, "schema": { "$ref": "#/definitions/models.CreateGroupRequest" } }, { "description": "namespace of the game", "in": "path", "name": "namespace", "required": true, "type": "string" }, { "description": "user ID", "in": "path", "name": "userId", "required": true, "type": "string" } ], "produces": [ "application/json" ], "responses": { "201": { "description": "Group Created", "schema": { "$ref": "#/definitions/models.CreateGroupResponse" } }, "400": { "description": "\u003ctable\u003e\u003ctr\u003e\u003ctd\u003eerrorCode\u003c/td\u003e\u003ctd\u003eerrorMessage\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e772101\u003c/td\u003e\u003ctd\u003eMalformed request/Invalid request body\u003c/td\u003e\u003c/tr\u003e\u003c/table\u003e", "schema": { "$ref": "#/definitions/response.Error" } }, "401": { "description": "\u003ctable\u003e\u003ctr\u003e\u003ctd\u003eerrorCode\u003c/td\u003e\u003ctd\u003eerrorMessage\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e20001\u003c/td\u003e\u003ctd\u003eunauthorized access\u003c/td\u003e\u003c/tr\u003e\u003c/table\u003e", "schema": { "$ref": "#/definitions/response.Error" } }, "500": { "description": "\u003ctable\u003e\u003ctr\u003e\u003ctd\u003eerrorCode\u003c/td\u003e\u003ctd\u003eerrorMessage\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e772102\u003c/td\u003e\u003ctd\u003eUnable to create group\u003c/td\u003e\u003c/tr\u003e\u003c/table\u003e", "schema": { "$ref": "#/definitions/response.Error" } } }, "security": [ { "authorization": [] } ], "summary": "Create groups", "tags": [ "Public Group" ], "x-errorCodes": { "20001": "unauthorized access", "772101": "Malformed request/Invalid request body", "772102": "Unable to create group" }, "x-security": [ { "userPermissions": [ "NAMESPACE:{namespace}:USER:{userId}:CONTENTGROUP [CREATE]" ] } ] } }, "/ugc/v1/public/namespaces/{namespace}/users/{userId}/groups/{groupId}": { "delete": { "consumes": [ "application/json", "application/octet-stream" ], "description": "Delete user group by group ID", "operationId": "DeleteGroup", "parameters": [ { "description": "group ID", "in": "path", "name": "groupId", "required": true, "type": "string" }, { "description": "namespace of the game", "in": "path", "name": "namespace", "required": true, "type": "string" }, { "description": "user ID", "in": "path", "name": "userId", "required": true, "type": "string" } ], "produces": [ "application/json" ], "responses": { "204": { "description": "Group deleted" }, "401": { "description": "\u003ctable\u003e\u003ctr\u003e\u003ctd\u003eerrorCode\u003c/td\u003e\u003ctd\u003eerrorMessage\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e20001\u003c/td\u003e\u003ctd\u003eunauthorized access\u003c/td\u003e\u003c/tr\u003e\u003c/table\u003e", "schema": { "$ref": "#/definitions/response.Error" } }, "404": { "description": "\u003ctable\u003e\u003ctr\u003e\u003ctd\u003eerrorCode\u003c/td\u003e\u003ctd\u003eerrorMessage\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e772403\u003c/td\u003e\u003ctd\u003eGroup not found\u003c/td\u003e\u003c/tr\u003e\u003c/table\u003e", "schema": { "$ref": "#/definitions/response.Error" } }, "500": { "description": "\u003ctable\u003e\u003ctr\u003e\u003ctd\u003eerrorCode\u003c/td\u003e\u003ctd\u003eerrorMessage\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e772402\u003c/td\u003e\u003ctd\u003eUnable delete groups\u003c/td\u003e\u003c/tr\u003e\u003c/table\u003e", "schema": { "$ref": "#/definitions/response.Error" } } }, "security": [ { "authorization": [] } ], "summary": "Delete group", "tags": [ "Public Group" ], "x-errorCodes": { "20001": "unauthorized access", "772402": "Unable delete groups", "772403": "Group not found" }, "x-security": [ { "userPermissions": [ "NAMESPACE:{namespace}:USER:{userId}:CONTENTGROUP [DELETE]" ] } ] }, "get": { "consumes": [ "application/json", "application/octet-stream" ], "description": "Get user groups by group ID", "operationId": "GetGroup", "parameters": [ { "description": "group ID", "in": "path", "name": "groupId", "required": true, "type": "string" }, { "description": "namespace of the game", "in": "path", "name": "namespace", "required": true, "type": "string" }, { "description": "user ID", "in": "path", "name": "userId", "required": true, "type": "string" } ], "produces": [ "application/json" ], "responses": { "200": { "description": "Get user's group", "schema": { "$ref": "#/definitions/models.CreateGroupResponse" } }, "401": { "description": "\u003ctable\u003e\u003ctr\u003e\u003ctd\u003eerrorCode\u003c/td\u003e\u003ctd\u003eerrorMessage\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e20001\u003c/td\u003e\u003ctd\u003eunauthorized access\u003c/td\u003e\u003c/tr\u003e\u003c/table\u003e", "schema": { "$ref": "#/definitions/response.Error" } }, "404": { "description": "\u003ctable\u003e\u003ctr\u003e\u003ctd\u003eerrorCode\u003c/td\u003e\u003ctd\u003eerrorMessage\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e773002\u003c/td\u003e\u003ctd\u003eGroup not found\u003c/td\u003e\u003c/tr\u003e\u003c/table\u003e", "schema": { "$ref": "#/definitions/response.Error" } }, "500": { "description": "\u003ctable\u003e\u003ctr\u003e\u003ctd\u003eerrorCode\u003c/td\u003e\u003ctd\u003eerrorMessage\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e773001\u003c/td\u003e\u003ctd\u003eUnable get group\u003c/td\u003e\u003c/tr\u003e\u003c/table\u003e", "schema": { "$ref": "#/definitions/response.Error" } } }, "security": [ { "authorization": [] } ], "summary": "Get user's groups", "tags": [ "Public Group" ], "x-errorCodes": { "20001": "unauthorized access", "773001": "Unable get group", "773002": "Group not found" }, "x-security": [ { "userPermissions": [ "NAMESPACE:{namespace}:USER:{userId}:CONTENTGROUP [READ]" ] } ] }, "put": { "consumes": [ "application/json", "application/octet-stream" ], "description": "Replace group name and contents with new ones", "operationId": "UpdateGroup", "parameters": [ { "in": "body", "name": "body", "required": true, "schema": { "$ref": "#/definitions/models.CreateGroupRequest" } }, { "description": "group ID", "in": "path", "name": "groupId", "required": true, "type": "string" }, { "description": "namespace of the game", "in": "path", "name": "namespace", "required": true, "type": "string" }, { "description": "user ID", "in": "path", "name": "userId", "required": true, "type": "string" } ], "produces": [ "application/json" ], "responses": { "200": { "description": "Group updated", "schema": { "$ref": "#/definitions/models.CreateGroupResponse" } }, "400": { "description": "\u003ctable\u003e\u003ctr\u003e\u003ctd\u003eerrorCode\u003c/td\u003e\u003ctd\u003eerrorMessage\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e772201\u003c/td\u003e\u003ctd\u003eMalformed request/Invalid request body\u003c/td\u003e\u003c/tr\u003e\u003c/table\u003e", "schema": { "$ref": "#/definitions/response.Error" } }, "401": { "description": "\u003ctable\u003e\u003ctr\u003e\u003ctd\u003eerrorCode\u003c/td\u003e\u003ctd\u003eerrorMessage\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e20001\u003c/td\u003e\u003ctd\u003eunauthorized access\u003c/td\u003e\u003c/tr\u003e\u003c/table\u003e", "schema": { "$ref": "#/definitions/response.Error" } }, "404": { "description": "\u003ctable\u003e\u003ctr\u003e\u003ctd\u003eerrorCode\u003c/td\u003e\u003ctd\u003eerrorMessage\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e772203\u003c/td\u003e\u003ctd\u003eGroup not found\u003c/td\u003e\u003c/tr\u003e\u003c/table\u003e", "schema": { "$ref": "#/definitions/response.Error" } }, "500": { "description": "\u003ctable\u003e\u003ctr\u003e\u003ctd\u003eerrorCode\u003c/td\u003e\u003ctd\u003eerrorMessage\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e772202\u003c/td\u003e\u003ctd\u003eUnable to update group\u003c/td\u003e\u003c/tr\u003e\u003c/table\u003e", "schema": { "$ref": "#/definitions/response.Error" } } }, "security": [ { "authorization": [] } ], "summary": "Update group", "tags": [ "Public Group" ], "x-errorCodes": { "20001": "unauthorized access", "772201": "Malformed request/Invalid request body", "772202": "Unable to update group", "772203": "Group not found" }, "x-security": [ { "userPermissions": [ "NAMESPACE:{namespace}:USER:{userId}:CONTENTGROUP [UPDATE]" ] } ] } }, "/ugc/v1/public/namespaces/{namespace}/users/{userId}/groups/{groupId}/contents": { "get": { "consumes": [ "application/json", "application/octet-stream" ], "description": "Get content that belong to a group", "operationId": "GetGroupContent", "parameters": [ { "description": "group ID", "in": "path", "name": "groupId", "required": true, "type": "string" }, { "description": "namespace of the game", "in": "path", "name": "namespace", "required": true, "type": "string" }, { "description": "user ID", "in": "path", "name": "userId", "required": true, "type": "string" }, { "default": 20, "description": "number of content per page", "in": "query", "name": "limit", "type": "integer" }, { "default": 0, "description": "the offset number to retrieve", "in": "query", "name": "offset", "type": "integer" } ], "produces": [ "application/json" ], "responses": { "200": { "description": "Get contents belong to a group", "schema": { "$ref": "#/definitions/models.PaginatedContentDownloadResponse" } }, "400": { "description": "\u003ctable\u003e\u003ctr\u003e\u003ctd\u003eerrorCode\u003c/td\u003e\u003ctd\u003eerrorMessage\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e773101\u003c/td\u003e\u003ctd\u003einvalid paging parameter\u003c/td\u003e\u003c/tr\u003e\u003c/table\u003e", "schema": { "$ref": "#/definitions/response.Error" } }, "401": { "description": "\u003ctable\u003e\u003ctr\u003e\u003ctd\u003eerrorCode\u003c/td\u003e\u003ctd\u003eerrorMessage\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e20001\u003c/td\u003e\u003ctd\u003eunauthorized access\u003c/td\u003e\u003c/tr\u003e\u003c/table\u003e", "schema": { "$ref": "#/definitions/response.Error" } }, "404": { "description": "\u003ctable\u003e\u003ctr\u003e\u003ctd\u003eerrorCode\u003c/td\u003e\u003ctd\u003eerrorMessage\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e773103\u003c/td\u003e\u003ctd\u003eNo group content was found\u003c/td\u003e\u003c/tr\u003e\u003c/table\u003e", "schema": { "$ref": "#/definitions/response.Error" } }, "500": { "description": "\u003ctable\u003e\u003ctr\u003e\u003ctd\u003eerrorCode\u003c/td\u003e\u003ctd\u003eerrorMessage\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e773102\u003c/td\u003e\u003ctd\u003eUnable to get ugc content: database error\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e770901\u003c/td\u003e\u003ctd\u003eUnable to get ugc content: database error/Unable to get creator\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e770903\u003c/td\u003e\u003ctd\u003eFailed generate download URL\u003c/td\u003e\u003c/tr\u003e\u003c/table\u003e", "schema": { "$ref": "#/definitions/response.Error" } } }, "security": [ { "authorization": [] } ], "summary": "(Legacy) Get contents belong to a group", "tags": [ "Public Group" ], "x-errorCodes": { "20001": "unauthorized access", "770901": "Unable to get ugc content: database error/Unable to get creator", "770903": "Failed generate download URL", "773101": "invalid paging parameter", "773102": "Unable to get ugc content: database error", "773103": "No group content was found" }, "x-security": [ { "userPermissions": [ "NAMESPACE:{namespace}:USER:{userId}:CONTENT [READ]" ] } ] } }, "/ugc/v1/public/namespaces/{namespace}/users/{userId}/states": { "delete": { "consumes": [ "application/json", "application/octet-stream" ], "description": "Required permission NAMESPACE:{namespace}:USER:{userId}\u0026#34; [DELETE]", "operationId": "DeleteAllUserStates", "parameters": [ { "description": "namespace of the game", "in": "path", "name": "namespace", "required": true, "type": "string" }, { "description": "user ID", "in": "path", "name": "userId", "required": true, "type": "string" } ], "produces": [ "application/json" ], "responses": { "204": { "description": "User stats deleted" }, "400": { "description": "\u003ctable\u003e\u003ctr\u003e\u003ctd\u003eerrorCode\u003c/td\u003e\u003ctd\u003eerrorMessage\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e773602\u003c/td\u003e\u003ctd\u003euser states are not found: content not found\u003c/td\u003e\u003c/tr\u003e\u003c/table\u003e", "schema": { "$ref": "#/definitions/response.Error" } }, "401": { "description": "\u003ctable\u003e\u003ctr\u003e\u003ctd\u003eerrorCode\u003c/td\u003e\u003ctd\u003eerrorMessage\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e20001\u003c/td\u003e\u003ctd\u003eunauthorized access\u003c/td\u003e\u003c/tr\u003e\u003c/table\u003e", "schema": { "$ref": "#/definitions/response.Error" } }, "500": { "description": "\u003ctable\u003e\u003ctr\u003e\u003ctd\u003eerrorCode\u003c/td\u003e\u003ctd\u003eerrorMessage\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e773601\u003c/td\u003e\u003ctd\u003eUnable to get all user contents/Unable to delete user states\u003c/td\u003e\u003c/tr\u003e\u003c/table\u003e", "schema": { "$ref": "#/definitions/response.Error" } } }, "security": [ { "authorization": [] } ], "summary": "Remove all user related state: likes, downloads, followers, following", "tags": [ "Anonymization" ], "x-errorCodes": { "20001": "unauthorized access", "773601": "Unable to get all user contents/Unable to delete user states", "773602": "user states are not found: content not found" }, "x-security": [ { "userPermissions": [ "NAMESPACE:{namespace}:USER:{userId} [DELETE]" ] } ] } }, "/ugc/v2/admin/namespaces/{namespace}/channels/{channelId}/contents": { "get": { "consumes": [ "application/json" ], "description": "List content specific to a channel", "operationId": "AdminGetContentByChannelIDV2", "parameters": [ { "description": "channel ID", "in": "path", "name": "channelId", "required": true, "type": "string" }, { "description": "namespace of the game", "in": "path", "name": "namespace", "required": true, "type": "string" }, { "default": 20, "description": "number of content per page", "in": "query", "name": "limit", "type": "integer" }, { "description": "content name", "in": "query", "name": "name", "type": "string" }, { "default": 0, "description": "the offset number to retrieve", "in": "query", "name": "offset", "type": "integer" }, { "default": "createdTime:desc", "description": "available values:\n\t\t\t\t- *createdTime*\n\t\t\t\t- *createdTime:desc*\n\t\t\t\t- *createdTime:asc*\n\t\t\t\t- *updatedTime*\n\t\t\t\t- *updatedTime:desc*\n\t\t\t\t- *updatedTime:asc*", "in": "query", "name": "sortBy", "type": "string" } ], "produces": [ "application/json" ], "responses": { "200": { "description": "List contents specific to a channel", "schema": { "$ref": "#/definitions/models.PaginatedContentDownloadResponseV2" } }, "400": { "description": "\u003ctable\u003e\u003ctr\u003e\u003ctd\u003eerrorCode\u003c/td\u003e\u003ctd\u003eerrorMessage\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e770804\u003c/td\u003e\u003ctd\u003einvalid paging parameter\u003c/td\u003e\u003c/tr\u003e\u003c/table\u003e", "schema": { "$ref": "#/definitions/response.Error" } }, "401": { "description": "\u003ctable\u003e\u003ctr\u003e\u003ctd\u003eerrorCode\u003c/td\u003e\u003ctd\u003eerrorMessage\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e20001\u003c/td\u003e\u003ctd\u003eunauthorized access\u003c/td\u003e\u003c/tr\u003e\u003c/table\u003e", "schema": { "$ref": "#/definitions/response.Error" } }, "500": { "description": "\u003ctable\u003e\u003ctr\u003e\u003ctd\u003eerrorCode\u003c/td\u003e\u003ctd\u003eerrorMessage\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e770805\u003c/td\u003e\u003ctd\u003eUnable to get ugc content: database error\u003c/td\u003e\u003c/tr\u003e\u003c/table\u003e", "schema": { "$ref": "#/definitions/response.Error" } } }, "security": [ { "authorization": [] } ], "summary": "List contents specific to a channel", "tags": [ "Admin Content V2" ], "x-errorCodes": { "20001": "unauthorized access", "770804": "invalid paging parameter", "770805": "Unable to get ugc content: database error" }, "x-security": [ { "userPermissions": [ "ADMIN:NAMESPACE:{namespace}:USER:{userId}:CONTENT [READ]" ] } ] }, "post": { "consumes": [ "application/json" ], "description": "Create official content", "operationId": "AdminCreateContentV2", "parameters": [ { "in": "body", "name": "body", "required": true, "schema": { "$ref": "#/definitions/models.AdminContentRequestV2" } }, { "description": "channel ID", "in": "path", "name": "channelId", "required": true, "type": "string" }, { "description": "namespace of the game", "in": "path", "name": "namespace", "required": true, "type": "string" } ], "produces": [ "application/json" ], "responses": { "201": { "description": "Content created", "schema": { "$ref": "#/definitions/models.CreateContentResponseV2" } }, "400": { "description": "\u003ctable\u003e\u003ctr\u003e\u003ctd\u003eerrorCode\u003c/td\u003e\u003ctd\u003eerrorMessage\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e770100\u003c/td\u003e\u003ctd\u003eMalformed request/Invalid request body/channel do not exist\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e770107\u003c/td\u003e\u003ctd\u003eUnable to update ugc content: invalid shareCode format\u003c/td\u003e\u003c/tr\u003e\u003c/table\u003e", "schema": { "$ref": "#/definitions/response.Error" } }, "401": { "description": "\u003ctable\u003e\u003ctr\u003e\u003ctd\u003eerrorCode\u003c/td\u003e\u003ctd\u003eerrorMessage\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e20001\u003c/td\u003e\u003ctd\u003eunauthorized access\u003c/td\u003e\u003c/tr\u003e\u003c/table\u003e", "schema": { "$ref": "#/definitions/response.Error" } }, "404": { "description": "\u003ctable\u003e\u003ctr\u003e\u003ctd\u003eerrorCode\u003c/td\u003e\u003ctd\u003eerrorMessage\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e770106\u003c/td\u003e\u003ctd\u003echannel doesn't exist\u003c/td\u003e\u003c/tr\u003e\u003c/table\u003e", "schema": { "$ref": "#/definitions/response.Error" } }, "409": { "description": "\u003ctable\u003e\u003ctr\u003e\u003ctd\u003eerrorCode\u003c/td\u003e\u003ctd\u003eerrorMessage\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e770103\u003c/td\u003e\u003ctd\u003eUnable to save ugc content: shareCode exceed the limit\u003c/td\u003e\u003c/tr\u003e\u003c/table\u003e", "schema": { "$ref": "#/definitions/response.Error" } }, "500": { "description": "\u003ctable\u003e\u003ctr\u003e\u003ctd\u003eerrorCode\u003c/td\u003e\u003ctd\u003eerrorMessage\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e770102\u003c/td\u003e\u003ctd\u003eUnable to check user ban status/Unable to save ugc content: unable to get channel\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e770105\u003c/td\u003e\u003ctd\u003eUnable to save ugc content: failed generate upload URL\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e770103\u003c/td\u003e\u003ctd\u003eUnable to save ugc content: shareCode exceed the limit\u003c/td\u003e\u003c/tr\u003e\u003c/table\u003e", "schema": { "$ref": "#/definitions/response.Error" } } }, "security": [ { "authorization": [] } ], "summary": "Create a content", "tags": [ "Admin Content V2" ], "x-errorCodes": { "20001": "unauthorized access", "770100": "Malformed request/Invalid request body/channel do not exist", "770102": "Unable to check user ban status/Unable to save ugc content: unable to get channel", "770103": "Unable to save ugc content: shareCode exceed the limit", "770105": "Unable to save ugc content: failed generate upload URL", "770106": "channel doesn't exist", "770107": "Unable to update ugc content: invalid shareCode format" }, "x-security": [ { "userPermissions": [ "ADMIN:NAMESPACE:{namespace}:USER:{userId}:CONTENT [CREATE]" ] } ] } }, "/ugc/v2/admin/namespaces/{namespace}/channels/{channelId}/contents/{contentId}": { "delete": { "consumes": [ "application/json" ], "description": "Delete existing official content", "operationId": "AdminDeleteOfficialContentV2", "parameters": [ { "description": "channel ID", "in": "path", "name": "channelId", "required": true, "type": "string" }, { "description": "content ID", "in": "path", "name": "contentId", "required": true, "type": "string" }, { "description": "namespace of the game", "in": "path", "name": "namespace", "required": true, "type": "string" } ], "produces": [ "application/json" ], "responses": { "204": { "description": "Official content deleted" }, "401": { "description": "\u003ctable\u003e\u003ctr\u003e\u003ctd\u003eerrorCode\u003c/td\u003e\u003ctd\u003eerrorMessage\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e20001\u003c/td\u003e\u003ctd\u003eunauthorized access\u003c/td\u003e\u003c/tr\u003e\u003c/table\u003e", "schema": { "$ref": "#/definitions/response.Error" } }, "404": { "description": "\u003ctable\u003e\u003ctr\u003e\u003ctd\u003eerrorCode\u003c/td\u003e\u003ctd\u003eerrorMessage\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e772702\u003c/td\u003e\u003ctd\u003eContent not found\u003c/td\u003e\u003c/tr\u003e\u003c/table\u003e", "schema": { "$ref": "#/definitions/response.Error" } }, "500": { "description": "\u003ctable\u003e\u003ctr\u003e\u003ctd\u003eerrorCode\u003c/td\u003e\u003ctd\u003eerrorMessage\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e772701\u003c/td\u003e\u003ctd\u003eUnable to delete content/Unable to update user liked count/Unable to delete like state/Unable to delete like state\u003c/td\u003e\u003c/tr\u003e\u003c/table\u003e", "schema": { "$ref": "#/definitions/response.Error" } } }, "security": [ { "authorization": [] } ], "summary": "Delete official content", "tags": [ "Admin Content V2" ], "x-errorCodes": { "20001": "unauthorized access", "772701": "Unable to delete content/Unable to update user liked count/Unable to delete like state/Unable to delete like state", "772702": "Content not found" }, "x-security": [ { "userPermissions": [ "ADMIN:NAMESPACE:{namespace}:USER:{userId}:CONTENT [DELETE]" ] } ] }, "patch": { "consumes": [ "application/json" ], "description": "Update existing official content", "operationId": "AdminUpdateOfficialContentV2", "parameters": [ { "in": "body", "name": "body", "required": true, "schema": { "$ref": "#/definitions/models.AdminUpdateContentRequestV2" } }, { "description": "channel ID", "in": "path", "name": "channelId", "required": true, "type": "string" }, { "description": "content ID", "in": "path", "name": "contentId", "required": true, "type": "string" }, { "description": "namespace of the game", "in": "path", "name": "namespace", "required": true, "type": "string" } ], "produces": [ "application/json" ], "responses": { "200": { "description": "Update official content", "schema": { "$ref": "#/definitions/models.UpdateContentResponseV2" } }, "400": { "description": "\u003ctable\u003e\u003ctr\u003e\u003ctd\u003eerrorCode\u003c/td\u003e\u003ctd\u003eerrorMessage\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e772601\u003c/td\u003e\u003ctd\u003eMalformed request\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e772607\u003c/td\u003e\u003ctd\u003eUnable to update ugc content: invalid shareCode format\u003c/td\u003e\u003c/tr\u003e\u003c/table\u003e", "schema": { "$ref": "#/definitions/response.Error" } }, "401": { "description": "\u003ctable\u003e\u003ctr\u003e\u003ctd\u003eerrorCode\u003c/td\u003e\u003ctd\u003eerrorMessage\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e20001\u003c/td\u003e\u003ctd\u003eunauthorized access\u003c/td\u003e\u003c/tr\u003e\u003c/table\u003e", "schema": { "$ref": "#/definitions/response.Error" } }, "404": { "description": "\u003ctable\u003e\u003ctr\u003e\u003ctd\u003eerrorCode\u003c/td\u003e\u003ctd\u003eerrorMessage\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e772603\u003c/td\u003e\u003ctd\u003eContent not found\u003c/td\u003e\u003c/tr\u003e\u003c/table\u003e", "schema": { "$ref": "#/definitions/response.Error" } }, "409": { "description": "\u003ctable\u003e\u003ctr\u003e\u003ctd\u003eerrorCode\u003c/td\u003e\u003ctd\u003eerrorMessage\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e772606\u003c/td\u003e\u003ctd\u003eShare code already used\u003c/td\u003e\u003c/tr\u003e\u003c/table\u003e", "schema": { "$ref": "#/definitions/response.Error" } }, "500": { "description": "\u003ctable\u003e\u003ctr\u003e\u003ctd\u003eerrorCode\u003c/td\u003e\u003ctd\u003eerrorMessage\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e772602\u003c/td\u003e\u003ctd\u003eUnable to check user ban status/Unable to get updated ugc content\u003c/td\u003e\u003c/tr\u003e\u003c/table\u003e", "schema": { "$ref": "#/definitions/response.Error" } } }, "security": [ { "authorization": [] } ], "summary": "Update official content", "tags": [ "Admin Content V2" ], "x-errorCodes": { "20001": "unauthorized access", "772601": "Malformed request", "772602": "Unable to check user ban status/Unable to get updated ugc content", "772603": "Content not found", "772606": "Share code already used", "772607": "Unable to update ugc content: invalid shareCode format" }, "x-security": [ { "userPermissions": [ "ADMIN:NAMESPACE:{namespace}:USER:{userId}:CONTENT [UPDATE]" ] } ] } }, "/ugc/v2/admin/namespaces/{namespace}/channels/{channelId}/contents/{contentId}/copy": { "post": { "consumes": [ "application/json" ], "description": "Copy existing content from source channel to target channel.", "operationId": "AdminCopyContent", "parameters": [ { "in": "body", "name": "body", "required": true, "schema": { "$ref": "#/definitions/models.CopyContentRequest" } }, { "description": "source channel id", "in": "path", "name": "channelId", "required": true, "type": "string" }, { "description": "source content id", "in": "path", "name": "contentId", "required": true, "type": "string" }, { "description": "namespace of the game", "in": "path", "name": "namespace", "required": true, "type": "string" } ], "produces": [ "application/json" ], "responses": { "201": { "description": "contents copied", "schema": { "$ref": "#/definitions/models.ContentDownloadResponseV2" } }, "400": { "description": "", "schema": { "$ref": "#/definitions/response.Error" } }, "401": { "description": "\u003ctable\u003e\u003ctr\u003e\u003ctd\u003eerrorCode\u003c/td\u003e\u003ctd\u003eerrorMessage\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e20001\u003c/td\u003e\u003ctd\u003eunauthorized access\u003c/td\u003e\u003c/tr\u003e\u003c/table\u003e", "schema": { "$ref": "#/definitions/response.Error" } }, "403": { "description": "\u003ctable\u003e\u003ctr\u003e\u003ctd\u003eerrorCode\u003c/td\u003e\u003ctd\u003eerrorMessage\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e20013\u003c/td\u003e\u003ctd\u003einsufficient permission\u003c/td\u003e\u003c/tr\u003e\u003c/table\u003e", "schema": { "$ref": "#/definitions/response.Error" } }, "404": { "description": "", "schema": { "$ref": "#/definitions/response.Error" } }, "500": { "description": "", "schema": { "$ref": "#/definitions/response.Error" } } }, "security": [ { "authorization": [] } ], "summary": "Copy contents from a channel to another", "tags": [ "Admin Content V2" ], "x-errorCodes": { "20001": "unauthorized access", "20013": "insufficient permission" }, "x-security": [ { "userPermissions": [ "ADMIN:NAMESPACE:{namespace}:USER:*:CONTENT [CREATE]" ] } ] } }, "/ugc/v2/admin/namespaces/{namespace}/channels/{channelId}/contents/{contentId}/fileLocation": { "patch": { "consumes": [ "application/json" ], "description": "This endpoint should be used after calling generate official content upload url endpoint to commit the changes", "operationId": "AdminUpdateOfficialContentFileLocation", "parameters": [ { "in": "body", "name": "body", "required": true, "schema": { "$ref": "#/definitions/models.UpdateFileLocationRequest" } }, { "description": "channel ID", "in": "path", "name": "channelId", "required": true, "type": "string" }, { "description": "content ID", "in": "path", "name": "contentId", "required": true, "type": "string" }, { "description": "namespace of the game", "in": "path", "name": "namespace", "required": true, "type": "string" } ], "produces": [ "application/json" ], "responses": { "200": { "description": "Update content file location", "schema": { "$ref": "#/definitions/models.UpdateContentResponseV2" } }, "400": { "description": "\u003ctable\u003e\u003ctr\u003e\u003ctd\u003eerrorCode\u003c/td\u003e\u003ctd\u003eerrorMessage\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e774001\u003c/td\u003e\u003ctd\u003eunable to read response body/unable to update file location\u003c/td\u003e\u003c/tr\u003e\u003c/table\u003e", "schema": { "$ref": "#/definitions/response.Error" } }, "401": { "description": "\u003ctable\u003e\u003ctr\u003e\u003ctd\u003eerrorCode\u003c/td\u003e\u003ctd\u003eerrorMessage\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e20001\u003c/td\u003e\u003ctd\u003eunauthorized access\u003c/td\u003e\u003c/tr\u003e\u003c/table\u003e", "schema": { "$ref": "#/definitions/response.Error" } }, "403": { "description": "\u003ctable\u003e\u003ctr\u003e\u003ctd\u003eerrorCode\u003c/td\u003e\u003ctd\u003eerrorMessage\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e20013\u003c/td\u003e\u003ctd\u003einsufficient permission\u003c/td\u003e\u003c/tr\u003e\u003c/table\u003e", "schema": { "$ref": "#/definitions/response.Error" } }, "404": { "description": "\u003ctable\u003e\u003ctr\u003e\u003ctd\u003eerrorCode\u003c/td\u003e\u003ctd\u003eerrorMessage\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e774002\u003c/td\u003e\u003ctd\u003eunable to update content file location: content not found\u003c/td\u003e\u003c/tr\u003e\u003c/table\u003e", "schema": { "$ref": "#/definitions/response.Error" } }, "500": { "description": "\u003ctable\u003e\u003ctr\u003e\u003ctd\u003eerrorCode\u003c/td\u003e\u003ctd\u003eerrorMessage\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e774003\u003c/td\u003e\u003ctd\u003eunable to update content file location\u003c/td\u003e\u003c/tr\u003e\u003c/table\u003e", "schema": { "$ref": "#/definitions/response.Error" } } }, "security": [ { "authorization": [] } ], "summary": "Update content file location", "tags": [ "Admin Content V2" ], "x-errorCodes": { "20001": "unauthorized access", "20013": "insufficient permission", "774001": "unable to read response body/unable to update file location", "774002": "unable to update content file location: content not found", "774003": "unable to update content file location" }, "x-security": [ { "userPermissions": [ "ADMIN:NAMESPACE:{namespace}:USER:{userId}:CONTENT [UPDATE]" ] } ] } }, "/ugc/v2/admin/namespaces/{namespace}/channels/{channelId}/contents/{contentId}/uploadUrl": { "patch": { "consumes": [ "application/json" ], "description": "Generate official content upload URL", "operationId": "AdminGenerateOfficialContentUploadURLV2", "parameters": [ { "in": "body", "name": "body", "required": true, "schema": { "$ref": "#/definitions/models.GenerateContentUploadURLRequest" } }, { "description": "channel ID", "in": "path", "name": "channelId", "required": true, "type": "string" }, { "description": "content ID", "in": "path", "name": "contentId", "required": true, "type": "string" }, { "description": "namespace of the game", "in": "path", "name": "namespace", "required": true, "type": "string" } ], "produces": [ "application/json" ], "responses": { "200": { "description": "official content upload URL generated", "schema": { "$ref": "#/definitions/models.GenerateContentUploadURLResponse" } }, "400": { "description": "\u003ctable\u003e\u003ctr\u003e\u003ctd\u003eerrorCode\u003c/td\u003e\u003ctd\u003eerrorMessage\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e772601\u003c/td\u003e\u003ctd\u003eMalformed request\u003c/td\u003e\u003c/tr\u003e\u003c/table\u003e", "schema": { "$ref": "#/definitions/response.Error" } }, "401": { "description": "\u003ctable\u003e\u003ctr\u003e\u003ctd\u003eerrorCode\u003c/td\u003e\u003ctd\u003eerrorMessage\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e20001\u003c/td\u003e\u003ctd\u003eunauthorized access\u003c/td\u003e\u003c/tr\u003e\u003c/table\u003e", "schema": { "$ref": "#/definitions/response.Error" } }, "404": { "description": "\u003ctable\u003e\u003ctr\u003e\u003ctd\u003eerrorCode\u003c/td\u003e\u003ctd\u003eerrorMessage\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e772603\u003c/td\u003e\u003ctd\u003eContent not found\u003c/td\u003e\u003c/tr\u003e\u003c/table\u003e", "schema": { "$ref": "#/definitions/response.Error" } }, "500": { "description": "\u003ctable\u003e\u003ctr\u003e\u003ctd\u003eerrorCode\u003c/td\u003e\u003ctd\u003eerrorMessage\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e772602\u003c/td\u003e\u003ctd\u003eUnable to check user ban status/Unable to get updated ugc content\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e772605\u003c/td\u003e\u003ctd\u003eUnable to save ugc content: failed generate upload URL\u003c/td\u003e\u003c/tr\u003e\u003c/table\u003e", "schema": { "$ref": "#/definitions/response.Error" } } }, "security": [ { "authorization": [] } ], "summary": "Generate official content upload URL", "tags": [ "Admin Content V2" ], "x-errorCodes": { "20001": "unauthorized access", "772601": "Malformed request", "772602": "Unable to check user ban status/Unable to get updated ugc content", "772603": "Content not found", "772605": "Unable to save ugc content: failed generate upload URL" }, "x-security": [ { "userPermissions": [ "ADMIN:NAMESPACE:{namespace}:USER:{userId}:CONTENT [UPDATE]" ] } ] } }, "/ugc/v2/admin/namespaces/{namespace}/configs": { "get": { "consumes": [ "application/json" ], "description": "Get config paginated", "operationId": "AdminGetConfigs", "parameters": [ { "description": "namespace of the game", "in": "path", "name": "namespace", "required": true, "type": "string" }, { "description": "number of configs per page", "in": "query", "name": "limit", "type": "integer" }, { "description": "offset number to retrieve", "in": "query", "name": "offset", "type": "integer" } ], "produces": [ "application/json" ], "responses": { "200": { "description": "Get configs", "schema": { "$ref": "#/definitions/models.PaginatedGetConfigsResponse" } }, "400": { "description": "\u003ctable\u003e\u003ctr\u003e\u003ctd\u003eerrorCode\u003c/td\u003e\u003ctd\u003eerrorMessage\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e774204\u003c/td\u003e\u003ctd\u003einvalid paging parameter\u003c/td\u003e\u003c/tr\u003e\u003c/table\u003e", "schema": { "$ref": "#/definitions/response.Error" } }, "401": { "description": "\u003ctable\u003e\u003ctr\u003e\u003ctd\u003eerrorCode\u003c/td\u003e\u003ctd\u003eerrorMessage\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e20001\u003c/td\u003e\u003ctd\u003eunauthorized access\u003c/td\u003e\u003c/tr\u003e\u003c/table\u003e", "schema": { "$ref": "#/definitions/response.Error" } }, "403": { "description": "\u003ctable\u003e\u003ctr\u003e\u003ctd\u003eerrorCode\u003c/td\u003e\u003ctd\u003eerrorMessage\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e20013\u003c/td\u003e\u003ctd\u003einsufficient permission\u003c/td\u003e\u003c/tr\u003e\u003c/table\u003e", "schema": { "$ref": "#/definitions/response.Error" } }, "500": { "description": "\u003ctable\u003e\u003ctr\u003e\u003ctd\u003eerrorCode\u003c/td\u003e\u003ctd\u003eerrorMessage\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e774205\u003c/td\u003e\u003ctd\u003eUnable to get configs\u003c/td\u003e\u003c/tr\u003e\u003c/table\u003e", "schema": { "$ref": "#/definitions/response.Error" } } }, "security": [ { "authorization": [] } ], "summary": "Get configs", "tags": [ "Admin Config" ], "x-errorCodes": { "20001": "unauthorized access", "20013": "insufficient permission", "774204": "invalid paging parameter", "774205": "Unable to get configs" }, "x-security": [ { "userPermissions": [ "ADMIN:NAMESPACE:{namespace}:UGCCONFIG [READ]" ] } ] } }, "/ugc/v2/admin/namespaces/{namespace}/configs/{key}": { "patch": { "consumes": [ "application/json" ], "description": "This endpoint will create a new config if the *key* doesn\u0026#39;t exist. \n\nAllowed key value:\n- *contentReview*: *enabled*,*disabled*", "operationId": "AdminUpdateConfig", "parameters": [ { "in": "body", "name": "body", "required": true, "schema": { "$ref": "#/definitions/models.UpdateConfigRequest" } }, { "description": "config key", "in": "path", "name": "key", "required": true, "type": "string" }, { "description": "namespace of the game", "in": "path", "name": "namespace", "required": true, "type": "string" } ], "produces": [ "application/json" ], "responses": { "201": { "description": "Config updated" }, "400": { "description": "\u003ctable\u003e\u003ctr\u003e\u003ctd\u003eerrorCode\u003c/td\u003e\u003ctd\u003eerrorMessage\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e774201\u003c/td\u003e\u003ctd\u003eInvalid request body\u003c/td\u003e\u003c/tr\u003e\u003c/table\u003e", "schema": { "$ref": "#/definitions/response.Error" } }, "401": { "description": "\u003ctable\u003e\u003ctr\u003e\u003ctd\u003eerrorCode\u003c/td\u003e\u003ctd\u003eerrorMessage\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e20001\u003c/td\u003e\u003ctd\u003eunauthorized access\u003c/td\u003e\u003c/tr\u003e\u003c/table\u003e", "schema": { "$ref": "#/definitions/response.Error" } }, "403": { "description": "\u003ctable\u003e\u003ctr\u003e\u003ctd\u003eerrorCode\u003c/td\u003e\u003ctd\u003eerrorMessage\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e20013\u003c/td\u003e\u003ctd\u003einsufficient permission\u003c/td\u003e\u003c/tr\u003e\u003c/table\u003e", "schema": { "$ref": "#/definitions/response.Error" } }, "500": { "description": "\u003ctable\u003e\u003ctr\u003e\u003ctd\u003eerrorCode\u003c/td\u003e\u003ctd\u003eerrorMessage\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e774202\u003c/td\u003e\u003ctd\u003eUnable to save config\u003c/td\u003e\u003c/tr\u003e\u003c/table\u003e", "schema": { "$ref": "#/definitions/response.Error" } } }, "security": [ { "authorization": [] } ], "summary": "Update config", "tags": [ "Admin Config" ], "x-errorCodes": { "20001": "unauthorized access", "20013": "insufficient permission", "774201": "Invalid request body", "774202": "Unable to save config" }, "x-security": [ { "userPermissions": [ "ADMIN:NAMESPACE:{namespace}:UGCCONFIG [UPDATE]" ] } ] } }, "/ugc/v2/admin/namespaces/{namespace}/contents": { "get": { "consumes": [ "application/json" ], "description": "For advance tag filtering supports \u0026amp; as AND operator and | as OR operator and parentheses ( ) for priority. e.g: \n\n\n*tags=red*\n*tags=red\u0026amp;animal*\n*tags=red|animal*\n*tags=red\u0026amp;animal|wild*\n*tags=red\u0026amp;(animal|wild)*\n\nThe precedence of logical operator is AND \u0026gt; OR, so if no parentheses, AND logical operator will be executed first. \n\nAllowed character for operand: alphanumeric, underscore _ and dash - \n\nAllowed character for operator: \u0026amp; | ( )\n\n\n**Please note that value of tags query param should be URL encoded**", "operationId": "AdminListContentV2", "parameters": [ { "description": "namespace of the game", "in": "path", "name": "namespace", "required": true, "type": "string" }, { "description": "filter by is official", "in": "query", "name": "isOfficial", "type": "boolean", "x-omitempty": false }, { "default": 20, "description": "number of content per page", "in": "query", "name": "limit", "type": "integer" }, { "description": "filter by content name", "in": "query", "name": "name", "type": "string" }, { "default": 0, "description": "the offset number to retrieve", "in": "query", "name": "offset", "type": "integer" }, { "default": "createdTime:desc", "description": "sort order of query result\navailable value: \n- *createdTime*\n- *createdTime:desc*\n- *createdTime:asc*\n- *download*\n- *download:desc* \n- *download:asc*\n- *name* \n- *name:desc* \n- *name:asc*\n- *updatedTime*\n- *updatedTime:desc* \n- *updatedTime:asc*", "in": "query", "name": "sortBy", "type": "string" }, { "description": "filter by content subType", "in": "query", "name": "subType", "type": "string" }, { "collectionFormat": "csv", "description": "content tag", "in": "query", "items": { "type": "string" }, "name": "tags", "type": "array" }, { "description": "filter by content type", "in": "query", "name": "type", "type": "string" } ], "produces": [ "application/json" ], "responses": { "200": { "description": "List content", "schema": { "$ref": "#/definitions/models.PaginatedContentDownloadResponseV2" } }, "400": { "description": "\u003ctable\u003e\u003ctr\u003e\u003ctd\u003eerrorCode\u003c/td\u003e\u003ctd\u003eerrorMessage\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e770800\u003c/td\u003e\u003ctd\u003einvalid paging parameter/max allowed number of tags is {maxTags}/invalid official parameter/invalid ishidden parameter\u003c/td\u003e\u003c/tr\u003e\u003c/table\u003e", "schema": { "$ref": "#/definitions/response.Error" } }, "401": { "description": "\u003ctable\u003e\u003ctr\u003e\u003ctd\u003eerrorCode\u003c/td\u003e\u003ctd\u003eerrorMessage\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e20001\u003c/td\u003e\u003ctd\u003eunauthorized access\u003c/td\u003e\u003c/tr\u003e\u003c/table\u003e", "schema": { "$ref": "#/definitions/response.Error" } }, "500": { "description": "\u003ctable\u003e\u003ctr\u003e\u003ctd\u003eerrorCode\u003c/td\u003e\u003ctd\u003eerrorMessage\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e770801\u003c/td\u003e\u003ctd\u003eUnable to get ugc content: database/Unable to get creator\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e770803\u003c/td\u003e\u003ctd\u003eFailed generate download URL\u003c/td\u003e\u003c/tr\u003e\u003c/table\u003e", "schema": { "$ref": "#/definitions/response.Error" } } }, "security": [ { "authorization": [] } ], "summary": "List contents", "tags": [ "Admin Content V2" ], "x-errorCodes": { "20001": "unauthorized access", "770800": "invalid paging parameter/max allowed number of tags is {maxTags}/invalid official parameter/invalid ishidden parameter", "770801": "Unable to get ugc content: database/Unable to get creator", "770803": "Failed generate download URL" }, "x-security": [ { "userPermissions": [ "ADMIN:NAMESPACE:{namespace}:USER:{userId}:CONTENT [READ]" ] } ] } }, "/ugc/v2/admin/namespaces/{namespace}/contents/bulk": { "post": { "consumes": [ "application/json" ], "description": "Maximum contentId per request 100", "operationId": "AdminBulkGetContentByIDsV2", "parameters": [ { "in": "body", "name": "body", "required": true, "schema": { "$ref": "#/definitions/models.AdminGetContentBulkRequest" } }, { "description": "namespace of the game", "in": "path", "name": "namespace", "required": true, "type": "string" } ], "produces": [ "application/json" ], "responses": { "200": { "description": "Bulk get content by content IDs", "schema": { "items": { "$ref": "#/definitions/models.ContentDownloadResponseV2" }, "type": "array" } }, "400": { "description": "\u003ctable\u003e\u003ctr\u003e\u003ctd\u003eerrorCode\u003c/td\u003e\u003ctd\u003eerrorMessage\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e773900\u003c/td\u003e\u003ctd\u003eMalformed request/Invalid request body\u003c/td\u003e\u003c/tr\u003e\u003c/table\u003e", "schema": { "$ref": "#/definitions/response.Error" } }, "401": { "description": "\u003ctable\u003e\u003ctr\u003e\u003ctd\u003eerrorCode\u003c/td\u003e\u003ctd\u003eerrorMessage\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e20001\u003c/td\u003e\u003ctd\u003eunauthorized access\u003c/td\u003e\u003c/tr\u003e\u003c/table\u003e", "schema": { "$ref": "#/definitions/response.Error" } }, "403": { "description": "\u003ctable\u003e\u003ctr\u003e\u003ctd\u003eerrorCode\u003c/td\u003e\u003ctd\u003eerrorMessage\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e20013\u003c/td\u003e\u003ctd\u003einsufficient permission\u003c/td\u003e\u003c/tr\u003e\u003c/table\u003e", "schema": { "$ref": "#/definitions/response.Error" } }, "500": { "description": "\u003ctable\u003e\u003ctr\u003e\u003ctd\u003eerrorCode\u003c/td\u003e\u003ctd\u003eerrorMessage\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e773901\u003c/td\u003e\u003ctd\u003eUnable to get ugc content: database/Unable to get creator\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e770801\u003c/td\u003e\u003ctd\u003eUnable to get ugc content: database/Unable to get creator\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e773902\u003c/td\u003e\u003ctd\u003eFailed generate download URL\u003c/td\u003e\u003c/tr\u003e\u003c/table\u003e", "schema": { "$ref": "#/definitions/response.Error" } } }, "security": [ { "authorization": [] } ], "summary": "Bulk get content by content IDs", "tags": [ "Admin Content V2" ], "x-errorCodes": { "20001": "unauthorized access", "20013": "insufficient permission", "770801": "Unable to get ugc content: database/Unable to get creator", "773900": "Malformed request/Invalid request body", "773901": "Unable to get ugc content: database/Unable to get creator", "773902": "Failed generate download URL" }, "x-security": [ { "userPermissions": [ "ADMIN:NAMESPACE:{namespace}:USER:*:CONTENT [READ]" ] } ] } }, "/ugc/v2/admin/namespaces/{namespace}/contents/sharecodes/bulk": { "post": { "consumes": [ "application/json" ], "description": "Maximum sharecodes per request 100", "operationId": "AdminGetContentBulkByShareCodesV2", "parameters": [ { "in": "body", "name": "body", "required": true, "schema": { "$ref": "#/definitions/models.GetContentBulkByShareCodesRequest" } }, { "description": "namespace of the game", "in": "path", "name": "namespace", "required": true, "type": "string" } ], "produces": [ "application/json" ], "responses": { "200": { "description": "Bulk get content by content sharecodes", "schema": { "items": { "$ref": "#/definitions/models.ContentDownloadResponseV2" }, "type": "array" } }, "400": { "description": "\u003ctable\u003e\u003ctr\u003e\u003ctd\u003eerrorCode\u003c/td\u003e\u003ctd\u003eerrorMessage\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e773900\u003c/td\u003e\u003ctd\u003eMalformed request/Invalid request body\u003c/td\u003e\u003c/tr\u003e\u003c/table\u003e", "schema": { "$ref": "#/definitions/response.Error" } }, "401": { "description": "\u003ctable\u003e\u003ctr\u003e\u003ctd\u003eerrorCode\u003c/td\u003e\u003ctd\u003eerrorMessage\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e20001\u003c/td\u003e\u003ctd\u003eunauthorized access\u003c/td\u003e\u003c/tr\u003e\u003c/table\u003e", "schema": { "$ref": "#/definitions/response.Error" } }, "403": { "description": "\u003ctable\u003e\u003ctr\u003e\u003ctd\u003eerrorCode\u003c/td\u003e\u003ctd\u003eerrorMessage\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e20013\u003c/td\u003e\u003ctd\u003einsufficient permission\u003c/td\u003e\u003c/tr\u003e\u003c/table\u003e", "schema": { "$ref": "#/definitions/response.Error" } }, "500": { "description": "\u003ctable\u003e\u003ctr\u003e\u003ctd\u003eerrorCode\u003c/td\u003e\u003ctd\u003eerrorMessage\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e773901\u003c/td\u003e\u003ctd\u003eUnable to get ugc content: database/Unable to get creator\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e773902\u003c/td\u003e\u003ctd\u003eFailed generate download URL\u003c/td\u003e\u003c/tr\u003e\u003c/table\u003e", "schema": { "$ref": "#/definitions/response.Error" } } }, "security": [ { "authorization": [] } ], "summary": "Bulk get content by content sharecodes", "tags": [ "Admin Content V2" ], "x-errorCodes": { "20001": "unauthorized access", "20013": "insufficient permission", "773900": "Malformed request/Invalid request body", "773901": "Unable to get ugc content: database/Unable to get creator", "773902": "Failed generate download URL" }, "x-security": [ { "userPermissions": [ "ADMIN:NAMESPACE:{namespace}:USER:*:CONTENT [READ]" ] } ] } }, "/ugc/v2/admin/namespaces/{namespace}/contents/sharecodes/{shareCode}": { "get": { "consumes": [ "application/json" ], "description": "Get content by share code", "operationId": "AdminGetContentByShareCodeV2", "parameters": [ { "description": "namespace of the game", "in": "path", "name": "namespace", "required": true, "type": "string" }, { "description": "content sharecode", "in": "path", "name": "shareCode", "required": true, "type": "string" } ], "produces": [ "application/json" ], "responses": { "200": { "description": "Get content by sharecode", "schema": { "$ref": "#/definitions/models.ContentDownloadResponseV2" } }, "401": { "description": "\u003ctable\u003e\u003ctr\u003e\u003ctd\u003eerrorCode\u003c/td\u003e\u003ctd\u003eerrorMessage\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e20001\u003c/td\u003e\u003ctd\u003eunauthorized access\u003c/td\u003e\u003c/tr\u003e\u003c/table\u003e", "schema": { "$ref": "#/definitions/response.Error" } }, "404": { "description": "\u003ctable\u003e\u003ctr\u003e\u003ctd\u003eerrorCode\u003c/td\u003e\u003ctd\u003eerrorMessage\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e770300\u003c/td\u003e\u003ctd\u003eugc content not found\u003c/td\u003e\u003c/tr\u003e\u003c/table\u003e", "schema": { "$ref": "#/definitions/response.Error" } }, "500": { "description": "\u003ctable\u003e\u003ctr\u003e\u003ctd\u003eerrorCode\u003c/td\u003e\u003ctd\u003eerrorMessage\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e770301\u003c/td\u003e\u003ctd\u003eUnable to get ugc content/Unable to get creator\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e773201\u003c/td\u003e\u003ctd\u003eUnable to get ugc content/Unable to get creator/Unable to get included group\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e770303\u003c/td\u003e\u003ctd\u003eFailed generate download URL\u003c/td\u003e\u003c/tr\u003e\u003c/table\u003e", "schema": { "$ref": "#/definitions/response.Error" } } }, "security": [ { "authorization": [] } ], "summary": "Get content by sharecode", "tags": [ "Admin Content V2" ], "x-errorCodes": { "20001": "unauthorized access", "770300": "ugc content not found", "770301": "Unable to get ugc content/Unable to get creator", "770303": "Failed generate download URL", "773201": "Unable to get ugc content/Unable to get creator/Unable to get included group" }, "x-security": [ { "userPermissions": [ "ADMIN:NAMESPACE:{namespace}:USER:*:CONTENT [READ]" ] } ] } }, "/ugc/v2/admin/namespaces/{namespace}/contents/{contentId}": { "get": { "consumes": [ "application/json" ], "description": "Get content by content ID", "operationId": "AdminGetContentByContentIDV2", "parameters": [ { "description": "content ID", "in": "path", "name": "contentId", "required": true, "type": "string" }, { "description": "namespace of the game", "in": "path", "name": "namespace", "required": true, "type": "string" } ], "produces": [ "application/json" ], "responses": { "200": { "description": "Get content by content ID", "schema": { "$ref": "#/definitions/models.ContentDownloadResponseV2" } }, "401": { "description": "\u003ctable\u003e\u003ctr\u003e\u003ctd\u003eerrorCode\u003c/td\u003e\u003ctd\u003eerrorMessage\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e20001\u003c/td\u003e\u003ctd\u003eunauthorized access\u003c/td\u003e\u003c/tr\u003e\u003c/table\u003e", "schema": { "$ref": "#/definitions/response.Error" } }, "404": { "description": "\u003ctable\u003e\u003ctr\u003e\u003ctd\u003eerrorCode\u003c/td\u003e\u003ctd\u003eerrorMessage\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e773200\u003c/td\u003e\u003ctd\u003eugc content not found\u003c/td\u003e\u003c/tr\u003e\u003c/table\u003e", "schema": { "$ref": "#/definitions/response.Error" } }, "500": { "description": "\u003ctable\u003e\u003ctr\u003e\u003ctd\u003eerrorCode\u003c/td\u003e\u003ctd\u003eerrorMessage\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e773201\u003c/td\u003e\u003ctd\u003eUnable to get ugc content/Unable to get creator/Unable to get included group\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e770301\u003c/td\u003e\u003ctd\u003eUnable to get ugc content/Unable to get creator\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e773203\u003c/td\u003e\u003ctd\u003eFailed generate download URL\u003c/td\u003e\u003c/tr\u003e\u003c/table\u003e", "schema": { "$ref": "#/definitions/response.Error" } } }, "security": [ { "authorization": [] } ], "summary": "Get content by content ID", "tags": [ "Admin Content V2" ], "x-errorCodes": { "20001": "unauthorized access", "770301": "Unable to get ugc content/Unable to get creator", "773200": "ugc content not found", "773201": "Unable to get ugc content/Unable to get creator/Unable to get included group", "773203": "Failed generate download URL" }, "x-security": [ { "userPermissions": [ "ADMIN:NAMESPACE:{namespace}:USER:*:CONTENT [READ]" ] } ] } }, "/ugc/v2/admin/namespaces/{namespace}/contents/{contentId}/rollback/{versionId}": { "put": { "consumes": [ "*/*" ], "description": "Rollback content\u0026#39;s payload to specified version", "operationId": "RollbackContentVersionV2", "parameters": [ { "description": "content ID", "in": "path", "name": "contentId", "required": true, "type": "string" }, { "description": "namespace of the game", "in": "path", "name": "namespace", "required": true, "type": "string" }, { "description": "version ID", "in": "path", "name": "versionId", "required": true, "type": "string" } ], "produces": [ "application/json" ], "responses": { "200": { "description": "Rollback content's payload version", "schema": { "$ref": "#/definitions/models.ContentDownloadResponse" } }, "401": { "description": "\u003ctable\u003e\u003ctr\u003e\u003ctd\u003eerrorCode\u003c/td\u003e\u003ctd\u003eerrorMessage\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e20001\u003c/td\u003e\u003ctd\u003eunauthorized access\u003c/td\u003e\u003c/tr\u003e\u003c/table\u003e", "schema": { "$ref": "#/definitions/response.Error" } }, "404": { "description": "\u003ctable\u003e\u003ctr\u003e\u003ctd\u003eerrorCode\u003c/td\u003e\u003ctd\u003eerrorMessage\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e774101\u003c/td\u003e\u003ctd\u003eugc content not found\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e774102\u003c/td\u003e\u003ctd\u003eversion not found\u003c/td\u003e\u003c/tr\u003e\u003c/table\u003e", "schema": { "$ref": "#/definitions/response.Error" } }, "422": { "description": "\u003ctable\u003e\u003ctr\u003e\u003ctd\u003eerrorCode\u003c/td\u003e\u003ctd\u003eerrorMessage\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e774103\u003c/td\u003e\u003ctd\u003eunable to get ugc content/content cannot be restored using the current content version\u003c/td\u003e\u003c/tr\u003e\u003c/table\u003e", "schema": { "$ref": "#/definitions/response.Error" } }, "500": { "description": "\u003ctable\u003e\u003ctr\u003e\u003ctd\u003eerrorCode\u003c/td\u003e\u003ctd\u003eerrorMessage\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e774103\u003c/td\u003e\u003ctd\u003eunable to get ugc content/content cannot be restored using the current content version\u003c/td\u003e\u003c/tr\u003e\u003c/table\u003e", "schema": { "$ref": "#/definitions/response.Error" } } }, "security": [ { "authorization": [] } ], "summary": "Rollback content's payload version", "tags": [ "Admin Content V2" ], "x-errorCodes": { "20001": "unauthorized access", "774101": "ugc content not found", "774102": "version not found", "774103": "unable to get ugc content/content cannot be restored using the current content version" }, "x-security": [ { "userPermissions": [ "ADMIN:NAMESPACE:{namespace}:USER:{userId}:CONTENT [UPDATE]" ] } ] } }, "/ugc/v2/admin/namespaces/{namespace}/contents/{contentId}/screenshots": { "post": { "consumes": [ "application/json" ], "description": "This endpoint used to request upload URL from content\u0026#39;s screenshot. \nIf *contentType* is not specified, it will use *fileExtension* value.\nSupported file extensions: pjp, jpg, jpeg, jfif, bmp, png.\nMaximum description length: 1024", "operationId": "AdminUploadContentScreenshotV2", "parameters": [ { "in": "body", "name": "body", "required": true, "schema": { "$ref": "#/definitions/models.CreateScreenshotRequest" } }, { "description": "content ID", "in": "path", "name": "contentId", "required": true, "type": "string" }, { "description": "namespace of the game", "in": "path", "name": "namespace", "required": true, "type": "string" } ], "produces": [ "application/json" ], "responses": { "201": { "description": "Screenshot uploaded", "schema": { "$ref": "#/definitions/models.CreateScreenshotResponse" } }, "400": { "description": "\u003ctable\u003e\u003ctr\u003e\u003ctd\u003eerrorCode\u003c/td\u003e\u003ctd\u003eerrorMessage\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e772601\u003c/td\u003e\u003ctd\u003eMalformed request\u003c/td\u003e\u003c/tr\u003e\u003c/table\u003e", "schema": { "$ref": "#/definitions/response.Error" } }, "401": { "description": "\u003ctable\u003e\u003ctr\u003e\u003ctd\u003eerrorCode\u003c/td\u003e\u003ctd\u003eerrorMessage\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e20001\u003c/td\u003e\u003ctd\u003eunauthorized access\u003c/td\u003e\u003c/tr\u003e\u003c/table\u003e", "schema": { "$ref": "#/definitions/response.Error" } }, "403": { "description": "\u003ctable\u003e\u003ctr\u003e\u003ctd\u003eerrorCode\u003c/td\u003e\u003ctd\u003eerrorMessage\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e772604\u003c/td\u003e\u003ctd\u003eUser has been banned to update content\u003c/td\u003e\u003c/tr\u003e\u003c/table\u003e", "schema": { "$ref": "#/definitions/response.Error" } }, "404": { "description": "\u003ctable\u003e\u003ctr\u003e\u003ctd\u003eerrorCode\u003c/td\u003e\u003ctd\u003eerrorMessage\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e772603\u003c/td\u003e\u003ctd\u003eContent not found\u003c/td\u003e\u003c/tr\u003e\u003c/table\u003e", "schema": { "$ref": "#/definitions/response.Error" } }, "500": { "description": "\u003ctable\u003e\u003ctr\u003e\u003ctd\u003eerrorCode\u003c/td\u003e\u003ctd\u003eerrorMessage\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e772602\u003c/td\u003e\u003ctd\u003eUnable to check user ban status/Unable to get updated ugc content\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e772605\u003c/td\u003e\u003ctd\u003eUnable to save ugc content: failed generate upload URL\u003c/td\u003e\u003c/tr\u003e\u003c/table\u003e", "schema": { "$ref": "#/definitions/response.Error" } } }, "security": [ { "authorization": [] } ], "summary": "Upload screenshots for content", "tags": [ "Admin Content V2" ], "x-errorCodes": { "20001": "unauthorized access", "772601": "Malformed request", "772602": "Unable to check user ban status/Unable to get updated ugc content", "772603": "Content not found", "772604": "User has been banned to update content", "772605": "Unable to save ugc content: failed generate upload URL" }, "x-security": [ { "userPermissions": [ "ADMIN:NAMESPACE:{namespace}:USER:{userId}:CONTENT [CREATE]" ] } ] }, "put": { "consumes": [ "application/json" ], "description": "Maximum description length: 1024", "operationId": "AdminUpdateScreenshotsV2", "parameters": [ { "in": "body", "name": "body", "required": true, "schema": { "$ref": "#/definitions/models.UpdateScreenshotRequest" } }, { "description": "content ID", "in": "path", "name": "contentId", "required": true, "type": "string" }, { "description": "namespace of the game", "in": "path", "name": "namespace", "required": true, "type": "string" } ], "produces": [ "application/json" ], "responses": { "200": { "description": "Screenshot updated", "schema": { "$ref": "#/definitions/models.UpdateScreenshotResponse" } }, "400": { "description": "\u003ctable\u003e\u003ctr\u003e\u003ctd\u003eerrorCode\u003c/td\u003e\u003ctd\u003eerrorMessage\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e772601\u003c/td\u003e\u003ctd\u003eMalformed request\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e772602\u003c/td\u003e\u003ctd\u003eUnable to check user ban status/Unable to get updated ugc content\u003c/td\u003e\u003c/tr\u003e\u003c/table\u003e", "schema": { "$ref": "#/definitions/response.Error" } }, "401": { "description": "\u003ctable\u003e\u003ctr\u003e\u003ctd\u003eerrorCode\u003c/td\u003e\u003ctd\u003eerrorMessage\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e20001\u003c/td\u003e\u003ctd\u003eunauthorized access\u003c/td\u003e\u003c/tr\u003e\u003c/table\u003e", "schema": { "$ref": "#/definitions/response.Error" } }, "403": { "description": "\u003ctable\u003e\u003ctr\u003e\u003ctd\u003eerrorCode\u003c/td\u003e\u003ctd\u003eerrorMessage\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e772604\u003c/td\u003e\u003ctd\u003eUser has been banned to update content\u003c/td\u003e\u003c/tr\u003e\u003c/table\u003e", "schema": { "$ref": "#/definitions/response.Error" } }, "404": { "description": "\u003ctable\u003e\u003ctr\u003e\u003ctd\u003eerrorCode\u003c/td\u003e\u003ctd\u003eerrorMessage\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e772603\u003c/td\u003e\u003ctd\u003eContent not found\u003c/td\u003e\u003c/tr\u003e\u003c/table\u003e", "schema": { "$ref": "#/definitions/response.Error" } }, "500": { "description": "\u003ctable\u003e\u003ctr\u003e\u003ctd\u003eerrorCode\u003c/td\u003e\u003ctd\u003eerrorMessage\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e772602\u003c/td\u003e\u003ctd\u003eUnable to check user ban status/Unable to get updated ugc content\u003c/td\u003e\u003c/tr\u003e\u003c/table\u003e", "schema": { "$ref": "#/definitions/response.Error" } } }, "security": [ { "authorization": [] } ], "summary": "Update screenshot of content", "tags": [ "Admin Content V2" ], "x-errorCodes": { "20001": "unauthorized access", "772601": "Malformed request", "772602": "Unable to check user ban status/Unable to get updated ugc content", "772603": "Content not found", "772604": "User has been banned to update content" }, "x-security": [ { "userPermissions": [ "ADMIN:NAMESPACE:{namespace}:USER:{userId}:CONTENT [UPDATE]" ] } ] } }, "/ugc/v2/admin/namespaces/{namespace}/contents/{contentId}/screenshots/{screenshotId}": { "delete": { "consumes": [ "application/json" ], "description": "Delete screenshot from a content", "operationId": "AdminDeleteContentScreenshotV2", "parameters": [ { "description": "content ID", "in": "path", "name": "contentId", "required": true, "type": "string" }, { "description": "namespace of the game", "in": "path", "name": "namespace", "required": true, "type": "string" }, { "description": "screenshot ID", "in": "path", "name": "screenshotId", "required": true, "type": "string" } ], "produces": [ "application/json" ], "responses": { "204": { "description": "Screenshot deleted" }, "400": { "description": "\u003ctable\u003e\u003ctr\u003e\u003ctd\u003eerrorCode\u003c/td\u003e\u003ctd\u003eerrorMessage\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e772602\u003c/td\u003e\u003ctd\u003eUnable to check user ban status/Unable to get updated ugc content\u003c/td\u003e\u003c/tr\u003e\u003c/table\u003e", "schema": { "$ref": "#/definitions/response.Error" } }, "401": { "description": "\u003ctable\u003e\u003ctr\u003e\u003ctd\u003eerrorCode\u003c/td\u003e\u003ctd\u003eerrorMessage\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e20001\u003c/td\u003e\u003ctd\u003eunauthorized access\u003c/td\u003e\u003c/tr\u003e\u003c/table\u003e", "schema": { "$ref": "#/definitions/response.Error" } }, "403": { "description": "\u003ctable\u003e\u003ctr\u003e\u003ctd\u003eerrorCode\u003c/td\u003e\u003ctd\u003eerrorMessage\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e772604\u003c/td\u003e\u003ctd\u003eUser has been banned to update content\u003c/td\u003e\u003c/tr\u003e\u003c/table\u003e", "schema": { "$ref": "#/definitions/response.Error" } }, "404": { "description": "\u003ctable\u003e\u003ctr\u003e\u003ctd\u003eerrorCode\u003c/td\u003e\u003ctd\u003eerrorMessage\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e772603\u003c/td\u003e\u003ctd\u003eContent not found\u003c/td\u003e\u003c/tr\u003e\u003c/table\u003e", "schema": { "$ref": "#/definitions/response.Error" } }, "500": { "description": "\u003ctable\u003e\u003ctr\u003e\u003ctd\u003eerrorCode\u003c/td\u003e\u003ctd\u003eerrorMessage\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e772602\u003c/td\u003e\u003ctd\u003eUnable to check user ban status/Unable to get updated ugc content\u003c/td\u003e\u003c/tr\u003e\u003c/table\u003e", "schema": { "$ref": "#/definitions/response.Error" } } }, "security": [ { "authorization": [] } ], "summary": "Delete screenshots content", "tags": [ "Admin Content V2" ], "x-errorCodes": { "20001": "unauthorized access", "772602": "Unable to check user ban status/Unable to get updated ugc content", "772603": "Content not found", "772604": "User has been banned to update content" }, "x-security": [ { "userPermissions": [ "ADMIN:NAMESPACE:{namespace}:USER:{userId}:CONTENT [DELETE]" ] } ] } }, "/ugc/v2/admin/namespaces/{namespace}/contents/{contentId}/versions": { "get": { "consumes": [ "application/json" ], "description": "Content\u0026#39;s payload versions created when UGC is created or updated with \u0026lt;code\u0026gt;updateContentFile\u0026lt;/code\u0026gt; set to true. Only list up to 10 latest versions.", "operationId": "ListContentVersionsV2", "parameters": [ { "description": "content ID", "in": "path", "name": "contentId", "required": true, "type": "string" }, { "description": "namespace of the game", "in": "path", "name": "namespace", "required": true, "type": "string" } ], "produces": [ "application/json" ], "responses": { "200": { "description": "List content's payload verisions", "schema": { "$ref": "#/definitions/models.ListContentVersionsResponse" } }, "401": { "description": "\u003ctable\u003e\u003ctr\u003e\u003ctd\u003eerrorCode\u003c/td\u003e\u003ctd\u003eerrorMessage\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e20001\u003c/td\u003e\u003ctd\u003eunauthorized access\u003c/td\u003e\u003c/tr\u003e\u003c/table\u003e", "schema": { "$ref": "#/definitions/response.Error" } }, "404": { "description": "\u003ctable\u003e\u003ctr\u003e\u003ctd\u003eerrorCode\u003c/td\u003e\u003ctd\u003eerrorMessage\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e774004\u003c/td\u003e\u003ctd\u003eugc content not found\u003c/td\u003e\u003c/tr\u003e\u003c/table\u003e", "schema": { "$ref": "#/definitions/response.Error" } }, "500": { "description": "\u003ctable\u003e\u003ctr\u003e\u003ctd\u003eerrorCode\u003c/td\u003e\u003ctd\u003eerrorMessage\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e774005\u003c/td\u003e\u003ctd\u003eunable to get ugc content\u003c/td\u003e\u003c/tr\u003e\u003c/table\u003e", "schema": { "$ref": "#/definitions/response.Error" } } }, "security": [ { "authorization": [] } ], "summary": "List content's payload versions", "tags": [ "Admin Content V2" ], "x-errorCodes": { "20001": "unauthorized access", "774004": "ugc content not found", "774005": "unable to get ugc content" }, "x-security": [ { "userPermissions": [ "ADMIN:NAMESPACE:{namespace}:USER:{userId}:CONTENT [READ]" ] } ] } }, "/ugc/v2/admin/namespaces/{namespace}/groups/{groupId}/contents": { "get": { "consumes": [ "application/json" ], "description": "Get contents belong to a group", "operationId": "AdminGetOfficialGroupContentsV2", "parameters": [ { "description": "group ID", "in": "path", "name": "groupId", "required": true, "type": "string" }, { "description": "namespace of the game", "in": "path", "name": "namespace", "required": true, "type": "string" }, { "default": 20, "description": "number of content per page", "in": "query", "name": "limit", "type": "integer" }, { "default": 0, "description": "the offset number to retrieve", "in": "query", "name": "offset", "type": "integer" } ], "produces": [ "application/json" ], "responses": { "200": { "description": "Get contents belong to a group", "schema": { "$ref": "#/definitions/models.PaginatedContentDownloadResponseV2" } }, "400": { "description": "\u003ctable\u003e\u003ctr\u003e\u003ctd\u003eerrorCode\u003c/td\u003e\u003ctd\u003eerrorMessage\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e773101\u003c/td\u003e\u003ctd\u003einvalid paging parameter\u003c/td\u003e\u003c/tr\u003e\u003c/table\u003e", "schema": { "$ref": "#/definitions/response.Error" } }, "401": { "description": "\u003ctable\u003e\u003ctr\u003e\u003ctd\u003eerrorCode\u003c/td\u003e\u003ctd\u003eerrorMessage\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e20001\u003c/td\u003e\u003ctd\u003eunauthorized access\u003c/td\u003e\u003c/tr\u003e\u003c/table\u003e", "schema": { "$ref": "#/definitions/response.Error" } }, "404": { "description": "\u003ctable\u003e\u003ctr\u003e\u003ctd\u003eerrorCode\u003c/td\u003e\u003ctd\u003eerrorMessage\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e773103\u003c/td\u003e\u003ctd\u003eNo group content was found\u003c/td\u003e\u003c/tr\u003e\u003c/table\u003e", "schema": { "$ref": "#/definitions/response.Error" } }, "500": { "description": "\u003ctable\u003e\u003ctr\u003e\u003ctd\u003eerrorCode\u003c/td\u003e\u003ctd\u003eerrorMessage\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e773102\u003c/td\u003e\u003ctd\u003eUnable to get ugc content: database error\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e770901\u003c/td\u003e\u003ctd\u003eUnable to get ugc content: database error/Unable to get creator\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e770801\u003c/td\u003e\u003ctd\u003eUnable to get ugc content: database/Unable to get creator\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e770903\u003c/td\u003e\u003ctd\u003eFailed generate download URL\u003c/td\u003e\u003c/tr\u003e\u003c/table\u003e", "schema": { "$ref": "#/definitions/response.Error" } } }, "security": [ { "authorization": [] } ], "summary": "Get contents belong to a group", "tags": [ "Admin Group" ], "x-errorCodes": { "20001": "unauthorized access", "770801": "Unable to get ugc content: database/Unable to get creator", "770901": "Unable to get ugc content: database error/Unable to get creator", "770903": "Failed generate download URL", "773101": "invalid paging parameter", "773102": "Unable to get ugc content: database error", "773103": "No group content was found" }, "x-security": [ { "userPermissions": [ "ADMIN:NAMESPACE:{namespace}:USER:{userId}:CONTENT [READ]" ] } ] } }, "/ugc/v2/admin/namespaces/{namespace}/staging-contents": { "get": { "consumes": [ "application/json" ], "description": "List content that need admin\u0026#39;s approval", "operationId": "AdminListStagingContents", "parameters": [ { "description": "namespace of the game", "in": "path", "name": "namespace", "required": true, "type": "string" }, { "description": "number of configs per page", "in": "query", "name": "limit", "type": "integer" }, { "description": "offset number to retrieve", "in": "query", "name": "offset", "type": "integer" }, { "default": "createdTimed:desc", "description": "sort query result\navailable value:\n- createdTime\n- createdTime:desc\n- createdTime:asc\n- updatedTime\n- updatedTime:desc\n- updatedTime:asc", "in": "query", "name": "sortBy", "type": "string" }, { "description": "filter by content status [*PENDING*, *REJECTED*]", "in": "query", "name": "status", "type": "string" } ], "produces": [ "application/json" ], "responses": { "200": { "description": "list user's staging content", "schema": { "$ref": "#/definitions/models.PaginatedListStagingContentResponse" } }, "400": { "description": "\u003ctable\u003e\u003ctr\u003e\u003ctd\u003eerrorCode\u003c/td\u003e\u003ctd\u003eerrorMessage\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e774301\u003c/td\u003e\u003ctd\u003einvalid paging parameter\u003c/td\u003e\u003c/tr\u003e\u003c/table\u003e", "schema": { "$ref": "#/definitions/response.Error" } }, "401": { "description": "\u003ctable\u003e\u003ctr\u003e\u003ctd\u003eerrorCode\u003c/td\u003e\u003ctd\u003eerrorMessage\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e20001\u003c/td\u003e\u003ctd\u003eunauthorized access\u003c/td\u003e\u003c/tr\u003e\u003c/table\u003e", "schema": { "$ref": "#/definitions/response.Error" } }, "403": { "description": "\u003ctable\u003e\u003ctr\u003e\u003ctd\u003eerrorCode\u003c/td\u003e\u003ctd\u003eerrorMessage\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e20013\u003c/td\u003e\u003ctd\u003einsufficient permission\u003c/td\u003e\u003c/tr\u003e\u003c/table\u003e", "schema": { "$ref": "#/definitions/response.Error" } }, "500": { "description": "\u003ctable\u003e\u003ctr\u003e\u003ctd\u003eerrorCode\u003c/td\u003e\u003ctd\u003eerrorMessage\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e774302\u003c/td\u003e\u003ctd\u003eunable to get staging content\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e774303\u003c/td\u003e\u003ctd\u003eunable to generate presigned URL\u003c/td\u003e\u003c/tr\u003e\u003c/table\u003e", "schema": { "$ref": "#/definitions/response.Error" } } }, "security": [ { "authorization": [] } ], "summary": "List staging contents", "tags": [ "Admin Staging Content" ], "x-errorCodes": { "20001": "unauthorized access", "20013": "insufficient permission", "774301": "invalid paging parameter", "774302": "unable to get staging content", "774303": "unable to generate presigned URL" }, "x-security": [ { "userPermissions": [ "ADMIN:NAMESPACE:{namespace}:USER:{userId}:CONTENT [READ]" ] } ] } }, "/ugc/v2/admin/namespaces/{namespace}/staging-contents/{contentId}": { "get": { "consumes": [ "application/json" ], "description": "Get staging content by ID", "operationId": "AdminGetStagingContentByID", "parameters": [ { "description": "content ID", "in": "path", "name": "contentId", "required": true, "type": "string" }, { "description": "namespace of the game", "in": "path", "name": "namespace", "required": true, "type": "string" } ], "produces": [ "application/json" ], "responses": { "200": { "description": "staging content", "schema": { "$ref": "#/definitions/models.StagingContentResponse" } }, "401": { "description": "\u003ctable\u003e\u003ctr\u003e\u003ctd\u003eerrorCode\u003c/td\u003e\u003ctd\u003eerrorMessage\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e20001\u003c/td\u003e\u003ctd\u003eunauthorized access\u003c/td\u003e\u003c/tr\u003e\u003c/table\u003e", "schema": { "$ref": "#/definitions/response.Error" } }, "403": { "description": "\u003ctable\u003e\u003ctr\u003e\u003ctd\u003eerrorCode\u003c/td\u003e\u003ctd\u003eerrorMessage\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e20013\u003c/td\u003e\u003ctd\u003einsufficient permission\u003c/td\u003e\u003c/tr\u003e\u003c/table\u003e", "schema": { "$ref": "#/definitions/response.Error" } }, "404": { "description": "\u003ctable\u003e\u003ctr\u003e\u003ctd\u003eerrorCode\u003c/td\u003e\u003ctd\u003eerrorMessage\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e774401\u003c/td\u003e\u003ctd\u003estaging content not found\u003c/td\u003e\u003c/tr\u003e\u003c/table\u003e", "schema": { "$ref": "#/definitions/response.Error" } }, "500": { "description": "\u003ctable\u003e\u003ctr\u003e\u003ctd\u003eerrorCode\u003c/td\u003e\u003ctd\u003eerrorMessage\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e774402\u003c/td\u003e\u003ctd\u003eunable to get staging content\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e774403\u003c/td\u003e\u003ctd\u003eunable to generate presigned URL\u003c/td\u003e\u003c/tr\u003e\u003c/table\u003e", "schema": { "$ref": "#/definitions/response.Error" } } }, "security": [ { "authorization": [] } ], "summary": "Get staging content by id", "tags": [ "Admin Staging Content" ], "x-errorCodes": { "20001": "unauthorized access", "20013": "insufficient permission", "774401": "staging content not found", "774402": "unable to get staging content", "774403": "unable to generate presigned URL" }, "x-security": [ { "userPermissions": [ "ADMIN:NAMESPACE:{namespace}:USER:{userId}:CONTENT [READ]" ] } ] } }, "/ugc/v2/admin/namespaces/{namespace}/staging-contents/{contentId}/approve": { "post": { "consumes": [ "application/json" ], "description": "Approved content will shown to public player. Rejected content stays in staging area and couldn\u0026#39;t be seen by other player", "operationId": "AdminApproveStagingContent", "parameters": [ { "in": "body", "name": "body", "required": true, "schema": { "$ref": "#/definitions/models.ApproveStagingContentRequest" } }, { "description": "content ID", "in": "path", "name": "contentId", "required": true, "type": "string" }, { "description": "namespace of the game", "in": "path", "name": "namespace", "required": true, "type": "string" } ], "produces": [ "application/json" ], "responses": { "200": { "description": "content approval created", "schema": { "$ref": "#/definitions/models.StagingContentResponse" } }, "400": { "description": "\u003ctable\u003e\u003ctr\u003e\u003ctd\u003eerrorCode\u003c/td\u003e\u003ctd\u003eerrorMessage\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e774405\u003c/td\u003e\u003ctd\u003eInvalid request body\u003c/td\u003e\u003c/tr\u003e\u003c/table\u003e", "schema": { "$ref": "#/definitions/response.Error" } }, "401": { "description": "\u003ctable\u003e\u003ctr\u003e\u003ctd\u003eerrorCode\u003c/td\u003e\u003ctd\u003eerrorMessage\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e20001\u003c/td\u003e\u003ctd\u003eunauthorized access\u003c/td\u003e\u003c/tr\u003e\u003c/table\u003e", "schema": { "$ref": "#/definitions/response.Error" } }, "403": { "description": "\u003ctable\u003e\u003ctr\u003e\u003ctd\u003eerrorCode\u003c/td\u003e\u003ctd\u003eerrorMessage\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e20013\u003c/td\u003e\u003ctd\u003einsufficient permission\u003c/td\u003e\u003c/tr\u003e\u003c/table\u003e", "schema": { "$ref": "#/definitions/response.Error" } }, "404": { "description": "\u003ctable\u003e\u003ctr\u003e\u003ctd\u003eerrorCode\u003c/td\u003e\u003ctd\u003eerrorMessage\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e774406\u003c/td\u003e\u003ctd\u003estaging content not found\u003c/td\u003e\u003c/tr\u003e\u003c/table\u003e", "schema": { "$ref": "#/definitions/response.Error" } }, "500": { "description": "\u003ctable\u003e\u003ctr\u003e\u003ctd\u003eerrorCode\u003c/td\u003e\u003ctd\u003eerrorMessage\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e774407\u003c/td\u003e\u003ctd\u003eunable to approve staging content\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e774408\u003c/td\u003e\u003ctd\u003enable to save ugc content: shareCode exceed the limit\u003c/td\u003e\u003c/tr\u003e\u003c/table\u003e", "schema": { "$ref": "#/definitions/response.Error" } } }, "security": [ { "authorization": [] } ], "summary": "Approve or reject content", "tags": [ "Admin Staging Content" ], "x-errorCodes": { "20001": "unauthorized access", "20013": "insufficient permission", "774405": "Invalid request body", "774406": "staging content not found", "774407": "unable to approve staging content", "774408": "nable to save ugc content: shareCode exceed the limit" }, "x-security": [ { "userPermissions": [ "ADMIN:NAMESPACE:{namespace}:CONTENT:APPROVAL [CREATE]" ] } ] } }, "/ugc/v2/admin/namespaces/{namespace}/users/{userId}/channels/{channelId}/contents/s3/sharecodes/{shareCode}": { "put": { "consumes": [ "application/json" ], "description": "*shareCode* format should follows: \n\n\t\t\t\t\u0026#34;Max length: 7\n\t\t\t\t\u0026#34;Available characters: abcdefhkpqrstuxyz", "operationId": "AdminUpdateContentByShareCodeV2", "parameters": [ { "in": "body", "name": "body", "required": true, "schema": { "$ref": "#/definitions/models.AdminUpdateContentRequestV2" } }, { "description": "channel ID", "in": "path", "name": "channelId", "required": true, "type": "string" }, { "description": "namespace of the game", "in": "path", "name": "namespace", "required": true, "type": "string" }, { "description": "share code", "in": "path", "name": "shareCode", "required": true, "type": "string" }, { "description": "user ID", "in": "path", "name": "userId", "required": true, "type": "string" } ], "produces": [ "application/json" ], "responses": { "200": { "description": "content udpated at s3", "schema": { "$ref": "#/definitions/models.CreateContentResponseV2" } }, "400": { "description": "\u003ctable\u003e\u003ctr\u003e\u003ctd\u003eerrorCode\u003c/td\u003e\u003ctd\u003eerrorMessage\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e772601\u003c/td\u003e\u003ctd\u003eMalformed request\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e770107\u003c/td\u003e\u003ctd\u003eUnable to update ugc content: invalid shareCode format\u003c/td\u003e\u003c/tr\u003e\u003c/table\u003e", "schema": { "$ref": "#/definitions/response.Error" } }, "401": { "description": "\u003ctable\u003e\u003ctr\u003e\u003ctd\u003eerrorCode\u003c/td\u003e\u003ctd\u003eerrorMessage\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e20001\u003c/td\u003e\u003ctd\u003eunauthorized access\u003c/td\u003e\u003c/tr\u003e\u003c/table\u003e", "schema": { "$ref": "#/definitions/response.Error" } }, "403": { "description": "\u003ctable\u003e\u003ctr\u003e\u003ctd\u003eerrorCode\u003c/td\u003e\u003ctd\u003eerrorMessage\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e772604\u003c/td\u003e\u003ctd\u003eUser has been banned to update content\u003c/td\u003e\u003c/tr\u003e\u003c/table\u003e", "schema": { "$ref": "#/definitions/response.Error" } }, "404": { "description": "\u003ctable\u003e\u003ctr\u003e\u003ctd\u003eerrorCode\u003c/td\u003e\u003ctd\u003eerrorMessage\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e772603\u003c/td\u003e\u003ctd\u003eContent not found\u003c/td\u003e\u003c/tr\u003e\u003c/table\u003e", "schema": { "$ref": "#/definitions/response.Error" } }, "409": { "description": "\u003ctable\u003e\u003ctr\u003e\u003ctd\u003eerrorCode\u003c/td\u003e\u003ctd\u003eerrorMessage\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e772606\u003c/td\u003e\u003ctd\u003eShare code already used\u003c/td\u003e\u003c/tr\u003e\u003c/table\u003e", "schema": { "$ref": "#/definitions/response.Error" } }, "500": { "description": "\u003ctable\u003e\u003ctr\u003e\u003ctd\u003eerrorCode\u003c/td\u003e\u003ctd\u003eerrorMessage\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e772602\u003c/td\u003e\u003ctd\u003eUnable to check user ban status/Unable to get updated ugc content\u003c/td\u003e\u003c/tr\u003e\u003c/table\u003e", "schema": { "$ref": "#/definitions/response.Error" } } }, "security": [ { "authorization": [] } ], "summary": "Update content to S3 bucket by share code", "tags": [ "Admin Content V2" ], "x-errorCodes": { "20001": "unauthorized access", "770107": "Unable to update ugc content: invalid shareCode format", "772601": "Malformed request", "772602": "Unable to check user ban status/Unable to get updated ugc content", "772603": "Content not found", "772604": "User has been banned to update content", "772606": "Share code already used" }, "x-security": [ { "userPermissions": [ "ADMIN:NAMESPACE:{namespace}:USER:{userId}:CONTENT [UPDATE]" ] } ] } }, "/ugc/v2/admin/namespaces/{namespace}/users/{userId}/channels/{channelId}/contents/sharecodes/{shareCode}": { "delete": { "consumes": [ "application/json" ], "description": "Delete content by share code", "operationId": "AdminDeleteContentByShareCodeV2", "parameters": [ { "description": "channel ID", "in": "path", "name": "channelId", "required": true, "type": "string" }, { "description": "namespace of the game", "in": "path", "name": "namespace", "required": true, "type": "string" }, { "description": "share code", "in": "path", "name": "shareCode", "required": true, "type": "string" }, { "description": "user ID", "in": "path", "name": "userId", "required": true, "type": "string" } ], "produces": [ "application/json" ], "responses": { "204": { "description": "content deleted" }, "401": { "description": "\u003ctable\u003e\u003ctr\u003e\u003ctd\u003eerrorCode\u003c/td\u003e\u003ctd\u003eerrorMessage\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e20001\u003c/td\u003e\u003ctd\u003eunauthorized access\u003c/td\u003e\u003c/tr\u003e\u003c/table\u003e", "schema": { "$ref": "#/definitions/response.Error" } }, "404": { "description": "\u003ctable\u003e\u003ctr\u003e\u003ctd\u003eerrorCode\u003c/td\u003e\u003ctd\u003eerrorMessage\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e772702\u003c/td\u003e\u003ctd\u003eContent not found\u003c/td\u003e\u003c/tr\u003e\u003c/table\u003e", "schema": { "$ref": "#/definitions/response.Error" } }, "500": { "description": "\u003ctable\u003e\u003ctr\u003e\u003ctd\u003eerrorCode\u003c/td\u003e\u003ctd\u003eerrorMessage\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e772701\u003c/td\u003e\u003ctd\u003eUnable to delete content/Unable to update user liked count/Unable to delete like state/Unable to delete like state\u003c/td\u003e\u003c/tr\u003e\u003c/table\u003e", "schema": { "$ref": "#/definitions/response.Error" } } }, "security": [ { "authorization": [] } ], "summary": "Delete content by share code", "tags": [ "Admin Content V2" ], "x-errorCodes": { "20001": "unauthorized access", "772701": "Unable to delete content/Unable to update user liked count/Unable to delete like state/Unable to delete like state", "772702": "Content not found" }, "x-security": [ { "userPermissions": [ "ADMIN:NAMESPACE:{namespace}:USER:{userId}:CONTENT [DELETE]" ] } ] } }, "/ugc/v2/admin/namespaces/{namespace}/users/{userId}/channels/{channelId}/contents/{contentId}": { "delete": { "consumes": [ "application/json" ], "description": "Delete user content by content ID", "operationId": "AdminDeleteUserContentV2", "parameters": [ { "description": "channel ID", "in": "path", "name": "channelId", "required": true, "type": "string" }, { "description": "content ID", "in": "path", "name": "contentId", "required": true, "type": "string" }, { "description": "namespace of the game", "in": "path", "name": "namespace", "required": true, "type": "string" }, { "description": "user ID", "in": "path", "name": "userId", "required": true, "type": "string" } ], "produces": [ "application/json" ], "responses": { "204": { "description": "User content deleted" }, "401": { "description": "\u003ctable\u003e\u003ctr\u003e\u003ctd\u003eerrorCode\u003c/td\u003e\u003ctd\u003eerrorMessage\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e20001\u003c/td\u003e\u003ctd\u003eunauthorized access\u003c/td\u003e\u003c/tr\u003e\u003c/table\u003e", "schema": { "$ref": "#/definitions/response.Error" } }, "404": { "description": "\u003ctable\u003e\u003ctr\u003e\u003ctd\u003eerrorCode\u003c/td\u003e\u003ctd\u003eerrorMessage\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e772702\u003c/td\u003e\u003ctd\u003eContent not found\u003c/td\u003e\u003c/tr\u003e\u003c/table\u003e", "schema": { "$ref": "#/definitions/response.Error" } }, "500": { "description": "\u003ctable\u003e\u003ctr\u003e\u003ctd\u003eerrorCode\u003c/td\u003e\u003ctd\u003eerrorMessage\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e772701\u003c/td\u003e\u003ctd\u003eUnable to delete content/Unable to update user liked count/Unable to delete like state/Unable to delete like state\u003c/td\u003e\u003c/tr\u003e\u003c/table\u003e", "schema": { "$ref": "#/definitions/response.Error" } } }, "security": [ { "authorization": [] } ], "summary": "Delete user content", "tags": [ "Admin Content V2" ], "x-errorCodes": { "20001": "unauthorized access", "772701": "Unable to delete content/Unable to update user liked count/Unable to delete like state/Unable to delete like state", "772702": "Content not found" }, "x-security": [ { "userPermissions": [ "ADMIN:NAMESPACE:{namespace}:USER:{userId}:CONTENT [DELETE]" ] } ] }, "patch": { "consumes": [ "application/json" ], "description": "Update existing user content", "operationId": "AdminUpdateUserContentV2", "parameters": [ { "in": "body", "name": "body", "required": true, "schema": { "$ref": "#/definitions/models.AdminUpdateContentRequestV2" } }, { "description": "channel ID", "in": "path", "name": "channelId", "required": true, "type": "string" }, { "description": "content ID", "in": "path", "name": "contentId", "required": true, "type": "string" }, { "description": "namespace of the game", "in": "path", "name": "namespace", "required": true, "type": "string" }, { "description": "user ID", "in": "path", "name": "userId", "required": true, "type": "string" } ], "produces": [ "application/json" ], "responses": { "200": { "description": "Update user content", "schema": { "$ref": "#/definitions/models.UpdateContentResponseV2" } }, "400": { "description": "\u003ctable\u003e\u003ctr\u003e\u003ctd\u003eerrorCode\u003c/td\u003e\u003ctd\u003eerrorMessage\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e772601\u003c/td\u003e\u003ctd\u003eMalformed request\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e772607\u003c/td\u003e\u003ctd\u003eUnable to update ugc content: invalid shareCode format\u003c/td\u003e\u003c/tr\u003e\u003c/table\u003e", "schema": { "$ref": "#/definitions/response.Error" } }, "401": { "description": "\u003ctable\u003e\u003ctr\u003e\u003ctd\u003eerrorCode\u003c/td\u003e\u003ctd\u003eerrorMessage\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e20001\u003c/td\u003e\u003ctd\u003eunauthorized access\u003c/td\u003e\u003c/tr\u003e\u003c/table\u003e", "schema": { "$ref": "#/definitions/response.Error" } }, "404": { "description": "\u003ctable\u003e\u003ctr\u003e\u003ctd\u003eerrorCode\u003c/td\u003e\u003ctd\u003eerrorMessage\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e772603\u003c/td\u003e\u003ctd\u003eContent not found\u003c/td\u003e\u003c/tr\u003e\u003c/table\u003e", "schema": { "$ref": "#/definitions/response.Error" } }, "409": { "description": "\u003ctable\u003e\u003ctr\u003e\u003ctd\u003eerrorCode\u003c/td\u003e\u003ctd\u003eerrorMessage\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e772606\u003c/td\u003e\u003ctd\u003eShare code already used\u003c/td\u003e\u003c/tr\u003e\u003c/table\u003e", "schema": { "$ref": "#/definitions/response.Error" } }, "500": { "description": "\u003ctable\u003e\u003ctr\u003e\u003ctd\u003eerrorCode\u003c/td\u003e\u003ctd\u003eerrorMessage\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e772602\u003c/td\u003e\u003ctd\u003eUnable to check user ban status/Unable to get updated ugc content\u003c/td\u003e\u003c/tr\u003e\u003c/table\u003e", "schema": { "$ref": "#/definitions/response.Error" } } }, "security": [ { "authorization": [] } ], "summary": "Update user content", "tags": [ "Admin Content V2" ], "x-errorCodes": { "20001": "unauthorized access", "772601": "Malformed request", "772602": "Unable to check user ban status/Unable to get updated ugc content", "772603": "Content not found", "772606": "Share code already used", "772607": "Unable to update ugc content: invalid shareCode format" }, "x-security": [ { "userPermissions": [ "ADMIN:NAMESPACE:{namespace}:USER:{userId}:CONTENT [UPDATE]" ] } ] } }, "/ugc/v2/admin/namespaces/{namespace}/users/{userId}/channels/{channelId}/contents/{contentId}/fileLocation": { "patch": { "consumes": [ "application/json" ], "description": "This endpoint should be used after calling generate user content upload url endpoint to commit the changes", "operationId": "AdminUpdateUserContentFileLocation", "parameters": [ { "in": "body", "name": "body", "required": true, "schema": { "$ref": "#/definitions/models.UpdateFileLocationRequest" } }, { "description": "channel ID", "in": "path", "name": "channelId", "required": true, "type": "string" }, { "description": "content ID", "in": "path", "name": "contentId", "required": true, "type": "string" }, { "description": "namespace of the game", "in": "path", "name": "namespace", "required": true, "type": "string" }, { "description": "user ID", "in": "path", "name": "userId", "required": true, "type": "string" } ], "produces": [ "application/json" ], "responses": { "200": { "description": "Update user content file location", "schema": { "$ref": "#/definitions/models.UpdateContentResponseV2" } }, "400": { "description": "\u003ctable\u003e\u003ctr\u003e\u003ctd\u003eerrorCode\u003c/td\u003e\u003ctd\u003eerrorMessage\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e774001\u003c/td\u003e\u003ctd\u003eunable to read response body/unable to update file location\u003c/td\u003e\u003c/tr\u003e\u003c/table\u003e", "schema": { "$ref": "#/definitions/response.Error" } }, "401": { "description": "\u003ctable\u003e\u003ctr\u003e\u003ctd\u003eerrorCode\u003c/td\u003e\u003ctd\u003eerrorMessage\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e20001\u003c/td\u003e\u003ctd\u003eunauthorized access\u003c/td\u003e\u003c/tr\u003e\u003c/table\u003e", "schema": { "$ref": "#/definitions/response.Error" } }, "403": { "description": "\u003ctable\u003e\u003ctr\u003e\u003ctd\u003eerrorCode\u003c/td\u003e\u003ctd\u003eerrorMessage\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e20013\u003c/td\u003e\u003ctd\u003einsufficient permission\u003c/td\u003e\u003c/tr\u003e\u003c/table\u003e", "schema": { "$ref": "#/definitions/response.Error" } }, "404": { "description": "\u003ctable\u003e\u003ctr\u003e\u003ctd\u003eerrorCode\u003c/td\u003e\u003ctd\u003eerrorMessage\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e774002\u003c/td\u003e\u003ctd\u003eunable to update content file location: content not found\u003c/td\u003e\u003c/tr\u003e\u003c/table\u003e", "schema": { "$ref": "#/definitions/response.Error" } }, "500": { "description": "\u003ctable\u003e\u003ctr\u003e\u003ctd\u003eerrorCode\u003c/td\u003e\u003ctd\u003eerrorMessage\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e774003\u003c/td\u003e\u003ctd\u003eunable to update content file location\u003c/td\u003e\u003c/tr\u003e\u003c/table\u003e", "schema": { "$ref": "#/definitions/response.Error" } } }, "security": [ { "authorization": [] } ], "summary": "Update user content file location", "tags": [ "Admin Content V2" ], "x-errorCodes": { "20001": "unauthorized access", "20013": "insufficient permission", "774001": "unable to read response body/unable to update file location", "774002": "unable to update content file location: content not found", "774003": "unable to update content file location" }, "x-security": [ { "userPermissions": [ "ADMIN:NAMESPACE:{namespace}:USER:{userId}:CONTENT [UPDATE]" ] } ] } }, "/ugc/v2/admin/namespaces/{namespace}/users/{userId}/channels/{channelId}/contents/{contentId}/uploadUrl": { "patch": { "consumes": [ "application/json" ], "description": "generate user content upload URL", "operationId": "AdminGenerateUserContentUploadURLV2", "parameters": [ { "in": "body", "name": "body", "required": true, "schema": { "$ref": "#/definitions/models.GenerateContentUploadURLRequest" } }, { "description": "channel ID", "in": "path", "name": "channelId", "required": true, "type": "string" }, { "description": "content ID", "in": "path", "name": "contentId", "required": true, "type": "string" }, { "description": "namespace of the game", "in": "path", "name": "namespace", "required": true, "type": "string" }, { "description": "user ID", "in": "path", "name": "userId", "required": true, "type": "string" } ], "produces": [ "application/json" ], "responses": { "200": { "description": "User content upload URL generated", "schema": { "$ref": "#/definitions/models.GenerateContentUploadURLResponse" } }, "400": { "description": "\u003ctable\u003e\u003ctr\u003e\u003ctd\u003eerrorCode\u003c/td\u003e\u003ctd\u003eerrorMessage\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e772601\u003c/td\u003e\u003ctd\u003eMalformed request\u003c/td\u003e\u003c/tr\u003e\u003c/table\u003e", "schema": { "$ref": "#/definitions/response.Error" } }, "401": { "description": "\u003ctable\u003e\u003ctr\u003e\u003ctd\u003eerrorCode\u003c/td\u003e\u003ctd\u003eerrorMessage\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e20001\u003c/td\u003e\u003ctd\u003eunauthorized access\u003c/td\u003e\u003c/tr\u003e\u003c/table\u003e", "schema": { "$ref": "#/definitions/response.Error" } }, "404": { "description": "\u003ctable\u003e\u003ctr\u003e\u003ctd\u003eerrorCode\u003c/td\u003e\u003ctd\u003eerrorMessage\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e772603\u003c/td\u003e\u003ctd\u003eContent not found\u003c/td\u003e\u003c/tr\u003e\u003c/table\u003e", "schema": { "$ref": "#/definitions/response.Error" } }, "500": { "description": "\u003ctable\u003e\u003ctr\u003e\u003ctd\u003eerrorCode\u003c/td\u003e\u003ctd\u003eerrorMessage\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e772602\u003c/td\u003e\u003ctd\u003eUnable to check user ban status/Unable to get updated ugc content\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e772605\u003c/td\u003e\u003ctd\u003eUnable to save ugc content: failed generate upload URL\u003c/td\u003e\u003c/tr\u003e\u003c/table\u003e", "schema": { "$ref": "#/definitions/response.Error" } } }, "security": [ { "authorization": [] } ], "summary": "Generate user content upload URL", "tags": [ "Admin Content V2" ], "x-errorCodes": { "20001": "unauthorized access", "772601": "Malformed request", "772602": "Unable to check user ban status/Unable to get updated ugc content", "772603": "Content not found", "772605": "Unable to save ugc content: failed generate upload URL" }, "x-security": [ { "userPermissions": [ "ADMIN:NAMESPACE:{namespace}:USER:{userId}:CONTENT [UPDATE]" ] } ] } }, "/ugc/v2/admin/namespaces/{namespace}/users/{userId}/contents": { "get": { "consumes": [ "application/json" ], "description": "Get user cotent", "operationId": "AdminGetContentByUserIDV2", "parameters": [ { "description": "namespace of the game", "in": "path", "name": "namespace", "required": true, "type": "string" }, { "description": "user ID", "in": "path", "name": "userId", "required": true, "type": "string" }, { "default": 20, "description": "number of content per page", "in": "query", "name": "limit", "type": "integer" }, { "default": 0, "description": "the offset number to retrieve", "in": "query", "name": "offset", "type": "integer" }, { "default": "createdTime:desc", "description": "available values:\n\t\t\t\t- *createdTime*\n\t\t\t\t- *createdTime:desc*\n\t\t\t\t- *createdTime:asc*", "in": "query", "name": "sortBy", "type": "string" } ], "produces": [ "application/json" ], "responses": { "200": { "description": "Get user's generated contents", "schema": { "$ref": "#/definitions/models.PaginatedContentDownloadResponseV2" } }, "400": { "description": "\u003ctable\u003e\u003ctr\u003e\u003ctd\u003eerrorCode\u003c/td\u003e\u003ctd\u003eerrorMessage\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e770900\u003c/td\u003e\u003ctd\u003einvalid paging parameter\u003c/td\u003e\u003c/tr\u003e\u003c/table\u003e", "schema": { "$ref": "#/definitions/response.Error" } }, "401": { "description": "\u003ctable\u003e\u003ctr\u003e\u003ctd\u003eerrorCode\u003c/td\u003e\u003ctd\u003eerrorMessage\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e20001\u003c/td\u003e\u003ctd\u003eunauthorized access\u003c/td\u003e\u003c/tr\u003e\u003c/table\u003e", "schema": { "$ref": "#/definitions/response.Error" } }, "500": { "description": "\u003ctable\u003e\u003ctr\u003e\u003ctd\u003eerrorCode\u003c/td\u003e\u003ctd\u003eerrorMessage\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e770901\u003c/td\u003e\u003ctd\u003eUnable to get ugc content: database error/Unable to get creator\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e770801\u003c/td\u003e\u003ctd\u003eUnable to get ugc content: database/Unable to get creator\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e770903\u003c/td\u003e\u003ctd\u003eFailed generate download URL\u003c/td\u003e\u003c/tr\u003e\u003c/table\u003e", "schema": { "$ref": "#/definitions/response.Error" } } }, "security": [ { "authorization": [] } ], "summary": "Get user's generated contents", "tags": [ "Admin Content V2" ], "x-errorCodes": { "20001": "unauthorized access", "770801": "Unable to get ugc content: database/Unable to get creator", "770900": "invalid paging parameter", "770901": "Unable to get ugc content: database error/Unable to get creator", "770903": "Failed generate download URL" }, "x-security": [ { "userPermissions": [ "ADMIN:NAMESPACE:{namespace}:USER:{userId}:CONTENT [READ]" ] } ] } }, "/ugc/v2/admin/namespaces/{namespace}/users/{userId}/contents/{contentId}/hide": { "put": { "consumes": [ "application/json" ], "description": "Hide/Unhide user\u0026#39;s generated contents", "operationId": "AdminUpdateContentHideStatusV2", "parameters": [ { "in": "body", "name": "body", "required": true, "schema": { "$ref": "#/definitions/models.HideContentRequest" } }, { "description": "content ID", "in": "path", "name": "contentId", "required": true, "type": "string" }, { "description": "namespace of the game", "in": "path", "name": "namespace", "required": true, "type": "string" }, { "description": "user ID", "in": "path", "name": "userId", "required": true, "type": "string" } ], "produces": [ "application/json" ], "responses": { "200": { "description": "Hide/UnHide user's generated content", "schema": { "$ref": "#/definitions/models.CreateContentResponseV2" } }, "400": { "description": "\u003ctable\u003e\u003ctr\u003e\u003ctd\u003eerrorCode\u003c/td\u003e\u003ctd\u003eerrorMessage\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e773801\u003c/td\u003e\u003ctd\u003eInvalid request body/Malformed request\u003c/td\u003e\u003c/tr\u003e\u003c/table\u003e", "schema": { "$ref": "#/definitions/response.Error" } }, "401": { "description": "\u003ctable\u003e\u003ctr\u003e\u003ctd\u003eerrorCode\u003c/td\u003e\u003ctd\u003eerrorMessage\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e20001\u003c/td\u003e\u003ctd\u003eunauthorized access\u003c/td\u003e\u003c/tr\u003e\u003c/table\u003e", "schema": { "$ref": "#/definitions/response.Error" } }, "403": { "description": "\u003ctable\u003e\u003ctr\u003e\u003ctd\u003eerrorCode\u003c/td\u003e\u003ctd\u003eerrorMessage\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e20013\u003c/td\u003e\u003ctd\u003einsufficient permission\u003c/td\u003e\u003c/tr\u003e\u003c/table\u003e", "schema": { "$ref": "#/definitions/response.Error" } }, "404": { "description": "\u003ctable\u003e\u003ctr\u003e\u003ctd\u003eerrorCode\u003c/td\u003e\u003ctd\u003eerrorMessage\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e773803\u003c/td\u003e\u003ctd\u003eUnable to update hide status: content not found\u003c/td\u003e\u003c/tr\u003e\u003c/table\u003e", "schema": { "$ref": "#/definitions/response.Error" } }, "500": { "description": "\u003ctable\u003e\u003ctr\u003e\u003ctd\u003eerrorCode\u003c/td\u003e\u003ctd\u003eerrorMessage\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e773802\u003c/td\u003e\u003ctd\u003eUnable to update hide status: database error\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e773804\u003c/td\u003e\u003ctd\u003eUnable to save ugc content: failed generate upload URL\u003c/td\u003e\u003c/tr\u003e\u003c/table\u003e", "schema": { "$ref": "#/definitions/response.Error" } } }, "security": [ { "authorization": [] } ], "summary": "Hide/Unhide user's generated contents", "tags": [ "Admin Content V2" ], "x-errorCodes": { "20001": "unauthorized access", "20013": "insufficient permission", "773801": "Invalid request body/Malformed request", "773802": "Unable to update hide status: database error", "773803": "Unable to update hide status: content not found", "773804": "Unable to save ugc content: failed generate upload URL" }, "x-security": [ { "userPermissions": [ "ADMIN:NAMESPACE:{namespace}:USER:{userId}:CONTENT [UPDATE]" ] } ] } }, "/ugc/v2/admin/namespaces/{namespace}/users/{userId}/groups/{groupId}/contents": { "get": { "consumes": [ "application/json" ], "description": "Get contents belong to a group", "operationId": "AdminGetUserGroupContentsV2", "parameters": [ { "description": "group ID", "in": "path", "name": "groupId", "required": true, "type": "string" }, { "description": "namespace of the game", "in": "path", "name": "namespace", "required": true, "type": "string" }, { "description": "user ID", "in": "path", "name": "userId", "required": true, "type": "string" }, { "default": 20, "description": "number of content per page", "in": "query", "name": "limit", "type": "integer" }, { "default": 0, "description": "the offset number to retrieve", "in": "query", "name": "offset", "type": "integer" } ], "produces": [ "application/json" ], "responses": { "200": { "description": "Get contents belong to a group", "schema": { "$ref": "#/definitions/models.PaginatedContentDownloadResponseV2" } }, "400": { "description": "\u003ctable\u003e\u003ctr\u003e\u003ctd\u003eerrorCode\u003c/td\u003e\u003ctd\u003eerrorMessage\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e773101\u003c/td\u003e\u003ctd\u003einvalid paging parameter\u003c/td\u003e\u003c/tr\u003e\u003c/table\u003e", "schema": { "$ref": "#/definitions/response.Error" } }, "401": { "description": "\u003ctable\u003e\u003ctr\u003e\u003ctd\u003eerrorCode\u003c/td\u003e\u003ctd\u003eerrorMessage\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e20001\u003c/td\u003e\u003ctd\u003eunauthorized access\u003c/td\u003e\u003c/tr\u003e\u003c/table\u003e", "schema": { "$ref": "#/definitions/response.Error" } }, "404": { "description": "\u003ctable\u003e\u003ctr\u003e\u003ctd\u003eerrorCode\u003c/td\u003e\u003ctd\u003eerrorMessage\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e773103\u003c/td\u003e\u003ctd\u003eNo group content was found\u003c/td\u003e\u003c/tr\u003e\u003c/table\u003e", "schema": { "$ref": "#/definitions/response.Error" } }, "500": { "description": "\u003ctable\u003e\u003ctr\u003e\u003ctd\u003eerrorCode\u003c/td\u003e\u003ctd\u003eerrorMessage\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e773102\u003c/td\u003e\u003ctd\u003eUnable to get ugc content: database error\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e770901\u003c/td\u003e\u003ctd\u003eUnable to get ugc content: database error/Unable to get creator\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e770801\u003c/td\u003e\u003ctd\u003eUnable to get ugc content: database/Unable to get creator\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e770903\u003c/td\u003e\u003ctd\u003eFailed generate download URL\u003c/td\u003e\u003c/tr\u003e\u003c/table\u003e", "schema": { "$ref": "#/definitions/response.Error" } } }, "security": [ { "authorization": [] } ], "summary": "Get contents belong to a group", "tags": [ "Admin Group" ], "x-errorCodes": { "20001": "unauthorized access", "770801": "Unable to get ugc content: database/Unable to get creator", "770901": "Unable to get ugc content: database error/Unable to get creator", "770903": "Failed generate download URL", "773101": "invalid paging parameter", "773102": "Unable to get ugc content: database error", "773103": "No group content was found" }, "x-security": [ { "userPermissions": [ "ADMIN:NAMESPACE:{namespace}:USER:{userId}:CONTENT [READ]" ] } ] } }, "/ugc/v2/admin/namespaces/{namespace}/users/{userId}/staging-contents": { "get": { "consumes": [ "application/json" ], "description": "List user content\u0026#39;s that need admin approval", "operationId": "AdminListUserStagingContents", "parameters": [ { "description": "namespace of the game", "in": "path", "name": "namespace", "required": true, "type": "string" }, { "description": "user ID", "in": "path", "name": "userId", "required": true, "type": "string" }, { "description": "number of configs per page", "in": "query", "name": "limit", "type": "integer" }, { "description": "offset number to retrieve", "in": "query", "name": "offset", "type": "integer" }, { "default": "createdTimed:desc", "description": "sort query result\navailable value:\n- createdTime\n- createdTime:desc\n- createdTime:asc\n- updatedTime\n- updatedTime:desc\n- updatedTime:asc", "in": "query", "name": "sortBy", "type": "string" }, { "description": "filter by content status [*PENDING*, *REJECTED*]", "in": "query", "name": "status", "type": "string" } ], "produces": [ "application/json" ], "responses": { "200": { "description": "list user's staging content", "schema": { "$ref": "#/definitions/models.PaginatedListStagingContentResponse" } }, "400": { "description": "\u003ctable\u003e\u003ctr\u003e\u003ctd\u003eerrorCode\u003c/td\u003e\u003ctd\u003eerrorMessage\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e774301\u003c/td\u003e\u003ctd\u003einvalid paging parameter\u003c/td\u003e\u003c/tr\u003e\u003c/table\u003e", "schema": { "$ref": "#/definitions/response.Error" } }, "401": { "description": "\u003ctable\u003e\u003ctr\u003e\u003ctd\u003eerrorCode\u003c/td\u003e\u003ctd\u003eerrorMessage\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e20001\u003c/td\u003e\u003ctd\u003eunauthorized access\u003c/td\u003e\u003c/tr\u003e\u003c/table\u003e", "schema": { "$ref": "#/definitions/response.Error" } }, "403": { "description": "\u003ctable\u003e\u003ctr\u003e\u003ctd\u003eerrorCode\u003c/td\u003e\u003ctd\u003eerrorMessage\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e20013\u003c/td\u003e\u003ctd\u003einsufficient permission\u003c/td\u003e\u003c/tr\u003e\u003c/table\u003e", "schema": { "$ref": "#/definitions/response.Error" } }, "500": { "description": "\u003ctable\u003e\u003ctr\u003e\u003ctd\u003eerrorCode\u003c/td\u003e\u003ctd\u003eerrorMessage\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e774302\u003c/td\u003e\u003ctd\u003eunable to get staging content\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e774303\u003c/td\u003e\u003ctd\u003eunable to generate presigned URL\u003c/td\u003e\u003c/tr\u003e\u003c/table\u003e", "schema": { "$ref": "#/definitions/response.Error" } } }, "security": [ { "authorization": [] } ], "summary": "List user staging contents", "tags": [ "Admin Staging Content" ], "x-errorCodes": { "20001": "unauthorized access", "20013": "insufficient permission", "774301": "invalid paging parameter", "774302": "unable to get staging content", "774303": "unable to generate presigned URL" }, "x-security": [ { "userPermissions": [ "ADMIN:NAMESPACE:{namespace}:USER:{userId}:CONTENT [READ]" ] } ] } }, "/ugc/v2/public/namespaces/{namespace}/channels/{channelId}/contents": { "get": { "consumes": [ "application/json", "application/octet-stream" ], "description": "Public user can access without token or if token specified, requires valid user token", "operationId": "PublicGetContentByChannelIDV2", "parameters": [ { "description": "channel ID", "in": "path", "name": "channelId", "required": true, "type": "string" }, { "description": "namespace of the game", "in": "path", "name": "namespace", "required": true, "type": "string" }, { "default": 20, "description": "number of content per page. max limit: -1 (-1 means unlimited).", "in": "query", "name": "limit", "type": "integer" }, { "description": "content name", "in": "query", "name": "name", "type": "string" }, { "default": 0, "description": "the offset number to retrieve", "in": "query", "name": "offset", "type": "integer" }, { "default": "createdTime:desc", "description": "available values:\n\t\t\t\t- *createdTime*\n\t\t\t\t- *createdTime:desc*\n\t\t\t\t- *createdTime:asc*\n\t\t\t\t- *updatedTime*\n\t\t\t\t- *updatedTime:desc*\n\t\t\t\t- *updatedTime:asc*", "in": "query", "name": "sortBy", "type": "string" } ], "produces": [ "application/json" ], "responses": { "200": { "description": "List content specific to a channel", "schema": { "$ref": "#/definitions/models.PaginatedContentDownloadResponseV2" } }, "400": { "description": "\u003ctable\u003e\u003ctr\u003e\u003ctd\u003eerrorCode\u003c/td\u003e\u003ctd\u003eerrorMessage\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e770804\u003c/td\u003e\u003ctd\u003einvalid paging parameter\u003c/td\u003e\u003c/tr\u003e\u003c/table\u003e", "schema": { "$ref": "#/definitions/response.Error" } }, "401": { "description": "\u003ctable\u003e\u003ctr\u003e\u003ctd\u003eerrorCode\u003c/td\u003e\u003ctd\u003eerrorMessage\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e20001\u003c/td\u003e\u003ctd\u003eunauthorized access\u003c/td\u003e\u003c/tr\u003e\u003c/table\u003e", "schema": { "$ref": "#/definitions/response.Error" } }, "500": { "description": "\u003ctable\u003e\u003ctr\u003e\u003ctd\u003eerrorCode\u003c/td\u003e\u003ctd\u003eerrorMessage\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e770805\u003c/td\u003e\u003ctd\u003eUnable to get ugc content: database error\u003c/td\u003e\u003c/tr\u003e\u003c/table\u003e", "schema": { "$ref": "#/definitions/response.Error" } } }, "security": [ { "authorization": [] } ], "summary": "List contents specific to a channel", "tags": [ "Public Content V2" ], "x-errorCodes": { "20001": "unauthorized access", "770804": "invalid paging parameter", "770805": "Unable to get ugc content: database error" }, "x-security": {} } }, "/ugc/v2/public/namespaces/{namespace}/contents": { "get": { "consumes": [ "application/json", "application/octet-stream" ], "description": "For advance tag filtering supports \u0026amp; as AND operator and | as OR operator and parentheses ( ) for priority. e.g: \n\n\n*tags=red*\n*tags=red\u0026amp;animal*\n*tags=red|animal*\n*tags=red\u0026amp;animal|wild*\n*tags=red\u0026amp;(animal|wild)*\n\nThe precedence of logical operator is AND \u0026gt; OR, so if no parentheses, AND logical operator will be executed first. \n\nAllowed character for operand: alphanumeric, underscore _ and dash - \n\nAllowed character for operator: \u0026amp; | ( )\n\n\n**Please note that value of tags query param should be URL encoded**", "operationId": "PublicListContentV2", "parameters": [ { "description": "namespace of the game", "in": "path", "name": "namespace", "required": true, "type": "string" }, { "description": "filter by is official", "in": "query", "name": "isOfficial", "type": "boolean", "x-omitempty": false }, { "default": 20, "description": "number of content per page. max limit: -1 (-1 means unlimited).", "in": "query", "name": "limit", "type": "integer" }, { "description": "filter by content name", "in": "query", "name": "name", "type": "string" }, { "default": 0, "description": "the offset number to retrieve", "in": "query", "name": "offset", "type": "integer" }, { "default": "createdTime:desc", "description": "sort order of query result\navailable value: \n- *createdTime*\n- *createdTime:desc*\n- *createdTime:asc*\n- *download*\n- *download:desc* \n- *download:asc*\n- *name* \n- *name:desc* \n- *name:asc*\n- *updatedTime*\n- *updatedTime:desc* \n- *updatedTime:asc*", "in": "query", "name": "sortBy", "type": "string" }, { "description": "filter by content subType", "in": "query", "name": "subType", "type": "string" }, { "collectionFormat": "csv", "description": "content tag. max number of tags: -1 tags (-1 means unlimited).", "in": "query", "items": { "type": "string" }, "name": "tags", "type": "array" }, { "description": "filter by content type", "in": "query", "name": "type", "type": "string" } ], "produces": [ "application/json" ], "responses": { "200": { "description": "list content's", "schema": { "$ref": "#/definitions/models.PaginatedContentDownloadResponseV2" } }, "400": { "description": "\u003ctable\u003e\u003ctr\u003e\u003ctd\u003eerrorCode\u003c/td\u003e\u003ctd\u003eerrorMessage\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e770800\u003c/td\u003e\u003ctd\u003einvalid paging parameter/max allowed number of tags is {maxTags}/invalid official parameter/invalid ishidden parameter\u003c/td\u003e\u003c/tr\u003e\u003c/table\u003e", "schema": { "$ref": "#/definitions/response.Error" } }, "401": { "description": "\u003ctable\u003e\u003ctr\u003e\u003ctd\u003eerrorCode\u003c/td\u003e\u003ctd\u003eerrorMessage\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e20001\u003c/td\u003e\u003ctd\u003eunauthorized access\u003c/td\u003e\u003c/tr\u003e\u003c/table\u003e", "schema": { "$ref": "#/definitions/response.Error" } }, "500": { "description": "\u003ctable\u003e\u003ctr\u003e\u003ctd\u003eerrorCode\u003c/td\u003e\u003ctd\u003eerrorMessage\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e770801\u003c/td\u003e\u003ctd\u003eUnable to get ugc content: database/Unable to get creator\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e770803\u003c/td\u003e\u003ctd\u003eFailed generate download URL\u003c/td\u003e\u003c/tr\u003e\u003c/table\u003e", "schema": { "$ref": "#/definitions/response.Error" } } }, "security": [ { "authorization": [] } ], "summary": "List contents", "tags": [ "Public Content V2" ], "x-errorCodes": { "20001": "unauthorized access", "770800": "invalid paging parameter/max allowed number of tags is {maxTags}/invalid official parameter/invalid ishidden parameter", "770801": "Unable to get ugc content: database/Unable to get creator", "770803": "Failed generate download URL" }, "x-security": {} } }, "/ugc/v2/public/namespaces/{namespace}/contents/bulk": { "post": { "consumes": [ "application/json", "application/octet-stream" ], "description": "Maximum requested Ids: 100.\n\t\t\tPublic user can access without token or if token specified, requires valid user token", "operationId": "PublicBulkGetContentByIDV2", "parameters": [ { "in": "body", "name": "body", "required": true, "schema": { "$ref": "#/definitions/models.PublicGetContentBulkRequest" } }, { "description": "namespace of the game", "in": "path", "name": "namespace", "required": true, "type": "string" } ], "produces": [ "application/json" ], "responses": { "200": { "description": "Get contents by content Ids", "schema": { "items": { "$ref": "#/definitions/models.ContentDownloadResponseV2" }, "type": "array" } }, "400": { "description": "\u003ctable\u003e\u003ctr\u003e\u003ctd\u003eerrorCode\u003c/td\u003e\u003ctd\u003eerrorMessage\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e773900\u003c/td\u003e\u003ctd\u003eMalformed request/Invalid request body\u003c/td\u003e\u003c/tr\u003e\u003c/table\u003e", "schema": { "$ref": "#/definitions/response.Error" } }, "401": { "description": "\u003ctable\u003e\u003ctr\u003e\u003ctd\u003eerrorCode\u003c/td\u003e\u003ctd\u003eerrorMessage\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e20001\u003c/td\u003e\u003ctd\u003eunauthorized access\u003c/td\u003e\u003c/tr\u003e\u003c/table\u003e", "schema": { "$ref": "#/definitions/response.Error" } }, "500": { "description": "\u003ctable\u003e\u003ctr\u003e\u003ctd\u003eerrorCode\u003c/td\u003e\u003ctd\u003eerrorMessage\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e770801\u003c/td\u003e\u003ctd\u003eUnable to get ugc content: database/Unable to get creator\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e773902\u003c/td\u003e\u003ctd\u003eFailed generate download URL\u003c/td\u003e\u003c/tr\u003e\u003c/table\u003e", "schema": { "$ref": "#/definitions/response.Error" } } }, "security": [ { "authorization": [] } ], "summary": "Get contents by content Ids ", "tags": [ "Public Content V2" ], "x-errorCodes": { "20001": "unauthorized access", "770801": "Unable to get ugc content: database/Unable to get creator", "773900": "Malformed request/Invalid request body", "773902": "Failed generate download URL" }, "x-security": {} } }, "/ugc/v2/public/namespaces/{namespace}/contents/sharecodes/bulk": { "post": { "consumes": [ "application/json", "application/octet-stream" ], "description": "Require valid user token.\n\t\t\t\t\t\t\tMaximum sharecodes per request 100", "operationId": "PublicGetContentBulkByShareCodesV2", "parameters": [ { "in": "body", "name": "body", "required": true, "schema": { "$ref": "#/definitions/models.GetContentBulkByShareCodesRequest" } }, { "description": "namespace of the game", "in": "path", "name": "namespace", "required": true, "type": "string" } ], "produces": [ "application/json" ], "responses": { "200": { "description": "Bulk get content by content sharecodes", "schema": { "items": { "$ref": "#/definitions/models.ContentDownloadResponseV2" }, "type": "array" } }, "400": { "description": "\u003ctable\u003e\u003ctr\u003e\u003ctd\u003eerrorCode\u003c/td\u003e\u003ctd\u003eerrorMessage\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e773900\u003c/td\u003e\u003ctd\u003eMalformed request/Invalid request body\u003c/td\u003e\u003c/tr\u003e\u003c/table\u003e", "schema": { "$ref": "#/definitions/response.Error" } }, "401": { "description": "\u003ctable\u003e\u003ctr\u003e\u003ctd\u003eerrorCode\u003c/td\u003e\u003ctd\u003eerrorMessage\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e20001\u003c/td\u003e\u003ctd\u003eunauthorized access\u003c/td\u003e\u003c/tr\u003e\u003c/table\u003e", "schema": { "$ref": "#/definitions/response.Error" } }, "403": { "description": "\u003ctable\u003e\u003ctr\u003e\u003ctd\u003eerrorCode\u003c/td\u003e\u003ctd\u003eerrorMessage\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e20013\u003c/td\u003e\u003ctd\u003einsufficient permission\u003c/td\u003e\u003c/tr\u003e\u003c/table\u003e", "schema": { "$ref": "#/definitions/response.Error" } }, "500": { "description": "\u003ctable\u003e\u003ctr\u003e\u003ctd\u003eerrorCode\u003c/td\u003e\u003ctd\u003eerrorMessage\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e773901\u003c/td\u003e\u003ctd\u003eUnable to get ugc content: database/Unable to get creator\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e773902\u003c/td\u003e\u003ctd\u003eFailed generate download URL\u003c/td\u003e\u003c/tr\u003e\u003c/table\u003e", "schema": { "$ref": "#/definitions/response.Error" } } }, "security": [ { "authorization": [] } ], "summary": "Bulk get content by content sharecodes", "tags": [ "Public Content V2" ], "x-errorCodes": { "20001": "unauthorized access", "20013": "insufficient permission", "773900": "Malformed request/Invalid request body", "773901": "Unable to get ugc content: database/Unable to get creator", "773902": "Failed generate download URL" }, "x-security": {} } }, "/ugc/v2/public/namespaces/{namespace}/contents/sharecodes/{shareCode}": { "get": { "consumes": [ "application/json", "application/octet-stream" ], "description": "Public user can access without token or if token specified, requires valid user token", "operationId": "PublicGetContentByShareCodeV2", "parameters": [ { "description": "namespace of the game", "in": "path", "name": "namespace", "required": true, "type": "string" }, { "description": "content sharecode", "in": "path", "name": "shareCode", "required": true, "type": "string" } ], "produces": [ "application/json" ], "responses": { "200": { "description": "Get content by sharecode", "schema": { "$ref": "#/definitions/models.ContentDownloadResponseV2" } }, "401": { "description": "\u003ctable\u003e\u003ctr\u003e\u003ctd\u003eerrorCode\u003c/td\u003e\u003ctd\u003eerrorMessage\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e20001\u003c/td\u003e\u003ctd\u003eunauthorized access\u003c/td\u003e\u003c/tr\u003e\u003c/table\u003e", "schema": { "$ref": "#/definitions/response.Error" } }, "404": { "description": "\u003ctable\u003e\u003ctr\u003e\u003ctd\u003eerrorCode\u003c/td\u003e\u003ctd\u003eerrorMessage\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e770300\u003c/td\u003e\u003ctd\u003eugc content not found\u003c/td\u003e\u003c/tr\u003e\u003c/table\u003e", "schema": { "$ref": "#/definitions/response.Error" } }, "500": { "description": "\u003ctable\u003e\u003ctr\u003e\u003ctd\u003eerrorCode\u003c/td\u003e\u003ctd\u003eerrorMessage\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e770301\u003c/td\u003e\u003ctd\u003eUnable to get ugc content/Unable to get creator\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e770303\u003c/td\u003e\u003ctd\u003eFailed generate download URL\u003c/td\u003e\u003c/tr\u003e\u003c/table\u003e", "schema": { "$ref": "#/definitions/response.Error" } } }, "security": [ { "authorization": [] } ], "summary": "Get content by sharecode", "tags": [ "Public Content V2" ], "x-errorCodes": { "20001": "unauthorized access", "770300": "ugc content not found", "770301": "Unable to get ugc content/Unable to get creator", "770303": "Failed generate download URL" }, "x-security": {} } }, "/ugc/v2/public/namespaces/{namespace}/contents/{contentId}": { "get": { "consumes": [ "application/json", "application/octet-stream" ], "description": "Public user can access without token or if token specified, requires valid user token", "operationId": "PublicGetContentByIDV2", "parameters": [ { "description": "content ID", "in": "path", "name": "contentId", "required": true, "type": "string" }, { "description": "namespace of the game", "in": "path", "name": "namespace", "required": true, "type": "string" } ], "produces": [ "application/json" ], "responses": { "200": { "description": "Get content by content ID", "schema": { "$ref": "#/definitions/models.ContentDownloadResponseV2" } }, "401": { "description": "\u003ctable\u003e\u003ctr\u003e\u003ctd\u003eerrorCode\u003c/td\u003e\u003ctd\u003eerrorMessage\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e20001\u003c/td\u003e\u003ctd\u003eunauthorized access\u003c/td\u003e\u003c/tr\u003e\u003c/table\u003e", "schema": { "$ref": "#/definitions/response.Error" } }, "404": { "description": "\u003ctable\u003e\u003ctr\u003e\u003ctd\u003eerrorCode\u003c/td\u003e\u003ctd\u003eerrorMessage\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e773200\u003c/td\u003e\u003ctd\u003eugc content not found\u003c/td\u003e\u003c/tr\u003e\u003c/table\u003e", "schema": { "$ref": "#/definitions/response.Error" } }, "500": { "description": "\u003ctable\u003e\u003ctr\u003e\u003ctd\u003eerrorCode\u003c/td\u003e\u003ctd\u003eerrorMessage\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e773201\u003c/td\u003e\u003ctd\u003eUnable to get ugc content/Unable to get creator/Unable to get included group\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e770301\u003c/td\u003e\u003ctd\u003eUnable to get ugc content/Unable to get creator\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e773203\u003c/td\u003e\u003ctd\u003eFailed generate download URL\u003c/td\u003e\u003c/tr\u003e\u003c/table\u003e", "schema": { "$ref": "#/definitions/response.Error" } } }, "security": [ { "authorization": [] } ], "summary": "Get content by content ID", "tags": [ "Public Content V2" ], "x-errorCodes": { "20001": "unauthorized access", "770301": "Unable to get ugc content/Unable to get creator", "773200": "ugc content not found", "773201": "Unable to get ugc content/Unable to get creator/Unable to get included group", "773203": "Failed generate download URL" }, "x-security": {} } }, "/ugc/v2/public/namespaces/{namespace}/contents/{contentId}/downloadcount": { "post": { "consumes": [ "application/json", "application/octet-stream" ], "description": "This endpoint can be used to count how many the ugc downloaded", "operationId": "PublicAddDownloadCountV2", "parameters": [ { "description": "content ID", "in": "path", "name": "contentId", "required": true, "type": "string" }, { "description": "namespace of the game", "in": "path", "name": "namespace", "required": true, "type": "string" } ], "produces": [ "application/json" ], "responses": { "200": { "description": "Added download count to a content", "schema": { "$ref": "#/definitions/models.AddDownloadCountResponse" } }, "401": { "description": "\u003ctable\u003e\u003ctr\u003e\u003ctd\u003eerrorCode\u003c/td\u003e\u003ctd\u003eerrorMessage\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e20001\u003c/td\u003e\u003ctd\u003eunauthorized access\u003c/td\u003e\u003c/tr\u003e\u003c/table\u003e", "schema": { "$ref": "#/definitions/response.Error" } }, "404": { "description": "\u003ctable\u003e\u003ctr\u003e\u003ctd\u003eerrorCode\u003c/td\u003e\u003ctd\u003eerrorMessage\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e772903\u003c/td\u003e\u003ctd\u003eUnable to add content download: content not found\u003c/td\u003e\u003c/tr\u003e\u003c/table\u003e", "schema": { "$ref": "#/definitions/response.Error" } }, "429": { "description": "\u003ctable\u003e\u003ctr\u003e\u003ctd\u003eerrorCode\u003c/td\u003e\u003ctd\u003eerrorMessage\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e772906\u003c/td\u003e\u003ctd\u003eUnable to add content download: too many request\u003c/td\u003e\u003c/tr\u003e\u003c/table\u003e", "schema": { "$ref": "#/definitions/response.Error" } }, "500": { "description": "\u003ctable\u003e\u003ctr\u003e\u003ctd\u003eerrorCode\u003c/td\u003e\u003ctd\u003eerrorMessage\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e772902\u003c/td\u003e\u003ctd\u003eUnable to add content download: database error\u003c/td\u003e\u003c/tr\u003e\u003c/table\u003e", "schema": { "$ref": "#/definitions/response.Error" } } }, "security": [ { "authorization": [] } ], "summary": "Add unique download count to a content", "tags": [ "Public Download Count V2" ], "x-errorCodes": { "20001": "unauthorized access", "772902": "Unable to add content download: database error", "772903": "Unable to add content download: content not found", "772906": "Unable to add content download: too many request" }, "x-security": {} } }, "/ugc/v2/public/namespaces/{namespace}/contents/{contentId}/downloader": { "get": { "consumes": [ "application/json", "application/octet-stream" ], "description": "This endpoint will only display the list of users who performed add download count from v2 endpoint.", "operationId": "PublicListContentDownloaderV2", "parameters": [ { "description": "content ID", "in": "path", "name": "contentId", "required": true, "type": "string" }, { "description": "namespace of the game", "in": "path", "name": "namespace", "required": true, "type": "string" }, { "default": 20, "description": "number of content per page", "in": "query", "name": "limit", "type": "integer" }, { "default": 0, "description": "the offset number to retrieve", "in": "query", "name": "offset", "type": "integer" }, { "default": "createdTime:desc", "description": "sort the result. \n\navailable value:\n- *createdTime*\n- *createdTime:desc*\n- *createdTime:asc*", "in": "query", "name": "sortBy", "type": "string" }, { "description": "user ID", "in": "query", "name": "userId", "type": "string" } ], "produces": [ "application/json" ], "responses": { "200": { "description": "List content downloader", "schema": { "$ref": "#/definitions/models.PaginatedContentDownloaderResponse" } }, "400": { "description": "\u003ctable\u003e\u003ctr\u003e\u003ctd\u003eerrorCode\u003c/td\u003e\u003ctd\u003eerrorMessage\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e770800\u003c/td\u003e\u003ctd\u003einvalid paging parameter/max allowed number of tags is {maxTags}/invalid official parameter/invalid ishidden parameter\u003c/td\u003e\u003c/tr\u003e\u003c/table\u003e", "schema": { "$ref": "#/definitions/response.Error" } }, "401": { "description": "\u003ctable\u003e\u003ctr\u003e\u003ctd\u003eerrorCode\u003c/td\u003e\u003ctd\u003eerrorMessage\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e20001\u003c/td\u003e\u003ctd\u003eunauthorized access\u003c/td\u003e\u003c/tr\u003e\u003c/table\u003e", "schema": { "$ref": "#/definitions/response.Error" } }, "500": { "description": "\u003ctable\u003e\u003ctr\u003e\u003ctd\u003eerrorCode\u003c/td\u003e\u003ctd\u003eerrorMessage\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e772904\u003c/td\u003e\u003ctd\u003eUnable to list content downloader: database error\u003c/td\u003e\u003c/tr\u003e\u003c/table\u003e", "schema": { "$ref": "#/definitions/response.Error" } } }, "security": [ { "authorization": [] } ], "summary": "List content downloader", "tags": [ "Public Download Count V2" ], "x-errorCodes": { "20001": "unauthorized access", "770800": "invalid paging parameter/max allowed number of tags is {maxTags}/invalid official parameter/invalid ishidden parameter", "772904": "Unable to list content downloader: database error" } } }, "/ugc/v2/public/namespaces/{namespace}/contents/{contentId}/like": { "get": { "consumes": [ "application/json", "application/octet-stream" ], "description": "This endpoint will only display the list of users who performed like from v2 endpoint.", "operationId": "PublicListContentLikeV2", "parameters": [ { "description": "content ID", "in": "path", "name": "contentId", "required": true, "type": "string" }, { "description": "namespace of the game", "in": "path", "name": "namespace", "required": true, "type": "string" }, { "default": 20, "description": "maximum result of data", "in": "query", "name": "limit", "type": "integer" }, { "default": 0, "description": "offset", "in": "query", "name": "offset", "type": "integer" }, { "default": "createdTime:desc", "description": "sort order of query result\navailable value: \n- *createdTime*\n- *createdTime:desc*\n- *createdTime:asc*", "in": "query", "name": "sortBy", "type": "string" } ], "produces": [ "application/json" ], "responses": { "200": { "description": "Retrieve list of user liked content", "schema": { "$ref": "#/definitions/models.PaginatedContentLikersResponse" } }, "400": { "description": "\u003ctable\u003e\u003ctr\u003e\u003ctd\u003eerrorCode\u003c/td\u003e\u003ctd\u003eerrorMessage\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e771004\u003c/td\u003e\u003ctd\u003einvalid paging parameter\u003c/td\u003e\u003c/tr\u003e\u003c/table\u003e", "schema": { "$ref": "#/definitions/response.Error" } }, "401": { "description": "\u003ctable\u003e\u003ctr\u003e\u003ctd\u003eerrorCode\u003c/td\u003e\u003ctd\u003eerrorMessage\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e20001\u003c/td\u003e\u003ctd\u003eunauthorized access\u003c/td\u003e\u003c/tr\u003e\u003c/table\u003e", "schema": { "$ref": "#/definitions/response.Error" } }, "500": { "description": "\u003ctable\u003e\u003ctr\u003e\u003ctd\u003eerrorCode\u003c/td\u003e\u003ctd\u003eerrorMessage\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e771006\u003c/td\u003e\u003ctd\u003eunable to get list of content like: database error\u003c/td\u003e\u003c/tr\u003e\u003c/table\u003e", "schema": { "$ref": "#/definitions/response.Error" } } }, "security": [ { "authorization": [] } ], "summary": "Retrieve list of user that like specified content.", "tags": [ "Public Like V2" ], "x-errorCodes": { "20001": "unauthorized access", "771004": "invalid paging parameter", "771006": "unable to get list of content like: database error" } }, "put": { "consumes": [ "application/json", "application/octet-stream" ], "description": "This endpoint will update like/unlike state from a content", "operationId": "UpdateContentLikeStatusV2", "parameters": [ { "in": "body", "name": "body", "required": true, "schema": { "$ref": "#/definitions/models.ContentLikeRequest" } }, { "description": "content ID", "in": "path", "name": "contentId", "required": true, "type": "string" }, { "description": "namespace of the game", "in": "path", "name": "namespace", "required": true, "type": "string" } ], "produces": [ "application/json" ], "responses": { "200": { "description": "Update like/unlike status to a content", "schema": { "$ref": "#/definitions/models.ContentLikeResponse" } }, "400": { "description": "\u003ctable\u003e\u003ctr\u003e\u003ctd\u003eerrorCode\u003c/td\u003e\u003ctd\u003eerrorMessage\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e771000\u003c/td\u003e\u003ctd\u003eMalformed request/Content not found/Unable to update like status: content not found\u003c/td\u003e\u003c/tr\u003e\u003c/table\u003e", "schema": { "$ref": "#/definitions/response.Error" } }, "401": { "description": "\u003ctable\u003e\u003ctr\u003e\u003ctd\u003eerrorCode\u003c/td\u003e\u003ctd\u003eerrorMessage\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e20001\u003c/td\u003e\u003ctd\u003eunauthorized access\u003c/td\u003e\u003c/tr\u003e\u003c/table\u003e", "schema": { "$ref": "#/definitions/response.Error" } }, "404": { "description": "\u003ctable\u003e\u003ctr\u003e\u003ctd\u003eerrorCode\u003c/td\u003e\u003ctd\u003eerrorMessage\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e770200\u003c/td\u003e\u003ctd\u003eContent not found\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e771001\u003c/td\u003e\u003ctd\u003eunable to like content/Unable to update like status: database error\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e771000\u003c/td\u003e\u003ctd\u003eMalformed request/Content not found/Unable to update like status: content not found\u003c/td\u003e\u003c/tr\u003e\u003c/table\u003e", "schema": { "$ref": "#/definitions/response.Error" } }, "429": { "description": "\u003ctable\u003e\u003ctr\u003e\u003ctd\u003eerrorCode\u003c/td\u003e\u003ctd\u003eerrorMessage\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e771003\u003c/td\u003e\u003ctd\u003eUnable to like content: too many request\u003c/td\u003e\u003c/tr\u003e\u003c/table\u003e", "schema": { "$ref": "#/definitions/response.Error" } }, "500": { "description": "\u003ctable\u003e\u003ctr\u003e\u003ctd\u003eerrorCode\u003c/td\u003e\u003ctd\u003eerrorMessage\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e771001\u003c/td\u003e\u003ctd\u003eunable to like content/Unable to update like status: database error\u003c/td\u003e\u003c/tr\u003e\u003c/table\u003e", "schema": { "$ref": "#/definitions/response.Error" } } }, "security": [ { "authorization": [] } ], "summary": "Update like/unlike status to a content", "tags": [ "Public Like V2" ], "x-errorCodes": { "20001": "unauthorized access", "770200": "Content not found", "771000": "Malformed request/Content not found/Unable to update like status: content not found", "771001": "unable to like content/Unable to update like status: database error", "771003": "Unable to like content: too many request" }, "x-security": {} } }, "/ugc/v2/public/namespaces/{namespace}/users/{userId}/channels/{channelId}/contents": { "post": { "consumes": [ "application/json", "application/octet-stream" ], "description": "Create a new content", "operationId": "PublicCreateContentV2", "parameters": [ { "in": "body", "name": "body", "required": true, "schema": { "$ref": "#/definitions/models.ContentRequestV2" } }, { "description": "channel ID", "in": "path", "name": "channelId", "required": true, "type": "string" }, { "description": "namespace of the game", "in": "path", "name": "namespace", "required": true, "type": "string" }, { "description": "user ID", "in": "path", "name": "userId", "required": true, "type": "string" } ], "produces": [ "application/json" ], "responses": { "201": { "description": "Content created", "schema": { "$ref": "#/definitions/models.CreateContentResponseV2" } }, "400": { "description": "\u003ctable\u003e\u003ctr\u003e\u003ctd\u003eerrorCode\u003c/td\u003e\u003ctd\u003eerrorMessage\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e770100\u003c/td\u003e\u003ctd\u003eMalformed request/Invalid request body/channel do not exist\u003c/td\u003e\u003c/tr\u003e\u003c/table\u003e", "schema": { "$ref": "#/definitions/response.Error" } }, "401": { "description": "\u003ctable\u003e\u003ctr\u003e\u003ctd\u003eerrorCode\u003c/td\u003e\u003ctd\u003eerrorMessage\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e20001\u003c/td\u003e\u003ctd\u003eunauthorized access\u003c/td\u003e\u003c/tr\u003e\u003c/table\u003e", "schema": { "$ref": "#/definitions/response.Error" } }, "404": { "description": "\u003ctable\u003e\u003ctr\u003e\u003ctd\u003eerrorCode\u003c/td\u003e\u003ctd\u003eerrorMessage\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e770106\u003c/td\u003e\u003ctd\u003echannel doesn't exist\u003c/td\u003e\u003c/tr\u003e\u003c/table\u003e", "schema": { "$ref": "#/definitions/response.Error" } }, "500": { "description": "\u003ctable\u003e\u003ctr\u003e\u003ctd\u003eerrorCode\u003c/td\u003e\u003ctd\u003eerrorMessage\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e770102\u003c/td\u003e\u003ctd\u003eUnable to check user ban status/Unable to save ugc content: unable to get channel\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e770105\u003c/td\u003e\u003ctd\u003eUnable to save ugc content: failed generate upload URL\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e770103\u003c/td\u003e\u003ctd\u003eUnable to save ugc content: shareCode exceed the limit\u003c/td\u003e\u003c/tr\u003e\u003c/table\u003e", "schema": { "$ref": "#/definitions/response.Error" } } }, "security": [ { "authorization": [] } ], "summary": "Create a content", "tags": [ "Public Content V2" ], "x-errorCodes": { "20001": "unauthorized access", "770100": "Malformed request/Invalid request body/channel do not exist", "770102": "Unable to check user ban status/Unable to save ugc content: unable to get channel", "770103": "Unable to save ugc content: shareCode exceed the limit", "770105": "Unable to save ugc content: failed generate upload URL", "770106": "channel doesn't exist" }, "x-security": [ { "userPermissions": [ "NAMESPACE:{namespace}:USER:{userId}:CONTENT [CREATE]" ] } ] } }, "/ugc/v2/public/namespaces/{namespace}/users/{userId}/channels/{channelId}/contents/s3/sharecodes/{shareCode}": { "put": { "consumes": [ "application/json", "application/octet-stream" ], "description": "Update content by share code", "operationId": "PublicUpdateContentByShareCodeV2", "parameters": [ { "in": "body", "name": "body", "required": true, "schema": { "$ref": "#/definitions/models.UpdateContentRequestV2" } }, { "description": "channel ID", "in": "path", "name": "channelId", "required": true, "type": "string" }, { "description": "namespace of the game", "in": "path", "name": "namespace", "required": true, "type": "string" }, { "description": "share code", "in": "path", "name": "shareCode", "required": true, "type": "string" }, { "description": "user ID", "in": "path", "name": "userId", "required": true, "type": "string" } ], "produces": [ "application/json" ], "responses": { "200": { "description": "content updated at s3", "schema": { "$ref": "#/definitions/models.CreateContentResponseV2" } }, "400": { "description": "\u003ctable\u003e\u003ctr\u003e\u003ctd\u003eerrorCode\u003c/td\u003e\u003ctd\u003eerrorMessage\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e772601\u003c/td\u003e\u003ctd\u003eMalformed request\u003c/td\u003e\u003c/tr\u003e\u003c/table\u003e", "schema": { "$ref": "#/definitions/response.Error" } }, "401": { "description": "\u003ctable\u003e\u003ctr\u003e\u003ctd\u003eerrorCode\u003c/td\u003e\u003ctd\u003eerrorMessage\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e20001\u003c/td\u003e\u003ctd\u003eunauthorized access\u003c/td\u003e\u003c/tr\u003e\u003c/table\u003e", "schema": { "$ref": "#/definitions/response.Error" } }, "403": { "description": "\u003ctable\u003e\u003ctr\u003e\u003ctd\u003eerrorCode\u003c/td\u003e\u003ctd\u003eerrorMessage\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e772604\u003c/td\u003e\u003ctd\u003eUser has been banned to update content\u003c/td\u003e\u003c/tr\u003e\u003c/table\u003e", "schema": { "$ref": "#/definitions/response.Error" } }, "404": { "description": "\u003ctable\u003e\u003ctr\u003e\u003ctd\u003eerrorCode\u003c/td\u003e\u003ctd\u003eerrorMessage\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e772603\u003c/td\u003e\u003ctd\u003eContent not found\u003c/td\u003e\u003c/tr\u003e\u003c/table\u003e", "schema": { "$ref": "#/definitions/response.Error" } }, "409": { "description": "\u003ctable\u003e\u003ctr\u003e\u003ctd\u003eerrorCode\u003c/td\u003e\u003ctd\u003eerrorMessage\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e772606\u003c/td\u003e\u003ctd\u003eShare code already used\u003c/td\u003e\u003c/tr\u003e\u003c/table\u003e", "schema": { "$ref": "#/definitions/response.Error" } }, "500": { "description": "\u003ctable\u003e\u003ctr\u003e\u003ctd\u003eerrorCode\u003c/td\u003e\u003ctd\u003eerrorMessage\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e772602\u003c/td\u003e\u003ctd\u003eUnable to check user ban status/Unable to get updated ugc content\u003c/td\u003e\u003c/tr\u003e\u003c/table\u003e", "schema": { "$ref": "#/definitions/response.Error" } } }, "security": [ { "authorization": [] } ], "summary": "Update content to S3 bucket by share code", "tags": [ "Public Content V2" ], "x-errorCodes": { "20001": "unauthorized access", "772601": "Malformed request", "772602": "Unable to check user ban status/Unable to get updated ugc content", "772603": "Content not found", "772604": "User has been banned to update content", "772606": "Share code already used" }, "x-security": [ { "userPermissions": [ "NAMESPACE:{namespace}:USER:{userId}:CONTENT [UPDATE]" ] } ] } }, "/ugc/v2/public/namespaces/{namespace}/users/{userId}/channels/{channelId}/contents/sharecodes/{shareCode}": { "delete": { "consumes": [ "application/json", "application/octet-stream" ], "description": "Delete existing content by share code", "operationId": "PublicDeleteContentByShareCodeV2", "parameters": [ { "description": "channel ID", "in": "path", "name": "channelId", "required": true, "type": "string" }, { "description": "namespace of the game", "in": "path", "name": "namespace", "required": true, "type": "string" }, { "description": "share code", "in": "path", "name": "shareCode", "required": true, "type": "string" }, { "description": "user ID", "in": "path", "name": "userId", "required": true, "type": "string" } ], "produces": [ "application/json" ], "responses": { "204": { "description": "Content deleted" }, "401": { "description": "\u003ctable\u003e\u003ctr\u003e\u003ctd\u003eerrorCode\u003c/td\u003e\u003ctd\u003eerrorMessage\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e20001\u003c/td\u003e\u003ctd\u003eunauthorized access\u003c/td\u003e\u003c/tr\u003e\u003c/table\u003e", "schema": { "$ref": "#/definitions/response.Error" } }, "404": { "description": "\u003ctable\u003e\u003ctr\u003e\u003ctd\u003eerrorCode\u003c/td\u003e\u003ctd\u003eerrorMessage\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e772702\u003c/td\u003e\u003ctd\u003eContent not found\u003c/td\u003e\u003c/tr\u003e\u003c/table\u003e", "schema": { "$ref": "#/definitions/response.Error" } }, "500": { "description": "\u003ctable\u003e\u003ctr\u003e\u003ctd\u003eerrorCode\u003c/td\u003e\u003ctd\u003eerrorMessage\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e772701\u003c/td\u003e\u003ctd\u003eUnable to delete content/Unable to update user liked count/Unable to delete like state/Unable to delete like state\u003c/td\u003e\u003c/tr\u003e\u003c/table\u003e", "schema": { "$ref": "#/definitions/response.Error" } } }, "security": [ { "authorization": [] } ], "summary": "Delete content by share code", "tags": [ "Public Content V2" ], "x-errorCodes": { "20001": "unauthorized access", "772701": "Unable to delete content/Unable to update user liked count/Unable to delete like state/Unable to delete like state", "772702": "Content not found" }, "x-security": [ { "userPermissions": [ "NAMESPACE:{namespace}:USER:{userId}:CONTENT [DELETE]" ] } ] } }, "/ugc/v2/public/namespaces/{namespace}/users/{userId}/channels/{channelId}/contents/{contentId}": { "delete": { "consumes": [ "application/json", "application/octet-stream" ], "description": "Delete existing content", "operationId": "PublicDeleteContentV2", "parameters": [ { "description": "channel ID", "in": "path", "name": "channelId", "required": true, "type": "string" }, { "description": "content ID", "in": "path", "name": "contentId", "required": true, "type": "string" }, { "description": "namespace of the game", "in": "path", "name": "namespace", "required": true, "type": "string" }, { "description": "user ID", "in": "path", "name": "userId", "required": true, "type": "string" } ], "produces": [ "application/json" ], "responses": { "204": { "description": "Content deleted" }, "401": { "description": "\u003ctable\u003e\u003ctr\u003e\u003ctd\u003eerrorCode\u003c/td\u003e\u003ctd\u003eerrorMessage\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e20001\u003c/td\u003e\u003ctd\u003eunauthorized access\u003c/td\u003e\u003c/tr\u003e\u003c/table\u003e", "schema": { "$ref": "#/definitions/response.Error" } }, "404": { "description": "\u003ctable\u003e\u003ctr\u003e\u003ctd\u003eerrorCode\u003c/td\u003e\u003ctd\u003eerrorMessage\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e772702\u003c/td\u003e\u003ctd\u003eContent not found\u003c/td\u003e\u003c/tr\u003e\u003c/table\u003e", "schema": { "$ref": "#/definitions/response.Error" } }, "500": { "description": "\u003ctable\u003e\u003ctr\u003e\u003ctd\u003eerrorCode\u003c/td\u003e\u003ctd\u003eerrorMessage\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e772701\u003c/td\u003e\u003ctd\u003eUnable to delete content/Unable to update user liked count/Unable to delete like state/Unable to delete like state\u003c/td\u003e\u003c/tr\u003e\u003c/table\u003e", "schema": { "$ref": "#/definitions/response.Error" } } }, "security": [ { "authorization": [] } ], "summary": "Delete content", "tags": [ "Public Content V2" ], "x-errorCodes": { "20001": "unauthorized access", "772701": "Unable to delete content/Unable to update user liked count/Unable to delete like state/Unable to delete like state", "772702": "Content not found" }, "x-security": [ { "userPermissions": [ "NAMESPACE:{namespace}:USER:{userId}:CONTENT [DELETE]" ] } ] }, "patch": { "consumes": [ "application/json", "application/octet-stream" ], "description": "Update existing content", "operationId": "PublicUpdateContentV2", "parameters": [ { "in": "body", "name": "body", "required": true, "schema": { "$ref": "#/definitions/models.UpdateContentRequestV2" } }, { "description": "channel ID", "in": "path", "name": "channelId", "required": true, "type": "string" }, { "description": "content ID", "in": "path", "name": "contentId", "required": true, "type": "string" }, { "description": "namespace of the game", "in": "path", "name": "namespace", "required": true, "type": "string" }, { "description": "user ID", "in": "path", "name": "userId", "required": true, "type": "string" } ], "produces": [ "application/json" ], "responses": { "200": { "description": "Content updated", "schema": { "$ref": "#/definitions/models.UpdateContentResponseV2" } }, "400": { "description": "\u003ctable\u003e\u003ctr\u003e\u003ctd\u003eerrorCode\u003c/td\u003e\u003ctd\u003eerrorMessage\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e772601\u003c/td\u003e\u003ctd\u003eMalformed request\u003c/td\u003e\u003c/tr\u003e\u003c/table\u003e", "schema": { "$ref": "#/definitions/response.Error" } }, "401": { "description": "\u003ctable\u003e\u003ctr\u003e\u003ctd\u003eerrorCode\u003c/td\u003e\u003ctd\u003eerrorMessage\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e20001\u003c/td\u003e\u003ctd\u003eunauthorized access\u003c/td\u003e\u003c/tr\u003e\u003c/table\u003e", "schema": { "$ref": "#/definitions/response.Error" } }, "403": { "description": "\u003ctable\u003e\u003ctr\u003e\u003ctd\u003eerrorCode\u003c/td\u003e\u003ctd\u003eerrorMessage\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e772604\u003c/td\u003e\u003ctd\u003eUser has been banned to update content\u003c/td\u003e\u003c/tr\u003e\u003c/table\u003e", "schema": { "$ref": "#/definitions/response.Error" } }, "404": { "description": "\u003ctable\u003e\u003ctr\u003e\u003ctd\u003eerrorCode\u003c/td\u003e\u003ctd\u003eerrorMessage\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e772603\u003c/td\u003e\u003ctd\u003eContent not found\u003c/td\u003e\u003c/tr\u003e\u003c/table\u003e", "schema": { "$ref": "#/definitions/response.Error" } }, "500": { "description": "\u003ctable\u003e\u003ctr\u003e\u003ctd\u003eerrorCode\u003c/td\u003e\u003ctd\u003eerrorMessage\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e772602\u003c/td\u003e\u003ctd\u003eUnable to check user ban status/Unable to get updated ugc content\u003c/td\u003e\u003c/tr\u003e\u003c/table\u003e", "schema": { "$ref": "#/definitions/response.Error" } } }, "security": [ { "authorization": [] } ], "summary": "Update content", "tags": [ "Public Content V2" ], "x-errorCodes": { "20001": "unauthorized access", "772601": "Malformed request", "772602": "Unable to check user ban status/Unable to get updated ugc content", "772603": "Content not found", "772604": "User has been banned to update content" }, "x-security": [ { "userPermissions": [ "NAMESPACE:{namespace}:USER:{userId}:CONTENT [UPDATE]" ] } ] } }, "/ugc/v2/public/namespaces/{namespace}/users/{userId}/channels/{channelId}/contents/{contentId}/fileLocation": { "patch": { "consumes": [ "application/json", "application/octet-stream" ], "description": "This endpoint should be used after calling generate upload url endpoint to commit the changes", "operationId": "PublicUpdateContentFileLocation", "parameters": [ { "in": "body", "name": "body", "required": true, "schema": { "$ref": "#/definitions/models.UpdateFileLocationRequest" } }, { "description": "channel ID", "in": "path", "name": "channelId", "required": true, "type": "string" }, { "description": "content ID", "in": "path", "name": "contentId", "required": true, "type": "string" }, { "description": "namespace of the game", "in": "path", "name": "namespace", "required": true, "type": "string" }, { "description": "user ID", "in": "path", "name": "userId", "required": true, "type": "string" } ], "produces": [ "application/json" ], "responses": { "200": { "description": "Update content file location", "schema": { "$ref": "#/definitions/models.UpdateContentResponseV2" } }, "400": { "description": "\u003ctable\u003e\u003ctr\u003e\u003ctd\u003eerrorCode\u003c/td\u003e\u003ctd\u003eerrorMessage\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e774001\u003c/td\u003e\u003ctd\u003eunable to read response body/unable to update file location\u003c/td\u003e\u003c/tr\u003e\u003c/table\u003e", "schema": { "$ref": "#/definitions/response.Error" } }, "401": { "description": "\u003ctable\u003e\u003ctr\u003e\u003ctd\u003eerrorCode\u003c/td\u003e\u003ctd\u003eerrorMessage\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e20001\u003c/td\u003e\u003ctd\u003eunauthorized access\u003c/td\u003e\u003c/tr\u003e\u003c/table\u003e", "schema": { "$ref": "#/definitions/response.Error" } }, "403": { "description": "\u003ctable\u003e\u003ctr\u003e\u003ctd\u003eerrorCode\u003c/td\u003e\u003ctd\u003eerrorMessage\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e772604\u003c/td\u003e\u003ctd\u003eUser has been banned to update content\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e20013\u003c/td\u003e\u003ctd\u003einsufficient permission\u003c/td\u003e\u003c/tr\u003e\u003c/table\u003e", "schema": { "$ref": "#/definitions/response.Error" } }, "404": { "description": "\u003ctable\u003e\u003ctr\u003e\u003ctd\u003eerrorCode\u003c/td\u003e\u003ctd\u003eerrorMessage\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e774002\u003c/td\u003e\u003ctd\u003eunable to update content file location: content not found\u003c/td\u003e\u003c/tr\u003e\u003c/table\u003e", "schema": { "$ref": "#/definitions/response.Error" } }, "500": { "description": "\u003ctable\u003e\u003ctr\u003e\u003ctd\u003eerrorCode\u003c/td\u003e\u003ctd\u003eerrorMessage\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e772602\u003c/td\u003e\u003ctd\u003eUnable to check user ban status/Unable to get updated ugc content\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e774003\u003c/td\u003e\u003ctd\u003eunable to update content file location\u003c/td\u003e\u003c/tr\u003e\u003c/table\u003e", "schema": { "$ref": "#/definitions/response.Error" } } }, "security": [ { "authorization": [] } ], "summary": "Update content file location", "tags": [ "Public Content V2" ], "x-errorCodes": { "20001": "unauthorized access", "20013": "insufficient permission", "772602": "Unable to check user ban status/Unable to get updated ugc content", "772604": "User has been banned to update content", "774001": "unable to read response body/unable to update file location", "774002": "unable to update content file location: content not found", "774003": "unable to update content file location" }, "x-security": [ { "userPermissions": [ "NAMESPACE:{namespace}:USER:{userId}:CONTENT [UPDATE]" ] } ] } }, "/ugc/v2/public/namespaces/{namespace}/users/{userId}/channels/{channelId}/contents/{contentId}/sharecode": { "patch": { "consumes": [ "application/json", "application/octet-stream" ], "description": "This endpoint is used to modify the shareCode of a content. However, this operation is restricted by default and requires the above permission to be granted to the User role.\u0026lt;br\u0026gt;\n\t\t\t\t\t\t\t\t\u0026lt;code\u0026gt;shareCode\u0026lt;/code\u0026gt; format should follows:\n\t\t\t\t\t\t\t\tMax length: 7\n\t\t\t\t\t\t\t\tAvailable characters: abcdefhkpqrstuxyz", "operationId": "UpdateContentShareCodeV2", "parameters": [ { "in": "body", "name": "body", "required": true, "schema": { "$ref": "#/definitions/models.UpdateContentShareCodeRequest" } }, { "description": "channel ID", "in": "path", "name": "channelId", "required": true, "type": "string" }, { "description": "content ID", "in": "path", "name": "contentId", "required": true, "type": "string" }, { "description": "namespace of the game", "in": "path", "name": "namespace", "required": true, "type": "string" }, { "description": "user ID", "in": "path", "name": "userId", "required": true, "type": "string" } ], "produces": [ "application/json" ], "responses": { "200": { "description": "Update content sharecode", "schema": { "$ref": "#/definitions/models.CreateContentResponseV2" } }, "400": { "description": "\u003ctable\u003e\u003ctr\u003e\u003ctd\u003eerrorCode\u003c/td\u003e\u003ctd\u003eerrorMessage\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e772601\u003c/td\u003e\u003ctd\u003eMalformed request\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e772607\u003c/td\u003e\u003ctd\u003eUnable to update ugc content: invalid shareCode format\u003c/td\u003e\u003c/tr\u003e\u003c/table\u003e", "schema": { "$ref": "#/definitions/response.Error" } }, "401": { "description": "\u003ctable\u003e\u003ctr\u003e\u003ctd\u003eerrorCode\u003c/td\u003e\u003ctd\u003eerrorMessage\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e20001\u003c/td\u003e\u003ctd\u003eunauthorized access\u003c/td\u003e\u003c/tr\u003e\u003c/table\u003e", "schema": { "$ref": "#/definitions/response.Error" } }, "403": { "description": "\u003ctable\u003e\u003ctr\u003e\u003ctd\u003eerrorCode\u003c/td\u003e\u003ctd\u003eerrorMessage\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e772604\u003c/td\u003e\u003ctd\u003eUser has been banned to update content\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e20013\u003c/td\u003e\u003ctd\u003einsufficient permission\u003c/td\u003e\u003c/tr\u003e\u003c/table\u003e", "schema": { "$ref": "#/definitions/response.Error" } }, "404": { "description": "\u003ctable\u003e\u003ctr\u003e\u003ctd\u003eerrorCode\u003c/td\u003e\u003ctd\u003eerrorMessage\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e772603\u003c/td\u003e\u003ctd\u003eContent not found\u003c/td\u003e\u003c/tr\u003e\u003c/table\u003e", "schema": { "$ref": "#/definitions/response.Error" } }, "409": { "description": "\u003ctable\u003e\u003ctr\u003e\u003ctd\u003eerrorCode\u003c/td\u003e\u003ctd\u003eerrorMessage\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e772606\u003c/td\u003e\u003ctd\u003eShare code already used\u003c/td\u003e\u003c/tr\u003e\u003c/table\u003e", "schema": { "$ref": "#/definitions/response.Error" } }, "500": { "description": "\u003ctable\u003e\u003ctr\u003e\u003ctd\u003eerrorCode\u003c/td\u003e\u003ctd\u003eerrorMessage\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e772602\u003c/td\u003e\u003ctd\u003eUnable to check user ban status/Unable to get updated ugc content\u003c/td\u003e\u003c/tr\u003e\u003c/table\u003e", "schema": { "$ref": "#/definitions/response.Error" } } }, "security": [ { "authorization": [] } ], "summary": "Update content share code", "tags": [ "Public Content V2" ], "x-errorCodes": { "20001": "unauthorized access", "20013": "insufficient permission", "772601": "Malformed request", "772602": "Unable to check user ban status/Unable to get updated ugc content", "772603": "Content not found", "772604": "User has been banned to update content", "772606": "Share code already used", "772607": "Unable to update ugc content: invalid shareCode format" }, "x-security": [ { "userPermissions": [ "NAMESPACE:{namespace}:USER:{userId}:CONTENT:SHARECODE [UPDATE]" ] } ] } }, "/ugc/v2/public/namespaces/{namespace}/users/{userId}/channels/{channelId}/contents/{contentId}/uploadUrl": { "patch": { "consumes": [ "application/json", "application/octet-stream" ], "description": "Generate content upload URL", "operationId": "PublicGenerateContentUploadURLV2", "parameters": [ { "in": "body", "name": "body", "required": true, "schema": { "$ref": "#/definitions/models.GenerateContentUploadURLRequest" } }, { "description": "channel ID", "in": "path", "name": "channelId", "required": true, "type": "string" }, { "description": "content ID", "in": "path", "name": "contentId", "required": true, "type": "string" }, { "description": "namespace of the game", "in": "path", "name": "namespace", "required": true, "type": "string" }, { "description": "user ID", "in": "path", "name": "userId", "required": true, "type": "string" } ], "produces": [ "application/json" ], "responses": { "200": { "description": "content upload URL generated", "schema": { "$ref": "#/definitions/models.GenerateContentUploadURLResponse" } }, "400": { "description": "\u003ctable\u003e\u003ctr\u003e\u003ctd\u003eerrorCode\u003c/td\u003e\u003ctd\u003eerrorMessage\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e772601\u003c/td\u003e\u003ctd\u003eMalformed request\u003c/td\u003e\u003c/tr\u003e\u003c/table\u003e", "schema": { "$ref": "#/definitions/response.Error" } }, "401": { "description": "\u003ctable\u003e\u003ctr\u003e\u003ctd\u003eerrorCode\u003c/td\u003e\u003ctd\u003eerrorMessage\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e20001\u003c/td\u003e\u003ctd\u003eunauthorized access\u003c/td\u003e\u003c/tr\u003e\u003c/table\u003e", "schema": { "$ref": "#/definitions/response.Error" } }, "403": { "description": "\u003ctable\u003e\u003ctr\u003e\u003ctd\u003eerrorCode\u003c/td\u003e\u003ctd\u003eerrorMessage\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e772604\u003c/td\u003e\u003ctd\u003eUser has been banned to update content\u003c/td\u003e\u003c/tr\u003e\u003c/table\u003e", "schema": { "$ref": "#/definitions/response.Error" } }, "404": { "description": "\u003ctable\u003e\u003ctr\u003e\u003ctd\u003eerrorCode\u003c/td\u003e\u003ctd\u003eerrorMessage\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e772603\u003c/td\u003e\u003ctd\u003eContent not found\u003c/td\u003e\u003c/tr\u003e\u003c/table\u003e", "schema": { "$ref": "#/definitions/response.Error" } }, "500": { "description": "\u003ctable\u003e\u003ctr\u003e\u003ctd\u003eerrorCode\u003c/td\u003e\u003ctd\u003eerrorMessage\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e772602\u003c/td\u003e\u003ctd\u003eUnable to check user ban status/Unable to get updated ugc content\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e772605\u003c/td\u003e\u003ctd\u003eUnable to save ugc content: failed generate upload URL\u003c/td\u003e\u003c/tr\u003e\u003c/table\u003e", "schema": { "$ref": "#/definitions/response.Error" } } }, "security": [ { "authorization": [] } ], "summary": "Generate content upload URL", "tags": [ "Public Content V2" ], "x-errorCodes": { "20001": "unauthorized access", "772601": "Malformed request", "772602": "Unable to check user ban status/Unable to get updated ugc content", "772603": "Content not found", "772604": "User has been banned to update content", "772605": "Unable to save ugc content: failed generate upload URL" }, "x-security": [ { "userPermissions": [ "NAMESPACE:{namespace}:USER:{userId}:CONTENT [UPDATE]" ] } ] } }, "/ugc/v2/public/namespaces/{namespace}/users/{userId}/contents": { "get": { "consumes": [ "application/json", "application/octet-stream" ], "description": "Public user can access without token or if token specified, required permission \u0026lt;b\u0026gt;NAMESPACE:{namespace}:USER:{userId}:CONTENT [READ]\u0026lt;/b\u0026gt;.", "operationId": "PublicGetContentByUserIDV2", "parameters": [ { "description": "namespace of the game", "in": "path", "name": "namespace", "required": true, "type": "string" }, { "description": "user ID", "in": "path", "name": "userId", "required": true, "type": "string" }, { "default": 20, "description": "number of content per page. max limit: -1 (-1 means unlimited).", "in": "query", "name": "limit", "type": "integer" }, { "default": 0, "description": "the offset number to retrieve", "in": "query", "name": "offset", "type": "integer" }, { "default": "createdTime:desc", "description": "available values:\n\t\t\t- *createdTime*\n\t\t\t- *createdTime:desc*\n\t\t\t- *createdTime:asc*", "in": "query", "name": "sortBy", "type": "string" } ], "produces": [ "application/json" ], "responses": { "200": { "description": "Get content by user ID", "schema": { "$ref": "#/definitions/models.PaginatedContentDownloadResponseV2" } }, "400": { "description": "\u003ctable\u003e\u003ctr\u003e\u003ctd\u003eerrorCode\u003c/td\u003e\u003ctd\u003eerrorMessage\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e770900\u003c/td\u003e\u003ctd\u003einvalid paging parameter\u003c/td\u003e\u003c/tr\u003e\u003c/table\u003e", "schema": { "$ref": "#/definitions/response.Error" } }, "401": { "description": "\u003ctable\u003e\u003ctr\u003e\u003ctd\u003eerrorCode\u003c/td\u003e\u003ctd\u003eerrorMessage\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e20001\u003c/td\u003e\u003ctd\u003eunauthorized access\u003c/td\u003e\u003c/tr\u003e\u003c/table\u003e", "schema": { "$ref": "#/definitions/response.Error" } }, "500": { "description": "\u003ctable\u003e\u003ctr\u003e\u003ctd\u003eerrorCode\u003c/td\u003e\u003ctd\u003eerrorMessage\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e770901\u003c/td\u003e\u003ctd\u003eUnable to get ugc content: database error/Unable to get creator\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e770801\u003c/td\u003e\u003ctd\u003eUnable to get ugc content: database/Unable to get creator\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e770903\u003c/td\u003e\u003ctd\u003eFailed generate download URL\u003c/td\u003e\u003c/tr\u003e\u003c/table\u003e", "schema": { "$ref": "#/definitions/response.Error" } } }, "security": [ { "authorization": [] } ], "summary": "Get content by user ID", "tags": [ "Public Content V2" ], "x-errorCodes": { "20001": "unauthorized access", "770801": "Unable to get ugc content: database/Unable to get creator", "770900": "invalid paging parameter", "770901": "Unable to get ugc content: database error/Unable to get creator", "770903": "Failed generate download URL" }, "x-security": {} } }, "/ugc/v2/public/namespaces/{namespace}/users/{userId}/contents/{contentId}/screenshots": { "post": { "consumes": [ "application/json", "application/octet-stream" ], "description": "This endpoint used to request upload URL from content\u0026#39;s screenshot. \nIf *contentType* is not specified, it will use *fileExtension* value.\nSupported file extensions: pjp, jpg, jpeg, jfif, bmp, png.\nMaximum description length: 1024", "operationId": "UploadContentScreenshotV2", "parameters": [ { "in": "body", "name": "body", "required": true, "schema": { "$ref": "#/definitions/models.CreateScreenshotRequest" } }, { "description": "content ID", "in": "path", "name": "contentId", "required": true, "type": "string" }, { "description": "namespace of the game", "in": "path", "name": "namespace", "required": true, "type": "string" }, { "description": "user ID", "in": "path", "name": "userId", "required": true, "type": "string" } ], "produces": [ "application/json" ], "responses": { "201": { "description": "Screenshot uploaded", "schema": { "$ref": "#/definitions/models.CreateScreenshotResponse" } }, "400": { "description": "\u003ctable\u003e\u003ctr\u003e\u003ctd\u003eerrorCode\u003c/td\u003e\u003ctd\u003eerrorMessage\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e772601\u003c/td\u003e\u003ctd\u003eMalformed request\u003c/td\u003e\u003c/tr\u003e\u003c/table\u003e", "schema": { "$ref": "#/definitions/response.Error" } }, "401": { "description": "\u003ctable\u003e\u003ctr\u003e\u003ctd\u003eerrorCode\u003c/td\u003e\u003ctd\u003eerrorMessage\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e20001\u003c/td\u003e\u003ctd\u003eunauthorized access\u003c/td\u003e\u003c/tr\u003e\u003c/table\u003e", "schema": { "$ref": "#/definitions/response.Error" } }, "403": { "description": "\u003ctable\u003e\u003ctr\u003e\u003ctd\u003eerrorCode\u003c/td\u003e\u003ctd\u003eerrorMessage\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e772604\u003c/td\u003e\u003ctd\u003eUser has been banned to update content\u003c/td\u003e\u003c/tr\u003e\u003c/table\u003e", "schema": { "$ref": "#/definitions/response.Error" } }, "500": { "description": "\u003ctable\u003e\u003ctr\u003e\u003ctd\u003eerrorCode\u003c/td\u003e\u003ctd\u003eerrorMessage\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e772602\u003c/td\u003e\u003ctd\u003eUnable to check user ban status/Unable to get updated ugc content\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e772605\u003c/td\u003e\u003ctd\u003eUnable to save ugc content: failed generate upload URL\u003c/td\u003e\u003c/tr\u003e\u003c/table\u003e", "schema": { "$ref": "#/definitions/response.Error" } } }, "security": [ { "authorization": [] } ], "summary": "Upload screenshots for content", "tags": [ "Public Content V2" ], "x-errorCodes": { "20001": "unauthorized access", "772601": "Malformed request", "772602": "Unable to check user ban status/Unable to get updated ugc content", "772604": "User has been banned to update content", "772605": "Unable to save ugc content: failed generate upload URL" }, "x-security": [ { "userPermissions": [ "NAMESPACE:{namespace}:USER:{userId}:CONTENT [CREATE]" ] } ] }, "put": { "consumes": [ "application/json", "application/octet-stream" ], "description": "Maximum description length: 1024", "operationId": "UpdateScreenshotsV2", "parameters": [ { "in": "body", "name": "body", "required": true, "schema": { "$ref": "#/definitions/models.UpdateScreenshotRequest" } }, { "description": "content ID", "in": "path", "name": "contentId", "required": true, "type": "string" }, { "description": "namespace of the game", "in": "path", "name": "namespace", "required": true, "type": "string" }, { "description": "user ID", "in": "path", "name": "userId", "required": true, "type": "string" } ], "produces": [ "application/json" ], "responses": { "200": { "description": "Screenshot updated", "schema": { "$ref": "#/definitions/models.UpdateScreenshotResponse" } }, "400": { "description": "\u003ctable\u003e\u003ctr\u003e\u003ctd\u003eerrorCode\u003c/td\u003e\u003ctd\u003eerrorMessage\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e772601\u003c/td\u003e\u003ctd\u003eMalformed request\u003c/td\u003e\u003c/tr\u003e\u003c/table\u003e", "schema": { "$ref": "#/definitions/response.Error" } }, "401": { "description": "\u003ctable\u003e\u003ctr\u003e\u003ctd\u003eerrorCode\u003c/td\u003e\u003ctd\u003eerrorMessage\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e20001\u003c/td\u003e\u003ctd\u003eunauthorized access\u003c/td\u003e\u003c/tr\u003e\u003c/table\u003e", "schema": { "$ref": "#/definitions/response.Error" } }, "403": { "description": "\u003ctable\u003e\u003ctr\u003e\u003ctd\u003eerrorCode\u003c/td\u003e\u003ctd\u003eerrorMessage\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e772604\u003c/td\u003e\u003ctd\u003eUser has been banned to update content\u003c/td\u003e\u003c/tr\u003e\u003c/table\u003e", "schema": { "$ref": "#/definitions/response.Error" } }, "404": { "description": "\u003ctable\u003e\u003ctr\u003e\u003ctd\u003eerrorCode\u003c/td\u003e\u003ctd\u003eerrorMessage\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e772603\u003c/td\u003e\u003ctd\u003eContent not found\u003c/td\u003e\u003c/tr\u003e\u003c/table\u003e", "schema": { "$ref": "#/definitions/response.Error" } }, "500": { "description": "\u003ctable\u003e\u003ctr\u003e\u003ctd\u003eerrorCode\u003c/td\u003e\u003ctd\u003eerrorMessage\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e772602\u003c/td\u003e\u003ctd\u003eUnable to check user ban status/Unable to get updated ugc content\u003c/td\u003e\u003c/tr\u003e\u003c/table\u003e", "schema": { "$ref": "#/definitions/response.Error" } } }, "security": [ { "authorization": [] } ], "summary": "Update screenshot of content", "tags": [ "Public Content V2" ], "x-errorCodes": { "20001": "unauthorized access", "772601": "Malformed request", "772602": "Unable to check user ban status/Unable to get updated ugc content", "772603": "Content not found", "772604": "User has been banned to update content" }, "x-security": [ { "userPermissions": [ "NAMESPACE:{namespace}:USER:{userId}:CONTENT [UPDATE]" ] } ] } }, "/ugc/v2/public/namespaces/{namespace}/users/{userId}/contents/{contentId}/screenshots/{screenshotId}": { "delete": { "consumes": [ "application/json", "application/octet-stream" ], "description": "Delete screenshot from a content", "operationId": "DeleteContentScreenshotV2", "parameters": [ { "description": "content ID", "in": "path", "name": "contentId", "required": true, "type": "string" }, { "description": "namespace of the game", "in": "path", "name": "namespace", "required": true, "type": "string" }, { "description": "screenshot ID", "in": "path", "name": "screenshotId", "required": true, "type": "string" }, { "description": "user ID", "in": "path", "name": "userId", "required": true, "type": "string" } ], "produces": [ "application/json" ], "responses": { "204": { "description": "Screenshot deleted" }, "400": { "description": "\u003ctable\u003e\u003ctr\u003e\u003ctd\u003eerrorCode\u003c/td\u003e\u003ctd\u003eerrorMessage\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e772602\u003c/td\u003e\u003ctd\u003eUnable to check user ban status/Unable to get updated ugc content\u003c/td\u003e\u003c/tr\u003e\u003c/table\u003e", "schema": { "$ref": "#/definitions/response.Error" } }, "401": { "description": "\u003ctable\u003e\u003ctr\u003e\u003ctd\u003eerrorCode\u003c/td\u003e\u003ctd\u003eerrorMessage\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e20001\u003c/td\u003e\u003ctd\u003eunauthorized access\u003c/td\u003e\u003c/tr\u003e\u003c/table\u003e", "schema": { "$ref": "#/definitions/response.Error" } }, "403": { "description": "\u003ctable\u003e\u003ctr\u003e\u003ctd\u003eerrorCode\u003c/td\u003e\u003ctd\u003eerrorMessage\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e772604\u003c/td\u003e\u003ctd\u003eUser has been banned to update content\u003c/td\u003e\u003c/tr\u003e\u003c/table\u003e", "schema": { "$ref": "#/definitions/response.Error" } }, "404": { "description": "\u003ctable\u003e\u003ctr\u003e\u003ctd\u003eerrorCode\u003c/td\u003e\u003ctd\u003eerrorMessage\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e772603\u003c/td\u003e\u003ctd\u003eContent not found\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e772602\u003c/td\u003e\u003ctd\u003eUnable to check user ban status/Unable to get updated ugc content\u003c/td\u003e\u003c/tr\u003e\u003c/table\u003e", "schema": { "$ref": "#/definitions/response.Error" } }, "500": { "description": "\u003ctable\u003e\u003ctr\u003e\u003ctd\u003eerrorCode\u003c/td\u003e\u003ctd\u003eerrorMessage\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e772602\u003c/td\u003e\u003ctd\u003eUnable to check user ban status/Unable to get updated ugc content\u003c/td\u003e\u003c/tr\u003e\u003c/table\u003e", "schema": { "$ref": "#/definitions/response.Error" } } }, "security": [ { "authorization": [] } ], "summary": "Delete screenshots content", "tags": [ "Public Content V2" ], "x-errorCodes": { "20001": "unauthorized access", "772602": "Unable to check user ban status/Unable to get updated ugc content", "772603": "Content not found", "772604": "User has been banned to update content" }, "x-security": [ { "userPermissions": [ "NAMESPACE:{namespace}:USER:{userId}:CONTENT [DELETE]" ] } ] } }, "/ugc/v2/public/namespaces/{namespace}/users/{userId}/groups/{groupId}/contents": { "get": { "consumes": [ "application/json", "application/octet-stream" ], "description": "Get content belong to a group", "operationId": "PublicGetGroupContentsV2", "parameters": [ { "description": "group ID", "in": "path", "name": "groupId", "required": true, "type": "string" }, { "description": "namespace of the game", "in": "path", "name": "namespace", "required": true, "type": "string" }, { "description": "user ID", "in": "path", "name": "userId", "required": true, "type": "string" }, { "default": 20, "description": "number of content per page", "in": "query", "name": "limit", "type": "integer" }, { "default": 0, "description": "the offset number to retrieve", "in": "query", "name": "offset", "type": "integer" } ], "produces": [ "application/json" ], "responses": { "200": { "description": "Get content belong to a group", "schema": { "$ref": "#/definitions/models.PaginatedContentDownloadResponseV2" } }, "400": { "description": "\u003ctable\u003e\u003ctr\u003e\u003ctd\u003eerrorCode\u003c/td\u003e\u003ctd\u003eerrorMessage\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e773101\u003c/td\u003e\u003ctd\u003einvalid paging parameter\u003c/td\u003e\u003c/tr\u003e\u003c/table\u003e", "schema": { "$ref": "#/definitions/response.Error" } }, "401": { "description": "\u003ctable\u003e\u003ctr\u003e\u003ctd\u003eerrorCode\u003c/td\u003e\u003ctd\u003eerrorMessage\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e20001\u003c/td\u003e\u003ctd\u003eunauthorized access\u003c/td\u003e\u003c/tr\u003e\u003c/table\u003e", "schema": { "$ref": "#/definitions/response.Error" } }, "404": { "description": "\u003ctable\u003e\u003ctr\u003e\u003ctd\u003eerrorCode\u003c/td\u003e\u003ctd\u003eerrorMessage\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e773103\u003c/td\u003e\u003ctd\u003eNo group content was found\u003c/td\u003e\u003c/tr\u003e\u003c/table\u003e", "schema": { "$ref": "#/definitions/response.Error" } }, "500": { "description": "\u003ctable\u003e\u003ctr\u003e\u003ctd\u003eerrorCode\u003c/td\u003e\u003ctd\u003eerrorMessage\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e773102\u003c/td\u003e\u003ctd\u003eUnable to get ugc content: database error\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e770901\u003c/td\u003e\u003ctd\u003eUnable to get ugc content: database error/Unable to get creator\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e770801\u003c/td\u003e\u003ctd\u003eUnable to get ugc content: database/Unable to get creator\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e770903\u003c/td\u003e\u003ctd\u003eFailed generate download URL\u003c/td\u003e\u003c/tr\u003e\u003c/table\u003e", "schema": { "$ref": "#/definitions/response.Error" } } }, "security": [ { "authorization": [] } ], "summary": "Get contents belong to a group", "tags": [ "Public Group" ], "x-errorCodes": { "20001": "unauthorized access", "770801": "Unable to get ugc content: database/Unable to get creator", "770901": "Unable to get ugc content: database error/Unable to get creator", "770903": "Failed generate download URL", "773101": "invalid paging parameter", "773102": "Unable to get ugc content: database error", "773103": "No group content was found" }, "x-security": [ { "userPermissions": [ "NAMESPACE:{namespace}:USER:{userId}:CONTENT [READ]" ] } ] } }, "/ugc/v2/public/namespaces/{namespace}/users/{userId}/staging-contents": { "get": { "consumes": [ "application/json", "application/octet-stream" ], "description": "List user staging contents", "operationId": "ListUserStagingContents", "parameters": [ { "description": "namespace of the game", "in": "path", "name": "namespace", "required": true, "type": "string" }, { "description": "user ID", "in": "path", "name": "userId", "required": true, "type": "string" }, { "description": "number of configs per page", "in": "query", "name": "limit", "type": "integer" }, { "description": "offset number to retrieve", "in": "query", "name": "offset", "type": "integer" }, { "default": "createdTimed:desc", "description": "sort query result\navailable value:\n- createdTime\n- createdTime:desc\n- createdTime:asc\n- updatedTime\n- updatedTime:desc\n- updatedTime:asc", "in": "query", "name": "sortBy", "type": "string" }, { "description": "filter by content status [*PENDING*, *REJECTED*]", "in": "query", "name": "status", "type": "string" } ], "produces": [ "application/json" ], "responses": { "200": { "description": "list user's staging content", "schema": { "$ref": "#/definitions/models.PaginatedListStagingContentResponse" } }, "400": { "description": "\u003ctable\u003e\u003ctr\u003e\u003ctd\u003eerrorCode\u003c/td\u003e\u003ctd\u003eerrorMessage\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e774301\u003c/td\u003e\u003ctd\u003einvalid paging parameter\u003c/td\u003e\u003c/tr\u003e\u003c/table\u003e", "schema": { "$ref": "#/definitions/response.Error" } }, "401": { "description": "\u003ctable\u003e\u003ctr\u003e\u003ctd\u003eerrorCode\u003c/td\u003e\u003ctd\u003eerrorMessage\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e20001\u003c/td\u003e\u003ctd\u003eunauthorized access\u003c/td\u003e\u003c/tr\u003e\u003c/table\u003e", "schema": { "$ref": "#/definitions/response.Error" } }, "403": { "description": "\u003ctable\u003e\u003ctr\u003e\u003ctd\u003eerrorCode\u003c/td\u003e\u003ctd\u003eerrorMessage\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e20013\u003c/td\u003e\u003ctd\u003einsufficient permission\u003c/td\u003e\u003c/tr\u003e\u003c/table\u003e", "schema": { "$ref": "#/definitions/response.Error" } }, "500": { "description": "\u003ctable\u003e\u003ctr\u003e\u003ctd\u003eerrorCode\u003c/td\u003e\u003ctd\u003eerrorMessage\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e774302\u003c/td\u003e\u003ctd\u003eunable to get staging content\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e774303\u003c/td\u003e\u003ctd\u003eunable to generate presigned URL\u003c/td\u003e\u003c/tr\u003e\u003c/table\u003e", "schema": { "$ref": "#/definitions/response.Error" } } }, "security": [ { "authorization": [] } ], "summary": "List user staging contents", "tags": [ "Public Staging Content" ], "x-errorCodes": { "20001": "unauthorized access", "20013": "insufficient permission", "774301": "invalid paging parameter", "774302": "unable to get staging content", "774303": "unable to generate presigned URL" }, "x-security": [ { "userPermissions": [ "NAMESPACE:{namespace}:USER:{userId}:CONTENT [READ]" ] } ] } }, "/ugc/v2/public/namespaces/{namespace}/users/{userId}/staging-contents/{contentId}": { "delete": { "consumes": [ "application/json", "application/octet-stream" ], "description": "Delete user staging content by ID", "operationId": "DeleteUserStagingContentByID", "parameters": [ { "description": "content ID", "in": "path", "name": "contentId", "required": true, "type": "string" }, { "description": "namespace of the game", "in": "path", "name": "namespace", "required": true, "type": "string" }, { "description": "user ID", "in": "path", "name": "userId", "required": true, "type": "string" } ], "produces": [ "application/json" ], "responses": { "204": { "description": "staging content deleted" }, "401": { "description": "\u003ctable\u003e\u003ctr\u003e\u003ctd\u003eerrorCode\u003c/td\u003e\u003ctd\u003eerrorMessage\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e20001\u003c/td\u003e\u003ctd\u003eunauthorized access\u003c/td\u003e\u003c/tr\u003e\u003c/table\u003e", "schema": { "$ref": "#/definitions/response.Error" } }, "403": { "description": "\u003ctable\u003e\u003ctr\u003e\u003ctd\u003eerrorCode\u003c/td\u003e\u003ctd\u003eerrorMessage\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e20013\u003c/td\u003e\u003ctd\u003einsufficient permission\u003c/td\u003e\u003c/tr\u003e\u003c/table\u003e", "schema": { "$ref": "#/definitions/response.Error" } }, "404": { "description": "\u003ctable\u003e\u003ctr\u003e\u003ctd\u003eerrorCode\u003c/td\u003e\u003ctd\u003eerrorMessage\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e774417\u003c/td\u003e\u003ctd\u003estaging content not found\u003c/td\u003e\u003c/tr\u003e\u003c/table\u003e", "schema": { "$ref": "#/definitions/response.Error" } }, "500": { "description": "\u003ctable\u003e\u003ctr\u003e\u003ctd\u003eerrorCode\u003c/td\u003e\u003ctd\u003eerrorMessage\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e774418\u003c/td\u003e\u003ctd\u003eunable to delete staging content\u003c/td\u003e\u003c/tr\u003e\u003c/table\u003e", "schema": { "$ref": "#/definitions/response.Error" } } }, "security": [ { "authorization": [] } ], "summary": "Delete user staging content by id", "tags": [ "Public Staging Content" ], "x-errorCodes": { "20001": "unauthorized access", "20013": "insufficient permission", "774417": "staging content not found", "774418": "unable to delete staging content" }, "x-security": [ { "userPermissions": [ "NAMESPACE:{namespace}:USER:{userId}:CONTENT [DELETE]" ] } ] }, "get": { "consumes": [ "application/json", "application/octet-stream" ], "description": "Get user staging content by ID", "operationId": "GetUserStagingContentByID", "parameters": [ { "description": "content ID", "in": "path", "name": "contentId", "required": true, "type": "string" }, { "description": "namespace of the game", "in": "path", "name": "namespace", "required": true, "type": "string" }, { "description": "user ID", "in": "path", "name": "userId", "required": true, "type": "string" } ], "produces": [ "application/json" ], "responses": { "200": { "description": "staging content", "schema": { "$ref": "#/definitions/models.StagingContentResponse" } }, "401": { "description": "\u003ctable\u003e\u003ctr\u003e\u003ctd\u003eerrorCode\u003c/td\u003e\u003ctd\u003eerrorMessage\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e20001\u003c/td\u003e\u003ctd\u003eunauthorized access\u003c/td\u003e\u003c/tr\u003e\u003c/table\u003e", "schema": { "$ref": "#/definitions/response.Error" } }, "403": { "description": "\u003ctable\u003e\u003ctr\u003e\u003ctd\u003eerrorCode\u003c/td\u003e\u003ctd\u003eerrorMessage\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e20013\u003c/td\u003e\u003ctd\u003einsufficient permission\u003c/td\u003e\u003c/tr\u003e\u003c/table\u003e", "schema": { "$ref": "#/definitions/response.Error" } }, "404": { "description": "\u003ctable\u003e\u003ctr\u003e\u003ctd\u003eerrorCode\u003c/td\u003e\u003ctd\u003eerrorMessage\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e774401\u003c/td\u003e\u003ctd\u003estaging content not found\u003c/td\u003e\u003c/tr\u003e\u003c/table\u003e", "schema": { "$ref": "#/definitions/response.Error" } }, "500": { "description": "\u003ctable\u003e\u003ctr\u003e\u003ctd\u003eerrorCode\u003c/td\u003e\u003ctd\u003eerrorMessage\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e774402\u003c/td\u003e\u003ctd\u003eunable to get staging content\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e774403\u003c/td\u003e\u003ctd\u003eunable to generate presigned URL\u003c/td\u003e\u003c/tr\u003e\u003c/table\u003e", "schema": { "$ref": "#/definitions/response.Error" } } }, "security": [ { "authorization": [] } ], "summary": "Get user staging content by id", "tags": [ "Public Staging Content" ], "x-errorCodes": { "20001": "unauthorized access", "20013": "insufficient permission", "774401": "staging content not found", "774402": "unable to get staging content", "774403": "unable to generate presigned URL" }, "x-security": [ { "userPermissions": [ "NAMESPACE:{namespace}:USER:{userId}:CONTENT [READ]" ] } ] }, "put": { "consumes": [ "application/json", "application/octet-stream" ], "description": "Update staging content", "operationId": "UpdateStagingContent", "parameters": [ { "in": "body", "name": "body", "required": true, "schema": { "$ref": "#/definitions/models.UpdateStagingContentRequest" } }, { "description": "content ID", "in": "path", "name": "contentId", "required": true, "type": "string" }, { "description": "namespace of the game", "in": "path", "name": "namespace", "required": true, "type": "string" }, { "description": "user ID", "in": "path", "name": "userId", "required": true, "type": "string" } ], "produces": [ "application/json" ], "responses": { "200": { "description": "staging content updated", "schema": { "$ref": "#/definitions/models.StagingContentResponse" } }, "400": { "description": "\u003ctable\u003e\u003ctr\u003e\u003ctd\u003eerrorCode\u003c/td\u003e\u003ctd\u003eerrorMessage\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e774411\u003c/td\u003e\u003ctd\u003eInvalid request body\u003c/td\u003e\u003c/tr\u003e\u003c/table\u003e", "schema": { "$ref": "#/definitions/response.Error" } }, "401": { "description": "\u003ctable\u003e\u003ctr\u003e\u003ctd\u003eerrorCode\u003c/td\u003e\u003ctd\u003eerrorMessage\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e20001\u003c/td\u003e\u003ctd\u003eunauthorized access\u003c/td\u003e\u003c/tr\u003e\u003c/table\u003e", "schema": { "$ref": "#/definitions/response.Error" } }, "403": { "description": "\u003ctable\u003e\u003ctr\u003e\u003ctd\u003eerrorCode\u003c/td\u003e\u003ctd\u003eerrorMessage\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e774412\u003c/td\u003e\u003ctd\u003euser has been banned to update content\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e20013\u003c/td\u003e\u003ctd\u003einsufficient permission\u003c/td\u003e\u003c/tr\u003e\u003c/table\u003e", "schema": { "$ref": "#/definitions/response.Error" } }, "404": { "description": "\u003ctable\u003e\u003ctr\u003e\u003ctd\u003eerrorCode\u003c/td\u003e\u003ctd\u003eerrorMessage\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e774413\u003c/td\u003e\u003ctd\u003estaging content not found\u003c/td\u003e\u003c/tr\u003e\u003c/table\u003e", "schema": { "$ref": "#/definitions/response.Error" } }, "500": { "description": "\u003ctable\u003e\u003ctr\u003e\u003ctd\u003eerrorCode\u003c/td\u003e\u003ctd\u003eerrorMessage\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e774414\u003c/td\u003e\u003ctd\u003eunable to update staging content\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e774415\u003c/td\u003e\u003ctd\u003eunable to generate presigned URL\u003c/td\u003e\u003c/tr\u003e\u003c/table\u003e", "schema": { "$ref": "#/definitions/response.Error" } } }, "security": [ { "authorization": [] } ], "summary": "Update staging content", "tags": [ "Public Staging Content" ], "x-errorCodes": { "20001": "unauthorized access", "20013": "insufficient permission", "774411": "Invalid request body", "774412": "user has been banned to update content", "774413": "staging content not found", "774414": "unable to update staging content", "774415": "unable to generate presigned URL" }, "x-security": [ { "userPermissions": [ "NAMESPACE:{namespace}:USER:{userId}:CONTENT [UPDATE]" ] } ] } } }, "definitions": { "models.AddDownloadCountResponse": { "properties": { "contentId": { "type": "string" } }, "required": [ "contentId" ] }, "models.AdminContentRequestV2": { "properties": { "contentType": { "description": "S3 content type", "type": "string" }, "customAttributes": { "type": "object" }, "fileExtension": { "type": "string" }, "name": { "type": "string" }, "shareCode": { "type": "string" }, "subType": { "type": "string" }, "tags": { "items": { "type": "string" }, "type": "array" }, "type": { "type": "string" } }, "required": [ "name" ] }, "models.AdminGetContentBulkRequest": { "properties": { "contentIds": { "items": { "type": "string" }, "type": "array" } }, "required": [ "contentIds" ] }, "models.AdminUpdateContentRequest": { "properties": { "contentType": { "type": "string" }, "customAttributes": { "type": "object" }, "fileExtension": { "type": "string" }, "name": { "type": "string" }, "payload": { "type": "string" }, "preview": { "description": "Preview is legacy code, please use Screenshot instead", "type": "string" }, "previewMetadata": { "$ref": "#/definitions/models.previewMetadata" }, "shareCode": { "type": "string" }, "subType": { "type": "string" }, "tags": { "items": { "type": "string" }, "type": "array" }, "type": { "type": "string" }, "updateContentFile": { "type": "boolean", "x-omitempty": false } }, "required": [ "contentType", "fileExtension", "name", "payload", "preview", "subType", "tags", "type", "updateContentFile" ] }, "models.AdminUpdateContentRequestV2": { "properties": { "customAttributes": { "type": "object" }, "name": { "type": "string" }, "shareCode": { "type": "string" }, "subType": { "type": "string" }, "tags": { "items": { "type": "string" }, "type": "array" }, "type": { "type": "string" } } }, "models.ApproveStagingContentRequest": { "properties": { "approved": { "type": "boolean", "x-omitempty": false }, "note": { "type": "string" } }, "required": [ "approved" ] }, "models.ChannelRequest": { "properties": { "id": { "type": "string" }, "name": { "type": "string" } }, "required": [ "name" ] }, "models.ChannelResponse": { "properties": { "id": { "type": "string" }, "name": { "type": "string" }, "namespace": { "type": "string" }, "parentNamespace": { "type": "string" }, "userId": { "type": "string" } }, "required": [ "id", "name", "namespace", "userId" ] }, "models.ConfigResponse": { "properties": { "key": { "type": "string" }, "namespace": { "type": "string" }, "value": { "type": "string" } }, "required": [ "key", "namespace", "value" ] }, "models.ContentDownloadResponse": { "properties": { "channelId": { "type": "string" }, "createdTime": { "type": "string" }, "creatorFollowState": { "$ref": "#/definitions/models.CreatorFollowState" }, "creatorName": { "description": "Creator Name is deprecated", "type": "string" }, "customAttributes": { "type": "object" }, "downloadCount": { "format": "int32", "type": "integer" }, "fileExtension": { "type": "string" }, "groups": { "items": { "type": "string" }, "type": "array" }, "id": { "type": "string" }, "isHidden": { "type": "boolean", "x-omitempty": false }, "isOfficial": { "type": "boolean", "x-omitempty": false }, "likeCount": { "format": "int32", "type": "integer" }, "likeState": { "$ref": "#/definitions/models.LikeState" }, "name": { "type": "string" }, "namespace": { "type": "string" }, "payload": { "type": "string" }, "payloadURL": { "items": { "$ref": "#/definitions/models.PayloadURL" }, "type": "array" }, "previewURL": { "items": { "$ref": "#/definitions/models.PreviewURL" }, "type": "array" }, "screenshots": { "items": { "$ref": "#/definitions/models.ScreenshotResponse" }, "type": "array" }, "shareCode": { "type": "string" }, "subType": { "type": "string" }, "tags": { "items": { "type": "string" }, "type": "array" }, "type": { "type": "string" }, "updatedTime": { "type": "string" }, "userId": { "type": "string" } }, "required": [ "channelId", "createdTime", "creatorFollowState", "creatorName", "downloadCount", "fileExtension", "id", "isHidden", "isOfficial", "likeCount", "name", "namespace", "shareCode", "subType", "tags", "type", "updatedTime", "userId" ] }, "models.ContentDownloadResponseV2": { "properties": { "channelId": { "type": "string" }, "createdTime": { "type": "string" }, "creatorFollowState": { "$ref": "#/definitions/models.CreatorFollowState" }, "customAttributes": { "type": "object" }, "downloadCount": { "format": "int32", "type": "integer" }, "fileExtension": { "type": "string" }, "groups": { "items": { "type": "string" }, "type": "array" }, "id": { "type": "string" }, "isHidden": { "type": "boolean", "x-omitempty": false }, "isOfficial": { "type": "boolean", "x-omitempty": false }, "likeCount": { "format": "int32", "type": "integer" }, "likeState": { "$ref": "#/definitions/models.LikeState" }, "name": { "type": "string" }, "namespace": { "type": "string" }, "payloadURL": { "items": { "$ref": "#/definitions/models.PayloadURL" }, "type": "array" }, "screenshots": { "items": { "$ref": "#/definitions/models.ScreenshotResponse" }, "type": "array" }, "shareCode": { "type": "string" }, "subType": { "type": "string" }, "tags": { "items": { "type": "string" }, "type": "array" }, "type": { "type": "string" }, "updatedTime": { "type": "string" }, "userId": { "type": "string" } }, "required": [ "channelId", "createdTime", "creatorFollowState", "downloadCount", "id", "isHidden", "isOfficial", "likeCount", "name", "namespace", "shareCode", "tags", "userId" ] }, "models.ContentDownloaderResponse": { "properties": { "contentId": { "type": "string" }, "createdTime": { "format": "date-time", "type": "string", "x-nullable": false }, "downloadedBy": { "type": "string" }, "namespace": { "type": "string" } }, "required": [ "contentId", "createdTime", "downloadedBy", "namespace" ] }, "models.ContentLikeRequest": { "properties": { "likeStatus": { "type": "boolean", "x-omitempty": false } }, "required": [ "likeStatus" ] }, "models.ContentLikeResponse": { "properties": { "contentId": { "type": "string" }, "likeStatus": { "type": "boolean", "x-omitempty": false } }, "required": [ "contentId", "likeStatus" ] }, "models.ContentLikersResponse": { "properties": { "contentId": { "type": "string" }, "createdTime": { "format": "date-time", "type": "string", "x-nullable": false }, "likedBy": { "type": "string" }, "namespace": { "type": "string" } }, "required": [ "contentId", "createdTime", "likedBy", "namespace" ] }, "models.ContentRequestV2": { "properties": { "contentType": { "description": "S3 content type", "type": "string" }, "customAttributes": { "type": "object" }, "fileExtension": { "type": "string" }, "name": { "type": "string" }, "subType": { "type": "string" }, "tags": { "items": { "type": "string" }, "type": "array" }, "type": { "type": "string" } }, "required": [ "name" ] }, "models.ContentSnapshot": { "properties": { "fileExtension": { "type": "string" }, "name": { "type": "string" }, "url": { "type": "string" } }, "required": [ "fileExtension", "name", "url" ] }, "models.ContentVersionResponse": { "properties": { "content": { "$ref": "#/definitions/models.ContentSnapshot" }, "id": { "type": "string" }, "updatedAt": { "type": "string" }, "version": { "type": "string" } }, "required": [ "content", "id", "updatedAt", "version" ] }, "models.CopyContentRequest": { "properties": { "customAttributes": { "type": "object" }, "name": { "type": "string" }, "subType": { "type": "string" }, "tags": { "items": { "type": "string" }, "type": "array" }, "targetChannelId": { "type": "string" }, "type": { "type": "string" } }, "required": [ "targetChannelId" ] }, "models.CreateContentRequest": { "properties": { "customAttributes": { "type": "object" }, "name": { "type": "string" }, "payload": { "type": "string" }, "preview": { "description": "Preview is legacy code, please use Screenshot instead", "type": "string" }, "previewMetadata": { "$ref": "#/definitions/models.previewMetadata" }, "subType": { "type": "string" }, "tags": { "items": { "type": "string" }, "type": "array" }, "type": { "type": "string" } }, "required": [ "name", "payload", "preview", "subType", "tags", "type" ] }, "models.CreateContentRequestS3": { "properties": { "contentType": { "type": "string" }, "customAttributes": { "type": "object" }, "fileExtension": { "type": "string" }, "name": { "type": "string" }, "preview": { "description": "Preview is legacy code, please use Screenshot instead", "type": "string" }, "previewMetadata": { "$ref": "#/definitions/models.previewMetadata" }, "shareCode": { "type": "string" }, "subType": { "type": "string" }, "tags": { "items": { "type": "string" }, "type": "array" }, "type": { "type": "string" } }, "required": [ "name", "preview", "subType", "tags", "type" ] }, "models.CreateContentResponse": { "properties": { "channelId": { "type": "string" }, "contentStatus": { "enum": [ "PUBLISHED", "UNDER_REVIEW" ], "type": "string" }, "contentType": { "type": "string" }, "createdTime": { "type": "string" }, "creatorName": { "description": "Creator Name is deprecated", "type": "string" }, "customAttributes": { "type": "object" }, "fileExtension": { "type": "string" }, "id": { "type": "string" }, "isHidden": { "type": "boolean", "x-omitempty": false }, "isOfficial": { "type": "boolean", "x-omitempty": false }, "name": { "type": "string" }, "namespace": { "type": "string" }, "parentNamespace": { "type": "string" }, "payloadURL": { "items": { "$ref": "#/definitions/models.PayloadURL" }, "type": "array" }, "preview": { "description": "Preview is legacy code, please use Screenshot instead", "type": "string" }, "previewURL": { "items": { "$ref": "#/definitions/models.PreviewURL" }, "type": "array" }, "shareCode": { "description": "shareCode will be empty if content is under review", "type": "string" }, "subType": { "type": "string" }, "tags": { "items": { "type": "string" }, "type": "array" }, "type": { "type": "string" }, "updatedTime": { "type": "string" }, "userId": { "type": "string" } }, "required": [ "channelId", "createdTime", "creatorName", "fileExtension", "id", "isHidden", "isOfficial", "name", "namespace", "parentNamespace", "preview", "shareCode", "subType", "tags", "type", "updatedTime", "userId" ] }, "models.CreateContentResponseV2": { "properties": { "channelId": { "type": "string" }, "contentStatus": { "enum": [ "PUBLISHED", "UNDER_REVIEW" ], "type": "string" }, "contentType": { "description": "S3 content type", "type": "string" }, "createdTime": { "type": "string" }, "customAttributes": { "type": "object" }, "fileExtension": { "type": "string" }, "fileLocation": { "type": "string" }, "id": { "type": "string" }, "isHidden": { "type": "boolean", "x-omitempty": false }, "isOfficial": { "type": "boolean", "x-omitempty": false }, "name": { "type": "string" }, "namespace": { "type": "string" }, "parentNamespace": { "type": "string" }, "payloadURL": { "items": { "$ref": "#/definitions/models.PayloadURL" }, "type": "array" }, "shareCode": { "description": "shareCode will be empty if content is under review", "type": "string" }, "subType": { "type": "string" }, "tags": { "items": { "type": "string" }, "type": "array" }, "type": { "type": "string" }, "updatedTime": { "type": "string" }, "userId": { "type": "string" } }, "required": [ "channelId", "contentStatus", "createdTime", "fileLocation", "id", "isHidden", "isOfficial", "name", "namespace", "parentNamespace", "shareCode", "tags", "userId" ] }, "models.CreateGroupRequest": { "properties": { "contents": { "items": { "type": "string" }, "type": "array" }, "name": { "type": "string" } }, "required": [ "contents", "name" ] }, "models.CreateGroupResponse": { "properties": { "contents": { "items": { "type": "string" }, "type": "array" }, "createdAt": { "type": "string" }, "id": { "type": "string" }, "name": { "type": "string" }, "namespace": { "type": "string" }, "parentNamespace": { "type": "string" }, "userId": { "type": "string" } }, "required": [ "contents", "createdAt", "id", "name", "namespace", "parentNamespace", "userId" ] }, "models.CreateScreenshotRequest": { "properties": { "screenshots": { "items": { "$ref": "#/definitions/models.createScreenshotRequestItem" }, "type": "array" } }, "required": [ "screenshots" ] }, "models.CreateScreenshotResponse": { "properties": { "screenshots": { "items": { "$ref": "#/definitions/models.ScreenshotResponse" }, "type": "array" } }, "required": [ "screenshots" ] }, "models.CreateTagRequest": { "properties": { "tag": { "type": "string" } }, "required": [ "tag" ] }, "models.CreateTagResponse": { "properties": { "id": { "type": "string" }, "namespace": { "type": "string" }, "tag": { "type": "string" } }, "required": [ "id", "namespace", "tag" ] }, "models.CreateTypeRequest": { "properties": { "subtype": { "items": { "type": "string" }, "type": "array" }, "type": { "type": "string" } }, "required": [ "subtype", "type" ] }, "models.CreateTypeResponse": { "properties": { "id": { "type": "string" }, "namespace": { "type": "string" }, "parentNamespace": { "type": "string" }, "subtype": { "items": { "type": "string" }, "type": "array" }, "type": { "type": "string" } }, "required": [ "id", "namespace", "parentNamespace", "subtype", "type" ] }, "models.CreatorFollowState": { "properties": { "state": { "type": "boolean", "x-omitempty": false }, "userId": { "type": "string" } }, "required": [ "state", "userId" ] }, "models.CreatorOverviewResponse": { "properties": { "followCount": { "description": "Number of followers", "format": "int32", "type": "integer" }, "followingCount": { "description": "Number of following", "format": "int32", "type": "integer" }, "id": { "type": "string" }, "namespace": { "type": "string" }, "parentNamespace": { "type": "string" }, "totalLikedContent": { "description": "Total all other user's like to creator content", "format": "integer", "type": "integer" } }, "required": [ "followCount", "followingCount", "id", "namespace", "parentNamespace", "totalLikedContent" ] }, "models.CreatorResponse": { "properties": { "creatorFollowState": { "$ref": "#/definitions/models.CreatorFollowState" }, "followCount": { "description": "Number of followers", "format": "int32", "type": "integer" }, "followingCount": { "description": "Number of following", "format": "int32", "type": "integer" }, "id": { "type": "string" }, "namespace": { "type": "string" }, "parentNamespace": { "type": "string" }, "totalLikedContent": { "description": "Total all other user's like to creator content", "format": "integer", "type": "integer" } }, "required": [ "creatorFollowState", "followCount", "followingCount", "id", "namespace", "parentNamespace", "totalLikedContent" ] }, "models.GenerateContentUploadURLRequest": { "properties": { "contentType": { "description": "S3 content type", "type": "string" }, "fileExtension": { "type": "string" } } }, "models.GenerateContentUploadURLResponse": { "properties": { "contentType": { "description": "S3 content type", "type": "string" }, "fileExtension": { "type": "string" }, "fileLocation": { "description": "S3 file location", "type": "string" }, "url": { "type": "string" } }, "required": [ "fileLocation", "url" ] }, "models.GetContentBulkByShareCodesRequest": { "properties": { "shareCodes": { "items": { "type": "string" }, "type": "array" } }, "required": [ "shareCodes" ] }, "models.GetContentPreviewResponse": { "properties": { "preview": { "description": "Preview is legacy code, please use Screenshot instead", "type": "string" }, "previewURL": { "$ref": "#/definitions/models.PreviewURL" } }, "required": [ "preview" ] }, "models.HideContentRequest": { "properties": { "isHidden": { "type": "boolean", "x-omitempty": false } }, "required": [ "isHidden" ] }, "models.LikeState": { "properties": { "state": { "type": "boolean", "x-omitempty": false }, "userId": { "type": "string" } }, "required": [ "state", "userId" ] }, "models.ListContentVersionsResponse": { "properties": { "data": { "items": { "$ref": "#/definitions/models.ContentVersionResponse" }, "type": "array" } }, "required": [ "data" ] }, "models.PaginatedContentDownloadResponse": { "properties": { "data": { "items": { "$ref": "#/definitions/models.ContentDownloadResponse" }, "type": "array" }, "paging": { "$ref": "#/definitions/models.PagingCursor" } }, "required": [ "data", "paging" ] }, "models.PaginatedContentDownloadResponseV2": { "properties": { "data": { "items": { "$ref": "#/definitions/models.ContentDownloadResponseV2" }, "type": "array" }, "paging": { "$ref": "#/definitions/models.PagingCursor" } }, "required": [ "data", "paging" ] }, "models.PaginatedContentDownloaderResponse": { "properties": { "data": { "items": { "$ref": "#/definitions/models.ContentDownloaderResponse" }, "type": "array" }, "paging": { "$ref": "#/definitions/models.PagingCursor" } }, "required": [ "data", "paging" ] }, "models.PaginatedContentLikersResponse": { "properties": { "data": { "items": { "$ref": "#/definitions/models.ContentLikersResponse" }, "type": "array" }, "paging": { "$ref": "#/definitions/models.PagingCursor" } }, "required": [ "data", "paging" ] }, "models.PaginatedCreatorOverviewResponse": { "properties": { "data": { "items": { "$ref": "#/definitions/models.CreatorOverviewResponse" }, "type": "array" }, "paging": { "$ref": "#/definitions/models.PagingCursor" } }, "required": [ "data", "paging" ] }, "models.PaginatedGetChannelResponse": { "properties": { "data": { "items": { "$ref": "#/definitions/models.ChannelResponse" }, "type": "array" }, "paging": { "$ref": "#/definitions/models.PagingCursor" } }, "required": [ "data", "paging" ] }, "models.PaginatedGetConfigsResponse": { "properties": { "data": { "items": { "$ref": "#/definitions/models.ConfigResponse" }, "type": "array" }, "paging": { "$ref": "#/definitions/models.PagingCursor" } }, "required": [ "data", "paging" ] }, "models.PaginatedGetTagResponse": { "properties": { "data": { "items": { "$ref": "#/definitions/models.CreateTagResponse" }, "type": "array" }, "paging": { "$ref": "#/definitions/models.PagingCursor" } }, "required": [ "data", "paging" ] }, "models.PaginatedGetTypeResponse": { "properties": { "data": { "items": { "$ref": "#/definitions/models.CreateTypeResponse" }, "type": "array" }, "paging": { "$ref": "#/definitions/models.PagingCursor" } }, "required": [ "data", "paging" ] }, "models.PaginatedGroupResponse": { "properties": { "data": { "items": { "$ref": "#/definitions/models.CreateGroupResponse" }, "type": "array" }, "paging": { "$ref": "#/definitions/models.PagingCursor" } }, "required": [ "data", "paging" ] }, "models.PaginatedListStagingContentResponse": { "properties": { "data": { "items": { "$ref": "#/definitions/models.StagingContentResponse" }, "type": "array" }, "paging": { "$ref": "#/definitions/models.PagingCursor" } }, "required": [ "data", "paging" ] }, "models.PagingCursor": { "properties": { "first": { "type": "string" }, "last": { "type": "string" }, "next": { "type": "string" }, "previous": { "type": "string" } }, "required": [ "first", "last", "next", "previous" ] }, "models.PayloadURL": { "properties": { "source": { "type": "string" }, "url": { "type": "string" } }, "required": [ "source", "url" ] }, "models.PreviewURL": { "properties": { "source": { "type": "string" }, "url": { "type": "string" } } }, "models.PublicChannelRequest": { "properties": { "name": { "type": "string" } }, "required": [ "name" ] }, "models.PublicCreateContentRequestS3": { "properties": { "contentType": { "type": "string" }, "customAttributes": { "type": "object" }, "fileExtension": { "type": "string" }, "name": { "type": "string" }, "preview": { "description": "Preview is legacy code, please use Screenshot instead", "type": "string" }, "previewMetadata": { "$ref": "#/definitions/models.previewMetadata" }, "subType": { "type": "string" }, "tags": { "items": { "type": "string" }, "type": "array" }, "type": { "type": "string" } }, "required": [ "name", "preview", "subType", "tags", "type" ] }, "models.PublicGetContentBulkRequest": { "properties": { "contentIds": { "items": { "type": "string" }, "type": "array" } }, "required": [ "contentIds" ] }, "models.ScreenshotResponse": { "properties": { "contentType": { "type": "string" }, "description": { "type": "string" }, "fileExtension": { "type": "string" }, "screenshotId": { "type": "string" }, "source": { "type": "string" }, "url": { "type": "string" } }, "required": [ "description", "fileExtension", "screenshotId", "source", "url" ] }, "models.StagingContentResponse": { "properties": { "channelId": { "type": "string" }, "createdTime": { "format": "date-time", "type": "string", "x-nullable": false }, "customAttributes": { "type": "object" }, "fileExtension": { "type": "string" }, "id": { "type": "string" }, "name": { "type": "string" }, "namespace": { "type": "string" }, "note": { "type": "string" }, "payloadURL": { "type": "string" }, "screenshots": { "items": { "$ref": "#/definitions/models.ScreenshotResponse" }, "type": "array" }, "status": { "enum": [ "APPROVED", "PENDING", "REJECTED" ], "type": "string" }, "subType": { "type": "string" }, "tags": { "items": { "type": "string" }, "type": "array" }, "type": { "type": "string" }, "updatedTime": { "format": "date-time", "type": "string", "x-nullable": true }, "userId": { "type": "string" } }, "required": [ "channelId", "createdTime", "id", "name", "namespace", "status", "tags", "userId" ] }, "models.UpdateChannelRequest": { "properties": { "name": { "type": "string" } }, "required": [ "name" ] }, "models.UpdateConfigRequest": { "properties": { "value": { "type": "string" } }, "required": [ "value" ] }, "models.UpdateContentRequest": { "properties": { "contentType": { "type": "string" }, "customAttributes": { "type": "object" }, "fileExtension": { "type": "string" }, "name": { "type": "string" }, "payload": { "type": "string" }, "preview": { "description": "Preview is legacy code, please use Screenshot instead", "type": "string" }, "previewMetadata": { "$ref": "#/definitions/models.previewMetadata" }, "subType": { "type": "string" }, "tags": { "items": { "type": "string" }, "type": "array" }, "type": { "type": "string" }, "updateContentFile": { "type": "boolean", "x-omitempty": false } }, "required": [ "contentType", "fileExtension", "name", "payload", "preview", "subType", "tags", "type", "updateContentFile" ] }, "models.UpdateContentRequestV2": { "properties": { "customAttributes": { "type": "object" }, "name": { "type": "string" }, "subType": { "type": "string" }, "tags": { "items": { "type": "string" }, "type": "array" }, "type": { "type": "string" } } }, "models.UpdateContentResponseV2": { "properties": { "channelId": { "type": "string" }, "contentStatus": { "enum": [ "PUBLISHED", "UNDER_REVIEW" ], "type": "string" }, "contentType": { "description": "S3 content type", "type": "string" }, "createdTime": { "type": "string" }, "customAttributes": { "type": "object" }, "fileExtension": { "type": "string" }, "fileLocation": { "type": "string" }, "id": { "type": "string" }, "isHidden": { "type": "boolean", "x-omitempty": false }, "isOfficial": { "type": "boolean", "x-omitempty": false }, "name": { "type": "string" }, "namespace": { "type": "string" }, "parentNamespace": { "type": "string" }, "payloadURL": { "items": { "$ref": "#/definitions/models.PayloadURL" }, "type": "array" }, "shareCode": { "type": "string" }, "subType": { "type": "string" }, "tags": { "items": { "type": "string" }, "type": "array" }, "type": { "type": "string" }, "updatedTime": { "type": "string" }, "userId": { "type": "string" } }, "required": [ "channelId", "contentStatus", "createdTime", "fileLocation", "id", "isHidden", "isOfficial", "name", "namespace", "parentNamespace", "shareCode", "tags", "userId" ] }, "models.UpdateContentShareCodeRequest": { "properties": { "shareCode": { "type": "string" } }, "required": [ "shareCode" ] }, "models.UpdateFileLocationRequest": { "properties": { "fileExtension": { "type": "string" }, "fileLocation": { "type": "string" } }, "required": [ "fileLocation" ] }, "models.UpdateScreenshotRequest": { "properties": { "screenshots": { "items": { "$ref": "#/definitions/models.updateScreenshot" }, "type": "array" } }, "required": [ "screenshots" ] }, "models.UpdateScreenshotResponse": { "properties": { "screenshots": { "items": { "$ref": "#/definitions/models.updateScreenshot" }, "type": "array" } }, "required": [ "screenshots" ] }, "models.UpdateStagingContentRequest": { "properties": { "fileExtension": { "type": "string" }, "fileLocation": { "type": "string" } }, "required": [ "fileLocation" ] }, "models.UserFollowRequest": { "properties": { "followStatus": { "type": "boolean", "x-omitempty": false } }, "required": [ "followStatus" ] }, "models.UserFollowResponse": { "properties": { "followStatus": { "type": "boolean", "x-omitempty": false }, "userId": { "type": "string" } }, "required": [ "followStatus", "userId" ] }, "models.createScreenshotRequestItem": { "properties": { "contentType": { "type": "string" }, "description": { "type": "string" }, "fileExtension": { "enum": [ "bmp", "jfif", "jpeg", "jpg", "pjp", "png" ], "type": "string" } }, "required": [ "description", "fileExtension" ] }, "models.previewMetadata": { "properties": { "previewContentType": { "type": "string" }, "previewFileExtension": { "type": "string" } }, "required": [ "previewContentType", "previewFileExtension" ] }, "models.updateScreenshot": { "properties": { "description": { "type": "string" }, "screenshotId": { "type": "string" } }, "required": [ "description", "screenshotId" ] }, "response.Error": { "properties": { "errorCode": { "format": "int32", "type": "integer" }, "errorMessage": { "type": "string" } }, "required": [ "errorCode", "errorMessage" ] } }, "x-docs": { "alias": "ugc", "host": "https://stage.accelbyte.io", "path": "/ugc/apidocs/api.json" }, "x-version": { "buildDate": "2025-09-26T01:35:16+00:00", "gitHash": "5772da0793a9331c0e505dc8b923a8912ddc9bc7", "name": "justice-ugc-service", "realm": "staging", "version": "2.25.1", "version-roles-seeding": "1.0.21" } }