> ## Documentation Index
> Fetch the complete documentation index at: https://conductorone-docs-mcp-bridge-private-server.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

# Set Bundle Automation

> Create or update the bundle automation rule for a catalog that automatically syncs catalog membership.



## OpenAPI

````yaml https://spec.speakeasy.com/conductor-one/conductorone/my-source-with-code-samples post /api/v1/catalogs/{request_catalog_id}/bundle_automation
openapi: 3.1.0
info:
  description: The C1 API is a HTTP API for managing C1 resources.
  title: C1 API
  version: 0.1.0-alpha
servers:
  - description: The C1 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: []
paths:
  /api/v1/catalogs/{request_catalog_id}/bundle_automation:
    post:
      tags:
        - Request Catalog
      summary: Set Bundle Automation
      description: >-
        Create or update the bundle automation rule for a catalog that
        automatically syncs catalog membership.
      operationId: >-
        c1.api.requestcatalog.v1.RequestCatalogManagementService.SetBundleAutomation
      parameters:
        - in: path
          name: request_catalog_id
          required: true
          schema:
            description: >-
              The unique identifier of the access profile to set the automation
              on.
            type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: >-
                #/components/schemas/c1.api.requestcatalog.v1.SetBundleAutomationRequestInput
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/c1.api.requestcatalog.v1.BundleAutomation'
          description: Successful response
      x-codeSamples:
        - lang: go
          label: SetBundleAutomation
          source: "package main\n\nimport(\n\t\"context\"\n\t\"github.com/conductorone/conductorone-sdk-go/pkg/models/shared\"\n\tconductoronesdkgo \"github.com/conductorone/conductorone-sdk-go\"\n\t\"github.com/conductorone/conductorone-sdk-go/pkg/models/operations\"\n\t\"log\"\n)\n\nfunc main() {\n    ctx := context.Background()\n\n    s := conductoronesdkgo.New(\n        conductoronesdkgo.WithSecurity(shared.Security{\n            BearerAuth: \"<YOUR_BEARER_TOKEN_HERE>\",\n            Oauth: \"<YOUR_OAUTH_HERE>\",\n        }),\n    )\n\n    res, err := s.RequestCatalogManagement.SetBundleAutomation(ctx, operations.C1APIRequestcatalogV1RequestCatalogManagementServiceSetBundleAutomationRequest{\n        RequestCatalogID: \"<id>\",\n    })\n    if err != nil {\n        log.Fatal(err)\n    }\n    if res.BundleAutomation != nil {\n        // handle response\n    }\n}"
        - lang: typescript
          label: Typescript (SDK)
          source: >-
            import { ConductoroneSDKTypescript } from
            "conductorone-sdk-typescript";


            const conductoroneSDKTypescript = new ConductoroneSDKTypescript({
              security: {
                bearerAuth: "<YOUR_BEARER_TOKEN_HERE>",
                oauth: "<YOUR_OAUTH_HERE>",
              },
            });


            async function run() {
              const result = await conductoroneSDKTypescript.requestCatalogManagement.setBundleAutomation({
                requestCatalogId: "<id>",
              });

              console.log(result);
            }


            run();
components:
  schemas:
    c1.api.requestcatalog.v1.SetBundleAutomationRequestInput:
      description: >
        The request message for creating or updating a bundle automation rule on
        a catalog.


        This message contains a oneof named conditions. Only a single field of
        the following list may be set at a time:
          - entitlements
          - cel
      properties:
        cel:
          oneOf:
            - $ref: >-
                #/components/schemas/c1.api.requestcatalog.v1.BundleAutomationRuleCEL
            - type: 'null'
        createTasks:
          description: >-
            Whether to create access request tasks for matched users instead of
            granting directly.
          type:
            - boolean
            - 'null'
        disableCircuitBreaker:
          description: >-
            Whether to disable the circuit breaker that pauses the automation
            when excessive membership changes are detected.
          type:
            - boolean
            - 'null'
        enabled:
          description: Whether the automation should actively run on its schedule.
          type:
            - boolean
            - 'null'
        enforceOnSmallProfiles:
          description: >-
            When true, the circuit breaker is evaluated even on profiles below
            the
             tenant min-members floor. Defaults to false.
          type:
            - boolean
            - 'null'
        entitlements:
          oneOf:
            - $ref: >-
                #/components/schemas/c1.api.requestcatalog.v1.BundleAutomationRuleEntitlement
            - type: 'null'
        removedMembersThresholdPercent:
          description: >-
            Per-automation override for the removed-members percent that trips
            the
             circuit breaker (1-100). 0 / unset means inherit the tenant default.
          format: int64
          type:
            - string
            - 'null'
      title: Set Bundle Automation Request
      type: object
      x-speakeasy-name-override: SetBundleAutomationRequest
    c1.api.requestcatalog.v1.BundleAutomation:
      description: >
        The BundleAutomation message.


        This message contains a oneof named conditions. Only a single field of
        the following list may be set at a time:
          - entitlements
          - cel
      properties:
        cel:
          oneOf:
            - $ref: >-
                #/components/schemas/c1.api.requestcatalog.v1.BundleAutomationRuleCEL
            - type: 'null'
        circuitBreaker:
          oneOf:
            - $ref: >-
                #/components/schemas/c1.api.requestcatalog.v1.BundleAutomationCircuitBreaker
            - type: 'null'
        createTasks:
          description: The createTasks field.
          type:
            - boolean
            - 'null'
        createdAt:
          format: date-time
          type:
            - string
            - 'null'
        deletedAt:
          format: date-time
          type:
            - string
            - 'null'
        disableCircuitBreaker:
          description: The disableCircuitBreaker field.
          type:
            - boolean
            - 'null'
        enabled:
          description: The enabled field.
          type:
            - boolean
            - 'null'
        enforceOnSmallProfiles:
          description: >-
            When true, the circuit breaker is evaluated even on profiles below
            the
             tenant min-members floor.
          type:
            - boolean
            - 'null'
        entitlements:
          oneOf:
            - $ref: >-
                #/components/schemas/c1.api.requestcatalog.v1.BundleAutomationRuleEntitlement
            - type: 'null'
        removedMembersThresholdPercent:
          description: >-
            Per-automation override for the removed-members percent that trips
            the
             circuit breaker (1-100). 0 / unset means the tenant default applies.
          format: int64
          type:
            - string
            - 'null'
        requestCatalogId:
          description: The requestCatalogId field.
          type:
            - string
            - 'null'
        state:
          oneOf:
            - $ref: >-
                #/components/schemas/c1.api.requestcatalog.v1.BundleAutomationLastRunState
            - type: 'null'
        tenantId:
          description: The tenantId field.
          type:
            - string
            - 'null'
        updatedAt:
          format: date-time
          type:
            - string
            - 'null'
      title: Bundle Automation
      type: object
      x-speakeasy-name-override: BundleAutomation
    c1.api.requestcatalog.v1.BundleAutomationRuleCEL:
      description: The BundleAutomationRuleCEL message.
      properties:
        expression:
          description: The expression field.
          type:
            - string
            - 'null'
      title: Bundle Automation Rule Cel
      type: object
      x-speakeasy-name-override: BundleAutomationRuleCEL
    c1.api.requestcatalog.v1.BundleAutomationRuleEntitlement:
      description: The BundleAutomationRuleEntitlement message.
      properties:
        entitlementRefs:
          description: The entitlementRefs field.
          items:
            $ref: '#/components/schemas/c1.api.app.v1.AppEntitlementRef'
          type:
            - array
            - 'null'
      title: Bundle Automation Rule Entitlement
      type: object
      x-speakeasy-name-override: BundleAutomationRuleEntitlement
    c1.api.requestcatalog.v1.BundleAutomationCircuitBreaker:
      description: The BundleAutomationCircuitBreaker message.
      properties:
        removedMembersThresholdPercentage:
          description: The removedMembersThresholdPercentage field.
          format: int64
          type:
            - string
            - 'null'
        state:
          description: The state field.
          enum:
            - CIRCUIT_BREAKER_STATE_UNSPECIFIED
            - CIRCUIT_BREAKER_STATE_TRIGGERED
            - CIRCUIT_BREAKER_STATE_BYPASS
            - CIRCUIT_BREAKER_STATE_SUPPORT_DISABLED
          type:
            - string
            - 'null'
          x-speakeasy-unknown-values: allow
        updatedAt:
          format: date-time
          type:
            - string
            - 'null'
        userRef:
          oneOf:
            - $ref: '#/components/schemas/c1.api.user.v1.UserRef'
            - type: 'null'
      title: Bundle Automation Circuit Breaker
      type: object
      x-speakeasy-name-override: BundleAutomationCircuitBreaker
    c1.api.requestcatalog.v1.BundleAutomationLastRunState:
      description: The BundleAutomationLastRunState message.
      properties:
        celEvaluation:
          oneOf:
            - $ref: >-
                #/components/schemas/c1.api.requestcatalog.v1.BundleAutomationCelEvaluationState
            - type: 'null'
        errorMessage:
          description: The errorMessage field.
          type:
            - string
            - 'null'
        lastRunAt:
          format: date-time
          type:
            - string
            - 'null'
        status:
          description: The status field.
          enum:
            - BUNDLE_AUTOMATION_RUN_STATUS_UNSPECIFIED
            - BUNDLE_AUTOMATION_RUN_STATUS_SUCCESS
            - BUNDLE_AUTOMATION_RUN_STATUS_FAILURE
            - BUNDLE_AUTOMATION_RUN_STATUS_IN_PROGRESS
            - BUNDLE_AUTOMATION_RUN_STATUS_WAITING_FOR_APPROVAL
          type:
            - string
            - 'null'
          x-speakeasy-unknown-values: allow
      title: Bundle Automation Last Run State
      type: object
      x-speakeasy-name-override: BundleAutomationLastRunState
    c1.api.app.v1.AppEntitlementRef:
      description: The AppEntitlementRef message.
      properties:
        appId:
          description: The appId field.
          type:
            - string
            - 'null'
        id:
          description: The id field.
          type:
            - string
            - 'null'
      title: App Entitlement Ref
      type: object
      x-speakeasy-name-override: AppEntitlementRef
    c1.api.user.v1.UserRef:
      description: A reference to a user.
      properties:
        id:
          description: The id of the user.
          type:
            - string
            - 'null'
      title: User Ref
      type: object
      x-speakeasy-name-override: UserRef
    c1.api.requestcatalog.v1.BundleAutomationCelEvaluationState:
      description: The BundleAutomationCelEvaluationState message.
      properties:
        errorMessage:
          description: The errorMessage field.
          type:
            - string
            - 'null'
        lastEvaluatedAt:
          format: date-time
          type:
            - string
            - 'null'
        matchedUsers:
          description: The matchedUsers field.
          format: int64
          type:
            - string
            - 'null'
        status:
          description: The status field.
          enum:
            - BUNDLE_AUTOMATION_RUN_STATUS_UNSPECIFIED
            - BUNDLE_AUTOMATION_RUN_STATUS_SUCCESS
            - BUNDLE_AUTOMATION_RUN_STATUS_FAILURE
            - BUNDLE_AUTOMATION_RUN_STATUS_IN_PROGRESS
            - BUNDLE_AUTOMATION_RUN_STATUS_WAITING_FOR_APPROVAL
          type:
            - string
            - 'null'
          x-speakeasy-unknown-values: allow
      title: Bundle Automation Cel Evaluation State
      type: object
      x-speakeasy-name-override: BundleAutomationCelEvaluationState
  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

````