> ## 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.

# Update Function

> Update updates an existing function's metadata



## OpenAPI

````yaml https://spec.speakeasy.com/conductor-one/conductorone/my-source-with-code-samples post /api/v1/functions/update
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/functions/update:
    post:
      tags:
        - Function
      summary: Update Function
      description: Update updates an existing function's metadata
      operationId: c1.api.functions.v1.FunctionsService.UpdateFunction
      requestBody:
        content:
          application/json:
            schema:
              $ref: >-
                #/components/schemas/c1.api.functions.v1.FunctionsServiceUpdateFunctionRequest
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: >-
                  #/components/schemas/c1.api.functions.v1.FunctionsServiceUpdateFunctionResponse
          description: Successful response
      x-codeSamples:
        - lang: go
          label: UpdateFunction
          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\"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.Functions.UpdateFunction(ctx, nil)\n    if err != nil {\n        log.Fatal(err)\n    }\n    if res.FunctionsServiceUpdateFunctionResponse != 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.functions.updateFunction();

              console.log(result);
            }


            run();
components:
  schemas:
    c1.api.functions.v1.FunctionsServiceUpdateFunctionRequest:
      description: The FunctionsServiceUpdateFunctionRequest message.
      properties:
        function:
          $ref: '#/components/schemas/c1.api.functions.v1.Function'
        updateMask:
          nullable: true
          readOnly: false
          type: string
      title: Functions Service Update Function Request
      type: object
      x-speakeasy-name-override: FunctionsServiceUpdateFunctionRequest
    c1.api.functions.v1.FunctionsServiceUpdateFunctionResponse:
      description: The FunctionsServiceUpdateFunctionResponse message.
      properties:
        function:
          $ref: '#/components/schemas/c1.api.functions.v1.Function'
      title: Functions Service Update Function Response
      type: object
      x-speakeasy-name-override: FunctionsServiceUpdateFunctionResponse
    c1.api.functions.v1.Function:
      description: Function represents a customer-provided code extension in the API
      properties:
        createdAt:
          format: date-time
          readOnly: true
          type: string
        deletedAt:
          format: date-time
          readOnly: true
          type: string
        description:
          description: The description field.
          readOnly: false
          type: string
        displayName:
          description: The displayName field.
          readOnly: false
          type: string
        functionType:
          description: The functionType field.
          enum:
            - FUNCTION_TYPE_UNSPECIFIED
            - FUNCTION_TYPE_ANY
            - FUNCTION_TYPE_CODE_MODE
          readOnly: false
          type: string
          x-speakeasy-unknown-values: allow
        head:
          description: The head field.
          readOnly: false
          type: string
        id:
          description: The id field.
          readOnly: false
          type: string
        isDraft:
          description: The isDraft field.
          readOnly: false
          type: boolean
        outboundNetworkAllowlist:
          description: The outboundNetworkAllowlist field.
          items:
            type: string
          nullable: true
          readOnly: false
          type: array
        publishedCommitId:
          description: The publishedCommitId field.
          readOnly: false
          type: string
        scopedRoleIds:
          description: >-
            Scoped role IDs define the permissions granted to this function when
            calling
             ConductorOne APIs. These are role IDs (not service roles) that get resolved
             to their service roles at authentication time.

             Currently only the "Read-Only Administrator" role (system:viewer) is supported.
             The role ID can be obtained from the roles API.
          items:
            type: string
          nullable: true
          readOnly: false
          type: array
        secret:
          additionalProperties:
            type: string
          description: The secret field.
          readOnly: false
          type: object
        updatedAt:
          format: date-time
          readOnly: true
          type: string
        useSpn:
          description: >-
            FN-347 transition flag. When true, the function authenticates to
            c1-api
             as user:<sp_id> via the AssumeIdentity token exchange using its
             ServicePrincipalBinding; when false, it authenticates as
             function:<id>. Read-only from clients: set by CreateFunction (when the
             tenant has completed the FunctionsToSPN migration) and by the migration
             itself, never by UpdateFunction. Retired once all functions are on SPN.
          readOnly: true
          type: boolean
      title: Function
      type: object
      x-speakeasy-entity: Function
      x-speakeasy-name-override: Function
  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

````