diff --git a/.github/workflows/gen-client.yml b/.github/workflows/gen-client.yml index 189f176..eb78f90 100644 --- a/.github/workflows/gen-client.yml +++ b/.github/workflows/gen-client.yml @@ -16,6 +16,12 @@ jobs: run: | curl -H "Authorization: token ${{ secrets.GH_CQ_BOT }}" https://raw.githubusercontent.com/cloudquery/cloud/main/internal/servergen/spec.json -o spec.json + - name: Format Specs File + run: | + docker run --rm -v $(pwd):/local openapitools/openapi-generator-cli:v7.5.0 generate -i /local/spec.json -g openapi --skip-validate-spec -o /local/.generated + cp .generated/openapi.json spec.json + sudo rm -rf .generated + - name: Set up Go 1.x uses: actions/setup-go@v3 with: diff --git a/CHANGELOG.md b/CHANGELOG.md index a4116dd..ad7cb38 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,12 @@ # Changelog +## [1.11.0](https://github.com/cloudquery/cloudquery-api-go/compare/v1.10.0...v1.11.0) (2024-05-09) + + +### Features + +* Extract nested properties in their own structs ([#158](https://github.com/cloudquery/cloudquery-api-go/issues/158)) ([01453e3](https://github.com/cloudquery/cloudquery-api-go/commit/01453e3bf74fa1f9f36a43c9ae78e4130a254f52)) + ## [1.10.0](https://github.com/cloudquery/cloudquery-api-go/compare/v1.9.2...v1.10.0) (2024-05-08) diff --git a/Makefile b/Makefile index 357a92a..6a91c67 100644 --- a/Makefile +++ b/Makefile @@ -6,3 +6,15 @@ test: lint: golangci-lint run +.PHONY: gen-client +gen-client: + @command -v openapi-generator >/dev/null 2>&1 || { \ + echo "Error: 'openapi-generator' command not found. Please install it before running convert-spec."; \ + echo "On MacOS you can use Homebrew: brew install openapi-generator"; \ + echo "You can install it by following the instructions at: https://github.com/OpenAPITools/openapi-generator?tab=readme-ov-file#1---installation"; \ + exit 1; \ + } + openapi-generator generate -g openapi -i spec.json -o .openapi-tmp + mv .openapi-tmp/openapi.json spec.json + rm -rf .openapi-tmp + go generate ./... \ No newline at end of file diff --git a/client.gen.go b/client.gen.go index 119db5c..b4d9927 100644 --- a/client.gen.go +++ b/client.gen.go @@ -9489,12 +9489,9 @@ func (r HealthCheckResponse) StatusCode() int { type ListAddonsResponse struct { Body []byte HTTPResponse *http.Response - JSON200 *struct { - Items []ListAddon `json:"items"` - Metadata ListMetadata `json:"metadata"` - } - JSON401 *RequiresAuthentication - JSON500 *InternalError + JSON200 *ListAddons200Response + JSON401 *RequiresAuthentication + JSON500 *InternalError } // Status returns HTTPResponse.Status @@ -9620,14 +9617,11 @@ func (r UpdateAddonResponse) StatusCode() int { type ListAddonVersionsResponse struct { Body []byte HTTPResponse *http.Response - JSON200 *struct { - Items []AddonVersion `json:"items"` - Metadata ListMetadata `json:"metadata"` - } - JSON401 *RequiresAuthentication - JSON403 *Forbidden - JSON404 *NotFound - JSON500 *InternalError + JSON200 *ListAddonVersions200Response + JSON401 *RequiresAuthentication + JSON403 *Forbidden + JSON404 *NotFound + JSON500 *InternalError } // Status returns HTTPResponse.Status @@ -9782,12 +9776,9 @@ func (r UploadAddonAssetResponse) StatusCode() int { type ListPluginNotificationRequestsResponse struct { Body []byte HTTPResponse *http.Response - JSON200 *struct { - Items []PluginNotificationRequest `json:"items"` - Metadata ListMetadata `json:"metadata"` - } - JSON401 *RequiresAuthentication - JSON500 *InternalError + JSON200 *ListPluginNotificationRequests200Response + JSON401 *RequiresAuthentication + JSON500 *InternalError } // Status returns HTTPResponse.Status @@ -9861,13 +9852,10 @@ func (r DeletePluginNotificationRequestResponse) StatusCode() int { type GetPluginNotificationRequestResponse struct { Body []byte HTTPResponse *http.Response - JSON200 *struct { - Items []PluginNotificationRequest `json:"items"` - Metadata ListMetadata `json:"metadata"` - } - JSON401 *RequiresAuthentication - JSON404 *NotFound - JSON500 *InternalError + JSON200 *ListPluginNotificationRequests200Response + JSON401 *RequiresAuthentication + JSON404 *NotFound + JSON500 *InternalError } // Status returns HTTPResponse.Status @@ -9889,12 +9877,9 @@ func (r GetPluginNotificationRequestResponse) StatusCode() int { type ListPluginsResponse struct { Body []byte HTTPResponse *http.Response - JSON200 *struct { - Items []ListPlugin `json:"items"` - Metadata ListMetadata `json:"metadata"` - } - JSON401 *RequiresAuthentication - JSON500 *InternalError + JSON200 *ListPlugins200Response + JSON401 *RequiresAuthentication + JSON500 *InternalError } // Status returns HTTPResponse.Status @@ -10045,14 +10030,11 @@ func (r DeletePluginUpcomingPriceChangesResponse) StatusCode() int { type ListPluginUpcomingPriceChangesResponse struct { Body []byte HTTPResponse *http.Response - JSON200 *struct { - Items []PluginPrice `json:"items"` - Metadata ListMetadata `json:"metadata"` - } - JSON401 *RequiresAuthentication - JSON403 *Forbidden - JSON404 *NotFound - JSON500 *InternalError + JSON200 *ListPluginUpcomingPriceChanges200Response + JSON401 *RequiresAuthentication + JSON403 *Forbidden + JSON404 *NotFound + JSON500 *InternalError } // Status returns HTTPResponse.Status @@ -10101,14 +10083,11 @@ func (r CreatePluginUpcomingPriceChangeResponse) StatusCode() int { type ListPluginVersionsResponse struct { Body []byte HTTPResponse *http.Response - JSON200 *struct { - Items []PluginVersionList `json:"items"` - Metadata ListMetadata `json:"metadata"` - } - JSON401 *RequiresAuthentication - JSON403 *Forbidden - JSON404 *NotFound - JSON500 *InternalError + JSON200 *ListPluginVersions200Response + JSON401 *RequiresAuthentication + JSON403 *Forbidden + JSON404 *NotFound + JSON500 *InternalError } // Status returns HTTPResponse.Status @@ -10287,13 +10266,10 @@ func (r DeletePluginVersionDocsResponse) StatusCode() int { type ListPluginVersionDocsResponse struct { Body []byte HTTPResponse *http.Response - JSON200 *struct { - Items []PluginDocsPage `json:"items"` - Metadata ListMetadata `json:"metadata"` - } - JSON401 *RequiresAuthentication - JSON404 *NotFound - JSON500 *InternalError + JSON200 *ListPluginVersionDocs200Response + JSON401 *RequiresAuthentication + JSON404 *NotFound + JSON500 *InternalError } // Status returns HTTPResponse.Status @@ -10315,15 +10291,13 @@ func (r ListPluginVersionDocsResponse) StatusCode() int { type ReplacePluginVersionDocsResponse struct { Body []byte HTTPResponse *http.Response - JSON201 *struct { - Names *[]PluginDocsPageName `json:"names,omitempty"` - } - JSON400 *BadRequest - JSON401 *RequiresAuthentication - JSON403 *Forbidden - JSON404 *NotFound - JSON422 *UnprocessableEntity - JSON500 *InternalError + JSON201 *CreatePluginVersionDocs201Response + JSON400 *BadRequest + JSON401 *RequiresAuthentication + JSON403 *Forbidden + JSON404 *NotFound + JSON422 *UnprocessableEntity + JSON500 *InternalError } // Status returns HTTPResponse.Status @@ -10345,15 +10319,13 @@ func (r ReplacePluginVersionDocsResponse) StatusCode() int { type CreatePluginVersionDocsResponse struct { Body []byte HTTPResponse *http.Response - JSON201 *struct { - Names *[]PluginDocsPageName `json:"names,omitempty"` - } - JSON400 *BadRequest - JSON401 *RequiresAuthentication - JSON403 *Forbidden - JSON404 *NotFound - JSON422 *UnprocessableEntity - JSON500 *InternalError + JSON201 *CreatePluginVersionDocs201Response + JSON400 *BadRequest + JSON401 *RequiresAuthentication + JSON403 *Forbidden + JSON404 *NotFound + JSON422 *UnprocessableEntity + JSON500 *InternalError } // Status returns HTTPResponse.Status @@ -10402,13 +10374,10 @@ func (r DeletePluginVersionTablesResponse) StatusCode() int { type ListPluginVersionTablesResponse struct { Body []byte HTTPResponse *http.Response - JSON200 *struct { - Items []PluginTable `json:"items"` - Metadata ListMetadata `json:"metadata"` - } - JSON401 *RequiresAuthentication - JSON404 *NotFound - JSON500 *InternalError + JSON200 *ListPluginVersionTables200Response + JSON401 *RequiresAuthentication + JSON404 *NotFound + JSON500 *InternalError } // Status returns HTTPResponse.Status @@ -10430,15 +10399,13 @@ func (r ListPluginVersionTablesResponse) StatusCode() int { type CreatePluginVersionTablesResponse struct { Body []byte HTTPResponse *http.Response - JSON201 *struct { - Names *[]PluginTableName `json:"names,omitempty"` - } - JSON400 *BadRequest - JSON401 *RequiresAuthentication - JSON403 *Forbidden - JSON404 *NotFound - JSON422 *UnprocessableEntity - JSON500 *InternalError + JSON201 *CreatePluginVersionTables201Response + JSON400 *BadRequest + JSON401 *RequiresAuthentication + JSON403 *Forbidden + JSON404 *NotFound + JSON422 *UnprocessableEntity + JSON500 *InternalError } // Status returns HTTPResponse.Status @@ -10512,14 +10479,11 @@ func (r AuthRegistryRequestResponse) StatusCode() int { type ListTeamsResponse struct { Body []byte HTTPResponse *http.Response - JSON200 *struct { - Items []Team `json:"items"` - Metadata ListMetadata `json:"metadata"` - } - JSON401 *RequiresAuthentication - JSON403 *Forbidden - JSON404 *NotFound - JSON500 *InternalError + JSON200 *ListTeams200Response + JSON401 *RequiresAuthentication + JSON403 *Forbidden + JSON404 *NotFound + JSON500 *InternalError } // Status returns HTTPResponse.Status @@ -10649,14 +10613,11 @@ func (r UpdateTeamResponse) StatusCode() int { type ListAddonOrdersByTeamResponse struct { Body []byte HTTPResponse *http.Response - JSON200 *struct { - Items []AddonOrder `json:"items"` - Metadata ListMetadata `json:"metadata"` - } - JSON401 *RequiresAuthentication - JSON403 *Forbidden - JSON404 *NotFound - JSON500 *InternalError + JSON200 *ListAddonOrdersByTeam200Response + JSON401 *RequiresAuthentication + JSON403 *Forbidden + JSON404 *NotFound + JSON500 *InternalError } // Status returns HTTPResponse.Status @@ -10756,14 +10717,11 @@ func (r DeleteAddonsByTeamResponse) StatusCode() int { type ListAddonsByTeamResponse struct { Body []byte HTTPResponse *http.Response - JSON200 *struct { - Items []Addon `json:"items"` - Metadata ListMetadata `json:"metadata"` - } - JSON401 *RequiresAuthentication - JSON403 *Forbidden - JSON404 *NotFound - JSON500 *InternalError + JSON200 *ListAddonsByTeam200Response + JSON401 *RequiresAuthentication + JSON403 *Forbidden + JSON404 *NotFound + JSON500 *InternalError } // Status returns HTTPResponse.Status @@ -10812,13 +10770,10 @@ func (r DownloadAddonAssetByTeamResponse) StatusCode() int { type ListTeamAPIKeysResponse struct { Body []byte HTTPResponse *http.Response - JSON200 *struct { - Items []APIKey `json:"items"` - Metadata ListMetadata `json:"metadata"` - } - JSON401 *RequiresAuthentication - JSON404 *NotFound - JSON500 *InternalError + JSON200 *ListTeamAPIKeys200Response + JSON401 *RequiresAuthentication + JSON404 *NotFound + JSON500 *InternalError } // Status returns HTTPResponse.Status @@ -10891,14 +10846,11 @@ func (r DeleteTeamAPIKeyResponse) StatusCode() int { type CreateTeamImagesResponse struct { Body []byte HTTPResponse *http.Response - JSON201 *struct { - Items []TeamImage `json:"items"` - Metadata ListMetadata `json:"metadata"` - } - JSON401 *RequiresAuthentication - JSON403 *Forbidden - JSON404 *NotFound - JSON500 *InternalError + JSON201 *CreateTeamImages201Response + JSON401 *RequiresAuthentication + JSON403 *Forbidden + JSON404 *NotFound + JSON500 *InternalError } // Status returns HTTPResponse.Status @@ -10920,12 +10872,9 @@ func (r CreateTeamImagesResponse) StatusCode() int { type ListTeamInvitationsResponse struct { Body []byte HTTPResponse *http.Response - JSON200 *struct { - Items []Invitation `json:"items"` - Metadata ListMetadata `json:"metadata"` - } - JSON403 *Forbidden - JSON500 *InternalError + JSON200 *ListTeamInvitations200Response + JSON403 *Forbidden + JSON500 *InternalError } // Status returns HTTPResponse.Status @@ -11025,14 +10974,11 @@ func (r CancelTeamInvitationResponse) StatusCode() int { type ListInvoicesByTeamResponse struct { Body []byte HTTPResponse *http.Response - JSON200 *struct { - Items []Invoice `json:"items"` - Metadata ListMetadata `json:"metadata"` - } - JSON401 *RequiresAuthentication - JSON403 *Forbidden - JSON404 *NotFound - JSON500 *InternalError + JSON200 *ListInvoicesByTeam200Response + JSON401 *RequiresAuthentication + JSON403 *Forbidden + JSON404 *NotFound + JSON500 *InternalError } // Status returns HTTPResponse.Status @@ -11054,15 +11000,12 @@ func (r ListInvoicesByTeamResponse) StatusCode() int { type GetTeamMembershipsResponse struct { Body []byte HTTPResponse *http.Response - JSON200 *struct { - Items []MembershipWithUser `json:"items"` - Metadata ListMetadata `json:"metadata"` - } - JSON400 *BadRequest - JSON401 *RequiresAuthentication - JSON403 *Forbidden - JSON404 *NotFound - JSON500 *InternalError + JSON200 *GetTeamMemberships200Response + JSON400 *BadRequest + JSON401 *RequiresAuthentication + JSON403 *Forbidden + JSON404 *NotFound + JSON500 *InternalError } // Status returns HTTPResponse.Status @@ -11110,14 +11053,11 @@ func (r DeleteTeamMembershipResponse) StatusCode() int { type ListMonthlyLimitsByTeamResponse struct { Body []byte HTTPResponse *http.Response - JSON200 *struct { - Items []MonthlyLimit `json:"items"` - Metadata ListMetadata `json:"metadata"` - } - JSON401 *RequiresAuthentication - JSON403 *Forbidden - JSON404 *NotFound - JSON500 *InternalError + JSON200 *ListMonthlyLimitsByTeam200Response + JSON401 *RequiresAuthentication + JSON403 *Forbidden + JSON404 *NotFound + JSON500 *InternalError } // Status returns HTTPResponse.Status @@ -11270,14 +11210,11 @@ func (r DeletePluginsByTeamResponse) StatusCode() int { type ListPluginsByTeamResponse struct { Body []byte HTTPResponse *http.Response - JSON200 *struct { - Items []Plugin `json:"items"` - Metadata ListMetadata `json:"metadata"` - } - JSON401 *RequiresAuthentication - JSON403 *Forbidden - JSON404 *NotFound - JSON500 *InternalError + JSON200 *ListPluginsByTeam200Response + JSON401 *RequiresAuthentication + JSON403 *Forbidden + JSON404 *NotFound + JSON500 *InternalError } // Status returns HTTPResponse.Status @@ -11457,14 +11394,11 @@ func (r UpdateSpendingLimitResponse) StatusCode() int { type ListSubscriptionOrdersByTeamResponse struct { Body []byte HTTPResponse *http.Response - JSON200 *struct { - Items []TeamSubscriptionOrder `json:"items"` - Metadata ListMetadata `json:"metadata"` - } - JSON401 *RequiresAuthentication - JSON403 *Forbidden - JSON404 *NotFound - JSON500 *InternalError + JSON200 *ListSubscriptionOrdersByTeam200Response + JSON401 *RequiresAuthentication + JSON403 *Forbidden + JSON404 *NotFound + JSON500 *InternalError } // Status returns HTTPResponse.Status @@ -11540,13 +11474,10 @@ func (r GetSubscriptionOrderByTeamResponse) StatusCode() int { type ListSyncDestinationsResponse struct { Body []byte HTTPResponse *http.Response - JSON200 *struct { - Items []SyncDestination `json:"items"` - Metadata ListMetadata `json:"metadata"` - } - JSON401 *RequiresAuthentication - JSON404 *NotFound - JSON500 *InternalError + JSON200 *ListSyncDestinations200Response + JSON401 *RequiresAuthentication + JSON404 *NotFound + JSON500 *InternalError } // Status returns HTTPResponse.Status @@ -11699,13 +11630,10 @@ func (r UpdateSyncDestinationResponse) StatusCode() int { type ListSyncSourcesResponse struct { Body []byte HTTPResponse *http.Response - JSON200 *struct { - Items []SyncSource `json:"items"` - Metadata ListMetadata `json:"metadata"` - } - JSON401 *RequiresAuthentication - JSON404 *NotFound - JSON500 *InternalError + JSON200 *ListSyncSources200Response + JSON401 *RequiresAuthentication + JSON404 *NotFound + JSON500 *InternalError } // Status returns HTTPResponse.Status @@ -11858,13 +11786,10 @@ func (r UpdateSyncSourceResponse) StatusCode() int { type ListSyncsResponse struct { Body []byte HTTPResponse *http.Response - JSON200 *struct { - Items []Sync `json:"items"` - Metadata ListMetadata `json:"metadata"` - } - JSON401 *RequiresAuthentication - JSON404 *NotFound - JSON500 *InternalError + JSON200 *ListSyncs200Response + JSON401 *RequiresAuthentication + JSON404 *NotFound + JSON500 *InternalError } // Status returns HTTPResponse.Status @@ -12042,13 +11967,10 @@ func (r UpdateSyncResponse) StatusCode() int { type ListSyncRunsResponse struct { Body []byte HTTPResponse *http.Response - JSON200 *struct { - Items []SyncRun `json:"items"` - Metadata ListMetadata `json:"metadata"` - } - JSON401 *RequiresAuthentication - JSON404 *NotFound - JSON500 *InternalError + JSON200 *ListSyncRuns200Response + JSON401 *RequiresAuthentication + JSON404 *NotFound + JSON500 *InternalError } // Status returns HTTPResponse.Status @@ -12148,15 +12070,12 @@ func (r UpdateSyncRunResponse) StatusCode() int { type GetSyncRunLogsResponse struct { Body []byte HTTPResponse *http.Response - JSON200 *struct { - // Location The location to download the sync run logs from - Location string `json:"location"` - } - JSON400 *BadRequest - JSON401 *RequiresAuthentication - JSON404 *NotFound - JSON422 *UnprocessableEntity - JSON500 *InternalError + JSON200 *SyncRunLogs + JSON400 *BadRequest + JSON401 *RequiresAuthentication + JSON404 *NotFound + JSON422 *UnprocessableEntity + JSON500 *InternalError } // Status returns HTTPResponse.Status @@ -12204,14 +12123,11 @@ func (r CreateSyncRunProgressResponse) StatusCode() int { type ListTeamPluginUsageResponse struct { Body []byte HTTPResponse *http.Response - JSON200 *struct { - Items []UsageCurrent `json:"items"` - Metadata ListMetadata `json:"metadata"` - } - JSON401 *RequiresAuthentication - JSON403 *Forbidden - JSON404 *NotFound - JSON500 *InternalError + JSON200 *ListTeamPluginUsage200Response + JSON401 *RequiresAuthentication + JSON403 *Forbidden + JSON404 *NotFound + JSON500 *InternalError } // Status returns HTTPResponse.Status @@ -12342,15 +12258,12 @@ func (r GetTeamPluginUsageResponse) StatusCode() int { type ListUsersByTeamResponse struct { Body []byte HTTPResponse *http.Response - JSON200 *struct { - Items []User `json:"items"` - Metadata ListMetadata `json:"metadata"` - } - JSON400 *BadRequest - JSON401 *RequiresAuthentication - JSON403 *Forbidden - JSON404 *NotFound - JSON500 *InternalError + JSON200 *ListUsersByTeam200Response + JSON400 *BadRequest + JSON401 *RequiresAuthentication + JSON403 *Forbidden + JSON404 *NotFound + JSON500 *InternalError } // Status returns HTTPResponse.Status @@ -12447,11 +12360,8 @@ func (r UpdateCurrentUserResponse) StatusCode() int { type ListCurrentUserInvitationsResponse struct { Body []byte HTTPResponse *http.Response - JSON200 *struct { - Items []InvitationWithToken `json:"items"` - Metadata ListMetadata `json:"metadata"` - } - JSON500 *InternalError + JSON200 *ListCurrentUserInvitations200Response + JSON500 *InternalError } // Status returns HTTPResponse.Status @@ -12473,13 +12383,10 @@ func (r ListCurrentUserInvitationsResponse) StatusCode() int { type GetCurrentUserMembershipsResponse struct { Body []byte HTTPResponse *http.Response - JSON200 *struct { - Items []MembershipWithTeam `json:"items"` - Metadata ListMetadata `json:"metadata"` - } - JSON401 *RequiresAuthentication - JSON403 *Forbidden - JSON500 *InternalError + JSON200 *GetCurrentUserMemberships200Response + JSON401 *RequiresAuthentication + JSON403 *Forbidden + JSON500 *InternalError } // Status returns HTTPResponse.Status @@ -13902,10 +13809,7 @@ func ParseListAddonsResponse(rsp *http.Response) (*ListAddonsResponse, error) { switch { case strings.Contains(rsp.Header.Get("Content-Type"), "json") && rsp.StatusCode == 200: - var dest struct { - Items []ListAddon `json:"items"` - Metadata ListMetadata `json:"metadata"` - } + var dest ListAddons200Response if err := json.Unmarshal(bodyBytes, &dest); err != nil { return nil, err } @@ -14161,10 +14065,7 @@ func ParseListAddonVersionsResponse(rsp *http.Response) (*ListAddonVersionsRespo switch { case strings.Contains(rsp.Header.Get("Content-Type"), "json") && rsp.StatusCode == 200: - var dest struct { - Items []AddonVersion `json:"items"` - Metadata ListMetadata `json:"metadata"` - } + var dest ListAddonVersions200Response if err := json.Unmarshal(bodyBytes, &dest); err != nil { return nil, err } @@ -14509,10 +14410,7 @@ func ParseListPluginNotificationRequestsResponse(rsp *http.Response) (*ListPlugi switch { case strings.Contains(rsp.Header.Get("Content-Type"), "json") && rsp.StatusCode == 200: - var dest struct { - Items []PluginNotificationRequest `json:"items"` - Metadata ListMetadata `json:"metadata"` - } + var dest ListPluginNotificationRequests200Response if err := json.Unmarshal(bodyBytes, &dest); err != nil { return nil, err } @@ -14660,10 +14558,7 @@ func ParseGetPluginNotificationRequestResponse(rsp *http.Response) (*GetPluginNo switch { case strings.Contains(rsp.Header.Get("Content-Type"), "json") && rsp.StatusCode == 200: - var dest struct { - Items []PluginNotificationRequest `json:"items"` - Metadata ListMetadata `json:"metadata"` - } + var dest ListPluginNotificationRequests200Response if err := json.Unmarshal(bodyBytes, &dest); err != nil { return nil, err } @@ -14710,10 +14605,7 @@ func ParseListPluginsResponse(rsp *http.Response) (*ListPluginsResponse, error) switch { case strings.Contains(rsp.Header.Get("Content-Type"), "json") && rsp.StatusCode == 200: - var dest struct { - Items []ListPlugin `json:"items"` - Metadata ListMetadata `json:"metadata"` - } + var dest ListPlugins200Response if err := json.Unmarshal(bodyBytes, &dest); err != nil { return nil, err } @@ -15016,10 +14908,7 @@ func ParseListPluginUpcomingPriceChangesResponse(rsp *http.Response) (*ListPlugi switch { case strings.Contains(rsp.Header.Get("Content-Type"), "json") && rsp.StatusCode == 200: - var dest struct { - Items []PluginPrice `json:"items"` - Metadata ListMetadata `json:"metadata"` - } + var dest ListPluginUpcomingPriceChanges200Response if err := json.Unmarshal(bodyBytes, &dest); err != nil { return nil, err } @@ -15134,10 +15023,7 @@ func ParseListPluginVersionsResponse(rsp *http.Response) (*ListPluginVersionsRes switch { case strings.Contains(rsp.Header.Get("Content-Type"), "json") && rsp.StatusCode == 200: - var dest struct { - Items []PluginVersionList `json:"items"` - Metadata ListMetadata `json:"metadata"` - } + var dest ListPluginVersions200Response if err := json.Unmarshal(bodyBytes, &dest); err != nil { return nil, err } @@ -15522,10 +15408,7 @@ func ParseListPluginVersionDocsResponse(rsp *http.Response) (*ListPluginVersionD switch { case strings.Contains(rsp.Header.Get("Content-Type"), "json") && rsp.StatusCode == 200: - var dest struct { - Items []PluginDocsPage `json:"items"` - Metadata ListMetadata `json:"metadata"` - } + var dest ListPluginVersionDocs200Response if err := json.Unmarshal(bodyBytes, &dest); err != nil { return nil, err } @@ -15572,9 +15455,7 @@ func ParseReplacePluginVersionDocsResponse(rsp *http.Response) (*ReplacePluginVe switch { case strings.Contains(rsp.Header.Get("Content-Type"), "json") && rsp.StatusCode == 201: - var dest struct { - Names *[]PluginDocsPageName `json:"names,omitempty"` - } + var dest CreatePluginVersionDocs201Response if err := json.Unmarshal(bodyBytes, &dest); err != nil { return nil, err } @@ -15642,9 +15523,7 @@ func ParseCreatePluginVersionDocsResponse(rsp *http.Response) (*CreatePluginVers switch { case strings.Contains(rsp.Header.Get("Content-Type"), "json") && rsp.StatusCode == 201: - var dest struct { - Names *[]PluginDocsPageName `json:"names,omitempty"` - } + var dest CreatePluginVersionDocs201Response if err := json.Unmarshal(bodyBytes, &dest); err != nil { return nil, err } @@ -15773,10 +15652,7 @@ func ParseListPluginVersionTablesResponse(rsp *http.Response) (*ListPluginVersio switch { case strings.Contains(rsp.Header.Get("Content-Type"), "json") && rsp.StatusCode == 200: - var dest struct { - Items []PluginTable `json:"items"` - Metadata ListMetadata `json:"metadata"` - } + var dest ListPluginVersionTables200Response if err := json.Unmarshal(bodyBytes, &dest); err != nil { return nil, err } @@ -15823,9 +15699,7 @@ func ParseCreatePluginVersionTablesResponse(rsp *http.Response) (*CreatePluginVe switch { case strings.Contains(rsp.Header.Get("Content-Type"), "json") && rsp.StatusCode == 201: - var dest struct { - Names *[]PluginTableName `json:"names,omitempty"` - } + var dest CreatePluginVersionTables201Response if err := json.Unmarshal(bodyBytes, &dest); err != nil { return nil, err } @@ -16001,10 +15875,7 @@ func ParseListTeamsResponse(rsp *http.Response) (*ListTeamsResponse, error) { switch { case strings.Contains(rsp.Header.Get("Content-Type"), "json") && rsp.StatusCode == 200: - var dest struct { - Items []Team `json:"items"` - Metadata ListMetadata `json:"metadata"` - } + var dest ListTeams200Response if err := json.Unmarshal(bodyBytes, &dest); err != nil { return nil, err } @@ -16302,10 +16173,7 @@ func ParseListAddonOrdersByTeamResponse(rsp *http.Response) (*ListAddonOrdersByT switch { case strings.Contains(rsp.Header.Get("Content-Type"), "json") && rsp.StatusCode == 200: - var dest struct { - Items []AddonOrder `json:"items"` - Metadata ListMetadata `json:"metadata"` - } + var dest ListAddonOrdersByTeam200Response if err := json.Unmarshal(bodyBytes, &dest); err != nil { return nil, err } @@ -16521,10 +16389,7 @@ func ParseListAddonsByTeamResponse(rsp *http.Response) (*ListAddonsByTeamRespons switch { case strings.Contains(rsp.Header.Get("Content-Type"), "json") && rsp.StatusCode == 200: - var dest struct { - Items []Addon `json:"items"` - Metadata ListMetadata `json:"metadata"` - } + var dest ListAddonsByTeam200Response if err := json.Unmarshal(bodyBytes, &dest); err != nil { return nil, err } @@ -16639,10 +16504,7 @@ func ParseListTeamAPIKeysResponse(rsp *http.Response) (*ListTeamAPIKeysResponse, switch { case strings.Contains(rsp.Header.Get("Content-Type"), "json") && rsp.StatusCode == 200: - var dest struct { - Items []APIKey `json:"items"` - Metadata ListMetadata `json:"metadata"` - } + var dest ListTeamAPIKeys200Response if err := json.Unmarshal(bodyBytes, &dest); err != nil { return nil, err } @@ -16790,10 +16652,7 @@ func ParseCreateTeamImagesResponse(rsp *http.Response) (*CreateTeamImagesRespons switch { case strings.Contains(rsp.Header.Get("Content-Type"), "json") && rsp.StatusCode == 201: - var dest struct { - Items []TeamImage `json:"items"` - Metadata ListMetadata `json:"metadata"` - } + var dest CreateTeamImages201Response if err := json.Unmarshal(bodyBytes, &dest); err != nil { return nil, err } @@ -16847,10 +16706,7 @@ func ParseListTeamInvitationsResponse(rsp *http.Response) (*ListTeamInvitationsR switch { case strings.Contains(rsp.Header.Get("Content-Type"), "json") && rsp.StatusCode == 200: - var dest struct { - Items []Invitation `json:"items"` - Metadata ListMetadata `json:"metadata"` - } + var dest ListTeamInvitations200Response if err := json.Unmarshal(bodyBytes, &dest); err != nil { return nil, err } @@ -17052,10 +16908,7 @@ func ParseListInvoicesByTeamResponse(rsp *http.Response) (*ListInvoicesByTeamRes switch { case strings.Contains(rsp.Header.Get("Content-Type"), "json") && rsp.StatusCode == 200: - var dest struct { - Items []Invoice `json:"items"` - Metadata ListMetadata `json:"metadata"` - } + var dest ListInvoicesByTeam200Response if err := json.Unmarshal(bodyBytes, &dest); err != nil { return nil, err } @@ -17109,10 +16962,7 @@ func ParseGetTeamMembershipsResponse(rsp *http.Response) (*GetTeamMembershipsRes switch { case strings.Contains(rsp.Header.Get("Content-Type"), "json") && rsp.StatusCode == 200: - var dest struct { - Items []MembershipWithUser `json:"items"` - Metadata ListMetadata `json:"metadata"` - } + var dest GetTeamMemberships200Response if err := json.Unmarshal(bodyBytes, &dest); err != nil { return nil, err } @@ -17227,10 +17077,7 @@ func ParseListMonthlyLimitsByTeamResponse(rsp *http.Response) (*ListMonthlyLimit switch { case strings.Contains(rsp.Header.Get("Content-Type"), "json") && rsp.StatusCode == 200: - var dest struct { - Items []MonthlyLimit `json:"items"` - Metadata ListMetadata `json:"metadata"` - } + var dest ListMonthlyLimitsByTeam200Response if err := json.Unmarshal(bodyBytes, &dest); err != nil { return nil, err } @@ -17561,10 +17408,7 @@ func ParseListPluginsByTeamResponse(rsp *http.Response) (*ListPluginsByTeamRespo switch { case strings.Contains(rsp.Header.Get("Content-Type"), "json") && rsp.StatusCode == 200: - var dest struct { - Items []Plugin `json:"items"` - Metadata ListMetadata `json:"metadata"` - } + var dest ListPluginsByTeam200Response if err := json.Unmarshal(bodyBytes, &dest); err != nil { return nil, err } @@ -17956,10 +17800,7 @@ func ParseListSubscriptionOrdersByTeamResponse(rsp *http.Response) (*ListSubscri switch { case strings.Contains(rsp.Header.Get("Content-Type"), "json") && rsp.StatusCode == 200: - var dest struct { - Items []TeamSubscriptionOrder `json:"items"` - Metadata ListMetadata `json:"metadata"` - } + var dest ListSubscriptionOrdersByTeam200Response if err := json.Unmarshal(bodyBytes, &dest); err != nil { return nil, err } @@ -18135,10 +17976,7 @@ func ParseListSyncDestinationsResponse(rsp *http.Response) (*ListSyncDestination switch { case strings.Contains(rsp.Header.Get("Content-Type"), "json") && rsp.StatusCode == 200: - var dest struct { - Items []SyncDestination `json:"items"` - Metadata ListMetadata `json:"metadata"` - } + var dest ListSyncDestinations200Response if err := json.Unmarshal(bodyBytes, &dest); err != nil { return nil, err } @@ -18462,10 +18300,7 @@ func ParseListSyncSourcesResponse(rsp *http.Response) (*ListSyncSourcesResponse, switch { case strings.Contains(rsp.Header.Get("Content-Type"), "json") && rsp.StatusCode == 200: - var dest struct { - Items []SyncSource `json:"items"` - Metadata ListMetadata `json:"metadata"` - } + var dest ListSyncSources200Response if err := json.Unmarshal(bodyBytes, &dest); err != nil { return nil, err } @@ -18789,10 +18624,7 @@ func ParseListSyncsResponse(rsp *http.Response) (*ListSyncsResponse, error) { switch { case strings.Contains(rsp.Header.Get("Content-Type"), "json") && rsp.StatusCode == 200: - var dest struct { - Items []Sync `json:"items"` - Metadata ListMetadata `json:"metadata"` - } + var dest ListSyncs200Response if err := json.Unmarshal(bodyBytes, &dest); err != nil { return nil, err } @@ -19163,10 +18995,7 @@ func ParseListSyncRunsResponse(rsp *http.Response) (*ListSyncRunsResponse, error switch { case strings.Contains(rsp.Header.Get("Content-Type"), "json") && rsp.StatusCode == 200: - var dest struct { - Items []SyncRun `json:"items"` - Metadata ListMetadata `json:"metadata"` - } + var dest ListSyncRuns200Response if err := json.Unmarshal(bodyBytes, &dest); err != nil { return nil, err } @@ -19375,10 +19204,7 @@ func ParseGetSyncRunLogsResponse(rsp *http.Response) (*GetSyncRunLogsResponse, e switch { case strings.Contains(rsp.Header.Get("Content-Type"), "json") && rsp.StatusCode == 200: - var dest struct { - // Location The location to download the sync run logs from - Location string `json:"location"` - } + var dest SyncRunLogs if err := json.Unmarshal(bodyBytes, &dest); err != nil { return nil, err } @@ -19496,10 +19322,7 @@ func ParseListTeamPluginUsageResponse(rsp *http.Response) (*ListTeamPluginUsageR switch { case strings.Contains(rsp.Header.Get("Content-Type"), "json") && rsp.StatusCode == 200: - var dest struct { - Items []UsageCurrent `json:"items"` - Metadata ListMetadata `json:"metadata"` - } + var dest ListTeamPluginUsage200Response if err := json.Unmarshal(bodyBytes, &dest); err != nil { return nil, err } @@ -19804,10 +19627,7 @@ func ParseListUsersByTeamResponse(rsp *http.Response) (*ListUsersByTeamResponse, switch { case strings.Contains(rsp.Header.Get("Content-Type"), "json") && rsp.StatusCode == 200: - var dest struct { - Items []User `json:"items"` - Metadata ListMetadata `json:"metadata"` - } + var dest ListUsersByTeam200Response if err := json.Unmarshal(bodyBytes, &dest); err != nil { return nil, err } @@ -20009,10 +19829,7 @@ func ParseListCurrentUserInvitationsResponse(rsp *http.Response) (*ListCurrentUs switch { case strings.Contains(rsp.Header.Get("Content-Type"), "json") && rsp.StatusCode == 200: - var dest struct { - Items []InvitationWithToken `json:"items"` - Metadata ListMetadata `json:"metadata"` - } + var dest ListCurrentUserInvitations200Response if err := json.Unmarshal(bodyBytes, &dest); err != nil { return nil, err } @@ -20045,10 +19862,7 @@ func ParseGetCurrentUserMembershipsResponse(rsp *http.Response) (*GetCurrentUser switch { case strings.Contains(rsp.Header.Get("Content-Type"), "json") && rsp.StatusCode == 200: - var dest struct { - Items []MembershipWithTeam `json:"items"` - Metadata ListMetadata `json:"metadata"` - } + var dest GetCurrentUserMemberships200Response if err := json.Unmarshal(bodyBytes, &dest); err != nil { return nil, err } diff --git a/models.gen.go b/models.gen.go index 851f510..10f5366 100644 --- a/models.gen.go +++ b/models.gen.go @@ -52,6 +52,12 @@ const ( AddonTypeVisualization AddonType = "visualization" ) +// Defines values for EmailTeamInvitationRequestRole. +const ( + EmailTeamInvitationRequestRoleAdmin EmailTeamInvitationRequestRole = "admin" + EmailTeamInvitationRequestRoleMember EmailTeamInvitationRequestRole = "member" +) + // Defines values for PluginCategory. const ( PluginCategoryCloudFinops PluginCategory = "cloud-finops" @@ -186,14 +192,6 @@ const ( UsageSummaryMetadataAggregationPeriodMonth UsageSummaryMetadataAggregationPeriod = "month" ) -// Defines values for UsageSummaryMetadataMetrics. -const ( - UsageSummaryMetadataMetricsCloudEgressBytes UsageSummaryMetadataMetrics = "cloud_egress_bytes" - UsageSummaryMetadataMetricsCloudVcpuSeconds UsageSummaryMetadataMetrics = "cloud_vcpu_seconds" - UsageSummaryMetadataMetricsCloudVramByteSeconds UsageSummaryMetadataMetrics = "cloud_vram_byte_seconds" - UsageSummaryMetadataMetricsPaidRows UsageSummaryMetadataMetrics = "paid_rows" -) - // Defines values for AddonSortBy. const ( AddonSortByCreatedAt AddonSortBy = "created_at" @@ -241,12 +239,6 @@ const ( ListPluginVersionsParamsSortByCreatedAt ListPluginVersionsParamsSortBy = "created_at" ) -// Defines values for EmailTeamInvitationJSONBodyRole. -const ( - EmailTeamInvitationJSONBodyRoleAdmin EmailTeamInvitationJSONBodyRole = "admin" - EmailTeamInvitationJSONBodyRoleMember EmailTeamInvitationJSONBodyRole = "member" -) - // Defines values for GetTeamUsageSummaryParamsMetrics. const ( GetTeamUsageSummaryParamsMetricsCloudVcpuSeconds GetTeamUsageSummaryParamsMetrics = "cloud_vcpu_seconds" @@ -315,6 +307,11 @@ type APIKeyName = string // APIKeyScope Scope of permissions for the API key. API keys are used for creating new plugin versions and downloading existing plugins type APIKeyScope string +// AcceptTeamInvitationRequest defines model for AcceptTeamInvitation_request. +type AcceptTeamInvitationRequest struct { + Token openapi_types.UUID `json:"token"` +} + // Addon CloudQuery Addon type Addon struct { // AddonFormat Supported formats for addons @@ -550,6 +547,121 @@ type BasicError struct { Status int `json:"status"` } +// CreateAddonVersionRequest defines model for CreateAddonVersion_request. +type CreateAddonVersionRequest struct { + // AddonDeps addon dependencies in the format of ['team_name/type/addon_name@version'] + AddonDeps *[]string `json:"addon_deps,omitempty"` + + // Checksum SHA-256 checksum for the addon asset + Checksum string `json:"checksum"` + + // Doc Main README in MD format + Doc string `json:"doc"` + + // Message A message describing what's new or changed in this version. + // This message will be displayed to users in the addon's changelog. + // Supports limited markdown syntax. + Message string `json:"message"` + + // PluginDeps plugin dependencies in the format of ['team_name/kind/plugin_name@version'] + PluginDeps *[]string `json:"plugin_deps,omitempty"` +} + +// CreatePluginVersionDocs201Response defines model for CreatePluginVersionDocs_201_response. +type CreatePluginVersionDocs201Response struct { + Names *[]PluginDocsPageName `json:"names,omitempty"` +} + +// CreatePluginVersionDocsRequest defines model for CreatePluginVersionDocs_request. +type CreatePluginVersionDocsRequest struct { + Pages []PluginDocsPageCreate `json:"pages"` +} + +// CreatePluginVersionTables201Response defines model for CreatePluginVersionTables_201_response. +type CreatePluginVersionTables201Response struct { + Names *[]PluginTableName `json:"names,omitempty"` +} + +// CreatePluginVersionTablesRequest defines model for CreatePluginVersionTables_request. +type CreatePluginVersionTablesRequest struct { + Tables []PluginTableCreate `json:"tables"` +} + +// CreatePluginVersionRequest defines model for CreatePluginVersion_request. +type CreatePluginVersionRequest struct { + // Checksums List of SHA-256 checksums for this plugin version, one for each supported target. + Checksums []string `json:"checksums"` + + // Message A message describing what's new or changed in this version. + // This message will be displayed to users in the plugin's changelog. + // Supports limited markdown syntax. + Message string `json:"message"` + + // PackageType The package type of the plugin assets + PackageType PluginPackageType `json:"package_type"` + + // Protocols The CloudQuery protocols supported by this plugin version (only protocol 3 is supported by new plugins). + Protocols PluginProtocols `json:"protocols"` + + // SpecJsonSchema The specification of the plugin. This is a JSON schema that describes the configuration of the plugin. + SpecJsonSchema *PluginSpecJSONSchema `json:"spec_json_schema,omitempty"` + + // SupportedTargets The targets supported by this plugin version, formatted as _ + SupportedTargets []string `json:"supported_targets"` +} + +// CreateSyncRunProgressRequest defines model for CreateSyncRunProgress_request. +type CreateSyncRunProgressRequest struct { + // Errors Number of errors encountered so far + Errors int64 `json:"errors"` + + // Rows Number of rows synced so far + Rows int64 `json:"rows"` + + // Status The status of the sync run + Status *SyncRunStatus `json:"status,omitempty"` + + // Warnings Number of warnings encountered so far + Warnings int64 `json:"warnings"` +} + +// CreateTeamAPIKeyRequest defines model for CreateTeamAPIKey_request. +type CreateTeamAPIKeyRequest struct { + ExpiresAt time.Time `json:"expires_at"` + + // Name Name of the API key + Name APIKeyName `json:"name"` +} + +// CreateTeamImages201Response defines model for CreateTeamImages_201_response. +type CreateTeamImages201Response struct { + Items []TeamImage `json:"items"` + Metadata ListMetadata `json:"metadata"` +} + +// CreateTeamImagesRequest defines model for CreateTeamImages_request. +type CreateTeamImagesRequest struct { + Images []TeamImageCreate `json:"images"` +} + +// CreateTeamRequest defines model for CreateTeam_request. +type CreateTeamRequest struct { + DisplayName interface{} `json:"display_name"` + + // Name The unique name for the team. + Name TeamName `json:"name"` +} + +// DeletePluginVersionDocsRequest defines model for DeletePluginVersionDocs_request. +type DeletePluginVersionDocsRequest struct { + Names []PluginDocsPageName `json:"names"` +} + +// DeletePluginVersionTablesRequest defines model for DeletePluginVersionTables_request. +type DeletePluginVersionTablesRequest struct { + Names []PluginTableName `json:"names"` +} + // DockerError Error Returned from the Docker Authorization Handler to the Docker Registry type DockerError struct { Details string `json:"details"` @@ -558,6 +670,15 @@ type DockerError struct { // Email defines model for Email. type Email = openapi_types.Email +// EmailTeamInvitationRequest defines model for EmailTeamInvitation_request. +type EmailTeamInvitationRequest struct { + Email openapi_types.Email `json:"email"` + Role EmailTeamInvitationRequestRole `json:"role"` +} + +// EmailTeamInvitationRequestRole defines model for EmailTeamInvitationRequest.Role. +type EmailTeamInvitationRequestRole string + // FieldError defines model for FieldError. type FieldError struct { Errors *[]string `json:"errors,omitempty"` @@ -566,6 +687,18 @@ type FieldError struct { Status int `json:"status"` } +// GetCurrentUserMemberships200Response defines model for GetCurrentUserMemberships_200_response. +type GetCurrentUserMemberships200Response struct { + Items []MembershipWithTeam `json:"items"` + Metadata ListMetadata `json:"metadata"` +} + +// GetTeamMemberships200Response defines model for GetTeamMemberships_200_response. +type GetTeamMemberships200Response struct { + Items []MembershipWithUser `json:"items"` + Metadata ListMetadata `json:"metadata"` +} + // ImageURL defines model for ImageURL. type ImageURL struct { DownloadUrl string `json:"download_url"` @@ -651,12 +784,54 @@ type ListAddon struct { UpdatedAt time.Time `json:"updated_at"` } +// ListAddonOrdersByTeam200Response defines model for ListAddonOrdersByTeam_200_response. +type ListAddonOrdersByTeam200Response struct { + Items []AddonOrder `json:"items"` + Metadata ListMetadata `json:"metadata"` +} + +// ListAddonVersions200Response defines model for ListAddonVersions_200_response. +type ListAddonVersions200Response struct { + Items []AddonVersion `json:"items"` + Metadata ListMetadata `json:"metadata"` +} + +// ListAddonsByTeam200Response defines model for ListAddonsByTeam_200_response. +type ListAddonsByTeam200Response struct { + Items []Addon `json:"items"` + Metadata ListMetadata `json:"metadata"` +} + +// ListAddons200Response defines model for ListAddons_200_response. +type ListAddons200Response struct { + Items []ListAddon `json:"items"` + Metadata ListMetadata `json:"metadata"` +} + +// ListCurrentUserInvitations200Response defines model for ListCurrentUserInvitations_200_response. +type ListCurrentUserInvitations200Response struct { + Items []InvitationWithToken `json:"items"` + Metadata ListMetadata `json:"metadata"` +} + +// ListInvoicesByTeam200Response defines model for ListInvoicesByTeam_200_response. +type ListInvoicesByTeam200Response struct { + Items []Invoice `json:"items"` + Metadata ListMetadata `json:"metadata"` +} + // ListMetadata defines model for ListMetadata. type ListMetadata struct { LastPage *int `json:"last_page,omitempty"` TotalCount *int `json:"total_count,omitempty"` } +// ListMonthlyLimitsByTeam200Response defines model for ListMonthlyLimitsByTeam_200_response. +type ListMonthlyLimitsByTeam200Response struct { + Items []MonthlyLimit `json:"items"` + Metadata ListMetadata `json:"metadata"` +} + // ListPlugin defines model for ListPlugin. type ListPlugin struct { // Category Supported categories for plugins @@ -719,6 +894,108 @@ type ListPlugin struct { USDPerRow string `json:"usd_per_row"` } +// ListPluginNotificationRequests200Response defines model for ListPluginNotificationRequests_200_response. +type ListPluginNotificationRequests200Response struct { + Items []PluginNotificationRequest `json:"items"` + Metadata ListMetadata `json:"metadata"` +} + +// ListPluginUpcomingPriceChanges200Response defines model for ListPluginUpcomingPriceChanges_200_response. +type ListPluginUpcomingPriceChanges200Response struct { + Items []PluginPrice `json:"items"` + Metadata ListMetadata `json:"metadata"` +} + +// ListPluginVersionDocs200Response defines model for ListPluginVersionDocs_200_response. +type ListPluginVersionDocs200Response struct { + Items []PluginDocsPage `json:"items"` + Metadata ListMetadata `json:"metadata"` +} + +// ListPluginVersionTables200Response defines model for ListPluginVersionTables_200_response. +type ListPluginVersionTables200Response struct { + Items []PluginTable `json:"items"` + Metadata ListMetadata `json:"metadata"` +} + +// ListPluginVersions200Response defines model for ListPluginVersions_200_response. +type ListPluginVersions200Response struct { + Items []PluginVersionList `json:"items"` + Metadata ListMetadata `json:"metadata"` +} + +// ListPluginsByTeam200Response defines model for ListPluginsByTeam_200_response. +type ListPluginsByTeam200Response struct { + Items []Plugin `json:"items"` + Metadata ListMetadata `json:"metadata"` +} + +// ListPlugins200Response defines model for ListPlugins_200_response. +type ListPlugins200Response struct { + Items []ListPlugin `json:"items"` + Metadata ListMetadata `json:"metadata"` +} + +// ListSubscriptionOrdersByTeam200Response defines model for ListSubscriptionOrdersByTeam_200_response. +type ListSubscriptionOrdersByTeam200Response struct { + Items []TeamSubscriptionOrder `json:"items"` + Metadata ListMetadata `json:"metadata"` +} + +// ListSyncDestinations200Response defines model for ListSyncDestinations_200_response. +type ListSyncDestinations200Response struct { + Items []SyncDestination `json:"items"` + Metadata ListMetadata `json:"metadata"` +} + +// ListSyncRuns200Response defines model for ListSyncRuns_200_response. +type ListSyncRuns200Response struct { + Items []SyncRun `json:"items"` + Metadata ListMetadata `json:"metadata"` +} + +// ListSyncSources200Response defines model for ListSyncSources_200_response. +type ListSyncSources200Response struct { + Items []SyncSource `json:"items"` + Metadata ListMetadata `json:"metadata"` +} + +// ListSyncs200Response defines model for ListSyncs_200_response. +type ListSyncs200Response struct { + Items []Sync `json:"items"` + Metadata ListMetadata `json:"metadata"` +} + +// ListTeamAPIKeys200Response defines model for ListTeamAPIKeys_200_response. +type ListTeamAPIKeys200Response struct { + Items []APIKey `json:"items"` + Metadata ListMetadata `json:"metadata"` +} + +// ListTeamInvitations200Response defines model for ListTeamInvitations_200_response. +type ListTeamInvitations200Response struct { + Items []Invitation `json:"items"` + Metadata ListMetadata `json:"metadata"` +} + +// ListTeamPluginUsage200Response defines model for ListTeamPluginUsage_200_response. +type ListTeamPluginUsage200Response struct { + Items []UsageCurrent `json:"items"` + Metadata ListMetadata `json:"metadata"` +} + +// ListTeams200Response defines model for ListTeams_200_response. +type ListTeams200Response struct { + Items []Team `json:"items"` + Metadata ListMetadata `json:"metadata"` +} + +// ListUsersByTeam200Response defines model for ListUsersByTeam_200_response. +type ListUsersByTeam200Response struct { + Items []User `json:"items"` + Metadata ListMetadata `json:"metadata"` +} + // MembershipWithTeam defines model for MembershipWithTeam. type MembershipWithTeam struct { Role string `json:"role"` @@ -1314,13 +1591,6 @@ type PluginVersionUpdate struct { SupportedTargets *[]string `json:"supported_targets,omitempty"` } -// PriceCategorySpend Spend by price category for a defined period. -type PriceCategorySpend struct { - // Category Supported price categories for billing - Category PluginPriceCategory `json:"category"` - Total string `json:"total"` -} - // RegistryAuthToken JWT token for the image registry type RegistryAuthToken struct { AccessToken string `json:"access_token"` @@ -1336,25 +1606,14 @@ type ReleaseURL struct { // Note that empty or all-zero values are not included in the response. type SpendSummary struct { // Metadata Additional metadata about the spend summary. This may include information about the time range, the aggregation period, or other details. - Metadata struct { - // End The exclusive end of the query time range. - End time.Time `json:"end"` - - // Start The inclusive start of the query time range. - Start time.Time `json:"start"` - } `json:"metadata"` - Values []SpendSummaryValue `json:"values"` + Metadata SpendSummaryMetadata `json:"metadata"` + Values interface{} `json:"values"` } -// SpendSummaryValue A spend summary value. -type SpendSummaryValue struct { - ByCategory []PriceCategorySpend `json:"by_category"` - - // Date The timestamp for the spend summary. - Date time.Time `json:"date"` - - // Total Total spend for the period in USD. - Total string `json:"total"` +// SpendSummaryMetadata Additional metadata about the spend summary. This may include information about the time range, the aggregation period, or other details. +type SpendSummaryMetadata struct { + End interface{} `json:"end"` + Start interface{} `json:"start"` } // SpendingLimit A configurable spending limit for the team. Empty values indicate no limit. @@ -1443,17 +1702,17 @@ type SyncDestination struct { Env []SyncEnv `json:"env"` // LastUpdateSource How was the source or destination been created or updated last - LastUpdateSource SyncLastUpdateSource `json:"last_update_source"` + LastUpdateSource *SyncLastUpdateSource `json:"last_update_source,omitempty"` // MigrateMode Migrate mode for the destination - MigrateMode SyncDestinationMigrateMode `json:"migrate_mode"` + MigrateMode *SyncDestinationMigrateMode `json:"migrate_mode,omitempty"` // Name Descriptive, unique name for the destination. The name can only contain ASCII letters, digits, - and _. Name string `json:"name"` // Path Plugin path in CloudQuery registry - Path SyncPluginPath `json:"path"` - Spec map[string]interface{} `json:"spec"` + Path SyncPluginPath `json:"path"` + Spec *map[string]interface{} `json:"spec,omitempty"` // UpdatedAt Time when the source was last updated UpdatedAt time.Time `json:"updated_at"` @@ -1462,7 +1721,7 @@ type SyncDestination struct { Version string `json:"version"` // WriteMode Write mode for the destination - WriteMode SyncDestinationWriteMode `json:"write_mode"` + WriteMode *SyncDestinationWriteMode `json:"write_mode,omitempty"` } // SyncDestinationCreate Sync Destination Definition @@ -1626,7 +1885,7 @@ type SyncSource struct { Env []SyncEnv `json:"env"` // LastUpdateSource How was the source or destination been created or updated last - LastUpdateSource SyncLastUpdateSource `json:"last_update_source"` + LastUpdateSource *SyncLastUpdateSource `json:"last_update_source,omitempty"` // Name Descriptive, unique name for the source. The name can only contain ASCII letters, digits, - and _. Name string `json:"name"` @@ -1635,8 +1894,8 @@ type SyncSource struct { Path SyncPluginPath `json:"path"` // SkipTables Tables matched by `tables` that should be skipped. Wildcards are supported. - SkipTables []string `json:"skip_tables"` - Spec map[string]interface{} `json:"spec"` + SkipTables *[]string `json:"skip_tables,omitempty"` + Spec *map[string]interface{} `json:"spec,omitempty"` // Tables Tables to sync. Wildcards are supported. Note that child tables are excluded by default, and need to be explicitly specified. Tables []string `json:"tables"` @@ -1738,6 +1997,11 @@ type SyncUpdate struct { Source *string `json:"source,omitempty"` } +// SyncRunLogs defines model for Sync_Run_Logs. +type SyncRunLogs struct { + Location interface{} `json:"location"` +} + // Team CloudQuery Team type Team struct { CreatedAt *time.Time `json:"created_at,omitempty"` @@ -1823,6 +2087,31 @@ type TeamSubscriptionOrderID = openapi_types.UUID // TeamSubscriptionOrderStatus defines model for TeamSubscriptionOrderStatus. type TeamSubscriptionOrderStatus string +// UpdateCurrentUserRequest defines model for UpdateCurrentUser_request. +type UpdateCurrentUserRequest struct { + Name *interface{} `json:"name,omitempty"` +} + +// UpdateSyncRunRequest defines model for UpdateSyncRun_request. +type UpdateSyncRunRequest struct { + // Status The status of the sync run + Status *SyncRunStatus `json:"status,omitempty"` + + // StatusReason The reason for the status + StatusReason *SyncRunStatusReason `json:"status_reason,omitempty"` +} + +// UpdateSyncTestConnectionRequest defines model for UpdateSyncTestConnection_request. +type UpdateSyncTestConnectionRequest struct { + // Status The status of the sync run + Status SyncTestConnectionStatus `json:"status"` +} + +// UpdateTeamRequest defines model for UpdateTeam_request. +type UpdateTeamRequest struct { + DisplayName *interface{} `json:"display_name,omitempty"` +} + // UsageCurrent The usage of a plugin within the current calendar month. type UsageCurrent struct { // PluginKind The kind of plugin, ie. source or destination. @@ -1865,72 +2154,41 @@ type UsageIncrease struct { RequestId openapi_types.UUID `json:"request_id"` // Rows The total number of additional rows used by the plugin. - Rows int `json:"rows"` - Tables *[]struct { - // Name The name of the table. - Name string `json:"name"` + Rows int `json:"rows"` + Tables *[]UsageIncreaseTablesInner `json:"tables,omitempty"` +} - // Rows The additional rows used by the table. - Rows int `json:"rows"` - } `json:"tables,omitempty"` +// UsageIncreaseTablesInner defines model for UsageIncrease_tables_inner. +type UsageIncreaseTablesInner struct { + // Name The name of the table. + Name string `json:"name"` + + // Rows The additional rows used by the table. + Rows int `json:"rows"` } // UsageSummary A usage summary for a team, summarizing the paid rows synced and/or cloud resource usage over a given time range. // Note that empty or all-zero values are not included in the response. type UsageSummary struct { - // Groups The groups of the usage summary. Every group will have a corresponding value at the same index in the values array. - Groups []UsageSummaryGroup `json:"groups"` + Groups interface{} `json:"groups"` // Metadata Additional metadata about the usage summary. This may include information about the time range, the aggregation period, or other details. - Metadata struct { - // AggregationPeriod The aggregation period to sum data over. In other words, data will be returned at this granularity. - AggregationPeriod UsageSummaryMetadataAggregationPeriod `json:"aggregation_period"` - - // End The exclusive end of the query time range. - End time.Time `json:"end"` - - // Metrics List of metrics included in the response. - Metrics []UsageSummaryMetadataMetrics `json:"metrics"` + Metadata UsageSummaryMetadata `json:"metadata"` + Values interface{} `json:"values"` +} - // Start The inclusive start of the query time range. - Start time.Time `json:"start"` - } `json:"metadata"` - Values []UsageSummaryValue `json:"values"` +// UsageSummaryMetadata Additional metadata about the usage summary. This may include information about the time range, the aggregation period, or other details. +type UsageSummaryMetadata struct { + // AggregationPeriod The aggregation period to sum data over. In other words, data will be returned at this granularity. + AggregationPeriod UsageSummaryMetadataAggregationPeriod `json:"aggregation_period"` + End interface{} `json:"end"` + Metrics interface{} `json:"metrics"` + Start interface{} `json:"start"` } // UsageSummaryMetadataAggregationPeriod The aggregation period to sum data over. In other words, data will be returned at this granularity. type UsageSummaryMetadataAggregationPeriod string -// UsageSummaryMetadataMetrics defines model for UsageSummary.Metadata.Metrics. -type UsageSummaryMetadataMetrics string - -// UsageSummaryGroup A usage summary group. -type UsageSummaryGroup struct { - // Name The name of the group. - Name string `json:"name"` - - // Value The value of the group at this index. - Value string `json:"value"` -} - -// UsageSummaryValue A usage summary value. -type UsageSummaryValue struct { - // CloudEgressBytes Egress bytes consumed in this period, one per group. - CloudEgressBytes *[]int64 `json:"cloud_egress_bytes,omitempty"` - - // CloudVcpuSeconds vCPU/seconds consumed in this period, one per group. - CloudVcpuSeconds *[]int64 `json:"cloud_vcpu_seconds,omitempty"` - - // CloudVramByteSeconds vRAM/byte-seconds consumed in this period, one per group. - CloudVramByteSeconds *[]int64 `json:"cloud_vram_byte_seconds,omitempty"` - - // PaidRows The paid rows that were synced in this period, one per group. - PaidRows *[]int64 `json:"paid_rows,omitempty"` - - // Timestamp The timestamp marking the start of a period. - Timestamp time.Time `json:"timestamp"` -} - // User CloudQuery User type User struct { CreatedAt *time.Time `json:"created_at,omitempty"` @@ -2061,26 +2319,6 @@ type ListAddonVersionsParams struct { // ListAddonVersionsParamsSortBy defines parameters for ListAddonVersions. type ListAddonVersionsParamsSortBy string -// CreateAddonVersionJSONBody defines parameters for CreateAddonVersion. -type CreateAddonVersionJSONBody struct { - // AddonDeps addon dependencies in the format of ['team_name/type/addon_name@version'] - AddonDeps *[]string `json:"addon_deps,omitempty"` - - // Checksum SHA-256 checksum for the addon asset - Checksum string `json:"checksum"` - - // Doc Main README in MD format - Doc string `json:"doc"` - - // Message A message describing what's new or changed in this version. - // This message will be displayed to users in the addon's changelog. - // Supports limited markdown syntax. - Message string `json:"message"` - - // PluginDeps plugin dependencies in the format of ['team_name/kind/plugin_name@version'] - PluginDeps *[]string `json:"plugin_deps,omitempty"` -} - // DownloadAddonAssetParams defines parameters for DownloadAddonAsset. type DownloadAddonAssetParams struct { Accept *string `json:"Accept,omitempty"` @@ -2131,39 +2369,11 @@ type ListPluginVersionsParams struct { // ListPluginVersionsParamsSortBy defines parameters for ListPluginVersions. type ListPluginVersionsParamsSortBy string -// CreatePluginVersionJSONBody defines parameters for CreatePluginVersion. -type CreatePluginVersionJSONBody struct { - // Checksums List of SHA-256 checksums for this plugin version, one for each supported target. - Checksums []string `json:"checksums"` - - // Message A message describing what's new or changed in this version. - // This message will be displayed to users in the plugin's changelog. - // Supports limited markdown syntax. - Message string `json:"message"` - - // PackageType The package type of the plugin assets - PackageType PluginPackageType `json:"package_type"` - - // Protocols The CloudQuery protocols supported by this plugin version (only protocol 3 is supported by new plugins). - Protocols PluginProtocols `json:"protocols"` - - // SpecJsonSchema The specification of the plugin. This is a JSON schema that describes the configuration of the plugin. - SpecJsonSchema *PluginSpecJSONSchema `json:"spec_json_schema,omitempty"` - - // SupportedTargets The targets supported by this plugin version, formatted as _ - SupportedTargets []string `json:"supported_targets"` -} - // DownloadPluginAssetParams defines parameters for DownloadPluginAsset. type DownloadPluginAssetParams struct { Accept *string `json:"Accept,omitempty"` } -// DeletePluginVersionDocsJSONBody defines parameters for DeletePluginVersionDocs. -type DeletePluginVersionDocsJSONBody struct { - Names []PluginDocsPageName `json:"names"` -} - // ListPluginVersionDocsParams defines parameters for ListPluginVersionDocs. type ListPluginVersionDocsParams struct { // Page Page number of the results to fetch @@ -2173,21 +2383,6 @@ type ListPluginVersionDocsParams struct { PerPage *PerPage `form:"per_page,omitempty" json:"per_page,omitempty"` } -// ReplacePluginVersionDocsJSONBody defines parameters for ReplacePluginVersionDocs. -type ReplacePluginVersionDocsJSONBody struct { - Pages []PluginDocsPageCreate `json:"pages"` -} - -// CreatePluginVersionDocsJSONBody defines parameters for CreatePluginVersionDocs. -type CreatePluginVersionDocsJSONBody struct { - Pages []PluginDocsPageCreate `json:"pages"` -} - -// DeletePluginVersionTablesJSONBody defines parameters for DeletePluginVersionTables. -type DeletePluginVersionTablesJSONBody struct { - Names []PluginTableName `json:"names"` -} - // ListPluginVersionTablesParams defines parameters for ListPluginVersionTables. type ListPluginVersionTablesParams struct { // Page Page number of the results to fetch @@ -2197,11 +2392,6 @@ type ListPluginVersionTablesParams struct { PerPage *PerPage `form:"per_page,omitempty" json:"per_page,omitempty"` } -// CreatePluginVersionTablesJSONBody defines parameters for CreatePluginVersionTables. -type CreatePluginVersionTablesJSONBody struct { - Tables []PluginTableCreate `json:"tables"` -} - // AuthRegistryRequestParams defines parameters for AuthRegistryRequest. type AuthRegistryRequestParams struct { // Account Username used for `docker login` @@ -2229,21 +2419,6 @@ type ListTeamsParams struct { Page *Page `form:"page,omitempty" json:"page,omitempty"` } -// CreateTeamJSONBody defines parameters for CreateTeam. -type CreateTeamJSONBody struct { - // DisplayName The team's display name - DisplayName string `json:"display_name"` - - // Name The unique name for the team. - Name TeamName `json:"name"` -} - -// UpdateTeamJSONBody defines parameters for UpdateTeam. -type UpdateTeamJSONBody struct { - // DisplayName The team's display name - DisplayName *string `json:"display_name,omitempty"` -} - // ListAddonOrdersByTeamParams defines parameters for ListAddonOrdersByTeam. type ListAddonOrdersByTeamParams struct { // Page Page number of the results to fetch @@ -2279,19 +2454,6 @@ type ListTeamAPIKeysParams struct { Page *Page `form:"page,omitempty" json:"page,omitempty"` } -// CreateTeamAPIKeyJSONBody defines parameters for CreateTeamAPIKey. -type CreateTeamAPIKeyJSONBody struct { - ExpiresAt time.Time `json:"expires_at"` - - // Name Name of the API key - Name APIKeyName `json:"name"` -} - -// CreateTeamImagesJSONBody defines parameters for CreateTeamImages. -type CreateTeamImagesJSONBody struct { - Images []TeamImageCreate `json:"images"` -} - // ListTeamInvitationsParams defines parameters for ListTeamInvitations. type ListTeamInvitationsParams struct { // Page Page number of the results to fetch @@ -2301,20 +2463,6 @@ type ListTeamInvitationsParams struct { PerPage *PerPage `form:"per_page,omitempty" json:"per_page,omitempty"` } -// EmailTeamInvitationJSONBody defines parameters for EmailTeamInvitation. -type EmailTeamInvitationJSONBody struct { - Email openapi_types.Email `json:"email"` - Role EmailTeamInvitationJSONBodyRole `json:"role"` -} - -// EmailTeamInvitationJSONBodyRole defines parameters for EmailTeamInvitation. -type EmailTeamInvitationJSONBodyRole string - -// AcceptTeamInvitationJSONBody defines parameters for AcceptTeamInvitation. -type AcceptTeamInvitationJSONBody struct { - Token openapi_types.UUID `json:"token"` -} - // ListInvoicesByTeamParams defines parameters for ListInvoicesByTeam. type ListInvoicesByTeamParams struct { // Page Page number of the results to fetch @@ -2404,12 +2552,6 @@ type ListSyncsParams struct { Page *Page `form:"page,omitempty" json:"page,omitempty"` } -// UpdateSyncTestConnectionJSONBody defines parameters for UpdateSyncTestConnection. -type UpdateSyncTestConnectionJSONBody struct { - // Status The status of the sync run - Status SyncTestConnectionStatus `json:"status"` -} - // ListSyncRunsParams defines parameters for ListSyncRuns. type ListSyncRunsParams struct { // PerPage The number of results per page (max 1000). @@ -2419,35 +2561,11 @@ type ListSyncRunsParams struct { Page *Page `form:"page,omitempty" json:"page,omitempty"` } -// UpdateSyncRunJSONBody defines parameters for UpdateSyncRun. -type UpdateSyncRunJSONBody struct { - // Status The status of the sync run - Status *SyncRunStatus `json:"status,omitempty"` - - // StatusReason The reason for the status - StatusReason *SyncRunStatusReason `json:"status_reason,omitempty"` -} - // GetSyncRunLogsParams defines parameters for GetSyncRunLogs. type GetSyncRunLogsParams struct { Accept *string `json:"Accept,omitempty"` } -// CreateSyncRunProgressJSONBody defines parameters for CreateSyncRunProgress. -type CreateSyncRunProgressJSONBody struct { - // Errors Number of errors encountered so far - Errors int64 `json:"errors"` - - // Rows Number of rows synced so far - Rows int64 `json:"rows"` - - // Status The status of the sync run - Status *SyncRunStatus `json:"status,omitempty"` - - // Warnings Number of warnings encountered so far - Warnings int64 `json:"warnings"` -} - // ListTeamPluginUsageParams defines parameters for ListTeamPluginUsage. type ListTeamPluginUsageParams struct { // Page Page number of the results to fetch @@ -2501,12 +2619,6 @@ type ListUsersByTeamParams struct { Page *Page `form:"page,omitempty" json:"page,omitempty"` } -// UpdateCurrentUserJSONBody defines parameters for UpdateCurrentUser. -type UpdateCurrentUserJSONBody struct { - // Name The user's name - Name *string `json:"name,omitempty"` -} - // ListCurrentUserInvitationsParams defines parameters for ListCurrentUserInvitations. type ListCurrentUserInvitationsParams struct { // Page Page number of the results to fetch @@ -2535,7 +2647,7 @@ type UpdateAddonJSONRequestBody = AddonUpdate type UpdateAddonVersionJSONRequestBody = AddonVersionUpdate // CreateAddonVersionJSONRequestBody defines body for CreateAddonVersion for application/json ContentType. -type CreateAddonVersionJSONRequestBody CreateAddonVersionJSONBody +type CreateAddonVersionJSONRequestBody = CreateAddonVersionRequest // CreatePluginNotificationRequestJSONRequestBody defines body for CreatePluginNotificationRequest for application/json ContentType. type CreatePluginNotificationRequestJSONRequestBody = PluginNotificationRequestCreate @@ -2553,43 +2665,43 @@ type CreatePluginUpcomingPriceChangeJSONRequestBody = PluginPriceCreate type UpdatePluginVersionJSONRequestBody = PluginVersionUpdate // CreatePluginVersionJSONRequestBody defines body for CreatePluginVersion for application/json ContentType. -type CreatePluginVersionJSONRequestBody CreatePluginVersionJSONBody +type CreatePluginVersionJSONRequestBody = CreatePluginVersionRequest // DeletePluginVersionDocsJSONRequestBody defines body for DeletePluginVersionDocs for application/json ContentType. -type DeletePluginVersionDocsJSONRequestBody DeletePluginVersionDocsJSONBody +type DeletePluginVersionDocsJSONRequestBody = DeletePluginVersionDocsRequest // ReplacePluginVersionDocsJSONRequestBody defines body for ReplacePluginVersionDocs for application/json ContentType. -type ReplacePluginVersionDocsJSONRequestBody ReplacePluginVersionDocsJSONBody +type ReplacePluginVersionDocsJSONRequestBody = CreatePluginVersionDocsRequest // CreatePluginVersionDocsJSONRequestBody defines body for CreatePluginVersionDocs for application/json ContentType. -type CreatePluginVersionDocsJSONRequestBody CreatePluginVersionDocsJSONBody +type CreatePluginVersionDocsJSONRequestBody = CreatePluginVersionDocsRequest // DeletePluginVersionTablesJSONRequestBody defines body for DeletePluginVersionTables for application/json ContentType. -type DeletePluginVersionTablesJSONRequestBody DeletePluginVersionTablesJSONBody +type DeletePluginVersionTablesJSONRequestBody = DeletePluginVersionTablesRequest // CreatePluginVersionTablesJSONRequestBody defines body for CreatePluginVersionTables for application/json ContentType. -type CreatePluginVersionTablesJSONRequestBody CreatePluginVersionTablesJSONBody +type CreatePluginVersionTablesJSONRequestBody = CreatePluginVersionTablesRequest // CreateTeamJSONRequestBody defines body for CreateTeam for application/json ContentType. -type CreateTeamJSONRequestBody CreateTeamJSONBody +type CreateTeamJSONRequestBody = CreateTeamRequest // UpdateTeamJSONRequestBody defines body for UpdateTeam for application/json ContentType. -type UpdateTeamJSONRequestBody UpdateTeamJSONBody +type UpdateTeamJSONRequestBody = UpdateTeamRequest // CreateAddonOrderForTeamJSONRequestBody defines body for CreateAddonOrderForTeam for application/json ContentType. type CreateAddonOrderForTeamJSONRequestBody = AddonOrderCreate // CreateTeamAPIKeyJSONRequestBody defines body for CreateTeamAPIKey for application/json ContentType. -type CreateTeamAPIKeyJSONRequestBody CreateTeamAPIKeyJSONBody +type CreateTeamAPIKeyJSONRequestBody = CreateTeamAPIKeyRequest // CreateTeamImagesJSONRequestBody defines body for CreateTeamImages for application/json ContentType. -type CreateTeamImagesJSONRequestBody CreateTeamImagesJSONBody +type CreateTeamImagesJSONRequestBody = CreateTeamImagesRequest // EmailTeamInvitationJSONRequestBody defines body for EmailTeamInvitation for application/json ContentType. -type EmailTeamInvitationJSONRequestBody EmailTeamInvitationJSONBody +type EmailTeamInvitationJSONRequestBody = EmailTeamInvitationRequest // AcceptTeamInvitationJSONRequestBody defines body for AcceptTeamInvitation for application/json ContentType. -type AcceptTeamInvitationJSONRequestBody AcceptTeamInvitationJSONBody +type AcceptTeamInvitationJSONRequestBody = AcceptTeamInvitationRequest // CreateMonthlyLimitJSONRequestBody defines body for CreateMonthlyLimit for application/json ContentType. type CreateMonthlyLimitJSONRequestBody = MonthlyLimitCreate @@ -2628,19 +2740,19 @@ type UpdateSyncSourceJSONRequestBody = SyncSourceUpdate type CreateSyncJSONRequestBody = SyncCreate // UpdateSyncTestConnectionJSONRequestBody defines body for UpdateSyncTestConnection for application/json ContentType. -type UpdateSyncTestConnectionJSONRequestBody UpdateSyncTestConnectionJSONBody +type UpdateSyncTestConnectionJSONRequestBody = UpdateSyncTestConnectionRequest // UpdateSyncJSONRequestBody defines body for UpdateSync for application/json ContentType. type UpdateSyncJSONRequestBody = SyncUpdate // UpdateSyncRunJSONRequestBody defines body for UpdateSyncRun for application/json ContentType. -type UpdateSyncRunJSONRequestBody UpdateSyncRunJSONBody +type UpdateSyncRunJSONRequestBody = UpdateSyncRunRequest // CreateSyncRunProgressJSONRequestBody defines body for CreateSyncRunProgress for application/json ContentType. -type CreateSyncRunProgressJSONRequestBody CreateSyncRunProgressJSONBody +type CreateSyncRunProgressJSONRequestBody = CreateSyncRunProgressRequest // IncreaseTeamPluginUsageJSONRequestBody defines body for IncreaseTeamPluginUsage for application/json ContentType. type IncreaseTeamPluginUsageJSONRequestBody = UsageIncrease // UpdateCurrentUserJSONRequestBody defines body for UpdateCurrentUser for application/json ContentType. -type UpdateCurrentUserJSONRequestBody UpdateCurrentUserJSONBody +type UpdateCurrentUserJSONRequestBody = UpdateCurrentUserRequest diff --git a/spec.json b/spec.json index 699b77c..e169026 100644 --- a/spec.json +++ b/spec.json @@ -1,9822 +1,8556 @@ { - "openapi": "3.1.0", - "info": { - "contact": { - "email": "support@cloudquery.io", - "name": "CloudQuery Support Team", - "url": "https://cloudquery.io" + "openapi" : "3.1.0", + "info" : { + "contact" : { + "email" : "support@cloudquery.io", + "name" : "CloudQuery Support Team", + "url" : "https://cloudquery.io" }, - "description": "Welcome to the CloudQuery API documentation! This API can be used to interact with the CloudQuery platform. The API allows you to manage your teams, usage, spend limits, plugins, addons, cloud syncs, and much more.\n\nThe API is secured using bearer tokens. To get started, you can generate an API key from the CloudQuery dashboard. For a step-by-step guide, see: https://docs.cloudquery.io/docs/deployment/generate-api-key.\n\nThe base URL for the API is `https://api.cloudquery.io`.\n", - "license": { - "name": "MIT", - "url": "https://spdx.org/licenses/MIT" + "description" : "Welcome to the CloudQuery API documentation! This API can be used to interact with the CloudQuery platform. The API allows you to manage your teams, usage, spend limits, plugins, addons, cloud syncs, and much more.\n\nThe API is secured using bearer tokens. To get started, you can generate an API key from the CloudQuery dashboard. For a step-by-step guide, see: https://docs.cloudquery.io/docs/deployment/generate-api-key.\n\nThe base URL for the API is `https://api.cloudquery.io`.\n", + "license" : { + "name" : "MIT", + "url" : "https://spdx.org/licenses/MIT" }, - "termsOfService": "https://www.cloudquery.io/terms", - "title": "CloudQuery OpenAPI Spec", - "version": "1.0.0" + "termsOfService" : "https://www.cloudquery.io/terms", + "title" : "CloudQuery OpenAPI Spec", + "version" : "1.0.0" }, - "servers": [ - { - "url": "https://api.cloudquery.io" - } - ], - "security": [ - { - "bearerAuth": [] - } - ], - "tags": [ - { - "name": "users" - }, - { - "name": "teams" - }, - { - "name": "plugins" - }, - { - "name": "images" - }, - { - "name": "healthcheck" - }, - { - "name": "addons" - }, - { - "name": "registry" - }, - { - "name": "syncs" - } - ], - "paths": { - "/": { - "get": { - "description": "Health check endpoint, returns 200", - "operationId": "HealthCheck", - "responses": { - "200": { - "description": "Response" - } - }, - "security": [], - "tags": [ - "healthcheck" - ] + "servers" : [ { + "url" : "https://api.cloudquery.io" + } ], + "security" : [ { + "bearerAuth" : [ ] + } ], + "tags" : [ { + "name" : "users" + }, { + "name" : "teams" + }, { + "name" : "plugins" + }, { + "name" : "images" + }, { + "name" : "healthcheck" + }, { + "name" : "addons" + }, { + "name" : "registry" + }, { + "name" : "syncs" + } ], + "paths" : { + "/" : { + "get" : { + "description" : "Health check endpoint, returns 200", + "operationId" : "HealthCheck", + "responses" : { + "200" : { + "description" : "Response" + } + }, + "security" : [ ], + "tags" : [ "healthcheck" ] } }, - "/upload/image": { - "post": { - "description": "Get a URL to upload image that will be publicly accessible", - "operationId": "UploadImage", - "parameters": [], - "tags": [ - "images" - ], - "responses": { - "200": { - "description": "Response", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ImageURL" + "/upload/image" : { + "post" : { + "description" : "Get a URL to upload image that will be publicly accessible", + "operationId" : "UploadImage", + "parameters" : [ ], + "responses" : { + "200" : { + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/ImageURL" } } - } + }, + "description" : "Response" }, - "500": { - "$ref": "#/components/responses/InternalError" + "500" : { + "$ref" : "#/components/responses/InternalError" } - } + }, + "tags" : [ "images" ] } }, - "/plugin-notification-requests": { - "get": { - "description": "List all plugin notification requests", - "operationId": "ListPluginNotificationRequests", - "parameters": [ - { - "$ref": "#/components/parameters/page" - }, - { - "$ref": "#/components/parameters/per_page" - } - ], - "responses": { - "200": { - "description": "Response", - "content": { - "application/json": { - "schema": { - "required": [ - "items", - "metadata" - ], - "properties": { - "items": { - "type": "array", - "items": { - "$ref": "#/components/schemas/PluginNotificationRequest" - } - }, - "metadata": { - "$ref": "#/components/schemas/ListMetadata" - } - } + "/plugin-notification-requests" : { + "get" : { + "description" : "List all plugin notification requests", + "operationId" : "ListPluginNotificationRequests", + "parameters" : [ { + "$ref" : "#/components/parameters/page" + }, { + "$ref" : "#/components/parameters/per_page" + } ], + "responses" : { + "200" : { + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/ListPluginNotificationRequests_200_response" } } - } + }, + "description" : "Response" }, - "401": { - "$ref": "#/components/responses/RequiresAuthentication" + "401" : { + "$ref" : "#/components/responses/RequiresAuthentication" }, - "500": { - "$ref": "#/components/responses/InternalError" + "500" : { + "$ref" : "#/components/responses/InternalError" } }, - "tags": [ - "plugins" - ] + "tags" : [ "plugins" ] }, - "post": { - "description": "Create a new plugin notification request.", - "operationId": "CreatePluginNotificationRequest", - "parameters": [], - "requestBody": { - "required": true, - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/PluginNotificationRequestCreate" + "post" : { + "description" : "Create a new plugin notification request.", + "operationId" : "CreatePluginNotificationRequest", + "parameters" : [ ], + "requestBody" : { + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/PluginNotificationRequestCreate" } } - } + }, + "required" : true }, - "responses": { - "201": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/PluginNotificationRequest" + "responses" : { + "201" : { + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/PluginNotificationRequest" } } }, - "description": "Created" + "description" : "Created" }, - "400": { - "$ref": "#/components/responses/BadRequest" + "400" : { + "$ref" : "#/components/responses/BadRequest" }, - "401": { - "$ref": "#/components/responses/RequiresAuthentication" + "401" : { + "$ref" : "#/components/responses/RequiresAuthentication" }, - "403": { - "$ref": "#/components/responses/Forbidden" + "403" : { + "$ref" : "#/components/responses/Forbidden" }, - "404": { - "$ref": "#/components/responses/NotFound" + "404" : { + "$ref" : "#/components/responses/NotFound" }, - "422": { - "$ref": "#/components/responses/UnprocessableEntity" + "422" : { + "$ref" : "#/components/responses/UnprocessableEntity" }, - "500": { - "$ref": "#/components/responses/InternalError" + "500" : { + "$ref" : "#/components/responses/InternalError" } }, - "tags": [ - "plugins" - ] + "tags" : [ "plugins" ] } }, - "/plugin-notification-requests/{plugin_team}/{plugin_kind}/{plugin_name}": { - "get": { - "description": "Query plugin notification request for a given plugin.", - "operationId": "GetPluginNotificationRequest", - "parameters": [ - { - "$ref": "#/components/parameters/plugin_team" - }, - { - "$ref": "#/components/parameters/plugin_kind" - }, - { - "$ref": "#/components/parameters/plugin_name" - } - ], - "responses": { - "200": { - "description": "Response", - "content": { - "application/json": { - "schema": { - "required": [ - "items", - "metadata" - ], - "properties": { - "items": { - "type": "array", - "items": { - "$ref": "#/components/schemas/PluginNotificationRequest" - } - }, - "metadata": { - "$ref": "#/components/schemas/ListMetadata" - } - } + "/plugin-notification-requests/{plugin_team}/{plugin_kind}/{plugin_name}" : { + "delete" : { + "description" : "Remove plugin notification request for a given plugin.", + "operationId" : "DeletePluginNotificationRequest", + "parameters" : [ { + "$ref" : "#/components/parameters/plugin_team" + }, { + "$ref" : "#/components/parameters/plugin_kind" + }, { + "$ref" : "#/components/parameters/plugin_name" + } ], + "responses" : { + "204" : { + "description" : "Response" + }, + "401" : { + "$ref" : "#/components/responses/RequiresAuthentication" + }, + "404" : { + "$ref" : "#/components/responses/NotFound" + }, + "500" : { + "$ref" : "#/components/responses/InternalError" + } + }, + "tags" : [ "plugins" ] + }, + "get" : { + "description" : "Query plugin notification request for a given plugin.", + "operationId" : "GetPluginNotificationRequest", + "parameters" : [ { + "$ref" : "#/components/parameters/plugin_team" + }, { + "$ref" : "#/components/parameters/plugin_kind" + }, { + "$ref" : "#/components/parameters/plugin_name" + } ], + "responses" : { + "200" : { + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/ListPluginNotificationRequests_200_response" } } - } - }, - "401": { - "$ref": "#/components/responses/RequiresAuthentication" - }, - "404": { - "$ref": "#/components/responses/NotFound" - }, - "500": { - "$ref": "#/components/responses/InternalError" - } - }, - "tags": [ - "plugins" - ] - }, - "delete": { - "description": "Remove plugin notification request for a given plugin.", - "operationId": "DeletePluginNotificationRequest", - "parameters": [ - { - "$ref": "#/components/parameters/plugin_team" - }, - { - "$ref": "#/components/parameters/plugin_kind" - }, - { - "$ref": "#/components/parameters/plugin_name" - } - ], - "responses": { - "204": { - "description": "Response" + }, + "description" : "Response" }, - "401": { - "$ref": "#/components/responses/RequiresAuthentication" + "401" : { + "$ref" : "#/components/responses/RequiresAuthentication" }, - "404": { - "$ref": "#/components/responses/NotFound" + "404" : { + "$ref" : "#/components/responses/NotFound" }, - "500": { - "$ref": "#/components/responses/InternalError" + "500" : { + "$ref" : "#/components/responses/InternalError" } }, - "tags": [ - "plugins" - ] + "tags" : [ "plugins" ] } }, - "/plugins": { - "get": { - "description": "List all plugins", - "operationId": "ListPlugins", - "parameters": [ - { - "$ref": "#/components/parameters/plugin_sort_by" - }, - { - "$ref": "#/components/parameters/page" - }, - { - "$ref": "#/components/parameters/per_page" - } - ], - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "required": [ - "items", - "metadata" - ], - "properties": { - "items": { - "items": { - "$ref": "#/components/schemas/ListPlugin" - }, - "type": "array", - "example": [ - { - "name": "aws", - "kind": "source", - "team_name": "cloudquery", - "display_name": "AWS Source Plugin", - "category": "cloud-infrastructure", - "created_at": "2017-07-14T16:53:42Z", - "updated_at": "2017-07-14T16:53:42Z", - "homepage": "https://cloudquery.io", - "logo": "https://images.cloudquery.io/logos/aws.png", - "official": true, - "short_description": "Sync data from AWS to any destination", - "repository": "https://github.com/cloudquery/cloudquery", - "tier": "paid", - "usd_per_row": "0.00123", - "free_rows_per_month": 10000, - "release_stage": "preview" - } - ] - }, - "metadata": { - "$ref": "#/components/schemas/ListMetadata" - } - } + "/plugins" : { + "get" : { + "description" : "List all plugins", + "operationId" : "ListPlugins", + "parameters" : [ { + "$ref" : "#/components/parameters/plugin_sort_by" + }, { + "$ref" : "#/components/parameters/page" + }, { + "$ref" : "#/components/parameters/per_page" + } ], + "responses" : { + "200" : { + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/ListPlugins_200_response" } } }, - "description": "Response" + "description" : "Response" }, - "401": { - "$ref": "#/components/responses/RequiresAuthentication" + "401" : { + "$ref" : "#/components/responses/RequiresAuthentication" }, - "500": { - "$ref": "#/components/responses/InternalError" + "500" : { + "$ref" : "#/components/responses/InternalError" } }, - "security": [], - "tags": [ - "plugins" - ] + "security" : [ ], + "tags" : [ "plugins" ] }, - "post": { - "description": "Create a plugin owned by the specified team. User must be part of that team.", - "operationId": "CreatePlugin", - "parameters": [], - "requestBody": { - "required": true, - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/PluginCreate" + "post" : { + "description" : "Create a plugin owned by the specified team. User must be part of that team.", + "operationId" : "CreatePlugin", + "parameters" : [ ], + "requestBody" : { + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/PluginCreate" } } - } + }, + "required" : true }, - "responses": { - "201": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Plugin" + "responses" : { + "201" : { + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/Plugin" } } }, - "description": "Created" + "description" : "Created" }, - "400": { - "$ref": "#/components/responses/BadRequest" + "400" : { + "$ref" : "#/components/responses/BadRequest" }, - "403": { - "$ref": "#/components/responses/Forbidden" + "403" : { + "$ref" : "#/components/responses/Forbidden" }, - "422": { - "$ref": "#/components/responses/UnprocessableEntity" + "422" : { + "$ref" : "#/components/responses/UnprocessableEntity" }, - "500": { - "$ref": "#/components/responses/InternalError" + "500" : { + "$ref" : "#/components/responses/InternalError" } }, - "tags": [ - "plugins" - ] + "tags" : [ "plugins" ] } }, - "/plugins/{team_name}/{plugin_kind}/{plugin_name}": { - "get": { - "description": "Get details about a given plugin.", - "operationId": "GetPlugin", - "parameters": [ - { - "$ref": "#/components/parameters/team_name" - }, - { - "$ref": "#/components/parameters/plugin_kind" - }, - { - "$ref": "#/components/parameters/plugin_name" - } - ], - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ListPlugin" + "/plugins/{team_name}/{plugin_kind}/{plugin_name}" : { + "delete" : { + "description" : "Delete plugin by team and plugin name", + "operationId" : "DeletePluginByTeamAndPluginName", + "parameters" : [ { + "$ref" : "#/components/parameters/team_name" + }, { + "$ref" : "#/components/parameters/plugin_kind" + }, { + "$ref" : "#/components/parameters/plugin_name" + } ], + "responses" : { + "204" : { + "description" : "Response" + }, + "400" : { + "$ref" : "#/components/responses/BadRequest" + }, + "401" : { + "$ref" : "#/components/responses/RequiresAuthentication" + }, + "403" : { + "$ref" : "#/components/responses/Forbidden" + }, + "404" : { + "$ref" : "#/components/responses/NotFound" + }, + "500" : { + "$ref" : "#/components/responses/InternalError" + } + }, + "tags" : [ "plugins" ] + }, + "get" : { + "description" : "Get details about a given plugin.", + "operationId" : "GetPlugin", + "parameters" : [ { + "$ref" : "#/components/parameters/team_name" + }, { + "$ref" : "#/components/parameters/plugin_kind" + }, { + "$ref" : "#/components/parameters/plugin_name" + } ], + "responses" : { + "200" : { + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/ListPlugin" } } }, - "description": "Response" + "description" : "Response" }, - "401": { - "$ref": "#/components/responses/RequiresAuthentication" + "401" : { + "$ref" : "#/components/responses/RequiresAuthentication" }, - "404": { - "$ref": "#/components/responses/NotFound" + "404" : { + "$ref" : "#/components/responses/NotFound" }, - "500": { - "$ref": "#/components/responses/InternalError" + "500" : { + "$ref" : "#/components/responses/InternalError" } }, - "security": [], - "tags": [ - "plugins" - ] + "security" : [ ], + "tags" : [ "plugins" ] }, - "patch": { - "description": "Update a plugin", - "operationId": "UpdatePlugin", - "tags": [ - "plugins" - ], - "parameters": [ - { - "$ref": "#/components/parameters/team_name" - }, - { - "$ref": "#/components/parameters/plugin_kind" - }, - { - "$ref": "#/components/parameters/plugin_name" - } - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/PluginUpdate" + "patch" : { + "description" : "Update a plugin", + "operationId" : "UpdatePlugin", + "parameters" : [ { + "$ref" : "#/components/parameters/team_name" + }, { + "$ref" : "#/components/parameters/plugin_kind" + }, { + "$ref" : "#/components/parameters/plugin_name" + } ], + "requestBody" : { + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/PluginUpdate" } } } }, - "responses": { - "200": { - "description": "Updated", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Plugin" + "responses" : { + "200" : { + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/Plugin" } } - } - }, - "400": { - "$ref": "#/components/responses/BadRequest" - }, - "403": { - "$ref": "#/components/responses/Forbidden" - }, - "404": { - "$ref": "#/components/responses/NotFound" - }, - "422": { - "$ref": "#/components/responses/UnprocessableEntity" - }, - "500": { - "$ref": "#/components/responses/InternalError" - } - } - }, - "delete": { - "description": "Delete plugin by team and plugin name", - "operationId": "DeletePluginByTeamAndPluginName", - "parameters": [ - { - "$ref": "#/components/parameters/team_name" - }, - { - "$ref": "#/components/parameters/plugin_kind" - }, - { - "$ref": "#/components/parameters/plugin_name" - } - ], - "responses": { - "204": { - "description": "Response" + }, + "description" : "Updated" }, - "400": { - "$ref": "#/components/responses/BadRequest" + "400" : { + "$ref" : "#/components/responses/BadRequest" }, - "401": { - "$ref": "#/components/responses/RequiresAuthentication" + "403" : { + "$ref" : "#/components/responses/Forbidden" }, - "403": { - "$ref": "#/components/responses/Forbidden" + "404" : { + "$ref" : "#/components/responses/NotFound" }, - "404": { - "$ref": "#/components/responses/NotFound" + "422" : { + "$ref" : "#/components/responses/UnprocessableEntity" }, - "500": { - "$ref": "#/components/responses/InternalError" + "500" : { + "$ref" : "#/components/responses/InternalError" } }, - "tags": [ - "plugins" - ] + "tags" : [ "plugins" ] } }, - "/plugins/{team_name}/{plugin_kind}/{plugin_name}/upcoming-price-changes": { - "get": { - "deprecated": true, - "description": "DEPRECATED. Plugin prices are now managed by category. This endpoint will be removed in the near future and currently returns only empty data.", - "operationId": "ListPluginUpcomingPriceChanges", - "parameters": [ - { - "$ref": "#/components/parameters/team_name" - }, - { - "$ref": "#/components/parameters/plugin_kind" - }, - { - "$ref": "#/components/parameters/plugin_name" - } - ], - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "required": [ - "items", - "metadata" - ], - "properties": { - "items": { - "items": { - "$ref": "#/components/schemas/PluginPrice" - }, - "type": "array" - }, - "metadata": { - "$ref": "#/components/schemas/ListMetadata" - } - } + "/plugins/{team_name}/{plugin_kind}/{plugin_name}/upcoming-price-changes" : { + "delete" : { + "deprecated" : true, + "description" : "DEPRECATED. Plugin prices are now managed by category. This endpoint will be removed in the near future and currently returns only empty data.", + "operationId" : "DeletePluginUpcomingPriceChanges", + "parameters" : [ { + "$ref" : "#/components/parameters/team_name" + }, { + "$ref" : "#/components/parameters/plugin_kind" + }, { + "$ref" : "#/components/parameters/plugin_name" + } ], + "responses" : { + "204" : { + "description" : "Deleted" + }, + "401" : { + "$ref" : "#/components/responses/RequiresAuthentication" + }, + "403" : { + "$ref" : "#/components/responses/Forbidden" + }, + "404" : { + "$ref" : "#/components/responses/NotFound" + }, + "500" : { + "$ref" : "#/components/responses/InternalError" + } + }, + "tags" : [ "plugins" ] + }, + "get" : { + "deprecated" : true, + "description" : "DEPRECATED. Plugin prices are now managed by category. This endpoint will be removed in the near future and currently returns only empty data.", + "operationId" : "ListPluginUpcomingPriceChanges", + "parameters" : [ { + "$ref" : "#/components/parameters/team_name" + }, { + "$ref" : "#/components/parameters/plugin_kind" + }, { + "$ref" : "#/components/parameters/plugin_name" + } ], + "responses" : { + "200" : { + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/ListPluginUpcomingPriceChanges_200_response" } } }, - "description": "Response" + "description" : "Response" }, - "401": { - "$ref": "#/components/responses/RequiresAuthentication" + "401" : { + "$ref" : "#/components/responses/RequiresAuthentication" }, - "403": { - "$ref": "#/components/responses/Forbidden" + "403" : { + "$ref" : "#/components/responses/Forbidden" }, - "404": { - "$ref": "#/components/responses/NotFound" + "404" : { + "$ref" : "#/components/responses/NotFound" }, - "500": { - "$ref": "#/components/responses/InternalError" + "500" : { + "$ref" : "#/components/responses/InternalError" } }, - "security": [], - "tags": [ - "plugins" - ] + "security" : [ ], + "tags" : [ "plugins" ] }, - "post": { - "deprecated": true, - "description": "DEPRECATED. Plugin prices are now managed by category. This endpoint will be removed in the near future and currently returns only empty data.", - "operationId": "CreatePluginUpcomingPriceChange", - "parameters": [ - { - "$ref": "#/components/parameters/team_name" - }, - { - "$ref": "#/components/parameters/plugin_kind" - }, - { - "$ref": "#/components/parameters/plugin_name" - } - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/PluginPriceCreate" + "post" : { + "deprecated" : true, + "description" : "DEPRECATED. Plugin prices are now managed by category. This endpoint will be removed in the near future and currently returns only empty data.", + "operationId" : "CreatePluginUpcomingPriceChange", + "parameters" : [ { + "$ref" : "#/components/parameters/team_name" + }, { + "$ref" : "#/components/parameters/plugin_kind" + }, { + "$ref" : "#/components/parameters/plugin_name" + } ], + "requestBody" : { + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/PluginPriceCreate" } } } }, - "responses": { - "201": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/PluginPrice" + "responses" : { + "201" : { + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/PluginPrice" } } }, - "description": "Response" + "description" : "Response" }, - "401": { - "$ref": "#/components/responses/RequiresAuthentication" + "401" : { + "$ref" : "#/components/responses/RequiresAuthentication" }, - "403": { - "$ref": "#/components/responses/Forbidden" + "403" : { + "$ref" : "#/components/responses/Forbidden" }, - "404": { - "$ref": "#/components/responses/NotFound" + "404" : { + "$ref" : "#/components/responses/NotFound" }, - "422": { - "$ref": "#/components/responses/UnprocessableEntity" + "422" : { + "$ref" : "#/components/responses/UnprocessableEntity" }, - "500": { - "$ref": "#/components/responses/InternalError" + "500" : { + "$ref" : "#/components/responses/InternalError" } }, - "tags": [ - "plugins" - ] - }, - "delete": { - "deprecated": true, - "description": "DEPRECATED. Plugin prices are now managed by category. This endpoint will be removed in the near future and currently returns only empty data.", - "operationId": "DeletePluginUpcomingPriceChanges", - "parameters": [ - { - "$ref": "#/components/parameters/team_name" - }, - { - "$ref": "#/components/parameters/plugin_kind" - }, - { - "$ref": "#/components/parameters/plugin_name" - } - ], - "responses": { - "204": { - "description": "Deleted" + "tags" : [ "plugins" ] + } + }, + "/plugins/{team_name}/{plugin_kind}/{plugin_name}/versions" : { + "get" : { + "description" : "List all versions for a given plugin", + "operationId" : "ListPluginVersions", + "parameters" : [ { + "$ref" : "#/components/parameters/team_name" + }, { + "$ref" : "#/components/parameters/plugin_kind" + }, { + "$ref" : "#/components/parameters/plugin_name" + }, { + "$ref" : "#/components/parameters/version_sort_by" + }, { + "$ref" : "#/components/parameters/page" + }, { + "$ref" : "#/components/parameters/per_page" + }, { + "$ref" : "#/components/parameters/include_drafts" + }, { + "$ref" : "#/components/parameters/include_prereleases" + } ], + "responses" : { + "200" : { + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/ListPluginVersions_200_response" + } + } + }, + "description" : "Response" }, - "401": { - "$ref": "#/components/responses/RequiresAuthentication" + "401" : { + "$ref" : "#/components/responses/RequiresAuthentication" }, - "403": { - "$ref": "#/components/responses/Forbidden" + "403" : { + "$ref" : "#/components/responses/Forbidden" }, - "404": { - "$ref": "#/components/responses/NotFound" + "404" : { + "$ref" : "#/components/responses/NotFound" }, - "500": { - "$ref": "#/components/responses/InternalError" + "500" : { + "$ref" : "#/components/responses/InternalError" } }, - "tags": [ - "plugins" - ] + "security" : [ ], + "tags" : [ "plugins" ] } }, - "/plugins/{team_name}/{plugin_kind}/{plugin_name}/versions": { - "get": { - "description": "List all versions for a given plugin", - "operationId": "ListPluginVersions", - "parameters": [ - { - "$ref": "#/components/parameters/team_name" - }, - { - "$ref": "#/components/parameters/plugin_kind" - }, - { - "$ref": "#/components/parameters/plugin_name" - }, - { - "$ref": "#/components/parameters/version_sort_by" - }, - { - "$ref": "#/components/parameters/page" - }, - { - "$ref": "#/components/parameters/per_page" - }, - { - "$ref": "#/components/parameters/include_drafts" - }, - { - "$ref": "#/components/parameters/include_prereleases" - } - ], - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "required": [ - "items", - "metadata" - ], - "properties": { - "items": { - "items": { - "$ref": "#/components/schemas/PluginVersionList" - }, - "type": "array" - }, - "metadata": { - "$ref": "#/components/schemas/ListMetadata" - } - } + "/plugins/{team_name}/{plugin_kind}/{plugin_name}/versions/{version_name}" : { + "get" : { + "description" : "Get details about a given plugin version.", + "operationId" : "GetPluginVersion", + "parameters" : [ { + "$ref" : "#/components/parameters/team_name" + }, { + "$ref" : "#/components/parameters/plugin_kind" + }, { + "$ref" : "#/components/parameters/plugin_name" + }, { + "$ref" : "#/components/parameters/version_name" + } ], + "responses" : { + "200" : { + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/PluginVersionDetails" } } }, - "description": "Response" + "description" : "Response" }, - "401": { - "$ref": "#/components/responses/RequiresAuthentication" + "401" : { + "$ref" : "#/components/responses/RequiresAuthentication" }, - "403": { - "$ref": "#/components/responses/Forbidden" + "403" : { + "$ref" : "#/components/responses/Forbidden" }, - "404": { - "$ref": "#/components/responses/NotFound" + "404" : { + "$ref" : "#/components/responses/NotFound" }, - "500": { - "$ref": "#/components/responses/InternalError" + "500" : { + "$ref" : "#/components/responses/InternalError" } }, - "security": [], - "tags": [ - "plugins" - ] - } - }, - "/plugins/{team_name}/{plugin_kind}/{plugin_name}/versions/{version_name}": { - "get": { - "description": "Get details about a given plugin version.", - "operationId": "GetPluginVersion", - "parameters": [ - { - "$ref": "#/components/parameters/team_name" - }, - { - "$ref": "#/components/parameters/plugin_kind" - }, - { - "$ref": "#/components/parameters/plugin_name" - }, - { - "$ref": "#/components/parameters/version_name" - } - ], - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/PluginVersionDetails" - } - } - }, - "description": "Response" - }, - "401": { - "$ref": "#/components/responses/RequiresAuthentication" - }, - "403": { - "$ref": "#/components/responses/Forbidden" - }, - "404": { - "$ref": "#/components/responses/NotFound" - }, - "500": { - "$ref": "#/components/responses/InternalError" - } - }, - "security": [], - "tags": [ - "plugins" - ] - }, - "put": { - "description": "Create a new plugin version, or update a draft version", - "operationId": "CreatePluginVersion", - "parameters": [ - { - "$ref": "#/components/parameters/team_name" - }, - { - "$ref": "#/components/parameters/plugin_kind" - }, - { - "$ref": "#/components/parameters/plugin_name" - }, - { - "$ref": "#/components/parameters/version_name" - } - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "type": "object", - "required": [ - "message", - "protocols", - "supported_targets", - "package_type", - "checksums" - ], - "properties": { - "message": { - "type": "string", - "minLength": 1, - "maxLength": 30000, - "description": "A message describing what's new or changed in this version.\nThis message will be displayed to users in the plugin's changelog.\nSupports limited markdown syntax.\n" - }, - "protocols": { - "$ref": "#/components/schemas/PluginProtocols" - }, - "supported_targets": { - "type": "array", - "description": "The targets supported by this plugin version, formatted as _", - "example": [ - "linux_arm64", - "darwin_amd64", - "windows_amd64" - ], - "items": { - "type": "string" - } - }, - "checksums": { - "type": "array", - "description": "List of SHA-256 checksums for this plugin version, one for each supported target.", - "items": { - "type": "string" - } - }, - "package_type": { - "$ref": "#/components/schemas/PluginPackageType" - }, - "spec_json_schema": { - "$ref": "#/components/schemas/PluginSpecJSONSchema" - } - } + "security" : [ ], + "tags" : [ "plugins" ] + }, + "patch" : { + "description" : "Update a given plugin version", + "operationId" : "UpdatePluginVersion", + "parameters" : [ { + "$ref" : "#/components/parameters/team_name" + }, { + "$ref" : "#/components/parameters/plugin_kind" + }, { + "$ref" : "#/components/parameters/plugin_name" + }, { + "$ref" : "#/components/parameters/version_name" + } ], + "requestBody" : { + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/PluginVersionUpdate" } } } }, - "responses": { - "200": { - "description": "Success (the plugin version was updated)", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/PluginVersion" - } - } - } - }, - "201": { - "description": "Success (the plugin version was created)", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/PluginVersion" + "responses" : { + "200" : { + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/PluginVersion" } } - } + }, + "description" : "Response" }, - "400": { - "$ref": "#/components/responses/BadRequest" + "400" : { + "$ref" : "#/components/responses/BadRequest" }, - "401": { - "$ref": "#/components/responses/RequiresAuthentication" + "401" : { + "$ref" : "#/components/responses/RequiresAuthentication" }, - "403": { - "$ref": "#/components/responses/Forbidden" + "404" : { + "$ref" : "#/components/responses/NotFound" }, - "500": { - "$ref": "#/components/responses/InternalError" + "500" : { + "$ref" : "#/components/responses/InternalError" } }, - "tags": [ - "plugins" - ] + "tags" : [ "plugins" ] }, - "patch": { - "description": "Update a given plugin version", - "operationId": "UpdatePluginVersion", - "parameters": [ - { - "$ref": "#/components/parameters/team_name" - }, - { - "$ref": "#/components/parameters/plugin_kind" - }, - { - "$ref": "#/components/parameters/plugin_name" - }, - { - "$ref": "#/components/parameters/version_name" - } - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/PluginVersionUpdate" + "put" : { + "description" : "Create a new plugin version, or update a draft version", + "operationId" : "CreatePluginVersion", + "parameters" : [ { + "$ref" : "#/components/parameters/team_name" + }, { + "$ref" : "#/components/parameters/plugin_kind" + }, { + "$ref" : "#/components/parameters/plugin_name" + }, { + "$ref" : "#/components/parameters/version_name" + } ], + "requestBody" : { + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/CreatePluginVersion_request" } } } }, - "responses": { - "200": { - "description": "Response", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/PluginVersion" + "responses" : { + "200" : { + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/PluginVersion" } } - } + }, + "description" : "Success (the plugin version was updated)" + }, + "201" : { + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/PluginVersion" + } + } + }, + "description" : "Success (the plugin version was created)" }, - "400": { - "$ref": "#/components/responses/BadRequest" + "400" : { + "$ref" : "#/components/responses/BadRequest" }, - "401": { - "$ref": "#/components/responses/RequiresAuthentication" + "401" : { + "$ref" : "#/components/responses/RequiresAuthentication" }, - "404": { - "$ref": "#/components/responses/NotFound" + "403" : { + "$ref" : "#/components/responses/Forbidden" }, - "500": { - "$ref": "#/components/responses/InternalError" + "500" : { + "$ref" : "#/components/responses/InternalError" } }, - "tags": [ - "plugins" - ] + "tags" : [ "plugins" ] } }, - "/plugins/{team_name}/{plugin_kind}/{plugin_name}/versions/{version_name}/docs": { - "get": { - "description": "List all documentation pages for a given plugin version", - "operationId": "ListPluginVersionDocs", - "parameters": [ - { - "$ref": "#/components/parameters/team_name" - }, - { - "$ref": "#/components/parameters/plugin_kind" - }, - { - "$ref": "#/components/parameters/plugin_name" - }, - { - "$ref": "#/components/parameters/version_name" - }, - { - "$ref": "#/components/parameters/page" - }, - { - "$ref": "#/components/parameters/per_page" - } - ], - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "required": [ - "items", - "metadata" - ], - "properties": { - "items": { - "items": { - "$ref": "#/components/schemas/PluginDocsPage" - }, - "type": "array" - }, - "metadata": { - "$ref": "#/components/schemas/ListMetadata" - } - } + "/plugins/{team_name}/{plugin_kind}/{plugin_name}/versions/{version_name}/docs" : { + "delete" : { + "description" : "Delete one or more plugin version docs pages.", + "operationId" : "DeletePluginVersionDocs", + "parameters" : [ { + "$ref" : "#/components/parameters/team_name" + }, { + "$ref" : "#/components/parameters/plugin_kind" + }, { + "$ref" : "#/components/parameters/plugin_name" + }, { + "$ref" : "#/components/parameters/version_name" + } ], + "requestBody" : { + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/DeletePluginVersionDocs_request" + } + } + } + }, + "responses" : { + "204" : { + "description" : "The resource was deleted successfully." + }, + "400" : { + "$ref" : "#/components/responses/BadRequest" + }, + "401" : { + "$ref" : "#/components/responses/RequiresAuthentication" + }, + "403" : { + "$ref" : "#/components/responses/Forbidden" + }, + "404" : { + "$ref" : "#/components/responses/NotFound" + }, + "422" : { + "$ref" : "#/components/responses/UnprocessableEntity" + }, + "500" : { + "$ref" : "#/components/responses/InternalError" + } + }, + "tags" : [ "plugins" ] + }, + "get" : { + "description" : "List all documentation pages for a given plugin version", + "operationId" : "ListPluginVersionDocs", + "parameters" : [ { + "$ref" : "#/components/parameters/team_name" + }, { + "$ref" : "#/components/parameters/plugin_kind" + }, { + "$ref" : "#/components/parameters/plugin_name" + }, { + "$ref" : "#/components/parameters/version_name" + }, { + "$ref" : "#/components/parameters/page" + }, { + "$ref" : "#/components/parameters/per_page" + } ], + "responses" : { + "200" : { + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/ListPluginVersionDocs_200_response" } } }, - "description": "Response" + "description" : "Response" }, - "401": { - "$ref": "#/components/responses/RequiresAuthentication" + "401" : { + "$ref" : "#/components/responses/RequiresAuthentication" }, - "404": { - "$ref": "#/components/responses/NotFound" + "404" : { + "$ref" : "#/components/responses/NotFound" }, - "500": { - "$ref": "#/components/responses/InternalError" + "500" : { + "$ref" : "#/components/responses/InternalError" } }, - "security": [], - "tags": [ - "plugins" - ] + "security" : [ ], + "tags" : [ "plugins" ] }, - "put": { - "description": "Create or update one or more plugin version docs pages", - "operationId": "CreatePluginVersionDocs", - "parameters": [ - { - "$ref": "#/components/parameters/team_name" - }, - { - "$ref": "#/components/parameters/plugin_kind" - }, - { - "$ref": "#/components/parameters/plugin_name" - }, - { - "$ref": "#/components/parameters/version_name" - } - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "type": "object", - "required": [ - "pages" - ], - "properties": { - "pages": { - "type": "array", - "items": { - "$ref": "#/components/schemas/PluginDocsPageCreate" - } - } - } + "post" : { + "description" : "Replace (override) multiple plugin version docs pages", + "operationId" : "ReplacePluginVersionDocs", + "parameters" : [ { + "$ref" : "#/components/parameters/team_name" + }, { + "$ref" : "#/components/parameters/plugin_kind" + }, { + "$ref" : "#/components/parameters/plugin_name" + }, { + "$ref" : "#/components/parameters/version_name" + } ], + "requestBody" : { + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/CreatePluginVersionDocs_request" } } } }, - "responses": { - "201": { - "description": "Successfully created or updated", - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "names": { - "type": "array", - "items": { - "$ref": "#/components/schemas/PluginDocsPageName" - } - } - } + "responses" : { + "201" : { + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/CreatePluginVersionDocs_201_response" } } - } + }, + "description" : "Successfully created or updated" }, - "400": { - "$ref": "#/components/responses/BadRequest" - }, - "401": { - "$ref": "#/components/responses/RequiresAuthentication" - }, - "403": { - "$ref": "#/components/responses/Forbidden" - }, - "404": { - "$ref": "#/components/responses/NotFound" - }, - "422": { - "$ref": "#/components/responses/UnprocessableEntity" - }, - "500": { - "$ref": "#/components/responses/InternalError" - } - }, - "tags": [ - "plugins" - ] - }, - "post": { - "description": "Replace (override) multiple plugin version docs pages", - "operationId": "ReplacePluginVersionDocs", - "parameters": [ - { - "$ref": "#/components/parameters/team_name" - }, - { - "$ref": "#/components/parameters/plugin_kind" - }, - { - "$ref": "#/components/parameters/plugin_name" - }, - { - "$ref": "#/components/parameters/version_name" - } - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "type": "object", - "required": [ - "pages" - ], - "properties": { - "pages": { - "type": "array", - "items": { - "$ref": "#/components/schemas/PluginDocsPageCreate" - } - } - } - } - } + "400" : { + "$ref" : "#/components/responses/BadRequest" + }, + "401" : { + "$ref" : "#/components/responses/RequiresAuthentication" + }, + "403" : { + "$ref" : "#/components/responses/Forbidden" + }, + "404" : { + "$ref" : "#/components/responses/NotFound" + }, + "422" : { + "$ref" : "#/components/responses/UnprocessableEntity" + }, + "500" : { + "$ref" : "#/components/responses/InternalError" } }, - "responses": { - "201": { - "description": "Successfully created or updated", - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "names": { - "type": "array", - "items": { - "$ref": "#/components/schemas/PluginDocsPageName" - } - } - } - } - } - } - }, - "400": { - "$ref": "#/components/responses/BadRequest" - }, - "401": { - "$ref": "#/components/responses/RequiresAuthentication" - }, - "403": { - "$ref": "#/components/responses/Forbidden" - }, - "404": { - "$ref": "#/components/responses/NotFound" - }, - "422": { - "$ref": "#/components/responses/UnprocessableEntity" - }, - "500": { - "$ref": "#/components/responses/InternalError" - } - }, - "tags": [ - "plugins" - ] - }, - "delete": { - "description": "Delete one or more plugin version docs pages.", - "operationId": "DeletePluginVersionDocs", - "parameters": [ - { - "$ref": "#/components/parameters/team_name" - }, - { - "$ref": "#/components/parameters/plugin_kind" - }, - { - "$ref": "#/components/parameters/plugin_name" - }, - { - "$ref": "#/components/parameters/version_name" - } - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "type": "object", - "required": [ - "names" - ], - "properties": { - "names": { - "type": "array", - "items": { - "$ref": "#/components/schemas/PluginDocsPageName" - } - } - } + "tags" : [ "plugins" ] + }, + "put" : { + "description" : "Create or update one or more plugin version docs pages", + "operationId" : "CreatePluginVersionDocs", + "parameters" : [ { + "$ref" : "#/components/parameters/team_name" + }, { + "$ref" : "#/components/parameters/plugin_kind" + }, { + "$ref" : "#/components/parameters/plugin_name" + }, { + "$ref" : "#/components/parameters/version_name" + } ], + "requestBody" : { + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/CreatePluginVersionDocs_request" } } } }, - "responses": { - "204": { - "description": "The resource was deleted successfully." + "responses" : { + "201" : { + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/CreatePluginVersionDocs_201_response" + } + } + }, + "description" : "Successfully created or updated" }, - "400": { - "$ref": "#/components/responses/BadRequest" + "400" : { + "$ref" : "#/components/responses/BadRequest" }, - "401": { - "$ref": "#/components/responses/RequiresAuthentication" + "401" : { + "$ref" : "#/components/responses/RequiresAuthentication" }, - "403": { - "$ref": "#/components/responses/Forbidden" + "403" : { + "$ref" : "#/components/responses/Forbidden" }, - "404": { - "$ref": "#/components/responses/NotFound" + "404" : { + "$ref" : "#/components/responses/NotFound" }, - "422": { - "$ref": "#/components/responses/UnprocessableEntity" + "422" : { + "$ref" : "#/components/responses/UnprocessableEntity" }, - "500": { - "$ref": "#/components/responses/InternalError" + "500" : { + "$ref" : "#/components/responses/InternalError" } }, - "tags": [ - "plugins" - ] + "tags" : [ "plugins" ] } }, - "/plugins/{team_name}/{plugin_kind}/{plugin_name}/versions/{version_name}/tables": { - "get": { - "description": "List tables for a given plugin version. This only applies to source plugins.", - "operationId": "ListPluginVersionTables", - "parameters": [ - { - "$ref": "#/components/parameters/team_name" - }, - { - "$ref": "#/components/parameters/plugin_kind" - }, - { - "$ref": "#/components/parameters/plugin_name" - }, - { - "$ref": "#/components/parameters/version_name" - }, - { - "$ref": "#/components/parameters/page" - }, - { - "$ref": "#/components/parameters/per_page" - } - ], - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "required": [ - "items", - "metadata" - ], - "properties": { - "items": { - "items": { - "$ref": "#/components/schemas/PluginTable" - }, - "type": "array" - }, - "metadata": { - "$ref": "#/components/schemas/ListMetadata" - } - } + "/plugins/{team_name}/{plugin_kind}/{plugin_name}/versions/{version_name}/tables" : { + "delete" : { + "description" : "Delete one or more plugin version tables.", + "operationId" : "DeletePluginVersionTables", + "parameters" : [ { + "$ref" : "#/components/parameters/team_name" + }, { + "$ref" : "#/components/parameters/plugin_kind" + }, { + "$ref" : "#/components/parameters/plugin_name" + }, { + "$ref" : "#/components/parameters/version_name" + } ], + "requestBody" : { + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/DeletePluginVersionTables_request" + } + } + } + }, + "responses" : { + "204" : { + "description" : "The resource was deleted successfully." + }, + "400" : { + "$ref" : "#/components/responses/BadRequest" + }, + "401" : { + "$ref" : "#/components/responses/RequiresAuthentication" + }, + "403" : { + "$ref" : "#/components/responses/Forbidden" + }, + "404" : { + "$ref" : "#/components/responses/NotFound" + }, + "422" : { + "$ref" : "#/components/responses/UnprocessableEntity" + }, + "500" : { + "$ref" : "#/components/responses/InternalError" + } + }, + "tags" : [ "plugins" ] + }, + "get" : { + "description" : "List tables for a given plugin version. This only applies to source plugins.", + "operationId" : "ListPluginVersionTables", + "parameters" : [ { + "$ref" : "#/components/parameters/team_name" + }, { + "$ref" : "#/components/parameters/plugin_kind" + }, { + "$ref" : "#/components/parameters/plugin_name" + }, { + "$ref" : "#/components/parameters/version_name" + }, { + "$ref" : "#/components/parameters/page" + }, { + "$ref" : "#/components/parameters/per_page" + } ], + "responses" : { + "200" : { + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/ListPluginVersionTables_200_response" } } }, - "description": "Response" + "description" : "Response" }, - "401": { - "$ref": "#/components/responses/RequiresAuthentication" + "401" : { + "$ref" : "#/components/responses/RequiresAuthentication" }, - "404": { - "$ref": "#/components/responses/NotFound" + "404" : { + "$ref" : "#/components/responses/NotFound" }, - "500": { - "$ref": "#/components/responses/InternalError" + "500" : { + "$ref" : "#/components/responses/InternalError" } }, - "security": [], - "tags": [ - "plugins" - ] + "security" : [ ], + "tags" : [ "plugins" ] }, - "put": { - "description": "Create or update one or more plugin version tables. This only applies to source plugins, and can only be done if the plugin version is in draft.", - "operationId": "CreatePluginVersionTables", - "parameters": [ - { - "$ref": "#/components/parameters/team_name" - }, - { - "$ref": "#/components/parameters/plugin_kind" - }, - { - "$ref": "#/components/parameters/plugin_name" - }, - { - "$ref": "#/components/parameters/version_name" - } - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "type": "object", - "required": [ - "tables" - ], - "properties": { - "tables": { - "type": "array", - "items": { - "$ref": "#/components/schemas/PluginTableCreate" - } - } - } + "put" : { + "description" : "Create or update one or more plugin version tables. This only applies to source plugins, and can only be done if the plugin version is in draft.", + "operationId" : "CreatePluginVersionTables", + "parameters" : [ { + "$ref" : "#/components/parameters/team_name" + }, { + "$ref" : "#/components/parameters/plugin_kind" + }, { + "$ref" : "#/components/parameters/plugin_name" + }, { + "$ref" : "#/components/parameters/version_name" + } ], + "requestBody" : { + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/CreatePluginVersionTables_request" } } } }, - "responses": { - "201": { - "description": "Successfully created or updated", - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "names": { - "type": "array", - "items": { - "$ref": "#/components/schemas/PluginTableName" - } - } - } - } - } - } - }, - "400": { - "$ref": "#/components/responses/BadRequest" - }, - "401": { - "$ref": "#/components/responses/RequiresAuthentication" - }, - "403": { - "$ref": "#/components/responses/Forbidden" - }, - "404": { - "$ref": "#/components/responses/NotFound" - }, - "422": { - "$ref": "#/components/responses/UnprocessableEntity" - }, - "500": { - "$ref": "#/components/responses/InternalError" - } - }, - "tags": [ - "plugins" - ] - }, - "delete": { - "description": "Delete one or more plugin version tables.", - "operationId": "DeletePluginVersionTables", - "parameters": [ - { - "$ref": "#/components/parameters/team_name" - }, - { - "$ref": "#/components/parameters/plugin_kind" - }, - { - "$ref": "#/components/parameters/plugin_name" - }, - { - "$ref": "#/components/parameters/version_name" - } - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "type": "object", - "required": [ - "names" - ], - "properties": { - "names": { - "type": "array", - "items": { - "$ref": "#/components/schemas/PluginTableName" - } - } + "responses" : { + "201" : { + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/CreatePluginVersionTables_201_response" } } - } - } - }, - "responses": { - "204": { - "description": "The resource was deleted successfully." + }, + "description" : "Successfully created or updated" }, - "400": { - "$ref": "#/components/responses/BadRequest" + "400" : { + "$ref" : "#/components/responses/BadRequest" }, - "401": { - "$ref": "#/components/responses/RequiresAuthentication" + "401" : { + "$ref" : "#/components/responses/RequiresAuthentication" }, - "403": { - "$ref": "#/components/responses/Forbidden" + "403" : { + "$ref" : "#/components/responses/Forbidden" }, - "404": { - "$ref": "#/components/responses/NotFound" + "404" : { + "$ref" : "#/components/responses/NotFound" }, - "422": { - "$ref": "#/components/responses/UnprocessableEntity" + "422" : { + "$ref" : "#/components/responses/UnprocessableEntity" }, - "500": { - "$ref": "#/components/responses/InternalError" + "500" : { + "$ref" : "#/components/responses/InternalError" } }, - "tags": [ - "plugins" - ] + "tags" : [ "plugins" ] } }, - "/plugins/{team_name}/{plugin_kind}/{plugin_name}/versions/{version_name}/tables/{table_name}": { - "get": { - "description": "Get schema for a given table and plugin version. This only applies to source plugins.", - "operationId": "GetPluginVersionTable", - "parameters": [ - { - "$ref": "#/components/parameters/team_name" - }, - { - "$ref": "#/components/parameters/plugin_kind" - }, - { - "$ref": "#/components/parameters/plugin_name" - }, - { - "$ref": "#/components/parameters/version_name" - }, - { - "in": "path", - "name": "table_name", - "required": true, - "schema": { - "type": "string" - } - } - ], - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/PluginTableDetails" + "/plugins/{team_name}/{plugin_kind}/{plugin_name}/versions/{version_name}/tables/{table_name}" : { + "get" : { + "description" : "Get schema for a given table and plugin version. This only applies to source plugins.", + "operationId" : "GetPluginVersionTable", + "parameters" : [ { + "$ref" : "#/components/parameters/team_name" + }, { + "$ref" : "#/components/parameters/plugin_kind" + }, { + "$ref" : "#/components/parameters/plugin_name" + }, { + "$ref" : "#/components/parameters/version_name" + }, { + "explode" : false, + "in" : "path", + "name" : "table_name", + "required" : true, + "schema" : { + "type" : "string" + }, + "style" : "simple" + } ], + "responses" : { + "200" : { + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/PluginTableDetails" } } }, - "description": "Response" + "description" : "Response" }, - "401": { - "$ref": "#/components/responses/RequiresAuthentication" + "401" : { + "$ref" : "#/components/responses/RequiresAuthentication" }, - "404": { - "$ref": "#/components/responses/NotFound" + "404" : { + "$ref" : "#/components/responses/NotFound" }, - "500": { - "$ref": "#/components/responses/InternalError" + "500" : { + "$ref" : "#/components/responses/InternalError" } }, - "security": [], - "tags": [ - "plugins" - ] + "security" : [ ], + "tags" : [ "plugins" ] } }, - "/plugins/{team_name}/{plugin_kind}/{plugin_name}/versions/{version_name}/assets/{target_name}": { - "get": { - "description": "Download an asset for a given plugin version and target", - "operationId": "DownloadPluginAsset", - "parameters": [ - { - "in": "header", - "name": "Accept", - "required": false, - "schema": { - "type": "string" - } - }, - { - "$ref": "#/components/parameters/team_name" - }, - { - "$ref": "#/components/parameters/plugin_kind" - }, - { - "$ref": "#/components/parameters/plugin_name" - }, - { - "$ref": "#/components/parameters/version_name" - }, - { - "$ref": "#/components/parameters/target_name" - } - ], - "responses": { - "200": { - "description": "Response", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/PluginAsset" + "/plugins/{team_name}/{plugin_kind}/{plugin_name}/versions/{version_name}/assets/{target_name}" : { + "get" : { + "description" : "Download an asset for a given plugin version and target", + "operationId" : "DownloadPluginAsset", + "parameters" : [ { + "explode" : false, + "in" : "header", + "name" : "Accept", + "required" : false, + "schema" : { + "type" : "string" + }, + "style" : "simple" + }, { + "$ref" : "#/components/parameters/team_name" + }, { + "$ref" : "#/components/parameters/plugin_kind" + }, { + "$ref" : "#/components/parameters/plugin_name" + }, { + "$ref" : "#/components/parameters/version_name" + }, { + "$ref" : "#/components/parameters/target_name" + } ], + "responses" : { + "200" : { + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/PluginAsset" } } - } - }, - "302": { - "description": "Response", - "headers": { - "Location": { - "schema": { - "type": "string" - } - } - } - }, - "401": { - "$ref": "#/components/responses/RequiresAuthentication" - }, - "404": { - "$ref": "#/components/responses/NotFound" - }, - "429": { - "$ref": "#/components/responses/TooManyRequests" - }, - "500": { - "$ref": "#/components/responses/InternalError" - } - }, - "security": [], - "tags": [ - "plugins" - ] - }, - "post": { - "description": "Get a URL to upload an asset for a given plugin version and target", - "operationId": "UploadPluginAsset", - "parameters": [ - { - "$ref": "#/components/parameters/team_name" - }, - { - "$ref": "#/components/parameters/plugin_kind" - }, - { - "$ref": "#/components/parameters/plugin_name" - }, - { - "$ref": "#/components/parameters/version_name" - }, - { - "$ref": "#/components/parameters/target_name" - } - ], - "responses": { - "201": { - "description": "Response", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ReleaseURL" + }, + "description" : "Response" + }, + "302" : { + "description" : "Response", + "headers" : { + "Location" : { + "explode" : false, + "schema" : { + "type" : "string" + }, + "style" : "simple" + } + } + }, + "401" : { + "$ref" : "#/components/responses/RequiresAuthentication" + }, + "404" : { + "$ref" : "#/components/responses/NotFound" + }, + "429" : { + "$ref" : "#/components/responses/TooManyRequests" + }, + "500" : { + "$ref" : "#/components/responses/InternalError" + } + }, + "security" : [ ], + "tags" : [ "plugins" ] + }, + "post" : { + "description" : "Get a URL to upload an asset for a given plugin version and target", + "operationId" : "UploadPluginAsset", + "parameters" : [ { + "$ref" : "#/components/parameters/team_name" + }, { + "$ref" : "#/components/parameters/plugin_kind" + }, { + "$ref" : "#/components/parameters/plugin_name" + }, { + "$ref" : "#/components/parameters/version_name" + }, { + "$ref" : "#/components/parameters/target_name" + } ], + "responses" : { + "201" : { + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/ReleaseURL" } } - } + }, + "description" : "Response" }, - "401": { - "$ref": "#/components/responses/RequiresAuthentication" + "401" : { + "$ref" : "#/components/responses/RequiresAuthentication" }, - "403": { - "$ref": "#/components/responses/Forbidden" + "403" : { + "$ref" : "#/components/responses/Forbidden" }, - "500": { - "$ref": "#/components/responses/InternalError" + "500" : { + "$ref" : "#/components/responses/InternalError" } }, - "tags": [ - "plugins" - ] + "tags" : [ "plugins" ] } }, - "/addons": { - "get": { - "description": "List all addons", - "operationId": "ListAddons", - "parameters": [ - { - "$ref": "#/components/parameters/addon_sort_by" - }, - { - "$ref": "#/components/parameters/page" - }, - { - "$ref": "#/components/parameters/per_page" - } - ], - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "required": [ - "items", - "metadata" - ], - "properties": { - "items": { - "items": { - "$ref": "#/components/schemas/ListAddon" - }, - "type": "array", - "example": [ - { - "name": "aws-policies", - "team_name": "cloudquery", - "display_name": "AWS Policies", - "category": "cloud-infrastructure", - "created_at": "2017-07-14T16:53:42Z", - "updated_at": "2017-07-14T16:53:42Z", - "homepage": "https://cloudquery.io", - "logo": "https://images.cloudquery.io/logos/aws.png", - "official": true, - "short_description": "Sync data from AWS to any destination", - "repository": "https://github.com/cloudquery/cloudquery", - "tier": "free", - "price_usd": "50", - "addon_type": "visualization", - "addon_format": "zip" - } - ] - }, - "metadata": { - "$ref": "#/components/schemas/ListMetadata" - } - } + "/addons" : { + "get" : { + "description" : "List all addons", + "operationId" : "ListAddons", + "parameters" : [ { + "$ref" : "#/components/parameters/addon_sort_by" + }, { + "$ref" : "#/components/parameters/page" + }, { + "$ref" : "#/components/parameters/per_page" + } ], + "responses" : { + "200" : { + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/ListAddons_200_response" } } }, - "description": "Response" + "description" : "Response" }, - "401": { - "$ref": "#/components/responses/RequiresAuthentication" + "401" : { + "$ref" : "#/components/responses/RequiresAuthentication" }, - "500": { - "$ref": "#/components/responses/InternalError" + "500" : { + "$ref" : "#/components/responses/InternalError" } }, - "security": [], - "tags": [ - "addons" - ] + "security" : [ ], + "tags" : [ "addons" ] }, - "post": { - "description": "Create an addon owned by the specified team. User must be part of that team.", - "operationId": "CreateAddon", - "parameters": [], - "requestBody": { - "required": true, - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/AddonCreate" + "post" : { + "description" : "Create an addon owned by the specified team. User must be part of that team.", + "operationId" : "CreateAddon", + "parameters" : [ ], + "requestBody" : { + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/AddonCreate" } } - } + }, + "required" : true }, - "responses": { - "201": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Addon" + "responses" : { + "201" : { + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/Addon" } } }, - "description": "Created" + "description" : "Created" }, - "400": { - "$ref": "#/components/responses/BadRequest" + "400" : { + "$ref" : "#/components/responses/BadRequest" }, - "403": { - "$ref": "#/components/responses/Forbidden" + "403" : { + "$ref" : "#/components/responses/Forbidden" }, - "422": { - "$ref": "#/components/responses/UnprocessableEntity" + "422" : { + "$ref" : "#/components/responses/UnprocessableEntity" }, - "500": { - "$ref": "#/components/responses/InternalError" + "500" : { + "$ref" : "#/components/responses/InternalError" } }, - "tags": [ - "addons" - ] + "tags" : [ "addons" ] } }, - "/addons/{team_name}/{addon_type}/{addon_name}": { - "get": { - "description": "Get details about a given addon.", - "operationId": "GetAddon", - "parameters": [ - { - "$ref": "#/components/parameters/team_name" - }, - { - "$ref": "#/components/parameters/addon_type" - }, - { - "$ref": "#/components/parameters/addon_name" - } - ], - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ListAddon" + "/addons/{team_name}/{addon_type}/{addon_name}" : { + "delete" : { + "description" : "Delete addon by team and addon name", + "operationId" : "DeleteAddonByTeamAndName", + "parameters" : [ { + "$ref" : "#/components/parameters/team_name" + }, { + "$ref" : "#/components/parameters/addon_type" + }, { + "$ref" : "#/components/parameters/addon_name" + } ], + "responses" : { + "204" : { + "description" : "Response" + }, + "400" : { + "$ref" : "#/components/responses/BadRequest" + }, + "401" : { + "$ref" : "#/components/responses/RequiresAuthentication" + }, + "403" : { + "$ref" : "#/components/responses/Forbidden" + }, + "404" : { + "$ref" : "#/components/responses/NotFound" + }, + "500" : { + "$ref" : "#/components/responses/InternalError" + } + }, + "tags" : [ "addons" ], + "x-internal" : true + }, + "get" : { + "description" : "Get details about a given addon.", + "operationId" : "GetAddon", + "parameters" : [ { + "$ref" : "#/components/parameters/team_name" + }, { + "$ref" : "#/components/parameters/addon_type" + }, { + "$ref" : "#/components/parameters/addon_name" + } ], + "responses" : { + "200" : { + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/ListAddon" } } }, - "description": "Response" + "description" : "Response" }, - "401": { - "$ref": "#/components/responses/RequiresAuthentication" + "401" : { + "$ref" : "#/components/responses/RequiresAuthentication" }, - "404": { - "$ref": "#/components/responses/NotFound" + "404" : { + "$ref" : "#/components/responses/NotFound" }, - "500": { - "$ref": "#/components/responses/InternalError" + "500" : { + "$ref" : "#/components/responses/InternalError" } }, - "security": [], - "tags": [ - "addons" - ] + "security" : [ ], + "tags" : [ "addons" ] }, - "patch": { - "description": "Update an Addon", - "operationId": "UpdateAddon", - "tags": [ - "addons" - ], - "parameters": [ - { - "$ref": "#/components/parameters/team_name" - }, - { - "$ref": "#/components/parameters/addon_type" - }, - { - "$ref": "#/components/parameters/addon_name" - } - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/AddonUpdate" + "patch" : { + "description" : "Update an Addon", + "operationId" : "UpdateAddon", + "parameters" : [ { + "$ref" : "#/components/parameters/team_name" + }, { + "$ref" : "#/components/parameters/addon_type" + }, { + "$ref" : "#/components/parameters/addon_name" + } ], + "requestBody" : { + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/AddonUpdate" } } } }, - "responses": { - "200": { - "description": "Updated", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Addon" + "responses" : { + "200" : { + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/Addon" } } - } - }, - "400": { - "$ref": "#/components/responses/BadRequest" - }, - "403": { - "$ref": "#/components/responses/Forbidden" - }, - "404": { - "$ref": "#/components/responses/NotFound" - }, - "422": { - "$ref": "#/components/responses/UnprocessableEntity" - }, - "500": { - "$ref": "#/components/responses/InternalError" - } - } - }, - "delete": { - "description": "Delete addon by team and addon name", - "operationId": "DeleteAddonByTeamAndName", - "x-internal": true, - "parameters": [ - { - "$ref": "#/components/parameters/team_name" - }, - { - "$ref": "#/components/parameters/addon_type" - }, - { - "$ref": "#/components/parameters/addon_name" - } - ], - "responses": { - "204": { - "description": "Response" + }, + "description" : "Updated" }, - "400": { - "$ref": "#/components/responses/BadRequest" + "400" : { + "$ref" : "#/components/responses/BadRequest" }, - "401": { - "$ref": "#/components/responses/RequiresAuthentication" + "403" : { + "$ref" : "#/components/responses/Forbidden" }, - "403": { - "$ref": "#/components/responses/Forbidden" + "404" : { + "$ref" : "#/components/responses/NotFound" }, - "404": { - "$ref": "#/components/responses/NotFound" + "422" : { + "$ref" : "#/components/responses/UnprocessableEntity" }, - "500": { - "$ref": "#/components/responses/InternalError" + "500" : { + "$ref" : "#/components/responses/InternalError" } }, - "tags": [ - "addons" - ] + "tags" : [ "addons" ] } }, - "/addons/{team_name}/{addon_type}/{addon_name}/versions": { - "get": { - "description": "List all versions for a given addon", - "operationId": "ListAddonVersions", - "parameters": [ - { - "$ref": "#/components/parameters/team_name" - }, - { - "$ref": "#/components/parameters/addon_type" - }, - { - "$ref": "#/components/parameters/addon_name" - }, - { - "$ref": "#/components/parameters/version_sort_by" - }, - { - "$ref": "#/components/parameters/page" - }, - { - "$ref": "#/components/parameters/per_page" - }, - { - "$ref": "#/components/parameters/include_drafts" - } - ], - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "required": [ - "items", - "metadata" - ], - "properties": { - "items": { - "items": { - "$ref": "#/components/schemas/AddonVersion" - }, - "type": "array" - }, - "metadata": { - "$ref": "#/components/schemas/ListMetadata" - } - } + "/addons/{team_name}/{addon_type}/{addon_name}/versions" : { + "get" : { + "description" : "List all versions for a given addon", + "operationId" : "ListAddonVersions", + "parameters" : [ { + "$ref" : "#/components/parameters/team_name" + }, { + "$ref" : "#/components/parameters/addon_type" + }, { + "$ref" : "#/components/parameters/addon_name" + }, { + "$ref" : "#/components/parameters/version_sort_by" + }, { + "$ref" : "#/components/parameters/page" + }, { + "$ref" : "#/components/parameters/per_page" + }, { + "$ref" : "#/components/parameters/include_drafts" + } ], + "responses" : { + "200" : { + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/ListAddonVersions_200_response" } } }, - "description": "Response" + "description" : "Response" }, - "401": { - "$ref": "#/components/responses/RequiresAuthentication" + "401" : { + "$ref" : "#/components/responses/RequiresAuthentication" }, - "403": { - "$ref": "#/components/responses/Forbidden" + "403" : { + "$ref" : "#/components/responses/Forbidden" }, - "404": { - "$ref": "#/components/responses/NotFound" + "404" : { + "$ref" : "#/components/responses/NotFound" }, - "500": { - "$ref": "#/components/responses/InternalError" + "500" : { + "$ref" : "#/components/responses/InternalError" } }, - "security": [], - "tags": [ - "addons" - ] + "security" : [ ], + "tags" : [ "addons" ] } }, - "/addons/{team_name}/{addon_type}/{addon_name}/versions/{version_name}": { - "get": { - "description": "Get details about a given addon version.", - "operationId": "GetAddonVersion", - "parameters": [ - { - "$ref": "#/components/parameters/team_name" - }, - { - "$ref": "#/components/parameters/addon_type" - }, - { - "$ref": "#/components/parameters/addon_name" - }, - { - "$ref": "#/components/parameters/version_name" - } - ], - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/AddonVersion" + "/addons/{team_name}/{addon_type}/{addon_name}/versions/{version_name}" : { + "get" : { + "description" : "Get details about a given addon version.", + "operationId" : "GetAddonVersion", + "parameters" : [ { + "$ref" : "#/components/parameters/team_name" + }, { + "$ref" : "#/components/parameters/addon_type" + }, { + "$ref" : "#/components/parameters/addon_name" + }, { + "$ref" : "#/components/parameters/version_name" + } ], + "responses" : { + "200" : { + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/AddonVersion" } } }, - "description": "Response" - }, - "401": { - "$ref": "#/components/responses/RequiresAuthentication" - }, - "403": { - "$ref": "#/components/responses/Forbidden" - }, - "404": { - "$ref": "#/components/responses/NotFound" - }, - "500": { - "$ref": "#/components/responses/InternalError" - } - }, - "security": [], - "tags": [ - "addons" - ] - }, - "put": { - "description": "Create a new addon version, or update a draft version", - "operationId": "CreateAddonVersion", - "parameters": [ - { - "$ref": "#/components/parameters/team_name" - }, - { - "$ref": "#/components/parameters/addon_type" - }, - { - "$ref": "#/components/parameters/addon_name" - }, - { - "$ref": "#/components/parameters/version_name" - } - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "type": "object", - "required": [ - "message", - "doc", - "checksum" - ], - "properties": { - "message": { - "type": "string", - "minLength": 1, - "maxLength": 30000, - "description": "A message describing what's new or changed in this version.\nThis message will be displayed to users in the addon's changelog.\nSupports limited markdown syntax.\n" - }, - "doc": { - "type": "string", - "description": "Main README in MD format" - }, - "plugin_deps": { - "type": "array", - "items": { - "type": "string" - }, - "description": "plugin dependencies in the format of ['team_name/kind/plugin_name@version']" - }, - "addon_deps": { - "type": "array", - "items": { - "type": "string" - }, - "description": "addon dependencies in the format of ['team_name/type/addon_name@version']" - }, - "checksum": { - "type": "string", - "description": "SHA-256 checksum for the addon asset" - } - } - } - } + "description" : "Response" + }, + "401" : { + "$ref" : "#/components/responses/RequiresAuthentication" + }, + "403" : { + "$ref" : "#/components/responses/Forbidden" + }, + "404" : { + "$ref" : "#/components/responses/NotFound" + }, + "500" : { + "$ref" : "#/components/responses/InternalError" } }, - "responses": { - "200": { - "description": "Response", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/AddonVersion" - } + "security" : [ ], + "tags" : [ "addons" ] + }, + "patch" : { + "description" : "Update a given addon version", + "operationId" : "UpdateAddonVersion", + "parameters" : [ { + "$ref" : "#/components/parameters/team_name" + }, { + "$ref" : "#/components/parameters/addon_type" + }, { + "$ref" : "#/components/parameters/addon_name" + }, { + "$ref" : "#/components/parameters/version_name" + } ], + "requestBody" : { + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/AddonVersionUpdate" } } - }, - "201": { - "description": "Success (the addon version was created)", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/AddonVersion" + } + }, + "responses" : { + "200" : { + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/AddonVersion" } } - } + }, + "description" : "Response" }, - "400": { - "$ref": "#/components/responses/BadRequest" + "400" : { + "$ref" : "#/components/responses/BadRequest" }, - "401": { - "$ref": "#/components/responses/RequiresAuthentication" + "401" : { + "$ref" : "#/components/responses/RequiresAuthentication" }, - "403": { - "$ref": "#/components/responses/Forbidden" + "403" : { + "$ref" : "#/components/responses/Forbidden" }, - "404": { - "$ref": "#/components/responses/NotFound" + "404" : { + "$ref" : "#/components/responses/NotFound" }, - "500": { - "$ref": "#/components/responses/InternalError" + "500" : { + "$ref" : "#/components/responses/InternalError" } }, - "tags": [ - "addons" - ] + "tags" : [ "addons" ] }, - "patch": { - "description": "Update a given addon version", - "operationId": "UpdateAddonVersion", - "parameters": [ - { - "$ref": "#/components/parameters/team_name" - }, - { - "$ref": "#/components/parameters/addon_type" - }, - { - "$ref": "#/components/parameters/addon_name" - }, - { - "$ref": "#/components/parameters/version_name" - } - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/AddonVersionUpdate" + "put" : { + "description" : "Create a new addon version, or update a draft version", + "operationId" : "CreateAddonVersion", + "parameters" : [ { + "$ref" : "#/components/parameters/team_name" + }, { + "$ref" : "#/components/parameters/addon_type" + }, { + "$ref" : "#/components/parameters/addon_name" + }, { + "$ref" : "#/components/parameters/version_name" + } ], + "requestBody" : { + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/CreateAddonVersion_request" } } } }, - "responses": { - "200": { - "description": "Response", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/AddonVersion" + "responses" : { + "200" : { + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/AddonVersion" } } - } + }, + "description" : "Response" + }, + "201" : { + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/AddonVersion" + } + } + }, + "description" : "Success (the addon version was created)" }, - "400": { - "$ref": "#/components/responses/BadRequest" + "400" : { + "$ref" : "#/components/responses/BadRequest" }, - "401": { - "$ref": "#/components/responses/RequiresAuthentication" + "401" : { + "$ref" : "#/components/responses/RequiresAuthentication" }, - "403": { - "$ref": "#/components/responses/Forbidden" + "403" : { + "$ref" : "#/components/responses/Forbidden" }, - "404": { - "$ref": "#/components/responses/NotFound" + "404" : { + "$ref" : "#/components/responses/NotFound" }, - "500": { - "$ref": "#/components/responses/InternalError" + "500" : { + "$ref" : "#/components/responses/InternalError" } }, - "tags": [ - "addons" - ] + "tags" : [ "addons" ] } }, - "/addons/{team_name}/{addon_type}/{addon_name}/versions/{version_name}/assets": { - "get": { - "description": "Download an asset for a given version", - "operationId": "DownloadAddonAsset", - "parameters": [ - { - "in": "header", - "name": "Accept", - "required": false, - "schema": { - "type": "string" - } - }, - { - "$ref": "#/components/parameters/team_name" - }, - { - "$ref": "#/components/parameters/addon_type" - }, - { - "$ref": "#/components/parameters/addon_name" - }, - { - "$ref": "#/components/parameters/version_name" - } - ], - "responses": { - "200": { - "description": "Response", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/AddonAsset" + "/addons/{team_name}/{addon_type}/{addon_name}/versions/{version_name}/assets" : { + "get" : { + "description" : "Download an asset for a given version", + "operationId" : "DownloadAddonAsset", + "parameters" : [ { + "explode" : false, + "in" : "header", + "name" : "Accept", + "required" : false, + "schema" : { + "type" : "string" + }, + "style" : "simple" + }, { + "$ref" : "#/components/parameters/team_name" + }, { + "$ref" : "#/components/parameters/addon_type" + }, { + "$ref" : "#/components/parameters/addon_name" + }, { + "$ref" : "#/components/parameters/version_name" + } ], + "responses" : { + "200" : { + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/AddonAsset" } } - } - }, - "302": { - "description": "Response", - "headers": { - "Location": { - "schema": { - "type": "string" - } + }, + "description" : "Response" + }, + "302" : { + "description" : "Response", + "headers" : { + "Location" : { + "explode" : false, + "schema" : { + "type" : "string" + }, + "style" : "simple" } } }, - "401": { - "$ref": "#/components/responses/RequiresAuthentication" + "401" : { + "$ref" : "#/components/responses/RequiresAuthentication" }, - "403": { - "$ref": "#/components/responses/Forbidden" + "403" : { + "$ref" : "#/components/responses/Forbidden" }, - "404": { - "$ref": "#/components/responses/NotFound" + "404" : { + "$ref" : "#/components/responses/NotFound" }, - "429": { - "$ref": "#/components/responses/TooManyRequests" + "429" : { + "$ref" : "#/components/responses/TooManyRequests" }, - "500": { - "$ref": "#/components/responses/InternalError" + "500" : { + "$ref" : "#/components/responses/InternalError" } }, - "tags": [ - "addons" - ] + "tags" : [ "addons" ] }, - "post": { - "description": "Get a URL to upload an asset for a given addon version", - "operationId": "UploadAddonAsset", - "parameters": [ - { - "$ref": "#/components/parameters/team_name" - }, - { - "$ref": "#/components/parameters/addon_type" - }, - { - "$ref": "#/components/parameters/addon_name" - }, - { - "$ref": "#/components/parameters/version_name" - } - ], - "responses": { - "201": { - "description": "Response", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ReleaseURL" + "post" : { + "description" : "Get a URL to upload an asset for a given addon version", + "operationId" : "UploadAddonAsset", + "parameters" : [ { + "$ref" : "#/components/parameters/team_name" + }, { + "$ref" : "#/components/parameters/addon_type" + }, { + "$ref" : "#/components/parameters/addon_name" + }, { + "$ref" : "#/components/parameters/version_name" + } ], + "responses" : { + "201" : { + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/ReleaseURL" } } - } + }, + "description" : "Response" }, - "401": { - "$ref": "#/components/responses/RequiresAuthentication" + "401" : { + "$ref" : "#/components/responses/RequiresAuthentication" }, - "403": { - "$ref": "#/components/responses/Forbidden" + "403" : { + "$ref" : "#/components/responses/Forbidden" }, - "500": { - "$ref": "#/components/responses/InternalError" + "500" : { + "$ref" : "#/components/responses/InternalError" } }, - "tags": [ - "addons" - ] + "tags" : [ "addons" ] } }, - "/teams": { - "get": { - "description": "List all teams", - "operationId": "ListTeams", - "parameters": [ - { - "$ref": "#/components/parameters/per_page" - }, - { - "$ref": "#/components/parameters/page" - } - ], - "responses": { - "200": { - "description": "Response", - "content": { - "application/json": { - "schema": { - "required": [ - "items", - "metadata" - ], - "properties": { - "items": { - "items": { - "$ref": "#/components/schemas/Team" - }, - "type": "array" - }, - "metadata": { - "$ref": "#/components/schemas/ListMetadata" - } - } + "/teams" : { + "get" : { + "description" : "List all teams", + "operationId" : "ListTeams", + "parameters" : [ { + "$ref" : "#/components/parameters/per_page" + }, { + "$ref" : "#/components/parameters/page" + } ], + "responses" : { + "200" : { + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/ListTeams_200_response" } } - } + }, + "description" : "Response" }, - "401": { - "$ref": "#/components/responses/RequiresAuthentication" - }, - "403": { - "$ref": "#/components/responses/Forbidden" - }, - "404": { - "$ref": "#/components/responses/NotFound" - }, - "500": { - "$ref": "#/components/responses/InternalError" - } - }, - "tags": [ - "teams" - ] - }, - "post": { - "description": "Create a team owned by the current user.", - "operationId": "CreateTeam", - "parameters": [], - "requestBody": { - "content": { - "application/json": { - "schema": { - "type": "object", - "additionalProperties": false, - "required": [ - "name", - "display_name" - ], - "properties": { - "name": { - "$ref": "#/components/schemas/TeamName" - }, - "display_name": { - "type": "string", - "description": "The team's display name", - "minLength": 1, - "maxLength": 255 - } - } + "401" : { + "$ref" : "#/components/responses/RequiresAuthentication" + }, + "403" : { + "$ref" : "#/components/responses/Forbidden" + }, + "404" : { + "$ref" : "#/components/responses/NotFound" + }, + "500" : { + "$ref" : "#/components/responses/InternalError" + } + }, + "tags" : [ "teams" ] + }, + "post" : { + "description" : "Create a team owned by the current user.", + "operationId" : "CreateTeam", + "parameters" : [ ], + "requestBody" : { + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/CreateTeam_request" } } } }, - "responses": { - "201": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Team" + "responses" : { + "201" : { + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/Team" } } }, - "description": "Created" + "description" : "Created" }, - "400": { - "$ref": "#/components/responses/BadRequest" + "400" : { + "$ref" : "#/components/responses/BadRequest" }, - "401": { - "$ref": "#/components/responses/RequiresAuthentication" + "401" : { + "$ref" : "#/components/responses/RequiresAuthentication" }, - "403": { - "$ref": "#/components/responses/Forbidden" + "403" : { + "$ref" : "#/components/responses/Forbidden" }, - "422": { - "$ref": "#/components/responses/UnprocessableEntity" + "422" : { + "$ref" : "#/components/responses/UnprocessableEntity" }, - "500": { - "$ref": "#/components/responses/InternalError" + "500" : { + "$ref" : "#/components/responses/InternalError" } }, - "tags": [ - "teams" - ] + "tags" : [ "teams" ] } }, - "/teams/{team_name}": { - "get": { - "description": "Get a team by name", - "operationId": "GetTeamByName", - "parameters": [ - { - "$ref": "#/components/parameters/team_name" - } - ], - "responses": { - "200": { - "description": "Response", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Team" - } - } - } - }, - "400": { - "$ref": "#/components/responses/BadRequest" - }, - "401": { - "$ref": "#/components/responses/RequiresAuthentication" - }, - "403": { - "$ref": "#/components/responses/Forbidden" - }, - "404": { - "$ref": "#/components/responses/NotFound" - }, - "500": { - "$ref": "#/components/responses/InternalError" - } - }, - "tags": [ - "teams" - ] - }, - "patch": { - "description": "Update team attributes", - "operationId": "UpdateTeam", - "parameters": [ - { - "$ref": "#/components/parameters/team_name" - } - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "type": "object", - "additionalProperties": false, - "properties": { - "display_name": { - "type": "string", - "description": "The team's display name" - } - } - } - } - } - }, - "responses": { - "200": { - "description": "Response", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Team" + "/teams/{team_name}" : { + "delete" : { + "description" : "Delete team", + "operationId" : "DeleteTeam", + "parameters" : [ { + "$ref" : "#/components/parameters/team_name" + } ], + "responses" : { + "204" : { + "description" : "Response" + }, + "400" : { + "$ref" : "#/components/responses/BadRequest" + }, + "401" : { + "$ref" : "#/components/responses/RequiresAuthentication" + }, + "403" : { + "$ref" : "#/components/responses/Forbidden" + }, + "404" : { + "$ref" : "#/components/responses/NotFound" + }, + "422" : { + "$ref" : "#/components/responses/UnprocessableEntity" + }, + "500" : { + "$ref" : "#/components/responses/InternalError" + } + }, + "tags" : [ "teams" ], + "x-internal" : true + }, + "get" : { + "description" : "Get a team by name", + "operationId" : "GetTeamByName", + "parameters" : [ { + "$ref" : "#/components/parameters/team_name" + } ], + "responses" : { + "200" : { + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/Team" } } - } + }, + "description" : "Response" }, - "400": { - "$ref": "#/components/responses/BadRequest" + "400" : { + "$ref" : "#/components/responses/BadRequest" }, - "401": { - "$ref": "#/components/responses/RequiresAuthentication" + "401" : { + "$ref" : "#/components/responses/RequiresAuthentication" }, - "403": { - "$ref": "#/components/responses/Forbidden" + "403" : { + "$ref" : "#/components/responses/Forbidden" }, - "404": { - "$ref": "#/components/responses/NotFound" + "404" : { + "$ref" : "#/components/responses/NotFound" }, - "500": { - "$ref": "#/components/responses/InternalError" + "500" : { + "$ref" : "#/components/responses/InternalError" } }, - "tags": [ - "teams" - ] + "tags" : [ "teams" ] }, - "delete": { - "description": "Delete team", - "operationId": "DeleteTeam", - "parameters": [ - { - "$ref": "#/components/parameters/team_name" + "patch" : { + "description" : "Update team attributes", + "operationId" : "UpdateTeam", + "parameters" : [ { + "$ref" : "#/components/parameters/team_name" + } ], + "requestBody" : { + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/UpdateTeam_request" + } + } } - ], - "x-internal": true, - "responses": { - "204": { - "description": "Response" - }, - "400": { - "$ref": "#/components/responses/BadRequest" + }, + "responses" : { + "200" : { + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/Team" + } + } + }, + "description" : "Response" }, - "401": { - "$ref": "#/components/responses/RequiresAuthentication" + "400" : { + "$ref" : "#/components/responses/BadRequest" }, - "403": { - "$ref": "#/components/responses/Forbidden" + "401" : { + "$ref" : "#/components/responses/RequiresAuthentication" }, - "404": { - "$ref": "#/components/responses/NotFound" + "403" : { + "$ref" : "#/components/responses/Forbidden" }, - "422": { - "$ref": "#/components/responses/UnprocessableEntity" + "404" : { + "$ref" : "#/components/responses/NotFound" }, - "500": { - "$ref": "#/components/responses/InternalError" + "500" : { + "$ref" : "#/components/responses/InternalError" } }, - "tags": [ - "teams" - ] + "tags" : [ "teams" ] } }, - "/teams/{team_name}/images": { - "post": { - "description": "Get URLs to upload images for a given team", - "operationId": "CreateTeamImages", - "parameters": [ - { - "$ref": "#/components/parameters/team_name" - } - ], - "requestBody": { - "required": true, - "content": { - "application/json": { - "schema": { - "type": "object", - "required": [ - "images" - ], - "properties": { - "images": { - "items": { - "$ref": "#/components/schemas/TeamImageCreate" - }, - "type": "array", - "minItems": 1 - } - } - } - } - } - }, - "responses": { - "201": { - "description": "Response", - "content": { - "application/json": { - "schema": { - "required": [ - "items", - "metadata" - ], - "properties": { - "items": { - "items": { - "$ref": "#/components/schemas/TeamImage" - }, - "type": "array" - }, - "metadata": { - "$ref": "#/components/schemas/ListMetadata" - } - } + "/teams/{team_name}/images" : { + "post" : { + "description" : "Get URLs to upload images for a given team", + "operationId" : "CreateTeamImages", + "parameters" : [ { + "$ref" : "#/components/parameters/team_name" + } ], + "requestBody" : { + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/CreateTeamImages_request" + } + } + }, + "required" : true + }, + "responses" : { + "201" : { + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/CreateTeamImages_201_response" } } - } + }, + "description" : "Response" }, - "401": { - "$ref": "#/components/responses/RequiresAuthentication" + "401" : { + "$ref" : "#/components/responses/RequiresAuthentication" }, - "403": { - "$ref": "#/components/responses/Forbidden" + "403" : { + "$ref" : "#/components/responses/Forbidden" }, - "404": { - "$ref": "#/components/responses/NotFound" + "404" : { + "$ref" : "#/components/responses/NotFound" }, - "500": { - "$ref": "#/components/responses/InternalError" + "500" : { + "$ref" : "#/components/responses/InternalError" } }, - "tags": [ - "teams" - ] + "tags" : [ "teams" ] } }, - "/teams/{team_name}/plugins": { - "get": { - "description": "List all plugins for the team.", - "operationId": "ListPluginsByTeam", - "parameters": [ - { - "$ref": "#/components/parameters/team_name" - }, - { - "$ref": "#/components/parameters/page" - }, - { - "$ref": "#/components/parameters/per_page" - }, - { - "$ref": "#/components/parameters/include_private" - } - ], - "responses": { - "200": { - "description": "Response", - "content": { - "application/json": { - "schema": { - "required": [ - "items", - "metadata" - ], - "properties": { - "items": { - "items": { - "$ref": "#/components/schemas/Plugin" - }, - "type": "array", - "example": [ - { - "name": "aws-source", - "kind": "source", - "team_name": "cloudquery", - "display_name": "AWS Source Plugin", - "category": "cloud-infrastructure", - "created_at": "2017-07-14T16:53:42Z", - "updated_at": "2017-07-14T16:53:42Z", - "homepage": "https://cloudquery.io", - "logo": "https://images.cloudquery.io/logos/aws.png", - "official": true, - "short_description": "Sync data from AWS to any destination", - "repository": "https://github.com/cloudquery/cloudquery", - "tier": "paid", - "usd_per_row": "0.00123", - "free_rows_per_month": 10000, - "release_stage": "preview" - } - ] - }, - "metadata": { - "$ref": "#/components/schemas/ListMetadata" - } - } + "/teams/{team_name}/plugins" : { + "delete" : { + "description" : "Delete plugins by team", + "operationId" : "DeletePluginsByTeam", + "parameters" : [ { + "$ref" : "#/components/parameters/team_name" + } ], + "responses" : { + "204" : { + "description" : "Response" + }, + "400" : { + "$ref" : "#/components/responses/BadRequest" + }, + "401" : { + "$ref" : "#/components/responses/RequiresAuthentication" + }, + "403" : { + "$ref" : "#/components/responses/Forbidden" + }, + "404" : { + "$ref" : "#/components/responses/NotFound" + }, + "500" : { + "$ref" : "#/components/responses/InternalError" + } + }, + "tags" : [ "teams" ], + "x-internal" : true + }, + "get" : { + "description" : "List all plugins for the team.", + "operationId" : "ListPluginsByTeam", + "parameters" : [ { + "$ref" : "#/components/parameters/team_name" + }, { + "$ref" : "#/components/parameters/page" + }, { + "$ref" : "#/components/parameters/per_page" + }, { + "$ref" : "#/components/parameters/include_private" + } ], + "responses" : { + "200" : { + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/ListPluginsByTeam_200_response" } } - } + }, + "description" : "Response" }, - "401": { - "$ref": "#/components/responses/RequiresAuthentication" + "401" : { + "$ref" : "#/components/responses/RequiresAuthentication" }, - "403": { - "$ref": "#/components/responses/Forbidden" + "403" : { + "$ref" : "#/components/responses/Forbidden" }, - "404": { - "$ref": "#/components/responses/NotFound" + "404" : { + "$ref" : "#/components/responses/NotFound" }, - "500": { - "$ref": "#/components/responses/InternalError" + "500" : { + "$ref" : "#/components/responses/InternalError" } }, - "tags": [ - "plugins" - ] - }, - "delete": { - "description": "Delete plugins by team", - "operationId": "DeletePluginsByTeam", - "x-internal": true, - "parameters": [ - { - "$ref": "#/components/parameters/team_name" - } - ], - "responses": { - "204": { - "description": "Response" - }, - "400": { - "$ref": "#/components/responses/BadRequest" + "tags" : [ "plugins" ] + } + }, + "/teams/{team_name}/addons" : { + "delete" : { + "description" : "Delete addons by team", + "operationId" : "DeleteAddonsByTeam", + "parameters" : [ { + "$ref" : "#/components/parameters/team_name" + } ], + "responses" : { + "204" : { + "description" : "Response" + }, + "400" : { + "$ref" : "#/components/responses/BadRequest" + }, + "401" : { + "$ref" : "#/components/responses/RequiresAuthentication" + }, + "403" : { + "$ref" : "#/components/responses/Forbidden" + }, + "404" : { + "$ref" : "#/components/responses/NotFound" + }, + "500" : { + "$ref" : "#/components/responses/InternalError" + } + }, + "tags" : [ "addons" ], + "x-internal" : true + }, + "get" : { + "description" : "List all addons for the team.", + "operationId" : "ListAddonsByTeam", + "parameters" : [ { + "$ref" : "#/components/parameters/team_name" + }, { + "$ref" : "#/components/parameters/page" + }, { + "$ref" : "#/components/parameters/per_page" + }, { + "$ref" : "#/components/parameters/include_private" + } ], + "responses" : { + "200" : { + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/ListAddonsByTeam_200_response" + } + } + }, + "description" : "Response" }, - "401": { - "$ref": "#/components/responses/RequiresAuthentication" + "401" : { + "$ref" : "#/components/responses/RequiresAuthentication" }, - "403": { - "$ref": "#/components/responses/Forbidden" + "403" : { + "$ref" : "#/components/responses/Forbidden" }, - "404": { - "$ref": "#/components/responses/NotFound" + "404" : { + "$ref" : "#/components/responses/NotFound" }, - "500": { - "$ref": "#/components/responses/InternalError" + "500" : { + "$ref" : "#/components/responses/InternalError" } }, - "tags": [ - "teams" - ] + "tags" : [ "addons" ] } }, - "/teams/{team_name}/addons": { - "get": { - "description": "List all addons for the team.", - "operationId": "ListAddonsByTeam", - "parameters": [ - { - "$ref": "#/components/parameters/team_name" - }, - { - "$ref": "#/components/parameters/page" - }, - { - "$ref": "#/components/parameters/per_page" - }, - { - "$ref": "#/components/parameters/include_private" - } - ], - "responses": { - "200": { - "description": "Response", - "content": { - "application/json": { - "schema": { - "required": [ - "items", - "metadata" - ], - "properties": { - "items": { - "items": { - "$ref": "#/components/schemas/Addon" - }, - "type": "array", - "example": [ - { - "name": "aws-policies", - "team_name": "cloudquery", - "display_name": "AWS Policies", - "category": "cloud-infrastructure", - "created_at": "2017-07-14T16:53:42Z", - "updated_at": "2017-07-14T16:53:42Z", - "homepage": "https://cloudquery.io", - "logo": "https://images.cloudquery.io/logos/aws.png", - "official": true, - "short_description": "AWS policies", - "repository": "https://github.com/cloudquery/cloudquery", - "tier": "paid", - "price_usd": "50", - "addon_type": "visualization", - "addon_format": "zip" - } - ] - }, - "metadata": { - "$ref": "#/components/schemas/ListMetadata" - } - } + "/teams/{team_name}/addon-orders" : { + "get" : { + "description" : "List all addon orders for the team.", + "operationId" : "ListAddonOrdersByTeam", + "parameters" : [ { + "$ref" : "#/components/parameters/team_name" + }, { + "$ref" : "#/components/parameters/page" + }, { + "$ref" : "#/components/parameters/per_page" + } ], + "responses" : { + "200" : { + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/ListAddonOrdersByTeam_200_response" } } - } + }, + "description" : "Response" }, - "401": { - "$ref": "#/components/responses/RequiresAuthentication" + "401" : { + "$ref" : "#/components/responses/RequiresAuthentication" }, - "403": { - "$ref": "#/components/responses/Forbidden" + "403" : { + "$ref" : "#/components/responses/Forbidden" }, - "404": { - "$ref": "#/components/responses/NotFound" + "404" : { + "$ref" : "#/components/responses/NotFound" }, - "500": { - "$ref": "#/components/responses/InternalError" + "500" : { + "$ref" : "#/components/responses/InternalError" } }, - "tags": [ - "addons" - ] + "tags" : [ "addons" ] }, - "delete": { - "description": "Delete addons by team", - "operationId": "DeleteAddonsByTeam", - "x-internal": true, - "parameters": [ - { - "$ref": "#/components/parameters/team_name" - } - ], - "responses": { - "204": { - "description": "Response" - }, - "400": { - "$ref": "#/components/responses/BadRequest" - }, - "401": { - "$ref": "#/components/responses/RequiresAuthentication" - }, - "403": { - "$ref": "#/components/responses/Forbidden" - }, - "404": { - "$ref": "#/components/responses/NotFound" - }, - "500": { - "$ref": "#/components/responses/InternalError" - } - }, - "tags": [ - "addons" - ] - } - }, - "/teams/{team_name}/addon-orders": { - "get": { - "description": "List all addon orders for the team.", - "operationId": "ListAddonOrdersByTeam", - "parameters": [ - { - "$ref": "#/components/parameters/team_name" - }, - { - "$ref": "#/components/parameters/page" - }, - { - "$ref": "#/components/parameters/per_page" - } - ], - "responses": { - "200": { - "description": "Response", - "content": { - "application/json": { - "schema": { - "required": [ - "items", - "metadata" - ], - "properties": { - "items": { - "items": { - "$ref": "#/components/schemas/AddonOrder" - }, - "type": "array" - }, - "metadata": { - "$ref": "#/components/schemas/ListMetadata" - } - } - } + "post" : { + "description" : "Start the checkout process for an addon order.", + "operationId" : "CreateAddonOrderForTeam", + "parameters" : [ { + "$ref" : "#/components/parameters/team_name" + } ], + "requestBody" : { + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/AddonOrderCreate" } } }, - "401": { - "$ref": "#/components/responses/RequiresAuthentication" - }, - "403": { - "$ref": "#/components/responses/Forbidden" - }, - "404": { - "$ref": "#/components/responses/NotFound" - }, - "500": { - "$ref": "#/components/responses/InternalError" - } - }, - "tags": [ - "addons" - ] - }, - "post": { - "description": "Start the checkout process for an addon order.", - "operationId": "CreateAddonOrderForTeam", - "parameters": [ - { - "$ref": "#/components/parameters/team_name" - } - ], - "requestBody": { - "required": true, - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/AddonOrderCreate" - } - } - } + "required" : true }, - "responses": { - "201": { - "description": "Response", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/AddonOrder" + "responses" : { + "201" : { + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/AddonOrder" } } - } + }, + "description" : "Response" }, - "400": { - "$ref": "#/components/responses/BadRequest" + "400" : { + "$ref" : "#/components/responses/BadRequest" }, - "401": { - "$ref": "#/components/responses/RequiresAuthentication" + "401" : { + "$ref" : "#/components/responses/RequiresAuthentication" }, - "404": { - "$ref": "#/components/responses/NotFound" + "404" : { + "$ref" : "#/components/responses/NotFound" }, - "500": { - "$ref": "#/components/responses/InternalError" + "500" : { + "$ref" : "#/components/responses/InternalError" } }, - "tags": [ - "addons" - ] + "tags" : [ "addons" ] } }, - "/teams/{team_name}/addon-orders/{addon_order_id}": { - "get": { - "description": "Get an addon order for the team.", - "operationId": "GetAddonOrderByTeam", - "parameters": [ - { - "$ref": "#/components/parameters/team_name" - }, - { - "$ref": "#/components/parameters/addon_order_id" - } - ], - "responses": { - "200": { - "description": "Response", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/AddonOrder" + "/teams/{team_name}/addon-orders/{addon_order_id}" : { + "get" : { + "description" : "Get an addon order for the team.", + "operationId" : "GetAddonOrderByTeam", + "parameters" : [ { + "$ref" : "#/components/parameters/team_name" + }, { + "$ref" : "#/components/parameters/addon_order_id" + } ], + "responses" : { + "200" : { + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/AddonOrder" } } - } + }, + "description" : "Response" }, - "401": { - "$ref": "#/components/responses/RequiresAuthentication" + "401" : { + "$ref" : "#/components/responses/RequiresAuthentication" }, - "403": { - "$ref": "#/components/responses/Forbidden" + "403" : { + "$ref" : "#/components/responses/Forbidden" }, - "404": { - "$ref": "#/components/responses/NotFound" + "404" : { + "$ref" : "#/components/responses/NotFound" }, - "500": { - "$ref": "#/components/responses/InternalError" + "500" : { + "$ref" : "#/components/responses/InternalError" } }, - "tags": [ - "addons" - ] + "tags" : [ "addons" ] } }, - "/teams/{team_name}/memberships": { - "get": { - "description": "Get memberships to the team.", - "operationId": "GetTeamMemberships", - "parameters": [ - { - "$ref": "#/components/parameters/team_name" - }, - { - "$ref": "#/components/parameters/page" - }, - { - "$ref": "#/components/parameters/per_page" - } - ], - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "required": [ - "items", - "metadata" - ], - "properties": { - "items": { - "items": { - "$ref": "#/components/schemas/MembershipWithUser" - }, - "type": "array", - "example": [ - { - "role": "admin", - "user": { - "created_at": "2017-07-14T16:53:42Z", - "email": "user@clouduery.io", - "id": "12345678-1234-1234-1234-1234567890ab", - "name": "user", - "updated_at": "2017-07-14T16:53:42Z" - } - } - ] - }, - "metadata": { - "$ref": "#/components/schemas/ListMetadata" - } - } + "/teams/{team_name}/memberships" : { + "get" : { + "description" : "Get memberships to the team.", + "operationId" : "GetTeamMemberships", + "parameters" : [ { + "$ref" : "#/components/parameters/team_name" + }, { + "$ref" : "#/components/parameters/page" + }, { + "$ref" : "#/components/parameters/per_page" + } ], + "responses" : { + "200" : { + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/GetTeamMemberships_200_response" } } }, - "description": "Response" + "description" : "Response" }, - "400": { - "$ref": "#/components/responses/BadRequest" + "400" : { + "$ref" : "#/components/responses/BadRequest" }, - "401": { - "$ref": "#/components/responses/RequiresAuthentication" + "401" : { + "$ref" : "#/components/responses/RequiresAuthentication" }, - "403": { - "$ref": "#/components/responses/Forbidden" + "403" : { + "$ref" : "#/components/responses/Forbidden" }, - "404": { - "$ref": "#/components/responses/NotFound" + "404" : { + "$ref" : "#/components/responses/NotFound" }, - "500": { - "$ref": "#/components/responses/InternalError" + "500" : { + "$ref" : "#/components/responses/InternalError" } }, - "tags": [ - "teams" - ] + "tags" : [ "teams" ] } }, - "/teams/{team_name}/memberships/{email}": { - "delete": { - "description": "Remove a user from the team", - "operationId": "DeleteTeamMembership", - "parameters": [ - { - "$ref": "#/components/parameters/team_name" - }, - { - "$ref": "#/components/parameters/email" - } - ], - "responses": { - "204": { - "description": "Response" + "/teams/{team_name}/memberships/{email}" : { + "delete" : { + "description" : "Remove a user from the team", + "operationId" : "DeleteTeamMembership", + "parameters" : [ { + "$ref" : "#/components/parameters/team_name" + }, { + "$ref" : "#/components/parameters/email" + } ], + "responses" : { + "204" : { + "description" : "Response" }, - "400": { - "$ref": "#/components/responses/BadRequest" + "400" : { + "$ref" : "#/components/responses/BadRequest" }, - "401": { - "$ref": "#/components/responses/RequiresAuthentication" + "401" : { + "$ref" : "#/components/responses/RequiresAuthentication" }, - "403": { - "$ref": "#/components/responses/Forbidden" + "403" : { + "$ref" : "#/components/responses/Forbidden" }, - "404": { - "$ref": "#/components/responses/NotFound" + "404" : { + "$ref" : "#/components/responses/NotFound" }, - "500": { - "$ref": "#/components/responses/InternalError" + "500" : { + "$ref" : "#/components/responses/InternalError" } }, - "tags": [ - "teams" - ] + "tags" : [ "teams" ] } }, - "/teams/{team_name}/monthly-limits": { - "get": { - "deprecated": true, - "description": "This endpoint is deprecated. Use the /teams/{team_name}/spending-limits endpoint instead.\nList all monthly limits for the team.\n", - "operationId": "ListMonthlyLimitsByTeam", - "parameters": [ - { - "$ref": "#/components/parameters/team_name" - }, - { - "$ref": "#/components/parameters/page" - }, - { - "$ref": "#/components/parameters/per_page" - } - ], - "responses": { - "200": { - "description": "List of monthly limits for the team.", - "content": { - "application/json": { - "schema": { - "required": [ - "items", - "metadata" - ], - "properties": { - "items": { - "items": { - "$ref": "#/components/schemas/MonthlyLimit" - }, - "type": "array" - }, - "metadata": { - "$ref": "#/components/schemas/ListMetadata" - } - } + "/teams/{team_name}/monthly-limits" : { + "get" : { + "deprecated" : true, + "description" : "This endpoint is deprecated. Use the /teams/{team_name}/spending-limits endpoint instead.\nList all monthly limits for the team.\n", + "operationId" : "ListMonthlyLimitsByTeam", + "parameters" : [ { + "$ref" : "#/components/parameters/team_name" + }, { + "$ref" : "#/components/parameters/page" + }, { + "$ref" : "#/components/parameters/per_page" + } ], + "responses" : { + "200" : { + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/ListMonthlyLimitsByTeam_200_response" } } - } + }, + "description" : "List of monthly limits for the team." }, - "401": { - "$ref": "#/components/responses/RequiresAuthentication" + "401" : { + "$ref" : "#/components/responses/RequiresAuthentication" }, - "403": { - "$ref": "#/components/responses/Forbidden" + "403" : { + "$ref" : "#/components/responses/Forbidden" }, - "404": { - "$ref": "#/components/responses/NotFound" + "404" : { + "$ref" : "#/components/responses/NotFound" }, - "500": { - "$ref": "#/components/responses/InternalError" + "500" : { + "$ref" : "#/components/responses/InternalError" } }, - "tags": [ - "teams" - ] + "tags" : [ "teams" ] }, - "post": { - "deprecated": true, - "description": "This endpoint is deprecated. Use the /teams/{team_name}/spending-limits endpoint instead.\nCreate a monthly limit for a plugin\n", - "operationId": "CreateMonthlyLimit", - "parameters": [ - { - "$ref": "#/components/parameters/team_name" - } - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/MonthlyLimitCreate" + "post" : { + "deprecated" : true, + "description" : "This endpoint is deprecated. Use the /teams/{team_name}/spending-limits endpoint instead.\nCreate a monthly limit for a plugin\n", + "operationId" : "CreateMonthlyLimit", + "parameters" : [ { + "$ref" : "#/components/parameters/team_name" + } ], + "requestBody" : { + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/MonthlyLimitCreate" } } } }, - "responses": { - "201": { - "description": "New monthly limit created.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/MonthlyLimit" + "responses" : { + "201" : { + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/MonthlyLimit" } } - } + }, + "description" : "New monthly limit created." }, - "401": { - "$ref": "#/components/responses/RequiresAuthentication" + "401" : { + "$ref" : "#/components/responses/RequiresAuthentication" }, - "403": { - "$ref": "#/components/responses/Forbidden" + "403" : { + "$ref" : "#/components/responses/Forbidden" }, - "404": { - "$ref": "#/components/responses/NotFound" + "404" : { + "$ref" : "#/components/responses/NotFound" }, - "422": { - "$ref": "#/components/responses/UnprocessableEntity" + "422" : { + "$ref" : "#/components/responses/UnprocessableEntity" }, - "500": { - "$ref": "#/components/responses/InternalError" + "500" : { + "$ref" : "#/components/responses/InternalError" } }, - "tags": [ - "teams" - ] + "tags" : [ "teams" ] } }, - "/teams/{team_name}/spending-limits": { - "get": { - "description": "Get monthly spending limit for team.", - "operationId": "GetSpendingLimit", - "parameters": [ - { - "$ref": "#/components/parameters/team_name" - } - ], - "responses": { - "200": { - "description": "Spending limit retrieved.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/SpendingLimit" + "/teams/{team_name}/spending-limits" : { + "delete" : { + "description" : "Delete a spending limit for a team", + "operationId" : "DeleteSpendingLimit", + "parameters" : [ { + "$ref" : "#/components/parameters/team_name" + } ], + "responses" : { + "204" : { + "description" : "Spending limit deleted." + }, + "401" : { + "$ref" : "#/components/responses/RequiresAuthentication" + }, + "403" : { + "$ref" : "#/components/responses/Forbidden" + }, + "404" : { + "$ref" : "#/components/responses/NotFound" + }, + "500" : { + "$ref" : "#/components/responses/InternalError" + } + }, + "tags" : [ "teams" ] + }, + "get" : { + "description" : "Get monthly spending limit for team.", + "operationId" : "GetSpendingLimit", + "parameters" : [ { + "$ref" : "#/components/parameters/team_name" + } ], + "responses" : { + "200" : { + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/SpendingLimit" } } - } + }, + "description" : "Spending limit retrieved." }, - "401": { - "$ref": "#/components/responses/RequiresAuthentication" + "401" : { + "$ref" : "#/components/responses/RequiresAuthentication" }, - "403": { - "$ref": "#/components/responses/Forbidden" + "403" : { + "$ref" : "#/components/responses/Forbidden" }, - "404": { - "$ref": "#/components/responses/NotFound" + "404" : { + "$ref" : "#/components/responses/NotFound" }, - "500": { - "$ref": "#/components/responses/InternalError" + "500" : { + "$ref" : "#/components/responses/InternalError" } }, - "tags": [ - "teams" - ] + "tags" : [ "teams" ] }, - "post": { - "description": "Create a spending limit for a team", - "operationId": "CreateSpendingLimit", - "parameters": [ - { - "$ref": "#/components/parameters/team_name" - } - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/SpendingLimitCreate" + "post" : { + "description" : "Create a spending limit for a team", + "operationId" : "CreateSpendingLimit", + "parameters" : [ { + "$ref" : "#/components/parameters/team_name" + } ], + "requestBody" : { + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/SpendingLimitCreate" } } } }, - "responses": { - "201": { - "description": "New spending limit created.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/SpendingLimit" + "responses" : { + "201" : { + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/SpendingLimit" } } - } + }, + "description" : "New spending limit created." }, - "401": { - "$ref": "#/components/responses/RequiresAuthentication" + "401" : { + "$ref" : "#/components/responses/RequiresAuthentication" }, - "403": { - "$ref": "#/components/responses/Forbidden" + "403" : { + "$ref" : "#/components/responses/Forbidden" }, - "404": { - "$ref": "#/components/responses/NotFound" + "404" : { + "$ref" : "#/components/responses/NotFound" }, - "422": { - "$ref": "#/components/responses/UnprocessableEntity" + "422" : { + "$ref" : "#/components/responses/UnprocessableEntity" }, - "500": { - "$ref": "#/components/responses/InternalError" + "500" : { + "$ref" : "#/components/responses/InternalError" } }, - "tags": [ - "teams" - ] + "tags" : [ "teams" ] }, - "put": { - "description": "Update a spending limit for a team", - "operationId": "UpdateSpendingLimit", - "parameters": [ - { - "$ref": "#/components/parameters/team_name" - } - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/SpendingLimitUpdate" + "put" : { + "description" : "Update a spending limit for a team", + "operationId" : "UpdateSpendingLimit", + "parameters" : [ { + "$ref" : "#/components/parameters/team_name" + } ], + "requestBody" : { + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/SpendingLimitUpdate" } } } }, - "responses": { - "200": { - "description": "Spending limit updated.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/SpendingLimit" + "responses" : { + "200" : { + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/SpendingLimit" } } - } - }, - "400": { - "$ref": "#/components/responses/BadRequest" - }, - "401": { - "$ref": "#/components/responses/RequiresAuthentication" - }, - "403": { - "$ref": "#/components/responses/Forbidden" - }, - "404": { - "$ref": "#/components/responses/NotFound" + }, + "description" : "Spending limit updated." }, - "500": { - "$ref": "#/components/responses/InternalError" - } - }, - "tags": [ - "teams" - ] - }, - "delete": { - "description": "Delete a spending limit for a team", - "operationId": "DeleteSpendingLimit", - "parameters": [ - { - "$ref": "#/components/parameters/team_name" - } - ], - "responses": { - "204": { - "description": "Spending limit deleted." + "400" : { + "$ref" : "#/components/responses/BadRequest" }, - "401": { - "$ref": "#/components/responses/RequiresAuthentication" + "401" : { + "$ref" : "#/components/responses/RequiresAuthentication" }, - "403": { - "$ref": "#/components/responses/Forbidden" + "403" : { + "$ref" : "#/components/responses/Forbidden" }, - "404": { - "$ref": "#/components/responses/NotFound" + "404" : { + "$ref" : "#/components/responses/NotFound" }, - "500": { - "$ref": "#/components/responses/InternalError" + "500" : { + "$ref" : "#/components/responses/InternalError" } }, - "tags": [ - "teams" - ] + "tags" : [ "teams" ] } }, - "/teams/{team_name}/monthly-limits/{plugin_team}/{plugin_kind}/{plugin_name}": { - "get": { - "deprecated": true, - "description": "This endpoint is deprecated. Use the /teams/{team_name}/spending-limits endpoint instead.\nGet a monthly limit for a plugin\n", - "operationId": "GetMonthlyLimit", - "parameters": [ - { - "$ref": "#/components/parameters/team_name" - }, - { - "$ref": "#/components/parameters/plugin_team" - }, - { - "$ref": "#/components/parameters/plugin_kind" - }, - { - "$ref": "#/components/parameters/plugin_name" - } - ], - "responses": { - "200": { - "description": "Monthly limit retrieved.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/MonthlyLimit" + "/teams/{team_name}/monthly-limits/{plugin_team}/{plugin_kind}/{plugin_name}" : { + "delete" : { + "description" : "Delete a monthly limit for a plugin", + "operationId" : "DeleteMonthlyLimit", + "parameters" : [ { + "$ref" : "#/components/parameters/team_name" + }, { + "$ref" : "#/components/parameters/plugin_team" + }, { + "$ref" : "#/components/parameters/plugin_kind" + }, { + "$ref" : "#/components/parameters/plugin_name" + } ], + "responses" : { + "204" : { + "description" : "Monthly limit deleted." + }, + "401" : { + "$ref" : "#/components/responses/RequiresAuthentication" + }, + "403" : { + "$ref" : "#/components/responses/Forbidden" + }, + "404" : { + "$ref" : "#/components/responses/NotFound" + }, + "500" : { + "$ref" : "#/components/responses/InternalError" + } + }, + "tags" : [ "teams" ] + }, + "get" : { + "deprecated" : true, + "description" : "This endpoint is deprecated. Use the /teams/{team_name}/spending-limits endpoint instead.\nGet a monthly limit for a plugin\n", + "operationId" : "GetMonthlyLimit", + "parameters" : [ { + "$ref" : "#/components/parameters/team_name" + }, { + "$ref" : "#/components/parameters/plugin_team" + }, { + "$ref" : "#/components/parameters/plugin_kind" + }, { + "$ref" : "#/components/parameters/plugin_name" + } ], + "responses" : { + "200" : { + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/MonthlyLimit" } } - } + }, + "description" : "Monthly limit retrieved." }, - "401": { - "$ref": "#/components/responses/RequiresAuthentication" + "401" : { + "$ref" : "#/components/responses/RequiresAuthentication" }, - "403": { - "$ref": "#/components/responses/Forbidden" + "403" : { + "$ref" : "#/components/responses/Forbidden" }, - "404": { - "$ref": "#/components/responses/NotFound" + "404" : { + "$ref" : "#/components/responses/NotFound" }, - "500": { - "$ref": "#/components/responses/InternalError" + "500" : { + "$ref" : "#/components/responses/InternalError" } }, - "tags": [ - "teams" - ] + "tags" : [ "teams" ] }, - "put": { - "deprecated": true, - "description": "This endpoint is deprecated. Use the /teams/{team_name}/spending-limits endpoint instead.\nUpdate a monthly limit for a plugin\n", - "operationId": "UpdateMonthlyLimit", - "parameters": [ - { - "$ref": "#/components/parameters/team_name" - }, - { - "$ref": "#/components/parameters/plugin_team" - }, - { - "$ref": "#/components/parameters/plugin_kind" - }, - { - "$ref": "#/components/parameters/plugin_name" - } - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/MonthlyLimitUpdate" + "put" : { + "deprecated" : true, + "description" : "This endpoint is deprecated. Use the /teams/{team_name}/spending-limits endpoint instead.\nUpdate a monthly limit for a plugin\n", + "operationId" : "UpdateMonthlyLimit", + "parameters" : [ { + "$ref" : "#/components/parameters/team_name" + }, { + "$ref" : "#/components/parameters/plugin_team" + }, { + "$ref" : "#/components/parameters/plugin_kind" + }, { + "$ref" : "#/components/parameters/plugin_name" + } ], + "requestBody" : { + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/MonthlyLimitUpdate" } } } }, - "responses": { - "200": { - "description": "Monthly limit updated.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/MonthlyLimit" + "responses" : { + "200" : { + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/MonthlyLimit" } } - } - }, - "400": { - "$ref": "#/components/responses/BadRequest" - }, - "401": { - "$ref": "#/components/responses/RequiresAuthentication" - }, - "403": { - "$ref": "#/components/responses/Forbidden" - }, - "404": { - "$ref": "#/components/responses/NotFound" - }, - "500": { - "$ref": "#/components/responses/InternalError" - } - }, - "tags": [ - "teams" - ] - }, - "delete": { - "description": "Delete a monthly limit for a plugin", - "operationId": "DeleteMonthlyLimit", - "parameters": [ - { - "$ref": "#/components/parameters/team_name" - }, - { - "$ref": "#/components/parameters/plugin_team" - }, - { - "$ref": "#/components/parameters/plugin_kind" + }, + "description" : "Monthly limit updated." }, - { - "$ref": "#/components/parameters/plugin_name" - } - ], - "responses": { - "204": { - "description": "Monthly limit deleted." + "400" : { + "$ref" : "#/components/responses/BadRequest" }, - "401": { - "$ref": "#/components/responses/RequiresAuthentication" + "401" : { + "$ref" : "#/components/responses/RequiresAuthentication" }, - "403": { - "$ref": "#/components/responses/Forbidden" + "403" : { + "$ref" : "#/components/responses/Forbidden" }, - "404": { - "$ref": "#/components/responses/NotFound" + "404" : { + "$ref" : "#/components/responses/NotFound" }, - "500": { - "$ref": "#/components/responses/InternalError" + "500" : { + "$ref" : "#/components/responses/InternalError" } }, - "tags": [ - "teams" - ] + "tags" : [ "teams" ] } }, - "/teams/{team_name}/invoices": { - "get": { - "description": "List all past invoices for the team.", - "operationId": "ListInvoicesByTeam", - "parameters": [ - { - "$ref": "#/components/parameters/team_name" - }, - { - "$ref": "#/components/parameters/page" - }, - { - "$ref": "#/components/parameters/per_page" - } - ], - "responses": { - "200": { - "description": "Response", - "content": { - "application/json": { - "schema": { - "required": [ - "items", - "metadata" - ], - "properties": { - "items": { - "items": { - "$ref": "#/components/schemas/Invoice" - }, - "type": "array" - }, - "metadata": { - "$ref": "#/components/schemas/ListMetadata" - } - } + "/teams/{team_name}/invoices" : { + "get" : { + "description" : "List all past invoices for the team.", + "operationId" : "ListInvoicesByTeam", + "parameters" : [ { + "$ref" : "#/components/parameters/team_name" + }, { + "$ref" : "#/components/parameters/page" + }, { + "$ref" : "#/components/parameters/per_page" + } ], + "responses" : { + "200" : { + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/ListInvoicesByTeam_200_response" } } - } + }, + "description" : "Response" }, - "401": { - "$ref": "#/components/responses/RequiresAuthentication" + "401" : { + "$ref" : "#/components/responses/RequiresAuthentication" }, - "403": { - "$ref": "#/components/responses/Forbidden" + "403" : { + "$ref" : "#/components/responses/Forbidden" }, - "404": { - "$ref": "#/components/responses/NotFound" + "404" : { + "$ref" : "#/components/responses/NotFound" }, - "500": { - "$ref": "#/components/responses/InternalError" + "500" : { + "$ref" : "#/components/responses/InternalError" } }, - "tags": [ - "teams" - ] + "tags" : [ "teams" ] } }, - "/teams/{team_name}/usage": { - "get": { - "description": "List plugin usage for the current calendar month.", - "operationId": "ListTeamPluginUsage", - "parameters": [ - { - "$ref": "#/components/parameters/team_name" - }, - { - "$ref": "#/components/parameters/page" - }, - { - "$ref": "#/components/parameters/per_page" - } - ], - "responses": { - "200": { - "description": "List plugin usage for the current calendar month.", - "content": { - "application/json": { - "schema": { - "required": [ - "items", - "metadata" - ], - "properties": { - "items": { - "items": { - "$ref": "#/components/schemas/UsageCurrent" - }, - "type": "array" - }, - "metadata": { - "$ref": "#/components/schemas/ListMetadata" - } - } + "/teams/{team_name}/usage" : { + "get" : { + "description" : "List plugin usage for the current calendar month.", + "operationId" : "ListTeamPluginUsage", + "parameters" : [ { + "$ref" : "#/components/parameters/team_name" + }, { + "$ref" : "#/components/parameters/page" + }, { + "$ref" : "#/components/parameters/per_page" + } ], + "responses" : { + "200" : { + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/ListTeamPluginUsage_200_response" } } - } + }, + "description" : "List plugin usage for the current calendar month." }, - "401": { - "$ref": "#/components/responses/RequiresAuthentication" + "401" : { + "$ref" : "#/components/responses/RequiresAuthentication" }, - "403": { - "$ref": "#/components/responses/Forbidden" + "403" : { + "$ref" : "#/components/responses/Forbidden" }, - "404": { - "$ref": "#/components/responses/NotFound" + "404" : { + "$ref" : "#/components/responses/NotFound" }, - "500": { - "$ref": "#/components/responses/InternalError" + "500" : { + "$ref" : "#/components/responses/InternalError" } }, - "tags": [ - "teams" - ] + "tags" : [ "teams" ] }, - "post": { - "description": "Increase the usage of a plugin. This can incur billing costs and should be used only by plugin SDKs.", - "operationId": "IncreaseTeamPluginUsage", - "parameters": [ - { - "$ref": "#/components/parameters/team_name" - } - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/UsageIncrease" + "post" : { + "description" : "Increase the usage of a plugin. This can incur billing costs and should be used only by plugin SDKs.", + "operationId" : "IncreaseTeamPluginUsage", + "parameters" : [ { + "$ref" : "#/components/parameters/team_name" + } ], + "requestBody" : { + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/UsageIncrease" } } } }, - "responses": { - "204": { - "description": "Success (the plugin usage was increased). It may take some time to reflect in the usage list." + "responses" : { + "204" : { + "description" : "Success (the plugin usage was increased). It may take some time to reflect in the usage list." }, - "401": { - "$ref": "#/components/responses/RequiresAuthentication" + "401" : { + "$ref" : "#/components/responses/RequiresAuthentication" }, - "403": { - "$ref": "#/components/responses/Forbidden" + "403" : { + "$ref" : "#/components/responses/Forbidden" }, - "404": { - "$ref": "#/components/responses/NotFound" + "404" : { + "$ref" : "#/components/responses/NotFound" }, - "422": { - "$ref": "#/components/responses/UnprocessableEntity" + "422" : { + "$ref" : "#/components/responses/UnprocessableEntity" }, - "500": { - "$ref": "#/components/responses/InternalError" + "500" : { + "$ref" : "#/components/responses/InternalError" }, - "503": { - "$ref": "#/components/responses/ServiceUnavailable" + "503" : { + "$ref" : "#/components/responses/ServiceUnavailable" } }, - "tags": [ - "teams" - ] + "tags" : [ "teams" ] } }, - "/teams/{team_name}/usage/{plugin_team}/{plugin_kind}/{plugin_name}": { - "get": { - "description": "Get plugin usage for the current calendar month.", - "operationId": "GetTeamPluginUsage", - "parameters": [ - { - "$ref": "#/components/parameters/team_name" - }, - { - "$ref": "#/components/parameters/plugin_team" - }, - { - "$ref": "#/components/parameters/plugin_kind" - }, - { - "$ref": "#/components/parameters/plugin_name" - } - ], - "responses": { - "200": { - "description": "Plugin usage for the current calendar month.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/UsageCurrent" + "/teams/{team_name}/usage/{plugin_team}/{plugin_kind}/{plugin_name}" : { + "get" : { + "description" : "Get plugin usage for the current calendar month.", + "operationId" : "GetTeamPluginUsage", + "parameters" : [ { + "$ref" : "#/components/parameters/team_name" + }, { + "$ref" : "#/components/parameters/plugin_team" + }, { + "$ref" : "#/components/parameters/plugin_kind" + }, { + "$ref" : "#/components/parameters/plugin_name" + } ], + "responses" : { + "200" : { + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/UsageCurrent" } } - } + }, + "description" : "Plugin usage for the current calendar month." }, - "401": { - "$ref": "#/components/responses/RequiresAuthentication" + "401" : { + "$ref" : "#/components/responses/RequiresAuthentication" }, - "403": { - "$ref": "#/components/responses/Forbidden" + "403" : { + "$ref" : "#/components/responses/Forbidden" }, - "404": { - "$ref": "#/components/responses/NotFound" + "404" : { + "$ref" : "#/components/responses/NotFound" }, - "500": { - "$ref": "#/components/responses/InternalError" + "500" : { + "$ref" : "#/components/responses/InternalError" } }, - "tags": [ - "teams" - ] + "tags" : [ "teams" ] } }, - "/teams/{team_name}/usage-summary": { - "get": { - "description": "Get a summary of usage for the specified time range.", - "operationId": "GetTeamUsageSummary", - "parameters": [ - { - "$ref": "#/components/parameters/team_name" - }, - { - "in": "query", - "name": "metrics", - "required": false, - "schema": { - "type": "array", - "description": "A list of metrics to include in the response. Each metric must be one of the predefined valid values. If not provided, only `paid-rows` will be included.", - "items": { - "type": "string", - "enum": [ - "paid_rows", - "cloud_vcpu_seconds", - "cloud_vram_byte_seconds", - "network_egress_bytes" - ] - }, - "default": [ - "paid_rows" - ] - } - }, - { - "in": "query", - "name": "start", - "required": false, - "schema": { - "type": "string", - "format": "date-time", - "description": "A valid ISO-8601-formatted date and time, indicating the inclusive start of the query time range. Defaults to 30 days ago." - } - }, - { - "in": "query", - "name": "end", - "required": false, - "schema": { - "type": "string", - "format": "date-time", - "description": "A valid ISO-8601-formatted date and time, indicating the exclusive end of the query time range. Defaults to the current time." - } - }, - { - "in": "query", - "name": "aggregation_period", - "description": "An aggregation period to sum data over. In other words, data will be returned at this granularity. Currently only supports day and month.", - "required": false, - "schema": { - "type": "string", - "default": "day", - "enum": [ - "day", - "month" - ] - } - } - ], - "responses": { - "200": { - "description": "A summary of usage for the specified time range.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/UsageSummary" + "/teams/{team_name}/usage-summary" : { + "get" : { + "description" : "Get a summary of usage for the specified time range.", + "operationId" : "GetTeamUsageSummary", + "parameters" : [ { + "$ref" : "#/components/parameters/team_name" + }, { + "explode" : true, + "in" : "query", + "name" : "metrics", + "required" : false, + "schema" : { + "default" : [ "paid_rows" ], + "description" : "A list of metrics to include in the response. Each metric must be one of the predefined valid values. If not provided, only `paid-rows` will be included.", + "items" : { + "enum" : [ "paid_rows", "cloud_vcpu_seconds", "cloud_vram_byte_seconds", "network_egress_bytes" ], + "type" : "string" + }, + "type" : "array" + }, + "style" : "form" + }, { + "explode" : true, + "in" : "query", + "name" : "start", + "required" : false, + "schema" : { + "description" : "A valid ISO-8601-formatted date and time, indicating the inclusive start of the query time range. Defaults to 30 days ago.", + "format" : "date-time", + "type" : "string" + }, + "style" : "form" + }, { + "explode" : true, + "in" : "query", + "name" : "end", + "required" : false, + "schema" : { + "description" : "A valid ISO-8601-formatted date and time, indicating the exclusive end of the query time range. Defaults to the current time.", + "format" : "date-time", + "type" : "string" + }, + "style" : "form" + }, { + "description" : "An aggregation period to sum data over. In other words, data will be returned at this granularity. Currently only supports day and month.", + "explode" : true, + "in" : "query", + "name" : "aggregation_period", + "required" : false, + "schema" : { + "default" : "day", + "enum" : [ "day", "month" ], + "type" : "string" + }, + "style" : "form" + } ], + "responses" : { + "200" : { + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/UsageSummary" } } - } + }, + "description" : "A summary of usage for the specified time range." }, - "400": { - "$ref": "#/components/responses/BadRequest" + "400" : { + "$ref" : "#/components/responses/BadRequest" }, - "401": { - "$ref": "#/components/responses/RequiresAuthentication" + "401" : { + "$ref" : "#/components/responses/RequiresAuthentication" }, - "403": { - "$ref": "#/components/responses/Forbidden" + "403" : { + "$ref" : "#/components/responses/Forbidden" }, - "404": { - "$ref": "#/components/responses/NotFound" + "404" : { + "$ref" : "#/components/responses/NotFound" }, - "422": { - "$ref": "#/components/responses/UnprocessableEntity" + "422" : { + "$ref" : "#/components/responses/UnprocessableEntity" }, - "500": { - "$ref": "#/components/responses/InternalError" + "500" : { + "$ref" : "#/components/responses/InternalError" } }, - "tags": [ - "teams" - ] + "tags" : [ "teams" ] } }, - "/teams/{team_name}/usage-summary/{group_by}": { - "get": { - "description": "Get a grouped summary of usage for the specified time range.", - "operationId": "GetGroupedTeamUsageSummary", - "parameters": [ - { - "$ref": "#/components/parameters/team_name" - }, - { - "in": "path", - "name": "group_by", - "required": true, - "schema": { - "type": "string", - "enum": [ - "price_category", - "plugin", - "sync_id" - ], - "description": "Group by usage summary. `plugin` and `price_category` groupings are only available for `paid-rows`." - } - }, - { - "in": "query", - "name": "metrics", - "required": false, - "schema": { - "type": "array", - "description": "A list of metrics to include in the response. Each metric must be one of the predefined valid values. If not provided, only `paid-rows` will be included.", - "items": { - "type": "string", - "enum": [ - "paid_rows", - "cloud_vcpu_seconds", - "cloud_vram_byte_seconds", - "network_egress_bytes" - ] - }, - "default": [ - "paid_rows" - ] - } - }, - { - "in": "query", - "name": "start", - "required": false, - "schema": { - "type": "string", - "format": "date-time", - "description": "A valid ISO-8601-formatted date and time, indicating the inclusive start of the query time range. Defaults to 30 days ago." - } - }, - { - "in": "query", - "name": "end", - "required": false, - "schema": { - "type": "string", - "format": "date-time", - "description": "A valid ISO-8601-formatted date and time, indicating the exclusive end of the query time range. Defaults to the current time." - } - }, - { - "in": "query", - "name": "aggregation_period", - "description": "An aggregation period to sum data over. In other words, data will be returned at this granularity. Currently only supports day and month.", - "required": false, - "schema": { - "type": "string", - "default": "day", - "enum": [ - "day", - "month" - ] - } - } - ], - "responses": { - "200": { - "description": "A summary of usage for the specified time range.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/UsageSummary" + "/teams/{team_name}/usage-summary/{group_by}" : { + "get" : { + "description" : "Get a grouped summary of usage for the specified time range.", + "operationId" : "GetGroupedTeamUsageSummary", + "parameters" : [ { + "$ref" : "#/components/parameters/team_name" + }, { + "explode" : false, + "in" : "path", + "name" : "group_by", + "required" : true, + "schema" : { + "description" : "Group by usage summary. `plugin` and `price_category` groupings are only available for `paid-rows`.", + "enum" : [ "price_category", "plugin", "sync_id" ], + "type" : "string" + }, + "style" : "simple" + }, { + "explode" : true, + "in" : "query", + "name" : "metrics", + "required" : false, + "schema" : { + "default" : [ "paid_rows" ], + "description" : "A list of metrics to include in the response. Each metric must be one of the predefined valid values. If not provided, only `paid-rows` will be included.", + "items" : { + "enum" : [ "paid_rows", "cloud_vcpu_seconds", "cloud_vram_byte_seconds", "network_egress_bytes" ], + "type" : "string" + }, + "type" : "array" + }, + "style" : "form" + }, { + "explode" : true, + "in" : "query", + "name" : "start", + "required" : false, + "schema" : { + "description" : "A valid ISO-8601-formatted date and time, indicating the inclusive start of the query time range. Defaults to 30 days ago.", + "format" : "date-time", + "type" : "string" + }, + "style" : "form" + }, { + "explode" : true, + "in" : "query", + "name" : "end", + "required" : false, + "schema" : { + "description" : "A valid ISO-8601-formatted date and time, indicating the exclusive end of the query time range. Defaults to the current time.", + "format" : "date-time", + "type" : "string" + }, + "style" : "form" + }, { + "description" : "An aggregation period to sum data over. In other words, data will be returned at this granularity. Currently only supports day and month.", + "explode" : true, + "in" : "query", + "name" : "aggregation_period", + "required" : false, + "schema" : { + "default" : "day", + "enum" : [ "day", "month" ], + "type" : "string" + }, + "style" : "form" + } ], + "responses" : { + "200" : { + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/UsageSummary" } } - } + }, + "description" : "A summary of usage for the specified time range." }, - "400": { - "$ref": "#/components/responses/BadRequest" + "400" : { + "$ref" : "#/components/responses/BadRequest" }, - "401": { - "$ref": "#/components/responses/RequiresAuthentication" + "401" : { + "$ref" : "#/components/responses/RequiresAuthentication" }, - "403": { - "$ref": "#/components/responses/Forbidden" + "403" : { + "$ref" : "#/components/responses/Forbidden" }, - "404": { - "$ref": "#/components/responses/NotFound" + "404" : { + "$ref" : "#/components/responses/NotFound" }, - "422": { - "$ref": "#/components/responses/UnprocessableEntity" + "422" : { + "$ref" : "#/components/responses/UnprocessableEntity" }, - "500": { - "$ref": "#/components/responses/InternalError" + "500" : { + "$ref" : "#/components/responses/InternalError" } }, - "tags": [ - "teams" - ] + "tags" : [ "teams" ] } }, - "/teams/{team_name}/spend": { - "get": { - "description": "Get team spend for defined period.", - "operationId": "GetTeamSpend", - "parameters": [ - { - "$ref": "#/components/parameters/team_name" - }, - { - "in": "query", - "name": "start", - "required": false, - "schema": { - "type": "string", - "format": "date-time" - }, - "description": "A valid ISO 8601 date string representing the inclusive start of the period." - }, - { - "in": "query", - "name": "end", - "required": false, - "schema": { - "type": "string", - "format": "date-time" - }, - "description": "A valid ISO 8601 date string representing the exclusive end of the period." - } - ], - "responses": { - "200": { - "description": "Team spend for defined period.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/SpendSummary" + "/teams/{team_name}/spend" : { + "get" : { + "description" : "Get team spend for defined period.", + "operationId" : "GetTeamSpend", + "parameters" : [ { + "$ref" : "#/components/parameters/team_name" + }, { + "description" : "A valid ISO 8601 date string representing the inclusive start of the period.", + "explode" : true, + "in" : "query", + "name" : "start", + "required" : false, + "schema" : { + "format" : "date-time", + "type" : "string" + }, + "style" : "form" + }, { + "description" : "A valid ISO 8601 date string representing the exclusive end of the period.", + "explode" : true, + "in" : "query", + "name" : "end", + "required" : false, + "schema" : { + "format" : "date-time", + "type" : "string" + }, + "style" : "form" + } ], + "responses" : { + "200" : { + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/SpendSummary" } } - } + }, + "description" : "Team spend for defined period." }, - "400": { - "$ref": "#/components/responses/BadRequest" + "400" : { + "$ref" : "#/components/responses/BadRequest" }, - "401": { - "$ref": "#/components/responses/RequiresAuthentication" + "401" : { + "$ref" : "#/components/responses/RequiresAuthentication" }, - "403": { - "$ref": "#/components/responses/Forbidden" + "403" : { + "$ref" : "#/components/responses/Forbidden" }, - "404": { - "$ref": "#/components/responses/NotFound" + "404" : { + "$ref" : "#/components/responses/NotFound" }, - "500": { - "$ref": "#/components/responses/InternalError" + "500" : { + "$ref" : "#/components/responses/InternalError" } }, - "tags": [ - "teams" - ] + "tags" : [ "teams" ] } }, - "/teams/{team_name}/plugins/{plugin_team}/{plugin_kind}/{plugin_name}/versions/{version_name}/assets/{target_name}": { - "get": { - "description": "Download an asset for a given plugin version as the current team.", - "operationId": "DownloadPluginAssetByTeam", - "parameters": [ - { - "in": "header", - "name": "Accept", - "required": false, - "schema": { - "type": "string" - } - }, - { - "$ref": "#/components/parameters/team_name" - }, - { - "$ref": "#/components/parameters/plugin_team" - }, - { - "$ref": "#/components/parameters/plugin_kind" - }, - { - "$ref": "#/components/parameters/plugin_name" - }, - { - "$ref": "#/components/parameters/version_name" - }, - { - "$ref": "#/components/parameters/target_name" - } - ], - "responses": { - "200": { - "description": "Response", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/PluginAsset" + "/teams/{team_name}/plugins/{plugin_team}/{plugin_kind}/{plugin_name}/versions/{version_name}/assets/{target_name}" : { + "get" : { + "description" : "Download an asset for a given plugin version as the current team.", + "operationId" : "DownloadPluginAssetByTeam", + "parameters" : [ { + "explode" : false, + "in" : "header", + "name" : "Accept", + "required" : false, + "schema" : { + "type" : "string" + }, + "style" : "simple" + }, { + "$ref" : "#/components/parameters/team_name" + }, { + "$ref" : "#/components/parameters/plugin_team" + }, { + "$ref" : "#/components/parameters/plugin_kind" + }, { + "$ref" : "#/components/parameters/plugin_name" + }, { + "$ref" : "#/components/parameters/version_name" + }, { + "$ref" : "#/components/parameters/target_name" + } ], + "responses" : { + "200" : { + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/PluginAsset" } } - } - }, - "302": { - "description": "Response", - "headers": { - "Location": { - "schema": { - "type": "string" - } + }, + "description" : "Response" + }, + "302" : { + "description" : "Response", + "headers" : { + "Location" : { + "explode" : false, + "schema" : { + "type" : "string" + }, + "style" : "simple" } } }, - "401": { - "$ref": "#/components/responses/RequiresAuthentication" + "401" : { + "$ref" : "#/components/responses/RequiresAuthentication" }, - "404": { - "$ref": "#/components/responses/NotFound" + "404" : { + "$ref" : "#/components/responses/NotFound" }, - "429": { - "$ref": "#/components/responses/TooManyRequests" + "429" : { + "$ref" : "#/components/responses/TooManyRequests" }, - "500": { - "$ref": "#/components/responses/InternalError" + "500" : { + "$ref" : "#/components/responses/InternalError" } }, - "tags": [ - "plugins" - ] + "tags" : [ "plugins" ] } }, - "/teams/{team_name}/addons/{addon_team}/{addon_type}/{addon_name}/versions/{version_name}/assets": { - "get": { - "description": "Download an asset for a given addon version as the current team.", - "operationId": "DownloadAddonAssetByTeam", - "parameters": [ - { - "in": "header", - "name": "Accept", - "required": false, - "schema": { - "type": "string" - } - }, - { - "$ref": "#/components/parameters/team_name" - }, - { - "$ref": "#/components/parameters/addon_team" - }, - { - "$ref": "#/components/parameters/addon_type" - }, - { - "$ref": "#/components/parameters/addon_name" - }, - { - "$ref": "#/components/parameters/version_name" - } - ], - "responses": { - "200": { - "description": "Response", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/AddonAsset" + "/teams/{team_name}/addons/{addon_team}/{addon_type}/{addon_name}/versions/{version_name}/assets" : { + "get" : { + "description" : "Download an asset for a given addon version as the current team.", + "operationId" : "DownloadAddonAssetByTeam", + "parameters" : [ { + "explode" : false, + "in" : "header", + "name" : "Accept", + "required" : false, + "schema" : { + "type" : "string" + }, + "style" : "simple" + }, { + "$ref" : "#/components/parameters/team_name" + }, { + "$ref" : "#/components/parameters/addon_team" + }, { + "$ref" : "#/components/parameters/addon_type" + }, { + "$ref" : "#/components/parameters/addon_name" + }, { + "$ref" : "#/components/parameters/version_name" + } ], + "responses" : { + "200" : { + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/AddonAsset" } } - } - }, - "302": { - "description": "Response", - "headers": { - "Location": { - "schema": { - "type": "string" - } + }, + "description" : "Response" + }, + "302" : { + "description" : "Response", + "headers" : { + "Location" : { + "explode" : false, + "schema" : { + "type" : "string" + }, + "style" : "simple" } } }, - "401": { - "$ref": "#/components/responses/RequiresAuthentication" + "401" : { + "$ref" : "#/components/responses/RequiresAuthentication" }, - "403": { - "$ref": "#/components/responses/Forbidden" + "403" : { + "$ref" : "#/components/responses/Forbidden" }, - "404": { - "$ref": "#/components/responses/NotFound" + "404" : { + "$ref" : "#/components/responses/NotFound" }, - "429": { - "$ref": "#/components/responses/TooManyRequests" + "429" : { + "$ref" : "#/components/responses/TooManyRequests" }, - "500": { - "$ref": "#/components/responses/InternalError" + "500" : { + "$ref" : "#/components/responses/InternalError" } }, - "tags": [ - "addons" - ] + "tags" : [ "addons" ] } }, - "/teams/{team_name}/invitations": { - "get": { - "operationId": "ListTeamInvitations", - "description": "List of open invitations to the team", - "tags": [ - "teams" - ], - "parameters": [ - { - "$ref": "#/components/parameters/team_name" - }, - { - "$ref": "#/components/parameters/page" - }, - { - "$ref": "#/components/parameters/per_page" - } - ], - "responses": { - "200": { - "description": "Response", - "content": { - "application/json": { - "schema": { - "required": [ - "items", - "metadata" - ], - "properties": { - "items": { - "type": "array", - "items": { - "$ref": "#/components/schemas/Invitation" - } - }, - "metadata": { - "$ref": "#/components/schemas/ListMetadata" - } - } + "/teams/{team_name}/invitations" : { + "get" : { + "description" : "List of open invitations to the team", + "operationId" : "ListTeamInvitations", + "parameters" : [ { + "$ref" : "#/components/parameters/team_name" + }, { + "$ref" : "#/components/parameters/page" + }, { + "$ref" : "#/components/parameters/per_page" + } ], + "responses" : { + "200" : { + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/ListTeamInvitations_200_response" } } - } + }, + "description" : "Response" }, - "403": { - "$ref": "#/components/responses/Forbidden" + "403" : { + "$ref" : "#/components/responses/Forbidden" }, - "500": { - "$ref": "#/components/responses/InternalError" + "500" : { + "$ref" : "#/components/responses/InternalError" } - } + }, + "tags" : [ "teams" ] }, - "post": { - "operationId": "EmailTeamInvitation", - "description": "Invite a user to join a team with their email address", - "tags": [ - "teams" - ], - "parameters": [ - { - "$ref": "#/components/parameters/team_name" - } - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "type": "object", - "required": [ - "email", - "role" - ], - "properties": { - "email": { - "type": "string", - "format": "email" - }, - "role": { - "type": "string", - "enum": [ - "admin", - "member" - ] - } - } + "post" : { + "description" : "Invite a user to join a team with their email address", + "operationId" : "EmailTeamInvitation", + "parameters" : [ { + "$ref" : "#/components/parameters/team_name" + } ], + "requestBody" : { + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/EmailTeamInvitation_request" } } } }, - "responses": { - "200": { - "description": "Response", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Invitation" + "responses" : { + "200" : { + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/Invitation" } } - } + }, + "description" : "Response" }, - "202": { - "description": "Response, email failed to send", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Invitation" + "202" : { + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/Invitation" } } - } + }, + "description" : "Response, email failed to send" }, - "400": { - "$ref": "#/components/responses/BadRequest" + "400" : { + "$ref" : "#/components/responses/BadRequest" }, - "403": { - "$ref": "#/components/responses/Forbidden" + "403" : { + "$ref" : "#/components/responses/Forbidden" }, - "422": { - "$ref": "#/components/responses/UnprocessableEntity" + "422" : { + "$ref" : "#/components/responses/UnprocessableEntity" }, - "500": { - "$ref": "#/components/responses/InternalError" + "500" : { + "$ref" : "#/components/responses/InternalError" } - } + }, + "tags" : [ "teams" ] } }, - "/teams/{team_name}/invitations/accept": { - "post": { - "operationId": "AcceptTeamInvitation", - "description": "Accept an invitation to the team, creating a user membership", - "tags": [ - "teams" - ], - "parameters": [ - { - "$ref": "#/components/parameters/team_name" - } - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "type": "object", - "required": [ - "token" - ], - "properties": { - "token": { - "type": "string", - "format": "uuid" - } + "/teams/{team_name}/invitations/accept" : { + "post" : { + "description" : "Accept an invitation to the team, creating a user membership", + "operationId" : "AcceptTeamInvitation", + "parameters" : [ { + "$ref" : "#/components/parameters/team_name" + } ], + "requestBody" : { + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/AcceptTeamInvitation_request" + } + } + } + }, + "responses" : { + "201" : { + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/MembershipWithTeam" } } - } - } - }, - "responses": { - "201": { - "description": "The invitation has been accepted and the authenticated user is now a member of the team.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/MembershipWithTeam" - } - } - } + }, + "description" : "The invitation has been accepted and the authenticated user is now a member of the team." }, - "303": { - "description": "The authenticated user is already a member of this team.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/MembershipWithTeam" + "303" : { + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/MembershipWithTeam" } } - } + }, + "description" : "The authenticated user is already a member of this team." }, - "403": { - "description": "You do not have an invitation to join this team.", - "$ref": "#/components/responses/Forbidden" + "403" : { + "$ref" : "#/components/responses/Forbidden", + "description" : "You do not have an invitation to join this team." }, - "500": { - "$ref": "#/components/responses/InternalError" + "500" : { + "$ref" : "#/components/responses/InternalError" } - } + }, + "tags" : [ "teams" ] } }, - "/teams/{team_name}/invitations/{email}": { - "delete": { - "operationId": "CancelTeamInvitation", - "description": "Cancel an invitation to the team, preventing the user becoming a team member", - "tags": [ - "teams" - ], - "parameters": [ - { - "$ref": "#/components/parameters/team_name" - }, - { - "$ref": "#/components/parameters/email" - } - ], - "responses": { - "204": { - "description": "Response" + "/teams/{team_name}/invitations/{email}" : { + "delete" : { + "description" : "Cancel an invitation to the team, preventing the user becoming a team member", + "operationId" : "CancelTeamInvitation", + "parameters" : [ { + "$ref" : "#/components/parameters/team_name" + }, { + "$ref" : "#/components/parameters/email" + } ], + "responses" : { + "204" : { + "description" : "Response" }, - "400": { - "$ref": "#/components/responses/BadRequest" + "400" : { + "$ref" : "#/components/responses/BadRequest" }, - "401": { - "$ref": "#/components/responses/RequiresAuthentication" + "401" : { + "$ref" : "#/components/responses/RequiresAuthentication" }, - "403": { - "$ref": "#/components/responses/Forbidden" + "403" : { + "$ref" : "#/components/responses/Forbidden" }, - "404": { - "$ref": "#/components/responses/NotFound" + "404" : { + "$ref" : "#/components/responses/NotFound" }, - "500": { - "$ref": "#/components/responses/InternalError" + "500" : { + "$ref" : "#/components/responses/InternalError" } - } + }, + "tags" : [ "teams" ] } }, - "/teams/{team_name}/subscription-orders": { - "get": { - "description": "List all subscription orders for the team.", - "operationId": "ListSubscriptionOrdersByTeam", - "parameters": [ - { - "$ref": "#/components/parameters/team_name" - }, - { - "$ref": "#/components/parameters/page" - }, - { - "$ref": "#/components/parameters/per_page" - } - ], - "responses": { - "200": { - "description": "Response", - "content": { - "application/json": { - "schema": { - "required": [ - "items", - "metadata" - ], - "properties": { - "items": { - "items": { - "$ref": "#/components/schemas/TeamSubscriptionOrder" - }, - "type": "array" - }, - "metadata": { - "$ref": "#/components/schemas/ListMetadata" - } - } + "/teams/{team_name}/subscription-orders" : { + "get" : { + "description" : "List all subscription orders for the team.", + "operationId" : "ListSubscriptionOrdersByTeam", + "parameters" : [ { + "$ref" : "#/components/parameters/team_name" + }, { + "$ref" : "#/components/parameters/page" + }, { + "$ref" : "#/components/parameters/per_page" + } ], + "responses" : { + "200" : { + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/ListSubscriptionOrdersByTeam_200_response" } } - } + }, + "description" : "Response" }, - "401": { - "$ref": "#/components/responses/RequiresAuthentication" + "401" : { + "$ref" : "#/components/responses/RequiresAuthentication" }, - "403": { - "$ref": "#/components/responses/Forbidden" + "403" : { + "$ref" : "#/components/responses/Forbidden" }, - "404": { - "$ref": "#/components/responses/NotFound" + "404" : { + "$ref" : "#/components/responses/NotFound" }, - "500": { - "$ref": "#/components/responses/InternalError" + "500" : { + "$ref" : "#/components/responses/InternalError" } }, - "tags": [ - "teams" - ] + "tags" : [ "teams" ] }, - "post": { - "description": "Start the checkout process for a subscription order.", - "operationId": "CreateSubscriptionOrderForTeam", - "parameters": [ - { - "$ref": "#/components/parameters/team_name" - } - ], - "requestBody": { - "required": true, - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/TeamSubscriptionOrderCreate" + "post" : { + "description" : "Start the checkout process for a subscription order.", + "operationId" : "CreateSubscriptionOrderForTeam", + "parameters" : [ { + "$ref" : "#/components/parameters/team_name" + } ], + "requestBody" : { + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/TeamSubscriptionOrderCreate" } } - } + }, + "required" : true }, - "responses": { - "201": { - "description": "Response", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/TeamSubscriptionOrder" + "responses" : { + "201" : { + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/TeamSubscriptionOrder" } } - } + }, + "description" : "Response" }, - "400": { - "$ref": "#/components/responses/BadRequest" + "400" : { + "$ref" : "#/components/responses/BadRequest" }, - "401": { - "$ref": "#/components/responses/RequiresAuthentication" + "401" : { + "$ref" : "#/components/responses/RequiresAuthentication" }, - "403": { - "$ref": "#/components/responses/Forbidden" + "403" : { + "$ref" : "#/components/responses/Forbidden" }, - "404": { - "$ref": "#/components/responses/NotFound" + "404" : { + "$ref" : "#/components/responses/NotFound" }, - "422": { - "$ref": "#/components/responses/UnprocessableEntity" + "422" : { + "$ref" : "#/components/responses/UnprocessableEntity" }, - "500": { - "$ref": "#/components/responses/InternalError" + "500" : { + "$ref" : "#/components/responses/InternalError" } }, - "tags": [ - "teams" - ] + "tags" : [ "teams" ] } }, - "/teams/{team_name}/subscription-orders/{subscription_order_id}": { - "get": { - "description": "Get a subscription order for the team.", - "operationId": "GetSubscriptionOrderByTeam", - "parameters": [ - { - "$ref": "#/components/parameters/team_name" - }, - { - "$ref": "#/components/parameters/team_subscription_order_id" - } - ], - "responses": { - "200": { - "description": "Response", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/TeamSubscriptionOrder" + "/teams/{team_name}/subscription-orders/{subscription_order_id}" : { + "get" : { + "description" : "Get a subscription order for the team.", + "operationId" : "GetSubscriptionOrderByTeam", + "parameters" : [ { + "$ref" : "#/components/parameters/team_name" + }, { + "$ref" : "#/components/parameters/team_subscription_order_id" + } ], + "responses" : { + "200" : { + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/TeamSubscriptionOrder" } } - } + }, + "description" : "Response" }, - "401": { - "$ref": "#/components/responses/RequiresAuthentication" + "401" : { + "$ref" : "#/components/responses/RequiresAuthentication" }, - "403": { - "$ref": "#/components/responses/Forbidden" + "403" : { + "$ref" : "#/components/responses/Forbidden" }, - "404": { - "$ref": "#/components/responses/NotFound" + "404" : { + "$ref" : "#/components/responses/NotFound" }, - "500": { - "$ref": "#/components/responses/InternalError" + "500" : { + "$ref" : "#/components/responses/InternalError" } }, - "tags": [ - "teams" - ] + "tags" : [ "teams" ] } }, - "/teams/{team_name}/users": { - "get": { - "description": "List all users in the current team.", - "operationId": "ListUsersByTeam", - "parameters": [ - { - "$ref": "#/components/parameters/team_name" - }, - { - "$ref": "#/components/parameters/per_page" - }, - { - "$ref": "#/components/parameters/page" - } - ], - "responses": { - "200": { - "description": "Response", - "content": { - "application/json": { - "schema": { - "required": [ - "items", - "metadata" - ], - "properties": { - "items": { - "items": { - "$ref": "#/components/schemas/User" - }, - "type": "array" - }, - "metadata": { - "$ref": "#/components/schemas/ListMetadata" - } - } + "/teams/{team_name}/users" : { + "get" : { + "description" : "List all users in the current team.", + "operationId" : "ListUsersByTeam", + "parameters" : [ { + "$ref" : "#/components/parameters/team_name" + }, { + "$ref" : "#/components/parameters/per_page" + }, { + "$ref" : "#/components/parameters/page" + } ], + "responses" : { + "200" : { + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/ListUsersByTeam_200_response" } } - } + }, + "description" : "Response" }, - "400": { - "$ref": "#/components/responses/BadRequest" + "400" : { + "$ref" : "#/components/responses/BadRequest" }, - "401": { - "$ref": "#/components/responses/RequiresAuthentication" + "401" : { + "$ref" : "#/components/responses/RequiresAuthentication" }, - "403": { - "$ref": "#/components/responses/Forbidden" + "403" : { + "$ref" : "#/components/responses/Forbidden" }, - "404": { - "$ref": "#/components/responses/NotFound" + "404" : { + "$ref" : "#/components/responses/NotFound" }, - "500": { - "$ref": "#/components/responses/InternalError" + "500" : { + "$ref" : "#/components/responses/InternalError" } }, - "tags": [ - "teams" - ] + "tags" : [ "teams" ] } }, - "/user": { - "get": { - "description": "Get the current authenticated user from the OAuth token\n", - "operationId": "GetCurrentUser", - "parameters": [], - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/User" + "/user" : { + "get" : { + "description" : "Get the current authenticated user from the OAuth token\n", + "operationId" : "GetCurrentUser", + "parameters" : [ ], + "responses" : { + "200" : { + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/User" } } }, - "description": "Response" + "description" : "Response" }, - "401": { - "$ref": "#/components/responses/RequiresAuthentication" + "401" : { + "$ref" : "#/components/responses/RequiresAuthentication" }, - "403": { - "$ref": "#/components/responses/Forbidden" + "403" : { + "$ref" : "#/components/responses/Forbidden" }, - "500": { - "$ref": "#/components/responses/InternalError" + "500" : { + "$ref" : "#/components/responses/InternalError" } }, - "tags": [ - "users" - ] + "tags" : [ "users" ] }, - "patch": { - "description": "Update attributes for the current authenticated user from the OAuth token", - "operationId": "UpdateCurrentUser", - "parameters": [], - "requestBody": { - "content": { - "application/json": { - "schema": { - "type": "object", - "additionalProperties": false, - "properties": { - "name": { - "type": "string", - "description": "The user's name", - "minLength": 1, - "maxLength": 255 - } - } + "patch" : { + "description" : "Update attributes for the current authenticated user from the OAuth token", + "operationId" : "UpdateCurrentUser", + "parameters" : [ ], + "requestBody" : { + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/UpdateCurrentUser_request" } } } }, - "responses": { - "200": { - "description": "Response", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/User" + "responses" : { + "200" : { + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/User" } } - } + }, + "description" : "Response" }, - "400": { - "$ref": "#/components/responses/BadRequest" + "400" : { + "$ref" : "#/components/responses/BadRequest" }, - "401": { - "$ref": "#/components/responses/RequiresAuthentication" + "401" : { + "$ref" : "#/components/responses/RequiresAuthentication" }, - "403": { - "$ref": "#/components/responses/Forbidden" + "403" : { + "$ref" : "#/components/responses/Forbidden" }, - "405": { - "$ref": "#/components/responses/MethodNotAllowed" + "405" : { + "$ref" : "#/components/responses/MethodNotAllowed" }, - "500": { - "$ref": "#/components/responses/InternalError" + "500" : { + "$ref" : "#/components/responses/InternalError" } }, - "tags": [ - "users" - ] + "tags" : [ "users" ] } }, - "/user/invitations": { - "get": { - "operationId": "ListCurrentUserInvitations", - "description": "List of the current user's unaccepted invitations", - "tags": [ - "users" - ], - "parameters": [ - { - "$ref": "#/components/parameters/page" - }, - { - "$ref": "#/components/parameters/per_page" - } - ], - "responses": { - "200": { - "description": "Response", - "content": { - "application/json": { - "schema": { - "required": [ - "items", - "metadata" - ], - "properties": { - "items": { - "type": "array", - "items": { - "$ref": "#/components/schemas/InvitationWithToken" - } - }, - "metadata": { - "$ref": "#/components/schemas/ListMetadata" - } - } + "/user/invitations" : { + "get" : { + "description" : "List of the current user's unaccepted invitations", + "operationId" : "ListCurrentUserInvitations", + "parameters" : [ { + "$ref" : "#/components/parameters/page" + }, { + "$ref" : "#/components/parameters/per_page" + } ], + "responses" : { + "200" : { + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/ListCurrentUserInvitations_200_response" } } - } + }, + "description" : "Response" }, - "500": { - "$ref": "#/components/responses/InternalError" + "500" : { + "$ref" : "#/components/responses/InternalError" } - } + }, + "tags" : [ "users" ] } }, - "/user/memberships": { - "get": { - "description": "Get memberships that the user has accepted.", - "operationId": "GetCurrentUserMemberships", - "parameters": [ - { - "$ref": "#/components/parameters/page" - }, - { - "$ref": "#/components/parameters/per_page" - } - ], - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "required": [ - "metadata", - "items" - ], - "properties": { - "items": { - "items": { - "$ref": "#/components/schemas/MembershipWithTeam" - }, - "type": "array", - "example": [ - { - "role": "admin", - "team": { - "created_at": "2017-07-14T16:53:42Z", - "name": "cloudquery", - "display_name": "CloudQuery", - "plan": "free", - "is_trial_active": false - } - } - ] - }, - "metadata": { - "$ref": "#/components/schemas/ListMetadata" - } - } + "/user/memberships" : { + "get" : { + "description" : "Get memberships that the user has accepted.", + "operationId" : "GetCurrentUserMemberships", + "parameters" : [ { + "$ref" : "#/components/parameters/page" + }, { + "$ref" : "#/components/parameters/per_page" + } ], + "responses" : { + "200" : { + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/GetCurrentUserMemberships_200_response" } } }, - "description": "Response" + "description" : "Response" }, - "401": { - "$ref": "#/components/responses/RequiresAuthentication" + "401" : { + "$ref" : "#/components/responses/RequiresAuthentication" }, - "403": { - "$ref": "#/components/responses/Forbidden" + "403" : { + "$ref" : "#/components/responses/Forbidden" }, - "500": { - "$ref": "#/components/responses/InternalError" + "500" : { + "$ref" : "#/components/responses/InternalError" } }, - "tags": [ - "users" - ] + "tags" : [ "users" ] } }, - "/users/{user_id}": { - "delete": { - "description": "Delete user", - "operationId": "DeleteUser", - "parameters": [ - { - "$ref": "#/components/parameters/user_id" - } - ], - "x-internal": true, - "responses": { - "204": { - "description": "Response" + "/users/{user_id}" : { + "delete" : { + "description" : "Delete user", + "operationId" : "DeleteUser", + "parameters" : [ { + "$ref" : "#/components/parameters/user_id" + } ], + "responses" : { + "204" : { + "description" : "Response" }, - "400": { - "$ref": "#/components/responses/BadRequest" + "400" : { + "$ref" : "#/components/responses/BadRequest" }, - "401": { - "$ref": "#/components/responses/RequiresAuthentication" + "401" : { + "$ref" : "#/components/responses/RequiresAuthentication" }, - "403": { - "$ref": "#/components/responses/Forbidden" + "403" : { + "$ref" : "#/components/responses/Forbidden" }, - "404": { - "$ref": "#/components/responses/NotFound" + "404" : { + "$ref" : "#/components/responses/NotFound" }, - "422": { - "$ref": "#/components/responses/UnprocessableEntity" + "422" : { + "$ref" : "#/components/responses/UnprocessableEntity" }, - "500": { - "$ref": "#/components/responses/InternalError" + "500" : { + "$ref" : "#/components/responses/InternalError" } }, - "tags": [ - "users" - ] + "tags" : [ "users" ], + "x-internal" : true } }, - "/teams/{team_name}/apikeys": { - "get": { - "description": "List all team API Keys", - "operationId": "ListTeamAPIKeys", - "tags": [ - "teams" - ], - "parameters": [ - { - "$ref": "#/components/parameters/team_name" - }, - { - "$ref": "#/components/parameters/per_page" - }, - { - "$ref": "#/components/parameters/page" - } - ], - "responses": { - "200": { - "description": "Response", - "content": { - "application/json": { - "schema": { - "required": [ - "items", - "metadata" - ], - "properties": { - "items": { - "items": { - "$ref": "#/components/schemas/APIKey" - }, - "type": "array" - }, - "metadata": { - "$ref": "#/components/schemas/ListMetadata" - } - } + "/teams/{team_name}/apikeys" : { + "get" : { + "description" : "List all team API Keys", + "operationId" : "ListTeamAPIKeys", + "parameters" : [ { + "$ref" : "#/components/parameters/team_name" + }, { + "$ref" : "#/components/parameters/per_page" + }, { + "$ref" : "#/components/parameters/page" + } ], + "responses" : { + "200" : { + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/ListTeamAPIKeys_200_response" } } - } + }, + "description" : "Response" }, - "401": { - "$ref": "#/components/responses/RequiresAuthentication" + "401" : { + "$ref" : "#/components/responses/RequiresAuthentication" }, - "404": { - "$ref": "#/components/responses/NotFound" + "404" : { + "$ref" : "#/components/responses/NotFound" }, - "500": { - "$ref": "#/components/responses/InternalError" + "500" : { + "$ref" : "#/components/responses/InternalError" } - } + }, + "tags" : [ "teams" ] }, - "post": { - "description": "Create new team API Key.", - "operationId": "CreateTeamAPIKey", - "tags": [ - "teams" - ], - "parameters": [ - { - "$ref": "#/components/parameters/team_name" - } - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "type": "object", - "required": [ - "expires_at", - "name" - ], - "properties": { - "name": { - "$ref": "#/components/schemas/APIKeyName" - }, - "expires_at": { - "type": "string", - "format": "date-time" - } - } + "post" : { + "description" : "Create new team API Key.", + "operationId" : "CreateTeamAPIKey", + "parameters" : [ { + "$ref" : "#/components/parameters/team_name" + } ], + "requestBody" : { + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/CreateTeamAPIKey_request" } } } }, - "responses": { - "201": { - "description": "Response", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/APIKey" + "responses" : { + "201" : { + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/APIKey" } } - } + }, + "description" : "Response" }, - "400": { - "$ref": "#/components/responses/BadRequest" + "400" : { + "$ref" : "#/components/responses/BadRequest" }, - "401": { - "$ref": "#/components/responses/RequiresAuthentication" + "401" : { + "$ref" : "#/components/responses/RequiresAuthentication" }, - "422": { - "$ref": "#/components/responses/UnprocessableEntity" + "422" : { + "$ref" : "#/components/responses/UnprocessableEntity" }, - "500": { - "$ref": "#/components/responses/InternalError" + "500" : { + "$ref" : "#/components/responses/InternalError" } - } + }, + "tags" : [ "teams" ] } }, - "/teams/{team_name}/apikeys/{apikey_id}": { - "delete": { - "description": "Delete API Key. This will remove any future access by this API Key.", - "operationId": "DeleteTeamAPIKey", - "tags": [ - "teams" - ], - "parameters": [ - { - "$ref": "#/components/parameters/team_name" - }, - { - "$ref": "#/components/parameters/apikey_id" - } - ], - "responses": { - "204": { - "description": "Deleted" + "/teams/{team_name}/apikeys/{apikey_id}" : { + "delete" : { + "description" : "Delete API Key. This will remove any future access by this API Key.", + "operationId" : "DeleteTeamAPIKey", + "parameters" : [ { + "$ref" : "#/components/parameters/team_name" + }, { + "$ref" : "#/components/parameters/apikey_id" + } ], + "responses" : { + "204" : { + "description" : "Deleted" }, - "400": { - "$ref": "#/components/responses/BadRequest" + "400" : { + "$ref" : "#/components/responses/BadRequest" }, - "401": { - "$ref": "#/components/responses/RequiresAuthentication" + "401" : { + "$ref" : "#/components/responses/RequiresAuthentication" }, - "404": { - "$ref": "#/components/responses/NotFound" + "404" : { + "$ref" : "#/components/responses/NotFound" }, - "500": { - "$ref": "#/components/responses/InternalError" + "500" : { + "$ref" : "#/components/responses/InternalError" } - } + }, + "tags" : [ "teams" ] } }, - "/registry/auth": { - "get": { - "description": "Performs authentication and authorization for our image registry.", - "operationId": "AuthRegistryRequest", - "parameters": [ - { - "in": "header", - "name": "X-Meta-Plugin-Version", - "schema": { - "type": "string" - }, - "description": "Plugin version name", - "example": "v1.0.0" - }, - { - "in": "header", - "name": "X-Meta-User-Team-Name", - "schema": { - "type": "string" - }, - "description": "User's team name" - }, - { - "in": "query", - "name": "account", - "schema": { - "type": "string" - }, - "description": "Username used for `docker login`" - }, - { - "in": "query", - "name": "service", - "schema": { - "type": "string" - }, - "description": "Service requesting the JTW token" - }, - { - "in": "query", - "name": "scope", - "schema": { - "type": "string" - }, - "description": "Multi-value string containing the repository being access and the operation type (push/pull)" - } - ], - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/RegistryAuthToken" + "/registry/auth" : { + "get" : { + "description" : "Performs authentication and authorization for our image registry.", + "operationId" : "AuthRegistryRequest", + "parameters" : [ { + "description" : "Plugin version name", + "example" : "v1.0.0", + "explode" : false, + "in" : "header", + "name" : "X-Meta-Plugin-Version", + "required" : false, + "schema" : { + "type" : "string" + }, + "style" : "simple" + }, { + "description" : "User's team name", + "explode" : false, + "in" : "header", + "name" : "X-Meta-User-Team-Name", + "required" : false, + "schema" : { + "type" : "string" + }, + "style" : "simple" + }, { + "description" : "Username used for `docker login`", + "explode" : true, + "in" : "query", + "name" : "account", + "required" : false, + "schema" : { + "type" : "string" + }, + "style" : "form" + }, { + "description" : "Service requesting the JTW token", + "explode" : true, + "in" : "query", + "name" : "service", + "required" : false, + "schema" : { + "type" : "string" + }, + "style" : "form" + }, { + "description" : "Multi-value string containing the repository being access and the operation type (push/pull)", + "explode" : true, + "in" : "query", + "name" : "scope", + "required" : false, + "schema" : { + "type" : "string" + }, + "style" : "form" + } ], + "responses" : { + "200" : { + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/RegistryAuthToken" } } }, - "description": "Response" + "description" : "Response" }, - "400": { - "$ref": "#/components/responses/DockerError" + "400" : { + "$ref" : "#/components/responses/DockerError" }, - "401": { - "$ref": "#/components/responses/DockerError" + "401" : { + "$ref" : "#/components/responses/DockerError" }, - "404": { - "$ref": "#/components/responses/DockerError" + "404" : { + "$ref" : "#/components/responses/DockerError" }, - "422": { - "$ref": "#/components/responses/DockerError" + "422" : { + "$ref" : "#/components/responses/DockerError" }, - "500": { - "$ref": "#/components/responses/DockerError" + "500" : { + "$ref" : "#/components/responses/DockerError" } }, - "tags": [ - "registry" - ], - "security": [ - { - "basicAuth": [] - } - ] + "security" : [ { + "basicAuth" : [ ] + } ], + "tags" : [ "registry" ] } }, - "/teams/{team_name}/sync-sources": { - "get": { - "description": "List all sync source definitions.", - "operationId": "ListSyncSources", - "tags": [ - "syncs" - ], - "parameters": [ - { - "$ref": "#/components/parameters/team_name" - }, - { - "$ref": "#/components/parameters/per_page" - }, - { - "$ref": "#/components/parameters/page" - } - ], - "responses": { - "200": { - "description": "Response", - "content": { - "application/json": { - "schema": { - "required": [ - "items", - "metadata" - ], - "properties": { - "items": { - "items": { - "$ref": "#/components/schemas/SyncSource" - }, - "type": "array" - }, - "metadata": { - "$ref": "#/components/schemas/ListMetadata" - } - } + "/teams/{team_name}/sync-sources" : { + "get" : { + "description" : "List all sync source definitions.", + "operationId" : "ListSyncSources", + "parameters" : [ { + "$ref" : "#/components/parameters/team_name" + }, { + "$ref" : "#/components/parameters/per_page" + }, { + "$ref" : "#/components/parameters/page" + } ], + "responses" : { + "200" : { + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/ListSyncSources_200_response" } } - } + }, + "description" : "Response" }, - "401": { - "$ref": "#/components/responses/RequiresAuthentication" + "401" : { + "$ref" : "#/components/responses/RequiresAuthentication" }, - "404": { - "$ref": "#/components/responses/NotFound" + "404" : { + "$ref" : "#/components/responses/NotFound" }, - "500": { - "$ref": "#/components/responses/InternalError" + "500" : { + "$ref" : "#/components/responses/InternalError" } - } + }, + "tags" : [ "syncs" ] }, - "post": { - "description": "Create new Sync Source definition.", - "operationId": "CreateSyncSource", - "tags": [ - "syncs" - ], - "parameters": [ - { - "$ref": "#/components/parameters/team_name" - } - ], - "requestBody": { - "required": true, - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/SyncSourceCreate" + "post" : { + "description" : "Create new Sync Source definition.", + "operationId" : "CreateSyncSource", + "parameters" : [ { + "$ref" : "#/components/parameters/team_name" + } ], + "requestBody" : { + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/SyncSourceCreate" } } - } + }, + "required" : true }, - "responses": { - "201": { - "description": "Response", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/SyncSource" + "responses" : { + "201" : { + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/SyncSource" } } - } + }, + "description" : "Response" }, - "400": { - "$ref": "#/components/responses/BadRequest" + "400" : { + "$ref" : "#/components/responses/BadRequest" }, - "401": { - "$ref": "#/components/responses/RequiresAuthentication" + "401" : { + "$ref" : "#/components/responses/RequiresAuthentication" }, - "404": { - "$ref": "#/components/responses/NotFound" + "404" : { + "$ref" : "#/components/responses/NotFound" }, - "422": { - "$ref": "#/components/responses/UnprocessableEntity" + "422" : { + "$ref" : "#/components/responses/UnprocessableEntity" }, - "500": { - "$ref": "#/components/responses/InternalError" + "500" : { + "$ref" : "#/components/responses/InternalError" } - } + }, + "tags" : [ "syncs" ] } }, - "/teams/{team_name}/sync-sources/test": { - "post": { - "description": "Test a Sync Source definition.", - "operationId": "TestSyncSource", - "tags": [ - "syncs" - ], - "parameters": [ - { - "$ref": "#/components/parameters/team_name" - } - ], - "requestBody": { - "required": true, - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/SyncSourceCreate" - } - } - } - }, - "responses": { - "201": { - "description": "Response", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/SyncTestConnection" + "/teams/{team_name}/sync-sources/test" : { + "post" : { + "description" : "Test a Sync Source definition.", + "operationId" : "TestSyncSource", + "parameters" : [ { + "$ref" : "#/components/parameters/team_name" + } ], + "requestBody" : { + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/SyncSourceCreate" + } + } + }, + "required" : true + }, + "responses" : { + "201" : { + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/SyncTestConnection" } } - } + }, + "description" : "Response" }, - "400": { - "$ref": "#/components/responses/BadRequest" + "400" : { + "$ref" : "#/components/responses/BadRequest" }, - "401": { - "$ref": "#/components/responses/RequiresAuthentication" + "401" : { + "$ref" : "#/components/responses/RequiresAuthentication" }, - "404": { - "$ref": "#/components/responses/NotFound" + "404" : { + "$ref" : "#/components/responses/NotFound" }, - "422": { - "$ref": "#/components/responses/UnprocessableEntity" + "422" : { + "$ref" : "#/components/responses/UnprocessableEntity" }, - "500": { - "$ref": "#/components/responses/InternalError" + "500" : { + "$ref" : "#/components/responses/InternalError" } - } + }, + "tags" : [ "syncs" ] } }, - "/teams/{team_name}/sync-sources/{sync_source_name}": { - "get": { - "description": "Get a single sync source definition.", - "operationId": "GetSyncSource", - "tags": [ - "syncs" - ], - "parameters": [ - { - "$ref": "#/components/parameters/team_name" - }, - { - "$ref": "#/components/parameters/sync_source_name" - } - ], - "responses": { - "200": { - "description": "Response", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/SyncSource" + "/teams/{team_name}/sync-sources/{sync_source_name}" : { + "delete" : { + "description" : "Delete a Sync Source definition. Any syncs relying on this source must be deleted first.", + "operationId" : "DeleteSyncSource", + "parameters" : [ { + "$ref" : "#/components/parameters/team_name" + }, { + "$ref" : "#/components/parameters/sync_source_name" + } ], + "responses" : { + "204" : { + "description" : "Deleted" + }, + "401" : { + "$ref" : "#/components/responses/RequiresAuthentication" + }, + "404" : { + "$ref" : "#/components/responses/NotFound" + }, + "422" : { + "$ref" : "#/components/responses/UnprocessableEntity" + }, + "500" : { + "$ref" : "#/components/responses/InternalError" + } + }, + "tags" : [ "syncs" ] + }, + "get" : { + "description" : "Get a single sync source definition.", + "operationId" : "GetSyncSource", + "parameters" : [ { + "$ref" : "#/components/parameters/team_name" + }, { + "$ref" : "#/components/parameters/sync_source_name" + } ], + "responses" : { + "200" : { + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/SyncSource" } } - } + }, + "description" : "Response" }, - "401": { - "$ref": "#/components/responses/RequiresAuthentication" + "401" : { + "$ref" : "#/components/responses/RequiresAuthentication" }, - "404": { - "$ref": "#/components/responses/NotFound" + "404" : { + "$ref" : "#/components/responses/NotFound" }, - "500": { - "$ref": "#/components/responses/InternalError" + "500" : { + "$ref" : "#/components/responses/InternalError" } - } + }, + "tags" : [ "syncs" ] }, - "patch": { - "description": "Update a Sync Source definition.", - "operationId": "UpdateSyncSource", - "tags": [ - "syncs" - ], - "parameters": [ - { - "$ref": "#/components/parameters/team_name" - }, - { - "$ref": "#/components/parameters/sync_source_name" - } - ], - "requestBody": { - "required": true, - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/SyncSourceUpdate" + "patch" : { + "description" : "Update a Sync Source definition.", + "operationId" : "UpdateSyncSource", + "parameters" : [ { + "$ref" : "#/components/parameters/team_name" + }, { + "$ref" : "#/components/parameters/sync_source_name" + } ], + "requestBody" : { + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/SyncSourceUpdate" } } - } + }, + "required" : true }, - "responses": { - "200": { - "description": "Response", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/SyncSource" + "responses" : { + "200" : { + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/SyncSource" } } - } - }, - "400": { - "$ref": "#/components/responses/BadRequest" - }, - "401": { - "$ref": "#/components/responses/RequiresAuthentication" - }, - "404": { - "$ref": "#/components/responses/NotFound" - }, - "422": { - "$ref": "#/components/responses/UnprocessableEntity" - }, - "500": { - "$ref": "#/components/responses/InternalError" - } - } - }, - "delete": { - "description": "Delete a Sync Source definition. Any syncs relying on this source must be deleted first.", - "operationId": "DeleteSyncSource", - "tags": [ - "syncs" - ], - "parameters": [ - { - "$ref": "#/components/parameters/team_name" + }, + "description" : "Response" }, - { - "$ref": "#/components/parameters/sync_source_name" - } - ], - "responses": { - "204": { - "description": "Deleted" + "400" : { + "$ref" : "#/components/responses/BadRequest" }, - "401": { - "$ref": "#/components/responses/RequiresAuthentication" + "401" : { + "$ref" : "#/components/responses/RequiresAuthentication" }, - "404": { - "$ref": "#/components/responses/NotFound" + "404" : { + "$ref" : "#/components/responses/NotFound" }, - "422": { - "$ref": "#/components/responses/UnprocessableEntity" + "422" : { + "$ref" : "#/components/responses/UnprocessableEntity" }, - "500": { - "$ref": "#/components/responses/InternalError" + "500" : { + "$ref" : "#/components/responses/InternalError" } - } + }, + "tags" : [ "syncs" ] } }, - "/teams/{team_name}/sync-destinations": { - "get": { - "description": "List all sync destination definitions.", - "operationId": "ListSyncDestinations", - "tags": [ - "syncs" - ], - "parameters": [ - { - "$ref": "#/components/parameters/team_name" - }, - { - "$ref": "#/components/parameters/per_page" - }, - { - "$ref": "#/components/parameters/page" - } - ], - "responses": { - "200": { - "description": "Response", - "content": { - "application/json": { - "schema": { - "required": [ - "items", - "metadata" - ], - "properties": { - "items": { - "items": { - "$ref": "#/components/schemas/SyncDestination" - }, - "type": "array" - }, - "metadata": { - "$ref": "#/components/schemas/ListMetadata" - } - } + "/teams/{team_name}/sync-destinations" : { + "get" : { + "description" : "List all sync destination definitions.", + "operationId" : "ListSyncDestinations", + "parameters" : [ { + "$ref" : "#/components/parameters/team_name" + }, { + "$ref" : "#/components/parameters/per_page" + }, { + "$ref" : "#/components/parameters/page" + } ], + "responses" : { + "200" : { + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/ListSyncDestinations_200_response" } } - } + }, + "description" : "Response" }, - "401": { - "$ref": "#/components/responses/RequiresAuthentication" + "401" : { + "$ref" : "#/components/responses/RequiresAuthentication" }, - "404": { - "$ref": "#/components/responses/NotFound" + "404" : { + "$ref" : "#/components/responses/NotFound" }, - "500": { - "$ref": "#/components/responses/InternalError" + "500" : { + "$ref" : "#/components/responses/InternalError" } - } + }, + "tags" : [ "syncs" ] }, - "post": { - "description": "Create new Sync Destination definition.", - "operationId": "CreateSyncDestination", - "tags": [ - "syncs" - ], - "parameters": [ - { - "$ref": "#/components/parameters/team_name" - } - ], - "requestBody": { - "required": true, - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/SyncDestinationCreate" + "post" : { + "description" : "Create new Sync Destination definition.", + "operationId" : "CreateSyncDestination", + "parameters" : [ { + "$ref" : "#/components/parameters/team_name" + } ], + "requestBody" : { + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/SyncDestinationCreate" } } - } + }, + "required" : true }, - "responses": { - "201": { - "description": "Response", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/SyncDestination" + "responses" : { + "201" : { + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/SyncDestination" } } - } + }, + "description" : "Response" }, - "400": { - "$ref": "#/components/responses/BadRequest" + "400" : { + "$ref" : "#/components/responses/BadRequest" }, - "401": { - "$ref": "#/components/responses/RequiresAuthentication" + "401" : { + "$ref" : "#/components/responses/RequiresAuthentication" }, - "404": { - "$ref": "#/components/responses/NotFound" + "404" : { + "$ref" : "#/components/responses/NotFound" }, - "422": { - "$ref": "#/components/responses/UnprocessableEntity" + "422" : { + "$ref" : "#/components/responses/UnprocessableEntity" }, - "500": { - "$ref": "#/components/responses/InternalError" + "500" : { + "$ref" : "#/components/responses/InternalError" } - } + }, + "tags" : [ "syncs" ] } }, - "/teams/{team_name}/sync-destinations/test": { - "post": { - "description": "Test a Sync Destination definition.", - "operationId": "TestSyncDestination", - "tags": [ - "syncs" - ], - "parameters": [ - { - "$ref": "#/components/parameters/team_name" - } - ], - "requestBody": { - "required": true, - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/SyncDestinationCreate" - } - } - } - }, - "responses": { - "201": { - "description": "Response", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/SyncTestConnection" + "/teams/{team_name}/sync-destinations/test" : { + "post" : { + "description" : "Test a Sync Destination definition.", + "operationId" : "TestSyncDestination", + "parameters" : [ { + "$ref" : "#/components/parameters/team_name" + } ], + "requestBody" : { + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/SyncDestinationCreate" + } + } + }, + "required" : true + }, + "responses" : { + "201" : { + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/SyncTestConnection" } } - } + }, + "description" : "Response" }, - "400": { - "$ref": "#/components/responses/BadRequest" + "400" : { + "$ref" : "#/components/responses/BadRequest" }, - "401": { - "$ref": "#/components/responses/RequiresAuthentication" + "401" : { + "$ref" : "#/components/responses/RequiresAuthentication" }, - "404": { - "$ref": "#/components/responses/NotFound" + "404" : { + "$ref" : "#/components/responses/NotFound" }, - "422": { - "$ref": "#/components/responses/UnprocessableEntity" + "422" : { + "$ref" : "#/components/responses/UnprocessableEntity" }, - "500": { - "$ref": "#/components/responses/InternalError" + "500" : { + "$ref" : "#/components/responses/InternalError" } - } + }, + "tags" : [ "syncs" ] } }, - "/teams/{team_name}/sync-destinations/{sync_destination_name}": { - "get": { - "description": "Get a single sync destination definition.", - "operationId": "GetSyncDestination", - "tags": [ - "syncs" - ], - "parameters": [ - { - "$ref": "#/components/parameters/team_name" - }, - { - "$ref": "#/components/parameters/sync_destination_name" - } - ], - "responses": { - "200": { - "description": "Response", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/SyncDestination" + "/teams/{team_name}/sync-destinations/{sync_destination_name}" : { + "delete" : { + "description" : "Delete a Sync Destination definition. Any syncs relying on this destination must be deleted first.", + "operationId" : "DeleteSyncDestination", + "parameters" : [ { + "$ref" : "#/components/parameters/team_name" + }, { + "$ref" : "#/components/parameters/sync_destination_name" + } ], + "responses" : { + "204" : { + "description" : "Deleted" + }, + "401" : { + "$ref" : "#/components/responses/RequiresAuthentication" + }, + "404" : { + "$ref" : "#/components/responses/NotFound" + }, + "422" : { + "$ref" : "#/components/responses/UnprocessableEntity" + }, + "500" : { + "$ref" : "#/components/responses/InternalError" + } + }, + "tags" : [ "syncs" ] + }, + "get" : { + "description" : "Get a single sync destination definition.", + "operationId" : "GetSyncDestination", + "parameters" : [ { + "$ref" : "#/components/parameters/team_name" + }, { + "$ref" : "#/components/parameters/sync_destination_name" + } ], + "responses" : { + "200" : { + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/SyncDestination" } } - } + }, + "description" : "Response" }, - "401": { - "$ref": "#/components/responses/RequiresAuthentication" + "401" : { + "$ref" : "#/components/responses/RequiresAuthentication" }, - "404": { - "$ref": "#/components/responses/NotFound" + "404" : { + "$ref" : "#/components/responses/NotFound" }, - "500": { - "$ref": "#/components/responses/InternalError" + "500" : { + "$ref" : "#/components/responses/InternalError" } - } + }, + "tags" : [ "syncs" ] }, - "patch": { - "description": "Update a Sync Destination definition.", - "operationId": "UpdateSyncDestination", - "tags": [ - "syncs" - ], - "parameters": [ - { - "$ref": "#/components/parameters/team_name" - }, - { - "$ref": "#/components/parameters/sync_destination_name" - } - ], - "requestBody": { - "required": true, - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/SyncDestinationUpdate" + "patch" : { + "description" : "Update a Sync Destination definition.", + "operationId" : "UpdateSyncDestination", + "parameters" : [ { + "$ref" : "#/components/parameters/team_name" + }, { + "$ref" : "#/components/parameters/sync_destination_name" + } ], + "requestBody" : { + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/SyncDestinationUpdate" } } - } + }, + "required" : true }, - "responses": { - "200": { - "description": "Response", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/SyncDestination" + "responses" : { + "200" : { + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/SyncDestination" } } - } + }, + "description" : "Response" }, - "400": { - "$ref": "#/components/responses/BadRequest" + "400" : { + "$ref" : "#/components/responses/BadRequest" }, - "401": { - "$ref": "#/components/responses/RequiresAuthentication" + "401" : { + "$ref" : "#/components/responses/RequiresAuthentication" }, - "404": { - "$ref": "#/components/responses/NotFound" + "404" : { + "$ref" : "#/components/responses/NotFound" }, - "422": { - "$ref": "#/components/responses/UnprocessableEntity" + "422" : { + "$ref" : "#/components/responses/UnprocessableEntity" }, - "500": { - "$ref": "#/components/responses/InternalError" + "500" : { + "$ref" : "#/components/responses/InternalError" } - } - }, - "delete": { - "description": "Delete a Sync Destination definition. Any syncs relying on this destination must be deleted first.", - "operationId": "DeleteSyncDestination", - "tags": [ - "syncs" - ], - "parameters": [ - { - "$ref": "#/components/parameters/team_name" + }, + "tags" : [ "syncs" ] + } + }, + "/teams/{team_name}/syncs" : { + "get" : { + "description" : "List all Syncs.", + "operationId" : "ListSyncs", + "parameters" : [ { + "$ref" : "#/components/parameters/team_name" + }, { + "$ref" : "#/components/parameters/per_page" + }, { + "$ref" : "#/components/parameters/page" + } ], + "responses" : { + "200" : { + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/ListSyncs_200_response" + } + } + }, + "description" : "Response" }, - { - "$ref": "#/components/parameters/sync_destination_name" - } - ], - "responses": { - "204": { - "description": "Deleted" + "401" : { + "$ref" : "#/components/responses/RequiresAuthentication" }, - "401": { - "$ref": "#/components/responses/RequiresAuthentication" + "404" : { + "$ref" : "#/components/responses/NotFound" }, - "404": { - "$ref": "#/components/responses/NotFound" - }, - "422": { - "$ref": "#/components/responses/UnprocessableEntity" - }, - "500": { - "$ref": "#/components/responses/InternalError" - } - } - } - }, - "/teams/{team_name}/syncs": { - "get": { - "description": "List all Syncs.", - "operationId": "ListSyncs", - "tags": [ - "syncs" - ], - "parameters": [ - { - "$ref": "#/components/parameters/team_name" - }, - { - "$ref": "#/components/parameters/per_page" - }, - { - "$ref": "#/components/parameters/page" - } - ], - "responses": { - "200": { - "description": "Response", - "content": { - "application/json": { - "schema": { - "required": [ - "items", - "metadata" - ], - "properties": { - "items": { - "items": { - "$ref": "#/components/schemas/Sync" - }, - "type": "array" - }, - "metadata": { - "$ref": "#/components/schemas/ListMetadata" - } - } - } - } - } - }, - "401": { - "$ref": "#/components/responses/RequiresAuthentication" - }, - "404": { - "$ref": "#/components/responses/NotFound" - }, - "500": { - "$ref": "#/components/responses/InternalError" + "500" : { + "$ref" : "#/components/responses/InternalError" } - } + }, + "tags" : [ "syncs" ] }, - "post": { - "description": "Create new Sync definition. Sync runs can be scheduled automatically, or triggered manually after sync is created.", - "operationId": "CreateSync", - "tags": [ - "syncs" - ], - "parameters": [ - { - "$ref": "#/components/parameters/team_name" - } - ], - "requestBody": { - "required": true, - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/SyncCreate" + "post" : { + "description" : "Create new Sync definition. Sync runs can be scheduled automatically, or triggered manually after sync is created.", + "operationId" : "CreateSync", + "parameters" : [ { + "$ref" : "#/components/parameters/team_name" + } ], + "requestBody" : { + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/SyncCreate" } } - } + }, + "required" : true }, - "responses": { - "201": { - "description": "Response", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Sync" + "responses" : { + "201" : { + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/Sync" } } - } + }, + "description" : "Response" }, - "400": { - "$ref": "#/components/responses/BadRequest" + "400" : { + "$ref" : "#/components/responses/BadRequest" }, - "401": { - "$ref": "#/components/responses/RequiresAuthentication" + "401" : { + "$ref" : "#/components/responses/RequiresAuthentication" }, - "422": { - "$ref": "#/components/responses/UnprocessableEntity" + "422" : { + "$ref" : "#/components/responses/UnprocessableEntity" }, - "500": { - "$ref": "#/components/responses/InternalError" + "500" : { + "$ref" : "#/components/responses/InternalError" } - } + }, + "tags" : [ "syncs" ] } }, - "/teams/{team_name}/syncs/{sync_name}": { - "get": { - "description": "Get a Sync", - "operationId": "GetSync", - "tags": [ - "syncs" - ], - "parameters": [ - { - "$ref": "#/components/parameters/team_name" - }, - { - "$ref": "#/components/parameters/sync_name" - } - ], - "responses": { - "200": { - "description": "Response", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Sync" + "/teams/{team_name}/syncs/{sync_name}" : { + "delete" : { + "description" : "Delete Sync. This will delete Sync configuration and all associated sync runs, but will not delete the associated source and destination(s). These will need to be deleted separately.", + "operationId" : "DeleteSync", + "parameters" : [ { + "$ref" : "#/components/parameters/team_name" + }, { + "$ref" : "#/components/parameters/sync_name" + } ], + "responses" : { + "204" : { + "description" : "Deleted" + }, + "400" : { + "$ref" : "#/components/responses/BadRequest" + }, + "401" : { + "$ref" : "#/components/responses/RequiresAuthentication" + }, + "404" : { + "$ref" : "#/components/responses/NotFound" + }, + "500" : { + "$ref" : "#/components/responses/InternalError" + } + }, + "tags" : [ "syncs" ] + }, + "get" : { + "description" : "Get a Sync", + "operationId" : "GetSync", + "parameters" : [ { + "$ref" : "#/components/parameters/team_name" + }, { + "$ref" : "#/components/parameters/sync_name" + } ], + "responses" : { + "200" : { + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/Sync" } } - } + }, + "description" : "Response" }, - "400": { - "$ref": "#/components/responses/BadRequest" + "400" : { + "$ref" : "#/components/responses/BadRequest" }, - "401": { - "$ref": "#/components/responses/RequiresAuthentication" + "401" : { + "$ref" : "#/components/responses/RequiresAuthentication" }, - "404": { - "$ref": "#/components/responses/NotFound" + "404" : { + "$ref" : "#/components/responses/NotFound" }, - "500": { - "$ref": "#/components/responses/InternalError" + "500" : { + "$ref" : "#/components/responses/InternalError" } - } + }, + "tags" : [ "syncs" ] }, - "patch": { - "description": "Update a Sync", - "operationId": "UpdateSync", - "tags": [ - "syncs" - ], - "parameters": [ - { - "$ref": "#/components/parameters/team_name" - }, - { - "$ref": "#/components/parameters/sync_name" - } - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/SyncUpdate" + "patch" : { + "description" : "Update a Sync", + "operationId" : "UpdateSync", + "parameters" : [ { + "$ref" : "#/components/parameters/team_name" + }, { + "$ref" : "#/components/parameters/sync_name" + } ], + "requestBody" : { + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/SyncUpdate" } } } }, - "responses": { - "200": { - "description": "Updated", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Sync" + "responses" : { + "200" : { + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/Sync" } } - } - }, - "400": { - "$ref": "#/components/responses/BadRequest" - }, - "403": { - "$ref": "#/components/responses/Forbidden" - }, - "404": { - "$ref": "#/components/responses/NotFound" - }, - "422": { - "$ref": "#/components/responses/UnprocessableEntity" - }, - "500": { - "$ref": "#/components/responses/InternalError" - } - } - }, - "delete": { - "description": "Delete Sync. This will delete Sync configuration and all associated sync runs, but will not delete the associated source and destination(s). These will need to be deleted separately.", - "operationId": "DeleteSync", - "tags": [ - "syncs" - ], - "parameters": [ - { - "$ref": "#/components/parameters/team_name" + }, + "description" : "Updated" }, - { - "$ref": "#/components/parameters/sync_name" - } - ], - "responses": { - "204": { - "description": "Deleted" + "400" : { + "$ref" : "#/components/responses/BadRequest" }, - "400": { - "$ref": "#/components/responses/BadRequest" + "403" : { + "$ref" : "#/components/responses/Forbidden" }, - "401": { - "$ref": "#/components/responses/RequiresAuthentication" + "404" : { + "$ref" : "#/components/responses/NotFound" }, - "404": { - "$ref": "#/components/responses/NotFound" + "422" : { + "$ref" : "#/components/responses/UnprocessableEntity" }, - "500": { - "$ref": "#/components/responses/InternalError" + "500" : { + "$ref" : "#/components/responses/InternalError" } - } + }, + "tags" : [ "syncs" ] } }, - "/teams/{team_name}/syncs/{sync_name}/runs": { - "get": { - "description": "List all Sync Runs.", - "operationId": "ListSyncRuns", - "tags": [ - "syncs" - ], - "parameters": [ - { - "$ref": "#/components/parameters/team_name" - }, - { - "$ref": "#/components/parameters/sync_name" - }, - { - "$ref": "#/components/parameters/per_page" - }, - { - "$ref": "#/components/parameters/page" - } - ], - "responses": { - "200": { - "description": "Response", - "content": { - "application/json": { - "schema": { - "required": [ - "items", - "metadata" - ], - "properties": { - "items": { - "items": { - "$ref": "#/components/schemas/SyncRun" - }, - "type": "array" - }, - "metadata": { - "$ref": "#/components/schemas/ListMetadata" - } - } + "/teams/{team_name}/syncs/{sync_name}/runs" : { + "get" : { + "description" : "List all Sync Runs.", + "operationId" : "ListSyncRuns", + "parameters" : [ { + "$ref" : "#/components/parameters/team_name" + }, { + "$ref" : "#/components/parameters/sync_name" + }, { + "$ref" : "#/components/parameters/per_page" + }, { + "$ref" : "#/components/parameters/page" + } ], + "responses" : { + "200" : { + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/ListSyncRuns_200_response" } } - } - }, - "401": { - "$ref": "#/components/responses/RequiresAuthentication" - }, - "404": { - "$ref": "#/components/responses/NotFound" - }, - "500": { - "$ref": "#/components/responses/InternalError" - } - } - }, - "post": { - "description": "Create new SyncRun. This will trigger a manual job run.", - "operationId": "CreateSyncRun", - "tags": [ - "syncs" - ], - "parameters": [ - { - "$ref": "#/components/parameters/team_name" - }, - { - "$ref": "#/components/parameters/sync_name" - } - ], - "responses": { - "201": { - "description": "Response", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/SyncRun" + }, + "description" : "Response" + }, + "401" : { + "$ref" : "#/components/responses/RequiresAuthentication" + }, + "404" : { + "$ref" : "#/components/responses/NotFound" + }, + "500" : { + "$ref" : "#/components/responses/InternalError" + } + }, + "tags" : [ "syncs" ] + }, + "post" : { + "description" : "Create new SyncRun. This will trigger a manual job run.", + "operationId" : "CreateSyncRun", + "parameters" : [ { + "$ref" : "#/components/parameters/team_name" + }, { + "$ref" : "#/components/parameters/sync_name" + } ], + "responses" : { + "201" : { + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/SyncRun" } } - } + }, + "description" : "Response" }, - "400": { - "$ref": "#/components/responses/BadRequest" + "400" : { + "$ref" : "#/components/responses/BadRequest" }, - "401": { - "$ref": "#/components/responses/RequiresAuthentication" + "401" : { + "$ref" : "#/components/responses/RequiresAuthentication" }, - "422": { - "$ref": "#/components/responses/UnprocessableEntity" + "422" : { + "$ref" : "#/components/responses/UnprocessableEntity" }, - "500": { - "$ref": "#/components/responses/InternalError" + "500" : { + "$ref" : "#/components/responses/InternalError" } - } + }, + "tags" : [ "syncs" ] } }, - "/teams/{team_name}/syncs/{sync_name}/runs/{sync_run_id}": { - "get": { - "description": "Get a Sync Run.", - "operationId": "GetSyncRun", - "tags": [ - "syncs" - ], - "parameters": [ - { - "$ref": "#/components/parameters/team_name" - }, - { - "$ref": "#/components/parameters/sync_name" - }, - { - "$ref": "#/components/parameters/sync_run_id" - } - ], - "responses": { - "200": { - "description": "Response", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/SyncRunDetails" + "/teams/{team_name}/syncs/{sync_name}/runs/{sync_run_id}" : { + "get" : { + "description" : "Get a Sync Run.", + "operationId" : "GetSyncRun", + "parameters" : [ { + "$ref" : "#/components/parameters/team_name" + }, { + "$ref" : "#/components/parameters/sync_name" + }, { + "$ref" : "#/components/parameters/sync_run_id" + } ], + "responses" : { + "200" : { + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/SyncRunDetails" } } - } + }, + "description" : "Response" }, - "401": { - "$ref": "#/components/responses/RequiresAuthentication" + "401" : { + "$ref" : "#/components/responses/RequiresAuthentication" }, - "404": { - "$ref": "#/components/responses/NotFound" + "404" : { + "$ref" : "#/components/responses/NotFound" }, - "500": { - "$ref": "#/components/responses/InternalError" + "500" : { + "$ref" : "#/components/responses/InternalError" } - } + }, + "tags" : [ "syncs" ] }, - "patch": { - "description": "Update a SyncRun", - "operationId": "UpdateSyncRun", - "tags": [ - "syncs" - ], - "parameters": [ - { - "$ref": "#/components/parameters/team_name" - }, - { - "$ref": "#/components/parameters/sync_name" - }, - { - "$ref": "#/components/parameters/sync_run_id" - } - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "status": { - "$ref": "#/components/schemas/SyncRunStatus" - }, - "status_reason": { - "$ref": "#/components/schemas/SyncRunStatusReason" - } - } + "patch" : { + "description" : "Update a SyncRun", + "operationId" : "UpdateSyncRun", + "parameters" : [ { + "$ref" : "#/components/parameters/team_name" + }, { + "$ref" : "#/components/parameters/sync_name" + }, { + "$ref" : "#/components/parameters/sync_run_id" + } ], + "requestBody" : { + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/UpdateSyncRun_request" } } } }, - "responses": { - "200": { - "description": "Updated", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/SyncRun" + "responses" : { + "200" : { + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/SyncRun" } } - } + }, + "description" : "Updated" }, - "400": { - "$ref": "#/components/responses/BadRequest" + "400" : { + "$ref" : "#/components/responses/BadRequest" }, - "403": { - "$ref": "#/components/responses/Forbidden" + "403" : { + "$ref" : "#/components/responses/Forbidden" }, - "404": { - "$ref": "#/components/responses/NotFound" + "404" : { + "$ref" : "#/components/responses/NotFound" }, - "422": { - "$ref": "#/components/responses/UnprocessableEntity" + "422" : { + "$ref" : "#/components/responses/UnprocessableEntity" }, - "500": { - "$ref": "#/components/responses/InternalError" + "500" : { + "$ref" : "#/components/responses/InternalError" } - } + }, + "tags" : [ "syncs" ] } }, - "/teams/{team_name}/syncs/{sync_name}/runs/{sync_run_id}/progress": { - "post": { - "description": "Create a new sync run progress update.", - "operationId": "CreateSyncRunProgress", - "x-internal": true, - "tags": [ - "syncs" - ], - "parameters": [ - { - "$ref": "#/components/parameters/team_name" - }, - { - "$ref": "#/components/parameters/sync_name" - }, - { - "$ref": "#/components/parameters/sync_run_id" - } - ], - "requestBody": { - "required": true, - "content": { - "application/json": { - "schema": { - "type": "object", - "required": [ - "rows", - "warnings", - "errors" - ], - "properties": { - "rows": { - "type": "integer", - "format": "int64", - "description": "Number of rows synced so far" - }, - "warnings": { - "type": "integer", - "format": "int64", - "description": "Number of warnings encountered so far" - }, - "errors": { - "type": "integer", - "format": "int64", - "description": "Number of errors encountered so far" - }, - "status": { - "$ref": "#/components/schemas/SyncRunStatus" - } - } + "/teams/{team_name}/syncs/{sync_name}/runs/{sync_run_id}/progress" : { + "post" : { + "description" : "Create a new sync run progress update.", + "operationId" : "CreateSyncRunProgress", + "parameters" : [ { + "$ref" : "#/components/parameters/team_name" + }, { + "$ref" : "#/components/parameters/sync_name" + }, { + "$ref" : "#/components/parameters/sync_run_id" + } ], + "requestBody" : { + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/CreateSyncRunProgress_request" } } - } + }, + "required" : true }, - "responses": { - "204": { - "description": "Progress was reported successfully" + "responses" : { + "204" : { + "description" : "Progress was reported successfully" }, - "400": { - "$ref": "#/components/responses/BadRequest" + "400" : { + "$ref" : "#/components/responses/BadRequest" }, - "401": { - "$ref": "#/components/responses/RequiresAuthentication" + "401" : { + "$ref" : "#/components/responses/RequiresAuthentication" }, - "404": { - "$ref": "#/components/responses/NotFound" + "404" : { + "$ref" : "#/components/responses/NotFound" }, - "422": { - "$ref": "#/components/responses/UnprocessableEntity" + "422" : { + "$ref" : "#/components/responses/UnprocessableEntity" }, - "500": { - "$ref": "#/components/responses/InternalError" + "500" : { + "$ref" : "#/components/responses/InternalError" } - } + }, + "tags" : [ "syncs" ], + "x-internal" : true } }, - "/teams/{team_name}/syncs/{sync_name}/runs/{sync_run_id}/logs": { - "get": { - "description": "Get logs for a sync run.", - "operationId": "GetSyncRunLogs", - "tags": [ - "syncs" - ], - "parameters": [ - { - "in": "header", - "name": "Accept", - "required": false, - "schema": { - "type": "string" - } - }, - { - "$ref": "#/components/parameters/team_name" - }, - { - "$ref": "#/components/parameters/sync_name" - }, - { - "$ref": "#/components/parameters/sync_run_id" - } - ], - "responses": { - "200": { - "description": "Response", - "content": { - "application/json": { - "schema": { - "additionalProperties": false, - "required": [ - "location" - ], - "properties": { - "location": { - "type": "string", - "format": "uri", - "description": "The location to download the sync run logs from" - } - }, - "title": "Sync Run Logs", - "type": "object" + "/teams/{team_name}/syncs/{sync_name}/runs/{sync_run_id}/logs" : { + "get" : { + "description" : "Get logs for a sync run.", + "operationId" : "GetSyncRunLogs", + "parameters" : [ { + "explode" : false, + "in" : "header", + "name" : "Accept", + "required" : false, + "schema" : { + "type" : "string" + }, + "style" : "simple" + }, { + "$ref" : "#/components/parameters/team_name" + }, { + "$ref" : "#/components/parameters/sync_name" + }, { + "$ref" : "#/components/parameters/sync_run_id" + } ], + "responses" : { + "200" : { + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/Sync_Run_Logs" } }, - "text/plain": { - "schema": { - "type": "string", - "description": "Chunked response logs for a sync run that is in progress." + "text/plain" : { + "schema" : { + "description" : "Chunked response logs for a sync run that is in progress.", + "type" : "string" } } - } - }, - "302": { - "description": "Redirect to the logs download URL for a sync run that has completed.", - "headers": { - "Location": { - "schema": { - "type": "string", - "description": "URL to download logs" - } + }, + "description" : "Response" + }, + "302" : { + "description" : "Redirect to the logs download URL for a sync run that has completed.", + "headers" : { + "Location" : { + "explode" : false, + "schema" : { + "description" : "URL to download logs", + "type" : "string" + }, + "style" : "simple" } } }, - "400": { - "$ref": "#/components/responses/BadRequest" + "400" : { + "$ref" : "#/components/responses/BadRequest" }, - "401": { - "$ref": "#/components/responses/RequiresAuthentication" + "401" : { + "$ref" : "#/components/responses/RequiresAuthentication" }, - "404": { - "$ref": "#/components/responses/NotFound" + "404" : { + "$ref" : "#/components/responses/NotFound" }, - "422": { - "$ref": "#/components/responses/UnprocessableEntity" + "422" : { + "$ref" : "#/components/responses/UnprocessableEntity" }, - "500": { - "$ref": "#/components/responses/InternalError" + "500" : { + "$ref" : "#/components/responses/InternalError" } - } + }, + "tags" : [ "syncs" ] } }, - "/teams/{team_name}/syncs/test-connections/{sync_test_connection_id}": { - "get": { - "description": "Get a Sync Test Connection", - "operationId": "GetSyncTestConnection", - "tags": [ - "syncs" - ], - "parameters": [ - { - "$ref": "#/components/parameters/team_name" - }, - { - "$ref": "#/components/parameters/sync_test_connection_id" - } - ], - "responses": { - "200": { - "description": "Response", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/SyncTestConnection" + "/teams/{team_name}/syncs/test-connections/{sync_test_connection_id}" : { + "get" : { + "description" : "Get a Sync Test Connection", + "operationId" : "GetSyncTestConnection", + "parameters" : [ { + "$ref" : "#/components/parameters/team_name" + }, { + "$ref" : "#/components/parameters/sync_test_connection_id" + } ], + "responses" : { + "200" : { + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/SyncTestConnection" } } - } + }, + "description" : "Response" }, - "401": { - "$ref": "#/components/responses/RequiresAuthentication" + "401" : { + "$ref" : "#/components/responses/RequiresAuthentication" }, - "404": { - "$ref": "#/components/responses/NotFound" + "404" : { + "$ref" : "#/components/responses/NotFound" }, - "500": { - "$ref": "#/components/responses/InternalError" + "500" : { + "$ref" : "#/components/responses/InternalError" } - } + }, + "tags" : [ "syncs" ] }, - "patch": { - "description": "Update a Sync Test Connection", - "operationId": "UpdateSyncTestConnection", - "tags": [ - "syncs" - ], - "parameters": [ - { - "$ref": "#/components/parameters/team_name" - }, - { - "$ref": "#/components/parameters/sync_test_connection_id" - } - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "type": "object", - "required": [ - "status" - ], - "properties": { - "status": { - "$ref": "#/components/schemas/SyncTestConnectionStatus" - } - } + "patch" : { + "description" : "Update a Sync Test Connection", + "operationId" : "UpdateSyncTestConnection", + "parameters" : [ { + "$ref" : "#/components/parameters/team_name" + }, { + "$ref" : "#/components/parameters/sync_test_connection_id" + } ], + "requestBody" : { + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/UpdateSyncTestConnection_request" } } } }, - "responses": { - "200": { - "description": "Updated", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/SyncTestConnection" + "responses" : { + "200" : { + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/SyncTestConnection" } } - } + }, + "description" : "Updated" }, - "400": { - "$ref": "#/components/responses/BadRequest" + "400" : { + "$ref" : "#/components/responses/BadRequest" }, - "403": { - "$ref": "#/components/responses/Forbidden" + "403" : { + "$ref" : "#/components/responses/Forbidden" }, - "404": { - "$ref": "#/components/responses/NotFound" + "404" : { + "$ref" : "#/components/responses/NotFound" }, - "422": { - "$ref": "#/components/responses/UnprocessableEntity" + "422" : { + "$ref" : "#/components/responses/UnprocessableEntity" }, - "500": { - "$ref": "#/components/responses/InternalError" + "500" : { + "$ref" : "#/components/responses/InternalError" } - } + }, + "tags" : [ "syncs" ] } } }, - "components": { - "securitySchemes": { - "bearerAuth": { - "scheme": "bearer", - "type": "http" - }, - "basicAuth": { - "scheme": "basic", - "type": "http" + "components" : { + "parameters" : { + "page" : { + "description" : "Page number of the results to fetch", + "explode" : true, + "in" : "query", + "name" : "page", + "required" : false, + "schema" : { + "default" : 1, + "format" : "int64", + "minimum" : 1, + "type" : "integer" + }, + "style" : "form" + }, + "per_page" : { + "description" : "The number of results per page (max 1000).", + "explode" : true, + "in" : "query", + "name" : "per_page", + "required" : false, + "schema" : { + "default" : 100, + "format" : "int64", + "maximum" : 1000, + "minimum" : 1, + "type" : "integer" + }, + "style" : "form" + }, + "plugin_team" : { + "explode" : false, + "in" : "path", + "name" : "plugin_team", + "required" : true, + "schema" : { + "$ref" : "#/components/schemas/TeamName" + }, + "style" : "simple" + }, + "plugin_kind" : { + "explode" : false, + "in" : "path", + "name" : "plugin_kind", + "required" : true, + "schema" : { + "$ref" : "#/components/schemas/PluginKind" + }, + "style" : "simple" + }, + "plugin_name" : { + "explode" : false, + "in" : "path", + "name" : "plugin_name", + "required" : true, + "schema" : { + "$ref" : "#/components/schemas/PluginName" + }, + "style" : "simple" + }, + "plugin_sort_by" : { + "description" : "The field to sort by", + "explode" : true, + "in" : "query", + "name" : "sort_by", + "required" : false, + "schema" : { + "enum" : [ "created_at", "updated_at", "name", "downloads" ], + "type" : "string" + }, + "style" : "form" + }, + "team_name" : { + "explode" : false, + "in" : "path", + "name" : "team_name", + "required" : true, + "schema" : { + "$ref" : "#/components/schemas/TeamName" + }, + "style" : "simple" + }, + "version_sort_by" : { + "description" : "The field to sort by", + "explode" : true, + "in" : "query", + "name" : "sort_by", + "required" : false, + "schema" : { + "enum" : [ "created_at" ], + "type" : "string" + }, + "style" : "form" + }, + "include_drafts" : { + "description" : "Whether to include draft versions", + "explode" : true, + "in" : "query", + "name" : "include_drafts", + "required" : false, + "schema" : { + "type" : "boolean" + }, + "style" : "form" + }, + "include_prereleases" : { + "description" : "Whether to include prerelease versions", + "explode" : true, + "in" : "query", + "name" : "include_prereleases", + "required" : false, + "schema" : { + "type" : "boolean" + }, + "style" : "form" + }, + "version_name" : { + "explode" : false, + "in" : "path", + "name" : "version_name", + "required" : true, + "schema" : { + "$ref" : "#/components/schemas/VersionName" + }, + "style" : "simple" + }, + "target_name" : { + "explode" : false, + "in" : "path", + "name" : "target_name", + "required" : true, + "schema" : { + "type" : "string" + }, + "style" : "simple" + }, + "addon_sort_by" : { + "description" : "The field to sort by", + "explode" : true, + "in" : "query", + "name" : "sort_by", + "required" : false, + "schema" : { + "enum" : [ "created_at", "updated_at", "name", "downloads" ], + "type" : "string" + }, + "style" : "form" + }, + "addon_type" : { + "explode" : false, + "in" : "path", + "name" : "addon_type", + "required" : true, + "schema" : { + "$ref" : "#/components/schemas/AddonType" + }, + "style" : "simple" + }, + "addon_name" : { + "explode" : false, + "in" : "path", + "name" : "addon_name", + "required" : true, + "schema" : { + "$ref" : "#/components/schemas/AddonName" + }, + "style" : "simple" + }, + "include_private" : { + "description" : "Whether to include private plugins", + "explode" : true, + "in" : "query", + "name" : "include_private", + "required" : false, + "schema" : { + "type" : "boolean" + }, + "style" : "form" + }, + "addon_order_id" : { + "explode" : false, + "in" : "path", + "name" : "addon_order_id", + "required" : true, + "schema" : { + "$ref" : "#/components/schemas/AddonOrderID" + }, + "style" : "simple", + "x-go-name" : "AddonOrderID" + }, + "email" : { + "explode" : false, + "in" : "path", + "name" : "email", + "required" : true, + "schema" : { + "$ref" : "#/components/schemas/Email" + }, + "style" : "simple" + }, + "addon_team" : { + "explode" : false, + "in" : "path", + "name" : "addon_team", + "required" : true, + "schema" : { + "$ref" : "#/components/schemas/TeamName" + }, + "style" : "simple" + }, + "team_subscription_order_id" : { + "explode" : false, + "in" : "path", + "name" : "subscription_order_id", + "required" : true, + "schema" : { + "$ref" : "#/components/schemas/TeamSubscriptionOrderID" + }, + "style" : "simple", + "x-go-name" : "TeamSubscriptionOrderID" + }, + "user_id" : { + "explode" : false, + "in" : "path", + "name" : "user_id", + "required" : true, + "schema" : { + "$ref" : "#/components/schemas/UserID" + }, + "style" : "simple", + "x-go-name" : "UserID" + }, + "apikey_id" : { + "explode" : false, + "in" : "path", + "name" : "apikey_id", + "required" : true, + "schema" : { + "$ref" : "#/components/schemas/APIKeyID" + }, + "style" : "simple", + "x-go-name" : "APIKeyID" + }, + "sync_source_name" : { + "explode" : false, + "in" : "path", + "name" : "sync_source_name", + "required" : true, + "schema" : { + "description" : "Unique name of the sync source", + "pattern" : "^[a-zA-Z0-9_-]+$", + "type" : "string", + "x-go-name" : "SyncSourceName" + }, + "style" : "simple" + }, + "sync_destination_name" : { + "explode" : false, + "in" : "path", + "name" : "sync_destination_name", + "required" : true, + "schema" : { + "description" : "Unique name of the sync destination", + "pattern" : "^[a-zA-Z0-9_-]+$", + "type" : "string", + "x-go-name" : "SyncDestinationName" + }, + "style" : "simple" + }, + "sync_name" : { + "explode" : false, + "in" : "path", + "name" : "sync_name", + "required" : true, + "schema" : { + "description" : "Unique name of the sync", + "pattern" : "^[a-zA-Z0-9_-]+$", + "type" : "string", + "x-go-name" : "SyncName" + }, + "style" : "simple" + }, + "sync_run_id" : { + "explode" : false, + "in" : "path", + "name" : "sync_run_id", + "required" : true, + "schema" : { + "$ref" : "#/components/schemas/SyncRunID" + }, + "style" : "simple" + }, + "sync_test_connection_id" : { + "explode" : false, + "in" : "path", + "name" : "sync_test_connection_id", + "required" : true, + "schema" : { + "$ref" : "#/components/schemas/SyncTestConnectionID" + }, + "style" : "simple" } }, - "schemas": { - "ImageURL": { - "properties": { - "upload_url": { - "type": "string", - "example": "https://cloudquery.io/api/v1/upload/1234567890abcdef1234567890abcdef" - }, - "download_url": { - "type": "string", - "example": "https://cloudquery.io/api/v1/download/1234567890abcdef1234567890abcdef" - } - }, - "required": [ - "upload_url", - "download_url" - ] - }, - "BasicError": { - "additionalProperties": false, - "description": "Basic Error", - "required": [ - "message", - "status" - ], - "properties": { - "message": { - "type": "string" - }, - "status": { - "type": "integer" - } - }, - "title": "Basic Error", - "type": "object" - }, - "TeamName": { - "description": "The unique name for the team.", - "maxLength": 255, - "pattern": "^[a-z](-?[a-z0-9]+)+$", - "type": "string", - "example": "cloudquery" - }, - "PluginKind": { - "description": "The kind of plugin, ie. source or destination.", - "type": "string", - "example": "source", - "enum": [ - "source", - "destination" - ] - }, - "PluginName": { - "description": "The unique name for the plugin.", - "maxLength": 255, - "pattern": "^[a-z](-?[a-z0-9]+)+$", - "type": "string", - "example": "aws-source" - }, - "PluginNotificationRequestStatus": { - "description": "Status of a plugin notification request", - "type": "string", - "enum": [ - "pending", - "sent" - ], - "default": "pending" - }, - "PluginNotificationRequest": { - "type": "object", - "additionalProperties": false, - "description": "Plugin Notification Request", - "required": [ - "plugin_team", - "plugin_kind", - "plugin_name", - "created_at" - ], - "properties": { - "plugin_team": { - "$ref": "#/components/schemas/TeamName" - }, - "plugin_kind": { - "$ref": "#/components/schemas/PluginKind" - }, - "plugin_name": { - "$ref": "#/components/schemas/PluginName" - }, - "created_at": { - "example": "2017-07-14T16:53:42Z", - "format": "date-time", - "type": "string" - }, - "sent_at": { - "example": "2017-07-14T16:53:42Z", - "format": "date-time", - "type": "string" - }, - "status": { - "$ref": "#/components/schemas/PluginNotificationRequestStatus" + "responses" : { + "InternalError" : { + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/BasicError" + } } - } + }, + "description" : "Internal Error" }, - "ListMetadata": { - "properties": { - "total_count": { - "type": "integer" - }, - "last_page": { - "type": "integer" + "RequiresAuthentication" : { + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/BasicError" + } } - } + }, + "description" : "Requires authentication" }, - "PluginNotificationRequestCreate": { - "type": "object", - "additionalProperties": false, - "description": "Create a Plugin Notification Request", - "required": [ - "plugin_team", - "plugin_kind", - "plugin_name" - ], - "properties": { - "plugin_team": { - "$ref": "#/components/schemas/TeamName" - }, - "plugin_kind": { - "$ref": "#/components/schemas/PluginKind" - }, - "plugin_name": { - "$ref": "#/components/schemas/PluginName" + "BadRequest" : { + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/FieldError" + } } - } + }, + "description" : "Bad request" }, - "FieldError": { - "allOf": [ - { - "$ref": "#/components/schemas/BasicError" - }, - { - "properties": { - "errors": { - "items": { - "type": "string" - }, - "type": "array" - }, - "field_errors": { - "additionalProperties": { - "type": "string" - }, - "type": "object" - } - }, - "type": "object" - } - ] - }, - "PluginCategory": { - "description": "Supported categories for plugins", - "type": "string", - "enum": [ - "cloud-infrastructure", - "databases", - "sales-marketing", - "engineering-analytics", - "marketing-analytics", - "shipment-tracking", - "product-analytics", - "cloud-finops", - "project-management", - "fleet-management", - "security", - "data-warehouses", - "human-resources", - "other" - ] - }, - "PluginPriceCategory": { - "description": "Supported price categories for billing", - "type": "string", - "enum": [ - "api", - "database", - "free" - ] - }, - "PluginReleaseStage": { - "description": "Official plugins can go through three release stages: Coming Soon, Preview, and GA.\nThe Coming Soon stage is for plugins that are not yet ready for Preview, but users can subscribe to be notified when they are ready.\nBoth Preview and GA plugins follow semantic versioning. The main differences between the two stages are:\nPreview plugins are still experimental and may have frequent breaking changes. Preview plugins might get deprecated due to lack of usage. Long Term Support with community Discord and bug fixes is only guaranteed for GA plugins. Premium plugins are often discounted or free during the Preview stage.", - "type": "string", - "enum": [ - "coming-soon", - "preview", - "ga" - ] - }, - "PluginTier": { - "description": "This field is deprecated, refer to `price_category` instead.\nThis field is only kept for backward compatibility and may be removed in a future release.\nSupported tiers for plugins.\n - free: Free tier, with no paid tables.\n - paid: Paid tier. These plugins may have paid tables, but can also have free tables. They require login to access.\n - open-core: This option is deprecated, values will either be free or paid.\n", - "type": "string", - "deprecated": true, - "enum": [ - "free", - "paid", - "open-core" - ] - }, - "Plugin": { - "additionalProperties": false, - "description": "CloudQuery Plugin", - "properties": { - "team_name": { - "$ref": "#/components/schemas/TeamName" - }, - "name": { - "$ref": "#/components/schemas/PluginName" - }, - "kind": { - "$ref": "#/components/schemas/PluginKind" - }, - "category": { - "$ref": "#/components/schemas/PluginCategory" - }, - "price_category": { - "$ref": "#/components/schemas/PluginPriceCategory" - }, - "created_at": { - "example": "2017-07-14T16:53:42Z", - "format": "date-time", - "type": "string" - }, - "updated_at": { - "example": "2017-07-14T16:53:42Z", - "format": "date-time", - "type": "string" - }, - "homepage": { - "type": "string", - "example": "https://cloudquery.io" - }, - "logo": { - "type": "string", - "example": "https://images.cloudquery.io/logos/aws.png" - }, - "display_name": { - "description": "The plugin's display name", - "type": "string", - "minLength": 1, - "maxLength": 50, - "example": "AWS Source Plugin" - }, - "official": { - "description": "True if the plugin is maintained by CloudQuery, false otherwise", - "type": "boolean" - }, - "release_stage": { - "$ref": "#/components/schemas/PluginReleaseStage" - }, - "repository": { - "type": "string", - "example": "https://github.com/cloudquery/cloudquery" - }, - "short_description": { - "type": "string", - "minLength": 1, - "maxLength": 512, - "example": "Sync data from AWS to any destination" - }, - "tier": { - "$ref": "#/components/schemas/PluginTier" - }, - "public": { - "description": "Whether the plugin is listed in the CloudQuery Hub. If false, the plugin will not be shown in the CloudQuery Hub and will only be visible to members of the plugin's team.", - "type": "boolean" - }, - "usd_per_row": { - "deprecated": true, - "type": "string", - "pattern": "^\\d+(?:\\.\\d{1,10})?$", - "description": "Deprecated. Refer to `price_category` instead.", - "example": "0.0001", - "x-go-name": "USDPerRow" - }, - "free_rows_per_month": { - "deprecated": true, - "type": "integer", - "format": "int64", - "description": "Deprecated. Refer to `price_category` instead.", - "example": 1000 - }, - "minimum_cloud_version": { - "type": "string", - "description": "Minimum plugin version that is supported in CloudQuery managed syncs.", - "maxLength": 64, - "example": "v1.2.3" - } - }, - "required": [ - "team_name", - "name", - "kind", - "category", - "release_stage", - "created_at", - "updated_at", - "logo", - "display_name", - "official", - "short_description", - "tier", - "usd_per_row", - "free_rows_per_month" - ], - "title": "CloudQuery Plugin", - "type": "object" - }, - "VersionName": { - "type": "string", - "description": "The version in semantic version format.", - "pattern": "^v[0-9]+\\.[0-9]+\\.[0-9]+(-[0-9A-Za-z-]+(\\.[0-9A-Za-z-]+)*)?(\\+[0-9A-Za-z-]+(\\.[0-9A-Za-z-]+)*)?$" - }, - "ListPlugin": { - "allOf": [ - { - "$ref": "#/components/schemas/Plugin" - }, - { - "type": "object", - "properties": { - "latest_version": { - "$ref": "#/components/schemas/VersionName" - } + "Forbidden" : { + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/FieldError" } } - ] - }, - "PluginReleaseStageCreate": { - "description": "Official plugins can go through three release stages: Coming Soon, Preview, and GA.\nThe Coming Soon stage is for plugins that are not yet ready for Preview, but users can subscribe to be notified when they are ready.\nBoth Preview and GA plugins follow semantic versioning. The main differences between the two stages are:\nPreview plugins are still experimental and may have frequent breaking changes. Preview plugins might get deprecated due to lack of usage. Long Term Support with community Discord and bug fixes is only guaranteed for GA plugins. Premium plugins are often discounted or free during the Preview stage.", - "type": "string", - "enum": [ - "coming-soon", - "preview", - "ga" - ], - "default": "coming-soon" - }, - "PluginCreate": { - "type": "object", - "required": [ - "team_name", - "kind", - "name", - "category", - "display_name", - "short_description", - "logo", - "public" - ], - "properties": { - "team_name": { - "$ref": "#/components/schemas/TeamName" - }, - "kind": { - "$ref": "#/components/schemas/PluginKind" - }, - "name": { - "$ref": "#/components/schemas/PluginName" - }, - "category": { - "$ref": "#/components/schemas/PluginCategory" - }, - "price_category": { - "$ref": "#/components/schemas/PluginPriceCategory" - }, - "tier": { - "$ref": "#/components/schemas/PluginTier" - }, - "display_name": { - "type": "string", - "minLength": 1, - "maxLength": 50, - "description": "The plugin's display name, as shown in the CloudQuery Hub.", - "example": "AWS Source Plugin" - }, - "short_description": { - "type": "string", - "minLength": 1, - "maxLength": 512, - "description": "Short description of the plugin. This will be shown in the CloudQuery Hub.", - "example": "Sync data from AWS to any destination" - }, - "homepage": { - "type": "string", - "example": "https://cloudquery.io" - }, - "public": { - "type": "boolean", - "description": "Whether the plugin is listed in the CloudQuery Hub. If false, the plugin will not be shown in the CloudQuery Hub and will only be visible to members of the team.", - "example": true - }, - "repository": { - "type": "string", - "example": "https://github.com/cloudquery/cloudquery" - }, - "release_stage": { - "$ref": "#/components/schemas/PluginReleaseStageCreate" - }, - "logo": { - "type": "string", - "description": "URL to the plugin's logo. This will be shown in the CloudQuery Hub. This must point to https://images.cloudquery.io/...", - "example": "https://images.cloudquery.io/logos/aws.png" - }, - "usd_per_row": { - "deprecated": true, - "type": "string", - "pattern": "^\\d+(?:\\.\\d{1,10})?$", - "description": "Deprecated. Use `price_category` instead.", - "example": "0.00001", - "x-go-name": "USDPerRow" - }, - "free_rows_per_month": { - "deprecated": true, - "type": "integer", - "format": "int64", - "description": "Deprecated. Use `price_category` instead.", - "example": 10000 - } - } + }, + "description" : "Forbidden" }, - "PluginReleaseStageUpdate": { - "description": "Official plugins can go through three release stages: Coming Soon, Preview, and GA.\nThe Coming Soon stage is for plugins that are not yet ready for Preview, but users can subscribe to be notified when they are ready.\nBoth Preview and GA plugins follow semantic versioning. The main differences between the two stages are:\nPreview plugins are still experimental and may have frequent breaking changes. Preview plugins might get deprecated due to lack of usage. Long Term Support with community Discord and bug fixes is only guaranteed for GA plugins. Premium plugins are often discounted or free during the Preview stage.", - "type": "string", - "enum": [ - "coming-soon", - "preview", - "ga" - ] - }, - "PluginUpdate": { - "type": "object", - "properties": { - "category": { - "$ref": "#/components/schemas/PluginCategory" - }, - "price_category": { - "$ref": "#/components/schemas/PluginPriceCategory" - }, - "tier": { - "$ref": "#/components/schemas/PluginTier" - }, - "display_name": { - "type": "string", - "minLength": 1, - "maxLength": 50, - "description": "The plugin's display name, as shown in the CloudQuery Hub.", - "example": "AWS Source Plugin" - }, - "short_description": { - "type": "string", - "minLength": 1, - "maxLength": 512, - "description": "Short description of the plugin. This will be shown in the CloudQuery Hub.", - "example": "Sync data from AWS to any destination" - }, - "homepage": { - "type": "string", - "example": "https://cloudquery.io" - }, - "repository": { - "type": "string", - "example": "https://github.com/cloudquery/cloudquery" - }, - "logo": { - "type": "string", - "description": "URL to the plugin's logo. This will be shown in the CloudQuery Hub. This must point to https://images.cloudquery.io/...", - "example": "https://images.cloudquery.io/logos/aws.png" - }, - "public": { - "type": "boolean", - "description": "If plugin is not public, it won't be visible to other teams in the CloudQuery Hub." - }, - "release_stage": { - "$ref": "#/components/schemas/PluginReleaseStageUpdate" - }, - "usd_per_row": { - "deprecated": true, - "type": "string", - "pattern": "^\\d+(?:\\.\\d{1,10})?$", - "description": "Deprecated. Update `price_category` instead.", - "example": "0.0001", - "x-go-name": "USDPerRow" - }, - "free_rows_per_month": { - "deprecated": true, - "type": "integer", - "format": "int64", - "description": "Deprecated. Update `price_category` instead.", - "example": 1000 + "NotFound" : { + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/BasicError" + } } - } - }, - "PluginPrice": { - "additionalProperties": false, - "description": "CloudQuery Plugin Price", - "properties": { - "id": { - "description": "ID of the price change", - "type": "string", - "format": "uuid", - "example": "12345678-1234-1234-1234-1234567890ab", - "x-go-name": "ID" - }, - "usd_per_row": { - "type": "string", - "pattern": "^\\d+(?:\\.\\d{1,10})?$", - "description": "The price per row in USD. This is used to calculate the price of a sync.", - "example": "0.0001", - "x-go-name": "USDPerRow" - }, - "free_rows_per_month": { - "type": "integer", - "format": "int64", - "description": "The number of rows that can be synced for free each month.", - "example": 1000 - }, - "effective_from": { - "type": "string", - "format": "date-time", - "description": "The date and time the price came (or will come) into effect.", - "example": "2024-01-02T00:00:00Z" - } - }, - "required": [ - "id", - "usd_per_row", - "free_rows_per_month", - "effective_from" - ], - "title": "CloudQuery Plugin Price", - "type": "object" - }, - "PluginPriceCreate": { - "additionalProperties": false, - "description": "CloudQuery Plugin Price Create", - "properties": { - "usd_per_row": { - "type": "string", - "pattern": "^\\d+(?:\\.\\d{1,10})?$", - "description": "The price per row in USD. This is used to calculate the price of a sync.", - "example": "0.0001", - "x-go-name": "USDPerRow" - }, - "free_rows_per_month": { - "type": "integer", - "format": "int64", - "description": "The number of rows that can be synced for free each month.", - "example": 1000 - }, - "effective_from": { - "type": "string", - "format": "date-time", - "description": "The date and time the price came (or will come) into effect.", - "example": "2024-01-02T00:00:00Z" - } - }, - "required": [ - "usd_per_row", - "free_rows_per_month", - "effective_from" - ], - "title": "CloudQuery Plugin Price Create", - "type": "object" - }, - "PluginProtocols": { - "description": "The CloudQuery protocols supported by this plugin version (only protocol 3 is supported by new plugins).", - "type": "array", - "items": { - "type": "integer", - "enum": [ - 3 - ] - } + }, + "description" : "Resource not found" }, - "PluginPackageType": { - "description": "The package type of the plugin assets", - "type": "string", - "enum": [ - "native", - "docker" - ] - }, - "PluginVersionBase": { - "additionalProperties": false, - "description": "CloudQuery Plugin Version", - "required": [ - "created_at", - "name", - "message", - "draft", - "retracted", - "protocols", - "supported_targets", - "checksums", - "package_type" - ], - "properties": { - "created_at": { - "example": "2017-07-14T16:53:42Z", - "format": "date-time", - "type": "string", - "description": "The date and time the plugin version was created." - }, - "published_at": { - "example": "2017-07-14T16:53:42Z", - "format": "date-time", - "type": "string", - "description": "The date and time the plugin version was set to non-draft (published)." - }, - "name": { - "$ref": "#/components/schemas/VersionName" - }, - "message": { - "type": "string", - "description": "Description of what's new or changed in this version (supports markdown)", - "example": "- Added support for AWS S3 - Added support for AWS EC2" - }, - "draft": { - "type": "boolean", - "description": "If a plugin version is in draft, it will not show to members outside the team or be counted as the latest version." - }, - "retracted": { - "type": "boolean", - "description": "If a plugin version is retracted, assets will still be available for download, but the version will be marked as retracted to discourage use." - }, - "protocols": { - "$ref": "#/components/schemas/PluginProtocols" - }, - "supported_targets": { - "type": "array", - "description": "The targets supported by this plugin version, formatted as _", - "example": [ - "linux_arm64", - "darwin_amd64", - "windows_amd64" - ], - "items": { - "type": "string" + "UnprocessableEntity" : { + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/FieldError" } - }, - "checksums": { - "type": "array", - "items": { - "type": "string" - }, - "description": "The checksums of the plugin assets" - }, - "package_type": { - "$ref": "#/components/schemas/PluginPackageType" } }, - "title": "CloudQuery Plugin Version", - "type": "object" + "description" : "UnprocessableEntity" }, - "PluginVersionList": { - "allOf": [ - { - "$ref": "#/components/schemas/PluginVersionBase" + "TooManyRequests" : { + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/BasicError" + } } - ] - }, - "PluginSpecJSONSchema": { - "description": "The specification of the plugin. This is a JSON schema that describes the configuration of the plugin.", - "type": "string" + }, + "description" : "Too Many Requests" }, - "PluginVersion": { - "allOf": [ - { - "$ref": "#/components/schemas/PluginVersionBase" - }, - { - "type": "object", - "properties": { - "spec_json_schema": { - "$ref": "#/components/schemas/PluginSpecJSONSchema" - } + "ServiceUnavailable" : { + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/BasicError" } } - ] + }, + "description" : "Service unavailable" }, - "PluginVersionDetails": { - "allOf": [ - { - "$ref": "#/components/schemas/PluginVersion" - }, - { - "type": "object", - "required": [ - "example_config" - ], - "properties": { - "example_config": { - "type": "string", - "description": "Example configuration for the plugin. This can be used in generated quickstart guides, for example. Markdown format." - } + "MethodNotAllowed" : { + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/BasicError" } } - ] + }, + "description" : "Method not allowed" }, - "PluginVersionUpdate": { - "type": "object", - "properties": { - "message": { - "type": "string", - "description": "Description of what's new or changed in this version (supports markdown)", - "example": "- Added support for *AWS S3* - Added support for *AWS EC2*" + "DockerError" : { + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/DockerError" + } + } + }, + "description" : "Error Returned from the Docker Authorization Handler to the Docker Registry" + } + }, + "schemas" : { + "ImageURL" : { + "properties" : { + "upload_url" : { + "example" : "https://cloudquery.io/api/v1/upload/1234567890abcdef1234567890abcdef", + "type" : "string" }, - "draft": { - "type": "boolean", - "description": "If a plugin version is in draft, it will not show to members outside the team or be counted as the latest version. Once draft is set to false, only certain fields can be updated." + "download_url" : { + "example" : "https://cloudquery.io/api/v1/download/1234567890abcdef1234567890abcdef", + "type" : "string" + } + }, + "required" : [ "download_url", "upload_url" ] + }, + "BasicError" : { + "additionalProperties" : false, + "description" : "Basic Error", + "properties" : { + "message" : { + "type" : "string" }, - "retracted": { - "type": "boolean", - "description": "If a plugin version is retracted, assets will still be available for download, but the version will be marked as retracted to discourage use." + "status" : { + "type" : "integer" + } + }, + "required" : [ "message", "status" ], + "title" : "Basic Error" + }, + "TeamName" : { + "description" : "The unique name for the team.", + "example" : "cloudquery", + "maxLength" : 255, + "pattern" : "^[a-z](-?[a-z0-9]+)+$", + "type" : "string" + }, + "PluginKind" : { + "description" : "The kind of plugin, ie. source or destination.", + "enum" : [ "source", "destination" ], + "example" : "source", + "type" : "string" + }, + "PluginName" : { + "description" : "The unique name for the plugin.", + "example" : "aws-source", + "maxLength" : 255, + "pattern" : "^[a-z](-?[a-z0-9]+)+$", + "type" : "string" + }, + "PluginNotificationRequestStatus" : { + "default" : "pending", + "description" : "Status of a plugin notification request", + "enum" : [ "pending", "sent" ], + "type" : "string" + }, + "PluginNotificationRequest" : { + "additionalProperties" : false, + "description" : "Plugin Notification Request", + "properties" : { + "plugin_team" : { + "$ref" : "#/components/schemas/TeamName" }, - "protocols": { - "$ref": "#/components/schemas/PluginProtocols" + "plugin_kind" : { + "$ref" : "#/components/schemas/PluginKind" }, - "supported_targets": { - "type": "array", - "items": { - "type": "string" - } + "plugin_name" : { + "$ref" : "#/components/schemas/PluginName" }, - "checksums": { - "type": "array", - "items": { - "type": "string" - }, - "description": "The SHA-256 checksums of the plugin binaries, one per supported target." + "created_at" : { + "example" : "2017-07-14T16:53:42Z", + "format" : "date-time", + "type" : "string" }, - "package_type": { - "type": "string", - "description": "The package type of the plugin binaries" + "sent_at" : { + "example" : "2017-07-14T16:53:42Z", + "format" : "date-time", + "type" : "string" }, - "spec_json_schema": { - "$ref": "#/components/schemas/PluginSpecJSONSchema" - } - } - }, - "PluginDocsPageName": { - "description": "The unique name for the plugin documentation page.", - "maxLength": 255, - "pattern": "^[\\w,\\s-]+$", - "type": "string", - "example": "overview" - }, - "PluginDocsPage": { - "additionalProperties": false, - "description": "CloudQuery Plugin Documentation Page", - "required": [ - "name", - "content" - ], - "properties": { - "name": { - "$ref": "#/components/schemas/PluginDocsPageName" - }, - "content": { - "type": "string", - "description": "The content of the documentation page. Supports markdown.", - "example": "# Getting Started\n\nThis is the getting started page." - } - }, - "title": "CloudQuery Plugin Documentation Page", - "type": "object" - }, - "PluginDocsPageCreate": { - "additionalProperties": false, - "description": "CloudQuery Plugin Documentation Page", - "required": [ - "name", - "content" - ], - "properties": { - "name": { - "$ref": "#/components/schemas/PluginDocsPageName" - }, - "content": { - "type": "string", - "minLength": 1, - "description": "The content of the documentation page. Supports markdown.", - "example": "# Getting Started\n\nThis is the getting started page." - } - }, - "title": "CloudQuery Plugin Documentation Page", - "type": "object" - }, - "PluginTableName": { - "description": "Name of the table", - "maxLength": 255, - "pattern": "^[a-z](_?[a-z0-9]+)+$", - "type": "string", - "example": "aws_ec2_instances" - }, - "PluginTable": { - "additionalProperties": false, - "description": "CloudQuery Plugin Table", - "required": [ - "description", - "is_incremental", - "name", - "relations", - "title" - ], - "properties": { - "description": { - "description": "Description of the table", - "type": "string", - "example": "AWS S3 Buckets" - }, - "is_incremental": { - "description": "Whether the table is incremental", - "type": "boolean" - }, - "name": { - "$ref": "#/components/schemas/PluginTableName" - }, - "parent": { - "description": "Name of the parent table, if any", - "type": "string", - "example": "nil" - }, - "relations": { - "description": "Names of the tables that depend on this table", - "items": { - "type": "string" - }, - "type": "array", - "example": [ - "aws_s3_bucket_cors_rules" - ] - }, - "title": { - "description": "Title of the table", - "type": "string", - "example": "AWS S3 Buckets" - }, - "is_paid": { - "description": "Whether the table is paid", - "type": "boolean" - } - }, - "title": "CloudQuery Plugin Table", - "type": "object" - }, - "PluginTableColumn": { - "additionalProperties": false, - "description": "CloudQuery Plugin Column", - "required": [ - "description", - "incremental_key", - "name", - "not_null", - "primary_key", - "type", - "unique" - ], - "properties": { - "description": { - "description": "Description of the column", - "type": "string" - }, - "incremental_key": { - "description": "Whether the column is used as an incremental key", - "type": "boolean" - }, - "name": { - "description": "Name of the column", - "type": "string" - }, - "not_null": { - "description": "Whether the column is nullable", - "type": "boolean" - }, - "primary_key": { - "description": "Whether the column is part of the primary key", - "type": "boolean" - }, - "type": { - "description": "Arrow Type of the column", - "type": "string" - }, - "unique": { - "description": "Whether the column has a unique constraint", - "type": "boolean" - } - }, - "title": "CloudQuery Plugin Table Column", - "type": "object" - }, - "PluginTableCreate": { - "additionalProperties": false, - "description": "CloudQuery Plugin Table", - "required": [ - "name" - ], - "properties": { - "description": { - "description": "Description of the table", - "type": "string", - "example": "AWS S3 Buckets" - }, - "is_incremental": { - "description": "Whether the table is incremental", - "type": "boolean" - }, - "name": { - "$ref": "#/components/schemas/PluginTableName" - }, - "parent": { - "description": "Name of the parent table, if any", - "type": "string", - "example": "nil" - }, - "relations": { - "description": "Names of the tables that depend on this table", - "items": { - "type": "string" - }, - "type": "array", - "example": [ - "aws_s3_bucket_cors_rules" - ] - }, - "title": { - "description": "Title of the table", - "type": "string", - "example": "AWS S3 Buckets" - }, - "is_paid": { - "description": "Whether the table is paid", - "type": "boolean" - }, - "columns": { - "type": "array", - "items": { - "$ref": "#/components/schemas/PluginTableColumn" - } + "status" : { + "$ref" : "#/components/schemas/PluginNotificationRequestStatus" } }, - "title": "CloudQuery Plugin Table", - "type": "object" - }, - "PluginTableDetails": { - "additionalProperties": false, - "required": [ - "columns", - "description", - "is_incremental", - "name", - "relations", - "title" - ], - "properties": { - "columns": { - "description": "List of columns", - "items": { - "$ref": "#/components/schemas/PluginTableColumn" - }, - "type": "array" - }, - "description": { - "description": "Description of the table", - "type": "string" - }, - "is_incremental": { - "description": "Whether the table is incremental", - "type": "boolean" - }, - "name": { - "description": "Name of the table", - "type": "string" - }, - "parent": { - "description": "Name of the parent table, if any", - "type": "string" - }, - "relations": { - "description": "Names of the tables that depend on this table", - "items": { - "type": "string" - }, - "type": "array" - }, - "title": { - "description": "Title of the table", - "type": "string" - }, - "is_paid": { - "description": "Whether the table is paid", - "type": "boolean" - } - }, - "type": "object" - }, - "PluginAsset": { - "additionalProperties": false, - "description": "CloudQuery Plugin Asset", - "required": [ - "checksum", - "location" - ], - "properties": { - "checksum": { - "type": "string", - "description": "The checksum of the plugin asset" - }, - "location": { - "type": "string", - "format": "uri", - "description": "The location to download the plugin asset from" - } - }, - "title": "CloudQuery Plugin Asset", - "type": "object" - }, - "ReleaseURL": { - "required": [ - "url" - ], - "properties": { - "url": { - "type": "string" - } - } + "required" : [ "created_at", "plugin_kind", "plugin_name", "plugin_team" ] }, - "AddonName": { - "description": "The unique name for the addon.", - "maxLength": 255, - "pattern": "^[a-z](-?[a-z0-9]+)+$", - "type": "string", - "example": "aws-policy" - }, - "AddonCategory": { - "description": "Supported categories for addons", - "type": "string", - "enum": [ - "cloud-infrastructure", - "databases", - "sales-marketing", - "engineering-analytics", - "other" - ] - }, - "AddonType": { - "description": "Supported types for addons", - "type": "string", - "enum": [ - "transformation", - "visualization" - ] - }, - "AddonFormat": { - "description": "Supported formats for addons", - "type": "string", - "enum": [ - "zip" - ] - }, - "AddonTier": { - "description": "Supported tiers for addons", - "type": "string", - "enum": [ - "free", - "paid" - ] - }, - "Addon": { - "additionalProperties": false, - "description": "CloudQuery Addon", - "properties": { - "team_name": { - "$ref": "#/components/schemas/TeamName" - }, - "name": { - "$ref": "#/components/schemas/AddonName" - }, - "official": { - "description": "True if the addon is maintained by CloudQuery, false otherwise", - "type": "boolean" - }, - "category": { - "$ref": "#/components/schemas/AddonCategory" - }, - "addon_type": { - "$ref": "#/components/schemas/AddonType" - }, - "addon_format": { - "$ref": "#/components/schemas/AddonFormat" - }, - "tier": { - "$ref": "#/components/schemas/AddonTier" - }, - "price_usd": { - "type": "string", - "pattern": "^\\d+(?:\\.\\d{1,10})?$", - "description": "The price for 6 months", - "example": "50", - "x-go-name": "PriceUSD" - }, - "short_description": { - "type": "string", - "minLength": 1, - "maxLength": 512, - "example": "AWS Asset inventory dashboard for grafana" - }, - "display_name": { - "description": "The addon's display name", - "type": "string", - "minLength": 1, - "maxLength": 50, - "example": "AWS Asset inventory" - }, - "homepage": { - "type": "string", - "example": "https://cloudquery.io" - }, - "repository": { - "type": "string", - "example": "https://github.com/cloudquery/cloudquery" - }, - "logo": { - "type": "string", - "example": "https://images.cloudquery.io/logos/aws.png" - }, - "public": { - "description": "Whether the plugin is listed in the CloudQuery Hub. If false, the plugin will not be shown in the CloudQuery Hub and will only be visible to members of the plugin's team.", - "type": "boolean" - }, - "created_at": { - "example": "2017-07-14T16:53:42Z", - "format": "date-time", - "type": "string" - }, - "updated_at": { - "example": "2017-07-14T16:53:42Z", - "format": "date-time", - "type": "string" - } - }, - "required": [ - "team_name", - "name", - "display_name", - "official", - "category", - "addon_type", - "addon_format", - "tier", - "price_usd", - "short_description", - "logo", - "created_at", - "updated_at" - ], - "title": "CloudQuery Addon", - "type": "object" - }, - "ListAddon": { - "allOf": [ - { - "$ref": "#/components/schemas/Addon" - }, - { - "type": "object", - "properties": { - "latest_version": { - "$ref": "#/components/schemas/VersionName" - } - } - } - ] - }, - "AddonCreate": { - "additionalProperties": false, - "description": "CloudQuery AddonCreate", - "properties": { - "team_name": { - "$ref": "#/components/schemas/TeamName" - }, - "name": { - "$ref": "#/components/schemas/AddonName" - }, - "category": { - "$ref": "#/components/schemas/AddonCategory" - }, - "addon_type": { - "$ref": "#/components/schemas/AddonType" - }, - "addon_format": { - "$ref": "#/components/schemas/AddonFormat" - }, - "tier": { - "$ref": "#/components/schemas/AddonTier" - }, - "price_usd": { - "type": "string", - "pattern": "^\\d+(?:\\.\\d{1,10})?$", - "description": "The price for 6 months", - "example": "50", - "x-go-name": "PriceUSD" - }, - "short_description": { - "type": "string", - "minLength": 1, - "maxLength": 512, - "example": "AWS Asset inventory dashboard for grafana" - }, - "display_name": { - "description": "The addon's display name", - "type": "string", - "minLength": 1, - "maxLength": 50, - "example": "AWS Asset inventory" - }, - "homepage": { - "type": "string", - "example": "https://cloudquery.io" - }, - "repository": { - "type": "string", - "example": "https://github.com/cloudquery/cloudquery" - }, - "logo": { - "type": "string", - "example": "https://images.cloudquery.io/logos/aws.png" - }, - "public": { - "description": "Whether the plugin is listed in the CloudQuery Hub. If false, the plugin will not be shown in the CloudQuery Hub and will only be visible to members of the plugin's team.", - "type": "boolean" - } - }, - "required": [ - "team_name", - "name", - "category", - "addon_type", - "addon_format", - "tier", - "display_name", - "short_description", - "logo", - "public" - ], - "title": "CloudQuery Addon", - "type": "object" - }, - "AddonUpdate": { - "additionalProperties": false, - "description": "CloudQuery AddonUpdate", - "properties": { - "category": { - "$ref": "#/components/schemas/AddonCategory" - }, - "addon_format": { - "$ref": "#/components/schemas/AddonFormat" - }, - "tier": { - "$ref": "#/components/schemas/AddonTier" - }, - "price_usd": { - "type": "string", - "pattern": "^\\d+(?:\\.\\d{1,10})?$", - "description": "The price for 6 months in USD", - "example": "50", - "x-go-name": "PriceUSD" - }, - "short_description": { - "type": "string", - "minLength": 1, - "maxLength": 512, - "example": "AWS Asset inventory dashboard for grafana" - }, - "display_name": { - "description": "The addon's display name", - "type": "string", - "minLength": 1, - "maxLength": 50, - "example": "AWS Asset inventory" - }, - "homepage": { - "type": "string", - "example": "https://cloudquery.io" - }, - "repository": { - "type": "string", - "example": "https://github.com/cloudquery/cloudquery" - }, - "logo": { - "type": "string", - "example": "https://images.cloudquery.io/logos/aws.png" - }, - "public": { - "description": "Whether the plugin is listed in the CloudQuery Hub. If false, the plugin will not be shown in the CloudQuery Hub and will only be visible to members of the plugin's team.", - "type": "boolean" - }, - "created_at": { - "example": "2017-07-14T16:53:42Z", - "format": "date-time", - "type": "string" - } - }, - "title": "CloudQuery Addon", - "type": "object" - }, - "AddonVersion": { - "additionalProperties": false, - "description": "CloudQuery Addon Version", - "required": [ - "created_at", - "name", - "message", - "doc", - "draft", - "retracted", - "checksum" - ], - "properties": { - "created_at": { - "example": "2017-07-14T16:53:42Z", - "format": "date-time", - "type": "string", - "description": "The date and time the plugin version was created." - }, - "published_at": { - "example": "2017-07-14T16:53:42Z", - "format": "date-time", - "type": "string", - "description": "The date and time the plugin version was set to non-draft (published)." - }, - "name": { - "$ref": "#/components/schemas/VersionName" - }, - "message": { - "type": "string", - "description": "Description of what's new or changed in this version (supports markdown)", - "example": "- Added support for *AWS S3* - Added support for *AWS EC2*" - }, - "doc": { - "type": "string", - "description": "Main README in MD format" - }, - "draft": { - "type": "boolean", - "description": "If a plugin version is in draft, it will not show to members outside the team or be counted as the latest version." - }, - "plugin_deps": { - "type": "array", - "items": { - "type": "string" - }, - "description": "list of plugins the addon depends on in the format of team_name/kind/name@version" - }, - "addon_deps": { - "type": "array", - "items": { - "type": "string" - }, - "description": "list of other addons this addon depends on in the format of team_name/type/name@version" - }, - "retracted": { - "type": "boolean", - "description": "If a plugin version is retracted, assets will still be available for download, but the version will be marked as retracted to discourage use." - }, - "checksum": { - "type": "string", - "description": "The checksum of the addon asset" - } - }, - "title": "CloudQuery Addon Version", - "type": "object" - }, - "AddonVersionUpdate": { - "type": "object", - "properties": { - "message": { - "type": "string", - "description": "Description of what's new or changed in this version (supports markdown)", - "example": "- Added support for *AWS S3* - Added support for *AWS EC2*" - }, - "doc": { - "type": "string", - "description": "Main README in MD format" - }, - "draft": { - "type": "boolean", - "description": "If a plugin version is in draft, it will not show to members outside the team or be counted as the latest version." - }, - "plugin_deps": { - "type": "array", - "items": { - "type": "string" - }, - "description": "list of plugins the addon depends on in the format of team_name/kind/name@version" - }, - "addon_deps": { - "type": "array", - "items": { - "type": "string" - }, - "description": "list of other addons this addon depends on in the format of team_name/type/name@version" - }, - "retracted": { - "type": "boolean", - "description": "If a plugin version is retracted, assets will still be available for download, but the version will be marked as retracted to discourage use." - }, - "checksum": { - "type": "string", - "description": "The checksum of the addon asset" + "ListMetadata" : { + "properties" : { + "total_count" : { + "type" : "integer" + }, + "last_page" : { + "type" : "integer" } } }, - "AddonAsset": { - "additionalProperties": false, - "description": "CloudQuery Addon Asset", - "required": [ - "checksum", - "location" - ], - "properties": { - "checksum": { - "type": "string", - "description": "The checksum of the addon asset" - }, - "location": { - "type": "string", - "format": "uri", - "description": "The location to download the addon asset from" - } - }, - "title": "CloudQuery Addon Asset", - "type": "object" - }, - "TeamPlan": { - "description": "The plan the team is on", - "type": "string", - "enum": [ - "free", - "paid", - "enterprise", - "trial" - ] - }, - "Team": { - "additionalProperties": false, - "description": "CloudQuery Team", - "properties": { - "created_at": { - "example": "2017-07-14T16:53:42Z", - "format": "date-time", - "type": "string" - }, - "name": { - "$ref": "#/components/schemas/TeamName" - }, - "plan": { - "$ref": "#/components/schemas/TeamPlan" - }, - "plan_end_time": { - "example": "2017-07-14T16:53:42Z", - "format": "date-time", - "type": "string" - }, - "is_trial_active": { - "type": "boolean", - "example": false - }, - "trial_end_time": { - "example": "2017-07-14T16:53:42Z", - "format": "date-time", - "type": "string" - }, - "display_name": { - "description": "The team's display name", - "maxLength": 255, - "type": "string", - "example": "CloudQuery" - } - }, - "required": [ - "name", - "display_name", - "plan", - "is_trial_active" - ], - "title": "Team", - "type": "object" - }, - "TeamImageCreate": { - "type": "object", - "title": "Create Team Image Request", - "additionalProperties": false, - "required": [ - "name", - "checksum" - ], - "properties": { - "name": { - "type": "string", - "minLength": 1, - "maxLength": 64, - "description": "Name of image" - }, - "checksum": { - "type": "string", - "length": 40, - "pattern": "^[a-f0-9]+$", - "description": "SHA1 checksum of image" + "PluginNotificationRequestCreate" : { + "additionalProperties" : false, + "description" : "Create a Plugin Notification Request", + "properties" : { + "plugin_team" : { + "$ref" : "#/components/schemas/TeamName" + }, + "plugin_kind" : { + "$ref" : "#/components/schemas/PluginKind" + }, + "plugin_name" : { + "$ref" : "#/components/schemas/PluginName" } - } + }, + "required" : [ "plugin_kind", "plugin_name", "plugin_team" ] }, - "TeamImage": { - "required": [ - "url", - "name", - "checksum" - ], - "properties": { - "name": { - "type": "string", - "description": "Name of image" - }, - "checksum": { - "type": "string", - "description": "SHA1 checksum of image" - }, - "url": { - "type": "string", - "description": "URL to download image", - "x-go-name": "URL" - }, - "upload_url": { - "type": "string", - "description": "URL to upload image", - "x-go-name": "UploadURL" + "FieldError" : { + "allOf" : [ { + "$ref" : "#/components/schemas/BasicError" + }, { + "properties" : { + "errors" : { + "items" : { + "type" : "string" + }, + "type" : "array" + }, + "field_errors" : { + "additionalProperties" : { + "type" : "string" + } + } + } + } ] + }, + "PluginCategory" : { + "description" : "Supported categories for plugins", + "enum" : [ "cloud-infrastructure", "databases", "sales-marketing", "engineering-analytics", "marketing-analytics", "shipment-tracking", "product-analytics", "cloud-finops", "project-management", "fleet-management", "security", "data-warehouses", "human-resources", "other" ], + "type" : "string" + }, + "PluginPriceCategory" : { + "description" : "Supported price categories for billing", + "enum" : [ "api", "database", "free" ], + "type" : "string" + }, + "PluginReleaseStage" : { + "description" : "Official plugins can go through three release stages: Coming Soon, Preview, and GA.\nThe Coming Soon stage is for plugins that are not yet ready for Preview, but users can subscribe to be notified when they are ready.\nBoth Preview and GA plugins follow semantic versioning. The main differences between the two stages are:\nPreview plugins are still experimental and may have frequent breaking changes. Preview plugins might get deprecated due to lack of usage. Long Term Support with community Discord and bug fixes is only guaranteed for GA plugins. Premium plugins are often discounted or free during the Preview stage.", + "enum" : [ "coming-soon", "preview", "ga" ], + "type" : "string" + }, + "PluginTier" : { + "deprecated" : true, + "description" : "This field is deprecated, refer to `price_category` instead.\nThis field is only kept for backward compatibility and may be removed in a future release.\nSupported tiers for plugins.\n - free: Free tier, with no paid tables.\n - paid: Paid tier. These plugins may have paid tables, but can also have free tables. They require login to access.\n - open-core: This option is deprecated, values will either be free or paid.\n", + "enum" : [ "free", "paid", "open-core" ], + "type" : "string" + }, + "Plugin" : { + "additionalProperties" : false, + "description" : "CloudQuery Plugin", + "properties" : { + "team_name" : { + "$ref" : "#/components/schemas/TeamName" + }, + "name" : { + "$ref" : "#/components/schemas/PluginName" + }, + "kind" : { + "$ref" : "#/components/schemas/PluginKind" + }, + "category" : { + "$ref" : "#/components/schemas/PluginCategory" + }, + "price_category" : { + "$ref" : "#/components/schemas/PluginPriceCategory" + }, + "created_at" : { + "example" : "2017-07-14T16:53:42Z", + "format" : "date-time", + "type" : "string" + }, + "updated_at" : { + "example" : "2017-07-14T16:53:42Z", + "format" : "date-time", + "type" : "string" + }, + "homepage" : { + "example" : "https://cloudquery.io", + "type" : "string" + }, + "logo" : { + "example" : "https://images.cloudquery.io/logos/aws.png", + "type" : "string" + }, + "display_name" : { + "description" : "The plugin's display name", + "example" : "AWS Source Plugin", + "maxLength" : 50, + "minLength" : 1, + "type" : "string" + }, + "official" : { + "description" : "True if the plugin is maintained by CloudQuery, false otherwise", + "type" : "boolean" + }, + "release_stage" : { + "$ref" : "#/components/schemas/PluginReleaseStage" + }, + "repository" : { + "example" : "https://github.com/cloudquery/cloudquery", + "type" : "string" + }, + "short_description" : { + "example" : "Sync data from AWS to any destination", + "maxLength" : 512, + "minLength" : 1, + "type" : "string" + }, + "tier" : { + "$ref" : "#/components/schemas/PluginTier" + }, + "public" : { + "description" : "Whether the plugin is listed in the CloudQuery Hub. If false, the plugin will not be shown in the CloudQuery Hub and will only be visible to members of the plugin's team.", + "type" : "boolean" + }, + "usd_per_row" : { + "deprecated" : true, + "description" : "Deprecated. Refer to `price_category` instead.", + "example" : "0.0001", + "pattern" : "^\\d+(?:\\.\\d{1,10})?$", + "type" : "string", + "x-go-name" : "USDPerRow" + }, + "free_rows_per_month" : { + "deprecated" : true, + "description" : "Deprecated. Refer to `price_category` instead.", + "example" : 1000, + "format" : "int64", + "type" : "integer" + }, + "minimum_cloud_version" : { + "description" : "Minimum plugin version that is supported in CloudQuery managed syncs.", + "example" : "v1.2.3", + "maxLength" : 64, + "type" : "string" + } + }, + "required" : [ "category", "created_at", "display_name", "free_rows_per_month", "kind", "logo", "name", "official", "release_stage", "short_description", "team_name", "tier", "updated_at", "usd_per_row" ], + "title" : "CloudQuery Plugin" + }, + "VersionName" : { + "description" : "The version in semantic version format.", + "pattern" : "^v[0-9]+\\.[0-9]+\\.[0-9]+(-[0-9A-Za-z-]+(\\.[0-9A-Za-z-]+)*)?(\\+[0-9A-Za-z-]+(\\.[0-9A-Za-z-]+)*)?$", + "type" : "string" + }, + "ListPlugin" : { + "allOf" : [ { + "$ref" : "#/components/schemas/Plugin" + }, { + "properties" : { + "latest_version" : { + "$ref" : "#/components/schemas/VersionName" + } + } + } ] + }, + "PluginReleaseStageCreate" : { + "default" : "coming-soon", + "description" : "Official plugins can go through three release stages: Coming Soon, Preview, and GA.\nThe Coming Soon stage is for plugins that are not yet ready for Preview, but users can subscribe to be notified when they are ready.\nBoth Preview and GA plugins follow semantic versioning. The main differences between the two stages are:\nPreview plugins are still experimental and may have frequent breaking changes. Preview plugins might get deprecated due to lack of usage. Long Term Support with community Discord and bug fixes is only guaranteed for GA plugins. Premium plugins are often discounted or free during the Preview stage.", + "enum" : [ "coming-soon", "preview", "ga" ], + "type" : "string" + }, + "PluginCreate" : { + "properties" : { + "team_name" : { + "$ref" : "#/components/schemas/TeamName" + }, + "kind" : { + "$ref" : "#/components/schemas/PluginKind" + }, + "name" : { + "$ref" : "#/components/schemas/PluginName" + }, + "category" : { + "$ref" : "#/components/schemas/PluginCategory" + }, + "price_category" : { + "$ref" : "#/components/schemas/PluginPriceCategory" + }, + "tier" : { + "$ref" : "#/components/schemas/PluginTier" + }, + "display_name" : { + "description" : "The plugin's display name, as shown in the CloudQuery Hub.", + "example" : "AWS Source Plugin", + "maxLength" : 50, + "minLength" : 1, + "type" : "string" + }, + "short_description" : { + "description" : "Short description of the plugin. This will be shown in the CloudQuery Hub.", + "example" : "Sync data from AWS to any destination", + "maxLength" : 512, + "minLength" : 1, + "type" : "string" + }, + "homepage" : { + "example" : "https://cloudquery.io", + "type" : "string" + }, + "public" : { + "description" : "Whether the plugin is listed in the CloudQuery Hub. If false, the plugin will not be shown in the CloudQuery Hub and will only be visible to members of the team.", + "example" : true, + "type" : "boolean" + }, + "repository" : { + "example" : "https://github.com/cloudquery/cloudquery", + "type" : "string" + }, + "release_stage" : { + "$ref" : "#/components/schemas/PluginReleaseStageCreate" + }, + "logo" : { + "description" : "URL to the plugin's logo. This will be shown in the CloudQuery Hub. This must point to https://images.cloudquery.io/...", + "example" : "https://images.cloudquery.io/logos/aws.png", + "type" : "string" + }, + "usd_per_row" : { + "deprecated" : true, + "description" : "Deprecated. Use `price_category` instead.", + "example" : "0.00001", + "pattern" : "^\\d+(?:\\.\\d{1,10})?$", + "type" : "string", + "x-go-name" : "USDPerRow" + }, + "free_rows_per_month" : { + "deprecated" : true, + "description" : "Deprecated. Use `price_category` instead.", + "example" : 10000, + "format" : "int64", + "type" : "integer" + } + }, + "required" : [ "category", "display_name", "kind", "logo", "name", "public", "short_description", "team_name" ] + }, + "PluginReleaseStageUpdate" : { + "description" : "Official plugins can go through three release stages: Coming Soon, Preview, and GA.\nThe Coming Soon stage is for plugins that are not yet ready for Preview, but users can subscribe to be notified when they are ready.\nBoth Preview and GA plugins follow semantic versioning. The main differences between the two stages are:\nPreview plugins are still experimental and may have frequent breaking changes. Preview plugins might get deprecated due to lack of usage. Long Term Support with community Discord and bug fixes is only guaranteed for GA plugins. Premium plugins are often discounted or free during the Preview stage.", + "enum" : [ "coming-soon", "preview", "ga" ], + "type" : "string" + }, + "PluginUpdate" : { + "properties" : { + "category" : { + "$ref" : "#/components/schemas/PluginCategory" + }, + "price_category" : { + "$ref" : "#/components/schemas/PluginPriceCategory" + }, + "tier" : { + "$ref" : "#/components/schemas/PluginTier" + }, + "display_name" : { + "description" : "The plugin's display name, as shown in the CloudQuery Hub.", + "example" : "AWS Source Plugin", + "maxLength" : 50, + "minLength" : 1, + "type" : "string" + }, + "short_description" : { + "description" : "Short description of the plugin. This will be shown in the CloudQuery Hub.", + "example" : "Sync data from AWS to any destination", + "maxLength" : 512, + "minLength" : 1, + "type" : "string" + }, + "homepage" : { + "example" : "https://cloudquery.io", + "type" : "string" + }, + "repository" : { + "example" : "https://github.com/cloudquery/cloudquery", + "type" : "string" + }, + "logo" : { + "description" : "URL to the plugin's logo. This will be shown in the CloudQuery Hub. This must point to https://images.cloudquery.io/...", + "example" : "https://images.cloudquery.io/logos/aws.png", + "type" : "string" + }, + "public" : { + "description" : "If plugin is not public, it won't be visible to other teams in the CloudQuery Hub.", + "type" : "boolean" + }, + "release_stage" : { + "$ref" : "#/components/schemas/PluginReleaseStageUpdate" + }, + "usd_per_row" : { + "deprecated" : true, + "description" : "Deprecated. Update `price_category` instead.", + "example" : "0.0001", + "pattern" : "^\\d+(?:\\.\\d{1,10})?$", + "type" : "string", + "x-go-name" : "USDPerRow" + }, + "free_rows_per_month" : { + "deprecated" : true, + "description" : "Deprecated. Update `price_category` instead.", + "example" : 1000, + "format" : "int64", + "type" : "integer" } } }, - "AddonOrderID": { - "description": "ID of the addon order", - "type": "string", - "format": "uuid", - "example": "12345678-1234-1234-1234-1234567890ab", - "x-go-name": "AddonOrderID" - }, - "AddonOrderStatus": { - "type": "string", - "enum": [ - "pending", - "completed", - "cancelled" - ] - }, - "AddonOrder": { - "additionalProperties": false, - "description": "CloudQuery Addon Order", - "properties": { - "id": { - "$ref": "#/components/schemas/AddonOrderID" - }, - "team_name": { - "$ref": "#/components/schemas/TeamName" - }, - "addon_team": { - "$ref": "#/components/schemas/TeamName" - }, - "addon_type": { - "$ref": "#/components/schemas/AddonType" - }, - "addon_name": { - "$ref": "#/components/schemas/AddonName" - }, - "status": { - "$ref": "#/components/schemas/AddonOrderStatus" - }, - "created_at": { - "type": "string", - "format": "date-time", - "example": "2017-07-14T16:53:42Z" - }, - "updated_at": { - "type": "string", - "format": "date-time", - "example": "2017-07-14T16:53:42Z" - }, - "completed_at": { - "type": "string", - "format": "date-time", - "example": "2017-07-14T16:53:42Z" - }, - "completion_url": { - "type": "string", - "format": "uri", - "description": "Stripe URL for completing purchase. Only shown in response to POST request.", - "x-go-name": "CompletionURL" - } - }, - "required": [ - "id", - "team_name", - "addon_team", - "addon_type", - "addon_name", - "status", - "created_at", - "updated_at" - ], - "title": "CloudQuery Addon", - "type": "object" - }, - "AddonOrderCreate": { - "additionalProperties": false, - "description": "Create CloudQuery Addon Order", - "properties": { - "addon_team": { - "$ref": "#/components/schemas/TeamName" - }, - "addon_type": { - "$ref": "#/components/schemas/AddonType" - }, - "addon_name": { - "$ref": "#/components/schemas/AddonName" - }, - "success_url": { - "type": "string", - "description": "URL to redirect to after successful order completion", - "example": "https://cloud.cloudquery.io/order-completion" - }, - "cancel_url": { - "type": "string", - "description": "URL to redirect to after order cancellation", - "example": "https://cloud.cloudquery.io/order-cancelled" - } - }, - "required": [ - "addon_team", - "addon_type", - "addon_name", - "success_url", - "cancel_url" - ], - "title": "Create CloudQuery Addon Order", - "type": "object" - }, - "Email": { - "type": "string", - "example": "user@cloudquery.io", - "format": "email" - }, - "UserName": { - "description": "The unique name for the user.", - "maxLength": 255, - "pattern": "^[a-z](-?[a-z0-9]+)+$", - "type": "string", - "example": "user" - }, - "User": { - "additionalProperties": false, - "description": "CloudQuery User", - "properties": { - "created_at": { - "example": "2017-07-14T16:53:42Z", - "format": "date-time", - "type": "string" - }, - "id": { - "description": "ID of the User", - "type": "string", - "format": "uuid", - "example": "12345678-1234-1234-1234-1234567890ab", - "x-go-name": "ID" - }, - "email": { - "$ref": "#/components/schemas/Email" - }, - "name": { - "$ref": "#/components/schemas/UserName" - }, - "updated_at": { - "example": "2017-07-14T16:53:42Z", - "format": "date-time", - "type": "string" - } - }, - "required": [ - "id", - "email" - ], - "title": "CloudQuery User", - "type": "object" - }, - "MembershipWithUser": { - "additionalProperties": false, - "properties": { - "role": { - "type": "string", - "example": "admin" - }, - "user": { - "$ref": "#/components/schemas/User" - } - }, - "required": [ - "role" - ], - "title": "CloudQuery User Membership", - "type": "object" - }, - "MonthlyLimit": { - "title": "CloudQuery Plugin Monthly Limit", - "description": "A configurable monthly limit for plugin usage.", - "type": "object", - "additionalProperties": false, - "required": [ - "created_at", - "updated_at", - "plugin_team", - "plugin_kind", - "plugin_name", - "usd" - ], - "properties": { - "created_at": { - "example": "2017-07-14T16:53:42Z", - "format": "date-time", - "type": "string", - "description": "The date and time the plugin limit was created." - }, - "updated_at": { - "example": "2017-07-14T16:53:42Z", - "format": "date-time", - "type": "string", - "description": "The date and time the plugin limit was last updated." - }, - "plugin_team": { - "$ref": "#/components/schemas/TeamName" - }, - "plugin_kind": { - "$ref": "#/components/schemas/PluginKind" - }, - "plugin_name": { - "$ref": "#/components/schemas/PluginName" - }, - "usd": { - "example": 1000, - "type": "integer", - "minimum": 0, - "maximum": 1000000000, - "description": "The maximum USD amount the plugin is allowed to use within a calendar month.", - "x-go-name": "USD" + "PluginPrice" : { + "additionalProperties" : false, + "description" : "CloudQuery Plugin Price", + "properties" : { + "id" : { + "description" : "ID of the price change", + "example" : "12345678-1234-1234-1234-1234567890ab", + "format" : "uuid", + "type" : "string", + "x-go-name" : "ID" + }, + "usd_per_row" : { + "description" : "The price per row in USD. This is used to calculate the price of a sync.", + "example" : "0.0001", + "pattern" : "^\\d+(?:\\.\\d{1,10})?$", + "type" : "string", + "x-go-name" : "USDPerRow" + }, + "free_rows_per_month" : { + "description" : "The number of rows that can be synced for free each month.", + "example" : 1000, + "format" : "int64", + "type" : "integer" + }, + "effective_from" : { + "description" : "The date and time the price came (or will come) into effect.", + "example" : "2024-01-02T00:00:00Z", + "format" : "date-time", + "type" : "string" + } + }, + "required" : [ "effective_from", "free_rows_per_month", "id", "usd_per_row" ], + "title" : "CloudQuery Plugin Price" + }, + "PluginPriceCreate" : { + "additionalProperties" : false, + "description" : "CloudQuery Plugin Price Create", + "properties" : { + "usd_per_row" : { + "description" : "The price per row in USD. This is used to calculate the price of a sync.", + "example" : "0.0001", + "pattern" : "^\\d+(?:\\.\\d{1,10})?$", + "type" : "string", + "x-go-name" : "USDPerRow" + }, + "free_rows_per_month" : { + "description" : "The number of rows that can be synced for free each month.", + "example" : 1000, + "format" : "int64", + "type" : "integer" + }, + "effective_from" : { + "description" : "The date and time the price came (or will come) into effect.", + "example" : "2024-01-02T00:00:00Z", + "format" : "date-time", + "type" : "string" + } + }, + "required" : [ "effective_from", "free_rows_per_month", "usd_per_row" ], + "title" : "CloudQuery Plugin Price Create" + }, + "PluginProtocols" : { + "description" : "The CloudQuery protocols supported by this plugin version (only protocol 3 is supported by new plugins).", + "items" : { + "enum" : [ 3 ], + "type" : "integer" + }, + "type" : "array" + }, + "PluginPackageType" : { + "description" : "The package type of the plugin assets", + "enum" : [ "native", "docker" ], + "type" : "string" + }, + "PluginVersionBase" : { + "additionalProperties" : false, + "description" : "CloudQuery Plugin Version", + "properties" : { + "created_at" : { + "description" : "The date and time the plugin version was created.", + "example" : "2017-07-14T16:53:42Z", + "format" : "date-time", + "type" : "string" + }, + "published_at" : { + "description" : "The date and time the plugin version was set to non-draft (published).", + "example" : "2017-07-14T16:53:42Z", + "format" : "date-time", + "type" : "string" + }, + "name" : { + "$ref" : "#/components/schemas/VersionName" + }, + "message" : { + "description" : "Description of what's new or changed in this version (supports markdown)", + "example" : "- Added support for AWS S3 - Added support for AWS EC2", + "type" : "string" + }, + "draft" : { + "description" : "If a plugin version is in draft, it will not show to members outside the team or be counted as the latest version.", + "type" : "boolean" + }, + "retracted" : { + "description" : "If a plugin version is retracted, assets will still be available for download, but the version will be marked as retracted to discourage use.", + "type" : "boolean" + }, + "protocols" : { + "$ref" : "#/components/schemas/PluginProtocols" + }, + "supported_targets" : { + "description" : "The targets supported by this plugin version, formatted as _", + "example" : [ "linux_arm64", "darwin_amd64", "windows_amd64" ], + "items" : { + "type" : "string" + }, + "type" : "array" + }, + "checksums" : { + "description" : "The checksums of the plugin assets", + "items" : { + "type" : "string" + }, + "type" : "array" + }, + "package_type" : { + "$ref" : "#/components/schemas/PluginPackageType" } - } + }, + "required" : [ "checksums", "created_at", "draft", "message", "name", "package_type", "protocols", "retracted", "supported_targets" ], + "title" : "CloudQuery Plugin Version" }, - "MonthlyLimitCreate": { - "title": "CloudQuery Plugin Monthly Limit", - "description": "A configurable monthly limit for plugin usage.", - "type": "object", - "additionalProperties": false, - "required": [ - "plugin_team", - "plugin_kind", - "plugin_name", - "usd" - ], - "properties": { - "plugin_team": { - "$ref": "#/components/schemas/TeamName" - }, - "plugin_kind": { - "$ref": "#/components/schemas/PluginKind" - }, - "plugin_name": { - "$ref": "#/components/schemas/PluginName" - }, - "usd": { - "example": 1000, - "type": "integer", - "minimum": 0, - "maximum": 1000000000, - "description": "The maximum USD amount the plugin is allowed to use within a calendar month.", - "x-go-name": "USD" - } - } + "PluginVersionList" : { + "allOf" : [ { + "$ref" : "#/components/schemas/PluginVersionBase" + } ] }, - "SpendingLimit": { - "title": "Team Spending Limit", - "description": "A configurable spending limit for the team. Empty values indicate no limit.", - "type": "object", - "additionalProperties": false, - "properties": { - "created_at": { - "example": "2017-07-14T16:53:42Z", - "format": "date-time", - "type": "string", - "description": "The date and time the team limit was created." - }, - "updated_at": { - "example": "2017-07-14T16:53:42Z", - "format": "date-time", - "type": "string", - "description": "The date and time the team limit was last updated." - }, - "usd": { - "example": 1000, - "type": "integer", - "minimum": 0, - "maximum": 1000000000, - "description": "The maximum USD amount the team is allowed to use within a calendar month.", - "x-go-name": "USD" - } - } + "PluginSpecJSONSchema" : { + "description" : "The specification of the plugin. This is a JSON schema that describes the configuration of the plugin.", + "type" : "string" }, - "SpendingLimitUpdate": { - "title": "Team Spending Limit", - "description": "A configurable spending limit for the team.", - "type": "object", - "additionalProperties": false, - "required": [ - "usd" - ], - "properties": { - "usd": { - "example": 1000, - "type": "integer", - "minimum": 0, - "maximum": 1000000000, - "description": "The maximum USD amount the team is allowed to use within a calendar month.", - "x-go-name": "USD" + "PluginVersion" : { + "allOf" : [ { + "$ref" : "#/components/schemas/PluginVersionBase" + }, { + "properties" : { + "spec_json_schema" : { + "$ref" : "#/components/schemas/PluginSpecJSONSchema" + } } - } + } ] }, - "SpendingLimitCreate": { - "title": "Team Spending Limit", - "description": "A configurable monthly limit for team usage.", - "type": "object", - "additionalProperties": false, - "required": [ - "usd" - ], - "properties": { - "usd": { - "example": 1000, - "type": "integer", - "minimum": 0, - "maximum": 1000000000, - "description": "The maximum USD amount the team is allowed to use within a calendar month.", - "x-go-name": "USD" - } - } + "PluginVersionDetails" : { + "allOf" : [ { + "$ref" : "#/components/schemas/PluginVersion" + }, { + "properties" : { + "example_config" : { + "description" : "Example configuration for the plugin. This can be used in generated quickstart guides, for example. Markdown format.", + "type" : "string" + } + }, + "required" : [ "example_config" ] + } ] }, - "MonthlyLimitUpdate": { - "title": "CloudQuery Plugin Monthly Limit", - "description": "A configurable monthly limit for plugin usage.", - "type": "object", - "additionalProperties": false, - "required": [ - "usd" - ], - "properties": { - "usd": { - "example": 1000, - "type": "integer", - "minimum": 0, - "maximum": 1000000000, - "description": "The maximum USD amount the plugin is allowed to use within a calendar month.", - "x-go-name": "USD" + "PluginVersionUpdate" : { + "properties" : { + "message" : { + "description" : "Description of what's new or changed in this version (supports markdown)", + "example" : "- Added support for *AWS S3* - Added support for *AWS EC2*", + "type" : "string" + }, + "draft" : { + "description" : "If a plugin version is in draft, it will not show to members outside the team or be counted as the latest version. Once draft is set to false, only certain fields can be updated.", + "type" : "boolean" + }, + "retracted" : { + "description" : "If a plugin version is retracted, assets will still be available for download, but the version will be marked as retracted to discourage use.", + "type" : "boolean" + }, + "protocols" : { + "$ref" : "#/components/schemas/PluginProtocols" + }, + "supported_targets" : { + "items" : { + "type" : "string" + }, + "type" : "array" + }, + "checksums" : { + "description" : "The SHA-256 checksums of the plugin binaries, one per supported target.", + "items" : { + "type" : "string" + }, + "type" : "array" + }, + "package_type" : { + "description" : "The package type of the plugin binaries", + "type" : "string" + }, + "spec_json_schema" : { + "$ref" : "#/components/schemas/PluginSpecJSONSchema" } } }, - "Invoice": { - "additionalProperties": false, - "title": "Invoice", - "description": "Invoice details", - "properties": { - "created_at": { - "type": "string", - "format": "date-time", - "example": "2017-07-14T16:53:42Z" - }, - "amount_due": { - "type": "integer", - "format": "int64", - "example": 1000, - "description": "Amount due in cents. This is the amount that will be charged, unless there are pending invoice items. If the invoice’s total is smaller than the minimum charge amount, for example, or if there is account credit that can be applied to the invoice, the amount_due may be 0. The charge that gets generated for the invoice will be for the amount specified in amount_due." - }, - "currency": { - "type": "string", - "example": "usd" - }, - "invoice_pdf": { - "type": "string", - "format": "uri", - "description": "The link to download the PDF for the invoice.", - "x-go-name": "InvoicePDF" - }, - "paid": { - "type": "boolean", - "example": true, - "description": "Whether or not payment was successfully collected for this invoice." - } - }, - "required": [ - "created_at", - "amount_due", - "currency", - "invoice_pdf", - "paid" - ], - "type": "object" - }, - "UsageCurrent": { - "title": "CloudQuery Plugin Usage", - "description": "The usage of a plugin within the current calendar month.", - "type": "object", - "additionalProperties": false, - "required": [ - "plugin_team", - "plugin_kind", - "plugin_name", - "usd", - "rows" - ], - "properties": { - "plugin_team": { - "$ref": "#/components/schemas/TeamName" - }, - "plugin_kind": { - "$ref": "#/components/schemas/PluginKind" - }, - "plugin_name": { - "$ref": "#/components/schemas/PluginName" - }, - "rows": { - "example": 1000000, - "type": "integer", - "format": "int64", - "minimum": 0, - "description": "The number of rows used by the plugin in the calendar month." - }, - "usd": { - "deprecated": true, - "type": "string", - "example": "43.95", - "description": "The USD amount used by the plugin in the calendar month, rounded to two decimal places.", - "x-go-name": "USD" - }, - "remaining_usd": { - "deprecated": true, - "type": "string", - "example": "56.05", - "description": "The remaining USD amount in the plugin's quota for the calendar month.", - "x-go-name": "RemainingUSD" - }, - "remaining_rows": { - "deprecated": true, - "example": 1, - "type": "integer", - "format": "int64", - "minimum": 0, - "description": "Deprecated - this field used to contain the estimated remaining rows but now returns 1 to indicate rows are remaining or 0 if there are no more remaining rows." + "PluginDocsPageName" : { + "description" : "The unique name for the plugin documentation page.", + "example" : "overview", + "maxLength" : 255, + "pattern" : "^[\\w,\\s-]+$", + "type" : "string" + }, + "PluginDocsPage" : { + "additionalProperties" : false, + "description" : "CloudQuery Plugin Documentation Page", + "properties" : { + "name" : { + "$ref" : "#/components/schemas/PluginDocsPageName" + }, + "content" : { + "description" : "The content of the documentation page. Supports markdown.", + "example" : "# Getting Started\n\nThis is the getting started page.", + "type" : "string" + } + }, + "required" : [ "content", "name" ], + "title" : "CloudQuery Plugin Documentation Page" + }, + "PluginDocsPageCreate" : { + "additionalProperties" : false, + "description" : "CloudQuery Plugin Documentation Page", + "properties" : { + "name" : { + "$ref" : "#/components/schemas/PluginDocsPageName" + }, + "content" : { + "description" : "The content of the documentation page. Supports markdown.", + "example" : "# Getting Started\n\nThis is the getting started page.", + "minLength" : 1, + "type" : "string" + } + }, + "required" : [ "content", "name" ], + "title" : "CloudQuery Plugin Documentation Page" + }, + "PluginTableName" : { + "description" : "Name of the table", + "example" : "aws_ec2_instances", + "maxLength" : 255, + "pattern" : "^[a-z](_?[a-z0-9]+)+$", + "type" : "string" + }, + "PluginTable" : { + "additionalProperties" : false, + "description" : "CloudQuery Plugin Table", + "properties" : { + "description" : { + "description" : "Description of the table", + "example" : "AWS S3 Buckets", + "type" : "string" + }, + "is_incremental" : { + "description" : "Whether the table is incremental", + "type" : "boolean" + }, + "name" : { + "$ref" : "#/components/schemas/PluginTableName" + }, + "parent" : { + "description" : "Name of the parent table, if any", + "example" : "nil", + "type" : "string" + }, + "relations" : { + "description" : "Names of the tables that depend on this table", + "example" : [ "aws_s3_bucket_cors_rules" ], + "items" : { + "type" : "string" + }, + "type" : "array" + }, + "title" : { + "description" : "Title of the table", + "example" : "AWS S3 Buckets", + "type" : "string" + }, + "is_paid" : { + "description" : "Whether the table is paid", + "type" : "boolean" + } + }, + "required" : [ "description", "is_incremental", "name", "relations", "title" ], + "title" : "CloudQuery Plugin Table" + }, + "PluginTableColumn" : { + "additionalProperties" : false, + "description" : "CloudQuery Plugin Column", + "properties" : { + "description" : { + "description" : "Description of the column", + "type" : "string" + }, + "incremental_key" : { + "description" : "Whether the column is used as an incremental key", + "type" : "boolean" + }, + "name" : { + "description" : "Name of the column", + "type" : "string" + }, + "not_null" : { + "description" : "Whether the column is nullable", + "type" : "boolean" + }, + "primary_key" : { + "description" : "Whether the column is part of the primary key", + "type" : "boolean" + }, + "type" : { + "description" : "Arrow Type of the column", + "type" : "string" + }, + "unique" : { + "description" : "Whether the column has a unique constraint", + "type" : "boolean" + } + }, + "required" : [ "description", "incremental_key", "name", "not_null", "primary_key", "type", "unique" ], + "title" : "CloudQuery Plugin Table Column" + }, + "PluginTableCreate" : { + "additionalProperties" : false, + "description" : "CloudQuery Plugin Table", + "properties" : { + "description" : { + "description" : "Description of the table", + "example" : "AWS S3 Buckets", + "type" : "string" + }, + "is_incremental" : { + "description" : "Whether the table is incremental", + "type" : "boolean" + }, + "name" : { + "$ref" : "#/components/schemas/PluginTableName" + }, + "parent" : { + "description" : "Name of the parent table, if any", + "example" : "nil", + "type" : "string" + }, + "relations" : { + "description" : "Names of the tables that depend on this table", + "example" : [ "aws_s3_bucket_cors_rules" ], + "items" : { + "type" : "string" + }, + "type" : "array" + }, + "title" : { + "description" : "Title of the table", + "example" : "AWS S3 Buckets", + "type" : "string" + }, + "is_paid" : { + "description" : "Whether the table is paid", + "type" : "boolean" + }, + "columns" : { + "items" : { + "$ref" : "#/components/schemas/PluginTableColumn" + }, + "type" : "array" } - } + }, + "required" : [ "name" ], + "title" : "CloudQuery Plugin Table" }, - "UsageIncrease": { - "title": "CloudQuery Plugin Usage Increase", - "description": "Increase the usage of a plugin. This can incur billing costs and should be used only by plugins.", - "type": "object", - "additionalProperties": false, - "required": [ - "plugin_team", - "plugin_kind", - "plugin_name", - "rows", - "request_id" - ], - "properties": { - "plugin_team": { - "$ref": "#/components/schemas/TeamName" - }, - "plugin_kind": { - "$ref": "#/components/schemas/PluginKind" - }, - "plugin_name": { - "$ref": "#/components/schemas/PluginName" - }, - "tables": { - "type": "array", - "items": { - "type": "object", - "required": [ - "name", - "rows" - ], - "properties": { - "name": { - "type": "string", - "description": "The name of the table.", - "example": "my_table" - }, - "rows": { - "type": "integer", - "minimum": 0, - "description": "The additional rows used by the table.", - "example": 100 - } - } - } + "PluginTableDetails" : { + "additionalProperties" : false, + "properties" : { + "columns" : { + "description" : "List of columns", + "items" : { + "$ref" : "#/components/schemas/PluginTableColumn" + }, + "type" : "array" }, - "rows": { - "example": 1000000, - "type": "integer", - "minimum": 0, - "description": "The total number of additional rows used by the plugin." + "description" : { + "description" : "Description of the table", + "type" : "string" }, - "request_id": { - "type": "string", - "format": "uuid", - "description": "A unique ID associated with the usage increase.", - "example": "123e4567-e89b-12d3-a456-426614174000" - } - } + "is_incremental" : { + "description" : "Whether the table is incremental", + "type" : "boolean" + }, + "name" : { + "description" : "Name of the table", + "type" : "string" + }, + "parent" : { + "description" : "Name of the parent table, if any", + "type" : "string" + }, + "relations" : { + "description" : "Names of the tables that depend on this table", + "items" : { + "type" : "string" + }, + "type" : "array" + }, + "title" : { + "description" : "Title of the table", + "type" : "string" + }, + "is_paid" : { + "description" : "Whether the table is paid", + "type" : "boolean" + } + }, + "required" : [ "columns", "description", "is_incremental", "name", "relations", "title" ] + }, + "PluginAsset" : { + "additionalProperties" : false, + "description" : "CloudQuery Plugin Asset", + "properties" : { + "checksum" : { + "description" : "The checksum of the plugin asset", + "type" : "string" + }, + "location" : { + "description" : "The location to download the plugin asset from", + "format" : "uri", + "type" : "string" + } + }, + "required" : [ "checksum", "location" ], + "title" : "CloudQuery Plugin Asset" + }, + "ReleaseURL" : { + "properties" : { + "url" : { + "type" : "string" + } + }, + "required" : [ "url" ] }, - "UsageSummaryGroup": { - "title": "CloudQuery Usage Summary Group", - "description": "A usage summary group.", - "type": "object", - "required": [ - "name", - "value" - ], - "properties": { - "name": { - "type": "string", - "description": "The name of the group.", - "example": "plugin" - }, - "value": { - "type": "string", - "description": "The value of the group at this index.", - "example": "cloudquery/source/aws" - } - } + "AddonName" : { + "description" : "The unique name for the addon.", + "example" : "aws-policy", + "maxLength" : 255, + "pattern" : "^[a-z](-?[a-z0-9]+)+$", + "type" : "string" + }, + "AddonCategory" : { + "description" : "Supported categories for addons", + "enum" : [ "cloud-infrastructure", "databases", "sales-marketing", "engineering-analytics", "other" ], + "type" : "string" }, - "UsageSummaryValue": { - "title": "CloudQuery Usage Summary Value", - "description": "A usage summary value.", - "type": "object", - "required": [ - "timestamp" - ], - "properties": { - "timestamp": { - "type": "string", - "format": "date-time", - "description": "The timestamp marking the start of a period." - }, - "paid_rows": { - "type": "array", - "items": { - "type": "integer", - "format": "int64" - }, - "description": "The paid rows that were synced in this period, one per group." - }, - "cloud_vcpu_seconds": { - "type": "array", - "items": { - "type": "integer", - "format": "int64" - }, - "description": "vCPU/seconds consumed in this period, one per group." - }, - "cloud_vram_byte_seconds": { - "type": "array", - "items": { - "type": "integer", - "format": "int64" - }, - "description": "vRAM/byte-seconds consumed in this period, one per group." - }, - "cloud_egress_bytes": { - "type": "array", - "items": { - "type": "integer", - "format": "int64" - }, - "description": "Egress bytes consumed in this period, one per group." - } - } + "AddonType" : { + "description" : "Supported types for addons", + "enum" : [ "transformation", "visualization" ], + "type" : "string" }, - "UsageSummary": { - "title": "CloudQuery Usage Summary", - "description": "A usage summary for a team, summarizing the paid rows synced and/or cloud resource usage over a given time range.\nNote that empty or all-zero values are not included in the response.\n", - "type": "object", - "additionalProperties": false, - "required": [ - "groups", - "values", - "metadata" - ], - "properties": { - "groups": { - "type": "array", - "description": "The groups of the usage summary. Every group will have a corresponding value at the same index in the values array.", - "items": { - "$ref": "#/components/schemas/UsageSummaryGroup" - }, - "example": [ - { - "name": "plugin", - "value": "cloudquery/source/aws" - }, - { - "name": "plugin", - "value": "cloudquery/source/gcp" - } - ] - }, - "values": { - "items": { - "$ref": "#/components/schemas/UsageSummaryValue" - }, - "type": "array", - "example": [ - { - "timestamp": "2021-01-01T00:00:00Z", - "paid_rows": [ - 100, - 200 - ] - }, - { - "timestamp": "2021-01-02T00:00:00Z", - "paid_rows": [ - 150, - 300 - ] - } - ] - }, - "metadata": { - "type": "object", - "description": "Additional metadata about the usage summary. This may include information about the time range, the aggregation period, or other details.", - "required": [ - "start", - "end", - "aggregation_period", - "metrics" - ], - "additionalProperties": false, - "properties": { - "start": { - "type": "string", - "format": "date-time", - "description": "The inclusive start of the query time range." - }, - "end": { - "type": "string", - "format": "date-time", - "description": "The exclusive end of the query time range." - }, - "aggregation_period": { - "type": "string", - "description": "The aggregation period to sum data over. In other words, data will be returned at this granularity.", - "enum": [ - "day", - "month" - ] - }, - "metrics": { - "type": "array", - "description": "List of metrics included in the response.", - "items": { - "type": "string", - "enum": [ - "paid_rows", - "cloud_egress_bytes", - "cloud_vcpu_seconds", - "cloud_vram_byte_seconds" - ] - }, - "default": [ - "paid_rows" - ] - } - } + "AddonFormat" : { + "description" : "Supported formats for addons", + "enum" : [ "zip" ], + "type" : "string" + }, + "AddonTier" : { + "description" : "Supported tiers for addons", + "enum" : [ "free", "paid" ], + "type" : "string" + }, + "Addon" : { + "additionalProperties" : false, + "description" : "CloudQuery Addon", + "properties" : { + "team_name" : { + "$ref" : "#/components/schemas/TeamName" + }, + "name" : { + "$ref" : "#/components/schemas/AddonName" + }, + "official" : { + "description" : "True if the addon is maintained by CloudQuery, false otherwise", + "type" : "boolean" + }, + "category" : { + "$ref" : "#/components/schemas/AddonCategory" + }, + "addon_type" : { + "$ref" : "#/components/schemas/AddonType" + }, + "addon_format" : { + "$ref" : "#/components/schemas/AddonFormat" + }, + "tier" : { + "$ref" : "#/components/schemas/AddonTier" + }, + "price_usd" : { + "description" : "The price for 6 months", + "example" : "50", + "pattern" : "^\\d+(?:\\.\\d{1,10})?$", + "type" : "string", + "x-go-name" : "PriceUSD" + }, + "short_description" : { + "example" : "AWS Asset inventory dashboard for grafana", + "maxLength" : 512, + "minLength" : 1, + "type" : "string" + }, + "display_name" : { + "description" : "The addon's display name", + "example" : "AWS Asset inventory", + "maxLength" : 50, + "minLength" : 1, + "type" : "string" + }, + "homepage" : { + "example" : "https://cloudquery.io", + "type" : "string" + }, + "repository" : { + "example" : "https://github.com/cloudquery/cloudquery", + "type" : "string" + }, + "logo" : { + "example" : "https://images.cloudquery.io/logos/aws.png", + "type" : "string" + }, + "public" : { + "description" : "Whether the plugin is listed in the CloudQuery Hub. If false, the plugin will not be shown in the CloudQuery Hub and will only be visible to members of the plugin's team.", + "type" : "boolean" + }, + "created_at" : { + "example" : "2017-07-14T16:53:42Z", + "format" : "date-time", + "type" : "string" + }, + "updated_at" : { + "example" : "2017-07-14T16:53:42Z", + "format" : "date-time", + "type" : "string" + } + }, + "required" : [ "addon_format", "addon_type", "category", "created_at", "display_name", "logo", "name", "official", "price_usd", "short_description", "team_name", "tier", "updated_at" ], + "title" : "CloudQuery Addon" + }, + "ListAddon" : { + "allOf" : [ { + "$ref" : "#/components/schemas/Addon" + }, { + "properties" : { + "latest_version" : { + "$ref" : "#/components/schemas/VersionName" + } + } + } ] + }, + "AddonCreate" : { + "additionalProperties" : false, + "description" : "CloudQuery AddonCreate", + "properties" : { + "team_name" : { + "$ref" : "#/components/schemas/TeamName" + }, + "name" : { + "$ref" : "#/components/schemas/AddonName" + }, + "category" : { + "$ref" : "#/components/schemas/AddonCategory" + }, + "addon_type" : { + "$ref" : "#/components/schemas/AddonType" + }, + "addon_format" : { + "$ref" : "#/components/schemas/AddonFormat" + }, + "tier" : { + "$ref" : "#/components/schemas/AddonTier" + }, + "price_usd" : { + "description" : "The price for 6 months", + "example" : "50", + "pattern" : "^\\d+(?:\\.\\d{1,10})?$", + "type" : "string", + "x-go-name" : "PriceUSD" + }, + "short_description" : { + "example" : "AWS Asset inventory dashboard for grafana", + "maxLength" : 512, + "minLength" : 1, + "type" : "string" + }, + "display_name" : { + "description" : "The addon's display name", + "example" : "AWS Asset inventory", + "maxLength" : 50, + "minLength" : 1, + "type" : "string" + }, + "homepage" : { + "example" : "https://cloudquery.io", + "type" : "string" + }, + "repository" : { + "example" : "https://github.com/cloudquery/cloudquery", + "type" : "string" + }, + "logo" : { + "example" : "https://images.cloudquery.io/logos/aws.png", + "type" : "string" + }, + "public" : { + "description" : "Whether the plugin is listed in the CloudQuery Hub. If false, the plugin will not be shown in the CloudQuery Hub and will only be visible to members of the plugin's team.", + "type" : "boolean" + } + }, + "required" : [ "addon_format", "addon_type", "category", "display_name", "logo", "name", "public", "short_description", "team_name", "tier" ], + "title" : "CloudQuery Addon" + }, + "AddonUpdate" : { + "additionalProperties" : false, + "description" : "CloudQuery AddonUpdate", + "properties" : { + "category" : { + "$ref" : "#/components/schemas/AddonCategory" + }, + "addon_format" : { + "$ref" : "#/components/schemas/AddonFormat" + }, + "tier" : { + "$ref" : "#/components/schemas/AddonTier" + }, + "price_usd" : { + "description" : "The price for 6 months in USD", + "example" : "50", + "pattern" : "^\\d+(?:\\.\\d{1,10})?$", + "type" : "string", + "x-go-name" : "PriceUSD" + }, + "short_description" : { + "example" : "AWS Asset inventory dashboard for grafana", + "maxLength" : 512, + "minLength" : 1, + "type" : "string" + }, + "display_name" : { + "description" : "The addon's display name", + "example" : "AWS Asset inventory", + "maxLength" : 50, + "minLength" : 1, + "type" : "string" + }, + "homepage" : { + "example" : "https://cloudquery.io", + "type" : "string" + }, + "repository" : { + "example" : "https://github.com/cloudquery/cloudquery", + "type" : "string" + }, + "logo" : { + "example" : "https://images.cloudquery.io/logos/aws.png", + "type" : "string" + }, + "public" : { + "description" : "Whether the plugin is listed in the CloudQuery Hub. If false, the plugin will not be shown in the CloudQuery Hub and will only be visible to members of the plugin's team.", + "type" : "boolean" + }, + "created_at" : { + "example" : "2017-07-14T16:53:42Z", + "format" : "date-time", + "type" : "string" + } + }, + "title" : "CloudQuery Addon" + }, + "AddonVersion" : { + "additionalProperties" : false, + "description" : "CloudQuery Addon Version", + "properties" : { + "created_at" : { + "description" : "The date and time the plugin version was created.", + "example" : "2017-07-14T16:53:42Z", + "format" : "date-time", + "type" : "string" + }, + "published_at" : { + "description" : "The date and time the plugin version was set to non-draft (published).", + "example" : "2017-07-14T16:53:42Z", + "format" : "date-time", + "type" : "string" + }, + "name" : { + "$ref" : "#/components/schemas/VersionName" + }, + "message" : { + "description" : "Description of what's new or changed in this version (supports markdown)", + "example" : "- Added support for *AWS S3* - Added support for *AWS EC2*", + "type" : "string" + }, + "doc" : { + "description" : "Main README in MD format", + "type" : "string" + }, + "draft" : { + "description" : "If a plugin version is in draft, it will not show to members outside the team or be counted as the latest version.", + "type" : "boolean" + }, + "plugin_deps" : { + "description" : "list of plugins the addon depends on in the format of team_name/kind/name@version", + "items" : { + "type" : "string" + }, + "type" : "array" + }, + "addon_deps" : { + "description" : "list of other addons this addon depends on in the format of team_name/type/name@version", + "items" : { + "type" : "string" + }, + "type" : "array" + }, + "retracted" : { + "description" : "If a plugin version is retracted, assets will still be available for download, but the version will be marked as retracted to discourage use.", + "type" : "boolean" + }, + "checksum" : { + "description" : "The checksum of the addon asset", + "type" : "string" } - } + }, + "required" : [ "checksum", "created_at", "doc", "draft", "message", "name", "retracted" ], + "title" : "CloudQuery Addon Version" }, - "PriceCategorySpend": { - "title": "Spend by price category", - "description": "Spend by price category for a defined period.", - "type": "object", - "additionalProperties": false, - "required": [ - "category", - "total" - ], - "properties": { - "category": { - "$ref": "#/components/schemas/PluginPriceCategory" - }, - "total": { - "type": "string" + "AddonVersionUpdate" : { + "properties" : { + "message" : { + "description" : "Description of what's new or changed in this version (supports markdown)", + "example" : "- Added support for *AWS S3* - Added support for *AWS EC2*", + "type" : "string" + }, + "doc" : { + "description" : "Main README in MD format", + "type" : "string" + }, + "draft" : { + "description" : "If a plugin version is in draft, it will not show to members outside the team or be counted as the latest version.", + "type" : "boolean" + }, + "plugin_deps" : { + "description" : "list of plugins the addon depends on in the format of team_name/kind/name@version", + "items" : { + "type" : "string" + }, + "type" : "array" + }, + "addon_deps" : { + "description" : "list of other addons this addon depends on in the format of team_name/type/name@version", + "items" : { + "type" : "string" + }, + "type" : "array" + }, + "retracted" : { + "description" : "If a plugin version is retracted, assets will still be available for download, but the version will be marked as retracted to discourage use.", + "type" : "boolean" + }, + "checksum" : { + "description" : "The checksum of the addon asset", + "type" : "string" } } }, - "SpendSummaryValue": { - "title": "CloudQuery Spend Summary Value", - "description": "A spend summary value.", - "type": "object", - "additionalProperties": false, - "required": [ - "date", - "by_category", - "total" - ], - "properties": { - "date": { - "type": "string", - "format": "date-time", - "description": "The timestamp for the spend summary." - }, - "by_category": { - "type": "array", - "items": { - "$ref": "#/components/schemas/PriceCategorySpend" - } + "AddonAsset" : { + "additionalProperties" : false, + "description" : "CloudQuery Addon Asset", + "properties" : { + "checksum" : { + "description" : "The checksum of the addon asset", + "type" : "string" + }, + "location" : { + "description" : "The location to download the addon asset from", + "format" : "uri", + "type" : "string" + } + }, + "required" : [ "checksum", "location" ], + "title" : "CloudQuery Addon Asset" + }, + "TeamPlan" : { + "description" : "The plan the team is on", + "enum" : [ "free", "paid", "enterprise", "trial" ], + "type" : "string" + }, + "Team" : { + "additionalProperties" : false, + "description" : "CloudQuery Team", + "properties" : { + "created_at" : { + "example" : "2017-07-14T16:53:42Z", + "format" : "date-time", + "type" : "string" + }, + "name" : { + "$ref" : "#/components/schemas/TeamName" + }, + "plan" : { + "$ref" : "#/components/schemas/TeamPlan" + }, + "plan_end_time" : { + "example" : "2017-07-14T16:53:42Z", + "format" : "date-time", + "type" : "string" + }, + "is_trial_active" : { + "example" : false, + "type" : "boolean" + }, + "trial_end_time" : { + "example" : "2017-07-14T16:53:42Z", + "format" : "date-time", + "type" : "string" + }, + "display_name" : { + "description" : "The team's display name", + "example" : "CloudQuery", + "maxLength" : 255, + "type" : "string" + } + }, + "required" : [ "display_name", "is_trial_active", "name", "plan" ], + "title" : "Team" + }, + "TeamImageCreate" : { + "additionalProperties" : false, + "properties" : { + "name" : { + "description" : "Name of image", + "maxLength" : 64, + "minLength" : 1, + "type" : "string" + }, + "checksum" : { + "description" : "SHA1 checksum of image", + "pattern" : "^[a-f0-9]+$", + "type" : "string", + "length" : 40 + } + }, + "required" : [ "checksum", "name" ], + "title" : "Create Team Image Request" + }, + "TeamImage" : { + "properties" : { + "name" : { + "description" : "Name of image", + "type" : "string" + }, + "checksum" : { + "description" : "SHA1 checksum of image", + "type" : "string" + }, + "url" : { + "description" : "URL to download image", + "type" : "string", + "x-go-name" : "URL" + }, + "upload_url" : { + "description" : "URL to upload image", + "type" : "string", + "x-go-name" : "UploadURL" + } + }, + "required" : [ "checksum", "name", "url" ] + }, + "AddonOrderID" : { + "description" : "ID of the addon order", + "example" : "12345678-1234-1234-1234-1234567890ab", + "format" : "uuid", + "type" : "string", + "x-go-name" : "AddonOrderID" + }, + "AddonOrderStatus" : { + "enum" : [ "pending", "completed", "cancelled" ], + "type" : "string" + }, + "AddonOrder" : { + "additionalProperties" : false, + "description" : "CloudQuery Addon Order", + "properties" : { + "id" : { + "$ref" : "#/components/schemas/AddonOrderID" + }, + "team_name" : { + "$ref" : "#/components/schemas/TeamName" + }, + "addon_team" : { + "$ref" : "#/components/schemas/TeamName" + }, + "addon_type" : { + "$ref" : "#/components/schemas/AddonType" + }, + "addon_name" : { + "$ref" : "#/components/schemas/AddonName" + }, + "status" : { + "$ref" : "#/components/schemas/AddonOrderStatus" + }, + "created_at" : { + "example" : "2017-07-14T16:53:42Z", + "format" : "date-time", + "type" : "string" + }, + "updated_at" : { + "example" : "2017-07-14T16:53:42Z", + "format" : "date-time", + "type" : "string" + }, + "completed_at" : { + "example" : "2017-07-14T16:53:42Z", + "format" : "date-time", + "type" : "string" + }, + "completion_url" : { + "description" : "Stripe URL for completing purchase. Only shown in response to POST request.", + "format" : "uri", + "type" : "string", + "x-go-name" : "CompletionURL" + } + }, + "required" : [ "addon_name", "addon_team", "addon_type", "created_at", "id", "status", "team_name", "updated_at" ], + "title" : "CloudQuery Addon" + }, + "AddonOrderCreate" : { + "additionalProperties" : false, + "description" : "Create CloudQuery Addon Order", + "properties" : { + "addon_team" : { + "$ref" : "#/components/schemas/TeamName" + }, + "addon_type" : { + "$ref" : "#/components/schemas/AddonType" + }, + "addon_name" : { + "$ref" : "#/components/schemas/AddonName" + }, + "success_url" : { + "description" : "URL to redirect to after successful order completion", + "example" : "https://cloud.cloudquery.io/order-completion", + "type" : "string" + }, + "cancel_url" : { + "description" : "URL to redirect to after order cancellation", + "example" : "https://cloud.cloudquery.io/order-cancelled", + "type" : "string" + } + }, + "required" : [ "addon_name", "addon_team", "addon_type", "cancel_url", "success_url" ], + "title" : "Create CloudQuery Addon Order" + }, + "Email" : { + "example" : "user@cloudquery.io", + "format" : "email", + "type" : "string" + }, + "UserName" : { + "description" : "The unique name for the user.", + "example" : "user", + "maxLength" : 255, + "pattern" : "^[a-z](-?[a-z0-9]+)+$", + "type" : "string" + }, + "User" : { + "additionalProperties" : false, + "description" : "CloudQuery User", + "properties" : { + "created_at" : { + "example" : "2017-07-14T16:53:42Z", + "format" : "date-time", + "type" : "string" + }, + "id" : { + "description" : "ID of the User", + "example" : "12345678-1234-1234-1234-1234567890ab", + "format" : "uuid", + "type" : "string", + "x-go-name" : "ID" + }, + "email" : { + "$ref" : "#/components/schemas/Email" + }, + "name" : { + "$ref" : "#/components/schemas/UserName" + }, + "updated_at" : { + "example" : "2017-07-14T16:53:42Z", + "format" : "date-time", + "type" : "string" + } + }, + "required" : [ "email", "id" ], + "title" : "CloudQuery User" + }, + "MembershipWithUser" : { + "additionalProperties" : false, + "properties" : { + "role" : { + "example" : "admin", + "type" : "string" + }, + "user" : { + "$ref" : "#/components/schemas/User" + } + }, + "required" : [ "role" ], + "title" : "CloudQuery User Membership" + }, + "MonthlyLimit" : { + "additionalProperties" : false, + "description" : "A configurable monthly limit for plugin usage.", + "properties" : { + "created_at" : { + "description" : "The date and time the plugin limit was created.", + "example" : "2017-07-14T16:53:42Z", + "format" : "date-time", + "type" : "string" + }, + "updated_at" : { + "description" : "The date and time the plugin limit was last updated.", + "example" : "2017-07-14T16:53:42Z", + "format" : "date-time", + "type" : "string" + }, + "plugin_team" : { + "$ref" : "#/components/schemas/TeamName" + }, + "plugin_kind" : { + "$ref" : "#/components/schemas/PluginKind" + }, + "plugin_name" : { + "$ref" : "#/components/schemas/PluginName" + }, + "usd" : { + "description" : "The maximum USD amount the plugin is allowed to use within a calendar month.", + "example" : 1000, + "maximum" : 1000000000, + "minimum" : 0, + "type" : "integer", + "x-go-name" : "USD" + } + }, + "required" : [ "created_at", "plugin_kind", "plugin_name", "plugin_team", "updated_at", "usd" ], + "title" : "CloudQuery Plugin Monthly Limit" + }, + "MonthlyLimitCreate" : { + "additionalProperties" : false, + "description" : "A configurable monthly limit for plugin usage.", + "properties" : { + "plugin_team" : { + "$ref" : "#/components/schemas/TeamName" + }, + "plugin_kind" : { + "$ref" : "#/components/schemas/PluginKind" + }, + "plugin_name" : { + "$ref" : "#/components/schemas/PluginName" + }, + "usd" : { + "description" : "The maximum USD amount the plugin is allowed to use within a calendar month.", + "example" : 1000, + "maximum" : 1000000000, + "minimum" : 0, + "type" : "integer", + "x-go-name" : "USD" + } + }, + "required" : [ "plugin_kind", "plugin_name", "plugin_team", "usd" ], + "title" : "CloudQuery Plugin Monthly Limit" + }, + "SpendingLimit" : { + "additionalProperties" : false, + "description" : "A configurable spending limit for the team. Empty values indicate no limit.", + "properties" : { + "created_at" : { + "description" : "The date and time the team limit was created.", + "example" : "2017-07-14T16:53:42Z", + "format" : "date-time", + "type" : "string" + }, + "updated_at" : { + "description" : "The date and time the team limit was last updated.", + "example" : "2017-07-14T16:53:42Z", + "format" : "date-time", + "type" : "string" + }, + "usd" : { + "description" : "The maximum USD amount the team is allowed to use within a calendar month.", + "example" : 1000, + "maximum" : 1000000000, + "minimum" : 0, + "type" : "integer", + "x-go-name" : "USD" + } + }, + "title" : "Team Spending Limit" + }, + "SpendingLimitUpdate" : { + "additionalProperties" : false, + "description" : "A configurable spending limit for the team.", + "properties" : { + "usd" : { + "description" : "The maximum USD amount the team is allowed to use within a calendar month.", + "example" : 1000, + "maximum" : 1000000000, + "minimum" : 0, + "type" : "integer", + "x-go-name" : "USD" + } + }, + "required" : [ "usd" ], + "title" : "Team Spending Limit" + }, + "SpendingLimitCreate" : { + "additionalProperties" : false, + "description" : "A configurable monthly limit for team usage.", + "properties" : { + "usd" : { + "description" : "The maximum USD amount the team is allowed to use within a calendar month.", + "example" : 1000, + "maximum" : 1000000000, + "minimum" : 0, + "type" : "integer", + "x-go-name" : "USD" + } + }, + "required" : [ "usd" ], + "title" : "Team Spending Limit" + }, + "MonthlyLimitUpdate" : { + "additionalProperties" : false, + "description" : "A configurable monthly limit for plugin usage.", + "properties" : { + "usd" : { + "description" : "The maximum USD amount the plugin is allowed to use within a calendar month.", + "example" : 1000, + "maximum" : 1000000000, + "minimum" : 0, + "type" : "integer", + "x-go-name" : "USD" + } + }, + "required" : [ "usd" ], + "title" : "CloudQuery Plugin Monthly Limit" + }, + "Invoice" : { + "additionalProperties" : false, + "description" : "Invoice details", + "properties" : { + "created_at" : { + "example" : "2017-07-14T16:53:42Z", + "format" : "date-time", + "type" : "string" + }, + "amount_due" : { + "description" : "Amount due in cents. This is the amount that will be charged, unless there are pending invoice items. If the invoice’s total is smaller than the minimum charge amount, for example, or if there is account credit that can be applied to the invoice, the amount_due may be 0. The charge that gets generated for the invoice will be for the amount specified in amount_due.", + "example" : 1000, + "format" : "int64", + "type" : "integer" + }, + "currency" : { + "example" : "usd", + "type" : "string" + }, + "invoice_pdf" : { + "description" : "The link to download the PDF for the invoice.", + "format" : "uri", + "type" : "string", + "x-go-name" : "InvoicePDF" + }, + "paid" : { + "description" : "Whether or not payment was successfully collected for this invoice.", + "example" : true, + "type" : "boolean" + } + }, + "required" : [ "amount_due", "created_at", "currency", "invoice_pdf", "paid" ], + "title" : "Invoice" + }, + "UsageCurrent" : { + "additionalProperties" : false, + "description" : "The usage of a plugin within the current calendar month.", + "properties" : { + "plugin_team" : { + "$ref" : "#/components/schemas/TeamName" + }, + "plugin_kind" : { + "$ref" : "#/components/schemas/PluginKind" + }, + "plugin_name" : { + "$ref" : "#/components/schemas/PluginName" + }, + "rows" : { + "description" : "The number of rows used by the plugin in the calendar month.", + "example" : 1000000, + "format" : "int64", + "minimum" : 0, + "type" : "integer" + }, + "usd" : { + "deprecated" : true, + "description" : "The USD amount used by the plugin in the calendar month, rounded to two decimal places.", + "example" : "43.95", + "type" : "string", + "x-go-name" : "USD" + }, + "remaining_usd" : { + "deprecated" : true, + "description" : "The remaining USD amount in the plugin's quota for the calendar month.", + "example" : "56.05", + "type" : "string", + "x-go-name" : "RemainingUSD" + }, + "remaining_rows" : { + "deprecated" : true, + "description" : "Deprecated - this field used to contain the estimated remaining rows but now returns 1 to indicate rows are remaining or 0 if there are no more remaining rows.", + "example" : 1, + "format" : "int64", + "minimum" : 0, + "type" : "integer" + } + }, + "required" : [ "plugin_kind", "plugin_name", "plugin_team", "rows", "usd" ], + "title" : "CloudQuery Plugin Usage" + }, + "UsageIncrease" : { + "additionalProperties" : false, + "description" : "Increase the usage of a plugin. This can incur billing costs and should be used only by plugins.", + "properties" : { + "plugin_team" : { + "$ref" : "#/components/schemas/TeamName" + }, + "plugin_kind" : { + "$ref" : "#/components/schemas/PluginKind" + }, + "plugin_name" : { + "$ref" : "#/components/schemas/PluginName" + }, + "tables" : { + "items" : { + "$ref" : "#/components/schemas/UsageIncrease_tables_inner" + }, + "type" : "array" + }, + "rows" : { + "description" : "The total number of additional rows used by the plugin.", + "example" : 1000000, + "minimum" : 0, + "type" : "integer" + }, + "request_id" : { + "description" : "A unique ID associated with the usage increase.", + "example" : "123e4567-e89b-12d3-a456-426614174000", + "format" : "uuid", + "type" : "string" + } + }, + "required" : [ "plugin_kind", "plugin_name", "plugin_team", "request_id", "rows" ], + "title" : "CloudQuery Plugin Usage Increase" + }, + "UsageSummaryGroup" : { + "description" : "A usage summary group.", + "properties" : { + "name" : { + "description" : "The name of the group.", + "example" : "plugin", + "type" : "string" + }, + "value" : { + "description" : "The value of the group at this index.", + "example" : "cloudquery/source/aws", + "type" : "string" + } + }, + "required" : [ "name", "value" ], + "title" : "CloudQuery Usage Summary Group" + }, + "UsageSummaryValue" : { + "description" : "A usage summary value.", + "properties" : { + "timestamp" : { + "description" : "The timestamp marking the start of a period.", + "format" : "date-time", + "type" : "string" + }, + "paid_rows" : { + "description" : "The paid rows that were synced in this period, one per group.", + "items" : { + "format" : "int64", + "type" : "integer" + }, + "type" : "array" + }, + "cloud_vcpu_seconds" : { + "description" : "vCPU/seconds consumed in this period, one per group.", + "items" : { + "format" : "int64", + "type" : "integer" + }, + "type" : "array" + }, + "cloud_vram_byte_seconds" : { + "description" : "vRAM/byte-seconds consumed in this period, one per group.", + "items" : { + "format" : "int64", + "type" : "integer" + }, + "type" : "array" }, - "total": { - "type": "string", - "description": "Total spend for the period in USD." + "cloud_egress_bytes" : { + "description" : "Egress bytes consumed in this period, one per group.", + "items" : { + "format" : "int64", + "type" : "integer" + }, + "type" : "array" } - } + }, + "required" : [ "timestamp" ], + "title" : "CloudQuery Usage Summary Value" }, - "SpendSummary": { - "title": "CloudQuery Spend Summary", - "description": "A spend summary for a team, summarizing the spend by each price category over a given time range.\nNote that empty or all-zero values are not included in the response.\n", - "type": "object", - "additionalProperties": false, - "required": [ - "values", - "metadata" - ], - "properties": { - "values": { - "items": { - "$ref": "#/components/schemas/SpendSummaryValue" - }, - "type": "array" - }, - "metadata": { - "type": "object", - "description": "Additional metadata about the spend summary. This may include information about the time range, the aggregation period, or other details.", - "required": [ - "start", - "end" - ], - "additionalProperties": false, - "properties": { - "start": { - "type": "string", - "format": "date-time", - "description": "The inclusive start of the query time range." - }, - "end": { - "type": "string", - "format": "date-time", - "description": "The exclusive end of the query time range." - } - } + "UsageSummary" : { + "additionalProperties" : false, + "description" : "A usage summary for a team, summarizing the paid rows synced and/or cloud resource usage over a given time range.\nNote that empty or all-zero values are not included in the response.\n", + "properties" : { + "groups" : { }, + "values" : { }, + "metadata" : { + "$ref" : "#/components/schemas/UsageSummary_metadata" } - } + }, + "required" : [ "groups", "metadata", "values" ], + "title" : "CloudQuery Usage Summary" }, - "Invitation": { - "additionalProperties": false, - "required": [ - "role", - "email", - "team_name", - "created_at" - ], - "properties": { - "team_name": { - "$ref": "#/components/schemas/TeamName" - }, - "email": { - "$ref": "#/components/schemas/Email" - }, - "role": { - "type": "string", - "example": "admin" - }, - "created_at": { - "example": "2017-07-14T16:53:42Z", - "format": "date-time", - "type": "string" + "PriceCategorySpend" : { + "additionalProperties" : false, + "description" : "Spend by price category for a defined period.", + "properties" : { + "category" : { + "$ref" : "#/components/schemas/PluginPriceCategory" + }, + "total" : { + "type" : "string" } - } + }, + "required" : [ "category", "total" ], + "title" : "Spend by price category" }, - "MembershipWithTeam": { - "additionalProperties": false, - "properties": { - "role": { - "type": "string", - "example": "admin" - }, - "team": { - "$ref": "#/components/schemas/Team" - } - }, - "required": [ - "role" - ], - "title": "CloudQuery Team Membership", - "type": "object" - }, - "TeamSubscriptionOrderID": { - "description": "ID of the team subscription order", - "type": "string", - "format": "uuid", - "example": "12345678-1234-1234-1234-1234567890ab", - "x-go-name": "TeamSubscriptionOrderID" - }, - "TeamSubscriptionOrderStatus": { - "type": "string", - "enum": [ - "pending", - "completed", - "cancelled" - ] - }, - "TeamSubscriptionOrder": { - "additionalProperties": false, - "title": "Team subscription order", - "description": "Team subscription order", - "properties": { - "id": { - "$ref": "#/components/schemas/TeamSubscriptionOrderID" - }, - "team_name": { - "$ref": "#/components/schemas/TeamName" - }, - "plan": { - "$ref": "#/components/schemas/TeamPlan" - }, - "status": { - "$ref": "#/components/schemas/TeamSubscriptionOrderStatus" - }, - "created_at": { - "type": "string", - "format": "date-time", - "example": "2017-07-14T16:53:42Z" - }, - "updated_at": { - "type": "string", - "format": "date-time", - "example": "2017-07-14T16:53:42Z" - }, - "completed_at": { - "type": "string", - "format": "date-time", - "example": "2017-07-14T16:53:42Z" - }, - "completion_url": { - "type": "string", - "format": "uri", - "description": "Stripe URL for completing purchase. Only shown in response to POST request when a paid plan is selected.", - "x-go-name": "CompletionURL" - } - }, - "required": [ - "id", - "team_name", - "plan", - "status", - "created_at", - "updated_at" - ], - "type": "object" - }, - "TeamSubscriptionOrderCreate": { - "additionalProperties": false, - "description": "Create team subscription order", - "properties": { - "plan": { - "$ref": "#/components/schemas/TeamPlan" - }, - "success_url": { - "type": "string", - "description": "URL to redirect to after successful order completion", - "example": "https://cloud.cloudquery.io/order-completion" - }, - "cancel_url": { - "type": "string", - "description": "URL to redirect to after order cancellation", - "example": "https://cloud.cloudquery.io/order-cancelled" - } - }, - "required": [ - "plan", - "success_url", - "cancel_url" - ], - "title": "Create team subscription order", - "type": "object" - }, - "InvitationWithToken": { - "additionalProperties": false, - "allOf": [ - { - "$ref": "#/components/schemas/Invitation" - }, - { - "type": "object", - "properties": { - "token": { - "type": "string", - "format": "uuid", - "description": "The token used to accept the invitation" - } - }, - "required": [ - "token" - ] - } - ] - }, - "UserID": { - "description": "ID of the User", - "type": "string", - "format": "uuid", - "example": "12345678-1234-1234-1234-1234567890ab", - "x-go-name": "UserID" - }, - "APIKeyName": { - "description": "Name of the API key", - "type": "string", - "example": "cli-api-key", - "maxLength": 255, - "minLength": 1, - "pattern": "^(?:[a-zA-Z0-9][a-zA-Z0-9- ]*)?[a-zA-Z0-9]$" - }, - "APIKeyID": { - "description": "ID of the API key", - "type": "string", - "format": "uuid", - "example": "12345678-1234-1234-1234-1234567890ab", - "x-go-name": "APIKeyID" - }, - "APIKeyScope": { - "description": "Scope of permissions for the API key. API keys are used for creating new plugin versions and downloading existing plugins", - "type": "string", - "enum": [ - "read-and-write" - ] - }, - "APIKey": { - "description": "API Key to interact with CloudQuery Cloud under specific team", - "type": "object", - "required": [ - "id", - "name", - "scope", - "expires_at", - "expired" - ], - "properties": { - "name": { - "$ref": "#/components/schemas/APIKeyName" - }, - "created_by": { - "$ref": "#/components/schemas/Email", - "description": "email of the user that created the API key" - }, - "id": { - "$ref": "#/components/schemas/APIKeyID" - }, - "key": { - "type": "string", - "description": "API key. Will be shown only in the response when creating the key.", - "example": "1234567890abcdef1234567890abcdef" - }, - "created_at": { - "type": "string", - "format": "date-time", - "example": "2017-07-14T16:53:42Z" - }, - "expires_at": { - "type": "string", - "description": "Timestamp at which API key will stop working", - "format": "date-time", - "example": "2017-07-14T16:53:42Z" - }, - "expired": { - "type": "boolean", - "description": "Whether the API key has expired or not", - "example": false - }, - "scope": { - "$ref": "#/components/schemas/APIKeyScope" + "SpendSummaryValue" : { + "additionalProperties" : false, + "description" : "A spend summary value.", + "properties" : { + "date" : { + "description" : "The timestamp for the spend summary.", + "format" : "date-time", + "type" : "string" + }, + "by_category" : { + "items" : { + "$ref" : "#/components/schemas/PriceCategorySpend" + }, + "type" : "array" + }, + "total" : { + "description" : "Total spend for the period in USD.", + "type" : "string" } - } + }, + "required" : [ "by_category", "date", "total" ], + "title" : "CloudQuery Spend Summary Value" }, - "RegistryAuthToken": { - "type": "object", - "description": "JWT token for the image registry", - "additionalProperties": false, - "properties": { - "access_token": { - "type": "string" - }, - "token": { - "type": "string" - } - }, - "required": [ - "access_token", - "token" - ] - }, - "DockerError": { - "additionalProperties": false, - "description": "Error Returned from the Docker Authorization Handler to the Docker Registry", - "required": [ - "details" - ], - "properties": { - "details": { - "type": "string" - } - }, - "title": "Docker Error", - "type": "object" - }, - "SyncPluginPath": { - "type": "string", - "description": "Plugin path in CloudQuery registry", - "pattern": "^cloudquery/[^/]+" - }, - "SyncEnvCreate": { - "type": "object", - "description": "Environment variable. Environment variables are assumed to be secret.", - "required": [ - "name", - "value" - ], - "properties": { - "name": { - "type": "string", - "description": "Name of the environment variable" - }, - "value": { - "type": "string", - "description": "Value of the environment variable" + "SpendSummary" : { + "additionalProperties" : false, + "description" : "A spend summary for a team, summarizing the spend by each price category over a given time range.\nNote that empty or all-zero values are not included in the response.\n", + "properties" : { + "values" : { }, + "metadata" : { + "$ref" : "#/components/schemas/SpendSummary_metadata" } - } + }, + "required" : [ "metadata", "values" ], + "title" : "CloudQuery Spend Summary" }, - "SyncLastUpdateSource": { - "description": "How was the source or destination been created or updated last", - "type": "string", - "enum": [ - "yaml", - "ui" - ] - }, - "SyncSourceCreate": { - "title": "Sync Source definition for creating a new source", - "description": "Sync Source Definition", - "type": "object", - "required": [ - "name", - "path", - "version", - "tables" - ], - "properties": { - "name": { - "type": "string", - "example": "my-source-definition", - "description": "Descriptive, unique name for the source. The name can only contain ASCII letters, digits, - and _.", - "pattern": "^[a-zA-Z0-9_-]+$" - }, - "path": { - "$ref": "#/components/schemas/SyncPluginPath", - "example": "cloudquery/aws" - }, - "version": { - "type": "string", - "description": "Version of the plugin", - "example": "v1.2.3" - }, - "tables": { - "type": "array", - "description": "Tables to sync. Wildcards are supported. Note that child tables are excluded by default, and need to be explicitly specified.", - "items": { - "type": "string" - } + "Invitation" : { + "additionalProperties" : false, + "properties" : { + "team_name" : { + "$ref" : "#/components/schemas/TeamName" }, - "skip_tables": { - "type": "array", - "description": "Tables matched by `tables` that should be skipped. Wildcards are supported.", - "items": { - "type": "string" - } + "email" : { + "$ref" : "#/components/schemas/Email" }, - "spec": { - "type": "object", - "additionalProperties": true, - "format": "Plugin parameters, specific to each plugin" + "role" : { + "example" : "admin", + "type" : "string" }, - "env": { - "description": "Environment variables for the plugin. All environment variables will be stored as secrets.", - "type": "array", - "items": { - "$ref": "#/components/schemas/SyncEnvCreate" - } + "created_at" : { + "example" : "2017-07-14T16:53:42Z", + "format" : "date-time", + "type" : "string" + } + }, + "required" : [ "created_at", "email", "role", "team_name" ] + }, + "MembershipWithTeam" : { + "additionalProperties" : false, + "properties" : { + "role" : { + "example" : "admin", + "type" : "string" }, - "last_update_source": { - "$ref": "#/components/schemas/SyncLastUpdateSource" + "team" : { + "$ref" : "#/components/schemas/Team" } - } + }, + "required" : [ "role" ], + "title" : "CloudQuery Team Membership" + }, + "TeamSubscriptionOrderID" : { + "description" : "ID of the team subscription order", + "example" : "12345678-1234-1234-1234-1234567890ab", + "format" : "uuid", + "type" : "string", + "x-go-name" : "TeamSubscriptionOrderID" + }, + "TeamSubscriptionOrderStatus" : { + "enum" : [ "pending", "completed", "cancelled" ], + "type" : "string" + }, + "TeamSubscriptionOrder" : { + "additionalProperties" : false, + "description" : "Team subscription order", + "properties" : { + "id" : { + "$ref" : "#/components/schemas/TeamSubscriptionOrderID" + }, + "team_name" : { + "$ref" : "#/components/schemas/TeamName" + }, + "plan" : { + "$ref" : "#/components/schemas/TeamPlan" + }, + "status" : { + "$ref" : "#/components/schemas/TeamSubscriptionOrderStatus" + }, + "created_at" : { + "example" : "2017-07-14T16:53:42Z", + "format" : "date-time", + "type" : "string" + }, + "updated_at" : { + "example" : "2017-07-14T16:53:42Z", + "format" : "date-time", + "type" : "string" + }, + "completed_at" : { + "example" : "2017-07-14T16:53:42Z", + "format" : "date-time", + "type" : "string" + }, + "completion_url" : { + "description" : "Stripe URL for completing purchase. Only shown in response to POST request when a paid plan is selected.", + "format" : "uri", + "type" : "string", + "x-go-name" : "CompletionURL" + } + }, + "required" : [ "created_at", "id", "plan", "status", "team_name", "updated_at" ], + "title" : "Team subscription order" + }, + "TeamSubscriptionOrderCreate" : { + "additionalProperties" : false, + "description" : "Create team subscription order", + "properties" : { + "plan" : { + "$ref" : "#/components/schemas/TeamPlan" + }, + "success_url" : { + "description" : "URL to redirect to after successful order completion", + "example" : "https://cloud.cloudquery.io/order-completion", + "type" : "string" + }, + "cancel_url" : { + "description" : "URL to redirect to after order cancellation", + "example" : "https://cloud.cloudquery.io/order-cancelled", + "type" : "string" + } + }, + "required" : [ "cancel_url", "plan", "success_url" ], + "title" : "Create team subscription order" + }, + "InvitationWithToken" : { + "additionalProperties" : false, + "allOf" : [ { + "$ref" : "#/components/schemas/Invitation" + }, { + "properties" : { + "token" : { + "description" : "The token used to accept the invitation", + "format" : "uuid", + "type" : "string" + } + }, + "required" : [ "token" ] + } ] + }, + "UserID" : { + "description" : "ID of the User", + "example" : "12345678-1234-1234-1234-1234567890ab", + "format" : "uuid", + "type" : "string", + "x-go-name" : "UserID" + }, + "APIKeyName" : { + "description" : "Name of the API key", + "example" : "cli-api-key", + "maxLength" : 255, + "minLength" : 1, + "pattern" : "^(?:[a-zA-Z0-9][a-zA-Z0-9- ]*)?[a-zA-Z0-9]$", + "type" : "string" + }, + "APIKeyID" : { + "description" : "ID of the API key", + "example" : "12345678-1234-1234-1234-1234567890ab", + "format" : "uuid", + "type" : "string", + "x-go-name" : "APIKeyID" + }, + "APIKeyScope" : { + "description" : "Scope of permissions for the API key. API keys are used for creating new plugin versions and downloading existing plugins", + "enum" : [ "read-and-write" ], + "type" : "string" + }, + "APIKey" : { + "description" : "API Key to interact with CloudQuery Cloud under specific team", + "properties" : { + "name" : { + "$ref" : "#/components/schemas/APIKeyName" + }, + "created_by" : { + "$ref" : "#/components/schemas/Email" + }, + "id" : { + "$ref" : "#/components/schemas/APIKeyID" + }, + "key" : { + "description" : "API key. Will be shown only in the response when creating the key.", + "example" : "1234567890abcdef1234567890abcdef", + "type" : "string" + }, + "created_at" : { + "example" : "2017-07-14T16:53:42Z", + "format" : "date-time", + "type" : "string" + }, + "expires_at" : { + "description" : "Timestamp at which API key will stop working", + "example" : "2017-07-14T16:53:42Z", + "format" : "date-time", + "type" : "string" + }, + "expired" : { + "description" : "Whether the API key has expired or not", + "example" : false, + "type" : "boolean" + }, + "scope" : { + "$ref" : "#/components/schemas/APIKeyScope" + } + }, + "required" : [ "expired", "expires_at", "id", "name", "scope" ] + }, + "RegistryAuthToken" : { + "additionalProperties" : false, + "description" : "JWT token for the image registry", + "properties" : { + "access_token" : { + "type" : "string" + }, + "token" : { + "type" : "string" + } + }, + "required" : [ "access_token", "token" ] + }, + "DockerError" : { + "additionalProperties" : false, + "description" : "Error Returned from the Docker Authorization Handler to the Docker Registry", + "properties" : { + "details" : { + "type" : "string" + } + }, + "required" : [ "details" ], + "title" : "Docker Error" + }, + "SyncPluginPath" : { + "description" : "Plugin path in CloudQuery registry", + "pattern" : "^cloudquery/[^/]+", + "type" : "string" + }, + "SyncEnvCreate" : { + "description" : "Environment variable. Environment variables are assumed to be secret.", + "properties" : { + "name" : { + "description" : "Name of the environment variable", + "type" : "string" + }, + "value" : { + "description" : "Value of the environment variable", + "type" : "string" + } + }, + "required" : [ "name", "value" ] + }, + "SyncLastUpdateSource" : { + "description" : "How was the source or destination been created or updated last", + "enum" : [ "yaml", "ui" ], + "type" : "string" + }, + "SyncSourceCreate" : { + "description" : "Sync Source Definition", + "properties" : { + "name" : { + "description" : "Descriptive, unique name for the source. The name can only contain ASCII letters, digits, - and _.", + "example" : "my-source-definition", + "pattern" : "^[a-zA-Z0-9_-]+$", + "type" : "string" + }, + "path" : { + "$ref" : "#/components/schemas/SyncPluginPath" + }, + "version" : { + "description" : "Version of the plugin", + "example" : "v1.2.3", + "type" : "string" + }, + "tables" : { + "description" : "Tables to sync. Wildcards are supported. Note that child tables are excluded by default, and need to be explicitly specified.", + "items" : { + "type" : "string" + }, + "type" : "array" + }, + "skip_tables" : { + "description" : "Tables matched by `tables` that should be skipped. Wildcards are supported.", + "items" : { + "type" : "string" + }, + "type" : "array" + }, + "spec" : { + "additionalProperties" : false, + "format" : "Plugin parameters, specific to each plugin", + "type" : "object" + }, + "env" : { + "description" : "Environment variables for the plugin. All environment variables will be stored as secrets.", + "items" : { + "$ref" : "#/components/schemas/SyncEnvCreate" + }, + "type" : "array" + }, + "last_update_source" : { + "$ref" : "#/components/schemas/SyncLastUpdateSource" + } + }, + "required" : [ "name", "path", "tables", "version" ], + "title" : "Sync Source definition for creating a new source" }, - "SyncEnv": { - "type": "object", - "description": "Environment variable. Environment variables are assumed to be secret.", - "required": [ - "name" - ], - "properties": { - "name": { - "type": "string", - "description": "Name of the environment variable" + "SyncEnv" : { + "description" : "Environment variable. Environment variables are assumed to be secret.", + "properties" : { + "name" : { + "description" : "Name of the environment variable", + "type" : "string" } - } + }, + "required" : [ "name" ] }, - "SyncSource": { - "allOf": [ - { - "$ref": "#/components/schemas/SyncSourceCreate" - }, - { - "type": "object", - "required": [ - "name", - "path", - "version", - "tables", - "skip_tables", - "spec", - "env", - "created_at", - "updated_at", - "last_update_source" - ], - "properties": { - "created_at": { - "type": "string", - "format": "date-time", - "example": "2023-07-14T16:53:42Z", - "description": "Time when the source was created" - }, - "updated_at": { - "type": "string", - "format": "date-time", - "example": "2023-07-14T16:53:42Z", - "description": "Time when the source was last updated" + "SyncSource" : { + "allOf" : [ { + "$ref" : "#/components/schemas/SyncSourceCreate" + }, { + "properties" : { + "created_at" : { + "description" : "Time when the source was created", + "example" : "2023-07-14T16:53:42Z", + "format" : "date-time", + "type" : "string" + }, + "updated_at" : { + "description" : "Time when the source was last updated", + "example" : "2023-07-14T16:53:42Z", + "format" : "date-time", + "type" : "string" + }, + "env" : { + "description" : "Environment variables for the plugin.", + "items" : { + "$ref" : "#/components/schemas/SyncEnv" }, - "env": { - "description": "Environment variables for the plugin.", - "type": "array", - "items": { - "$ref": "#/components/schemas/SyncEnv" - } - } - } - } - ] - }, - "SyncTestConnectionID": { - "type": "string", - "format": "uuid", - "example": "12345678-1234-1234-1234-1234567890ab", - "description": "unique ID of the test connection", - "x-go-name": "ID" - }, - "SyncTestConnectionStatus": { - "description": "The status of the sync run", - "type": "string", - "enum": [ - "completed", - "failed", - "started", - "created" - ] - }, - "SyncTestConnection": { - "type": "object", - "required": [ - "id", - "created_at", - "status" - ], - "properties": { - "id": { - "$ref": "#/components/schemas/SyncTestConnectionID" - }, - "status": { - "$ref": "#/components/schemas/SyncTestConnectionStatus", - "description": "Status of the sync test connection" - }, - "created_at": { - "example": "2017-07-14T16:53:42Z", - "format": "date-time", - "type": "string", - "description": "Whether the sync is disabled" - }, - "completed_at": { - "example": "2017-07-14T16:53:42Z", - "format": "date-time", - "type": "string", - "description": "Cron schedule for the sync" + "type" : "array" + } + }, + "required" : [ "created_at", "env", "updated_at" ] + } ] + }, + "SyncTestConnectionID" : { + "description" : "unique ID of the test connection", + "example" : "12345678-1234-1234-1234-1234567890ab", + "format" : "uuid", + "type" : "string", + "x-go-name" : "ID" + }, + "SyncTestConnectionStatus" : { + "description" : "The status of the sync run", + "enum" : [ "completed", "failed", "started", "created" ], + "type" : "string" + }, + "SyncTestConnection" : { + "properties" : { + "id" : { + "$ref" : "#/components/schemas/SyncTestConnectionID" + }, + "status" : { + "$ref" : "#/components/schemas/SyncTestConnectionStatus" + }, + "created_at" : { + "description" : "Whether the sync is disabled", + "example" : "2017-07-14T16:53:42Z", + "format" : "date-time", + "type" : "string" + }, + "completed_at" : { + "description" : "Cron schedule for the sync", + "example" : "2017-07-14T16:53:42Z", + "format" : "date-time", + "type" : "string" + } + }, + "required" : [ "created_at", "id", "status" ] + }, + "SyncSourceUpdate" : { + "description" : "Sync Source Update Definition", + "properties" : { + "path" : { + "$ref" : "#/components/schemas/SyncPluginPath" + }, + "version" : { + "description" : "Version of the plugin", + "example" : "v1.2.3", + "type" : "string" + }, + "tables" : { + "description" : "Tables to sync. Wildcards are supported. Note that child tables are excluded by default, and need to be explicitly specified.", + "items" : { + "type" : "string" + }, + "type" : "array" + }, + "skip_tables" : { + "description" : "Tables matched by `tables` that should be skipped. Wildcards are supported.", + "items" : { + "type" : "string" + }, + "type" : "array" + }, + "spec" : { + "additionalProperties" : false, + "format" : "Plugin parameters, specific to each plugin", + "type" : "object" + }, + "env" : { + "description" : "Environment variables for the plugin. All environment variables will be stored as secrets.", + "items" : { + "$ref" : "#/components/schemas/SyncEnvCreate" + }, + "type" : "array" + }, + "last_update_source" : { + "$ref" : "#/components/schemas/SyncLastUpdateSource" + } + }, + "title" : "Sync Source definition for creating a new source" + }, + "SyncDestinationWriteMode" : { + "default" : "overwrite-delete-stale", + "description" : "Write mode for the destination", + "enum" : [ "append", "overwrite", "overwrite-delete-stale" ], + "type" : "string" + }, + "SyncDestinationMigrateMode" : { + "default" : "safe", + "description" : "Migrate mode for the destination", + "enum" : [ "safe", "forced" ], + "type" : "string" + }, + "SyncDestinationCreate" : { + "description" : "Sync Destination Definition", + "properties" : { + "name" : { + "description" : "Descriptive, unique name for the destination. The name can only contain ASCII letters, digits, - and _.", + "example" : "my-destination-definition", + "pattern" : "^[a-zA-Z0-9_-]+$", + "type" : "string" + }, + "path" : { + "$ref" : "#/components/schemas/SyncPluginPath" + }, + "version" : { + "description" : "Version of the plugin", + "example" : "v1.2.3", + "type" : "string" + }, + "write_mode" : { + "$ref" : "#/components/schemas/SyncDestinationWriteMode" + }, + "migrate_mode" : { + "$ref" : "#/components/schemas/SyncDestinationMigrateMode" + }, + "spec" : { + "additionalProperties" : false, + "format" : "Plugin parameters, specific to each plugin", + "type" : "object" + }, + "env" : { + "description" : "Environment variables for the plugin. All environment variables will be stored as secrets.", + "items" : { + "$ref" : "#/components/schemas/SyncEnvCreate" + }, + "type" : "array" + }, + "last_update_source" : { + "$ref" : "#/components/schemas/SyncLastUpdateSource" } - } + }, + "required" : [ "name", "path", "version" ], + "title" : "Sync Destination definition for creating a new destination" }, - "SyncSourceUpdate": { - "title": "Sync Source definition for creating a new source", - "description": "Sync Source Update Definition", - "type": "object", - "properties": { - "path": { - "$ref": "#/components/schemas/SyncPluginPath", - "example": "cloudquery/aws" - }, - "version": { - "type": "string", - "description": "Version of the plugin", - "example": "v1.2.3" - }, - "tables": { - "type": "array", - "description": "Tables to sync. Wildcards are supported. Note that child tables are excluded by default, and need to be explicitly specified.", - "items": { - "type": "string" + "SyncDestination" : { + "allOf" : [ { + "$ref" : "#/components/schemas/SyncDestinationCreate" + }, { + "properties" : { + "created_at" : { + "description" : "Time when the source was created", + "example" : "2023-07-14T16:53:42Z", + "format" : "date-time", + "type" : "string" + }, + "updated_at" : { + "description" : "Time when the source was last updated", + "example" : "2023-07-14T16:53:42Z", + "format" : "date-time", + "type" : "string" + }, + "env" : { + "description" : "Environment variables for the plugin.", + "items" : { + "$ref" : "#/components/schemas/SyncEnv" + }, + "type" : "array" } }, - "skip_tables": { - "type": "array", - "description": "Tables matched by `tables` that should be skipped. Wildcards are supported.", - "items": { - "type": "string" - } + "required" : [ "created_at", "env", "updated_at" ] + } ] + }, + "SyncDestinationUpdate" : { + "description" : "Sync Destination Definition", + "properties" : { + "path" : { + "$ref" : "#/components/schemas/SyncPluginPath" }, - "spec": { - "type": "object", - "additionalProperties": true, - "format": "Plugin parameters, specific to each plugin" + "version" : { + "description" : "Version of the plugin", + "example" : "v1.2.3", + "type" : "string" }, - "env": { - "description": "Environment variables for the plugin. All environment variables will be stored as secrets.", - "type": "array", - "items": { - "$ref": "#/components/schemas/SyncEnvCreate" - } + "write_mode" : { + "$ref" : "#/components/schemas/SyncDestinationWriteMode" + }, + "migrate_mode" : { + "$ref" : "#/components/schemas/SyncDestinationMigrateMode" }, - "last_update_source": { - "$ref": "#/components/schemas/SyncLastUpdateSource" + "spec" : { + "additionalProperties" : false, + "format" : "Plugin parameters, specific to each plugin", + "type" : "object" + }, + "env" : { + "description" : "Environment variables for the plugin. All environment variables will be stored as secrets.", + "items" : { + "$ref" : "#/components/schemas/SyncEnvCreate" + }, + "type" : "array" + }, + "last_update_source" : { + "$ref" : "#/components/schemas/SyncLastUpdateSource" } - } + }, + "title" : "Sync Destination definition for creating a new destination" }, - "SyncDestinationWriteMode": { - "type": "string", - "description": "Write mode for the destination", - "enum": [ - "append", - "overwrite", - "overwrite-delete-stale" - ], - "default": "overwrite-delete-stale" - }, - "SyncDestinationMigrateMode": { - "type": "string", - "description": "Migrate mode for the destination", - "enum": [ - "safe", - "forced" - ], - "default": "safe" - }, - "SyncDestinationCreate": { - "title": "Sync Destination definition for creating a new destination", - "description": "Sync Destination Definition", - "type": "object", - "required": [ - "name", - "path", - "version" - ], - "properties": { - "name": { - "type": "string", - "example": "my-destination-definition", - "description": "Descriptive, unique name for the destination. The name can only contain ASCII letters, digits, - and _.", - "pattern": "^[a-zA-Z0-9_-]+$" - }, - "path": { - "$ref": "#/components/schemas/SyncPluginPath", - "example": "cloudquery/postgresql" - }, - "version": { - "type": "string", - "description": "Version of the plugin", - "example": "v1.2.3" - }, - "write_mode": { - "$ref": "#/components/schemas/SyncDestinationWriteMode" - }, - "migrate_mode": { - "$ref": "#/components/schemas/SyncDestinationMigrateMode" - }, - "spec": { - "type": "object", - "additionalProperties": true, - "format": "Plugin parameters, specific to each plugin" - }, - "env": { - "description": "Environment variables for the plugin. All environment variables will be stored as secrets.", - "type": "array", - "items": { - "$ref": "#/components/schemas/SyncEnvCreate" - } + "Sync" : { + "description" : "Managed Sync definition", + "properties" : { + "name" : { + "description" : "Descriptive, unique name for the sync. The name can only contain ASCII letters, digits, - and _.", + "pattern" : "^[a-zA-Z0-9_-]+$", + "type" : "string" }, - "last_update_source": { - "$ref": "#/components/schemas/SyncLastUpdateSource" + "source" : { + "description" : "Unique name of the source", + "type" : "string" + }, + "destinations" : { + "description" : "List of destinations for the sync", + "items" : { + "description" : "Unique name of the destination", + "type" : "string" + }, + "type" : "array" + }, + "disabled" : { + "description" : "Whether the sync is disabled", + "type" : "boolean" + }, + "schedule" : { + "description" : "Cron schedule for the sync", + "type" : "string" + }, + "cpu" : { + "description" : "CPU quota for the sync", + "example" : "1", + "type" : "string", + "x-go-name" : "CPU" + }, + "memory" : { + "description" : "Memory quota for the sync", + "example" : "2Gi", + "type" : "string" + }, + "created_at" : { + "description" : "Time when the sync was created", + "format" : "date-time", + "type" : "string" + }, + "updated_at" : { + "description" : "Time when the sync was updated", + "format" : "date-time", + "type" : "string" + }, + "created_by" : { + "type" : "string" + } + }, + "required" : [ "cpu", "created_at", "destinations", "disabled", "memory", "name", "schedule", "source", "updated_at" ] + }, + "SyncCreate" : { + "description" : "Managed Sync definition", + "properties" : { + "name" : { + "description" : "Descriptive, unique name for the sync. The name can only contain ASCII letters, digits, - and _.", + "pattern" : "^[a-zA-Z0-9_-]+$", + "type" : "string" + }, + "source" : { + "description" : "Unique name of the source", + "pattern" : "^[a-zA-Z0-9_-]+$", + "type" : "string" + }, + "destinations" : { + "items" : { + "description" : "Unique name of the destination", + "pattern" : "^[a-zA-Z0-9_-]+$", + "type" : "string" + }, + "minItems" : 1, + "type" : "array" + }, + "schedule" : { + "description" : "Cron schedule for the sync", + "type" : "string" + }, + "disabled" : { + "default" : false, + "description" : "Whether the sync is disabled", + "type" : "boolean" + }, + "cpu" : { + "default" : "1", + "description" : "CPU quota for the sync", + "type" : "string", + "x-go-name" : "CPU" + }, + "memory" : { + "default" : "2Gi", + "description" : "Memory quota for the sync", + "type" : "string" + } + }, + "required" : [ "destinations", "name", "source" ] + }, + "SyncUpdate" : { + "description" : "Managed Sync definition", + "properties" : { + "source" : { + "description" : "Unique name of the source", + "pattern" : "^[a-zA-Z0-9_-]+$", + "type" : "string" + }, + "destinations" : { + "items" : { + "description" : "Unique name of the destination", + "pattern" : "^[a-zA-Z0-9_-]+$", + "type" : "string" + }, + "minItems" : 1, + "type" : "array" + }, + "schedule" : { + "description" : "Cron schedule for the sync", + "type" : "string" + }, + "disabled" : { + "default" : false, + "description" : "Whether the sync is disabled", + "type" : "boolean" + }, + "env" : { + "description" : "Environment variables for the sync", + "items" : { + "$ref" : "#/components/schemas/SyncEnv" + }, + "type" : "array" + }, + "cpu" : { + "default" : "1", + "description" : "CPU quota for the sync", + "type" : "string", + "x-go-name" : "CPU" + }, + "memory" : { + "default" : "2Gi", + "description" : "Memory quota for the sync", + "type" : "string" } } }, - "SyncDestination": { - "allOf": [ - { - "$ref": "#/components/schemas/SyncDestinationCreate" - }, - { - "type": "object", - "required": [ - "name", - "path", - "version", - "write_mode", - "migrate_mode", - "spec", - "env", - "created_at", - "updated_at", - "last_update_source" - ], - "properties": { - "created_at": { - "type": "string", - "format": "date-time", - "example": "2023-07-14T16:53:42Z", - "description": "Time when the source was created" - }, - "updated_at": { - "type": "string", - "format": "date-time", - "example": "2023-07-14T16:53:42Z", - "description": "Time when the source was last updated" - }, - "env": { - "description": "Environment variables for the plugin.", - "type": "array", - "items": { - "$ref": "#/components/schemas/SyncEnv" - } - } + "SyncRunStatus" : { + "description" : "The status of the sync run", + "enum" : [ "completed", "failed", "started", "cancelled", "created" ], + "type" : "string" + }, + "SyncRunStatusReason" : { + "description" : "The reason for the status", + "enum" : [ "error", "oom_killed" ], + "type" : "string" + }, + "SyncRun" : { + "description" : "Managed Sync Run definition", + "properties" : { + "sync_name" : { + "description" : "Name of the sync", + "type" : "string" + }, + "id" : { + "description" : "unique ID of the run", + "example" : "12345678-1234-1234-1234-1234567890ab", + "format" : "uuid", + "type" : "string", + "x-go-name" : "ID" + }, + "status" : { + "$ref" : "#/components/schemas/SyncRunStatus" + }, + "status_reason" : { + "$ref" : "#/components/schemas/SyncRunStatusReason" + }, + "created_at" : { + "description" : "Time the sync run was created", + "example" : "2017-07-14T16:53:42Z", + "format" : "date-time", + "type" : "string" + }, + "completed_at" : { + "description" : "Time the sync run was completed", + "example" : "2017-07-14T16:53:42Z", + "format" : "date-time", + "type" : "string" + }, + "total_rows" : { + "description" : "Total number of rows in the sync", + "format" : "int64", + "type" : "integer" + }, + "warnings" : { + "description" : "Number of warnings encountered during the sync", + "format" : "int64", + "type" : "integer" + }, + "errors" : { + "description" : "Number of errors encountered during the sync", + "format" : "int64", + "type" : "integer" + } + }, + "required" : [ "created_at", "errors", "id", "status", "sync_name", "total_rows", "warnings" ] + }, + "SyncRunID" : { + "description" : "ID of the SyncRun", + "example" : "12345678-1234-1234-1234-1234567890ab", + "format" : "uuid", + "type" : "string", + "x-go-name" : "SyncRunID" + }, + "SyncRunDetails" : { + "allOf" : [ { + "$ref" : "#/components/schemas/SyncRun" + }, { + "properties" : { + "cpu_seconds" : { + "description" : "Total CPU seconds utilized during this sync run", + "format" : "double", + "type" : "number", + "x-go-name" : "CPUSeconds" + }, + "memory_byte_seconds" : { + "description" : "Total memory byte seconds utilized during this sync run", + "format" : "double", + "type" : "number" + }, + "network_egress_bytes" : { + "description" : "Total network egress bytes during this sync run", + "format" : "double", + "type" : "number" } } - ] - }, - "SyncDestinationUpdate": { - "title": "Sync Destination definition for creating a new destination", - "description": "Sync Destination Definition", - "type": "object", - "properties": { - "path": { - "$ref": "#/components/schemas/SyncPluginPath", - "example": "cloudquery/postgresql" - }, - "version": { - "type": "string", - "description": "Version of the plugin", - "example": "v1.2.3" - }, - "write_mode": { - "$ref": "#/components/schemas/SyncDestinationWriteMode" - }, - "migrate_mode": { - "$ref": "#/components/schemas/SyncDestinationMigrateMode" - }, - "spec": { - "type": "object", - "additionalProperties": true, - "format": "Plugin parameters, specific to each plugin" - }, - "env": { - "description": "Environment variables for the plugin. All environment variables will be stored as secrets.", - "type": "array", - "items": { - "$ref": "#/components/schemas/SyncEnvCreate" - } + } ] + }, + "ListPluginNotificationRequests_200_response" : { + "properties" : { + "items" : { + "items" : { + "$ref" : "#/components/schemas/PluginNotificationRequest" + }, + "type" : "array" + }, + "metadata" : { + "$ref" : "#/components/schemas/ListMetadata" + } + }, + "required" : [ "items", "metadata" ] + }, + "ListPlugins_200_response" : { + "properties" : { + "items" : { + "example" : [ { + "name" : "aws", + "kind" : "source", + "team_name" : "cloudquery", + "display_name" : "AWS Source Plugin", + "category" : "cloud-infrastructure", + "created_at" : "2017-07-14T16:53:42Z", + "updated_at" : "2017-07-14T16:53:42Z", + "homepage" : "https://cloudquery.io", + "logo" : "https://images.cloudquery.io/logos/aws.png", + "official" : true, + "short_description" : "Sync data from AWS to any destination", + "repository" : "https://github.com/cloudquery/cloudquery", + "tier" : "paid", + "usd_per_row" : "0.00123", + "free_rows_per_month" : 10000, + "release_stage" : "preview" + } ], + "items" : { + "$ref" : "#/components/schemas/ListPlugin" + }, + "type" : "array" }, - "last_update_source": { - "$ref": "#/components/schemas/SyncLastUpdateSource" + "metadata" : { + "$ref" : "#/components/schemas/ListMetadata" } - } + }, + "required" : [ "items", "metadata" ] }, - "Sync": { - "description": "Managed Sync definition", - "type": "object", - "required": [ - "name", - "source", - "destinations", - "disabled", - "schedule", - "cpu", - "memory", - "created_at", - "updated_at" - ], - "properties": { - "name": { - "type": "string", - "description": "Descriptive, unique name for the sync. The name can only contain ASCII letters, digits, - and _.", - "pattern": "^[a-zA-Z0-9_-]+$" - }, - "source": { - "type": "string", - "description": "Unique name of the source" - }, - "destinations": { - "type": "array", - "description": "List of destinations for the sync", - "items": { - "type": "string", - "description": "Unique name of the destination" - } + "ListPluginUpcomingPriceChanges_200_response" : { + "properties" : { + "items" : { + "items" : { + "$ref" : "#/components/schemas/PluginPrice" + }, + "type" : "array" + }, + "metadata" : { + "$ref" : "#/components/schemas/ListMetadata" + } + }, + "required" : [ "items", "metadata" ] + }, + "ListPluginVersions_200_response" : { + "properties" : { + "items" : { + "items" : { + "$ref" : "#/components/schemas/PluginVersionList" + }, + "type" : "array" }, - "disabled": { - "type": "boolean", - "description": "Whether the sync is disabled" + "metadata" : { + "$ref" : "#/components/schemas/ListMetadata" + } + }, + "required" : [ "items", "metadata" ] + }, + "CreatePluginVersion_request" : { + "properties" : { + "message" : { + "description" : "A message describing what's new or changed in this version.\nThis message will be displayed to users in the plugin's changelog.\nSupports limited markdown syntax.\n", + "maxLength" : 30000, + "minLength" : 1, + "type" : "string" }, - "schedule": { - "type": "string", - "description": "Cron schedule for the sync" + "protocols" : { + "$ref" : "#/components/schemas/PluginProtocols" }, - "cpu": { - "type": "string", - "description": "CPU quota for the sync", - "example": "1", - "x-go-name": "CPU" + "supported_targets" : { + "description" : "The targets supported by this plugin version, formatted as _", + "example" : [ "linux_arm64", "darwin_amd64", "windows_amd64" ], + "items" : { + "type" : "string" + }, + "type" : "array" }, - "memory": { - "type": "string", - "description": "Memory quota for the sync", - "example": "2Gi" + "checksums" : { + "description" : "List of SHA-256 checksums for this plugin version, one for each supported target.", + "items" : { + "type" : "string" + }, + "type" : "array" }, - "created_at": { - "type": "string", - "format": "date-time", - "description": "Time when the sync was created" + "package_type" : { + "$ref" : "#/components/schemas/PluginPackageType" }, - "updated_at": { - "type": "string", - "format": "date-time", - "description": "Time when the sync was updated" + "spec_json_schema" : { + "$ref" : "#/components/schemas/PluginSpecJSONSchema" + } + }, + "required" : [ "checksums", "message", "package_type", "protocols", "supported_targets" ] + }, + "ListPluginVersionDocs_200_response" : { + "properties" : { + "items" : { + "items" : { + "$ref" : "#/components/schemas/PluginDocsPage" + }, + "type" : "array" }, - "created_by": { - "type": "string" + "metadata" : { + "$ref" : "#/components/schemas/ListMetadata" } - } + }, + "required" : [ "items", "metadata" ] + }, + "CreatePluginVersionDocs_request" : { + "properties" : { + "pages" : { + "items" : { + "$ref" : "#/components/schemas/PluginDocsPageCreate" + }, + "type" : "array" + } + }, + "required" : [ "pages" ] }, - "SyncCreate": { - "type": "object", - "description": "Managed Sync definition", - "required": [ - "name", - "source", - "destinations" - ], - "properties": { - "name": { - "type": "string", - "description": "Descriptive, unique name for the sync. The name can only contain ASCII letters, digits, - and _.", - "pattern": "^[a-zA-Z0-9_-]+$" - }, - "source": { - "type": "string", - "description": "Unique name of the source", - "pattern": "^[a-zA-Z0-9_-]+$" - }, - "destinations": { - "type": "array", - "items": { - "type": "string", - "description": "Unique name of the destination", - "pattern": "^[a-zA-Z0-9_-]+$" - }, - "minItems": 1 - }, - "schedule": { - "type": "string", - "description": "Cron schedule for the sync" - }, - "disabled": { - "type": "boolean", - "description": "Whether the sync is disabled", - "default": false - }, - "cpu": { - "type": "string", - "description": "CPU quota for the sync", - "default": "1", - "x-go-name": "CPU" - }, - "memory": { - "type": "string", - "description": "Memory quota for the sync", - "default": "2Gi" + "CreatePluginVersionDocs_201_response" : { + "properties" : { + "names" : { + "items" : { + "$ref" : "#/components/schemas/PluginDocsPageName" + }, + "type" : "array" } } }, - "SyncUpdate": { - "type": "object", - "description": "Managed Sync definition", - "properties": { - "source": { - "type": "string", - "description": "Unique name of the source", - "pattern": "^[a-zA-Z0-9_-]+$" - }, - "destinations": { - "type": "array", - "items": { - "type": "string", - "description": "Unique name of the destination", - "pattern": "^[a-zA-Z0-9_-]+$" - }, - "minItems": 1 - }, - "schedule": { - "type": "string", - "description": "Cron schedule for the sync" - }, - "disabled": { - "type": "boolean", - "description": "Whether the sync is disabled", - "default": false - }, - "env": { - "type": "array", - "description": "Environment variables for the sync", - "items": { - "$ref": "#/components/schemas/SyncEnv" - } - }, - "cpu": { - "type": "string", - "description": "CPU quota for the sync", - "default": "1", - "x-go-name": "CPU" + "DeletePluginVersionDocs_request" : { + "properties" : { + "names" : { + "items" : { + "$ref" : "#/components/schemas/PluginDocsPageName" + }, + "type" : "array" + } + }, + "required" : [ "names" ] + }, + "ListPluginVersionTables_200_response" : { + "properties" : { + "items" : { + "items" : { + "$ref" : "#/components/schemas/PluginTable" + }, + "type" : "array" }, - "memory": { - "type": "string", - "description": "Memory quota for the sync", - "default": "2Gi" + "metadata" : { + "$ref" : "#/components/schemas/ListMetadata" } - } + }, + "required" : [ "items", "metadata" ] }, - "SyncRunStatus": { - "description": "The status of the sync run", - "type": "string", - "enum": [ - "completed", - "failed", - "started", - "cancelled", - "created" - ] - }, - "SyncRunStatusReason": { - "description": "The reason for the status", - "type": "string", - "enum": [ - "error", - "oom_killed" - ] - }, - "SyncRun": { - "description": "Managed Sync Run definition", - "type": "object", - "required": [ - "created_at", - "sync_name", - "id", - "status", - "total_rows", - "warnings", - "errors" - ], - "properties": { - "sync_name": { - "type": "string", - "description": "Name of the sync" - }, - "id": { - "type": "string", - "format": "uuid", - "example": "12345678-1234-1234-1234-1234567890ab", - "description": "unique ID of the run", - "x-go-name": "ID" - }, - "status": { - "$ref": "#/components/schemas/SyncRunStatus", - "description": "Status of the sync run" - }, - "status_reason": { - "$ref": "#/components/schemas/SyncRunStatusReason", - "description": "Reason for the status of the sync run" - }, - "created_at": { - "example": "2017-07-14T16:53:42Z", - "format": "date-time", - "type": "string", - "description": "Time the sync run was created" - }, - "completed_at": { - "example": "2017-07-14T16:53:42Z", - "format": "date-time", - "type": "string", - "description": "Time the sync run was completed" - }, - "total_rows": { - "type": "integer", - "format": "int64", - "description": "Total number of rows in the sync" - }, - "warnings": { - "type": "integer", - "format": "int64", - "description": "Number of warnings encountered during the sync" - }, - "errors": { - "type": "integer", - "format": "int64", - "description": "Number of errors encountered during the sync" + "CreatePluginVersionTables_request" : { + "properties" : { + "tables" : { + "items" : { + "$ref" : "#/components/schemas/PluginTableCreate" + }, + "type" : "array" } - } + }, + "required" : [ "tables" ] }, - "SyncRunID": { - "description": "ID of the SyncRun", - "type": "string", - "format": "uuid", - "example": "12345678-1234-1234-1234-1234567890ab", - "x-go-name": "SyncRunID" - }, - "SyncRunDetails": { - "allOf": [ - { - "$ref": "#/components/schemas/SyncRun" - }, - { - "type": "object", - "required": [ - "created_at", - "sync_name", - "id", - "status", - "total_rows", - "warnings", - "errors" - ], - "properties": { - "cpu_seconds": { - "type": "number", - "format": "double", - "description": "Total CPU seconds utilized during this sync run", - "x-go-name": "CPUSeconds" - }, - "memory_byte_seconds": { - "type": "number", - "format": "double", - "description": "Total memory byte seconds utilized during this sync run" - }, - "network_egress_bytes": { - "type": "number", - "format": "double", - "description": "Total network egress bytes during this sync run" - } - } + "CreatePluginVersionTables_201_response" : { + "properties" : { + "names" : { + "items" : { + "$ref" : "#/components/schemas/PluginTableName" + }, + "type" : "array" } - ] - } - }, - "responses": { - "InternalError": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/BasicError" - } + } + }, + "DeletePluginVersionTables_request" : { + "properties" : { + "names" : { + "items" : { + "$ref" : "#/components/schemas/PluginTableName" + }, + "type" : "array" + } + }, + "required" : [ "names" ] + }, + "ListAddons_200_response" : { + "properties" : { + "items" : { + "example" : [ { + "name" : "aws-policies", + "team_name" : "cloudquery", + "display_name" : "AWS Policies", + "category" : "cloud-infrastructure", + "created_at" : "2017-07-14T16:53:42Z", + "updated_at" : "2017-07-14T16:53:42Z", + "homepage" : "https://cloudquery.io", + "logo" : "https://images.cloudquery.io/logos/aws.png", + "official" : true, + "short_description" : "Sync data from AWS to any destination", + "repository" : "https://github.com/cloudquery/cloudquery", + "tier" : "free", + "price_usd" : "50", + "addon_type" : "visualization", + "addon_format" : "zip" + } ], + "items" : { + "$ref" : "#/components/schemas/ListAddon" + }, + "type" : "array" + }, + "metadata" : { + "$ref" : "#/components/schemas/ListMetadata" } }, - "description": "Internal Error" + "required" : [ "items", "metadata" ] }, - "RequiresAuthentication": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/BasicError" - } + "ListAddonVersions_200_response" : { + "properties" : { + "items" : { + "items" : { + "$ref" : "#/components/schemas/AddonVersion" + }, + "type" : "array" + }, + "metadata" : { + "$ref" : "#/components/schemas/ListMetadata" } }, - "description": "Requires authentication" + "required" : [ "items", "metadata" ] }, - "BadRequest": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/FieldError" - } + "CreateAddonVersion_request" : { + "properties" : { + "message" : { + "description" : "A message describing what's new or changed in this version.\nThis message will be displayed to users in the addon's changelog.\nSupports limited markdown syntax.\n", + "maxLength" : 30000, + "minLength" : 1, + "type" : "string" + }, + "doc" : { + "description" : "Main README in MD format", + "type" : "string" + }, + "plugin_deps" : { + "description" : "plugin dependencies in the format of ['team_name/kind/plugin_name@version']", + "items" : { + "type" : "string" + }, + "type" : "array" + }, + "addon_deps" : { + "description" : "addon dependencies in the format of ['team_name/type/addon_name@version']", + "items" : { + "type" : "string" + }, + "type" : "array" + }, + "checksum" : { + "description" : "SHA-256 checksum for the addon asset", + "type" : "string" } }, - "description": "Bad request" + "required" : [ "checksum", "doc", "message" ] }, - "Forbidden": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/FieldError" - } + "ListTeams_200_response" : { + "properties" : { + "items" : { + "items" : { + "$ref" : "#/components/schemas/Team" + }, + "type" : "array" + }, + "metadata" : { + "$ref" : "#/components/schemas/ListMetadata" } }, - "description": "Forbidden" + "required" : [ "items", "metadata" ] }, - "NotFound": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/BasicError" - } + "CreateTeam_request" : { + "additionalProperties" : false, + "properties" : { + "name" : { + "$ref" : "#/components/schemas/TeamName" + }, + "display_name" : { } + }, + "required" : [ "display_name", "name" ] + }, + "UpdateTeam_request" : { + "additionalProperties" : false, + "properties" : { + "display_name" : { } + } + }, + "CreateTeamImages_request" : { + "properties" : { + "images" : { + "items" : { + "$ref" : "#/components/schemas/TeamImageCreate" + }, + "minItems" : 1, + "type" : "array" } }, - "description": "Resource not found" + "required" : [ "images" ] }, - "UnprocessableEntity": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/FieldError" - } + "CreateTeamImages_201_response" : { + "properties" : { + "items" : { + "items" : { + "$ref" : "#/components/schemas/TeamImage" + }, + "type" : "array" + }, + "metadata" : { + "$ref" : "#/components/schemas/ListMetadata" + } + }, + "required" : [ "items", "metadata" ] + }, + "ListPluginsByTeam_200_response" : { + "properties" : { + "items" : { + "example" : [ { + "name" : "aws-source", + "kind" : "source", + "team_name" : "cloudquery", + "display_name" : "AWS Source Plugin", + "category" : "cloud-infrastructure", + "created_at" : "2017-07-14T16:53:42Z", + "updated_at" : "2017-07-14T16:53:42Z", + "homepage" : "https://cloudquery.io", + "logo" : "https://images.cloudquery.io/logos/aws.png", + "official" : true, + "short_description" : "Sync data from AWS to any destination", + "repository" : "https://github.com/cloudquery/cloudquery", + "tier" : "paid", + "usd_per_row" : "0.00123", + "free_rows_per_month" : 10000, + "release_stage" : "preview" + } ], + "items" : { + "$ref" : "#/components/schemas/Plugin" + }, + "type" : "array" + }, + "metadata" : { + "$ref" : "#/components/schemas/ListMetadata" + } + }, + "required" : [ "items", "metadata" ] + }, + "ListAddonsByTeam_200_response" : { + "properties" : { + "items" : { + "example" : [ { + "name" : "aws-policies", + "team_name" : "cloudquery", + "display_name" : "AWS Policies", + "category" : "cloud-infrastructure", + "created_at" : "2017-07-14T16:53:42Z", + "updated_at" : "2017-07-14T16:53:42Z", + "homepage" : "https://cloudquery.io", + "logo" : "https://images.cloudquery.io/logos/aws.png", + "official" : true, + "short_description" : "AWS policies", + "repository" : "https://github.com/cloudquery/cloudquery", + "tier" : "paid", + "price_usd" : "50", + "addon_type" : "visualization", + "addon_format" : "zip" + } ], + "items" : { + "$ref" : "#/components/schemas/Addon" + }, + "type" : "array" + }, + "metadata" : { + "$ref" : "#/components/schemas/ListMetadata" } }, - "description": "UnprocessableEntity" + "required" : [ "items", "metadata" ] }, - "TooManyRequests": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/BasicError" - } + "ListAddonOrdersByTeam_200_response" : { + "properties" : { + "items" : { + "items" : { + "$ref" : "#/components/schemas/AddonOrder" + }, + "type" : "array" + }, + "metadata" : { + "$ref" : "#/components/schemas/ListMetadata" } }, - "description": "Too Many Requests" + "required" : [ "items", "metadata" ] }, - "ServiceUnavailable": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/BasicError" - } + "GetTeamMemberships_200_response" : { + "properties" : { + "items" : { + "example" : [ { + "role" : "admin", + "user" : { + "created_at" : "2017-07-14T16:53:42Z", + "email" : "user@clouduery.io", + "id" : "12345678-1234-1234-1234-1234567890ab", + "name" : "user", + "updated_at" : "2017-07-14T16:53:42Z" + } + } ], + "items" : { + "$ref" : "#/components/schemas/MembershipWithUser" + }, + "type" : "array" + }, + "metadata" : { + "$ref" : "#/components/schemas/ListMetadata" } }, - "description": "Service unavailable" + "required" : [ "items", "metadata" ] }, - "MethodNotAllowed": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/BasicError" - } + "ListMonthlyLimitsByTeam_200_response" : { + "properties" : { + "items" : { + "items" : { + "$ref" : "#/components/schemas/MonthlyLimit" + }, + "type" : "array" + }, + "metadata" : { + "$ref" : "#/components/schemas/ListMetadata" } }, - "description": "Method not allowed" + "required" : [ "items", "metadata" ] }, - "DockerError": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/DockerError" - } + "ListInvoicesByTeam_200_response" : { + "properties" : { + "items" : { + "items" : { + "$ref" : "#/components/schemas/Invoice" + }, + "type" : "array" + }, + "metadata" : { + "$ref" : "#/components/schemas/ListMetadata" } }, - "description": "Error Returned from the Docker Authorization Handler to the Docker Registry" - } - }, - "parameters": { - "page": { - "description": "Page number of the results to fetch", - "in": "query", - "name": "page", - "required": false, - "schema": { - "default": 1, - "minimum": 1, - "type": "integer", - "format": "int64" - } + "required" : [ "items", "metadata" ] }, - "per_page": { - "description": "The number of results per page (max 1000).", - "in": "query", - "name": "per_page", - "required": false, - "schema": { - "default": 100, - "maximum": 1000, - "minimum": 1, - "type": "integer", - "format": "int64" - } + "ListTeamPluginUsage_200_response" : { + "properties" : { + "items" : { + "items" : { + "$ref" : "#/components/schemas/UsageCurrent" + }, + "type" : "array" + }, + "metadata" : { + "$ref" : "#/components/schemas/ListMetadata" + } + }, + "required" : [ "items", "metadata" ] }, - "plugin_team": { - "in": "path", - "name": "plugin_team", - "required": true, - "schema": { - "$ref": "#/components/schemas/TeamName" - } + "ListTeamInvitations_200_response" : { + "properties" : { + "items" : { + "items" : { + "$ref" : "#/components/schemas/Invitation" + }, + "type" : "array" + }, + "metadata" : { + "$ref" : "#/components/schemas/ListMetadata" + } + }, + "required" : [ "items", "metadata" ] }, - "plugin_kind": { - "in": "path", - "name": "plugin_kind", - "required": true, - "schema": { - "$ref": "#/components/schemas/PluginKind" - } + "EmailTeamInvitation_request" : { + "properties" : { + "email" : { + "format" : "email", + "type" : "string" + }, + "role" : { + "enum" : [ "admin", "member" ], + "type" : "string" + } + }, + "required" : [ "email", "role" ] }, - "plugin_name": { - "in": "path", - "name": "plugin_name", - "required": true, - "schema": { - "$ref": "#/components/schemas/PluginName" - } + "AcceptTeamInvitation_request" : { + "properties" : { + "token" : { + "format" : "uuid", + "type" : "string" + } + }, + "required" : [ "token" ] }, - "plugin_sort_by": { - "description": "The field to sort by", - "in": "query", - "name": "sort_by", - "required": false, - "schema": { - "enum": [ - "created_at", - "updated_at", - "name", - "downloads" - ], - "type": "string" - } + "ListSubscriptionOrdersByTeam_200_response" : { + "properties" : { + "items" : { + "items" : { + "$ref" : "#/components/schemas/TeamSubscriptionOrder" + }, + "type" : "array" + }, + "metadata" : { + "$ref" : "#/components/schemas/ListMetadata" + } + }, + "required" : [ "items", "metadata" ] }, - "team_name": { - "in": "path", - "name": "team_name", - "required": true, - "schema": { - "$ref": "#/components/schemas/TeamName" - } + "ListUsersByTeam_200_response" : { + "properties" : { + "items" : { + "items" : { + "$ref" : "#/components/schemas/User" + }, + "type" : "array" + }, + "metadata" : { + "$ref" : "#/components/schemas/ListMetadata" + } + }, + "required" : [ "items", "metadata" ] }, - "version_sort_by": { - "description": "The field to sort by", - "in": "query", - "name": "sort_by", - "required": false, - "schema": { - "enum": [ - "created_at" - ], - "type": "string" + "UpdateCurrentUser_request" : { + "additionalProperties" : false, + "properties" : { + "name" : { } } }, - "include_drafts": { - "description": "Whether to include draft versions", - "in": "query", - "name": "include_drafts", - "required": false, - "schema": { - "type": "boolean" - } + "ListCurrentUserInvitations_200_response" : { + "properties" : { + "items" : { + "items" : { + "$ref" : "#/components/schemas/InvitationWithToken" + }, + "type" : "array" + }, + "metadata" : { + "$ref" : "#/components/schemas/ListMetadata" + } + }, + "required" : [ "items", "metadata" ] }, - "include_prereleases": { - "description": "Whether to include prerelease versions", - "in": "query", - "name": "include_prereleases", - "required": false, - "schema": { - "type": "boolean" - } + "GetCurrentUserMemberships_200_response" : { + "properties" : { + "items" : { + "example" : [ { + "role" : "admin", + "team" : { + "created_at" : "2017-07-14T16:53:42Z", + "name" : "cloudquery", + "display_name" : "CloudQuery", + "plan" : "free", + "is_trial_active" : false + } + } ], + "items" : { + "$ref" : "#/components/schemas/MembershipWithTeam" + }, + "type" : "array" + }, + "metadata" : { + "$ref" : "#/components/schemas/ListMetadata" + } + }, + "required" : [ "items", "metadata" ] }, - "version_name": { - "in": "path", - "name": "version_name", - "required": true, - "schema": { - "$ref": "#/components/schemas/VersionName" - } + "ListTeamAPIKeys_200_response" : { + "properties" : { + "items" : { + "items" : { + "$ref" : "#/components/schemas/APIKey" + }, + "type" : "array" + }, + "metadata" : { + "$ref" : "#/components/schemas/ListMetadata" + } + }, + "required" : [ "items", "metadata" ] }, - "target_name": { - "in": "path", - "name": "target_name", - "required": true, - "schema": { - "type": "string" - } + "CreateTeamAPIKey_request" : { + "properties" : { + "name" : { + "$ref" : "#/components/schemas/APIKeyName" + }, + "expires_at" : { + "format" : "date-time", + "type" : "string" + } + }, + "required" : [ "expires_at", "name" ] }, - "addon_sort_by": { - "description": "The field to sort by", - "in": "query", - "name": "sort_by", - "required": false, - "schema": { - "enum": [ - "created_at", - "updated_at", - "name", - "downloads" - ], - "type": "string" - } + "ListSyncSources_200_response" : { + "properties" : { + "items" : { + "items" : { + "$ref" : "#/components/schemas/SyncSource" + }, + "type" : "array" + }, + "metadata" : { + "$ref" : "#/components/schemas/ListMetadata" + } + }, + "required" : [ "items", "metadata" ] }, - "addon_type": { - "in": "path", - "name": "addon_type", - "required": true, - "schema": { - "$ref": "#/components/schemas/AddonType" - } + "ListSyncDestinations_200_response" : { + "properties" : { + "items" : { + "items" : { + "$ref" : "#/components/schemas/SyncDestination" + }, + "type" : "array" + }, + "metadata" : { + "$ref" : "#/components/schemas/ListMetadata" + } + }, + "required" : [ "items", "metadata" ] }, - "addon_name": { - "in": "path", - "name": "addon_name", - "required": true, - "schema": { - "$ref": "#/components/schemas/AddonName" - } + "ListSyncs_200_response" : { + "properties" : { + "items" : { + "items" : { + "$ref" : "#/components/schemas/Sync" + }, + "type" : "array" + }, + "metadata" : { + "$ref" : "#/components/schemas/ListMetadata" + } + }, + "required" : [ "items", "metadata" ] }, - "include_private": { - "description": "Whether to include private plugins", - "in": "query", - "name": "include_private", - "required": false, - "schema": { - "type": "boolean" - } + "ListSyncRuns_200_response" : { + "properties" : { + "items" : { + "items" : { + "$ref" : "#/components/schemas/SyncRun" + }, + "type" : "array" + }, + "metadata" : { + "$ref" : "#/components/schemas/ListMetadata" + } + }, + "required" : [ "items", "metadata" ] }, - "addon_order_id": { - "name": "addon_order_id", - "in": "path", - "required": true, - "schema": { - "$ref": "#/components/schemas/AddonOrderID" - }, - "x-go-name": "AddonOrderID" - }, - "email": { - "in": "path", - "name": "email", - "required": true, - "schema": { - "$ref": "#/components/schemas/Email" + "UpdateSyncRun_request" : { + "properties" : { + "status" : { + "$ref" : "#/components/schemas/SyncRunStatus" + }, + "status_reason" : { + "$ref" : "#/components/schemas/SyncRunStatusReason" + } } }, - "addon_team": { - "in": "path", - "name": "addon_team", - "required": true, - "schema": { - "$ref": "#/components/schemas/TeamName" - } + "CreateSyncRunProgress_request" : { + "properties" : { + "rows" : { + "description" : "Number of rows synced so far", + "format" : "int64", + "type" : "integer" + }, + "warnings" : { + "description" : "Number of warnings encountered so far", + "format" : "int64", + "type" : "integer" + }, + "errors" : { + "description" : "Number of errors encountered so far", + "format" : "int64", + "type" : "integer" + }, + "status" : { + "$ref" : "#/components/schemas/SyncRunStatus" + } + }, + "required" : [ "errors", "rows", "warnings" ] }, - "team_subscription_order_id": { - "name": "subscription_order_id", - "in": "path", - "required": true, - "schema": { - "$ref": "#/components/schemas/TeamSubscriptionOrderID" - }, - "x-go-name": "TeamSubscriptionOrderID" - }, - "user_id": { - "name": "user_id", - "in": "path", - "required": true, - "schema": { - "$ref": "#/components/schemas/UserID" - }, - "x-go-name": "UserID" - }, - "apikey_id": { - "name": "apikey_id", - "in": "path", - "required": true, - "schema": { - "$ref": "#/components/schemas/APIKeyID" - }, - "x-go-name": "APIKeyID" - }, - "sync_source_name": { - "name": "sync_source_name", - "in": "path", - "required": true, - "schema": { - "description": "Unique name of the sync source", - "type": "string", - "pattern": "^[a-zA-Z0-9_-]+$", - "x-go-name": "SyncSourceName" - } + "Sync_Run_Logs" : { + "additionalProperties" : false, + "properties" : { + "location" : { } + }, + "required" : [ "location" ], + "title" : "Sync Run Logs" }, - "sync_destination_name": { - "name": "sync_destination_name", - "in": "path", - "required": true, - "schema": { - "description": "Unique name of the sync destination", - "type": "string", - "pattern": "^[a-zA-Z0-9_-]+$", - "x-go-name": "SyncDestinationName" - } + "UpdateSyncTestConnection_request" : { + "properties" : { + "status" : { + "$ref" : "#/components/schemas/SyncTestConnectionStatus" + } + }, + "required" : [ "status" ] }, - "sync_name": { - "name": "sync_name", - "in": "path", - "required": true, - "schema": { - "description": "Unique name of the sync", - "type": "string", - "pattern": "^[a-zA-Z0-9_-]+$", - "x-go-name": "SyncName" - } + "UsageIncrease_tables_inner" : { + "properties" : { + "name" : { + "description" : "The name of the table.", + "example" : "my_table", + "type" : "string" + }, + "rows" : { + "description" : "The additional rows used by the table.", + "example" : 100, + "minimum" : 0, + "type" : "integer" + } + }, + "required" : [ "name", "rows" ] }, - "sync_run_id": { - "name": "sync_run_id", - "in": "path", - "required": true, - "schema": { - "$ref": "#/components/schemas/SyncRunID" - } + "UsageSummary_metadata" : { + "additionalProperties" : false, + "description" : "Additional metadata about the usage summary. This may include information about the time range, the aggregation period, or other details.", + "properties" : { + "start" : { }, + "end" : { }, + "aggregation_period" : { + "description" : "The aggregation period to sum data over. In other words, data will be returned at this granularity.", + "enum" : [ "day", "month" ], + "type" : "string" + }, + "metrics" : { } + }, + "required" : [ "aggregation_period", "end", "metrics", "start" ] }, - "sync_test_connection_id": { - "name": "sync_test_connection_id", - "in": "path", - "required": true, - "schema": { - "$ref": "#/components/schemas/SyncTestConnectionID" - } + "SpendSummary_metadata" : { + "additionalProperties" : false, + "description" : "Additional metadata about the spend summary. This may include information about the time range, the aggregation period, or other details.", + "properties" : { + "start" : { }, + "end" : { } + }, + "required" : [ "end", "start" ] + } + }, + "securitySchemes" : { + "bearerAuth" : { + "scheme" : "bearer", + "type" : "http" + }, + "basicAuth" : { + "scheme" : "basic", + "type" : "http" } } }