From d04f10e7d1f61fabfb5fa8d5e74a621563d6326b Mon Sep 17 00:00:00 2001 From: Lauris Skraucis Date: Wed, 26 Mar 2025 17:25:49 +0100 Subject: [PATCH] refactor: platform - remove host and attendee automatic no show webhook trigger (#20385) * docs: connect calendar redir and auto accept team creator * refactor: platform hide automatic no show webhook triggers --- .../controllers/calendars.controller.ts | 8 +- .../teams/teams/inputs/create-team.input.ts | 7 +- apps/api/v2/swagger/documentation.json | 769 +++++++++--------- .../[clientId]/edit/edit-webhooks-view.tsx | 8 - docs/api-reference/v2/openapi.json | 629 +++++++------- 5 files changed, 723 insertions(+), 698 deletions(-) diff --git a/apps/api/v2/src/ee/calendars/controllers/calendars.controller.ts b/apps/api/v2/src/ee/calendars/controllers/calendars.controller.ts index ba69eddb41..40e5e529ba 100644 --- a/apps/api/v2/src/ee/calendars/controllers/calendars.controller.ts +++ b/apps/api/v2/src/ee/calendars/controllers/calendars.controller.ts @@ -34,7 +34,7 @@ import { Post, Body, } from "@nestjs/common"; -import { ApiOperation, ApiParam, ApiTags as DocsTags } from "@nestjs/swagger"; +import { ApiOperation, ApiParam, ApiQuery, ApiTags as DocsTags } from "@nestjs/swagger"; import { User } from "@prisma/client"; import { plainToClass } from "class-transformer"; import { Request } from "express"; @@ -132,6 +132,12 @@ export class CalendarsController { @Get("/:calendar/connect") @HttpCode(HttpStatus.OK) @ApiOperation({ summary: "Get oAuth connect URL" }) + @ApiQuery({ + name: "redir", + required: false, + type: String, + description: "Redirect URL after successful calendar authorization.", + }) async redirect( @Req() req: Request, @Headers("Authorization") authorization: string, diff --git a/apps/api/v2/src/modules/teams/teams/inputs/create-team.input.ts b/apps/api/v2/src/modules/teams/teams/inputs/create-team.input.ts index 5714b2ced8..cc4a74430d 100644 --- a/apps/api/v2/src/modules/teams/teams/inputs/create-team.input.ts +++ b/apps/api/v2/src/modules/teams/teams/inputs/create-team.input.ts @@ -120,6 +120,11 @@ export class CreateTeamInput { @IsOptional() @IsBoolean() - @ApiPropertyOptional({ type: Boolean, default: true }) + @ApiPropertyOptional({ + type: Boolean, + default: true, + description: + "If you are a platform customer, don't pass 'false', because then team creator won't be able to create team event types.", + }) readonly autoAcceptCreator?: boolean = true; } diff --git a/apps/api/v2/swagger/documentation.json b/apps/api/v2/swagger/documentation.json index 32590b9519..5f7d9a04cb 100644 --- a/apps/api/v2/swagger/documentation.json +++ b/apps/api/v2/swagger/documentation.json @@ -4561,6 +4561,15 @@ ], "type": "string" } + }, + { + "name": "redir", + "required": false, + "in": "query", + "description": "Redirect URL after successful calendar authorization.", + "schema": { + "type": "string" + } } ], "responses": { @@ -12046,7 +12055,8 @@ }, "autoAcceptCreator": { "type": "boolean", - "default": true + "default": true, + "description": "If you are a platform customer, don't pass 'false', because then team creator won't be able to create team event types." } }, "required": [ @@ -15185,7 +15195,8 @@ }, "autoAcceptCreator": { "type": "boolean", - "default": true + "default": true, + "description": "If you are a platform customer, don't pass 'false', because then team creator won't be able to create team event types." } }, "required": [ @@ -15524,383 +15535,6 @@ "data" ] }, - "CreateOrganizationInput": { - "type": "object", - "properties": { - "apiKeyDaysValid": { - "type": "number", - "minimum": 1, - "description": "For how many days is managed organization api key valid. Defaults to 30 days.", - "example": 60, - "default": 30 - }, - "apiKeyNeverExpires": { - "type": "boolean", - "description": "If true, organization api key never expires.", - "example": true - }, - "name": { - "type": "string", - "minLength": 1, - "description": "Name of the organization", - "example": "CalTeam" - }, - "metadata": { - "type": "object", - "description": "You can store any additional data you want here.\nMetadata must have at most 50 keys, each key up to 40 characters.\nValues can be strings (up to 500 characters), numbers, or booleans.", - "example": { - "key": "value" - } - } - }, - "required": [ - "name" - ] - }, - "ManagedOrganizationWithApiKeyOutput": { - "type": "object", - "properties": { - "id": { - "type": "number" - }, - "name": { - "type": "string", - "minLength": 1 - }, - "metadata": { - "type": "object", - "example": { - "key": "value" - } - }, - "apiKey": { - "type": "string" - } - }, - "required": [ - "id", - "name", - "apiKey" - ] - }, - "CreateManagedOrganizationOutput": { - "type": "object", - "properties": { - "status": { - "type": "string", - "example": "success", - "enum": [ - "success", - "error" - ] - }, - "data": { - "$ref": "#/components/schemas/ManagedOrganizationWithApiKeyOutput" - } - }, - "required": [ - "status", - "data" - ] - }, - "ManagedOrganizationOutput": { - "type": "object", - "properties": { - "id": { - "type": "number" - }, - "name": { - "type": "string", - "minLength": 1 - }, - "metadata": { - "type": "object", - "example": { - "key": "value" - } - } - }, - "required": [ - "id", - "name" - ] - }, - "GetManagedOrganizationOutput": { - "type": "object", - "properties": { - "status": { - "type": "string", - "example": "success", - "enum": [ - "success", - "error" - ] - }, - "data": { - "$ref": "#/components/schemas/ManagedOrganizationOutput" - } - }, - "required": [ - "status", - "data" - ] - }, - "GetManagedOrganizationsOutput": { - "type": "object", - "properties": { - "status": { - "type": "string", - "example": "success", - "enum": [ - "success", - "error" - ] - }, - "data": { - "type": "array", - "items": { - "$ref": "#/components/schemas/ManagedOrganizationOutput" - } - } - }, - "required": [ - "status", - "data" - ] - }, - "UpdateOrganizationInput": { - "type": "object", - "properties": { - "name": { - "type": "string", - "minLength": 1, - "description": "Name of the organization", - "example": "CalTeam" - }, - "metadata": { - "type": "object", - "description": "You can store any additional data you want here.\nMetadata must have at most 50 keys, each key up to 40 characters.\nValues can be strings (up to 500 characters), numbers, or booleans.", - "example": { - "key": "value" - } - } - } - }, - "RoutingFormResponseOutput": { - "type": "object", - "properties": { - "id": { - "type": "string" - }, - "formId": { - "type": "string" - }, - "formFillerId": { - "type": "string" - }, - "routedToBookingUid": { - "type": "string" - }, - "response": { - "type": "object", - "example": { - "f00b26df-f54b-4985-8d98-17c5482c6a24": { - "label": "participant", - "value": "mamut" - } - } - }, - "createdAt": { - "format": "date-time", - "type": "string" - } - }, - "required": [ - "id", - "formId", - "formFillerId", - "routedToBookingUid", - "response", - "createdAt" - ] - }, - "GetRoutingFormResponsesOutput": { - "type": "object", - "properties": { - "status": { - "type": "string", - "example": "success", - "enum": [ - "success", - "error" - ] - }, - "data": { - "type": "array", - "items": { - "$ref": "#/components/schemas/RoutingFormResponseOutput" - } - } - }, - "required": [ - "status", - "data" - ] - }, - "ProviderVerifyClientData": { - "type": "object", - "properties": { - "clientId": { - "type": "string" - }, - "organizationId": { - "type": "number" - }, - "name": { - "type": "string" - } - }, - "required": [ - "clientId", - "organizationId", - "name" - ] - }, - "ProviderVerifyClientOutput": { - "type": "object", - "properties": { - "status": { - "type": "string", - "example": "success", - "enum": [ - "success", - "error" - ] - }, - "data": { - "$ref": "#/components/schemas/ProviderVerifyClientData" - } - }, - "required": [ - "status", - "data" - ] - }, - "ProviderVerifyAccessTokenOutput": { - "type": "object", - "properties": { - "status": { - "type": "string", - "example": "success", - "enum": [ - "success", - "error" - ] - } - }, - "required": [ - "status" - ] - }, - "MeOrgOutput": { - "type": "object", - "properties": { - "isPlatform": { - "type": "boolean" - }, - "id": { - "type": "number" - } - }, - "required": [ - "isPlatform", - "id" - ] - }, - "MeOutput": { - "type": "object", - "properties": { - "id": { - "type": "number" - }, - "username": { - "type": "string" - }, - "email": { - "type": "string" - }, - "timeFormat": { - "type": "number" - }, - "defaultScheduleId": { - "type": "number", - "nullable": true - }, - "weekStart": { - "type": "string" - }, - "timeZone": { - "type": "string" - }, - "organizationId": { - "type": "number", - "nullable": true - }, - "organization": { - "$ref": "#/components/schemas/MeOrgOutput" - } - }, - "required": [ - "id", - "username", - "email", - "timeFormat", - "defaultScheduleId", - "weekStart", - "timeZone", - "organizationId" - ] - }, - "GetMeOutput": { - "type": "object", - "properties": { - "status": { - "type": "string", - "example": "success", - "enum": [ - "success", - "error" - ] - }, - "data": { - "$ref": "#/components/schemas/MeOutput" - } - }, - "required": [ - "status", - "data" - ] - }, - "UpdateMeOutput": { - "type": "object", - "properties": { - "status": { - "type": "string", - "example": "success", - "enum": [ - "success", - "error" - ] - }, - "data": { - "$ref": "#/components/schemas/MeOutput" - } - }, - "required": [ - "status", - "data" - ] - }, "CreateIcsFeedInputDto": { "type": "object", "properties": { @@ -16386,6 +16020,383 @@ "data" ] }, + "CreateOrganizationInput": { + "type": "object", + "properties": { + "apiKeyDaysValid": { + "type": "number", + "minimum": 1, + "description": "For how many days is managed organization api key valid. Defaults to 30 days.", + "example": 60, + "default": 30 + }, + "apiKeyNeverExpires": { + "type": "boolean", + "description": "If true, organization api key never expires.", + "example": true + }, + "name": { + "type": "string", + "minLength": 1, + "description": "Name of the organization", + "example": "CalTeam" + }, + "metadata": { + "type": "object", + "description": "You can store any additional data you want here.\nMetadata must have at most 50 keys, each key up to 40 characters.\nValues can be strings (up to 500 characters), numbers, or booleans.", + "example": { + "key": "value" + } + } + }, + "required": [ + "name" + ] + }, + "ManagedOrganizationWithApiKeyOutput": { + "type": "object", + "properties": { + "id": { + "type": "number" + }, + "name": { + "type": "string", + "minLength": 1 + }, + "metadata": { + "type": "object", + "example": { + "key": "value" + } + }, + "apiKey": { + "type": "string" + } + }, + "required": [ + "id", + "name", + "apiKey" + ] + }, + "CreateManagedOrganizationOutput": { + "type": "object", + "properties": { + "status": { + "type": "string", + "example": "success", + "enum": [ + "success", + "error" + ] + }, + "data": { + "$ref": "#/components/schemas/ManagedOrganizationWithApiKeyOutput" + } + }, + "required": [ + "status", + "data" + ] + }, + "ManagedOrganizationOutput": { + "type": "object", + "properties": { + "id": { + "type": "number" + }, + "name": { + "type": "string", + "minLength": 1 + }, + "metadata": { + "type": "object", + "example": { + "key": "value" + } + } + }, + "required": [ + "id", + "name" + ] + }, + "GetManagedOrganizationOutput": { + "type": "object", + "properties": { + "status": { + "type": "string", + "example": "success", + "enum": [ + "success", + "error" + ] + }, + "data": { + "$ref": "#/components/schemas/ManagedOrganizationOutput" + } + }, + "required": [ + "status", + "data" + ] + }, + "GetManagedOrganizationsOutput": { + "type": "object", + "properties": { + "status": { + "type": "string", + "example": "success", + "enum": [ + "success", + "error" + ] + }, + "data": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ManagedOrganizationOutput" + } + } + }, + "required": [ + "status", + "data" + ] + }, + "UpdateOrganizationInput": { + "type": "object", + "properties": { + "name": { + "type": "string", + "minLength": 1, + "description": "Name of the organization", + "example": "CalTeam" + }, + "metadata": { + "type": "object", + "description": "You can store any additional data you want here.\nMetadata must have at most 50 keys, each key up to 40 characters.\nValues can be strings (up to 500 characters), numbers, or booleans.", + "example": { + "key": "value" + } + } + } + }, + "RoutingFormResponseOutput": { + "type": "object", + "properties": { + "id": { + "type": "string" + }, + "formId": { + "type": "string" + }, + "formFillerId": { + "type": "string" + }, + "routedToBookingUid": { + "type": "string" + }, + "response": { + "type": "object", + "example": { + "f00b26df-f54b-4985-8d98-17c5482c6a24": { + "label": "participant", + "value": "mamut" + } + } + }, + "createdAt": { + "format": "date-time", + "type": "string" + } + }, + "required": [ + "id", + "formId", + "formFillerId", + "routedToBookingUid", + "response", + "createdAt" + ] + }, + "GetRoutingFormResponsesOutput": { + "type": "object", + "properties": { + "status": { + "type": "string", + "example": "success", + "enum": [ + "success", + "error" + ] + }, + "data": { + "type": "array", + "items": { + "$ref": "#/components/schemas/RoutingFormResponseOutput" + } + } + }, + "required": [ + "status", + "data" + ] + }, + "ProviderVerifyClientData": { + "type": "object", + "properties": { + "clientId": { + "type": "string" + }, + "organizationId": { + "type": "number" + }, + "name": { + "type": "string" + } + }, + "required": [ + "clientId", + "organizationId", + "name" + ] + }, + "ProviderVerifyClientOutput": { + "type": "object", + "properties": { + "status": { + "type": "string", + "example": "success", + "enum": [ + "success", + "error" + ] + }, + "data": { + "$ref": "#/components/schemas/ProviderVerifyClientData" + } + }, + "required": [ + "status", + "data" + ] + }, + "ProviderVerifyAccessTokenOutput": { + "type": "object", + "properties": { + "status": { + "type": "string", + "example": "success", + "enum": [ + "success", + "error" + ] + } + }, + "required": [ + "status" + ] + }, + "MeOrgOutput": { + "type": "object", + "properties": { + "isPlatform": { + "type": "boolean" + }, + "id": { + "type": "number" + } + }, + "required": [ + "isPlatform", + "id" + ] + }, + "MeOutput": { + "type": "object", + "properties": { + "id": { + "type": "number" + }, + "username": { + "type": "string" + }, + "email": { + "type": "string" + }, + "timeFormat": { + "type": "number" + }, + "defaultScheduleId": { + "type": "number", + "nullable": true + }, + "weekStart": { + "type": "string" + }, + "timeZone": { + "type": "string" + }, + "organizationId": { + "type": "number", + "nullable": true + }, + "organization": { + "$ref": "#/components/schemas/MeOrgOutput" + } + }, + "required": [ + "id", + "username", + "email", + "timeFormat", + "defaultScheduleId", + "weekStart", + "timeZone", + "organizationId" + ] + }, + "GetMeOutput": { + "type": "object", + "properties": { + "status": { + "type": "string", + "example": "success", + "enum": [ + "success", + "error" + ] + }, + "data": { + "$ref": "#/components/schemas/MeOutput" + } + }, + "required": [ + "status", + "data" + ] + }, + "UpdateMeOutput": { + "type": "object", + "properties": { + "status": { + "type": "string", + "example": "success", + "enum": [ + "success", + "error" + ] + }, + "data": { + "$ref": "#/components/schemas/MeOutput" + } + }, + "required": [ + "status", + "data" + ] + }, "BookingInputAddressLocation_2024_08_13": { "type": "object", "properties": { diff --git a/apps/web/modules/settings/platform/oauth-clients/[clientId]/edit/edit-webhooks-view.tsx b/apps/web/modules/settings/platform/oauth-clients/[clientId]/edit/edit-webhooks-view.tsx index 14cedeed13..f497cb5209 100644 --- a/apps/web/modules/settings/platform/oauth-clients/[clientId]/edit/edit-webhooks-view.tsx +++ b/apps/web/modules/settings/platform/oauth-clients/[clientId]/edit/edit-webhooks-view.tsx @@ -73,14 +73,6 @@ export default function EditOAuthClientWebhooks() { value: WebhookTriggerEvents.RECORDING_TRANSCRIPTION_GENERATED, label: "recording_transcription_generated", }, - { - value: WebhookTriggerEvents.AFTER_HOSTS_CAL_VIDEO_NO_SHOW, - label: "after_hosts_cal_video_no_show", - }, - { - value: WebhookTriggerEvents.AFTER_GUESTS_CAL_VIDEO_NO_SHOW, - label: "after_guests_cal_video_no_show", - }, ]} onSubmit={async (data) => { try { diff --git a/docs/api-reference/v2/openapi.json b/docs/api-reference/v2/openapi.json index 1e62d8eef1..24eb6742c2 100644 --- a/docs/api-reference/v2/openapi.json +++ b/docs/api-reference/v2/openapi.json @@ -4314,6 +4314,15 @@ "enum": ["office365", "google"], "type": "string" } + }, + { + "name": "redir", + "required": false, + "in": "query", + "description": "Redirect URL after successful calendar authorization.", + "schema": { + "type": "string" + } } ], "responses": { @@ -11062,7 +11071,8 @@ }, "autoAcceptCreator": { "type": "boolean", - "default": true + "default": true, + "description": "If you are a platform customer, don't pass 'false', because then team creator won't be able to create team event types." } }, "required": ["name"] @@ -13733,7 +13743,8 @@ }, "autoAcceptCreator": { "type": "boolean", - "default": true + "default": true, + "description": "If you are a platform customer, don't pass 'false', because then team creator won't be able to create team event types." } }, "required": ["name"] @@ -14019,313 +14030,6 @@ }, "required": ["status", "data"] }, - "CreateOrganizationInput": { - "type": "object", - "properties": { - "apiKeyDaysValid": { - "type": "number", - "minimum": 1, - "description": "For how many days is managed organization api key valid. Defaults to 30 days.", - "example": 60, - "default": 30 - }, - "apiKeyNeverExpires": { - "type": "boolean", - "description": "If true, organization api key never expires.", - "example": true - }, - "name": { - "type": "string", - "minLength": 1, - "description": "Name of the organization", - "example": "CalTeam" - }, - "metadata": { - "type": "object", - "description": "You can store any additional data you want here.\nMetadata must have at most 50 keys, each key up to 40 characters.\nValues can be strings (up to 500 characters), numbers, or booleans.", - "example": { - "key": "value" - } - } - }, - "required": ["name"] - }, - "ManagedOrganizationWithApiKeyOutput": { - "type": "object", - "properties": { - "id": { - "type": "number" - }, - "name": { - "type": "string", - "minLength": 1 - }, - "metadata": { - "type": "object", - "example": { - "key": "value" - } - }, - "apiKey": { - "type": "string" - } - }, - "required": ["id", "name", "apiKey"] - }, - "CreateManagedOrganizationOutput": { - "type": "object", - "properties": { - "status": { - "type": "string", - "example": "success", - "enum": ["success", "error"] - }, - "data": { - "$ref": "#/components/schemas/ManagedOrganizationWithApiKeyOutput" - } - }, - "required": ["status", "data"] - }, - "ManagedOrganizationOutput": { - "type": "object", - "properties": { - "id": { - "type": "number" - }, - "name": { - "type": "string", - "minLength": 1 - }, - "metadata": { - "type": "object", - "example": { - "key": "value" - } - } - }, - "required": ["id", "name"] - }, - "GetManagedOrganizationOutput": { - "type": "object", - "properties": { - "status": { - "type": "string", - "example": "success", - "enum": ["success", "error"] - }, - "data": { - "$ref": "#/components/schemas/ManagedOrganizationOutput" - } - }, - "required": ["status", "data"] - }, - "GetManagedOrganizationsOutput": { - "type": "object", - "properties": { - "status": { - "type": "string", - "example": "success", - "enum": ["success", "error"] - }, - "data": { - "type": "array", - "items": { - "$ref": "#/components/schemas/ManagedOrganizationOutput" - } - } - }, - "required": ["status", "data"] - }, - "UpdateOrganizationInput": { - "type": "object", - "properties": { - "name": { - "type": "string", - "minLength": 1, - "description": "Name of the organization", - "example": "CalTeam" - }, - "metadata": { - "type": "object", - "description": "You can store any additional data you want here.\nMetadata must have at most 50 keys, each key up to 40 characters.\nValues can be strings (up to 500 characters), numbers, or booleans.", - "example": { - "key": "value" - } - } - } - }, - "RoutingFormResponseOutput": { - "type": "object", - "properties": { - "id": { - "type": "string" - }, - "formId": { - "type": "string" - }, - "formFillerId": { - "type": "string" - }, - "routedToBookingUid": { - "type": "string" - }, - "response": { - "type": "object", - "example": { - "f00b26df-f54b-4985-8d98-17c5482c6a24": { - "label": "participant", - "value": "mamut" - } - } - }, - "createdAt": { - "format": "date-time", - "type": "string" - } - }, - "required": ["id", "formId", "formFillerId", "routedToBookingUid", "response", "createdAt"] - }, - "GetRoutingFormResponsesOutput": { - "type": "object", - "properties": { - "status": { - "type": "string", - "example": "success", - "enum": ["success", "error"] - }, - "data": { - "type": "array", - "items": { - "$ref": "#/components/schemas/RoutingFormResponseOutput" - } - } - }, - "required": ["status", "data"] - }, - "ProviderVerifyClientData": { - "type": "object", - "properties": { - "clientId": { - "type": "string" - }, - "organizationId": { - "type": "number" - }, - "name": { - "type": "string" - } - }, - "required": ["clientId", "organizationId", "name"] - }, - "ProviderVerifyClientOutput": { - "type": "object", - "properties": { - "status": { - "type": "string", - "example": "success", - "enum": ["success", "error"] - }, - "data": { - "$ref": "#/components/schemas/ProviderVerifyClientData" - } - }, - "required": ["status", "data"] - }, - "ProviderVerifyAccessTokenOutput": { - "type": "object", - "properties": { - "status": { - "type": "string", - "example": "success", - "enum": ["success", "error"] - } - }, - "required": ["status"] - }, - "MeOrgOutput": { - "type": "object", - "properties": { - "isPlatform": { - "type": "boolean" - }, - "id": { - "type": "number" - } - }, - "required": ["isPlatform", "id"] - }, - "MeOutput": { - "type": "object", - "properties": { - "id": { - "type": "number" - }, - "username": { - "type": "string" - }, - "email": { - "type": "string" - }, - "timeFormat": { - "type": "number" - }, - "defaultScheduleId": { - "type": "number", - "nullable": true - }, - "weekStart": { - "type": "string" - }, - "timeZone": { - "type": "string" - }, - "organizationId": { - "type": "number", - "nullable": true - }, - "organization": { - "$ref": "#/components/schemas/MeOrgOutput" - } - }, - "required": [ - "id", - "username", - "email", - "timeFormat", - "defaultScheduleId", - "weekStart", - "timeZone", - "organizationId" - ] - }, - "GetMeOutput": { - "type": "object", - "properties": { - "status": { - "type": "string", - "example": "success", - "enum": ["success", "error"] - }, - "data": { - "$ref": "#/components/schemas/MeOutput" - } - }, - "required": ["status", "data"] - }, - "UpdateMeOutput": { - "type": "object", - "properties": { - "status": { - "type": "string", - "example": "success", - "enum": ["success", "error"] - }, - "data": { - "$ref": "#/components/schemas/MeOutput" - } - }, - "required": ["status", "data"] - }, "CreateIcsFeedInputDto": { "type": "object", "properties": { @@ -14746,6 +14450,313 @@ }, "required": ["status", "data"] }, + "CreateOrganizationInput": { + "type": "object", + "properties": { + "apiKeyDaysValid": { + "type": "number", + "minimum": 1, + "description": "For how many days is managed organization api key valid. Defaults to 30 days.", + "example": 60, + "default": 30 + }, + "apiKeyNeverExpires": { + "type": "boolean", + "description": "If true, organization api key never expires.", + "example": true + }, + "name": { + "type": "string", + "minLength": 1, + "description": "Name of the organization", + "example": "CalTeam" + }, + "metadata": { + "type": "object", + "description": "You can store any additional data you want here.\nMetadata must have at most 50 keys, each key up to 40 characters.\nValues can be strings (up to 500 characters), numbers, or booleans.", + "example": { + "key": "value" + } + } + }, + "required": ["name"] + }, + "ManagedOrganizationWithApiKeyOutput": { + "type": "object", + "properties": { + "id": { + "type": "number" + }, + "name": { + "type": "string", + "minLength": 1 + }, + "metadata": { + "type": "object", + "example": { + "key": "value" + } + }, + "apiKey": { + "type": "string" + } + }, + "required": ["id", "name", "apiKey"] + }, + "CreateManagedOrganizationOutput": { + "type": "object", + "properties": { + "status": { + "type": "string", + "example": "success", + "enum": ["success", "error"] + }, + "data": { + "$ref": "#/components/schemas/ManagedOrganizationWithApiKeyOutput" + } + }, + "required": ["status", "data"] + }, + "ManagedOrganizationOutput": { + "type": "object", + "properties": { + "id": { + "type": "number" + }, + "name": { + "type": "string", + "minLength": 1 + }, + "metadata": { + "type": "object", + "example": { + "key": "value" + } + } + }, + "required": ["id", "name"] + }, + "GetManagedOrganizationOutput": { + "type": "object", + "properties": { + "status": { + "type": "string", + "example": "success", + "enum": ["success", "error"] + }, + "data": { + "$ref": "#/components/schemas/ManagedOrganizationOutput" + } + }, + "required": ["status", "data"] + }, + "GetManagedOrganizationsOutput": { + "type": "object", + "properties": { + "status": { + "type": "string", + "example": "success", + "enum": ["success", "error"] + }, + "data": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ManagedOrganizationOutput" + } + } + }, + "required": ["status", "data"] + }, + "UpdateOrganizationInput": { + "type": "object", + "properties": { + "name": { + "type": "string", + "minLength": 1, + "description": "Name of the organization", + "example": "CalTeam" + }, + "metadata": { + "type": "object", + "description": "You can store any additional data you want here.\nMetadata must have at most 50 keys, each key up to 40 characters.\nValues can be strings (up to 500 characters), numbers, or booleans.", + "example": { + "key": "value" + } + } + } + }, + "RoutingFormResponseOutput": { + "type": "object", + "properties": { + "id": { + "type": "string" + }, + "formId": { + "type": "string" + }, + "formFillerId": { + "type": "string" + }, + "routedToBookingUid": { + "type": "string" + }, + "response": { + "type": "object", + "example": { + "f00b26df-f54b-4985-8d98-17c5482c6a24": { + "label": "participant", + "value": "mamut" + } + } + }, + "createdAt": { + "format": "date-time", + "type": "string" + } + }, + "required": ["id", "formId", "formFillerId", "routedToBookingUid", "response", "createdAt"] + }, + "GetRoutingFormResponsesOutput": { + "type": "object", + "properties": { + "status": { + "type": "string", + "example": "success", + "enum": ["success", "error"] + }, + "data": { + "type": "array", + "items": { + "$ref": "#/components/schemas/RoutingFormResponseOutput" + } + } + }, + "required": ["status", "data"] + }, + "ProviderVerifyClientData": { + "type": "object", + "properties": { + "clientId": { + "type": "string" + }, + "organizationId": { + "type": "number" + }, + "name": { + "type": "string" + } + }, + "required": ["clientId", "organizationId", "name"] + }, + "ProviderVerifyClientOutput": { + "type": "object", + "properties": { + "status": { + "type": "string", + "example": "success", + "enum": ["success", "error"] + }, + "data": { + "$ref": "#/components/schemas/ProviderVerifyClientData" + } + }, + "required": ["status", "data"] + }, + "ProviderVerifyAccessTokenOutput": { + "type": "object", + "properties": { + "status": { + "type": "string", + "example": "success", + "enum": ["success", "error"] + } + }, + "required": ["status"] + }, + "MeOrgOutput": { + "type": "object", + "properties": { + "isPlatform": { + "type": "boolean" + }, + "id": { + "type": "number" + } + }, + "required": ["isPlatform", "id"] + }, + "MeOutput": { + "type": "object", + "properties": { + "id": { + "type": "number" + }, + "username": { + "type": "string" + }, + "email": { + "type": "string" + }, + "timeFormat": { + "type": "number" + }, + "defaultScheduleId": { + "type": "number", + "nullable": true + }, + "weekStart": { + "type": "string" + }, + "timeZone": { + "type": "string" + }, + "organizationId": { + "type": "number", + "nullable": true + }, + "organization": { + "$ref": "#/components/schemas/MeOrgOutput" + } + }, + "required": [ + "id", + "username", + "email", + "timeFormat", + "defaultScheduleId", + "weekStart", + "timeZone", + "organizationId" + ] + }, + "GetMeOutput": { + "type": "object", + "properties": { + "status": { + "type": "string", + "example": "success", + "enum": ["success", "error"] + }, + "data": { + "$ref": "#/components/schemas/MeOutput" + } + }, + "required": ["status", "data"] + }, + "UpdateMeOutput": { + "type": "object", + "properties": { + "status": { + "type": "string", + "example": "success", + "enum": ["success", "error"] + }, + "data": { + "$ref": "#/components/schemas/MeOutput" + } + }, + "required": ["status", "data"] + }, "BookingInputAddressLocation_2024_08_13": { "type": "object", "properties": {