ConductorOne App API

The App API from ConductorOne — 3 operation(s) for app.

OpenAPI Specification

conductorone-app-api-openapi.yml Raw ↑
openapi: 3.1.0
info:
  description: The ConductorOne API is a HTTP API for managing ConductorOne resources.
  title: ConductorOne Access Conflict App API
  version: 0.1.0-alpha
servers:
- description: The ConductorOne API server for the current tenant.
  url: https://{tenantDomain}.conductor.one
  variables:
    tenantDomain:
      default: example
      description: The domain of the tenant to use for this request.
security:
- bearerAuth: []
  oauth: []
tags:
- name: App
paths:
  /api/v1/apps:
    get:
      description: List all apps.
      operationId: c1.api.app.v1.Apps.List
      parameters:
      - in: query
        name: page_size
        schema:
          description: The pageSize field.
          format: int32
          readOnly: false
          type: integer
      - in: query
        name: page_token
        schema:
          description: The pageToken field.
          readOnly: false
          type: string
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/c1.api.app.v1.ListAppsResponse'
          description: The ListAppsResponse message contains a list of results and a nextPageToken if applicable.
      summary: List
      tags:
      - App
      x-speakeasy-group: Apps
      x-speakeasy-name-override: List
    post:
      description: Create a new manual app without a connector.
      operationId: c1.api.app.v1.Apps.Create
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/c1.api.app.v1.CreateAppRequest'
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/c1.api.app.v1.CreateAppResponse'
          description: Returns the new app's values.
      summary: Create
      tags:
      - App
      x-speakeasy-entity-operation:
        terraform-resource: App#create
      x-speakeasy-group: Apps
      x-speakeasy-name-override: Create
  /api/v1/apps/{id}:
    delete:
      description: Delete an app.
      operationId: c1.api.app.v1.Apps.Delete
      parameters:
      - in: path
        name: id
        required: true
        schema:
          description: The id field.
          readOnly: false
          type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/c1.api.app.v1.DeleteAppRequestInput'
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/c1.api.app.v1.DeleteAppResponse'
          description: Empty response body. Status code indicates success.
      summary: Delete
      tags:
      - App
      x-speakeasy-entity-operation:
        terraform-resource: App#delete
      x-speakeasy-group: Apps
      x-speakeasy-name-override: Delete
    get:
      description: Get an app by ID.
      operationId: c1.api.app.v1.Apps.Get
      parameters:
      - in: path
        name: id
        required: true
        schema:
          description: The id field.
          readOnly: false
          type: string
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/c1.api.app.v1.GetAppResponse'
          description: The GetAppResponse message contains the details of the requested app in the app field.
      summary: Get
      tags:
      - App
      x-speakeasy-entity-operation:
        terraform-datasource: null
        terraform-resource: App#read
      x-speakeasy-group: Apps
      x-speakeasy-name-override: Get
    post:
      description: Update an existing app.
      operationId: c1.api.app.v1.Apps.Update
      parameters:
      - in: path
        name: id
        required: true
        schema:
          description: The ID of the app.
          readOnly: true
          type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/c1.api.app.v1.UpdateAppRequestInput'
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/c1.api.app.v1.UpdateAppResponse'
          description: Returns the updated app's new values.
      summary: Update
      tags:
      - App
      x-speakeasy-entity-operation:
        terraform-resource: App#update
      x-speakeasy-group: Apps
      x-speakeasy-name-override: Update
  /api/v1/search/apps:
    post:
      description: Search apps based on filters specified in the request body.
      operationId: c1.api.app.v1.AppSearch.Search
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/c1.api.app.v1.SearchAppsRequest'
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/c1.api.app.v1.SearchAppsResponse'
          description: The SearchAppsResponse message contains a list of results and a nextPageToken if applicable.
      summary: Search
      tags:
      - App
      x-speakeasy-entity-operation:
        terraform-datasource:
        - App#read
        - Apps#read
        terraform-resource: null
      x-speakeasy-group: AppSearch
      x-speakeasy-name-override: Search
      x-speakeasy-pagination:
        inputs:
        - in: requestBody
          name: pageToken
          type: cursor
        outputs:
          nextCursor: $.nextPageToken
        type: cursor
components:
  schemas:
    c1.api.user.v1.User:
      description: The User object provides all of the details for an user, as well as some configuration.
      properties:
        createdAt:
          format: date-time
          readOnly: true
          type: string
        delegatedUserId:
          description: The id of the user to whom tasks will be automatically reassigned to.
          readOnly: false
          type: string
        deletedAt:
          format: date-time
          readOnly: true
          type: string
        department:
          description: The department which the user belongs to in the organization.
          readOnly: true
          type: string
        departmentSources:
          description: A list of objects mapped based on department attribute mappings configured in the system.
          items:
            $ref: '#/components/schemas/c1.api.user.v1.UserAttributeMappingSource'
          nullable: true
          readOnly: true
          type: array
        directoryIds:
          description: A list of unique ids that represent different directories.
          items:
            type: string
          nullable: true
          readOnly: true
          type: array
        directoryStatus:
          description: The status of the user in the directory.
          enum:
          - UNKNOWN
          - ENABLED
          - DISABLED
          - DELETED
          readOnly: true
          type: string
          x-speakeasy-unknown-values: allow
        directoryStatusSources:
          description: A list of objects mapped based on directoryStatus attribute mappings configured in the system.
          items:
            $ref: '#/components/schemas/c1.api.user.v1.UserAttributeMappingSource'
          nullable: true
          readOnly: true
          type: array
        displayName:
          description: The display name of the user.
          readOnly: true
          type: string
        email:
          description: This is the user's email.
          readOnly: true
          type: string
        emailSources:
          description: A list of source data for the email attribute.
          items:
            $ref: '#/components/schemas/c1.api.user.v1.UserAttributeMappingSource'
          nullable: true
          readOnly: true
          type: array
        emails:
          description: This is a list of all of the user's emails from app users.
          items:
            type: string
          nullable: true
          readOnly: true
          type: array
        employeeIdSources:
          description: A list of source data for the employee IDs attribute.
          items:
            $ref: '#/components/schemas/c1.api.user.v1.UserAttributeMappingSource'
          nullable: true
          readOnly: true
          type: array
        employeeIds:
          description: This is a list of all of the user's employee IDs from app users.
          items:
            type: string
          nullable: true
          readOnly: true
          type: array
        employmentStatus:
          description: The users employment status.
          readOnly: true
          type: string
        employmentStatusSources:
          description: A list of objects mapped based on employmentStatus attribute mappings configured in the system.
          items:
            $ref: '#/components/schemas/c1.api.user.v1.UserAttributeMappingSource'
          nullable: true
          readOnly: true
          type: array
        employmentType:
          description: The employment type of the user.
          readOnly: true
          type: string
        employmentTypeSources:
          description: A list of objects mapped based on employmentType attribute mappings configured in the system.
          items:
            $ref: '#/components/schemas/c1.api.user.v1.UserAttributeMappingSource'
          nullable: true
          readOnly: true
          type: array
        id:
          description: A unique identifier of the user.
          readOnly: true
          type: string
        jobTitle:
          description: The job title of the user.
          readOnly: true
          type: string
        jobTitleSources:
          description: A list of objects mapped based on jobTitle attribute mappings configured in the system.
          items:
            $ref: '#/components/schemas/c1.api.user.v1.UserAttributeMappingSource'
          nullable: true
          readOnly: true
          type: array
        managerIds:
          description: A list of ids of the user's managers.
          items:
            type: string
          nullable: true
          readOnly: true
          type: array
        managerSources:
          description: A list of objects mapped based on managerId attribute mappings configured in the system.
          items:
            $ref: '#/components/schemas/c1.api.user.v1.UserAttributeMappingSource'
          nullable: true
          readOnly: true
          type: array
        profile:
          additionalProperties: true
          readOnly: true
          type: object
        roleIds:
          description: A list of unique identifiers that maps to ConductorOne's user roles let you assign users permissions tailored to the work they do in the software.
          items:
            type: string
          nullable: true
          readOnly: false
          type: array
        status:
          description: The status of the user in the system.
          enum:
          - UNKNOWN
          - ENABLED
          - DISABLED
          - DELETED
          readOnly: false
          type: string
          x-speakeasy-unknown-values: allow
        type:
          description: The type of the user.
          enum:
          - USER_TYPE_UNSPECIFIED
          - USER_TYPE_SYSTEM
          - USER_TYPE_HUMAN
          - USER_TYPE_SERVICE
          - USER_TYPE_AGENT
          readOnly: true
          type: string
          x-speakeasy-unknown-values: allow
        updatedAt:
          format: date-time
          readOnly: true
          type: string
        username:
          description: This is the user's primary username. Typically sourced from the primary directory.
          readOnly: true
          type: string
        usernameSources:
          description: A list of source data for the usernames attribute.
          items:
            $ref: '#/components/schemas/c1.api.user.v1.UserAttributeMappingSource'
          nullable: true
          readOnly: true
          type: array
        usernames:
          description: This is a list of all of the user's usernames from app users.
          items:
            type: string
          nullable: true
          readOnly: true
          type: array
      title: User
      type: object
      x-speakeasy-name-override: User
    c1.api.user.v1.UserAttributeMappingSource:
      description: The UserAttributeMappingSource message.
      properties:
        appId:
          description: The appId field.
          readOnly: false
          type: string
        appUserId:
          description: The appUserId field.
          readOnly: false
          type: string
        appUserProfileAttributeKey:
          description: The appUserProfileAttributeKey field.
          readOnly: false
          type: string
        userAttributeMappingId:
          description: The userAttributeMappingId field.
          readOnly: false
          type: string
        value:
          description: The value field.
          readOnly: false
          type: string
      title: User Attribute Mapping Source
      type: object
      x-speakeasy-name-override: UserAttributeMappingSource
    c1.api.app.v1.GetAppResponse:
      description: The GetAppResponse message contains the details of the requested app in the app field.
      properties:
        app:
          $ref: '#/components/schemas/c1.api.app.v1.App'
      title: Get App Response
      type: object
      x-speakeasy-name-override: GetAppResponse
    c1.api.app.v1.DeleteAppResponse:
      description: Empty response body. Status code indicates success.
      title: Delete App Response
      type: object
      x-speakeasy-name-override: DeleteAppResponse
    c1.api.app.v1.CreateAppRequest:
      description: The CreateAppRequest message is used to create a new app.
      properties:
        certifyPolicyId:
          description: Creates the app with this certify policy.
          readOnly: false
          type: string
        description:
          description: Creates the app with this description.
          readOnly: false
          type: string
        displayName:
          description: Creates the app with this display name.
          readOnly: false
          type: string
        grantPolicyId:
          description: Creates the app with this grant policy.
          readOnly: false
          type: string
        identityMatching:
          description: Define the app user identity matching strategy for this app.
          enum:
          - APP_USER_IDENTITY_MATCHING_UNSPECIFIED
          - APP_USER_IDENTITY_MATCHING_STRICT
          - APP_USER_IDENTITY_MATCHING_DISPLAY_NAME
          readOnly: false
          type: string
          x-speakeasy-unknown-values: allow
        monthlyCostUsd:
          description: Creates the app with this monthly cost per seat.
          format: int32
          readOnly: false
          type: integer
        owners:
          description: Creates the app with this array of owners.
          items:
            type: string
          nullable: true
          readOnly: false
          type: array
        revokePolicyId:
          description: Creates the app with this revoke policy.
          readOnly: false
          type: string
        strictAccessEntitlementProvisioning:
          description: This flag enforces a provisioning mode where the access entitlement is always included in the provisioning flow, if the app user doesn't exist
          readOnly: false
          type: boolean
      required:
      - displayName
      title: Create App Request
      type: object
      x-speakeasy-entity: App
      x-speakeasy-name-override: CreateAppRequest
    c1.api.app.v1.App:
      description: The App object provides all of the details for an app, as well as some configuration.
      properties:
        appAccountId:
          description: The ID of the Account named by AccountName.
          readOnly: true
          type: string
        appAccountName:
          description: The AccountName of the app. For example, AWS is AccountID, Github is Org Name, and Okta is Okta Subdomain.
          readOnly: true
          type: string
        appOwners:
          description: The owners of the app.
          items:
            $ref: '#/components/schemas/c1.api.user.v1.User'
          nullable: true
          readOnly: true
          type: array
        certifyPolicyId:
          description: The ID of the Certify Policy associated with this App.
          readOnly: false
          type: string
        connectorVersion:
          description: The connectorVersion field.
          format: uint32
          readOnly: false
          type: integer
        createdAt:
          format: date-time
          readOnly: true
          type: string
        defaultRequestCatalogId:
          description: The ID for the default request catalog for this app.
          readOnly: false
          type: string
        deletedAt:
          format: date-time
          readOnly: true
          type: string
        description:
          description: The app's description.
          readOnly: false
          type: string
        displayName:
          description: The app's display name.
          readOnly: false
          type: string
        fieldMask:
          nullable: true
          readOnly: true
          type: string
        grantPolicyId:
          description: The ID of the Grant Policy associated with this App.
          readOnly: false
          type: string
        iconUrl:
          description: The URL of an icon to display for the app.
          readOnly: false
          type: string
        id:
          description: The ID of the app.
          readOnly: true
          type: string
        identityMatching:
          description: The identityMatching field.
          enum:
          - APP_USER_IDENTITY_MATCHING_UNSPECIFIED
          - APP_USER_IDENTITY_MATCHING_STRICT
          - APP_USER_IDENTITY_MATCHING_DISPLAY_NAME
          readOnly: false
          type: string
          x-speakeasy-unknown-values: allow
        instructions:
          description: If you add instructions here, they will be shown to users in the access request form when requesting access for this app.
          readOnly: false
          type: string
        isDirectory:
          description: Specifies if the app is a directory.
          readOnly: true
          type: boolean
        isManuallyManaged:
          description: The isManuallyManaged field.
          readOnly: false
          type: boolean
        logoUri:
          description: The URL of a logo to display for the app.
          readOnly: true
          type: string
        monthlyCostUsd:
          description: The cost of an app per-seat, so that total cost can be calculated by the grant count.
          format: int32
          readOnly: false
          type: integer
        parentAppId:
          description: The ID of the app that created this app, if any.
          readOnly: true
          type: string
        revokePolicyId:
          description: The ID of the Revoke Policy associated with this App.
          readOnly: false
          type: string
        strictAccessEntitlementProvisioning:
          description: The strictAccessEntitlementProvisioning field.
          readOnly: false
          type: boolean
        updatedAt:
          format: date-time
          readOnly: true
          type: string
        userCount:
          description: The number of users with grants to this app.
          format: int64
          readOnly: true
          type: string
      title: App
      type: object
      x-speakeasy-entity: App
      x-speakeasy-name-override: App
    c1.api.app.v1.SearchAppsResponse:
      description: The SearchAppsResponse message contains a list of results and a nextPageToken if applicable.
      properties:
        list:
          description: The list of results containing up to X results, where X is the page size defined in the request.
          items:
            $ref: '#/components/schemas/c1.api.app.v1.App'
          nullable: true
          readOnly: false
          type: array
        nextPageToken:
          description: "The nextPageToken is shown for the next page if the number of results is larger than the max page size.\n The server returns one page of results and the nextPageToken until all results are retreived.\n To retrieve the next page, use the same request and append a pageToken field with the value of nextPageToken shown on the previous page."
          readOnly: false
          type: string
      title: Search Apps Response
      type: object
      x-speakeasy-name-override: SearchAppsResponse
    c1.api.app.v1.SearchAppsRequest:
      description: Search Apps by a few properties.
      properties:
        appIds:
          description: A list of app IDs to restrict the search to.
          items:
            type: string
          nullable: true
          readOnly: false
          type: array
        displayName:
          description: Search for apps with a case insensitive match on the display name.
          readOnly: false
          type: string
        excludeAppIds:
          description: A list of app IDs to remove from the results.
          items:
            type: string
          nullable: true
          readOnly: false
          type: array
        onlyDirectories:
          description: Only return apps which are directories
          readOnly: false
          type: boolean
        pageSize:
          description: The pageSize where 0 <= pageSize <= 100. Values < 10 will be set to 10. A value of 0 returns the default page size (currently 25)
          format: int32
          readOnly: false
          type: integer
        pageToken:
          description: The pageToken field.
          readOnly: false
          type: string
        policyRefs:
          description: Search for apps that use any of these policies.
          items:
            $ref: '#/components/schemas/c1.api.policy.v1.PolicyRef'
          nullable: true
          readOnly: false
          type: array
        query:
          description: Query the apps with a fuzzy search on display name and description.
          readOnly: false
          type: string
      title: Search Apps Request
      type: object
      x-speakeasy-name-override: SearchAppsRequest
    c1.api.policy.v1.PolicyRef:
      description: The PolicyRef message.
      properties:
        id:
          description: The id field.
          readOnly: false
          type: string
      title: Policy Ref
      type: object
      x-speakeasy-name-override: PolicyRef
    c1.api.app.v1.ListAppsResponse:
      description: The ListAppsResponse message contains a list of results and a nextPageToken if applicable.
      properties:
        list:
          description: The list of results containing up to X results, where X is the page size defined in the request.
          items:
            $ref: '#/components/schemas/c1.api.app.v1.App'
          nullable: true
          readOnly: false
          type: array
        nextPageToken:
          description: "The nextPageToken is shown for the next page if the number of results is larger than the max page size.\n The server returns one page of results and the nextPageToken until all results are retreived.\n To retrieve the next page, use the same request and append a pageToken field with the value of nextPageToken shown on the previous page."
          readOnly: false
          type: string
      title: List Apps Response
      type: object
      x-speakeasy-name-override: ListAppsResponse
    c1.api.app.v1.UpdateAppRequestInput:
      description: The UpdateAppRequest message contains the app to update and the fields to update.
      properties:
        app:
          $ref: '#/components/schemas/c1.api.app.v1.App'
        updateMask:
          nullable: true
          readOnly: false
          type: string
      title: Update App Request
      type: object
      x-speakeasy-name-override: UpdateAppRequest
    c1.api.app.v1.UpdateAppResponse:
      description: Returns the updated app's new values.
      properties:
        app:
          $ref: '#/components/schemas/c1.api.app.v1.App'
      title: Update App Response
      type: object
      x-speakeasy-name-override: UpdateAppResponse
    c1.api.app.v1.DeleteAppRequestInput:
      description: Empty request body
      title: Delete App Request
      type: object
      x-speakeasy-entity: App
      x-speakeasy-name-override: DeleteAppRequest
    c1.api.app.v1.CreateAppResponse:
      description: Returns the new app's values.
      properties:
        app:
          $ref: '#/components/schemas/c1.api.app.v1.App'
      title: Create App Response
      type: object
      x-speakeasy-name-override: CreateAppResponse
  securitySchemes:
    bearerAuth:
      scheme: bearer
      type: http
    oauth:
      description: 'This API uses OAuth2 with the Client Credential flow.

        Client Credentials must be sent in the BODY, not the headers.

        For an example of how to implement this, refer to the [c1TokenSource.Token()](https://github.com/ConductorOne/conductorone-sdk-go/blob/3375fe7c0126d17e7ec4e711693dee7b791023aa/token_source.go#L101-L187) function.'
      flows:
        clientCredentials:
          scopes: {}
          tokenUrl: /auth/v1/token
      type: oauth2