diff --git a/api.scouting.org/openapi.yaml b/api.scouting.org/openapi.yaml index f04d816..7bcc848 100644 --- a/api.scouting.org/openapi.yaml +++ b/api.scouting.org/openapi.yaml @@ -1,4 +1,4 @@ -openapi: 3.0.3 +openapi: 3.1.0 info: title: Scouting.org API description: |- @@ -28,6 +28,12 @@ tags: externalDocs: description: Find out more about registered Scouts url: https://github.com/mmarseglia/scouting-api + - name: organizations + description: Access to information about organizations, units, and leaders + externalDocs: + description: Find out more about organizations + url: https://github.com/mmarseglia/scouting-api + paths: /advancements/ranks: get: @@ -37,21 +43,21 @@ paths: description: Returns JSON list of all ranks and awards operationId: getRanks parameters: - - $ref: '#/components/schemas/RequestParams/properties/version' - - $ref: '#/components/schemas/RequestParams/properties/id' - - $ref: '#/components/schemas/RequestParams/properties/programId' - - $ref: '#/components/schemas/RequestParams/properties/status' + - $ref: "#/components/parameters/version" + - $ref: "#/components/parameters/id" + - $ref: "#/components/parameters/programId" + - $ref: "#/components/parameters/status" responses: - '200': + "200": description: Successful operation content: application/json: schema: - $ref: '#/components/schemas/Ranks' - '400': + $ref: "#/components/schemas/Ranks" + "400": description: Bad Request content: - application/json; charset=UTF-8: + application/json: schema: type: object properties: @@ -65,113 +71,592 @@ paths: - errorCode - message - errorDesc + /lookups/address/countries: get: responses: "200": - description: 200 response + description: Successful operation content: - application/json; charset=UTF-8; indent="false": + application/json: schema: $ref: "#/components/schemas/GetLookupsAddressCountries200ResponseBody" - /advancements/youth/{userId}/: - parameters: - - in: path - name: userId - required: true - schema: - type: string + + /advancements/youth/{userId}/leadershipPositionHistory: get: responses: - "401": - description: 401 response + "200": + description: Successful response content: application/json: schema: - $ref: "#/components/schemas/GetAdvancementsYouthYouth401ResponseBody" - "404": - description: 404 response + $ref: "#/components/schemas/GetAdvancementsYouthUseridLeadershippositionhistory200ResponseBody" + + /advancements/ranks/{rank}/requirements: + get: + operationId: getRankRequirements + parameters: + - in: path + name: rank + required: true + schema: + type: string + responses: + "200": + description: Successful operation content: - application/json; charset=UTF-8: + application/json: + schema: + $ref: "#/components/schemas/GetAdvancementsRanksRankRequirements200ResponseBody" + + /advancements/meritBadges: + get: + operationId: getMeritBadges + responses: + "200": + description: Successful operation + content: + application/json: {} + tags: + - advancements + + /advancements/v2/youth/{userId}/awards: + get: + operationId: getYouthAwardsByUserId + parameters: + - in: path + name: userId + required: true + schema: + type: string + example: 1234567 + responses: + "200": + description: Successful response + content: + application/json: schema: type: object - properties: - errorCode: - type: string - message: - type: string - errorDesc: - type: string - required: - - errorCode - - message - - errorDesc - /advancements/youth/{userId}: - parameters: - - in: path - name: userId - required: true - schema: - type: string + tags: + - advancements + + /advancements/v2/youth/{userId}/leadershipPositionHistory: get: - security: - - BearerAuth: - [] + operationId: getYouthLeadershipPositionHistoryByUserId + parameters: + - in: path + name: userId + required: true + schema: + type: string + example: 1234567 responses: - "404": - description: 404 response + "200": + description: Successful response content: - application/json; charset=UTF-8: + application/json: schema: - $ref: "#/components/schemas/GetAdvancementsYouthYouth401ResponseBody" - "405": - description: 405 response + $ref: "#/components/schemas/GetAdvancementsYouthUseridLeadershippositionhistory200ResponseBody" + tags: + - advancements + + /advancements/v2/youth/{userId}/meritBadges: + get: + operationId: getYouthMeritBadgesByUserId + parameters: + - in: path + name: userId + required: true + schema: + type: string + example: 1234567 + responses: + "200": + description: Successful response content: - application/json; charset=UTF-8: + application/json: schema: type: object - properties: - errorCode: - type: string - message: - type: string - errorDesc: - type: string - required: - - errorCode - - message - - errorDesc - /advancements/youth/{userId}/leadershipPositionHistory: - parameters: - - in: path - name: userId - required: true - schema: - type: string + tags: + - advancements + + /advancements/v2/youth/{userId}/ranks: get: + operationId: getYouthRanksByUserId + parameters: + - in: path + name: userId + required: true + schema: + type: string + example: 1234567 responses: "200": - description: 200 response + description: Successful response content: - application/json; charset=UTF-8; indent="false": + application/json: schema: - $ref: "#/components/schemas/GetAdvancementsYouthUseridLeadershippositionhistory\ - 200ResponseBody" - /advancements/ranks/{rank}/requirements: - parameters: - - in: path - name: rank - required: true - schema: - type: string + type: object + tags: + - advancements + + /advancements/v2/{personGuid}/userActivitySummary: + get: + operationId: getUserActivitySummaryByPersonGuid + parameters: + - in: path + name: personGuid + required: true + schema: + type: string + example: 11111111-1111-1111-1111-111111111111 + responses: + "200": + description: Successful response + content: + application/json: {} + tags: + - advancements + + /organizations/v2/units/{organizationGuid}/adults: get: + operationId: getAdultsByOrganizationGuid + parameters: + - in: path + name: organizationGuid + required: true + schema: + type: string + example: 11111111-1111-1111-1111-111111111111 responses: "200": - description: 200 response + description: Successful response content: - application/json; charset=UTF-8: + application/json: schema: - $ref: "#/components/schemas/GetAdvancementsRanksRankRequirements200ResponseBody" + type: object + tags: + - organizations + + /organizations/v2/units/{organizationGuid}/parents: + get: + operationId: getParentsByOrganizationGuid + parameters: + - in: path + name: organizationGuid + required: true + schema: + type: string + example: 11111111-1111-1111-1111-111111111111 + responses: + "200": + description: Successful response + content: + application/json: {} + tags: + - organizations + + /organizations/v2/units/{organizationGuid}/subUnits: + get: + operationId: getSubUnitsByOrganizationGuid + parameters: + - in: path + name: organizationGuid + required: true + schema: + type: string + example: 11111111-1111-1111-1111-111111111111 + responses: + "200": + description: Successful response + content: + application/json: {} + tags: + - organizations + + /organizations/v2/units/{organizationGuid}/youths: + get: + operationId: getYouthsByOrganizationGuid + parameters: + - in: path + name: organizationGuid + required: true + schema: + type: string + example: 11111111-1111-1111-1111-111111111111 + responses: + "200": + description: Successful response + content: + application/json: {} + tags: + - organizations + + /organizations/v2/{organizationGuid}/advancementDashboard: + get: + operationId: getAdvancementDashboardByOrganizationGuid + parameters: + - in: path + name: organizationGuid + required: true + schema: + type: string + example: 11111111-1111-1111-1111-111111111111 + responses: + "200": + description: Successful response + content: + application/json: {} + tags: + - organizations + + /organizations/v2/{organizationGuid}/advancementsReadyToBeAwarded: + post: + operationId: postAdvancementsReadyToBeAwardedByOrganizationGuid + parameters: + - in: path + name: organizationGuid + required: true + schema: + type: string + example: 11111111-1111-1111-1111-111111111111 + requestBody: + content: + "*/*": + schema: + additionalProperties: true + properties: {} + type: object + responses: + "200": + description: Successful response + content: + application/json: {} + tags: + - organizations + + /organizations/v2/{organizationGuid}/orders: + get: + operationId: getOrdersByOrganizationGuid + parameters: + - in: path + name: organizationGuid + required: true + schema: + type: string + example: 11111111-1111-1111-1111-111111111111 + responses: + "200": + description: Successful response + content: + application/json: {} + tags: + - organizations + + /organizations/v2/{organizationGuid}/orgAdults: + post: + operationId: postOrgAdultsByOrganizationGuid + parameters: + - in: path + name: organizationGuid + required: true + schema: + type: string + example: 11111111-1111-1111-1111-111111111111 + requestBody: + content: + "*/*": + schema: + additionalProperties: true + properties: {} + type: object + responses: + "200": + description: Successful response + content: + application/json: {} + tags: + - organizations + + /organizations/v2/{organizationGuid}/orgTrainingSummary: + get: + operationId: getOrgTrainingSummaryByOrganizationGuid + parameters: + - in: path + name: organizationGuid + required: true + schema: + type: string + example: 11111111-1111-1111-1111-111111111111 + responses: + "200": + description: Successful response + content: + application/json: {} + tags: + - organizations + + /organizations/v2/{organizationGuid}/orgYouths: + post: + operationId: postOrgYouthsByOrganizationGuid + parameters: + - in: path + name: organizationGuid + required: true + schema: + type: string + example: 11111111-1111-1111-1111-111111111111 + requestBody: + content: + "*/*": + schema: + additionalProperties: true + properties: {} + type: object + responses: + "200": + description: Successful response + content: + application/json: {} + tags: + - organizations + + /organizations/v2/{organizationGuid}/profile: + get: + operationId: getOrganizationProfileByOrganizationGuid + parameters: + - in: path + name: organizationGuid + required: true + schema: + type: string + example: 11111111-1111-1111-1111-111111111111 + responses: + "200": + description: Successful response + content: + application/json: {} + tags: + - organizations + + /organizations/v2/{organizationGuid}/renewalDashboard: + get: + operationId: getRenewalDashboardByOrganizationGuid + parameters: + - in: path + name: organizationGuid + required: true + schema: + type: string + example: 11111111-1111-1111-1111-111111111111 + responses: + "200": + description: Successful response + content: + application/json: {} + tags: + - organizations + + /organizations/v2/{organizationGuid}/unitActivitiesDashboard: + get: + operationId: getUnitActivitiesDashboardByOrganizationGuid + parameters: + - in: path + name: organizationGuid + required: true + schema: + type: string + example: 11111111-1111-1111-1111-111111111111 + responses: + "200": + description: Successful response + content: + application/json: {} + tags: + - organizations + + /organizations/v2/{organizationGuid}/unitAdvancementDashboard: + get: + operationId: getUnitAdvancementDashboardByOrganizationGuid + parameters: + - in: path + name: organizationGuid + required: true + schema: + type: string + example: 11111111-1111-1111-1111-111111111111 + responses: + "200": + description: Successful response + content: + application/json: {} + tags: + - organizations + + /organizations/v2/{organizationGuid}/unitRenewalStatusDashboard: + get: + operationId: getUnitRenewalStatusDashboardByOrganizationGuid + parameters: + - in: path + name: organizationGuid + required: true + schema: + type: string + example: 11111111-1111-1111-1111-111111111111 + responses: + "200": + description: Successful response + content: + application/json: {} + tags: + - organizations + + /organizations/v2/{organizationGuid}/unitRoundtableAttendance: + get: + operationId: getUnitRoundtableAttendanceByOrganizationGuid + parameters: + - in: path + name: organizationGuid + required: true + schema: + type: string + example: 11111111-1111-1111-1111-111111111111 + responses: + "200": + description: Successful response + content: + application/json: {} + tags: + - organizations + + /persons/v2/{personGuid}/personprofile: + get: + operationId: getPersonProfileByPersonGuid + parameters: + - in: path + name: personGuid + required: true + schema: + type: string + example: 11111111-1111-1111-1111-111111111111 + responses: + "200": + description: Successful response + content: + application/json: + schema: + type: object + tags: + - persons + + /persons/v2/{personGuid}/profile: + get: + operationId: getProfileByPersonGuid + parameters: + - in: path + name: personGuid + required: true + schema: + type: string + example: 11111111-1111-1111-1111-111111111111 + responses: + "200": + description: Successful response + content: + application/json: {} + tags: + - persons + + /persons/v2/{personGuid}/renewalRelationships: + get: + operationId: getRenewalRelationshipsByPersonGuid + parameters: + - in: path + name: personGuid + required: true + schema: + type: string + example: 11111111-1111-1111-1111-111111111111 + responses: + "200": + description: Successful response + content: + application/json: {} + tags: + - persons + + /persons/v2/{personGuid}/roleTypes: + get: + operationId: getRoleTypesByPersonGuid + parameters: + - in: path + name: personGuid + required: true + schema: + type: string + example: 11111111-1111-1111-1111-111111111111 + responses: + "200": + description: Successful response + content: + application/json: {} + tags: + - persons + + /persons/v2/{personGuid}/subscriptions: + get: + operationId: getSubscriptionsByPersonGuid + parameters: + - in: path + name: personGuid + required: true + schema: + type: string + example: 11111111-1111-1111-1111-111111111111 + responses: + "200": + description: Successful response + content: + application/json: {} + tags: + - persons + + /persons/v2/{personGuid}/tools: + get: + operationId: getToolsByPersonGuid + parameters: + - in: path + name: personGuid + required: true + schema: + type: string + example: 11111111-1111-1111-1111-111111111111 + responses: + "200": + description: Successful response + content: + application/json: {} + tags: + - persons + + /persons/v2/{personGuid}/trainings/ypt: + get: + operationId: getYPTTrainingsByPersonGuid + parameters: + - in: path + name: personGuid + required: true + schema: + type: string + example: 11111111-1111-1111-1111-111111111111 + responses: + "200": + description: Successful response + content: + application/json: {} + tags: + - persons + components: schemas: Ranks: @@ -191,7 +676,8 @@ components: example: "" footer: type: string - example: "NOTES: The requirements for Scout, Tenderfoot, Second + example: + "NOTES: The requirements for Scout, Tenderfoot, Second Class, and First Class ranks may be worked on simultaneously; however, these ranks must be earned in sequence.

@@ -209,7 +695,8 @@ components: Scoutmaster in consultation with your parent or guardian." header: type: string - example: "All requirements for the Scout rank must be completed as a member of a + example: + "All requirements for the Scout rank must be completed as a member of a troop or as a Lone Scout. If you have already completed these requirements as part of the Webelos Scouting Adventure, simply demonstrate your knowledge or skills to your Scoutmaster or other