> ## Documentation Index
> Fetch the complete documentation index at: https://www.c1.ai/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# Create Manually Managed App Resource

> Create a manually managed app resource tracked directly by ConductorOne under an existing resource type.



## OpenAPI

````yaml https://spec.speakeasy.com/conductor-one/conductorone/my-source-with-code-samples post /api/v1/apps/{app_id}/resource_types/{app_resource_type_id}/resources
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/apps/{app_id}/resource_types/{app_resource_type_id}/resources:
    post:
      tags:
        - App Resource
      summary: Create Manually Managed App Resource
      description: >-
        Create a manually managed app resource tracked directly by ConductorOne
        under an existing resource type.
      operationId: c1.api.app.v1.AppResourceService.CreateManuallyManagedAppResource
      parameters:
        - in: path
          name: app_id
          required: true
          schema:
            description: The ID of the app to create the resource under.
            readOnly: false
            type: string
        - in: path
          name: app_resource_type_id
          required: true
          schema:
            description: The resource type ID that classifies this resource.
            readOnly: false
            type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: >-
                #/components/schemas/c1.api.app.v1.CreateManuallyManagedAppResourceRequestInput
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: >-
                  #/components/schemas/c1.api.app.v1.CreateManuallyManagedAppResourceResponse
          description: The response message for creating a manually managed app resource.
      x-codeSamples:
        - lang: go
          label: CreateManuallyManagedAppResource
          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.AppResource.CreateManuallyManagedAppResource(ctx, operations.C1APIAppV1AppResourceServiceCreateManuallyManagedAppResourceRequest{\n        AppID: \"<id>\",\n        AppResourceTypeID: \"<id>\",\n    })\n    if err != nil {\n        log.Fatal(err)\n    }\n    if res.CreateManuallyManagedAppResourceResponse != 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.appResource.createManuallyManagedAppResource({
                appId: "<id>",
                appResourceTypeId: "<id>",
              });

              console.log(result);
            }


            run();
components:
  schemas:
    c1.api.app.v1.CreateManuallyManagedAppResourceRequestInput:
      description: The request message for creating a manually managed app resource.
      properties:
        description:
          description: An optional description for the new resource.
          readOnly: false
          type: string
        displayName:
          description: The display name for the new resource.
          readOnly: false
          type: string
        matchBatonId:
          description: >-
            If supplied, it's implied that the resource is created before sync
            and needs to be merged with connector resource.
          readOnly: false
          type: string
        resourceOwnerUserIds:
          description: C1 user IDs to assign as owners of this resource.
          items:
            type: string
          nullable: true
          readOnly: false
          type: array
      required:
        - displayName
      title: Create Manually Managed App Resource Request
      type: object
      x-speakeasy-name-override: CreateManuallyManagedAppResourceRequest
    c1.api.app.v1.CreateManuallyManagedAppResourceResponse:
      description: The response message for creating a manually managed app resource.
      properties:
        appResource:
          $ref: '#/components/schemas/c1.api.app.v1.AppResource'
      title: Create Manually Managed App Resource Response
      type: object
      x-speakeasy-name-override: CreateManuallyManagedAppResourceResponse
    c1.api.app.v1.AppResource:
      description: >
        The app resource message is a single resource that can have
        entitlements.


        This message contains a oneof named metadata. Only a single field of the
        following list may be set at a time:
          - secretTrait
      properties:
        accessConfigId:
          description: |-
            The access config ID for this resource. May be empty.
             Must be one of the builtin access config IDs or empty.
          readOnly: false
          type: string
        appId:
          description: The app that this resource belongs to.
          readOnly: false
          type: string
        appResourceTypeId:
          description: The resource type that this resource is.
          readOnly: false
          type: string
        createdAt:
          format: date-time
          readOnly: true
          type: string
        customDescription:
          description: A custom description that can be set for a resource.
          readOnly: false
          type: string
        deletedAt:
          format: date-time
          readOnly: true
          type: string
        description:
          description: The description set for the resource.
          readOnly: false
          type: string
        displayName:
          description: The display name for this resource.
          readOnly: false
          type: string
        externalId:
          description: >-
            The upstream product's native external ID for this resource (e.g. an
            Okta group ID).
             Populated from the connector's external ID during sync.
          readOnly: true
          type: string
        grantCount:
          description: The number of grants to this resource.
          format: int64
          readOnly: false
          type: string
        id:
          description: The id of the resource.
          readOnly: false
          type: string
        matchBatonId:
          description: The matchBatonId field.
          readOnly: false
          type: string
        parentAppResourceId:
          description: >-
            The parent resource id, if this resource is a child of another
            resource.
          readOnly: false
          type: string
        parentAppResourceTypeId:
          description: >-
            The parent resource type id, if this resource is a child of another
            resource.
          readOnly: false
          type: string
        profile:
          additionalProperties: true
          readOnly: true
          type: object
        secretTrait:
          $ref: '#/components/schemas/c1.api.app.v1.SecretTrait'
        updatedAt:
          format: date-time
          readOnly: true
          type: string
      title: App Resource
      type: object
      x-speakeasy-entity: App Resource
      x-speakeasy-name-override: AppResource
    c1.api.app.v1.SecretTrait:
      description: The SecretTrait message.
      nullable: true
      properties:
        identityAppUserId:
          description: The identityAppUserId field.
          readOnly: false
          type: string
        lastUsedAt:
          format: date-time
          readOnly: false
          type: string
        secretCreatedAt:
          format: date-time
          readOnly: false
          type: string
        secretExpiresAt:
          format: date-time
          readOnly: false
          type: string
      title: Secret Trait
      type: object
      x-speakeasy-name-override: SecretTrait
  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

````