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

# Update a position filter.

> Use this operation as the owner to replace a filter's name, description, active state, and optionally its
definition. A null `Filter` retains the existing definition. A replacement name cannot collide with
another accessible filter, and changes complete before returning.



## OpenAPI

````yaml /risk-and-pricing/atoti-risk-services/apis-endpoints/openapi/openapi.mintlify.json post /api/PositionFilter/Update
openapi: 3.0.4
info:
  title: Derivitec Api 1.0
  version: '1.0'
servers:
  - url: https://api.riskportal.activeviam.com
security:
  - oauth2: []
  - apikey: []
tags:
  - name: AdminUser
  - name: AtotiReport
  - name: AtotiSession
  - name: BloombergOAuth
  - name: Bond
  - name: BondYieldCurvePage
  - name: BookAccess
  - name: Books
  - name: Commodity
  - name: Counterparties
  - name: Currencies
  - name: Equity
  - name: EquityDividend
  - name: EquityPage
  - name: FeatureFlag
  - name: Fx
  - name: FxPage
  - name: GroupAccess
  - name: Home
  - name: LegacyPosition
  - name: MarketData
  - name: MarketDataProvider
  - name: MarketDataProviderAccess
  - name: Meta
  - name: Notification
  - name: Organisation
  - name: PnLReport
  - name: PortfolioAccess
  - name: Portfolios
  - name: Position
  - name: PositionFilter
  - name: PricingEnvironment
  - name: PricingEnvironmentAccess
  - name: RateAsset
  - name: RateAssetPage
  - name: Report
  - name: ReportDefinition
  - name: ReportHistoryLauncherQuery
  - name: ReportLauncher
  - name: ReportQuery
  - name: ReportQueryViewUser
  - name: ReportRestriction
  - name: ReportView
  - name: RiskReport
  - name: Tradable
  - name: TradeBooking
  - name: User
  - name: VarReport
  - name: VarReportQuery
  - name: YieldCurvePage
paths:
  /api/PositionFilter/Update:
    post:
      tags:
        - PositionFilter
      summary: Update a position filter.
      description: >-
        Use this operation as the owner to replace a filter's name, description,
        active state, and optionally its

        definition. A null `Filter` retains the existing definition. A
        replacement name cannot collide with

        another accessible filter, and changes complete before returning.
      operationId: Update
      requestBody:
        description: >-
          Required non-blank `EntityId` in the Risk Portal position-filter
          identifier namespace; replacement `NewName`, `NewDescription`, and
          `IsActive`; optional `Filter`. No explicit non-blank check is made for
          `NewName`; `EntityType` is fixed to `PositionFilter`.
        content:
          application/json-patch+json:
            schema:
              $ref: '#/components/schemas/ApiPositionFilterUpdateRequest'
          application/json:
            schema:
              $ref: '#/components/schemas/ApiPositionFilterUpdateRequest'
          text/json:
            schema:
              $ref: '#/components/schemas/ApiPositionFilterUpdateRequest'
          application/*+json:
            schema:
              $ref: '#/components/schemas/ApiPositionFilterUpdateRequest'
      responses:
        '200':
          description: >-
            Returns the update result, including missing identifier, non-owner
            or unavailable-filter, and duplicate-name errors.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiPositionFilterUpdateResponse'
        '400':
          description: BadRequest
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
      security:
        - oauth2: []
        - apikey: []
components:
  schemas:
    ApiPositionFilterUpdateRequest:
      required:
        - $type
      type: object
      properties:
        new_name:
          type: string
          description: >-
            Replacement client-visible name for the selected configurable
            entity.
          nullable: true
        new_description:
          type: string
          description: >-
            Replacement client-visible description for the selected configurable
            entity.
          nullable: true
        is_active:
          type: boolean
          description: >-
            Replacement lifecycle state: true keeps the entity available and
            false deactivates it.
        name:
          type: string
          description: >-
            Name of the entity to select within the request's entity category.
            The value must not be null or empty.
          nullable: true
          example: Example entity
        filter:
          $ref: '#/components/schemas/FilterBase'
        $type:
          type: string
          enum:
            - >-
              Derivitec.Web.Core.PositionFilters.ApiPositionFilterUpdateRequest,
              Derivitec.Web.Core
      additionalProperties: false
      description: >-
        Replacement display details, active state, and optional rule definition
        for an owned position filter.
    ApiPositionFilterUpdateResponse:
      required:
        - $type
      type: object
      additionalProperties: false
      description: >-
        Success state and errors returned after attempting to update a custom
        position filter.
      properties:
        is_success:
          type: boolean
          description: >-
            Whether the operation completed successfully. The default is `true`;
            error outcomes set it to `false`.
          example: true
        error_messages:
          type: array
          items:
            type: string
          description: >-
            Messages explaining operation-level failures. The collection is
            empty by default.
          nullable: true
        $type:
          type: string
          enum:
            - >-
              Derivitec.Web.Core.PositionFilters.ApiPositionFilterUpdateResponse,
              Derivitec.Web.Core
    FilterBase:
      description: Base selection criterion for a named report-data field.
      discriminator:
        propertyName: $type
        mapping:
          Derivitec.Web.Core.Filters.Filter, Derivitec.Web.Core: '#/components/schemas/FilterMintlifyShape'
          Derivitec.Web.Core.Filters.FilterBase, Derivitec.Web.Core: '#/components/schemas/FilterBaseMintlifyShape'
          Derivitec.Web.Core.Filters.MultiFilter, Derivitec.Web.Core: '#/components/schemas/MultiFilter'
          Derivitec.Web.Core.Filters.StringFilter, Derivitec.Web.Core: '#/components/schemas/StringFilter'
      oneOf:
        - $ref: '#/components/schemas/FilterMintlifyShape'
        - $ref: '#/components/schemas/FilterBaseMintlifyShape'
        - $ref: '#/components/schemas/MultiFilter'
        - $ref: '#/components/schemas/StringFilter'
    FilterMintlifyShape:
      required:
        - $type
      type: object
      properties:
        field:
          type: string
          description: Name of the report-data field evaluated by this criterion.
          nullable: true
        type:
          type: string
          nullable: true
        $type:
          type: string
          enum:
            - Derivitec.Web.Core.Filters.Filter, Derivitec.Web.Core
      additionalProperties: false
    FilterBaseMintlifyShape:
      required:
        - $type
      type: object
      properties:
        field:
          type: string
          description: Name of the report-data field evaluated by this criterion.
          nullable: true
        $type:
          type: string
          enum:
            - Derivitec.Web.Core.Filters.FilterBase, Derivitec.Web.Core
      additionalProperties: false
      description: Base selection criterion for a named report-data field.
    MultiFilter:
      required:
        - $type
      type: object
      properties:
        field:
          type: string
          description: Name of the report-data field evaluated by this criterion.
          nullable: true
        operator:
          enum:
            - not_set
            - and
            - or
          type: string
          description: Logical rule used to combine the child criteria.
        conditions:
          type: array
          items:
            $ref: '#/components/schemas/FilterBase'
          description: >-
            Child criteria evaluated by the selected logical operator; nested
            groups are permitted.
          nullable: true
        $type:
          type: string
          enum:
            - Derivitec.Web.Core.Filters.MultiFilter, Derivitec.Web.Core
      additionalProperties: false
      description: >-
        Nested filter group that combines child criteria with a logical
        operator.
    StringFilter:
      required:
        - $type
      type: object
      properties:
        field:
          type: string
          description: Name of the report-data field evaluated by this criterion.
          nullable: true
        type:
          type: string
          nullable: true
        filter:
          type: string
          nullable: true
        $type:
          type: string
          enum:
            - Derivitec.Web.Core.Filters.StringFilter, Derivitec.Web.Core
      additionalProperties: false
  securitySchemes:
    oauth2:
      type: oauth2
      description: >-
        OAuth2 access-token requested from AWS Cognito and provided as a Auth
        Bearer header
      flows:
        implicit:
          authorizationUrl: https://auth.riskportal.derivitec.com/oauth2/authorize
          scopes: {}
    apikey:
      type: apiKey
      description: API-Key requested via the site and provided as a header
      name: x-api-key
      in: header

````