components:
  schemas:
    ListGithubUserReposResponseRepo:
      properties:
        defaultBranch:
          type: string
        description:
          type: string
        name:
          type: string
        owner:
          type: string
        remote:
          type: string
      type: object
    protobufAny:
      additionalProperties: {}
      properties:
        '@type':
          type: string
      type: object
    protobufNullValue:
      default: NULL_VALUE
      description: >-
        `NullValue` is a singleton enumeration to represent the null value for
        the

        `Value` type union.


        The JSON representation for `NullValue` is JSON `null`.

         - NULL_VALUE: Null value.
      enum:
        - NULL_VALUE
      type: string
    rpcStatus:
      properties:
        code:
          format: int32
          type: integer
        details:
          items:
            $ref: '#/components/schemas/protobufAny'
          type: array
        message:
          type: string
      type: object
    runtimev1Operation:
      default: OPERATION_UNSPECIFIED
      enum:
        - OPERATION_UNSPECIFIED
        - OPERATION_EQ
        - OPERATION_NEQ
        - OPERATION_LT
        - OPERATION_LTE
        - OPERATION_GT
        - OPERATION_GTE
        - OPERATION_OR
        - OPERATION_AND
        - OPERATION_IN
        - OPERATION_NIN
        - OPERATION_LIKE
        - OPERATION_NLIKE
      type: string
    v1AddOrganizationMemberUserResponse:
      properties:
        pendingSignup:
          type: boolean
      type: object
    v1AddOrganizationMemberUsergroupResponse:
      type: object
    v1AddProjectMemberUserResponse:
      properties:
        pendingSignup:
          type: boolean
      type: object
    v1AddProjectMemberUsergroupResponse:
      type: object
    v1AddUsergroupMemberUserResponse:
      type: object
    v1AlertOptions:
      properties:
        displayName:
          type: string
        emailRecipients:
          items:
            type: string
          type: array
        intervalDuration:
          type: string
        metricsViewName:
          type: string
        queryArgsJson:
          description: 'DEPRECATED: Use resolver and resolver_properties instead.'
          type: string
        queryName:
          description: 'DEPRECATED: Use resolver and resolver_properties instead.'
          type: string
        refreshCron:
          type: string
        refreshTimeZone:
          type: string
        renotify:
          type: boolean
        renotifyAfterSeconds:
          format: int64
          type: integer
        resolver:
          type: string
        resolverProperties:
          type: object
        slackChannels:
          items:
            type: string
          type: array
        slackUsers:
          items:
            type: string
          type: array
        slackWebhooks:
          items:
            type: string
          type: array
        webOpenPath:
          description: >-
            Annotation for the subpath of <UI host>/org/project to open for the
            report.
          type: string
        webOpenState:
          description: Annotation for the base64-encoded UI state to open for the report.
          type: string
      type: object
    v1ApproveProjectAccessResponse:
      type: object
    v1BillingIssue:
      properties:
        createdOn:
          format: date-time
          type: string
        eventTime:
          format: date-time
          type: string
        level:
          $ref: '#/components/schemas/v1BillingIssueLevel'
        metadata:
          $ref: '#/components/schemas/v1BillingIssueMetadata'
        org:
          type: string
        type:
          $ref: '#/components/schemas/v1BillingIssueType'
      type: object
    v1BillingIssueLevel:
      default: BILLING_ISSUE_LEVEL_UNSPECIFIED
      enum:
        - BILLING_ISSUE_LEVEL_UNSPECIFIED
        - BILLING_ISSUE_LEVEL_WARNING
        - BILLING_ISSUE_LEVEL_ERROR
      type: string
    v1BillingIssueMetadata:
      properties:
        neverSubscribed:
          $ref: '#/components/schemas/v1BillingIssueMetadataNeverSubscribed'
        noBillableAddress:
          $ref: '#/components/schemas/v1BillingIssueMetadataNoBillableAddress'
        noPaymentMethod:
          $ref: '#/components/schemas/v1BillingIssueMetadataNoPaymentMethod'
        onTrial:
          $ref: '#/components/schemas/v1BillingIssueMetadataOnTrial'
        paymentFailed:
          $ref: '#/components/schemas/v1BillingIssueMetadataPaymentFailed'
        subscriptionCancelled:
          $ref: '#/components/schemas/v1BillingIssueMetadataSubscriptionCancelled'
        trialEnded:
          $ref: '#/components/schemas/v1BillingIssueMetadataTrialEnded'
      type: object
    v1BillingIssueMetadataNeverSubscribed:
      type: object
    v1BillingIssueMetadataNoBillableAddress:
      type: object
    v1BillingIssueMetadataNoPaymentMethod:
      type: object
    v1BillingIssueMetadataOnTrial:
      properties:
        endDate:
          format: date-time
          type: string
        gracePeriodEndDate:
          format: date-time
          type: string
      type: object
    v1BillingIssueMetadataPaymentFailed:
      properties:
        invoices:
          items:
            $ref: '#/components/schemas/v1BillingIssueMetadataPaymentFailedMeta'
          type: array
      type: object
    v1BillingIssueMetadataPaymentFailedMeta:
      properties:
        amountDue:
          type: string
        currency:
          type: string
        dueDate:
          format: date-time
          type: string
        failedOn:
          format: date-time
          type: string
        gracePeriodEndDate:
          format: date-time
          type: string
        invoiceId:
          type: string
        invoiceNumber:
          type: string
        invoiceUrl:
          type: string
      type: object
    v1BillingIssueMetadataSubscriptionCancelled:
      properties:
        endDate:
          format: date-time
          type: string
      type: object
    v1BillingIssueMetadataTrialEnded:
      properties:
        endDate:
          format: date-time
          type: string
        gracePeriodEndDate:
          format: date-time
          type: string
      type: object
    v1BillingIssueType:
      default: BILLING_ISSUE_TYPE_UNSPECIFIED
      enum:
        - BILLING_ISSUE_TYPE_UNSPECIFIED
        - BILLING_ISSUE_TYPE_ON_TRIAL
        - BILLING_ISSUE_TYPE_TRIAL_ENDED
        - BILLING_ISSUE_TYPE_NO_PAYMENT_METHOD
        - BILLING_ISSUE_TYPE_NO_BILLABLE_ADDRESS
        - BILLING_ISSUE_TYPE_PAYMENT_FAILED
        - BILLING_ISSUE_TYPE_SUBSCRIPTION_CANCELLED
        - BILLING_ISSUE_TYPE_NEVER_SUBSCRIBED
      type: string
    v1BillingPlan:
      properties:
        default:
          type: boolean
        description:
          type: string
        displayName:
          type: string
        id:
          type: string
        name:
          type: string
        planType:
          $ref: '#/components/schemas/v1BillingPlanType'
        public:
          title: TODO expose pricing information
          type: boolean
        quotas:
          $ref: '#/components/schemas/v1Quotas'
        trialPeriodDays:
          format: int64
          type: integer
      type: object
    v1BillingPlanType:
      default: BILLING_PLAN_TYPE_UNSPECIFIED
      enum:
        - BILLING_PLAN_TYPE_UNSPECIFIED
        - BILLING_PLAN_TYPE_TRIAL
        - BILLING_PLAN_TYPE_TEAM
        - BILLING_PLAN_TYPE_MANAGED
        - BILLING_PLAN_TYPE_ENTERPRISE
      type: string
    v1Bookmark:
      properties:
        createdOn:
          format: date-time
          type: string
        data:
          format: byte
          type: string
        default:
          type: boolean
        description:
          type: string
        displayName:
          type: string
        id:
          type: string
        projectId:
          type: string
        resourceKind:
          type: string
        resourceName:
          type: string
        shared:
          type: boolean
        updatedOn:
          format: date-time
          type: string
        urlSearch:
          type: string
        userId:
          type: string
      type: object
    v1CancelBillingSubscriptionResponse:
      type: object
    v1CompleteRequest:
      properties:
        messages:
          description: Input message(s) for the AI to complete.
          items:
            $ref: '#/components/schemas/v1CompletionMessage'
          type: array
        outputJsonSchema:
          title: Optional output JSON schema
          type: string
        tools:
          items:
            $ref: '#/components/schemas/v1Tool'
          title: Optional list of tools that the AI can use during completion
          type: array
      type: object
    v1CompleteResponse:
      properties:
        inputTokens:
          description: Number of tokens in the input.
          format: int64
          type: integer
        message:
          $ref: '#/components/schemas/v1CompletionMessage'
        outputTokens:
          description: Number of tokens in the output.
          format: int64
          type: integer
      type: object
    v1CompletionMessage:
      properties:
        content:
          items:
            $ref: '#/components/schemas/v1ContentBlock'
          type: array
        data:
          title: Deprecated in favor of content
          type: string
        role:
          type: string
      title: Completion message for AI API calls
      type: object
    v1Condition:
      properties:
        exprs:
          items:
            $ref: '#/components/schemas/v1Expression'
          type: array
        op:
          $ref: '#/components/schemas/runtimev1Operation'
      type: object
    v1ConnectProjectToGithubResponse:
      type: object
    v1ContentBlock:
      properties:
        text:
          type: string
        toolCall:
          $ref: '#/components/schemas/v1ToolCall'
        toolResult:
          $ref: '#/components/schemas/v1ToolResult'
      title: Content block within a message
      type: object
    v1CreateAlertResponse:
      properties:
        name:
          type: string
      type: object
    v1CreateAssetResponse:
      properties:
        assetId:
          type: string
        signedUrl:
          type: string
        signingHeaders:
          additionalProperties:
            type: string
          type: object
      type: object
    v1CreateBookmarkRequest:
      properties:
        default:
          type: boolean
        description:
          type: string
        displayName:
          type: string
        projectId:
          type: string
        resourceKind:
          type: string
        resourceName:
          type: string
        shared:
          type: boolean
        urlSearch:
          type: string
      type: object
    v1CreateBookmarkResponse:
      properties:
        bookmark:
          $ref: '#/components/schemas/v1Bookmark'
      type: object
    v1CreateDeploymentResponse:
      properties:
        deployment:
          $ref: '#/components/schemas/v1Deployment'
      type: object
    v1CreateManagedGitRepoResponse:
      properties:
        defaultBranch:
          type: string
        password:
          type: string
        passwordExpiresAt:
          format: date-time
          type: string
        remote:
          type: string
        username:
          type: string
      type: object
    v1CreateOrganizationRequest:
      properties:
        description:
          type: string
        displayName:
          type: string
        name:
          type: string
      type: object
    v1CreateOrganizationResponse:
      properties:
        organization:
          $ref: '#/components/schemas/v1Organization'
      type: object
    v1CreateProjectResponse:
      properties:
        project:
          $ref: '#/components/schemas/v1Project'
      type: object
    v1CreateProjectWhitelistedDomainResponse:
      type: object
    v1CreateReportResponse:
      properties:
        name:
          type: string
      type: object
    v1CreateServiceResponse:
      properties:
        service:
          $ref: '#/components/schemas/v1Service'
      type: object
    v1CreateUsergroupResponse:
      properties:
        usergroup:
          $ref: '#/components/schemas/v1Usergroup'
      type: object
    v1CreateWhitelistedDomainResponse:
      type: object
    v1DeleteAlertResponse:
      type: object
    v1DeleteDeploymentResponse:
      properties:
        deploymentId:
          type: string
      type: object
    v1DeleteOrganizationResponse:
      type: object
    v1DeleteProjectResponse:
      properties:
        id:
          type: string
      type: object
    v1DeleteReportResponse:
      type: object
    v1DeleteServiceResponse:
      properties:
        service:
          $ref: '#/components/schemas/v1Service'
      type: object
    v1DeleteUserResponse:
      type: object
    v1DeleteUsergroupResponse:
      type: object
    v1DenyProjectAccessResponse:
      type: object
    v1Deployment:
      properties:
        branch:
          type: string
        createdOn:
          format: date-time
          type: string
        environment:
          type: string
        id:
          type: string
        ownerUserId:
          type: string
        projectId:
          type: string
        runtimeHost:
          type: string
        runtimeInstanceId:
          type: string
        status:
          $ref: '#/components/schemas/v1DeploymentStatus'
        statusMessage:
          type: string
        updatedOn:
          format: date-time
          type: string
      type: object
    v1DeploymentStatus:
      default: DEPLOYMENT_STATUS_UNSPECIFIED
      enum:
        - DEPLOYMENT_STATUS_UNSPECIFIED
        - DEPLOYMENT_STATUS_PENDING
        - DEPLOYMENT_STATUS_OK
        - DEPLOYMENT_STATUS_ERROR
        - DEPLOYMENT_STATUS_STOPPED
      type: string
    v1EditAlertResponse:
      type: object
    v1EditReportResponse:
      type: object
    v1EditUsergroupResponse:
      type: object
    v1ExportFormat:
      default: EXPORT_FORMAT_UNSPECIFIED
      enum:
        - EXPORT_FORMAT_UNSPECIFIED
        - EXPORT_FORMAT_CSV
        - EXPORT_FORMAT_XLSX
        - EXPORT_FORMAT_PARQUET
      type: string
    v1Expression:
      properties:
        cond:
          $ref: '#/components/schemas/v1Condition'
        ident:
          type: string
        subquery:
          $ref: '#/components/schemas/v1Subquery'
        val: {}
      type: object
    v1GenerateAlertYAMLResponse:
      properties:
        yaml:
          type: string
      type: object
    v1GenerateReportYAMLResponse:
      properties:
        yaml:
          type: string
      type: object
    v1GetAlertMetaResponse:
      properties:
        queryForAttributes:
          type: object
        recipientUrls:
          additionalProperties:
            $ref: '#/components/schemas/v1GetAlertMetaResponseURLs'
          type: object
      type: object
    v1GetAlertMetaResponseURLs:
      properties:
        editUrl:
          type: string
        openUrl:
          type: string
        unsubscribeUrl:
          type: string
      type: object
    v1GetAlertYAMLResponse:
      properties:
        yaml:
          type: string
      type: object
    v1GetBillingProjectCredentialsRequest:
      properties:
        org:
          type: string
      type: object
    v1GetBillingProjectCredentialsResponse:
      properties:
        accessToken:
          type: string
        instanceId:
          type: string
        runtimeHost:
          type: string
        ttlSeconds:
          format: int64
          type: integer
      type: object
    v1GetBillingSubscriptionResponse:
      properties:
        billingPortalUrl:
          type: string
        organization:
          $ref: '#/components/schemas/v1Organization'
        subscription:
          $ref: '#/components/schemas/v1Subscription'
      type: object
    v1GetBookmarkResponse:
      properties:
        bookmark:
          $ref: '#/components/schemas/v1Bookmark'
      type: object
    v1GetCloneCredentialsResponse:
      properties:
        archiveDownloadUrl:
          title: either archive_download_url or git related details will be set
          type: string
        gitManagedRepo:
          type: boolean
        gitPassword:
          type: string
        gitPasswordExpiresAt:
          format: date-time
          type: string
        gitProdBranch:
          type: string
        gitRepoUrl:
          type: string
        gitSubpath:
          type: string
        gitUsername:
          type: string
      type: object
    v1GetCurrentMagicAuthTokenResponse:
      properties:
        token:
          $ref: '#/components/schemas/v1MagicAuthToken'
      type: object
    v1GetCurrentUserResponse:
      properties:
        preferences:
          $ref: '#/components/schemas/v1UserPreferences'
        user:
          $ref: '#/components/schemas/v1User'
      type: object
    v1GetDeploymentCredentialsResponse:
      properties:
        accessToken:
          type: string
        instanceId:
          type: string
        runtimeHost:
          type: string
        ttlSeconds:
          format: int64
          type: integer
      type: object
    v1GetDeploymentResponse:
      properties:
        accessToken:
          type: string
        instanceId:
          type: string
        runtimeHost:
          type: string
        ttlSeconds:
          format: int64
          type: integer
      type: object
    v1GetGithubRepoStatusResponse:
      properties:
        defaultBranch:
          type: string
        grantAccessUrl:
          type: string
        hasAccess:
          type: boolean
      type: object
    v1GetGithubUserStatusResponse:
      properties:
        accessToken:
          type: string
        account:
          type: string
        grantAccessUrl:
          type: string
        hasAccess:
          type: boolean
        organizationInstallationPermissions:
          additionalProperties:
            $ref: '#/components/schemas/v1GithubPermission'
          type: object
        orgs:
          description: 'DEPRECATED: Use organization_installation_permissions instead.'
          items:
            type: string
          type: array
        userInstallationPermission:
          $ref: '#/components/schemas/v1GithubPermission'
      type: object
    v1GetIFrameResponse:
      properties:
        accessToken:
          type: string
        iframeSrc:
          type: string
        instanceId:
          type: string
        runtimeHost:
          type: string
        ttlSeconds:
          format: int64
          type: integer
      type: object
    v1GetOrganizationMemberUserResponse:
      properties:
        member:
          $ref: '#/components/schemas/v1OrganizationMemberUser'
      type: object
    v1GetOrganizationNameForDomainResponse:
      properties:
        name:
          type: string
      type: object
    v1GetOrganizationResponse:
      properties:
        organization:
          $ref: '#/components/schemas/v1Organization'
        permissions:
          $ref: '#/components/schemas/v1OrganizationPermissions'
      type: object
    v1GetPaymentsPortalURLResponse:
      properties:
        url:
          type: string
      type: object
    v1GetProjectAccessRequestResponse:
      properties:
        email:
          type: string
      type: object
    v1GetProjectByIDResponse:
      properties:
        project:
          $ref: '#/components/schemas/v1Project'
      type: object
    v1GetProjectResponse:
      properties:
        jwt:
          type: string
        prodDeployment:
          $ref: '#/components/schemas/v1Deployment'
        project:
          $ref: '#/components/schemas/v1Project'
        projectPermissions:
          $ref: '#/components/schemas/v1ProjectPermissions'
      type: object
    v1GetProjectVariablesResponse:
      properties:
        variables:
          items:
            $ref: '#/components/schemas/v1ProjectVariable'
          type: array
        variablesMap:
          additionalProperties:
            type: string
          description: |-
            Deprecated: Populated for backwards compatibility.
            (Renamed from "variables" to "variables_map").
          type: object
      type: object
    v1GetRepoMetaResponse:
      properties:
        archiveCreatedOn:
          description: The creation time of the archive returned from archive_download_url.
          format: date-time
          type: string
        archiveDownloadUrl:
          description: >-
            Signed URL for downloading a tarball of project files. If this is
            set, the git_* fields will be empty (and vice versa).
          type: string
        archiveId:
          description: A stable ID for the archive returned from archive_download_url.
          type: string
        expiresOn:
          description: >-
            How long the returned config is valid for. Clients should call
            GetRepoMeta again after this time.
          format: date-time
          type: string
        gitBranch:
          description: The branch to use for the deployment.
          type: string
        gitEditBranch:
          description: >-
            A unique branch name generated for temporary/ephemeral use in edit
            mode where files may be mutated.

            This enables checkpointing progress across hibernations and also
            more easily pinning to a specific commit of the base branch to delay
            conflict resolution.
          type: string
        gitSubpath:
          description: >-
            Optional subpath within the Git repository to use as the project
            root.
          type: string
        gitUrl:
          description: |-
            Git remote for cloning (and maybe pushing) a Git repository.
            The URL uses HTTPS with embedded username/password.
          type: string
        lastUpdatedOn:
          description: >-
            When the returned config was last modified. This covers all fields
            in the response except the ephemeral credentials embedded in git_url
            and archive_download_url.
          format: date-time
          type: string
      type: object
    v1GetReportMetaResponse:
      properties:
        recipientUrls:
          additionalProperties:
            $ref: '#/components/schemas/v1GetReportMetaResponseURLs'
          type: object
      type: object
    v1GetReportMetaResponseURLs:
      properties:
        editUrl:
          type: string
        exportUrl:
          type: string
        openUrl:
          type: string
        unsubscribeUrl:
          type: string
      type: object
    v1GetServiceResponse:
      properties:
        projectMemberships:
          items:
            $ref: '#/components/schemas/v1ProjectMemberService'
          title: All projects that the service is a member of
          type: array
        service:
          $ref: '#/components/schemas/v1OrganizationMemberService'
      type: object
    v1GetUserResponse:
      properties:
        user:
          $ref: '#/components/schemas/v1User'
      type: object
    v1GetUsergroupResponse:
      properties:
        nextPageToken:
          type: string
        usergroup:
          $ref: '#/components/schemas/v1Usergroup'
      type: object
    v1GithubPermission:
      default: GITHUB_PERMISSION_UNSPECIFIED
      enum:
        - GITHUB_PERMISSION_UNSPECIFIED
        - GITHUB_PERMISSION_READ
        - GITHUB_PERMISSION_WRITE
      type: string
    v1HibernateProjectResponse:
      type: object
    v1IssueMagicAuthTokenResponse:
      properties:
        token:
          type: string
        url:
          type: string
      type: object
    v1IssueRepresentativeAuthTokenRequest:
      properties:
        email:
          type: string
        ttlMinutes:
          format: int64
          type: string
      type: object
    v1IssueRepresentativeAuthTokenResponse:
      properties:
        token:
          type: string
      type: object
    v1IssueServiceAuthTokenResponse:
      properties:
        token:
          type: string
      type: object
    v1IssueUserAuthTokenResponse:
      properties:
        token:
          description: Newly issued auth token.
          type: string
      type: object
    v1LeaveOrganizationResponse:
      type: object
    v1ListBookmarksResponse:
      properties:
        bookmarks:
          items:
            $ref: '#/components/schemas/v1Bookmark'
          type: array
      type: object
    v1ListDeploymentsResponse:
      properties:
        deployments:
          items:
            $ref: '#/components/schemas/v1Deployment'
          type: array
      type: object
    v1ListGithubUserReposResponse:
      properties:
        repos:
          items:
            $ref: '#/components/schemas/ListGithubUserReposResponseRepo'
          type: array
      type: object
    v1ListMagicAuthTokensResponse:
      properties:
        nextPageToken:
          type: string
        tokens:
          items:
            $ref: '#/components/schemas/v1MagicAuthToken'
          type: array
      type: object
    v1ListOrganizationBillingIssuesResponse:
      properties:
        issues:
          items:
            $ref: '#/components/schemas/v1BillingIssue'
          type: array
      type: object
    v1ListOrganizationInvitesResponse:
      properties:
        invites:
          items:
            $ref: '#/components/schemas/v1OrganizationInvite'
          type: array
        nextPageToken:
          type: string
        totalCount:
          format: int64
          title: Total number of invites in the organization
          type: integer
      type: object
    v1ListOrganizationMemberUsergroupsResponse:
      properties:
        members:
          items:
            $ref: '#/components/schemas/v1MemberUsergroup'
          type: array
        nextPageToken:
          type: string
      type: object
    v1ListOrganizationMemberUsersResponse:
      properties:
        members:
          items:
            $ref: '#/components/schemas/v1OrganizationMemberUser'
          type: array
        nextPageToken:
          type: string
        totalCount:
          format: int64
          title: Total number of members in the organization
          type: integer
      type: object
    v1ListOrganizationsResponse:
      properties:
        nextPageToken:
          type: string
        organizations:
          items:
            $ref: '#/components/schemas/v1Organization'
          type: array
      type: object
    v1ListProjectInvitesResponse:
      properties:
        invites:
          items:
            $ref: '#/components/schemas/v1ProjectInvite'
          type: array
        nextPageToken:
          type: string
      type: object
    v1ListProjectMemberServicesResponse:
      properties:
        services:
          items:
            $ref: '#/components/schemas/v1ProjectMemberService'
          type: array
      type: object
    v1ListProjectMemberUsergroupsResponse:
      properties:
        members:
          items:
            $ref: '#/components/schemas/v1MemberUsergroup'
          type: array
        nextPageToken:
          type: string
      type: object
    v1ListProjectMemberUsersResponse:
      properties:
        members:
          items:
            $ref: '#/components/schemas/v1ProjectMemberUser'
          type: array
        nextPageToken:
          type: string
      type: object
    v1ListProjectWhitelistedDomainsResponse:
      properties:
        domains:
          items:
            $ref: '#/components/schemas/v1WhitelistedDomain'
          type: array
      type: object
    v1ListProjectsForFingerprintResponse:
      properties:
        projects:
          items:
            $ref: '#/components/schemas/v1Project'
          type: array
        unauthorizedProject:
          description: >-
            unauthorized_project is the name of a project that matches the
            git_remote+sub_path but the caller does not have access to.
          type: string
      type: object
    v1ListProjectsForOrganizationAndUserResponse:
      properties:
        nextPageToken:
          type: string
        projects:
          items:
            $ref: '#/components/schemas/v1Project'
          type: array
      type: object
    v1ListProjectsForOrganizationResponse:
      properties:
        nextPageToken:
          type: string
        projects:
          items:
            $ref: '#/components/schemas/v1Project'
          type: array
      type: object
    v1ListProjectsForUserByNameResponse:
      properties:
        projects:
          items:
            $ref: '#/components/schemas/v1Project'
          type: array
      type: object
    v1ListPublicBillingPlansResponse:
      properties:
        plans:
          items:
            $ref: '#/components/schemas/v1BillingPlan'
          type: array
      type: object
    v1ListRolesResponse:
      properties:
        organizationRoles:
          items:
            $ref: '#/components/schemas/v1OrganizationRole'
          type: array
        projectRoles:
          items:
            $ref: '#/components/schemas/v1ProjectRole'
          type: array
      type: object
    v1ListServiceAuthTokensResponse:
      properties:
        tokens:
          items:
            $ref: '#/components/schemas/v1ServiceToken'
          type: array
      type: object
    v1ListServicesResponse:
      properties:
        services:
          items:
            $ref: '#/components/schemas/v1OrganizationMemberService'
          type: array
      type: object
    v1ListSuperusersResponse:
      properties:
        users:
          items:
            $ref: '#/components/schemas/v1User'
          type: array
      type: object
    v1ListUserAuthTokensResponse:
      properties:
        nextPageToken:
          description: >-
            Page token for the next page of results. If empty, there are no more
            pages.
          type: string
        tokens:
          description: List of auth tokens for the user.
          items:
            $ref: '#/components/schemas/v1UserAuthToken'
          type: array
      type: object
    v1ListUsergroupMemberUsersResponse:
      properties:
        members:
          items:
            $ref: '#/components/schemas/v1UsergroupMemberUser'
          type: array
        nextPageToken:
          type: string
      type: object
    v1ListUsergroupsForOrganizationAndUserResponse:
      properties:
        nextPageToken:
          type: string
        usergroups:
          items:
            $ref: '#/components/schemas/v1Usergroup'
          type: array
      type: object
    v1ListWhitelistedDomainsResponse:
      properties:
        domains:
          items:
            $ref: '#/components/schemas/v1WhitelistedDomain'
          type: array
      type: object
    v1MagicAuthToken:
      properties:
        attributes:
          type: object
        createdByUserEmail:
          type: string
        createdByUserId:
          type: string
        createdOn:
          format: date-time
          type: string
        displayName:
          type: string
        expiresOn:
          format: date-time
          type: string
        fields:
          items:
            type: string
          type: array
        filter:
          $ref: '#/components/schemas/v1Expression'
        id:
          type: string
        projectId:
          type: string
        resourceName:
          type: string
        resourceType:
          type: string
        resources:
          items:
            $ref: '#/components/schemas/v1ResourceName'
          type: array
        state:
          type: string
        token:
          type: string
        url:
          type: string
        usedOn:
          format: date-time
          type: string
      type: object
    v1MemberUsergroup:
      properties:
        createdOn:
          format: date-time
          type: string
        groupId:
          type: string
        groupManaged:
          type: boolean
        groupName:
          type: string
        roleName:
          type: string
        updatedOn:
          format: date-time
          type: string
        usersCount:
          format: int64
          type: integer
      type: object
    v1Organization:
      properties:
        billingCustomerId:
          type: string
        billingEmail:
          type: string
        billingPlanDisplayName:
          type: string
        billingPlanName:
          type: string
        createdOn:
          format: date-time
          type: string
        customDomain:
          type: string
        defaultProjectRoleId:
          type: string
        description:
          type: string
        displayName:
          type: string
        faviconUrl:
          type: string
        id:
          type: string
        logoUrl:
          type: string
        name:
          title: Globally unique
          type: string
        paymentCustomerId:
          type: string
        quotas:
          $ref: '#/components/schemas/v1OrganizationQuotas'
        thumbnailUrl:
          type: string
        updatedOn:
          format: date-time
          type: string
      type: object
    v1OrganizationInvite:
      properties:
        email:
          type: string
        invitedBy:
          type: string
        roleName:
          type: string
      type: object
    v1OrganizationMemberService:
      properties:
        attributes:
          type: object
        createdOn:
          format: date-time
          type: string
        hasProjectRoles:
          description: >-
            True if the user has a project role in any project in the
            organization.
          type: boolean
        id:
          type: string
        name:
          type: string
        orgId:
          type: string
        orgName:
          type: string
        roleName:
          type: string
        updatedOn:
          format: date-time
          type: string
      type: object
    v1OrganizationMemberUser:
      properties:
        attributes:
          type: object
        createdOn:
          format: date-time
          type: string
        projectsCount:
          format: int64
          type: integer
        roleName:
          type: string
        updatedOn:
          format: date-time
          type: string
        userEmail:
          type: string
        userId:
          type: string
        userName:
          type: string
        userPhotoUrl:
          type: string
        usergroupsCount:
          format: int64
          type: integer
      type: object
    v1OrganizationPermissions:
      properties:
        admin:
          type: boolean
        createProjects:
          type: boolean
        guest:
          type: boolean
        manageOrg:
          type: boolean
        manageOrgAdmins:
          type: boolean
        manageOrgMembers:
          type: boolean
        manageProjects:
          type: boolean
        readOrg:
          type: boolean
        readOrgMembers:
          type: boolean
        readProjects:
          type: boolean
      type: object
    v1OrganizationQuotas:
      properties:
        deployments:
          format: int32
          type: integer
        outstandingInvites:
          format: int32
          type: integer
        projects:
          format: int32
          type: integer
        slotsPerDeployment:
          format: int32
          type: integer
        slotsTotal:
          format: int32
          type: integer
        storageLimitBytesPerDeployment:
          format: int64
          type: string
      type: object
    v1OrganizationRole:
      properties:
        id:
          type: string
        name:
          type: string
        permissions:
          $ref: '#/components/schemas/v1OrganizationPermissions'
      type: object
    v1PingResponse:
      properties:
        time:
          format: date-time
          type: string
        version:
          type: string
      type: object
    v1Project:
      properties:
        annotations:
          additionalProperties:
            type: string
          type: object
        archiveAssetId:
          type: string
        createdByUserId:
          type: string
        createdOn:
          format: date-time
          type: string
        description:
          type: string
        devSlots:
          format: int64
          type: string
        directoryName:
          type: string
        frontendUrl:
          description: 'Note: Does NOT incorporate the parent org''s custom domain.'
          type: string
        gitRemote:
          type: string
        id:
          type: string
        managedGitId:
          description: >-
            managed_git_id is set if the project is connected to a rill-managed
            git repo.
          type: string
        name:
          title: Unique in organization
          type: string
        orgId:
          type: string
        orgName:
          type: string
        prodBranch:
          type: string
        prodDeploymentId:
          type: string
        prodSlots:
          format: int64
          type: string
        prodTtlSeconds:
          format: int64
          type: string
        prodVersion:
          type: string
        provisioner:
          type: string
        public:
          type: boolean
        subpath:
          type: string
        updatedOn:
          format: date-time
          type: string
      type: object
    v1ProjectInvite:
      properties:
        email:
          type: string
        invitedBy:
          type: string
        orgRoleName:
          type: string
        roleName:
          type: string
      type: object
    v1ProjectMemberService:
      properties:
        attributes:
          type: object
        createdOn:
          format: date-time
          type: string
        id:
          type: string
        name:
          type: string
        orgId:
          type: string
        orgName:
          type: string
        orgRoleName:
          type: string
        projectId:
          type: string
        projectName:
          type: string
        projectRoleName:
          type: string
        updatedOn:
          format: date-time
          type: string
      type: object
    v1ProjectMemberUser:
      properties:
        createdOn:
          format: date-time
          type: string
        orgRoleName:
          type: string
        roleName:
          type: string
        updatedOn:
          format: date-time
          type: string
        userEmail:
          type: string
        userId:
          type: string
        userName:
          type: string
        userPhotoUrl:
          type: string
      type: object
    v1ProjectPermissions:
      properties:
        admin:
          type: boolean
        createAlerts:
          type: boolean
        createBookmarks:
          type: boolean
        createMagicAuthTokens:
          type: boolean
        createReports:
          type: boolean
        manageAlerts:
          type: boolean
        manageBookmarks:
          type: boolean
        manageDev:
          type: boolean
        manageMagicAuthTokens:
          type: boolean
        manageProd:
          type: boolean
        manageProject:
          type: boolean
        manageProjectAdmins:
          type: boolean
        manageProjectMembers:
          type: boolean
        manageProvisionerResources:
          type: boolean
        manageReports:
          type: boolean
        readDev:
          type: boolean
        readDevStatus:
          type: boolean
        readProd:
          type: boolean
        readProdStatus:
          type: boolean
        readProject:
          type: boolean
        readProjectMembers:
          type: boolean
        readProvisionerResources:
          type: boolean
      type: object
    v1ProjectRole:
      properties:
        id:
          type: string
        name:
          type: string
        permissions:
          $ref: '#/components/schemas/v1ProjectPermissions'
      type: object
    v1ProjectVariable:
      properties:
        createdOn:
          description: Timestamp when the variable was created.
          format: date-time
          type: string
        environment:
          description: |-
            Environment the variable is set for.
            If empty, the variable is shared for all environments.
          type: string
        id:
          description: Internal ID.
          type: string
        name:
          description: Variable name (case insensitive).
          type: string
        updatedByUserId:
          description: User ID that most recently updated the variable. May be empty.
          type: string
        updatedOn:
          description: Timestamp when the variable was last updated.
          format: date-time
          type: string
        value:
          description: Variable value.
          type: string
      type: object
    v1ProvisionResponse:
      properties:
        resource:
          $ref: '#/components/schemas/v1ProvisionerResource'
      type: object
    v1ProvisionerResource:
      properties:
        args:
          type: object
        config:
          type: object
        deploymentId:
          type: string
        id:
          type: string
        name:
          type: string
        type:
          type: string
      type: object
    v1PullVirtualRepoResponse:
      properties:
        files:
          description: List of virtual files ordered by update time, most recent last.
          items:
            $ref: '#/components/schemas/v1VirtualFile'
          type: array
        nextPageToken:
          description: Next page token for pagination.
          type: string
      type: object
    v1Quotas:
      properties:
        deployments:
          type: string
        outstandingInvites:
          type: string
        projects:
          type: string
        slotsPerDeployment:
          type: string
        slotsTotal:
          type: string
        storageLimitBytesPerDeployment:
          type: string
      type: object
    v1RecordEventsRequest:
      properties:
        events:
          items:
            type: object
          type: array
      type: object
    v1RecordEventsResponse:
      type: object
    v1RedeployProjectResponse:
      type: object
    v1RemoveBookmarkResponse:
      type: object
    v1RemoveOrganizationMemberServiceResponse:
      type: object
    v1RemoveOrganizationMemberUserResponse:
      type: object
    v1RemoveOrganizationMemberUsergroupResponse:
      type: object
    v1RemoveProjectMemberServiceResponse:
      type: object
    v1RemoveProjectMemberUserResponse:
      type: object
    v1RemoveProjectMemberUsergroupResponse:
      type: object
    v1RemoveProjectWhitelistedDomainResponse:
      type: object
    v1RemoveUsergroupMemberUserResponse:
      type: object
    v1RemoveWhitelistedDomainResponse:
      type: object
    v1RenameUsergroupResponse:
      type: object
    v1RenewBillingSubscriptionResponse:
      properties:
        organization:
          $ref: '#/components/schemas/v1Organization'
        subscription:
          $ref: '#/components/schemas/v1Subscription'
      type: object
    v1ReportOptions:
      properties:
        canvas:
          type: string
        displayName:
          type: string
        emailRecipients:
          items:
            type: string
          type: array
        explore:
          title: either canvas or explore should be set
          type: string
        exportFormat:
          $ref: '#/components/schemas/v1ExportFormat'
        exportIncludeHeader:
          type: boolean
        exportLimit:
          format: uint64
          type: string
        filter:
          $ref: '#/components/schemas/v1Expression'
        intervalDuration:
          type: string
        queryArgsJson:
          type: string
        queryName:
          type: string
        refreshCron:
          type: string
        refreshTimeZone:
          type: string
        slackChannels:
          items:
            type: string
          type: array
        slackUsers:
          items:
            type: string
          type: array
        slackWebhooks:
          items:
            type: string
          type: array
        webOpenMode:
          title: >-
            web_open_mode is used to determine how to create or disable open
            link for the report

            - send "recipient" for older reports (old behaviour)

            - send "creator" for reports that should be opened with creators
            permissions

            - send "none" for reports that should not be opened or older reports
            which do not have any web_open_path

            - send "filtered" for reports that should be opened with creators
            permissions but with locked filters
          type: string
        webOpenPath:
          description: >-
            Annotation for the subpath of <UI host>/org/project to open for the
            report.
          type: string
        webOpenState:
          description: Annotation for the base64-encoded UI state to open for the report.
          type: string
      type: object
    v1RequestProjectAccessResponse:
      type: object
    v1ResourceName:
      properties:
        name:
          type: string
        type:
          type: string
      type: object
    v1RevokeCurrentAuthTokenResponse:
      type: object
    v1RevokeMagicAuthTokenResponse:
      type: object
    v1RevokeRepresentativeAuthTokensResponse:
      type: object
    v1RevokeServiceAuthTokenResponse:
      type: object
    v1RevokeUserAuthTokenResponse:
      type: object
    v1SearchProjectNamesResponse:
      properties:
        names:
          items:
            type: string
          type: array
        nextPageToken:
          type: string
      type: object
    v1SearchProjectUsersResponse:
      properties:
        nextPageToken:
          type: string
        users:
          items:
            $ref: '#/components/schemas/v1User'
          type: array
      type: object
    v1SearchUsersResponse:
      properties:
        nextPageToken:
          type: string
        users:
          items:
            $ref: '#/components/schemas/v1User'
          type: array
      type: object
    v1Service:
      properties:
        attributes:
          type: object
        createdOn:
          format: date-time
          type: string
        id:
          type: string
        name:
          type: string
        orgId:
          type: string
        orgName:
          type: string
        updatedOn:
          format: date-time
          type: string
      type: object
    v1ServiceToken:
      properties:
        createdOn:
          format: date-time
          type: string
        expiresOn:
          format: date-time
          type: string
        id:
          type: string
        prefix:
          type: string
      type: object
    v1SetOrganizationMemberServiceRoleResponse:
      type: object
    v1SetOrganizationMemberUserRoleResponse:
      type: object
    v1SetOrganizationMemberUsergroupRoleResponse:
      type: object
    v1SetProjectMemberServiceRoleResponse:
      type: object
    v1SetProjectMemberUserRoleResponse:
      type: object
    v1SetProjectMemberUsergroupRoleResponse:
      type: object
    v1SetSuperuserRequest:
      properties:
        email:
          type: string
        superuser:
          type: boolean
      type: object
    v1SetSuperuserResponse:
      type: object
    v1StartDeploymentResponse:
      properties:
        deployment:
          $ref: '#/components/schemas/v1Deployment'
      type: object
    v1StopDeploymentResponse:
      properties:
        deploymentId:
          type: string
      type: object
    v1Subquery:
      properties:
        dimension:
          type: string
        having:
          $ref: '#/components/schemas/v1Expression'
        measures:
          items:
            type: string
          type: array
        where:
          $ref: '#/components/schemas/v1Expression'
      type: object
    v1Subscription:
      properties:
        currentBillingCycleEndDate:
          format: date-time
          type: string
        currentBillingCycleStartDate:
          format: date-time
          type: string
        endDate:
          format: date-time
          type: string
        id:
          type: string
        plan:
          $ref: '#/components/schemas/v1BillingPlan'
        startDate:
          format: date-time
          type: string
        trialEndDate:
          format: date-time
          type: string
      type: object
    v1SudoDeleteOrganizationBillingIssueResponse:
      type: object
    v1SudoExtendTrialRequest:
      properties:
        days:
          format: int32
          type: integer
        org:
          type: string
      type: object
    v1SudoExtendTrialResponse:
      properties:
        trialEnd:
          format: date-time
          type: string
      type: object
    v1SudoGetResourceResponse:
      properties:
        deployment:
          $ref: '#/components/schemas/v1Deployment'
        instance:
          $ref: '#/components/schemas/v1Deployment'
        org:
          $ref: '#/components/schemas/v1Organization'
        project:
          $ref: '#/components/schemas/v1Project'
        user:
          $ref: '#/components/schemas/v1User'
      type: object
    v1SudoIssueRuntimeManagerTokenRequest:
      properties:
        host:
          type: string
      type: object
    v1SudoIssueRuntimeManagerTokenResponse:
      properties:
        token:
          type: string
      type: object
    v1SudoTriggerBillingRepairRequest:
      type: object
    v1SudoTriggerBillingRepairResponse:
      type: object
    v1SudoUpdateAnnotationsRequest:
      properties:
        annotations:
          additionalProperties:
            type: string
          type: object
        org:
          type: string
        project:
          type: string
      type: object
    v1SudoUpdateAnnotationsResponse:
      properties:
        project:
          $ref: '#/components/schemas/v1Project'
      type: object
    v1SudoUpdateOrganizationBillingCustomerRequest:
      properties:
        billingCustomerId:
          type: string
        org:
          type: string
        paymentCustomerId:
          type: string
      type: object
    v1SudoUpdateOrganizationBillingCustomerResponse:
      properties:
        organization:
          $ref: '#/components/schemas/v1Organization'
        subscription:
          $ref: '#/components/schemas/v1Subscription'
      type: object
    v1SudoUpdateOrganizationCustomDomainRequest:
      properties:
        customDomain:
          type: string
        name:
          type: string
      type: object
    v1SudoUpdateOrganizationCustomDomainResponse:
      properties:
        organization:
          $ref: '#/components/schemas/v1Organization'
      type: object
    v1SudoUpdateOrganizationQuotasRequest:
      properties:
        deployments:
          format: int32
          type: integer
        org:
          type: string
        outstandingInvites:
          format: int32
          type: integer
        projects:
          format: int32
          type: integer
        slotsPerDeployment:
          format: int32
          type: integer
        slotsTotal:
          format: int32
          type: integer
        storageLimitBytesPerDeployment:
          format: int64
          type: string
      type: object
    v1SudoUpdateOrganizationQuotasResponse:
      properties:
        organization:
          $ref: '#/components/schemas/v1Organization'
      type: object
    v1SudoUpdateUserQuotasRequest:
      properties:
        email:
          type: string
        singleuserOrgs:
          format: int32
          type: integer
        trialOrgs:
          format: int32
          type: integer
      type: object
    v1SudoUpdateUserQuotasResponse:
      properties:
        user:
          $ref: '#/components/schemas/v1User'
      type: object
    v1Tool:
      properties:
        description:
          title: A human-readable description of the tool
          type: string
        inputSchema:
          title: >-
            JSON Schema defining the expected parameters for the tool (as JSON
            string)
          type: string
        name:
          title: The name of the tool
          type: string
      title: Tool represents a tool definition for AI usage
      type: object
    v1ToolCall:
      properties:
        id:
          type: string
        input:
          type: object
        name:
          type: string
      title: Tool call specification
      type: object
    v1ToolResult:
      properties:
        content:
          type: string
        id:
          type: string
        isError:
          type: boolean
      title: Tool execution result
      type: object
    v1TriggerReconcileResponse:
      type: object
    v1TriggerRedeployRequest:
      properties:
        deploymentId:
          type: string
        org:
          title: |-
            It's sufficient to pass org/project name OR deployment_id.
            (To enable rehydrating hibernated projects.)
          type: string
        project:
          type: string
      type: object
    v1TriggerRedeployResponse:
      type: object
    v1TriggerRefreshSourcesResponse:
      type: object
    v1TriggerReportResponse:
      type: object
    v1UnsubscribeAlertResponse:
      type: object
    v1UnsubscribeReportResponse:
      type: object
    v1UpdateBillingSubscriptionResponse:
      properties:
        organization:
          $ref: '#/components/schemas/v1Organization'
        subscription:
          $ref: '#/components/schemas/v1Subscription'
      type: object
    v1UpdateBookmarkRequest:
      properties:
        bookmarkId:
          type: string
        default:
          type: boolean
        description:
          type: string
        displayName:
          type: string
        shared:
          type: boolean
        urlSearch:
          type: string
      type: object
    v1UpdateBookmarkResponse:
      type: object
    v1UpdateOrganizationMemberUserAttributesResponse:
      type: object
    v1UpdateOrganizationResponse:
      properties:
        organization:
          $ref: '#/components/schemas/v1Organization'
      type: object
    v1UpdateProjectResponse:
      properties:
        project:
          $ref: '#/components/schemas/v1Project'
      type: object
    v1UpdateProjectVariablesResponse:
      properties:
        variables:
          description: Variables that were created or updated by the request.
          items:
            $ref: '#/components/schemas/v1ProjectVariable'
          type: array
      type: object
    v1UpdateServiceResponse:
      properties:
        service:
          $ref: '#/components/schemas/v1Service'
      type: object
    v1UpdateUserPreferencesRequest:
      properties:
        preferences:
          $ref: '#/components/schemas/v1UserPreferences'
      type: object
    v1UpdateUserPreferencesResponse:
      properties:
        preferences:
          $ref: '#/components/schemas/v1UserPreferences'
      type: object
    v1User:
      properties:
        createdOn:
          format: date-time
          type: string
        displayName:
          type: string
        email:
          type: string
        id:
          type: string
        photoUrl:
          type: string
        quotas:
          $ref: '#/components/schemas/v1UserQuotas'
        updatedOn:
          format: date-time
          type: string
      type: object
    v1UserAuthToken:
      properties:
        attributes:
          type: object
        authClientDisplayName:
          type: string
        authClientId:
          type: string
        createdOn:
          format: date-time
          type: string
        displayName:
          type: string
        expiresOn:
          format: date-time
          type: string
        id:
          type: string
        prefix:
          type: string
        representingUserId:
          type: string
        usedOn:
          format: date-time
          type: string
      type: object
    v1UserPreferences:
      properties:
        timeZone:
          type: string
      type: object
    v1UserQuotas:
      properties:
        singleuserOrgs:
          format: int32
          type: integer
        trialOrgs:
          format: int32
          type: integer
      type: object
    v1Usergroup:
      properties:
        createdOn:
          format: date-time
          type: string
        groupDescription:
          type: string
        groupId:
          type: string
        groupName:
          type: string
        managed:
          type: boolean
        updatedOn:
          format: date-time
          type: string
      type: object
    v1UsergroupMemberUser:
      properties:
        createdOn:
          format: date-time
          type: string
        updatedOn:
          format: date-time
          type: string
        userEmail:
          type: string
        userId:
          type: string
        userName:
          type: string
        userPhotoUrl:
          type: string
      type: object
    v1VirtualFile:
      properties:
        data:
          format: byte
          type: string
        deleted:
          type: boolean
        path:
          type: string
        updatedOn:
          format: date-time
          type: string
      type: object
    v1WhitelistedDomain:
      properties:
        domain:
          type: string
        role:
          type: string
      type: object
externalDocs:
  description: Rill API Documentation
  url: https://docs.rilldata.com
info:
  description: >-
    Rill Admin API enables programmatic management of Rill Cloud resources,
    including organizations, projects, and user access. It provides endpoints
    for creating, updating, and deleting these resources, as well as managing
    authentication and permissions.
  title: Rill Admin API
  version: v0.75.5
openapi: 3.0.3
paths:
  /v1/ai/complete: {}
  /v1/billing/metrics-project-credentials: {}
  /v1/billing/plans: {}
  /v1/deployments/{deploymentId}: {}
  /v1/deployments/{deploymentId}/credentials: {}
  /v1/deployments/{deploymentId}/provision: {}
  /v1/deployments/{deploymentId}/reconcile: {}
  /v1/deployments/{deploymentId}/refresh: {}
  /v1/deployments/{deploymentId}/start: {}
  /v1/deployments/{deploymentId}/stop: {}
  /v1/github/repositories: {}
  /v1/github/user: {}
  /v1/github/user/repositories: {}
  /v1/magic-tokens/{tokenId}: {}
  /v1/magic-tokens/current: {}
  /v1/organization-for-domain/{domain}: {}
  /v1/orgs:
    get:
      operationId: AdminService_ListOrganizations
      parameters:
        - in: query
          name: pageSize
          schema:
            format: int64
            type: integer
        - in: query
          name: pageToken
          schema:
            type: string
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/v1ListOrganizationsResponse'
          description: A successful response.
        default:
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/rpcStatus'
          description: An unexpected error response.
      summary: >-
        ListOrganizations lists all the organizations currently managed by the
        admin
      x-visibility: public
    post:
      operationId: AdminService_CreateOrganization
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/v1CreateOrganizationRequest'
        required: true
        x-originalParamName: body
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/v1CreateOrganizationResponse'
          description: A successful response.
        default:
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/rpcStatus'
          description: An unexpected error response.
      summary: CreateOrganization creates a new organization
      x-visibility: public
  /v1/orgs/{org}:
    delete:
      operationId: AdminService_DeleteOrganization
      parameters:
        - in: path
          name: org
          required: true
          schema:
            type: string
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/v1DeleteOrganizationResponse'
          description: A successful response.
        default:
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/rpcStatus'
          description: An unexpected error response.
      summary: DeleteOrganization deletes an organization
      x-visibility: public
    get:
      operationId: AdminService_GetOrganization
      parameters:
        - in: path
          name: org
          required: true
          schema:
            type: string
        - in: query
          name: superuserForceAccess
          schema:
            type: boolean
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/v1GetOrganizationResponse'
          description: A successful response.
        default:
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/rpcStatus'
          description: An unexpected error response.
      summary: GetOrganization returns information about a specific organization
      x-visibility: public
    patch:
      operationId: AdminService_UpdateOrganization
      parameters:
        - in: path
          name: org
          required: true
          schema:
            type: string
      requestBody:
        content:
          application/json:
            schema:
              properties:
                billingEmail:
                  type: string
                defaultProjectRole:
                  type: string
                description:
                  type: string
                displayName:
                  type: string
                faviconAssetId:
                  type: string
                logoAssetId:
                  type: string
                newName:
                  type: string
                thumbnailAssetId:
                  type: string
              type: object
        required: true
        x-originalParamName: body
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/v1UpdateOrganizationResponse'
          description: A successful response.
        default:
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/rpcStatus'
          description: An unexpected error response.
      summary: UpdateOrganization deletes an organizations
      x-visibility: public
  /v1/orgs/{org}/billing/issues: {}
  /v1/orgs/{org}/billing/payments/portal-url: {}
  /v1/orgs/{org}/billing/subscriptions: {}
  /v1/orgs/{org}/billing/subscriptions/renew: {}
  /v1/orgs/{org}/create-managed-git-repo: {}
  /v1/orgs/{org}/create_asset: {}
  /v1/orgs/{org}/invites:
    get:
      operationId: AdminService_ListOrganizationInvites
      parameters:
        - in: path
          name: org
          required: true
          schema:
            type: string
        - in: query
          name: pageSize
          schema:
            format: int64
            type: integer
        - in: query
          name: pageToken
          schema:
            type: string
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/v1ListOrganizationInvitesResponse'
          description: A successful response.
        default:
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/rpcStatus'
          description: An unexpected error response.
      summary: ListOrganizationInvites lists all the org invites
      x-visibility: public
  /v1/orgs/{org}/members:
    get:
      operationId: AdminService_ListOrganizationMemberUsers
      parameters:
        - in: path
          name: org
          required: true
          schema:
            type: string
        - description: Optionally filter by role
          in: query
          name: role
          schema:
            type: string
        - description: Optionally include counts
          in: query
          name: includeCounts
          schema:
            type: boolean
        - in: query
          name: pageSize
          schema:
            format: int64
            type: integer
        - in: query
          name: pageToken
          schema:
            type: string
        - in: query
          name: superuserForceAccess
          schema:
            type: boolean
        - description: Optional search pattern to filter users by email or display name
          in: query
          name: searchPattern
          schema:
            type: string
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/v1ListOrganizationMemberUsersResponse'
          description: A successful response.
        default:
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/rpcStatus'
          description: An unexpected error response.
      summary: ListOrganizationMemberUsers lists all the org members
      x-visibility: public
    post:
      operationId: AdminService_AddOrganizationMemberUser
      parameters:
        - in: path
          name: org
          required: true
          schema:
            type: string
      requestBody:
        content:
          application/json:
            schema:
              properties:
                email:
                  type: string
                role:
                  type: string
                superuserForceAccess:
                  type: boolean
              type: object
        required: true
        x-originalParamName: body
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/v1AddOrganizationMemberUserResponse'
          description: A successful response.
        default:
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/rpcStatus'
          description: An unexpected error response.
      summary: AddOrganizationMemberUser adds a user to the organization
      x-visibility: public
  /v1/orgs/{org}/members/{email}:
    delete:
      operationId: AdminService_RemoveOrganizationMemberUser
      parameters:
        - in: path
          name: org
          required: true
          schema:
            type: string
        - in: path
          name: email
          required: true
          schema:
            type: string
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/v1RemoveOrganizationMemberUserResponse'
          description: A successful response.
        default:
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/rpcStatus'
          description: An unexpected error response.
      summary: RemoveOrganizationMemberUser removes member from the organization
      x-visibility: public
  /v1/orgs/{org}/members/{email}/attributes: {}
  /v1/orgs/{org}/members/current: {}
  /v1/orgs/{org}/project/{project}/usergroups: {}
  /v1/orgs/{org}/projects:
    get:
      operationId: AdminService_ListProjectsForOrganization
      parameters:
        - in: path
          name: org
          required: true
          schema:
            type: string
        - in: query
          name: pageSize
          schema:
            format: int64
            type: integer
        - in: query
          name: pageToken
          schema:
            type: string
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/v1ListProjectsForOrganizationResponse'
          description: A successful response.
        default:
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/rpcStatus'
          description: An unexpected error response.
      summary: >-
        ListProjectsForOrganization lists all the projects currently available
        for given organizations.
      x-visibility: public
    post:
      operationId: AdminService_CreateProject
      parameters:
        - in: path
          name: org
          required: true
          schema:
            type: string
      requestBody:
        content:
          application/json:
            schema:
              properties:
                archiveAssetId:
                  description: >-
                    archive_asset_id is set for projects whose project files are
                    not stored in github but are managed by rill.
                  type: string
                description:
                  type: string
                directoryName:
                  description: >-
                    directory_name should be the most recently observed local
                    directory name for the project.

                    See ListProjectsForFingerprint for more context.
                  type: string
                gitRemote:
                  description: >-
                    git_remote is set for projects whose project files are
                    stored in Git.

                    It currently only supports Github remotes. It should be a
                    HTTPS remote ending in .git for github.com.

                    Either git_remote or archive_asset_id should be set.
                  type: string
                prodBranch:
                  type: string
                prodSlots:
                  format: int64
                  type: string
                prodVersion:
                  type: string
                project:
                  type: string
                provisioner:
                  type: string
                public:
                  type: boolean
                skipDeploy:
                  type: boolean
                subpath:
                  type: string
              type: object
        required: true
        x-originalParamName: body
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/v1CreateProjectResponse'
          description: A successful response.
        default:
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/rpcStatus'
          description: An unexpected error response.
      summary: CreateProject creates a new project
      x-visibility: public
  /v1/orgs/{org}/projects-for-user: {}
  /v1/orgs/{org}/projects/{project}:
    delete:
      operationId: AdminService_DeleteProject
      parameters:
        - in: path
          name: org
          required: true
          schema:
            type: string
        - in: path
          name: project
          required: true
          schema:
            type: string
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/v1DeleteProjectResponse'
          description: A successful response.
        default:
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/rpcStatus'
          description: An unexpected error response.
      summary: DeleteProject deletes an project
      x-visibility: public
    get:
      operationId: AdminService_GetProject
      parameters:
        - in: path
          name: org
          required: true
          schema:
            type: string
        - in: path
          name: project
          required: true
          schema:
            type: string
        - in: query
          name: accessTokenTtlSeconds
          schema:
            format: int64
            type: integer
        - in: query
          name: superuserForceAccess
          schema:
            type: boolean
        - in: query
          name: issueSuperuserToken
          schema:
            type: boolean
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/v1GetProjectResponse'
          description: A successful response.
        default:
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/rpcStatus'
          description: An unexpected error response.
      summary: GetProject returns information about a specific project
      x-visibility: public
    patch:
      operationId: AdminService_UpdateProject
      parameters:
        - in: path
          name: org
          required: true
          schema:
            type: string
        - in: path
          name: project
          required: true
          schema:
            type: string
      requestBody:
        content:
          application/json:
            schema:
              properties:
                archiveAssetId:
                  type: string
                description:
                  type: string
                directoryName:
                  type: string
                gitRemote:
                  type: string
                newName:
                  type: string
                prodBranch:
                  type: string
                prodSlots:
                  format: int64
                  type: string
                prodTtlSeconds:
                  format: int64
                  type: string
                prodVersion:
                  type: string
                provisioner:
                  type: string
                public:
                  type: boolean
                subpath:
                  type: string
                superuserForceAccess:
                  type: boolean
              type: object
        required: true
        x-originalParamName: body
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/v1UpdateProjectResponse'
          description: A successful response.
        default:
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/rpcStatus'
          description: An unexpected error response.
      summary: UpdateProject updates a project
      x-visibility: public
  /v1/orgs/{org}/projects/{project}/alerts: {}
  /v1/orgs/{org}/projects/{project}/alerts/-/yaml: {}
  /v1/orgs/{org}/projects/{project}/alerts/{name}: {}
  /v1/orgs/{org}/projects/{project}/alerts/{name}/unsubscribe: {}
  /v1/orgs/{org}/projects/{project}/alerts/{name}/yaml: {}
  /v1/orgs/{org}/projects/{project}/clone-credentials: {}
  /v1/orgs/{org}/projects/{project}/connect-to-github: {}
  /v1/orgs/{org}/projects/{project}/credentials: {}
  /v1/orgs/{org}/projects/{project}/deployments: {}
  /v1/orgs/{org}/projects/{project}/hibernate: {}
  /v1/orgs/{org}/projects/{project}/iframe: {}
  /v1/orgs/{org}/projects/{project}/invites: {}
  /v1/orgs/{org}/projects/{project}/members: {}
  /v1/orgs/{org}/projects/{project}/members/{email}: {}
  /v1/orgs/{org}/projects/{project}/redeploy: {}
  /v1/orgs/{org}/projects/{project}/reports: {}
  /v1/orgs/{org}/projects/{project}/reports/-/yaml: {}
  /v1/orgs/{org}/projects/{project}/reports/{name}: {}
  /v1/orgs/{org}/projects/{project}/reports/{name}/trigger: {}
  /v1/orgs/{org}/projects/{project}/reports/{name}/unsubscribe: {}
  /v1/orgs/{org}/projects/{project}/request-access: {}
  /v1/orgs/{org}/projects/{project}/services: {}
  /v1/orgs/{org}/projects/{project}/services/{name}: {}
  /v1/orgs/{org}/projects/{project}/services/{name}/role: {}
  /v1/orgs/{org}/projects/{project}/tokens/magic: {}
  /v1/orgs/{org}/projects/{project}/usergroups/{usergroup}/roles: {}
  /v1/orgs/{org}/projects/{project}/users/search: {}
  /v1/orgs/{org}/projects/{project}/variables:
    get:
      operationId: AdminService_GetProjectVariables
      parameters:
        - description: Org the project belongs to.
          in: path
          name: org
          required: true
          schema:
            type: string
        - description: Project to get variables for.
          in: path
          name: project
          required: true
          schema:
            type: string
        - description: >-
            Environment to get the variables for.

            If empty, only variables shared across all environments are
            returned.
          in: query
          name: environment
          schema:
            type: string
        - description: |-
            If true, return variable values for all environments.
            Can't be used together with the "environment" option.
          in: query
          name: forAllEnvironments
          schema:
            type: boolean
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/v1GetProjectVariablesResponse'
          description: A successful response.
        default:
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/rpcStatus'
          description: An unexpected error response.
      summary: GetProjectVariables returns project variables.
      x-visibility: public
  /v1/orgs/{org}/projects/{project}/whitelisted: {}
  /v1/orgs/{org}/projects/{project}/whitelisted/{domain}: {}
  /v1/orgs/{org}/services: {}
  /v1/orgs/{org}/services/{name}: {}
  /v1/orgs/{org}/services/{name}/role: {}
  /v1/orgs/{org}/services/{serviceName}/tokens: {}
  /v1/orgs/{org}/usergroups: {}
  /v1/orgs/{org}/usergroups-for-user: {}
  /v1/orgs/{org}/usergroups/{usergroup}: {}
  /v1/orgs/{org}/usergroups/{usergroup}/members: {}
  /v1/orgs/{org}/usergroups/{usergroup}/members/{email}: {}
  /v1/orgs/{org}/usergroups/{usergroup}/role: {}
  /v1/orgs/{org}/whitelisted: {}
  /v1/orgs/{org}/whitelisted/{domain}: {}
  /v1/ping: {}
  /v1/project-access-request/{id}: {}
  /v1/project-access-request/{id}/approve: {}
  /v1/project-access-request/{id}/deny: {}
  /v1/projects: {}
  /v1/projects-for-fingerprint: {}
  /v1/projects/-/redeploy: {}
  /v1/projects/{id}: {}
  /v1/projects/{projectId}/alerts/meta: {}
  /v1/projects/{projectId}/repo/meta: {}
  /v1/projects/{projectId}/repo/virtual: {}
  /v1/projects/{projectId}/reports/meta: {}
  /v1/roles: {}
  /v1/services/tokens/{tokenId}: {}
  /v1/superuser/billing/repair: {}
  /v1/superuser/deployments/manager-token: {}
  /v1/superuser/members: {}
  /v1/superuser/organization/billing/customer_id: {}
  /v1/superuser/organization/custom-domain: {}
  /v1/superuser/organization/trial/extend: {}
  /v1/superuser/organizations/{org}/billing/issues/{type}: {}
  /v1/superuser/projects/annotations: {}
  /v1/superuser/projects/search: {}
  /v1/superuser/quotas/organization: {}
  /v1/superuser/quotas/user: {}
  /v1/superuser/resource: {}
  /v1/telemetry/events: {}
  /v1/tokens/current: {}
  /v1/tokens/represent: {}
  /v1/users: {}
  /v1/users/-/tokens/{tokenId}: {}
  /v1/users/-/tokens/representing/{email}: {}
  /v1/users/{email}: {}
  /v1/users/{userId}/tokens: {}
  /v1/users/bookmarks: {}
  /v1/users/bookmarks/{bookmarkId}: {}
  /v1/users/current: {}
  /v1/users/preferences: {}
  /v1/users/search: {}
