{ "host": "demo.accelbyte.io", "info": { "description": "Justice Challenge Service", "title": "justice-challenge-service", "version": "1.0.0" }, "schemes": [ "https" ], "externalDocs": { "description": "API Docs", "url": "https://stage.accelbyte.io/challenge/apidocs" }, "securityDefinitions": { "authorization": { "in": "header", "name": "Authorization", "type": "apiKey" } }, "swagger": "2.0", "paths": { "/challenge/v1/admin/namespaces/{namespace}/challenges": { "get": { "description": "- Required permission: ADMIN:NAMESPACE:{namespace}:CHALLENGE [READ]", "operationId": "adminGetChallenges", "parameters": [ { "description": "namespace of the game", "in": "path", "name": "namespace", "required": true, "type": "string" }, { "description": "filter challenges by code with likes behavior", "in": "query", "name": "keyword", "type": "string" }, { "default": 20, "description": "limit the amount of data retrieved", "in": "query", "name": "limit", "type": "integer" }, { "default": 0, "description": "offset", "in": "query", "name": "offset", "type": "integer" }, { "description": "sort list by attributes.\n\t\t\tdefault value: updatedAt:desc.", "enum": [ "createdAt", "createdAt:asc", "createdAt:desc", "updatedAt", "updatedAt:asc", "updatedAt:desc" ], "in": "query", "name": "sortBy", "type": "string" }, { "description": "challenge status", "enum": [ "INIT", "RETIRED", "TIED" ], "in": "query", "name": "status", "type": "string" }, { "collectionFormat": "csv", "description": "filter challenges by tags, comma separated value", "in": "query", "items": { "type": "string" }, "name": "tags", "type": "array" } ], "produces": [ "application/json" ], "responses": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/model.ListChallengeResponse" } }, "400": { "description": "\u003ctable\u003e\u003ctr\u003e\u003ctd\u003eerrorCode\u003c/td\u003e\u003ctd\u003eerrorMessage\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e20018\u003c/td\u003e\u003ctd\u003ebad request: {{message}}\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/iam.ErrorResponse" } }, "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/iam.ErrorResponse" } }, "500": { "description": "\u003ctable\u003e\u003ctr\u003e\u003ctd\u003eerrorCode\u003c/td\u003e\u003ctd\u003eerrorMessage\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e20000\u003c/td\u003e\u003ctd\u003einternal server error: {{message}}\u003c/td\u003e\u003c/tr\u003e\u003c/table\u003e", "schema": { "$ref": "#/definitions/response.Error" } } }, "security": [ { "authorization": [] } ], "summary": "List Challenges", "tags": [ "Challenge Configuration" ], "x-errorCodes": { "20000": "internal server error: {{message}}", "20001": "unauthorized access", "20013": "insufficient permission", "20018": "bad request: {{message}}" }, "x-security": [ { "userPermissions": [ "ADMIN:NAMESPACE:{namespace}:CHALLENGE [READ]" ] } ] }, "post": { "consumes": [ "application/json" ], "description": "- Required permission: ADMIN:NAMESPACE:{namespace}:CHALLENGE [CREATE]\nChallenge is a collection of goals that can be completed by players. Challenge can have rules that specify what and when goals will be available for players to be taken.\n#### Request body:\n- code: only lowercase letters, numbers, and the separator - are allowed; must start and end with letter\n- name: name of the challenge\n- description: text describing about the challenge (optional)\n- startDate: timestamp of when the challenge is started\n- endDate: timestamp of when the challenge is ended (optional)\n- endAfter: describe number of period challenge will be retired after (optional). To configure challenge that never end, leave the endDate and endAfter field null/empty.\n- repeatAfter: describe number of period challenge\u0026#39;s goals will be repeated after. Leave it empty if you don\u0026#39;t want to repeat the challenge.\n- rotation: describe how long goals in a challenge will be available for players to progress before rotated with another goals. (DAILY|WEEKLY|MONTHLY|NONE)\n- activeGoalsPerRotation: number of goals per rotation (currently only applicable for RANDOMIZE assignment)\n- assignmentRule: describe how the goals will be assigned and scheduled to users. (FIXED|RANDOMIZED|UNSCHEDULED|CUSTOM)\n- goalsVisibility: describe whether users can see all goals under challenge, or only active goal in one rotation period only. (SHOWALL|PERIODONLY)\n- resetConfig: describe when rotation reset will happen (optional).\n\t- resetTime: Reset time must follow hours:minutes in 24 hours format (e.g. 01:30, 23:15) and in UTC timezone. Default to \u0026#34;00:00\u0026#34;\n\t- resetDay: Reset Day follows the ISO-8601 standard, from 1 (Monday) to 7 (Sunday). Default to 1 in WEEKLY rotation.\n\t- resetDate: Reset Date must be a number 1 - 31. Default to 1 in MONTHLY rotation.\n- randomizedPerRotation:\n\t- true: each goal will be randomly assigned to multiple periods\n\t- false: a goal will only be assigned to one period\n- tags: challenge\u0026#39;s labels.", "operationId": "adminCreateChallenge", "parameters": [ { "in": "body", "name": "body", "required": true, "schema": { "$ref": "#/definitions/model.CreateChallengeRequest" } }, { "description": "namespace of the game", "in": "path", "name": "namespace", "required": true, "type": "string" } ], "produces": [ "application/json" ], "responses": { "201": { "description": "Created", "schema": { "$ref": "#/definitions/model.ChallengeResponse" } }, "400": { "description": "\u003ctable\u003e\u003ctr\u003e\u003ctd\u003eerrorCode\u003c/td\u003e\u003ctd\u003eerrorMessage\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e20018\u003c/td\u003e\u003ctd\u003ebad request: {{message}}\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/iam.ErrorResponse" } }, "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/iam.ErrorResponse" } }, "409": { "description": "\u003ctable\u003e\u003ctr\u003e\u003ctd\u003eerrorCode\u003c/td\u003e\u003ctd\u003eerrorMessage\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e99002\u003c/td\u003e\u003ctd\u003eduplicate key error: {{message}}\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\u003e99003\u003c/td\u003e\u003ctd\u003echallenge validation error: {{message}}\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\u003e20000\u003c/td\u003e\u003ctd\u003einternal server error: {{message}}\u003c/td\u003e\u003c/tr\u003e\u003c/table\u003e", "schema": { "$ref": "#/definitions/response.Error" } } }, "security": [ { "authorization": [] } ], "summary": "Create New Challenge", "tags": [ "Challenge Configuration" ], "x-errorCodes": { "20000": "internal server error: {{message}}", "20001": "unauthorized access", "20013": "insufficient permission", "20018": "bad request: {{message}}", "99002": "duplicate key error: {{message}}", "99003": "challenge validation error: {{message}}" }, "x-security": [ { "userPermissions": [ "ADMIN:NAMESPACE:{namespace}:CHALLENGE [CREATE]" ] } ] } }, "/challenge/v1/admin/namespaces/{namespace}/challenges/item/references": { "get": { "description": "- Required permission: ADMIN:NAMESPACE:{namespace}:CHALLENGE [READ]", "operationId": "adminGetItemReferences", "parameters": [ { "description": "namespace of the game", "in": "path", "name": "namespace", "required": true, "type": "string" }, { "description": "the id of the ecommerce item", "in": "query", "name": "itemId", "required": true, "type": "string" } ], "produces": [ "application/json" ], "responses": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/model.ItemReferenceResponse" } }, "400": { "description": "\u003ctable\u003e\u003ctr\u003e\u003ctd\u003eerrorCode\u003c/td\u003e\u003ctd\u003eerrorMessage\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e20018\u003c/td\u003e\u003ctd\u003ebad request: {{message}}\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/iam.ErrorResponse" } }, "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/iam.ErrorResponse" } }, "500": { "description": "\u003ctable\u003e\u003ctr\u003e\u003ctd\u003eerrorCode\u003c/td\u003e\u003ctd\u003eerrorMessage\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e20000\u003c/td\u003e\u003ctd\u003einternal server error: {{message}}\u003c/td\u003e\u003c/tr\u003e\u003c/table\u003e", "schema": { "$ref": "#/definitions/response.Error" } } }, "security": [ { "authorization": [] } ], "summary": "Get challenge ecommerce item references", "tags": [ "Utilities" ], "x-errorCodes": { "20000": "internal server error: {{message}}", "20001": "unauthorized access", "20013": "insufficient permission", "20018": "bad request: {{message}}" }, "x-security": [ { "userPermissions": [ "ADMIN:NAMESPACE:{namespace}:CHALLENGE [READ]" ] } ] } }, "/challenge/v1/admin/namespaces/{namespace}/challenges/users/{userId}": { "get": { "description": "- Required permission: ADMIN:NAMESPACE:{namespace}:CHALLENGE [READ]\nThe endpoint provides you an access to list of currently active challenges in which the player is participating\n", "operationId": "adminGetActiveChallenges", "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": "limit the amount of data retrieved", "in": "query", "name": "limit", "type": "integer" }, { "default": 0, "description": "offset", "in": "query", "name": "offset", "type": "integer" } ], "produces": [ "application/json" ], "responses": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/model.ListChallengeResponse" } }, "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/iam.ErrorResponse" } }, "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/iam.ErrorResponse" } }, "500": { "description": "\u003ctable\u003e\u003ctr\u003e\u003ctd\u003eerrorCode\u003c/td\u003e\u003ctd\u003eerrorMessage\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e20000\u003c/td\u003e\u003ctd\u003einternal server error: {{message}}\u003c/td\u003e\u003c/tr\u003e\u003c/table\u003e", "schema": { "$ref": "#/definitions/response.Error" } } }, "security": [ { "authorization": [] } ], "summary": "List User's Active Challenges", "tags": [ "Challenge Configuration" ], "x-errorCodes": { "20000": "internal server error: {{message}}", "20001": "unauthorized access", "20013": "insufficient permission" }, "x-security": [ { "userPermissions": [ "ADMIN:NAMESPACE:{namespace}:CHALLENGE [READ]" ] } ] } }, "/challenge/v1/admin/namespaces/{namespace}/challenges/{challengeCode}": { "delete": { "description": "- Required permission: ADMIN:NAMESPACE:{namespace}:CHALLENGE [DELETE]", "operationId": "adminDeleteChallenge", "parameters": [ { "description": "the code of the challenge data to be deleted", "in": "path", "name": "challengeCode", "required": true, "type": "string" }, { "description": "namespace of the game", "in": "path", "name": "namespace", "required": true, "type": "string" } ], "produces": [ "application/json" ], "responses": { "204": { "description": "No Content" }, "400": { "description": "\u003ctable\u003e\u003ctr\u003e\u003ctd\u003eerrorCode\u003c/td\u003e\u003ctd\u003eerrorMessage\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e20018\u003c/td\u003e\u003ctd\u003ebad request: {{message}}\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\u003e20029\u003c/td\u003e\u003ctd\u003enot 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\u003e20000\u003c/td\u003e\u003ctd\u003einternal server error: {{message}}\u003c/td\u003e\u003c/tr\u003e\u003c/table\u003e", "schema": { "$ref": "#/definitions/response.Error" } } }, "security": [ { "authorization": [] } ], "summary": "Delete a Challenge", "tags": [ "Challenge Configuration" ], "x-errorCodes": { "20000": "internal server error: {{message}}", "20001": "unauthorized access", "20013": "insufficient permission", "20018": "bad request: {{message}}", "20029": "not found" }, "x-security": [ { "userPermissions": [ "ADMIN:NAMESPACE:{namespace}:CHALLENGE [DELETE]" ] } ] }, "get": { "description": "- Required permission: ADMIN:NAMESPACE:{namespace}:CHALLENGE [READ]", "operationId": "adminGetChallenge", "parameters": [ { "description": "the code of the challenge data to get", "in": "path", "name": "challengeCode", "required": true, "type": "string" }, { "description": "namespace of the game", "in": "path", "name": "namespace", "required": true, "type": "string" } ], "produces": [ "application/json" ], "responses": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/model.ChallengeResponse" } }, "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/iam.ErrorResponse" } }, "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/iam.ErrorResponse" } }, "404": { "description": "\u003ctable\u003e\u003ctr\u003e\u003ctd\u003eerrorCode\u003c/td\u003e\u003ctd\u003eerrorMessage\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e20029\u003c/td\u003e\u003ctd\u003enot 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\u003e20000\u003c/td\u003e\u003ctd\u003einternal server error: {{message}}\u003c/td\u003e\u003c/tr\u003e\u003c/table\u003e", "schema": { "$ref": "#/definitions/response.Error" } } }, "security": [ { "authorization": [] } ], "summary": "Get a Challenge", "tags": [ "Challenge Configuration" ], "x-errorCodes": { "20000": "internal server error: {{message}}", "20001": "unauthorized access", "20013": "insufficient permission", "20029": "not found" }, "x-security": [ { "userPermissions": [ "ADMIN:NAMESPACE:{namespace}:CHALLENGE [READ]" ] } ] }, "put": { "consumes": [ "application/json" ], "description": "- Required permission: ADMIN:NAMESPACE:{namespace}:CHALLENGE [UPDATE]\nRequest body:\n- name: name of the challenge\n- description: text describing about the challenge (optional)\n- startDate: timestamp of when the challenge is started\n- endDate: timestamp of when the challenge is ended (optional)\n- endAfter: describe number of period challenge will be retired after (optional). To configure challenge that never end, leave the endDate and endAfter field null/empty.\n- repeatAfter: describe number of period challenge\u0026#39;s goals will be repeated after. Leave it empty if you don\u0026#39;t want to repeat the challenge.\n- rotation: describe how long goals in a challenge will be available for players to progress before rotated with another goals. (DAILY|WEEKLY|MONTHLY|NONE)\n- activeGoalsPerRotation: number of goals per rotation (currently only applicable for RANDOMIZE assignment)\n- assignmentRule: describe how the goals will be assigned and scheduled to users. (FIXED|RANDOMIZED|UNSCHEDULED|CUSTOM)\n- goalsVisibility: describe whether users can see all goals under challenge, or only active goal in one rotation period only. (SHOWALL|PERIODONLY)\n- resetConfig: describe when rotation reset will happen (optional).\n\t- resetTime: Reset time must follow hours:minutes in 24 hours format (e.g. 01:30, 23:15) and in UTC timezone. Default to \u0026#34;00:00\u0026#34;\n\t- resetDay: Reset Day follows the ISO-8601 standard, from 1 (Monday) to 7 (Sunday). Default to 1 in WEEKLY rotation.\n\t- resetDate: Reset Date must be a number 1 - 31. Default to 1 in MONTHLY rotation.\n- randomizedPerRotation:\n\t- true: each goal will be randomly assigned to multiple periods\n\t- false: a goal will only be assigned to one period\n- tags: challenge\u0026#39;s labels.", "operationId": "adminUpdateChallenge", "parameters": [ { "in": "body", "name": "body", "required": true, "schema": { "$ref": "#/definitions/model.UpdateChallengeRequest" } }, { "description": "the code of the challenge data to update", "in": "path", "name": "challengeCode", "required": true, "type": "string" }, { "description": "namespace of the game", "in": "path", "name": "namespace", "required": true, "type": "string" } ], "produces": [ "application/json" ], "responses": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/model.ChallengeResponse" } }, "400": { "description": "\u003ctable\u003e\u003ctr\u003e\u003ctd\u003eerrorCode\u003c/td\u003e\u003ctd\u003eerrorMessage\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e20018\u003c/td\u003e\u003ctd\u003ebad request: {{message}}\u003c/td\u003e\u003c/tr\u003e\u003c/table\u003e", "schema": { "$ref": "#/definitions/response.Error" } }, "401": { "description": "Unauthorized", "schema": { "$ref": "#/definitions/response.Error" } }, "403": { "description": "Forbidden", "schema": { "$ref": "#/definitions/response.Error" } }, "404": { "description": "Not Found", "schema": { "$ref": "#/definitions/response.Error" } }, "422": { "description": "Unprocessable Entity", "schema": { "$ref": "#/definitions/response.Error" } }, "500": { "description": "Internal Server Error", "schema": { "$ref": "#/definitions/response.Error" } } }, "security": [ { "authorization": [] } ], "summary": "Update a Challenge", "tags": [ "Challenge Configuration" ], "x-errorCodes": { "20018": "bad request: {{message}}" }, "x-security": [ { "userPermissions": [ "ADMIN:NAMESPACE:{namespace}:CHALLENGE [UPDATE]" ] } ] } }, "/challenge/v1/admin/namespaces/{namespace}/challenges/{challengeCode}/goals": { "get": { "description": "- Required permission: ADMIN:NAMESPACE:{namespace}:CHALLENGE [READ]", "operationId": "adminGetGoals", "parameters": [ { "description": "challenge code", "in": "path", "name": "challengeCode", "required": true, "type": "string" }, { "description": "namespace of the game", "in": "path", "name": "namespace", "required": true, "type": "string" }, { "default": 20, "description": "limit the amount of data retrieved", "in": "query", "name": "limit", "type": "integer" }, { "default": 0, "description": "offset", "in": "query", "name": "offset", "type": "integer" }, { "description": "sort list by attributes.\n\t\t\tdefault value: updatedAt:desc.", "enum": [ "createdAt", "createdAt:asc", "createdAt:desc", "updatedAt", "updatedAt:asc", "updatedAt:desc" ], "in": "query", "name": "sortBy", "type": "string" }, { "collectionFormat": "csv", "description": "filter list by tags", "in": "query", "items": { "type": "string" }, "name": "tags", "type": "array" } ], "produces": [ "application/json" ], "responses": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/model.GetGoalsResponse" } }, "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/iam.ErrorResponse" } }, "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/iam.ErrorResponse" } }, "404": { "description": "\u003ctable\u003e\u003ctr\u003e\u003ctd\u003eerrorCode\u003c/td\u003e\u003ctd\u003eerrorMessage\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e20029\u003c/td\u003e\u003ctd\u003enot 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\u003e20000\u003c/td\u003e\u003ctd\u003einternal server error: {{message}}\u003c/td\u003e\u003c/tr\u003e\u003c/table\u003e", "schema": { "$ref": "#/definitions/response.Error" } } }, "security": [ { "authorization": [] } ], "summary": "List Goals of a Challenge", "tags": [ "Goal Configuration" ], "x-errorCodes": { "20000": "internal server error: {{message}}", "20001": "unauthorized access", "20013": "insufficient permission", "20029": "not found" }, "x-security": [ { "userPermissions": [ "ADMIN:NAMESPACE:{namespace}:CHALLENGE [READ]" ] } ] }, "post": { "consumes": [ "application/json" ], "description": "- Required permission: ADMIN:NAMESPACE:{namespace}:CHALLENGE [CREATE]\nRequest body:\n- code: unique within a challenge.\n- name: name of the goal.\n- description: text describing the goal (optional).\n- schedule: a time range that indicated the availability of a goal within a timeframe. Used in FIXED assignment rule, this will be required in that case.\n- requirementGroups: contains array of objects consisting of operator and predicates attribute. When requirements evaluation happened, each item\u0026#39;s predicates will be evaluated first, by operating the predicates with given operator.\n\tAfter all items evaluated, the results of the evaluation on each item then will be logically evaluated using OR operator.\n\t- operator: logical operator used to validate the completion of a goal. a goal is considered complete once complete predicates operated with operator result in true.\n\t- predicates: list of progression parameters to be tracked.\n\t\t- parameterType: the type of parameter for challenge to be progressed with. the available options are:\n\t\t\t- STATISTIC: progress by user statistic item value.\n\t\t\t- STATISTIC_CYCLE: progress user statistic cycle item value. statCycleId must be included.\n\t\t\t- ACHIEVEMENT: progress by user achievement.\n\t\t\t- USERACCOUNT: progress by user account event.\n\t\t\t- ENTITLEMENT: progress by user\u0026#39;s item entitlement ownership. Supported item types are APP, CODE, INGAMEITEM, LOOTBOX, MEDIA, and OPTIONBOX.\n\t\t- parameterName: the name of the parameter for challenge to be progressed with.\n\t\t\t- STATISTIC: refers to stat code.\n\t\t\t- STATISTIC_CYCLE: refers to stat code with statCycleId must be included.\n\t\t\t- ACHIEVEMENT: refers to achievement code.\n\t\t\t- USERACCOUNT: refers to a specific event related to user accounts. The current possible events include: userAccountCreated, gameUserAccountCreated, userAccountVerified, userAccountLinked, userAccountUpgraded, thirdPartyAccountCreated, userLoggedIn, userThirdPartyLoggedIn and fullAccount.\n\t\t\t\t- For the **userAccountLinked** event, **parameterName** will utilize **platformId** rather than the event name. This will be validated against the list of active third-party accounts configuration within the namespace, such as *psn*, *steam*, or *device*.\n\t\t\t- ENTITLEMENT: ecommerce store\u0026#39;s item SKU.\n\t\t- matcher: the comparison operator used to compare the current value of a parameter and targetValue to validate the completion of a predicate. Possible values are EQUAL, LESS_THAN, GREATER_THAN, LESS_THAN_EQUAL, and GREATER_THAN_EQUAL.\n\t\t- targetValue: the target number to be reached by the parameter.\n\t\t- statCycleId: specify the statCycleId used to track statistic value in a cycle with STATISTIC_CYCLE parameterType (optional).\n- rewards: list of rewards that will be claimable once a goal is complete.\n- tags: goal\u0026#39;s labels.\n- isActive: when goal is in a schedule, isActive determine whether goal is active to progress or not.\nGoal describe set of requirements that need to be fulfilled by players in order to complete it and describe what is the rewards given to player when they complete the goal.\nThe requirement will have target value and a operator that will evaluate that against an observable player’s attribute (e.g. statistic, entitlement). Goal belongs to a challenge.\nSupported item type for ENTITLEMENT reward type: APP, BUNDLE, CODE, COINS, EXTENSION, INGAMEITEM, LOOTBOX, MEDIA, OPTIONBOX.\nNumber of goals per challenge is **limited to 100 goals**.", "operationId": "adminCreateGoal", "parameters": [ { "in": "body", "name": "body", "required": true, "schema": { "$ref": "#/definitions/model.CreateGoalRequest" } }, { "description": "challenge code", "in": "path", "name": "challengeCode", "required": true, "type": "string" }, { "description": "namespace of the game", "in": "path", "name": "namespace", "required": true, "type": "string" } ], "produces": [ "application/json" ], "responses": { "201": { "description": "Created", "schema": { "$ref": "#/definitions/model.GoalResponse" } }, "400": { "description": "\u003ctable\u003e\u003ctr\u003e\u003ctd\u003eerrorCode\u003c/td\u003e\u003ctd\u003eerrorMessage\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e20018\u003c/td\u003e\u003ctd\u003ebad request: {{message}}\u003c/td\u003e\u003c/tr\u003e\u003c/table\u003e", "schema": { "$ref": "#/definitions/iam.ErrorResponse" } }, "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/iam.ErrorResponse" } }, "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/iam.ErrorResponse" } }, "404": { "description": "\u003ctable\u003e\u003ctr\u003e\u003ctd\u003eerrorCode\u003c/td\u003e\u003ctd\u003eerrorMessage\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e20029\u003c/td\u003e\u003ctd\u003enot 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\u003e99002\u003c/td\u003e\u003ctd\u003eduplicate key error: {{message}}\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\u003e99004\u003c/td\u003e\u003ctd\u003eunprocessable entity: {{message}}\u003c/td\u003e\u003c/tr\u003e\u003c/table\u003e", "schema": { "$ref": "#/definitions/iam.ErrorResponse" } }, "500": { "description": "\u003ctable\u003e\u003ctr\u003e\u003ctd\u003eerrorCode\u003c/td\u003e\u003ctd\u003eerrorMessage\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e20000\u003c/td\u003e\u003ctd\u003einternal server error: {{message}}\u003c/td\u003e\u003c/tr\u003e\u003c/table\u003e", "schema": { "$ref": "#/definitions/response.Error" } } }, "security": [ { "authorization": [] } ], "summary": "Create New Goal", "tags": [ "Goal Configuration" ], "x-errorCodes": { "20000": "internal server error: {{message}}", "20001": "unauthorized access", "20013": "insufficient permission", "20018": "bad request: {{message}}", "20029": "not found", "99002": "duplicate key error: {{message}}", "99004": "unprocessable entity: {{message}}" }, "x-security": [ { "userPermissions": [ "ADMIN:NAMESPACE:{namespace}:CHALLENGE [CREATE]" ] } ] } }, "/challenge/v1/admin/namespaces/{namespace}/challenges/{challengeCode}/goals/{code}": { "delete": { "description": "- Required permission: ADMIN:NAMESPACE:{namespace}:CHALLENGE [DELETE]", "operationId": "adminDeleteGoal", "parameters": [ { "description": "challenge code", "in": "path", "name": "challengeCode", "required": true, "type": "string" }, { "description": "goal code", "in": "path", "name": "code", "required": true, "type": "string" }, { "description": "namespace of the game", "in": "path", "name": "namespace", "required": true, "type": "string" } ], "produces": [ "application/json" ], "responses": { "204": { "description": "No Content" }, "400": { "description": "\u003ctable\u003e\u003ctr\u003e\u003ctd\u003eerrorCode\u003c/td\u003e\u003ctd\u003eerrorMessage\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e20018\u003c/td\u003e\u003ctd\u003ebad request: {{message}}\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\u003e20029\u003c/td\u003e\u003ctd\u003enot 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\u003e20000\u003c/td\u003e\u003ctd\u003einternal server error: {{message}}\u003c/td\u003e\u003c/tr\u003e\u003c/table\u003e", "schema": { "$ref": "#/definitions/response.Error" } } }, "security": [ { "authorization": [] } ], "summary": "Delete Goal", "tags": [ "Goal Configuration" ], "x-errorCodes": { "20000": "internal server error: {{message}}", "20018": "bad request: {{message}}", "20029": "not found" }, "x-security": [ { "userPermissions": [ "ADMIN:NAMESPACE:{namespace}:CHALLENGE [DELETE]" ] } ] }, "get": { "description": "- Required permission: ADMIN:NAMESPACE:{namespace}:CHALLENGE [READ]", "operationId": "adminGetGoal", "parameters": [ { "description": "challenge code", "in": "path", "name": "challengeCode", "required": true, "type": "string" }, { "description": "goal code", "in": "path", "name": "code", "required": true, "type": "string" }, { "description": "namespace of the game", "in": "path", "name": "namespace", "required": true, "type": "string" } ], "produces": [ "application/json" ], "responses": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/model.GoalResponse" } }, "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/iam.ErrorResponse" } }, "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/iam.ErrorResponse" } }, "404": { "description": "Not Found", "schema": { "$ref": "#/definitions/response.Error" } }, "500": { "description": "Internal Server Error", "schema": { "$ref": "#/definitions/response.Error" } } }, "security": [ { "authorization": [] } ], "summary": "Get Goal", "tags": [ "Goal Configuration" ], "x-errorCodes": { "20001": "unauthorized access", "20013": "insufficient permission" }, "x-security": [ { "userPermissions": [ "ADMIN:NAMESPACE:{namespace}:CHALLENGE [READ]" ] } ] }, "put": { "consumes": [ "application/json" ], "description": "- Required permission: ADMIN:NAMESPACE:{namespace}:CHALLENGE [UPDATE]\n### Request body:\n- name: name of the goal.\n- description: text describing the goal (optional).\n- schedule: a time range that indicated the availability of a goal within a timeframe. Used in FIXED assignment rule, this will be required in that case.\n- requirementGroups: contains array of objects consisting of operator and predicates attribute. When requirements evaluation happened, each item\u0026#39;s predicates will be evaluated first, by operating the predicates with given operator. After all items evaluated, the results of the evaluation on each item then will be logically evaluated using OR operator.\n\t- operator: logical operator used to validate the completion of a goal. a goal is considered complete once complete predicates operated with operator result in true.\n\t- predicates: list of progression parameters to be tracked.\n\t\t- parameterType: the type of parameter for challenge to be progressed with. the available options are:\n\t\t\t- STATISTIC: progress by user statistic item value.\n\t\t\t- STATISTIC_CYCLE: progress user statistic cycle item value. statCycleId must be included.\n\t\t\t- ACHIEVEMENT: progress by user achievement.\n\t\t\t- USERACCOUNT: progress by user account event.\n\t\t\t- ENTITLEMENT: progress by user\u0026#39;s item entitlement ownership. Supported item types are APP, CODE, INGAMEITEM, LOOTBOX, MEDIA, and OPTIONBOX.\n\t\t- parameterName: the name of the parameter for challenge to be progressed with.\n\t\t\t- STATISTIC: refers to stat code.\n\t\t\t- STATISTIC_CYCLE: refers to stat code with statCycleId must be included.\n\t\t\t- ACHIEVEMENT: refers to achievement code.\n\t\t\t- USERACCOUNT: one of the user account event. Current possible values are (userAccountCreated, gameUserAccountCreated, userAccountVerified, userAccountLinked, userAccountUpgraded,thirdPartyAccountCreated).\n\t\t\t- ENTITLEMENT: ecommerce store\u0026#39;s item SKU.\n\t- matcher: the comparison operator used to compare the curent value of a parameter and targetValue to validate the completion of a predicate. Possible values are EQUAL, LESS_THAN, GREATER_THAN, LESS_THAN_EQUAL, and GREATER_THAN_EQUAL.\n\t- targetValue: the target number to be reached by the parameter.\n\t- statCycleId: specify the statCycleId used to track statistic value in a cycle with STATISTIC_CYCLE parameterType (optional).\n- rewards: list of rewards that will be claimable once a goal is complete.\n- tags: goal\u0026#39;s labels.\n- isActive: when goal is in a schedule, isActive determine whether goal is active to progress or not (optional).\nGoal describe set of requirements that need to be fulfilled by players in order to complete it and describe what is the rewards given to player when they complete the goal.\nThe requirement will have target value and a operator that will evaluate that against an observable player’s attribute (e.g. statistic, entitlement). Goal belongs to a challenge.\nSupported item type for ENTITLEMENT reward type: APP, BUNDLE, CODE, COINS, EXTENSION, INGAMEITEM, LOOTBOX, MEDIA, OPTIONBOX", "operationId": "adminUpdateGoals", "parameters": [ { "in": "body", "name": "body", "required": true, "schema": { "$ref": "#/definitions/model.UpdateGoalRequest" } }, { "description": "challenge code", "in": "path", "name": "challengeCode", "required": true, "type": "string" }, { "description": "goal code", "in": "path", "name": "code", "required": true, "type": "string" }, { "description": "namespace of the game", "in": "path", "name": "namespace", "required": true, "type": "string" } ], "produces": [ "application/json" ], "responses": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/model.GoalResponse" } }, "400": { "description": "\u003ctable\u003e\u003ctr\u003e\u003ctd\u003eerrorCode\u003c/td\u003e\u003ctd\u003eerrorMessage\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e20018\u003c/td\u003e\u003ctd\u003ebad request: {{message}}\u003c/td\u003e\u003c/tr\u003e\u003c/table\u003e", "schema": { "$ref": "#/definitions/response.Error" } }, "404": { "description": "Not Found", "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\u003e99004\u003c/td\u003e\u003ctd\u003eunprocessable entity: {{message}}\u003c/td\u003e\u003c/tr\u003e\u003c/table\u003e", "schema": { "$ref": "#/definitions/response.Error" } }, "500": { "description": "Internal Server Error", "schema": { "$ref": "#/definitions/response.Error" } } }, "security": [ { "authorization": [] } ], "summary": "Update Goal", "tags": [ "Goal Configuration" ], "x-errorCodes": { "20018": "bad request: {{message}}", "99004": "unprocessable entity: {{message}}" }, "x-security": [ { "userPermissions": [ "ADMIN:NAMESPACE:{namespace}:CHALLENGE [UPDATE]" ] } ] } }, "/challenge/v1/admin/namespaces/{namespace}/challenges/{challengeCode}/goals/{code}/schedules": { "get": { "description": "\u0026lt;ul\u0026gt;\u0026lt;li\u0026gt;Required permission: ADMIN:NAMESPACE:{namespace}:CHALLENGE [READ]\u0026lt;/li\u0026gt;\u0026lt;/ul\u0026gt;List schedules of given goal in a challenge for specific user.", "operationId": "adminListSchedulesByGoal", "parameters": [ { "description": "challenge code", "in": "path", "name": "challengeCode", "required": true, "type": "string" }, { "description": "goal code", "in": "path", "name": "code", "required": true, "type": "string" }, { "description": "namespace of the game", "in": "path", "name": "namespace", "required": true, "type": "string" }, { "default": 20, "description": "limit the amount of data retrieved", "in": "query", "name": "limit", "type": "integer" }, { "default": 0, "description": "offset", "in": "query", "name": "offset", "type": "integer" }, { "description": "userId, UUIDv4 format without hyphen, required when querying CUSTOM challenge schedule", "in": "query", "name": "userId", "type": "string" } ], "produces": [ "application/json" ], "responses": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/model.ListScheduleByGoalResponse" } }, "400": { "description": "\u003ctable\u003e\u003ctr\u003e\u003ctd\u003eerrorCode\u003c/td\u003e\u003ctd\u003eerrorMessage\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e20018\u003c/td\u003e\u003ctd\u003ebad request: {{message}}\u003c/td\u003e\u003c/tr\u003e\u003c/table\u003e", "schema": { "$ref": "#/definitions/iam.ErrorResponse" } }, "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/iam.ErrorResponse" } }, "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/iam.ErrorResponse" } }, "404": { "description": "\u003ctable\u003e\u003ctr\u003e\u003ctd\u003eerrorCode\u003c/td\u003e\u003ctd\u003eerrorMessage\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e20029\u003c/td\u003e\u003ctd\u003enot 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\u003e20000\u003c/td\u003e\u003ctd\u003einternal server error: {{message}}\u003c/td\u003e\u003c/tr\u003e\u003c/table\u003e", "schema": { "$ref": "#/definitions/response.Error" } } }, "security": [ { "authorization": [] } ], "summary": "Get goal's schedules", "tags": [ "Schedules" ], "x-errorCodes": { "20000": "internal server error: {{message}}", "20001": "unauthorized access", "20013": "insufficient permission", "20018": "bad request: {{message}}", "20029": "not found" } } }, "/challenge/v1/admin/namespaces/{namespace}/challenges/{challengeCode}/periods": { "get": { "description": "- Required permission: ADMIN:NAMESPACE:{namespace}:CHALLENGE [READ]", "operationId": "adminGetPeriods", "parameters": [ { "description": "challenge code", "in": "path", "name": "challengeCode", "required": true, "type": "string" }, { "description": "namespace of the game", "in": "path", "name": "namespace", "required": true, "type": "string" }, { "default": 20, "description": "limit the amount of data retrieved", "in": "query", "name": "limit", "type": "integer" }, { "default": 0, "description": "offset", "in": "query", "name": "offset", "type": "integer" } ], "produces": [ "application/json" ], "responses": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/model.ListPeriodsResponse" } }, "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/iam.ErrorResponse" } }, "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/iam.ErrorResponse" } }, "404": { "description": "\u003ctable\u003e\u003ctr\u003e\u003ctd\u003eerrorCode\u003c/td\u003e\u003ctd\u003eerrorMessage\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e20029\u003c/td\u003e\u003ctd\u003enot 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\u003e20000\u003c/td\u003e\u003ctd\u003einternal server error: {{message}}\u003c/td\u003e\u003c/tr\u003e\u003c/table\u003e", "schema": { "$ref": "#/definitions/response.Error" } } }, "security": [ { "authorization": [] } ], "summary": "Get Challenge's Periods", "tags": [ "Challenge Configuration" ], "x-errorCodes": { "20000": "internal server error: {{message}}", "20001": "unauthorized access", "20013": "insufficient permission", "20029": "not found" }, "x-security": [ { "userPermissions": [ "ADMIN:NAMESPACE:{namespace}:CHALLENGE [READ]" ] } ] } }, "/challenge/v1/admin/namespaces/{namespace}/challenges/{challengeCode}/randomize": { "post": { "description": "- Required permission: ADMIN:NAMESPACE:{namespace}:CHALLENGE [UPDATE]\nThis is a utility endpoint to execute randomize goals schedule on challenge that the assignmentRule is RANDOMIZED and RandomizePerRotation assigned with true.", "operationId": "adminRandomizeChallenge", "parameters": [ { "description": "challenge code", "in": "path", "name": "challengeCode", "required": true, "type": "string" }, { "description": "namespace of the game", "in": "path", "name": "namespace", "required": true, "type": "string" } ], "produces": [ "application/json" ], "responses": { "200": { "description": "OK", "schema": { "items": { "$ref": "#/definitions/model.Schedule" }, "type": "array" } }, "400": { "description": "\u003ctable\u003e\u003ctr\u003e\u003ctd\u003eerrorCode\u003c/td\u003e\u003ctd\u003eerrorMessage\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e20018\u003c/td\u003e\u003ctd\u003ebad request: {{message}}\u003c/td\u003e\u003c/tr\u003e\u003c/table\u003e", "schema": { "$ref": "#/definitions/iam.ErrorResponse" } }, "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/iam.ErrorResponse" } }, "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/iam.ErrorResponse" } }, "404": { "description": "\u003ctable\u003e\u003ctr\u003e\u003ctd\u003eerrorCode\u003c/td\u003e\u003ctd\u003eerrorMessage\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e20029\u003c/td\u003e\u003ctd\u003enot 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\u003e20000\u003c/td\u003e\u003ctd\u003einternal server error: {{message}}\u003c/td\u003e\u003c/tr\u003e\u003c/table\u003e", "schema": { "$ref": "#/definitions/response.Error" } } }, "security": [ { "authorization": [] } ], "summary": "Randomize Goals of a Challenge", "tags": [ "Challenge Configuration" ], "x-errorCodes": { "20000": "internal server error: {{message}}", "20001": "unauthorized access", "20013": "insufficient permission", "20018": "bad request: {{message}}", "20029": "not found" }, "x-security": [ { "userPermissions": [ "ADMIN:NAMESPACE:{namespace}:CHALLENGE [UPDATE]" ] } ] } }, "/challenge/v1/admin/namespaces/{namespace}/challenges/{challengeCode}/schedules": { "get": { "description": "\u0026lt;ul\u0026gt;\u0026lt;li\u0026gt;Required permission: ADMIN:NAMESPACE:{namespace}:CHALLENGE [READ]\u0026lt;/li\u0026gt;\u0026lt;/ul\u0026gt;List schedules of given challenge for specific user. To query schedules prior to specific date time, use dateTime parameter.", "operationId": "adminListSchedules", "parameters": [ { "description": "challenge code", "in": "path", "name": "challengeCode", "required": true, "type": "string" }, { "description": "namespace of the game", "in": "path", "name": "namespace", "required": true, "type": "string" }, { "description": "use RFC3339 format(2006-01-02T15:04:05Z).", "format": "date-time", "in": "query", "name": "dateTime", "type": "string", "x-nullable": true }, { "default": 20, "description": "limit the amount of data retrieved", "in": "query", "name": "limit", "type": "integer" }, { "default": 0, "description": "offset", "in": "query", "name": "offset", "type": "integer" }, { "description": "userId, UUIDv4 format without hyphen, required when querying CUSTOM challenge schedule", "in": "query", "name": "userId", "type": "string" } ], "produces": [ "application/json" ], "responses": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/model.ListSchedulesResponse" } }, "400": { "description": "\u003ctable\u003e\u003ctr\u003e\u003ctd\u003eerrorCode\u003c/td\u003e\u003ctd\u003eerrorMessage\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e20018\u003c/td\u003e\u003ctd\u003ebad request: {{message}}\u003c/td\u003e\u003c/tr\u003e\u003c/table\u003e", "schema": { "$ref": "#/definitions/iam.ErrorResponse" } }, "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/iam.ErrorResponse" } }, "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/iam.ErrorResponse" } }, "404": { "description": "\u003ctable\u003e\u003ctr\u003e\u003ctd\u003eerrorCode\u003c/td\u003e\u003ctd\u003eerrorMessage\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e20029\u003c/td\u003e\u003ctd\u003enot 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\u003e20000\u003c/td\u003e\u003ctd\u003einternal server error: {{message}}\u003c/td\u003e\u003c/tr\u003e\u003c/table\u003e", "schema": { "$ref": "#/definitions/response.Error" } } }, "security": [ { "authorization": [] } ], "summary": "Get Challenge's schedules", "tags": [ "Schedules" ], "x-errorCodes": { "20000": "internal server error: {{message}}", "20001": "unauthorized access", "20013": "insufficient permission", "20018": "bad request: {{message}}", "20029": "not found" } } }, "/challenge/v1/admin/namespaces/{namespace}/challenges/{challengeCode}/tied": { "delete": { "description": "- Required permission: ADMIN:NAMESPACE:{namespace}:CHALLENGE [DELETE]\n- This endpoint will delete the combination of related data: CHALLENGES, GOALS, SCHEDULES, PLAYER PROGRESSIONS\n", "operationId": "adminDeleteTiedChallenge", "parameters": [ { "description": "the code of the challenge data to be deleted", "in": "path", "name": "challengeCode", "required": true, "type": "string" }, { "description": "namespace of the game", "in": "path", "name": "namespace", "required": true, "type": "string" } ], "produces": [ "application/json" ], "responses": { "204": { "description": "No Content" }, "400": { "description": "\u003ctable\u003e\u003ctr\u003e\u003ctd\u003eerrorCode\u003c/td\u003e\u003ctd\u003eerrorMessage\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e20018\u003c/td\u003e\u003ctd\u003ebad request: {{message}}\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\u003e20029\u003c/td\u003e\u003ctd\u003enot 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\u003e20000\u003c/td\u003e\u003ctd\u003einternal server error: {{message}}\u003c/td\u003e\u003c/tr\u003e\u003c/table\u003e", "schema": { "$ref": "#/definitions/response.Error" } } }, "security": [ { "authorization": [] } ], "summary": "Delete Tied Challenge", "tags": [ "Challenge Configuration" ], "x-errorCodes": { "20000": "internal server error: {{message}}", "20001": "unauthorized access", "20013": "insufficient permission", "20018": "bad request: {{message}}", "20029": "not found" }, "x-security": [ { "userPermissions": [ "ADMIN:NAMESPACE:{namespace}:CHALLENGE [DELETE]" ] } ] } }, "/challenge/v1/admin/namespaces/{namespace}/challenges/{challengeCode}/tied/schedule": { "put": { "consumes": [ "application/json" ], "description": "- Required permission: ADMIN:NAMESPACE:{namespace}:CHALLENGE [UPDATE]\n### Request body:\n- action: Update the challenge schedule. The available options are:\n\t- STOP: Ends the challenge, changing its status to RETIRED. This option supports all types of challenges.\n\t- ACCELERATE: Speeds up the challenge\u0026#39;s end time. Note that this option does not apply to challenges with an \u0026#39;endAfter\u0026#39; value.\n- endDate: The timestamp specifying when the challenge should end (required if the action is ACCELERATE).\n", "operationId": "adminUpdateTiedChallengeSchedule", "parameters": [ { "in": "body", "name": "body", "required": true, "schema": { "$ref": "#/definitions/model.UpdateChallengeScheduleRequest" } }, { "description": "the code of the challenge data to be updated", "in": "path", "name": "challengeCode", "required": true, "type": "string" }, { "description": "namespace of the game", "in": "path", "name": "namespace", "required": true, "type": "string" } ], "produces": [ "application/json" ], "responses": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/model.ChallengeResponse" } }, "400": { "description": "\u003ctable\u003e\u003ctr\u003e\u003ctd\u003eerrorCode\u003c/td\u003e\u003ctd\u003eerrorMessage\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e20018\u003c/td\u003e\u003ctd\u003ebad request: {{message}}\u003c/td\u003e\u003c/tr\u003e\u003c/table\u003e", "schema": { "$ref": "#/definitions/response.Error" } }, "401": { "description": "Unauthorized", "schema": { "$ref": "#/definitions/response.Error" } }, "403": { "description": "Forbidden", "schema": { "$ref": "#/definitions/response.Error" } }, "404": { "description": "Not Found", "schema": { "$ref": "#/definitions/response.Error" } }, "500": { "description": "Internal Server Error", "schema": { "$ref": "#/definitions/response.Error" } } }, "security": [ { "authorization": [] } ], "summary": "Update Tied Challenge Schedule", "tags": [ "Challenge Configuration" ], "x-errorCodes": { "20018": "bad request: {{message}}" }, "x-security": [ { "userPermissions": [ "ADMIN:NAMESPACE:{namespace}:CHALLENGE [UPDATE]" ] } ] } }, "/challenge/v1/admin/namespaces/{namespace}/plugins/assignment": { "delete": { "description": "- Required permission: ADMIN:NAMESPACE:{namespace}:CHALLENGE:PLUGIN [DELETE]", "operationId": "adminDeleteAssignmentPlugin", "parameters": [ { "description": "namespace of the game", "in": "path", "name": "namespace", "required": true, "type": "string" } ], "produces": [ "application/json" ], "responses": { "204": { "description": "No Content" }, "400": { "description": "\u003ctable\u003e\u003ctr\u003e\u003ctd\u003eerrorCode\u003c/td\u003e\u003ctd\u003eerrorMessage\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e20018\u003c/td\u003e\u003ctd\u003ebad request: {{message}}\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/iam.ErrorResponse" } }, "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/iam.ErrorResponse" } }, "404": { "description": "\u003ctable\u003e\u003ctr\u003e\u003ctd\u003eerrorCode\u003c/td\u003e\u003ctd\u003eerrorMessage\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e20029\u003c/td\u003e\u003ctd\u003enot found\u003c/td\u003e\u003c/tr\u003e\u003c/table\u003e", "schema": { "$ref": "#/definitions/iam.ErrorResponse" } }, "500": { "description": "\u003ctable\u003e\u003ctr\u003e\u003ctd\u003eerrorCode\u003c/td\u003e\u003ctd\u003eerrorMessage\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e20000\u003c/td\u003e\u003ctd\u003einternal server error: {{message}}\u003c/td\u003e\u003c/tr\u003e\u003c/table\u003e", "schema": { "$ref": "#/definitions/response.Error" } } }, "security": [ { "authorization": [] } ], "summary": "Delete assignment plugin", "tags": [ "Plugins" ], "x-errorCodes": { "20000": "internal server error: {{message}}", "20001": "unauthorized access", "20013": "insufficient permission", "20018": "bad request: {{message}}", "20029": "not found" }, "x-security": [ { "userPermissions": [ "ADMIN:NAMESPACE:{namespace}:CHALLENGE:PLUGIN [DELETE]" ] } ] }, "get": { "description": "- Required permission: ADMIN:NAMESPACE:{namespace}:CHALLENGE:PLUGIN [READ]", "operationId": "adminGetAssignmentPlugin", "parameters": [ { "description": "namespace of the game", "in": "path", "name": "namespace", "required": true, "type": "string" } ], "produces": [ "application/json" ], "responses": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/model.PluginAssignmentResponse" } }, "400": { "description": "\u003ctable\u003e\u003ctr\u003e\u003ctd\u003eerrorCode\u003c/td\u003e\u003ctd\u003eerrorMessage\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e20018\u003c/td\u003e\u003ctd\u003ebad request: {{message}}\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/iam.ErrorResponse" } }, "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/iam.ErrorResponse" } }, "404": { "description": "\u003ctable\u003e\u003ctr\u003e\u003ctd\u003eerrorCode\u003c/td\u003e\u003ctd\u003eerrorMessage\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e20029\u003c/td\u003e\u003ctd\u003enot found\u003c/td\u003e\u003c/tr\u003e\u003c/table\u003e", "schema": { "$ref": "#/definitions/iam.ErrorResponse" } }, "500": { "description": "\u003ctable\u003e\u003ctr\u003e\u003ctd\u003eerrorCode\u003c/td\u003e\u003ctd\u003eerrorMessage\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e20000\u003c/td\u003e\u003ctd\u003einternal server error: {{message}}\u003c/td\u003e\u003c/tr\u003e\u003c/table\u003e", "schema": { "$ref": "#/definitions/response.Error" } } }, "security": [ { "authorization": [] } ], "summary": "Get assignment plugin", "tags": [ "Plugins" ], "x-errorCodes": { "20000": "internal server error: {{message}}", "20001": "unauthorized access", "20013": "insufficient permission", "20018": "bad request: {{message}}", "20029": "not found" }, "x-security": [ { "userPermissions": [ "ADMIN:NAMESPACE:{namespace}:CHALLENGE:PLUGIN [READ]" ] } ] }, "post": { "consumes": [ "application/json" ], "description": "- Required permission: ADMIN:NAMESPACE:{namespace}:CHALLENGE:PLUGIN [CREATE]", "operationId": "adminCreateAssignmentPlugin", "parameters": [ { "in": "body", "name": "body", "required": true, "schema": { "$ref": "#/definitions/model.PluginAssignmentRequest" } }, { "description": "namespace of the game", "in": "path", "name": "namespace", "required": true, "type": "string" } ], "produces": [ "application/json" ], "responses": { "201": { "description": "Created", "schema": { "$ref": "#/definitions/model.PluginAssignmentResponse" } }, "400": { "description": "\u003ctable\u003e\u003ctr\u003e\u003ctd\u003eerrorCode\u003c/td\u003e\u003ctd\u003eerrorMessage\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e20018\u003c/td\u003e\u003ctd\u003ebad request: {{message}}\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/iam.ErrorResponse" } }, "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/iam.ErrorResponse" } }, "500": { "description": "\u003ctable\u003e\u003ctr\u003e\u003ctd\u003eerrorCode\u003c/td\u003e\u003ctd\u003eerrorMessage\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e20000\u003c/td\u003e\u003ctd\u003einternal server error: {{message}}\u003c/td\u003e\u003c/tr\u003e\u003c/table\u003e", "schema": { "$ref": "#/definitions/response.Error" } } }, "security": [ { "authorization": [] } ], "summary": "Create assignment plugin", "tags": [ "Plugins" ], "x-errorCodes": { "20000": "internal server error: {{message}}", "20001": "unauthorized access", "20013": "insufficient permission", "20018": "bad request: {{message}}" }, "x-security": [ { "userPermissions": [ "ADMIN:NAMESPACE:{namespace}:CHALLENGE:PLUGIN [CREATE]" ] } ] }, "put": { "consumes": [ "application/json" ], "description": "- Required permission: ADMIN:NAMESPACE:{namespace}:CHALLENGE:PLUGIN [UPDATE]", "operationId": "adminUpdateAssignmentPlugin", "parameters": [ { "in": "body", "name": "body", "required": true, "schema": { "$ref": "#/definitions/model.PluginAssignmentRequest" } }, { "description": "namespace of the game", "in": "path", "name": "namespace", "required": true, "type": "string" } ], "produces": [ "application/json" ], "responses": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/model.PluginAssignmentResponse" } }, "400": { "description": "\u003ctable\u003e\u003ctr\u003e\u003ctd\u003eerrorCode\u003c/td\u003e\u003ctd\u003eerrorMessage\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e20018\u003c/td\u003e\u003ctd\u003ebad request: {{message}}\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/iam.ErrorResponse" } }, "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/iam.ErrorResponse" } }, "404": { "description": "\u003ctable\u003e\u003ctr\u003e\u003ctd\u003eerrorCode\u003c/td\u003e\u003ctd\u003eerrorMessage\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e20029\u003c/td\u003e\u003ctd\u003enot found\u003c/td\u003e\u003c/tr\u003e\u003c/table\u003e", "schema": { "$ref": "#/definitions/iam.ErrorResponse" } }, "500": { "description": "\u003ctable\u003e\u003ctr\u003e\u003ctd\u003eerrorCode\u003c/td\u003e\u003ctd\u003eerrorMessage\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e20000\u003c/td\u003e\u003ctd\u003einternal server error: {{message}}\u003c/td\u003e\u003c/tr\u003e\u003c/table\u003e", "schema": { "$ref": "#/definitions/response.Error" } } }, "security": [ { "authorization": [] } ], "summary": "Update assignment plugin", "tags": [ "Plugins" ], "x-errorCodes": { "20000": "internal server error: {{message}}", "20001": "unauthorized access", "20013": "insufficient permission", "20018": "bad request: {{message}}", "20029": "not found" }, "x-security": [ { "userPermissions": [ "ADMIN:NAMESPACE:{namespace}:CHALLENGE:PLUGIN [UPDATE]" ] } ] } }, "/challenge/v1/admin/namespaces/{namespace}/progress/evaluate": { "post": { "consumes": [ "application/json" ], "description": "- Required permission: ADMIN:NAMESPACE:{namespace}:CHALLENGE:PROGRESSION [UPDATE]\n- Limited up to 10 users per request", "operationId": "adminEvaluateProgress", "parameters": [ { "in": "body", "name": "body", "required": true, "schema": { "$ref": "#/definitions/model.EvaluatePlayerProgressionRequest" } }, { "description": "namespace of the game", "in": "path", "name": "namespace", "required": true, "type": "string" }, { "collectionFormat": "csv", "description": "challenge code to be evaluated, comma separated value", "in": "query", "items": { "type": "string" }, "name": "challengeCode", "type": "array" } ], "produces": [ "application/json" ], "responses": { "204": { "description": "No Content" }, "400": { "description": "\u003ctable\u003e\u003ctr\u003e\u003ctd\u003eerrorCode\u003c/td\u003e\u003ctd\u003eerrorMessage\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e20018\u003c/td\u003e\u003ctd\u003ebad request: {{message}}\u003c/td\u003e\u003c/tr\u003e\u003c/table\u003e", "schema": { "$ref": "#/definitions/iam.ErrorResponse" } }, "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/iam.ErrorResponse" } }, "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/iam.ErrorResponse" } }, "404": { "description": "\u003ctable\u003e\u003ctr\u003e\u003ctd\u003eerrorCode\u003c/td\u003e\u003ctd\u003eerrorMessage\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e20029\u003c/td\u003e\u003ctd\u003enot 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\u003e20000\u003c/td\u003e\u003ctd\u003einternal server error: {{message}}\u003c/td\u003e\u003c/tr\u003e\u003c/table\u003e", "schema": { "$ref": "#/definitions/response.Error" } } }, "security": [ { "authorization": [] } ], "summary": "Evaluate User's Progressions", "tags": [ "Challenge Progression" ], "x-errorCodes": { "20000": "internal server error: {{message}}", "20001": "unauthorized access", "20013": "insufficient permission", "20018": "bad request: {{message}}", "20029": "not found" }, "x-security": [ { "userPermissions": [ "ADMIN:NAMESPACE:{namespace}:CHALLENGE:PROGRESSION [UPDATE]" ] } ] } }, "/challenge/v1/admin/namespaces/{namespace}/users/rewards/claim": { "post": { "consumes": [ "application/json" ], "description": "- Required permission: ADMIN:NAMESPACE:{namespace}:CHALLENGE:REWARD [UPDATE]", "operationId": "adminClaimUsersRewards", "parameters": [ { "in": "body", "name": "body", "required": true, "schema": { "items": { "$ref": "#/definitions/model.ClaimUsersRewardsRequest" }, "type": "array" } }, { "description": "namespace of the game", "in": "path", "name": "namespace", "required": true, "type": "string" } ], "produces": [ "application/json" ], "responses": { "200": { "description": "OK", "schema": { "items": { "$ref": "#/definitions/model.ClaimUsersRewardsResponse" }, "type": "array" } }, "400": { "description": "\u003ctable\u003e\u003ctr\u003e\u003ctd\u003eerrorCode\u003c/td\u003e\u003ctd\u003eerrorMessage\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e20018\u003c/td\u003e\u003ctd\u003ebad request: {{message}}\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/iam.ErrorResponse" } }, "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/iam.ErrorResponse" } }, "404": { "description": "\u003ctable\u003e\u003ctr\u003e\u003ctd\u003eerrorCode\u003c/td\u003e\u003ctd\u003eerrorMessage\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e20029\u003c/td\u003e\u003ctd\u003enot found\u003c/td\u003e\u003c/tr\u003e\u003c/table\u003e", "schema": { "$ref": "#/definitions/iam.ErrorResponse" } }, "500": { "description": "\u003ctable\u003e\u003ctr\u003e\u003ctd\u003eerrorCode\u003c/td\u003e\u003ctd\u003eerrorMessage\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e20000\u003c/td\u003e\u003ctd\u003einternal server error: {{message}}\u003c/td\u003e\u003c/tr\u003e\u003c/table\u003e", "schema": { "$ref": "#/definitions/response.Error" } } }, "security": [ { "authorization": [] } ], "summary": "Claim rewards of multiple users", "tags": [ "Player Reward" ], "x-errorCodes": { "20000": "internal server error: {{message}}", "20001": "unauthorized access", "20013": "insufficient permission", "20018": "bad request: {{message}}", "20029": "not found" }, "x-security": [ { "userPermissions": [ "ADMIN:NAMESPACE:{namespace}:CHALLENGE:REWARD [UPDATE]" ] } ] } }, "/challenge/v1/admin/namespaces/{namespace}/users/{userId}/challenges/{challengeCode}/rewards/claim": { "post": { "consumes": [ "application/json" ], "description": "- Required permission: ADMIN:NAMESPACE:{namespace}:CHALLENGE:REWARD [UPDATE]", "operationId": "adminClaimUserRewardsByGoalCode", "parameters": [ { "in": "body", "name": "body", "required": true, "schema": { "$ref": "#/definitions/model.ClaimUserRewardsByGoalCodeRequest" } }, { "in": "path", "name": "challengeCode", "required": true, "type": "string" }, { "description": "namespace of the game", "in": "path", "name": "namespace", "required": true, "type": "string" }, { "in": "path", "name": "userId", "required": true, "type": "string" } ], "produces": [ "application/json" ], "responses": { "200": { "description": "OK", "schema": { "items": { "$ref": "#/definitions/model.UserReward" }, "type": "array" } }, "400": { "description": "\u003ctable\u003e\u003ctr\u003e\u003ctd\u003eerrorCode\u003c/td\u003e\u003ctd\u003eerrorMessage\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e20018\u003c/td\u003e\u003ctd\u003ebad request: {{message}}\u003c/td\u003e\u003c/tr\u003e\u003c/table\u003e", "schema": { "$ref": "#/definitions/iam.ErrorResponse" } }, "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/iam.ErrorResponse" } }, "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/iam.ErrorResponse" } }, "404": { "description": "\u003ctable\u003e\u003ctr\u003e\u003ctd\u003eerrorCode\u003c/td\u003e\u003ctd\u003eerrorMessage\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e20029\u003c/td\u003e\u003ctd\u003enot found\u003c/td\u003e\u003c/tr\u003e\u003c/table\u003e", "schema": { "$ref": "#/definitions/iam.ErrorResponse" } }, "422": { "description": "\u003ctable\u003e\u003ctr\u003e\u003ctd\u003eerrorCode\u003c/td\u003e\u003ctd\u003eerrorMessage\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e99004\u003c/td\u003e\u003ctd\u003eunprocessable entity: {{message}}\u003c/td\u003e\u003c/tr\u003e\u003c/table\u003e", "schema": { "$ref": "#/definitions/iam.ErrorResponse" } }, "500": { "description": "\u003ctable\u003e\u003ctr\u003e\u003ctd\u003eerrorCode\u003c/td\u003e\u003ctd\u003eerrorMessage\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e20000\u003c/td\u003e\u003ctd\u003einternal server error: {{message}}\u003c/td\u003e\u003c/tr\u003e\u003c/table\u003e", "schema": { "$ref": "#/definitions/response.Error" } } }, "security": [ { "authorization": [] } ], "summary": "Claim rewards of a single user by goal code", "tags": [ "Player Reward" ], "x-errorCodes": { "20000": "internal server error: {{message}}", "20001": "unauthorized access", "20013": "insufficient permission", "20018": "bad request: {{message}}", "20029": "not found", "99004": "unprocessable entity: {{message}}" }, "x-security": [ { "userPermissions": [ "ADMIN:NAMESPACE:{namespace}:CHALLENGE:REWARD [UPDATE]" ] } ] } }, "/challenge/v1/admin/namespaces/{namespace}/users/{userId}/progress/{challengeCode}": { "get": { "description": "- Required permission: ADMIN:NAMESPACE:{namespace}:CHALLENGE:PROGRESSION [READ]", "operationId": "adminGetUserProgression", "parameters": [ { "description": "challenge code", "in": "path", "name": "challengeCode", "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" }, { "description": "specific schedule date time. use RFC3339 format(2006-01-02T15:04:05Z).", "format": "date-time", "in": "query", "name": "dateTime", "type": "string", "x-nullable": true }, { "description": "goal code", "in": "query", "name": "goalCode", "type": "string" }, { "default": 20, "description": "limit the amount of data retrieved", "in": "query", "name": "limit", "type": "integer" }, { "default": 0, "description": "offset", "in": "query", "name": "offset", "type": "integer" }, { "collectionFormat": "csv", "description": "filter goals by tags, comma separated value", "in": "query", "items": { "type": "string" }, "name": "tags", "type": "array" } ], "produces": [ "application/json" ], "responses": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/model.UserProgressionResponse" } }, "400": { "description": "\u003ctable\u003e\u003ctr\u003e\u003ctd\u003eerrorCode\u003c/td\u003e\u003ctd\u003eerrorMessage\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e20018\u003c/td\u003e\u003ctd\u003ebad request: {{message}}\u003c/td\u003e\u003c/tr\u003e\u003c/table\u003e", "schema": { "$ref": "#/definitions/iam.ErrorResponse" } }, "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/iam.ErrorResponse" } }, "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/iam.ErrorResponse" } }, "404": { "description": "\u003ctable\u003e\u003ctr\u003e\u003ctd\u003eerrorCode\u003c/td\u003e\u003ctd\u003eerrorMessage\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e20029\u003c/td\u003e\u003ctd\u003enot found\u003c/td\u003e\u003c/tr\u003e\u003c/table\u003e", "schema": { "$ref": "#/definitions/iam.ErrorResponse" } }, "422": { "description": "\u003ctable\u003e\u003ctr\u003e\u003ctd\u003eerrorCode\u003c/td\u003e\u003ctd\u003eerrorMessage\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e99004\u003c/td\u003e\u003ctd\u003eunprocessable entity: {{message}}\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\u003e20000\u003c/td\u003e\u003ctd\u003einternal server error: {{message}}\u003c/td\u003e\u003c/tr\u003e\u003c/table\u003e", "schema": { "$ref": "#/definitions/response.Error" } } }, "security": [ { "authorization": [] } ], "summary": "List User's Progressions", "tags": [ "Challenge Progression" ], "x-errorCodes": { "20000": "internal server error: {{message}}", "20001": "unauthorized access", "20013": "insufficient permission", "20018": "bad request: {{message}}", "20029": "not found", "99004": "unprocessable entity: {{message}}" }, "x-security": [ { "userPermissions": [ "ADMIN:NAMESPACE:{namespace}:CHALLENGE:PROGRESSION [READ]" ] } ] } }, "/challenge/v1/admin/namespaces/{namespace}/users/{userId}/rewards": { "get": { "description": "- Required permission: ADMIN:NAMESPACE:{namespace}:CHALLENGE:REWARD [READ]", "operationId": "adminGetUserRewards", "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": "reward's challenge code", "in": "query", "name": "challengeCode", "type": "string" }, { "description": "reward's goal progression id", "in": "query", "name": "goalProgressionId", "type": "string" }, { "default": 20, "description": "limit the amount of data retrieved", "in": "query", "name": "limit", "type": "integer" }, { "default": 0, "description": "offset", "in": "query", "name": "offset", "type": "integer" }, { "description": "sort list by attributes.\n\t\t\tdefault value: updatedAt:desc.", "enum": [ "createdAt", "createdAt:asc", "createdAt:desc", "updatedAt", "updatedAt:asc", "updatedAt:desc" ], "in": "query", "name": "sortBy", "type": "string" }, { "description": "user reward status", "enum": [ "CLAIMED", "UNCLAIMED" ], "in": "query", "name": "status", "type": "string" } ], "produces": [ "application/json" ], "responses": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/model.ListUserRewardsResponse" } }, "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/iam.ErrorResponse" } }, "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/iam.ErrorResponse" } }, "500": { "description": "\u003ctable\u003e\u003ctr\u003e\u003ctd\u003eerrorCode\u003c/td\u003e\u003ctd\u003eerrorMessage\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e20000\u003c/td\u003e\u003ctd\u003einternal server error: {{message}}\u003c/td\u003e\u003c/tr\u003e\u003c/table\u003e", "schema": { "$ref": "#/definitions/response.Error" } } }, "security": [ { "authorization": [] } ], "summary": "List User's Rewards", "tags": [ "Player Reward" ], "x-errorCodes": { "20000": "internal server error: {{message}}", "20001": "unauthorized access", "20013": "insufficient permission" }, "x-security": [ { "userPermissions": [ "ADMIN:NAMESPACE:{namespace}:CHALLENGE:REWARD [READ]" ] } ] } }, "/challenge/v1/admin/namespaces/{namespace}/users/{userId}/rewards/claim": { "post": { "consumes": [ "application/json" ], "description": "- Required permission: ADMIN:NAMESPACE:{namespace}:CHALLENGE:REWARD [UPDATE]", "operationId": "adminClaimUserRewards", "parameters": [ { "in": "body", "name": "body", "required": true, "schema": { "$ref": "#/definitions/model.ClaimUserRewardsReq" } }, { "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": "OK", "schema": { "items": { "$ref": "#/definitions/model.UserReward" }, "type": "array" } }, "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/iam.ErrorResponse" } }, "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/iam.ErrorResponse" } }, "404": { "description": "\u003ctable\u003e\u003ctr\u003e\u003ctd\u003eerrorCode\u003c/td\u003e\u003ctd\u003eerrorMessage\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e20029\u003c/td\u003e\u003ctd\u003enot found\u003c/td\u003e\u003c/tr\u003e\u003c/table\u003e", "schema": { "$ref": "#/definitions/iam.ErrorResponse" } }, "422": { "description": "\u003ctable\u003e\u003ctr\u003e\u003ctd\u003eerrorCode\u003c/td\u003e\u003ctd\u003eerrorMessage\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e99004\u003c/td\u003e\u003ctd\u003eunprocessable entity: {{message}}\u003c/td\u003e\u003c/tr\u003e\u003c/table\u003e", "schema": { "$ref": "#/definitions/iam.ErrorResponse" } }, "500": { "description": "\u003ctable\u003e\u003ctr\u003e\u003ctd\u003eerrorCode\u003c/td\u003e\u003ctd\u003eerrorMessage\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e20000\u003c/td\u003e\u003ctd\u003einternal server error: {{message}}\u003c/td\u003e\u003c/tr\u003e\u003c/table\u003e", "schema": { "$ref": "#/definitions/response.Error" } } }, "security": [ { "authorization": [] } ], "summary": "Claim rewards of a single user", "tags": [ "Player Reward" ], "x-errorCodes": { "20000": "internal server error: {{message}}", "20001": "unauthorized access", "20013": "insufficient permission", "20029": "not found", "99004": "unprocessable entity: {{message}}" }, "x-security": [ { "userPermissions": [ "ADMIN:NAMESPACE:{namespace}:CHALLENGE:REWARD [UPDATE]" ] } ] } }, "/challenge/v1/public/namespaces/{namespace}/challenges": { "get": { "description": "- Required permission: NAMESPACE:{namespace}:CHALLENGE [READ]", "operationId": "GetChallenges", "parameters": [ { "description": "namespace of the game", "in": "path", "name": "namespace", "required": true, "type": "string" }, { "description": "filter challenges by code with likes behavior", "in": "query", "name": "keyword", "type": "string" }, { "default": 20, "description": "limit the amount of data retrieved", "in": "query", "name": "limit", "type": "integer" }, { "default": 0, "description": "offset", "in": "query", "name": "offset", "type": "integer" }, { "description": "sort list by attributes.\n\t\t\tdefault value: updatedAt:desc.", "enum": [ "createdAt", "createdAt:asc", "createdAt:desc", "updatedAt", "updatedAt:asc", "updatedAt:desc" ], "in": "query", "name": "sortBy", "type": "string" }, { "description": "challenge status", "enum": [ "INIT", "RETIRED", "TIED" ], "in": "query", "name": "status", "type": "string" }, { "collectionFormat": "csv", "description": "filter challenges by tags, comma separated value", "in": "query", "items": { "type": "string" }, "name": "tags", "type": "array" } ], "produces": [ "application/json" ], "responses": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/model.ListChallengeResponse" } }, "400": { "description": "\u003ctable\u003e\u003ctr\u003e\u003ctd\u003eerrorCode\u003c/td\u003e\u003ctd\u003eerrorMessage\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e20018\u003c/td\u003e\u003ctd\u003ebad request: {{message}}\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/iam.ErrorResponse" } }, "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/iam.ErrorResponse" } }, "500": { "description": "\u003ctable\u003e\u003ctr\u003e\u003ctd\u003eerrorCode\u003c/td\u003e\u003ctd\u003eerrorMessage\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e20000\u003c/td\u003e\u003ctd\u003einternal server error: {{message}}\u003c/td\u003e\u003c/tr\u003e\u003c/table\u003e", "schema": { "$ref": "#/definitions/response.Error" } } }, "security": [ { "authorization": [] } ], "summary": "List Challenges", "tags": [ "Challenge List" ], "x-errorCodes": { "20000": "internal server error: {{message}}", "20001": "unauthorized access", "20013": "insufficient permission", "20018": "bad request: {{message}}" }, "x-security": [ { "userPermissions": [ "NAMESPACE:{namespace}:CHALLENGE [READ]" ] } ] } }, "/challenge/v1/public/namespaces/{namespace}/challenges/{challengeCode}/goals": { "get": { "description": "- Required permission: NAMESPACE:{namespace}:CHALLENGE [READ]", "operationId": "publicGetScheduledGoals", "parameters": [ { "description": "challenge code", "in": "path", "name": "challengeCode", "required": true, "type": "string" }, { "description": "namespace of the game", "in": "path", "name": "namespace", "required": true, "type": "string" }, { "default": 20, "description": "limit the amount of data retrieved", "in": "query", "name": "limit", "type": "integer" }, { "default": 0, "description": "offset", "in": "query", "name": "offset", "type": "integer" }, { "description": "sort list by attributes.\n\t\t\t\tdefault value: updatedAt:desc.", "enum": [ "createdAt", "createdAt:asc", "createdAt:desc", "updatedAt", "updatedAt:asc", "updatedAt:desc" ], "in": "query", "name": "sortBy", "type": "string" }, { "collectionFormat": "csv", "description": "filter list by tags", "in": "query", "items": { "type": "string" }, "name": "tags", "type": "array" } ], "produces": [ "application/json" ], "responses": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/model.GetGoalsResponse" } }, "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/iam.ErrorResponse" } }, "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/iam.ErrorResponse" } }, "404": { "description": "\u003ctable\u003e\u003ctr\u003e\u003ctd\u003eerrorCode\u003c/td\u003e\u003ctd\u003eerrorMessage\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e20029\u003c/td\u003e\u003ctd\u003enot 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\u003e20000\u003c/td\u003e\u003ctd\u003einternal server error: {{message}}\u003c/td\u003e\u003c/tr\u003e\u003c/table\u003e", "schema": { "$ref": "#/definitions/response.Error" } } }, "security": [ { "authorization": [] } ], "summary": "List Goals of a Challenge", "tags": [ "Challenge List" ], "x-errorCodes": { "20000": "internal server error: {{message}}", "20001": "unauthorized access", "20013": "insufficient permission", "20029": "not found" }, "x-security": [ { "userPermissions": [ "NAMESPACE:{namespace}:CHALLENGE [READ]" ] } ] } }, "/challenge/v1/public/namespaces/{namespace}/challenges/{challengeCode}/goals/{code}/schedules": { "get": { "description": "\u0026lt;ul\u0026gt;\u0026lt;li\u0026gt;Required permission: NAMESPACE:{namespace}:CHALLENGE [READ]\u0026lt;/li\u0026gt;\u0026lt;/ul\u0026gt;List schedules of given goal in a challenge for specific user.", "operationId": "publicListSchedulesByGoal", "parameters": [ { "description": "challenge code", "in": "path", "name": "challengeCode", "required": true, "type": "string" }, { "description": "goal code", "in": "path", "name": "code", "required": true, "type": "string" }, { "description": "namespace of the game", "in": "path", "name": "namespace", "required": true, "type": "string" }, { "default": 20, "description": "limit the amount of data retrieved", "in": "query", "name": "limit", "type": "integer" }, { "default": 0, "description": "offset", "in": "query", "name": "offset", "type": "integer" } ], "produces": [ "application/json" ], "responses": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/model.ListScheduleByGoalResponse" } }, "400": { "description": "\u003ctable\u003e\u003ctr\u003e\u003ctd\u003eerrorCode\u003c/td\u003e\u003ctd\u003eerrorMessage\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e20018\u003c/td\u003e\u003ctd\u003ebad request: {{message}}\u003c/td\u003e\u003c/tr\u003e\u003c/table\u003e", "schema": { "$ref": "#/definitions/iam.ErrorResponse" } }, "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/iam.ErrorResponse" } }, "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/iam.ErrorResponse" } }, "404": { "description": "\u003ctable\u003e\u003ctr\u003e\u003ctd\u003eerrorCode\u003c/td\u003e\u003ctd\u003eerrorMessage\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e20029\u003c/td\u003e\u003ctd\u003enot 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\u003e20000\u003c/td\u003e\u003ctd\u003einternal server error: {{message}}\u003c/td\u003e\u003c/tr\u003e\u003c/table\u003e", "schema": { "$ref": "#/definitions/response.Error" } } }, "security": [ { "authorization": [] } ], "summary": "Get goal's schedules", "tags": [ "Schedules" ], "x-errorCodes": { "20000": "internal server error: {{message}}", "20001": "unauthorized access", "20013": "insufficient permission", "20018": "bad request: {{message}}", "20029": "not found" } } }, "/challenge/v1/public/namespaces/{namespace}/challenges/{challengeCode}/schedules": { "get": { "description": "\u0026lt;ul\u0026gt;\u0026lt;li\u0026gt;Required permission: NAMESPACE:{namespace}:CHALLENGE [READ]\u0026lt;/li\u0026gt;\u0026lt;/ul\u0026gt;List schedules of given challenge for specific user. To query schedules prior to specific date time, use dateTime parameter.", "operationId": "publicListSchedules", "parameters": [ { "description": "challenge code", "in": "path", "name": "challengeCode", "required": true, "type": "string" }, { "description": "namespace of the game", "in": "path", "name": "namespace", "required": true, "type": "string" }, { "description": "use RFC3339 format(2006-01-02T15:04:05Z).", "format": "date-time", "in": "query", "name": "dateTime", "type": "string", "x-nullable": true }, { "default": 20, "description": "limit the amount of data retrieved", "in": "query", "name": "limit", "type": "integer" }, { "default": 0, "description": "offset", "in": "query", "name": "offset", "type": "integer" } ], "produces": [ "application/json" ], "responses": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/model.ListSchedulesResponse" } }, "400": { "description": "\u003ctable\u003e\u003ctr\u003e\u003ctd\u003eerrorCode\u003c/td\u003e\u003ctd\u003eerrorMessage\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e20018\u003c/td\u003e\u003ctd\u003ebad request: {{message}}\u003c/td\u003e\u003c/tr\u003e\u003c/table\u003e", "schema": { "$ref": "#/definitions/iam.ErrorResponse" } }, "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/iam.ErrorResponse" } }, "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/iam.ErrorResponse" } }, "404": { "description": "\u003ctable\u003e\u003ctr\u003e\u003ctd\u003eerrorCode\u003c/td\u003e\u003ctd\u003eerrorMessage\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e20029\u003c/td\u003e\u003ctd\u003enot 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\u003e20000\u003c/td\u003e\u003ctd\u003einternal server error: {{message}}\u003c/td\u003e\u003c/tr\u003e\u003c/table\u003e", "schema": { "$ref": "#/definitions/response.Error" } } }, "security": [ { "authorization": [] } ], "summary": "Get Challenge's schedules", "tags": [ "Schedules" ], "x-errorCodes": { "20000": "internal server error: {{message}}", "20001": "unauthorized access", "20013": "insufficient permission", "20018": "bad request: {{message}}", "20029": "not found" } } }, "/challenge/v1/public/namespaces/{namespace}/users/me/challenges/{challengeCode}/rewards/claim": { "post": { "consumes": [ "application/json" ], "description": "- Required permission: NAMESPACE:{namespace}:CHALLENGE:REWARD [UPDATE]", "operationId": "publicClaimUserRewardsByGoalCode", "parameters": [ { "in": "body", "name": "body", "required": true, "schema": { "$ref": "#/definitions/model.ClaimUserRewardsByGoalCodeRequest" } }, { "in": "path", "name": "challengeCode", "required": true, "type": "string" }, { "description": "namespace of the game", "in": "path", "name": "namespace", "required": true, "type": "string" } ], "produces": [ "application/json" ], "responses": { "200": { "description": "OK", "schema": { "items": { "$ref": "#/definitions/model.UserReward" }, "type": "array" } }, "400": { "description": "\u003ctable\u003e\u003ctr\u003e\u003ctd\u003eerrorCode\u003c/td\u003e\u003ctd\u003eerrorMessage\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e20018\u003c/td\u003e\u003ctd\u003ebad request: {{message}}\u003c/td\u003e\u003c/tr\u003e\u003c/table\u003e", "schema": { "$ref": "#/definitions/iam.ErrorResponse" } }, "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/iam.ErrorResponse" } }, "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/iam.ErrorResponse" } }, "404": { "description": "\u003ctable\u003e\u003ctr\u003e\u003ctd\u003eerrorCode\u003c/td\u003e\u003ctd\u003eerrorMessage\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e20029\u003c/td\u003e\u003ctd\u003enot found\u003c/td\u003e\u003c/tr\u003e\u003c/table\u003e", "schema": { "$ref": "#/definitions/iam.ErrorResponse" } }, "422": { "description": "\u003ctable\u003e\u003ctr\u003e\u003ctd\u003eerrorCode\u003c/td\u003e\u003ctd\u003eerrorMessage\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e99004\u003c/td\u003e\u003ctd\u003eunprocessable entity: {{message}}\u003c/td\u003e\u003c/tr\u003e\u003c/table\u003e", "schema": { "$ref": "#/definitions/iam.ErrorResponse" } }, "500": { "description": "\u003ctable\u003e\u003ctr\u003e\u003ctd\u003eerrorCode\u003c/td\u003e\u003ctd\u003eerrorMessage\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e20000\u003c/td\u003e\u003ctd\u003einternal server error: {{message}}\u003c/td\u003e\u003c/tr\u003e\u003c/table\u003e", "schema": { "$ref": "#/definitions/response.Error" } } }, "security": [ { "authorization": [] } ], "summary": "Claim User's Rewards by Goal Code", "tags": [ "Player Reward" ], "x-errorCodes": { "20000": "internal server error: {{message}}", "20001": "unauthorized access", "20013": "insufficient permission", "20018": "bad request: {{message}}", "20029": "not found", "99004": "unprocessable entity: {{message}}" }, "x-security": [ { "userPermissions": [ "NAMESPACE:{namespace}:CHALLENGE:REWARD [UPDATE]" ] } ] } }, "/challenge/v1/public/namespaces/{namespace}/users/me/progress/evaluate": { "post": { "description": "- Required permission: NAMESPACE:{namespace}:CHALLENGE:PROGRESSION [UPDATE]", "operationId": "EvaluateMyProgress", "parameters": [ { "description": "namespace of the game", "in": "path", "name": "namespace", "required": true, "type": "string" }, { "collectionFormat": "csv", "description": "challenge code to be evaluated, comma separated value", "in": "query", "items": { "type": "string" }, "name": "challengeCode", "type": "array" } ], "produces": [ "application/json" ], "responses": { "204": { "description": "No Content" }, "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/iam.ErrorResponse" } }, "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/iam.ErrorResponse" } }, "500": { "description": "\u003ctable\u003e\u003ctr\u003e\u003ctd\u003eerrorCode\u003c/td\u003e\u003ctd\u003eerrorMessage\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e20000\u003c/td\u003e\u003ctd\u003einternal server error: {{message}}\u003c/td\u003e\u003c/tr\u003e\u003c/table\u003e", "schema": { "$ref": "#/definitions/response.Error" } } }, "security": [ { "authorization": [] } ], "summary": "Evaluate User's Challenge Progressions", "tags": [ "Challenge Progression" ], "x-errorCodes": { "20000": "internal server error: {{message}}", "20001": "unauthorized access", "20013": "insufficient permission" }, "x-security": [ { "userPermissions": [ "NAMESPACE:{namespace}:CHALLENGE:PROGRESSION [UPDATE]" ] } ] } }, "/challenge/v1/public/namespaces/{namespace}/users/me/progress/{challengeCode}": { "get": { "description": "- Required permission: NAMESPACE:{namespace}:CHALLENGE:PROGRESSION [READ]", "operationId": "publicGetUserProgression", "parameters": [ { "description": "challenge code", "in": "path", "name": "challengeCode", "required": true, "type": "string" }, { "description": "namespace of the game", "in": "path", "name": "namespace", "required": true, "type": "string" }, { "description": "specific schedule date time. use RFC3339 format(2006-01-02T15:04:05Z).", "format": "date-time", "in": "query", "name": "dateTime", "type": "string", "x-nullable": true }, { "description": "goal code", "in": "query", "name": "goalCode", "type": "string" }, { "default": 20, "description": "limit the amount of data retrieved", "in": "query", "name": "limit", "type": "integer" }, { "default": 0, "description": "offset", "in": "query", "name": "offset", "type": "integer" }, { "collectionFormat": "csv", "description": "filter goals by tags, comma separated value", "in": "query", "items": { "type": "string" }, "name": "tags", "type": "array" } ], "produces": [ "application/json" ], "responses": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/model.UserProgressionResponse" } }, "400": { "description": "\u003ctable\u003e\u003ctr\u003e\u003ctd\u003eerrorCode\u003c/td\u003e\u003ctd\u003eerrorMessage\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e20018\u003c/td\u003e\u003ctd\u003ebad request: {{message}}\u003c/td\u003e\u003c/tr\u003e\u003c/table\u003e", "schema": { "$ref": "#/definitions/iam.ErrorResponse" } }, "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/iam.ErrorResponse" } }, "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/iam.ErrorResponse" } }, "404": { "description": "\u003ctable\u003e\u003ctr\u003e\u003ctd\u003eerrorCode\u003c/td\u003e\u003ctd\u003eerrorMessage\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e20029\u003c/td\u003e\u003ctd\u003enot found\u003c/td\u003e\u003c/tr\u003e\u003c/table\u003e", "schema": { "$ref": "#/definitions/iam.ErrorResponse" } }, "422": { "description": "\u003ctable\u003e\u003ctr\u003e\u003ctd\u003eerrorCode\u003c/td\u003e\u003ctd\u003eerrorMessage\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e99004\u003c/td\u003e\u003ctd\u003eunprocessable entity: {{message}}\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\u003e20000\u003c/td\u003e\u003ctd\u003einternal server error: {{message}}\u003c/td\u003e\u003c/tr\u003e\u003c/table\u003e", "schema": { "$ref": "#/definitions/response.Error" } } }, "security": [ { "authorization": [] } ], "summary": "List User's Progressions", "tags": [ "Challenge Progression" ], "x-errorCodes": { "20000": "internal server error: {{message}}", "20001": "unauthorized access", "20013": "insufficient permission", "20018": "bad request: {{message}}", "20029": "not found", "99004": "unprocessable entity: {{message}}" }, "x-security": [ { "userPermissions": [ "NAMESPACE:{namespace}:CHALLENGE:PROGRESSION [READ]" ] } ] } }, "/challenge/v1/public/namespaces/{namespace}/users/me/progress/{challengeCode}/index/{index}": { "get": { "description": "- Required permission: NAMESPACE:{namespace}:CHALLENGE:PROGRESSION [READ]", "operationId": "publicGetPastUserProgression", "parameters": [ { "description": "challenge code", "in": "path", "name": "challengeCode", "required": true, "type": "string" }, { "description": "rotation index. Treat rotation as an array sorted by the start time of a rotation in descending manner. positive integer. 0 indicates current or latest active rotation. increment the value to refer to specific past rotation.", "in": "path", "name": "index", "required": true, "type": "integer" }, { "description": "namespace of the game", "in": "path", "name": "namespace", "required": true, "type": "string" }, { "description": "goal code", "in": "query", "name": "goalCode", "type": "string" }, { "default": 20, "description": "limit the amount of data retrieved", "in": "query", "name": "limit", "type": "integer" }, { "default": 0, "description": "offset", "in": "query", "name": "offset", "type": "integer" }, { "collectionFormat": "csv", "description": "filter goals by tags, comma separated value", "in": "query", "items": { "type": "string" }, "name": "tags", "type": "array" } ], "produces": [ "application/json" ], "responses": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/model.UserProgressionResponse" } }, "400": { "description": "\u003ctable\u003e\u003ctr\u003e\u003ctd\u003eerrorCode\u003c/td\u003e\u003ctd\u003eerrorMessage\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e20018\u003c/td\u003e\u003ctd\u003ebad request: {{message}}\u003c/td\u003e\u003c/tr\u003e\u003c/table\u003e", "schema": { "$ref": "#/definitions/iam.ErrorResponse" } }, "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/iam.ErrorResponse" } }, "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/iam.ErrorResponse" } }, "404": { "description": "\u003ctable\u003e\u003ctr\u003e\u003ctd\u003eerrorCode\u003c/td\u003e\u003ctd\u003eerrorMessage\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e20029\u003c/td\u003e\u003ctd\u003enot found\u003c/td\u003e\u003c/tr\u003e\u003c/table\u003e", "schema": { "$ref": "#/definitions/iam.ErrorResponse" } }, "500": { "description": "\u003ctable\u003e\u003ctr\u003e\u003ctd\u003eerrorCode\u003c/td\u003e\u003ctd\u003eerrorMessage\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e20000\u003c/td\u003e\u003ctd\u003einternal server error: {{message}}\u003c/td\u003e\u003c/tr\u003e\u003c/table\u003e", "schema": { "$ref": "#/definitions/response.Error" } } }, "security": [ { "authorization": [] } ], "summary": "List User's Progressions in the previous rotation.", "tags": [ "Challenge Progression" ], "x-errorCodes": { "20000": "internal server error: {{message}}", "20001": "unauthorized access", "20013": "insufficient permission", "20018": "bad request: {{message}}", "20029": "not found" }, "x-security": [ { "userPermissions": [ "NAMESPACE:{namespace}:CHALLENGE:PROGRESSION [READ]" ] } ] } }, "/challenge/v1/public/namespaces/{namespace}/users/me/rewards": { "get": { "description": "- Required permission: NAMESPACE:{namespace}:CHALLENGE:REWARD [READ]", "operationId": "publicGetUserRewards", "parameters": [ { "description": "namespace of the game", "in": "path", "name": "namespace", "required": true, "type": "string" }, { "description": "reward's challenge code", "in": "query", "name": "challengeCode", "type": "string" }, { "description": "reward's goal progression id", "in": "query", "name": "goalProgressionId", "type": "string" }, { "default": 20, "description": "limit the amount of data retrieved", "in": "query", "name": "limit", "type": "integer" }, { "default": 0, "description": "offset", "in": "query", "name": "offset", "type": "integer" }, { "description": "sort list by attributes.\n\t\t\tdefault value: updatedAt:desc.", "enum": [ "createdAt", "createdAt:asc", "createdAt:desc", "updatedAt", "updatedAt:asc", "updatedAt:desc" ], "in": "query", "name": "sortBy", "type": "string" }, { "description": "user reward status", "enum": [ "CLAIMED", "UNCLAIMED" ], "in": "query", "name": "status", "type": "string" } ], "produces": [ "application/json" ], "responses": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/model.ListUserRewardsResponse" } }, "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/iam.ErrorResponse" } }, "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/iam.ErrorResponse" } }, "500": { "description": "\u003ctable\u003e\u003ctr\u003e\u003ctd\u003eerrorCode\u003c/td\u003e\u003ctd\u003eerrorMessage\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e20000\u003c/td\u003e\u003ctd\u003einternal server error: {{message}}\u003c/td\u003e\u003c/tr\u003e\u003c/table\u003e", "schema": { "$ref": "#/definitions/response.Error" } } }, "security": [ { "authorization": [] } ], "summary": "List User's Rewards", "tags": [ "Player Reward" ], "x-errorCodes": { "20000": "internal server error: {{message}}", "20001": "unauthorized access", "20013": "insufficient permission" }, "x-security": [ { "userPermissions": [ "NAMESPACE:{namespace}:CHALLENGE:REWARD [READ]" ] } ] } }, "/challenge/v1/public/namespaces/{namespace}/users/me/rewards/claim": { "post": { "consumes": [ "application/json" ], "description": "- Required permission: NAMESPACE:{namespace}:CHALLENGE:REWARD [UPDATE]", "operationId": "publicClaimUserRewards", "parameters": [ { "in": "body", "name": "body", "required": true, "schema": { "$ref": "#/definitions/model.ClaimUserRewardsReq" } }, { "description": "namespace of the game", "in": "path", "name": "namespace", "required": true, "type": "string" } ], "produces": [ "application/json" ], "responses": { "200": { "description": "OK", "schema": { "items": { "$ref": "#/definitions/model.UserReward" }, "type": "array" } }, "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/iam.ErrorResponse" } }, "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/iam.ErrorResponse" } }, "404": { "description": "\u003ctable\u003e\u003ctr\u003e\u003ctd\u003eerrorCode\u003c/td\u003e\u003ctd\u003eerrorMessage\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e20029\u003c/td\u003e\u003ctd\u003enot found\u003c/td\u003e\u003c/tr\u003e\u003c/table\u003e", "schema": { "$ref": "#/definitions/iam.ErrorResponse" } }, "422": { "description": "\u003ctable\u003e\u003ctr\u003e\u003ctd\u003eerrorCode\u003c/td\u003e\u003ctd\u003eerrorMessage\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e99004\u003c/td\u003e\u003ctd\u003eunprocessable entity: {{message}}\u003c/td\u003e\u003c/tr\u003e\u003c/table\u003e", "schema": { "$ref": "#/definitions/iam.ErrorResponse" } }, "500": { "description": "\u003ctable\u003e\u003ctr\u003e\u003ctd\u003eerrorCode\u003c/td\u003e\u003ctd\u003eerrorMessage\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e20000\u003c/td\u003e\u003ctd\u003einternal server error: {{message}}\u003c/td\u003e\u003c/tr\u003e\u003c/table\u003e", "schema": { "$ref": "#/definitions/response.Error" } } }, "security": [ { "authorization": [] } ], "summary": "Claim User's Rewards", "tags": [ "Player Reward" ], "x-errorCodes": { "20000": "internal server error: {{message}}", "20001": "unauthorized access", "20013": "insufficient permission", "20029": "not found", "99004": "unprocessable entity: {{message}}" }, "x-security": [ { "userPermissions": [ "NAMESPACE:{namespace}:CHALLENGE:REWARD [UPDATE]" ] } ] } } }, "definitions": { "iam.ErrorResponse": { "properties": { "errorCode": { "format": "int32", "type": "integer" }, "errorMessage": { "type": "string" }, "requiredPermission": { "$ref": "#/definitions/iam.Permission" } }, "required": [ "errorCode", "errorMessage" ] }, "iam.Permission": { "properties": { "action": { "format": "int32", "type": "integer" }, "resource": { "type": "string" } }, "required": [ "action", "resource" ] }, "model.ChallengeReference": { "properties": { "challengeCode": { "type": "string" }, "goalCode": { "type": "string" } }, "required": [ "challengeCode", "goalCode" ] }, "model.ChallengeResponse": { "properties": { "activeGoalsPerRotation": { "format": "int32", "type": "integer" }, "assignmentRule": { "enum": [ "CUSTOM", "FIXED", "RANDOMIZED", "UNSCHEDULED" ], "type": "string" }, "code": { "type": "string" }, "createdAt": { "type": "string" }, "description": { "type": "string" }, "endAfter": { "format": "int32", "type": "integer" }, "endDate": { "type": "string" }, "goalsVisibility": { "enum": [ "PERIODONLY", "SHOWALL" ], "type": "string" }, "name": { "type": "string" }, "randomizedPerRotation": { "type": "boolean", "x-omitempty": false }, "repeatAfter": { "format": "int32", "type": "integer" }, "resetConfig": { "$ref": "#/definitions/model.ResetConfig" }, "rotation": { "enum": [ "DAILY", "MONTHLY", "NONE", "WEEKLY" ], "type": "string" }, "startDate": { "type": "string" }, "status": { "enum": [ "INIT", "RETIRED", "TIED" ], "type": "string" }, "tags": { "items": { "type": "string" }, "type": "array" }, "updatedAt": { "type": "string" } }, "required": [ "activeGoalsPerRotation", "assignmentRule", "code", "createdAt", "description", "goalsVisibility", "name", "randomizedPerRotation", "resetConfig", "rotation", "startDate", "status", "updatedAt" ] }, "model.ClaimUserRewardsByGoalCodeRequest": { "properties": { "goalCode": { "type": "string" } }, "required": [ "goalCode" ] }, "model.ClaimUserRewardsReq": { "properties": { "rewardIDs": { "description": "max 100 items", "items": { "type": "string" }, "type": "array" } }, "required": [ "rewardIDs" ] }, "model.ClaimUsersRewardsRequest": { "properties": { "rewardIds": { "items": { "type": "string" }, "type": "array" }, "userId": { "type": "string" } }, "required": [ "rewardIds", "userId" ] }, "model.ClaimUsersRewardsResponse": { "properties": { "errorDetail": { "$ref": "#/definitions/response.Error" }, "isSuccess": { "type": "boolean", "x-omitempty": false }, "rewards": { "items": { "$ref": "#/definitions/model.UserReward" }, "type": "array" }, "userId": { "type": "string" } }, "required": [ "isSuccess", "rewards", "userId" ] }, "model.ClaimableUserReward": { "properties": { "goalProgressionId": { "type": "string" }, "id": { "type": "string" }, "itemId": { "type": "string" }, "itemName": { "type": "string" }, "qty": { "format": "float", "type": "number" }, "status": { "enum": [ "CLAIMED", "UNCLAIMED" ], "type": "string" }, "type": { "enum": [ "ENTITLEMENT", "STATISTIC" ], "type": "string" } }, "required": [ "goalProgressionId", "id", "itemId", "itemName", "qty", "status", "type" ] }, "model.CreateChallengeRequest": { "properties": { "activeGoalsPerRotation": { "format": "int32", "type": "integer" }, "assignmentRule": { "enum": [ "CUSTOM", "FIXED", "RANDOMIZED", "UNSCHEDULED" ], "type": "string" }, "code": { "description": "only lowercase letters, numbers, and the separator - are allowed; must start and end with letter", "type": "string" }, "description": { "type": "string" }, "endAfter": { "format": "int32", "type": "integer" }, "endDate": { "format": "date-time", "type": "string", "x-nullable": true }, "goalsVisibility": { "enum": [ "PERIODONLY", "SHOWALL" ], "type": "string" }, "name": { "type": "string" }, "randomizedPerRotation": { "type": "boolean", "x-omitempty": false }, "repeatAfter": { "format": "int32", "type": "integer" }, "resetConfig": { "$ref": "#/definitions/model.ResetConfig" }, "rotation": { "enum": [ "DAILY", "MONTHLY", "NONE", "WEEKLY" ], "type": "string" }, "startDate": { "format": "date-time", "type": "string", "x-nullable": false }, "tags": { "items": { "type": "string" }, "type": "array" } }, "required": [ "assignmentRule", "code", "goalsVisibility", "name", "rotation", "startDate" ] }, "model.CreateGoalRequest": { "properties": { "code": { "type": "string" }, "description": { "type": "string" }, "isActive": { "type": "boolean", "x-omitempty": false }, "name": { "type": "string" }, "requirementGroups": { "items": { "$ref": "#/definitions/model.Requirement" }, "type": "array" }, "rewards": { "items": { "$ref": "#/definitions/model.Reward" }, "type": "array" }, "schedule": { "$ref": "#/definitions/model.GoalScheduleRequest" }, "tags": { "items": { "type": "string" }, "type": "array" } }, "required": [ "code", "isActive", "name" ] }, "model.EvaluatePlayerProgressionRequest": { "properties": { "userIds": { "items": { "type": "string" }, "type": "array" } } }, "model.GetGoalsResponse": { "properties": { "data": { "items": { "$ref": "#/definitions/model.GoalResponse" }, "type": "array" }, "meta": { "$ref": "#/definitions/model.ChallengeResponse" }, "paging": { "$ref": "#/definitions/model.Pagination" } }, "required": [ "data", "meta", "paging" ] }, "model.GoalInSchedulesResponse": { "properties": { "challengeCode": { "type": "string" }, "code": { "type": "string" }, "createdAt": { "type": "string" }, "description": { "type": "string" }, "isActive": { "type": "boolean", "x-omitempty": false }, "name": { "type": "string" }, "namespace": { "type": "string" }, "requirementGroups": { "items": { "$ref": "#/definitions/model.Requirement" }, "type": "array" }, "rewards": { "items": { "$ref": "#/definitions/model.Reward" }, "type": "array" }, "tags": { "items": { "type": "string" }, "type": "array" }, "updatedAt": { "type": "string" } }, "required": [ "challengeCode", "code", "createdAt", "description", "isActive", "name", "namespace", "requirementGroups", "rewards", "updatedAt" ] }, "model.GoalMeta": { "properties": { "code": { "type": "string" }, "description": { "type": "string" }, "name": { "type": "string" }, "requirementGroups": { "items": { "$ref": "#/definitions/model.Requirement" }, "type": "array" }, "rewards": { "items": { "$ref": "#/definitions/model.Reward" }, "type": "array" }, "tags": { "items": { "type": "string" }, "type": "array" } }, "required": [ "code", "description", "name", "requirementGroups", "rewards" ] }, "model.GoalOrder": { "properties": { "goal": { "$ref": "#/definitions/model.GoalResponse" }, "order": { "format": "int32", "type": "integer" } }, "required": [ "goal", "order" ] }, "model.GoalProgressionResponse": { "properties": { "challengeCode": { "type": "string" }, "completedAt": { "type": "string" }, "goal": { "$ref": "#/definitions/model.GoalMeta" }, "goalCode": { "type": "string" }, "goalProgressionId": { "type": "string" }, "requirementProgressions": { "items": { "$ref": "#/definitions/model.RequirementProgressionResponse" }, "type": "array" }, "status": { "enum": [ "ACTIVE", "COMPLETED", "NOT_STARTED", "RETIRED" ], "type": "string" }, "toClaimRewards": { "items": { "$ref": "#/definitions/model.ClaimableUserReward" }, "type": "array" } }, "required": [ "challengeCode", "goal", "goalCode", "goalProgressionId", "requirementProgressions", "status" ] }, "model.GoalResponse": { "properties": { "challengeCode": { "type": "string" }, "code": { "type": "string" }, "createdAt": { "type": "string" }, "description": { "type": "string" }, "isActive": { "type": "boolean", "x-omitempty": false }, "name": { "type": "string" }, "namespace": { "type": "string" }, "requirementGroups": { "items": { "$ref": "#/definitions/model.Requirement" }, "type": "array" }, "rewards": { "items": { "$ref": "#/definitions/model.Reward" }, "type": "array" }, "schedule": { "$ref": "#/definitions/model.GoalSchedule", "description": "this field will be deprecated" }, "tags": { "items": { "type": "string" }, "type": "array" }, "updatedAt": { "type": "string" } }, "required": [ "challengeCode", "code", "createdAt", "description", "isActive", "name", "namespace", "requirementGroups", "rewards", "updatedAt" ] }, "model.GoalSchedule": { "properties": { "endTime": { "description": "this field will be deprecated", "format": "date-time", "type": "string", "x-nullable": true }, "order": { "description": "this field will be deprecated", "format": "int32", "type": "integer" }, "startTime": { "description": "this field will be deprecated", "format": "date-time", "type": "string", "x-nullable": false } }, "required": [ "order", "startTime" ] }, "model.GoalScheduleRequest": { "properties": { "endTime": { "format": "date-time", "type": "string", "x-nullable": true }, "order": { "format": "int32", "type": "integer" }, "startTime": { "format": "date-time", "type": "string", "x-nullable": false } }, "required": [ "order", "startTime" ] }, "model.ItemReference": { "properties": { "module": { "type": "string" }, "references": { "items": { "$ref": "#/definitions/model.ChallengeReference" }, "type": "array" } }, "required": [ "module", "references" ] }, "model.ItemReferenceResponse": { "properties": { "references": { "items": { "$ref": "#/definitions/model.ItemReference" }, "type": "array" } }, "required": [ "references" ] }, "model.ListChallengeResponse": { "properties": { "data": { "items": { "$ref": "#/definitions/model.ChallengeResponse" }, "type": "array" }, "paging": { "$ref": "#/definitions/model.Pagination" } }, "required": [ "data", "paging" ] }, "model.ListPeriodsResponse": { "properties": { "data": { "items": { "$ref": "#/definitions/models.Period" }, "type": "array" }, "paging": { "$ref": "#/definitions/model.Pagination" } }, "required": [ "data", "paging" ] }, "model.ListScheduleByGoalResponse": { "properties": { "data": { "items": { "$ref": "#/definitions/model.ScheduleByGoalResponse" }, "type": "array" }, "paging": { "$ref": "#/definitions/model.Pagination" } }, "required": [ "data", "paging" ] }, "model.ListSchedulesResponse": { "properties": { "data": { "items": { "$ref": "#/definitions/model.ScheduleResponse" }, "type": "array" }, "paging": { "$ref": "#/definitions/model.Pagination" } }, "required": [ "data", "paging" ] }, "model.ListUserRewardsResponse": { "properties": { "data": { "items": { "$ref": "#/definitions/model.UserReward" }, "type": "array" }, "paging": { "$ref": "#/definitions/model.Pagination" } }, "required": [ "data", "paging" ] }, "model.Pagination": { "properties": { "first": { "type": "string" }, "last": { "type": "string" }, "next": { "type": "string" }, "previous": { "type": "string" } }, "required": [ "first", "last", "next", "previous" ] }, "model.PluginAsignmentAppConfig": { "properties": { "appName": { "type": "string" } }, "required": [ "appName" ] }, "model.PluginAssignmentCustomConfig": { "properties": { "grpcServerAddress": { "type": "string" } }, "required": [ "grpcServerAddress" ] }, "model.PluginAssignmentRequest": { "properties": { "appName": { "type": "string" }, "extendType": { "enum": [ "APP", "CUSTOM" ], "type": "string" }, "grpcServerAddress": { "type": "string" } }, "required": [ "extendType" ] }, "model.PluginAssignmentResponse": { "properties": { "appConfig": { "$ref": "#/definitions/model.PluginAsignmentAppConfig" }, "customConfig": { "$ref": "#/definitions/model.PluginAssignmentCustomConfig" }, "extendType": { "enum": [ "APP", "CUSTOM" ], "type": "string" } }, "required": [ "extendType" ] }, "model.Predicate": { "properties": { "matcher": { "enum": [ "EQUAL", "GREATER_THAN", "GREATER_THAN_EQUAL", "LESS_THAN", "LESS_THAN_EQUAL" ], "type": "string" }, "parameterName": { "type": "string" }, "parameterType": { "enum": [ "ACHIEVEMENT", "ENTITLEMENT", "STATISTIC", "STATISTIC_CYCLE", "USERACCOUNT" ], "type": "string" }, "statCycleId": { "type": "string" }, "targetValue": { "format": "double", "type": "number" } }, "required": [ "matcher", "parameterName", "parameterType", "targetValue" ] }, "model.Requirement": { "properties": { "operator": { "enum": [ "AND" ], "type": "string" }, "predicates": { "items": { "$ref": "#/definitions/model.Predicate" }, "type": "array" } }, "required": [ "operator", "predicates" ] }, "model.RequirementProgressionResponse": { "properties": { "completedAt": { "type": "string" }, "currentValue": { "format": "double", "type": "number" }, "id": { "type": "string" }, "matcher": { "type": "string" }, "parameterName": { "type": "string" }, "parameterType": { "type": "string" }, "statCycleId": { "type": "string" }, "targetValue": { "format": "double", "type": "number" } }, "required": [ "currentValue", "id", "matcher", "parameterName", "parameterType", "targetValue" ] }, "model.ResetConfig": { "properties": { "resetDate": { "description": "valid value are 1 to 31, default to 1 for MONTHLY rotation", "format": "int32", "type": "integer" }, "resetDay": { "description": "valid value are 1 (Monday) to 7 (Sunday), default to 1 for WEEKLY rotation", "format": "int32", "type": "integer" }, "resetTime": { "description": "format hh:mm, must be in UTC timezone, default '00:00' for all rotation", "type": "string" } } }, "model.Reward": { "properties": { "itemId": { "type": "string" }, "itemName": { "type": "string" }, "qty": { "format": "float", "type": "number" }, "type": { "enum": [ "ENTITLEMENT", "STATISTIC" ], "type": "string" } }, "required": [ "itemId", "itemName", "qty", "type" ] }, "model.Schedule": { "properties": { "challengeCode": { "type": "string" }, "createdAt": { "type": "string" }, "endTime": { "type": "string" }, "goals": { "items": { "$ref": "#/definitions/model.GoalOrder" }, "type": "array" }, "namespace": { "type": "string" }, "startTime": { "type": "string" }, "updatedAt": { "type": "string" } }, "required": [ "challengeCode", "createdAt", "endTime", "goals", "namespace", "startTime", "updatedAt" ] }, "model.ScheduleByGoalResponse": { "properties": { "endTime": { "format": "date-time", "type": "string", "x-nullable": false }, "startTime": { "format": "date-time", "type": "string", "x-nullable": false } }, "required": [ "endTime", "startTime" ] }, "model.ScheduleResponse": { "properties": { "endTime": { "format": "date-time", "type": "string", "x-nullable": false }, "goals": { "items": { "$ref": "#/definitions/model.GoalInSchedulesResponse" }, "type": "array" }, "startTime": { "format": "date-time", "type": "string", "x-nullable": false } }, "required": [ "endTime", "goals", "startTime" ] }, "model.UpdateChallengeRequest": { "properties": { "activeGoalsPerRotation": { "format": "int32", "type": "integer" }, "assignmentRule": { "enum": [ "CUSTOM", "FIXED", "RANDOMIZED", "UNSCHEDULED" ], "type": "string" }, "description": { "type": "string" }, "endAfter": { "format": "int32", "type": "integer" }, "endDate": { "format": "date-time", "type": "string", "x-nullable": true }, "goalsVisibility": { "enum": [ "PERIODONLY", "SHOWALL" ], "type": "string" }, "name": { "type": "string" }, "randomizedPerRotation": { "type": "boolean", "x-omitempty": false }, "repeatAfter": { "format": "int32", "type": "integer" }, "resetConfig": { "$ref": "#/definitions/model.ResetConfig" }, "rotation": { "enum": [ "DAILY", "MONTHLY", "NONE", "WEEKLY" ], "type": "string" }, "startDate": { "format": "date-time", "type": "string", "x-nullable": true }, "tags": { "items": { "type": "string" }, "type": "array" } } }, "model.UpdateChallengeScheduleRequest": { "properties": { "action": { "enum": [ "ACCELERATE", "STOP" ], "type": "string" }, "endDate": { "format": "date-time", "type": "string", "x-nullable": true } }, "required": [ "action" ] }, "model.UpdateGoalRequest": { "properties": { "description": { "type": "string" }, "isActive": { "type": "boolean", "x-omitempty": false }, "name": { "type": "string" }, "requirementGroups": { "items": { "$ref": "#/definitions/model.Requirement" }, "type": "array" }, "rewards": { "items": { "$ref": "#/definitions/model.Reward" }, "type": "array" }, "schedule": { "$ref": "#/definitions/model.GoalScheduleRequest" }, "tags": { "items": { "type": "string" }, "type": "array" } }, "required": [ "name" ] }, "model.UserProgressionPeriodResponseMeta": { "properties": { "endTime": { "type": "string" }, "startTime": { "type": "string" } }, "required": [ "endTime", "startTime" ] }, "model.UserProgressionResponse": { "properties": { "data": { "items": { "$ref": "#/definitions/model.GoalProgressionResponse" }, "type": "array" }, "meta": { "$ref": "#/definitions/model.UserProgressionResponseMeta" }, "paging": { "$ref": "#/definitions/model.Pagination" } }, "required": [ "data", "meta", "paging" ] }, "model.UserProgressionResponseMeta": { "properties": { "code": { "description": "challenge code", "type": "string" }, "description": { "type": "string" }, "endDate": { "type": "string" }, "name": { "type": "string" }, "period": { "$ref": "#/definitions/model.UserProgressionPeriodResponseMeta" }, "startDate": { "type": "string" }, "userId": { "type": "string" } }, "required": [ "code", "description", "name", "period", "startDate", "userId" ] }, "model.UserReward": { "properties": { "challengeCode": { "type": "string" }, "createdAt": { "type": "string" }, "goalCode": { "type": "string" }, "goalProgressionId": { "type": "string" }, "id": { "type": "string" }, "itemId": { "type": "string" }, "itemName": { "type": "string" }, "qty": { "format": "float", "type": "number" }, "status": { "enum": [ "CLAIMED", "UNCLAIMED" ], "type": "string" }, "type": { "enum": [ "ENTITLEMENT", "STATISTIC" ], "type": "string" }, "updatedAt": { "type": "string" }, "userId": { "type": "string" } }, "required": [ "challengeCode", "createdAt", "goalCode", "goalProgressionId", "id", "itemId", "itemName", "qty", "status", "type", "updatedAt", "userId" ] }, "models.Period": { "properties": { "endTime": { "format": "date-time", "type": "string", "x-nullable": false }, "slot": { "format": "int32", "type": "integer" }, "startTime": { "format": "date-time", "type": "string", "x-nullable": false } }, "required": [ "endTime", "slot", "startTime" ] }, "response.Error": { "properties": { "attributes": { "additionalProperties": { "type": "string" }, "type": "object" }, "errorCode": { "format": "int32", "type": "integer" }, "errorMessage": { "type": "string" }, "message": { "type": "string" }, "name": { "type": "string" } }, "required": [ "attributes", "errorCode", "errorMessage", "message", "name" ] } }, "x-docs": { "alias": "challenge", "host": "https://stage.accelbyte.io", "path": "/challenge/apidocs/api.json" }, "x-version": { "buildDate": "2025-11-19T03:09:18+00:00", "gitHash": "6fbd634cf75998e19cce06ee035e416345b1e874", "name": "justice-challenge-service", "realm": "stage", "version": "1.25.6", "version-roles-seeding": "1.2.74" } }