openapi: 3.2.0 info: title: Green Check Access CRB API version: 1.0.0 description: Green Check Access contact: {} servers: - url: https://sandbox-api.greencheckverified.com description: Sandbox server - url: https://prod-api.greencheckverified.com description: Production server tags: - name: CRB paths: /crbs/{crb_id}: get: operationId: get-crb responses: '200': description: Ok content: application/json: schema: $ref: '#/components/schemas/CRB' '401': description: Unauthorized content: application/json: schema: $ref: '#/components/schemas/UnauthorizedError' '403': description: Forbidden content: application/json: schema: $ref: '#/components/schemas/ForbiddenError' '404': description: Not Found content: application/json: schema: $ref: '#/components/schemas/NotFoundError' '422': description: Validation Failed content: application/json: schema: $ref: '#/components/schemas/ValidateError' summary: Get CRB tags: - CRB security: - access_auth: - crb:read - admin parameters: - description: CRB Id in: path name: crb_id required: true schema: type: string pattern: ^[0-9a-fA-F]{8}\b-[0-9a-fA-F]{4}\b-[0-9a-fA-F]{4}\b-[0-9a-fA-F]{4}\b-[0-9a-fA-F]{12}$ components: schemas: ValidateError: properties: name: type: string default: Validation Failed message: type: string stack: type: string status: type: number format: double default: 422 fields: $ref: '#/components/schemas/FieldErrors' data: {} required: - name - message - status - fields type: object additionalProperties: false IANATimezones: enum: - America/New_York - America/Detroit - America/Kentucky/Louisville - America/Kentucky/Monticello - America/Indiana/Indianapolis - America/Indiana/Vincennes - America/Indiana/Winamac - America/Indiana/Marengo - America/Indiana/Petersburg - America/Indiana/Vevay - America/Chicago - America/Indiana/Tell_City - America/Indiana/Knox - America/Menominee - America/North_Dakota/Center - America/North_Dakota/New_Salem - America/North_Dakota/Beulah - America/Denver - America/Boise - America/Phoenix - America/Los_Angeles - America/Anchorage - America/Juneau - America/Puerto_Rico - America/Sitka - America/St_Thomas - America/Metlakatla - America/Yakutat - America/Nome - America/Adak - Pacific/Honolulu - Pacific/Guam - Pacific/Kosrae - Pacific/Midway - Pacific/Pago_Pago - Pacific/Palau - Pacific/Kwajalein - Pacific/Saipan type: string UUID: type: string format: uuid pattern: ^[0-9a-fA-F]{8}\b-[0-9a-fA-F]{4}\b-[0-9a-fA-F]{4}\b-[0-9a-fA-F]{4}\b-[0-9a-fA-F]{12}$ NullablePositiveInteger: type: - integer - 'null' format: int32 minimum: 0 CRB: properties: id: $ref: '#/components/schemas/UUID' description: ID name: type: string description: Organization name street_address: type: string description: Street Address street_address_2: type: - string - 'null' description: Street Address 2 city: allOf: - $ref: '#/components/schemas/City' description: City type: - string - 'null' ein: allOf: - $ref: '#/components/schemas/EIN' description: Employer Identification Number type: - string - 'null' phone_number: allOf: - $ref: '#/components/schemas/PhoneNumber' description: Phone Number type: - string - 'null' postal_code: allOf: - $ref: '#/components/schemas/PostalCode' description: Postal Code type: - string - 'null' country: type: - string - 'null' description: Country state: $ref: '#/components/schemas/USStates' description: State website: allOf: - $ref: '#/components/schemas/Website' description: Website type: - string - 'null' timezone: $ref: '#/components/schemas/IANATimezones' description: Timezone mailing_street_address: type: - string - 'null' description: Mailing Street Address mailing_city: allOf: - $ref: '#/components/schemas/City' description: Mailing City type: - string - 'null' mailing_state: allOf: - $ref: '#/components/schemas/USStates' description: Mailing State type: - string - 'null' mailing_postal_code: allOf: - $ref: '#/components/schemas/PostalCode' description: Mailing Postal Code type: - string - 'null' established_date: allOf: - $ref: '#/components/schemas/ShortDate' description: Date the dispensary was established type: - string - 'null' ftEmployees: $ref: '#/components/schemas/NullablePositiveInteger' description: Number of full time employees ptEmployees: $ref: '#/components/schemas/NullablePositiveInteger' description: Number of part time employees entityType: allOf: - $ref: '#/components/schemas/EntityType' description: Type of business entity type: - string - 'null' dba: type: - string - 'null' description: Doing Business As monthlySales: type: - string - 'null' description: Estimated amouunt of monthly sales monthlyCustomers: $ref: '#/components/schemas/NullablePositiveInteger' description: Estimated amount of monthly customers required: - id - name - street_address - street_address_2 - city - ein - phone_number - postal_code - country - state - website - timezone - mailing_street_address - mailing_city - mailing_state - mailing_postal_code - established_date - ftEmployees - ptEmployees - entityType - dba - monthlySales - monthlyCustomers type: object additionalProperties: false NotFoundError: properties: name: type: string default: Not Found message: type: string stack: type: string status: type: number format: double default: 404 data: {} required: - name - message - status type: object additionalProperties: false ForbiddenError: properties: name: type: string default: Forbidden message: type: string stack: type: string status: type: number format: double default: 403 data: {} required: - name - message - status type: object additionalProperties: false USStates: description: Enumeration of all of the United States enum: - AL - AK - AZ - AR - AS - CA - CO - CT - DE - DC - FM - FL - GA - GU - HI - ID - IL - IN - IA - KS - KY - LA - ME - MD - MA - MH - MI - MN - MS - MO - MT - NE - NV - NH - NJ - NM - NY - NC - ND - MP - OH - OK - OR - PW - PA - PR - RI - SC - SD - TN - TX - UM - UT - VT - VA - VI - WA - WV - WI - WY - AA - AE - AP type: string EntityType: enum: - sole - partnership - corporation - llc type: string PostalCode: type: string description: Postal Code pattern: ^\d{5}(?:[-\s]?\d{4})?$ PhoneNumber: type: string description: 'Phone Number - (###) ####-####' pattern: ^\(\d{3}\)\s\d{3}-\d{4}$ ShortDate: type: string pattern: ^[2][0][0-9]{2}[-]([0][0-9]|[1][0-2])[-]([0-2][0-9]|[3][0-1]) FieldErrors: properties: {} type: object additionalProperties: properties: value: {} message: type: string required: - message type: object Website: type: string description: Website pattern: ^(https?:\/\/)?[-a-zA-Z0-9@:%._\+~#=]{1,256}\.[a-zA-Z0-9()]{1,6}\b([-a-zA-Z0-9()@:%_\+.~#?&=]*) EIN: type: string description: 'EIN (Employer Identification Number) - ##-#######' pattern: ^\d{2}-\d{7}$ UnauthorizedError: properties: name: type: string default: Unauthorized message: type: string stack: type: string status: type: number format: double default: 401 data: {} required: - name - message - status type: object additionalProperties: false City: type: string description: City pattern: ^[a-zA-Z\s.-]+$ securitySchemes: access_auth: type: apiKey name: Authorization in: header x-amazon-apigateway-authtype: custom x-amazon-apigateway-authorizer: type: request identitySource: method.request.header.Authorization authorizerUri: Fn::Sub: arn:aws:apigateway:${AWS::Region}:lambda:path/2015-03-31/functions/${AccessAuthorizerLambda.Arn}/invocations authorizerCredentials: Fn::Sub: ${AccessApiGatewayRole.Arn} authorizerResultTtlInSeconds: 60 x-amazon-apigateway-request-validators: all: validateRequestBody: true validateRequestParameters: true params: validateRequestBody: true validateRequestParameters: true body: validateRequestBody: true validateRequestParameters: false x-amazon-apigateway-api-key-source: AUTHORIZER x-tagGroups: - name: '' tags: - Authentication - name: Service Provider tags: - Service Provider - CRB Info - CRB Customers - CRB Documents - CRB Inventory - CRB Inventory Locations - CRB Products - CRB Sales - CRB Templates - name: CRB tags: - CRB - Customers - Documents - Inventory - Inventory Locations - Products - Sales x-amazon-apigateway-gateway-responses: ACCESS_DENIED: statusCode: '403' responseTemplates: application/json: '{"message":"$context.authorizer.context.messageString"}' EXPIRED_TOKEN: statusCode: '403' responseTemplates: application/json: '{"message":"$context.error.message", "details":"EXPIRED_TOKEN"}' INVALID_API_KEY: statusCode: '403' responseTemplates: application/json: '{"message":"$context.error.message", "details":"INVALID_API_KEY"}' INVALID_SIGNATURE: statusCode: '403' responseTemplates: application/json: '{"message":"$context.error.message", "details":"INVALID_SIGNATURE"}' MISSING_AUTHENTICATION_TOKEN: statusCode: '403' responseTemplates: application/json: '{"message":"Missing Authentication Header", "details":"MISSING_AUTHENTICATION_TOKEN"}' QUOTA_EXCEEDED: statusCode: '429' responseTemplates: application/json: '{"message":"$context.error.message", "details":"QUOTA_EXCEEDED"}' REQUEST_TOO_LARGE: statusCode: '413' responseTemplates: application/json: '{"message":"$context.error.message", "details":"REQUEST_TOO_LARGE"}' RESOURCE_NOT_FOUND: statusCode: '404' responseTemplates: application/json: '{"message":"$context.error.message", "details":"RESOURCE_NOT_FOUND"}' THROTTLED: statusCode: '429' responseTemplates: application/json: '{"message":"$context.error.message", "details":"THROTTLED"}' UNAUTHORIZED: statusCode: '401' responseTemplates: application/json: '{"message":"$context.error.message", "details":"UNAUTHORIZED"}' UNSUPPORTED_MEDIA_TYPE: statusCode: '415' responseTemplates: application/json: '{"message":"$context.error.message", "details":"UNSUPPORTED_MEDIA_TYPE"}' DEFAULT_4XX: statusCode: '404' responseTemplates: application/json: '{"message":"The requested URL is invalid"}' INTEGRATION_FAILURE: statusCode: '404' responseTemplates: application/json: '{"message":"Request too long. Ensure any request body or file you are sending is less than 5MB"}' WAF_FILTERED: statusCode: '403' responseTemplates: application/json: '{"message":"$context.error.message", "details":"FORBIDDEN"}'