Apache NiFi Policies API

The Policies API from Apache NiFi — 3 operation(s) for policies.

Operations 5

POST /policies Creates an access policy #
GET /policies/{action}/{resource} Gets an access policy for the specified action and resource #
DELETE /policies/{id} Deletes an access policy #
GET /policies/{id} Gets an access policy #
PUT /policies/{id} Updates a access policy #

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/apache-nifi:apache-nifi-policies-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

apache-nifi-policies-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  contact:
    email: dev@nifi.apache.org
    url: https://nifi.apache.org
  description: REST API definition for Apache NiFi web services
  license:
    name: Apache 2.0
    url: https://www.apache.org/licenses/LICENSE-2.0.html
  title: Apache NiFi REST Policies API
  version: 2.12.0
security:
- HTTPBearerJWT: []
- CookieSecureAuthorizationBearer: []
tags:
- name: Policies
paths:
  /policies:
    post:
      operationId: createAccessPolicy
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/AccessPolicyEntity'
        description: The access policy configuration details.
        required: true
      responses:
        '201':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AccessPolicyEntity'
        '400':
          description: NiFi was unable to complete the request because it was invalid. The request should not be retried without modification.
        '401':
          description: Client could not be authenticated.
        '403':
          description: Client is not authorized to make this request.
        '404':
          description: The specified resource could not be found.
        '409':
          description: The request was valid but NiFi was not in the appropriate state to process it.
      security:
      - Write - /policies/{resource}: []
      summary: Creates an access policy
      tags:
      - Policies
  /policies/{action}/{resource}:
    get:
      description: Will return the effective policy if no component specific policy exists for the specified action and resource. Must have Read permissions to the policy with the desired action and resource. Permissions for the policy that is returned will be indicated in the response. This means the client could be authorized to get the policy for a given component but the effective policy may be inherited from an ancestor Process Group. If the client does not have permissions to that policy, the response will not include the policy and the permissions in the response will be marked accordingly. If the client does not have permissions to the policy of the desired action and resource a 403 response will be returned.
      operationId: getAccessPolicyForResource
      parameters:
      - description: The request action.
        in: path
        name: action
        required: true
        schema:
          type: string
      - description: The resource of the policy.
        in: path
        name: resource
        required: true
        schema:
          type: string
          pattern: .+
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AccessPolicyEntity'
        '400':
          description: NiFi was unable to complete the request because it was invalid. The request should not be retried without modification.
        '401':
          description: Client could not be authenticated.
        '403':
          description: Client is not authorized to make this request.
        '404':
          description: The specified resource could not be found.
        '409':
          description: The request was valid but NiFi was not in the appropriate state to process it.
      security:
      - Read - /policies/{resource}: []
      summary: Gets an access policy for the specified action and resource
      tags:
      - Policies
  /policies/{id}:
    delete:
      operationId: removeAccessPolicy
      parameters:
      - description: The revision is used to verify the client is working with the latest version of the flow.
        in: query
        name: version
        schema:
          $ref: '#/components/schemas/LongParameter'
      - description: If the client id is not specified, new one will be generated. This value (whether specified or generated) is included in the response.
        in: query
        name: clientId
        schema:
          $ref: '#/components/schemas/ClientIdParameter'
      - description: Acknowledges that this node is disconnected to allow for mutable requests to proceed.
        in: query
        name: disconnectedNodeAcknowledged
        schema:
          type: boolean
          default: false
      - description: The access policy id.
        in: path
        name: id
        required: true
        schema:
          type: string
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AccessPolicyEntity'
        '400':
          description: NiFi was unable to complete the request because it was invalid. The request should not be retried without modification.
        '401':
          description: Client could not be authenticated.
        '403':
          description: Client is not authorized to make this request.
        '404':
          description: The specified resource could not be found.
        '409':
          description: The request was valid but NiFi was not in the appropriate state to process it.
      security:
      - Write - /policies/{resource}: []
      - Write - Policy of the parent resource - /policies/{resource}: []
      summary: Deletes an access policy
      tags:
      - Policies
    get:
      operationId: getAccessPolicy
      parameters:
      - description: The access policy id.
        in: path
        name: id
        required: true
        schema:
          type: string
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AccessPolicyEntity'
        '400':
          description: NiFi was unable to complete the request because it was invalid. The request should not be retried without modification.
        '401':
          description: Client could not be authenticated.
        '403':
          description: Client is not authorized to make this request.
        '404':
          description: The specified resource could not be found.
        '409':
          description: The request was valid but NiFi was not in the appropriate state to process it.
      security:
      - Read - /policies/{resource}: []
      summary: Gets an access policy
      tags:
      - Policies
    put:
      operationId: updateAccessPolicy
      parameters:
      - description: The access policy id.
        in: path
        name: id
        required: true
        schema:
          type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/AccessPolicyEntity'
        description: The access policy configuration details.
        required: true
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AccessPolicyEntity'
        '400':
          description: NiFi was unable to complete the request because it was invalid. The request should not be retried without modification.
        '401':
          description: Client could not be authenticated.
        '403':
          description: Client is not authorized to make this request.
        '404':
          description: The specified resource could not be found.
        '409':
          description: The request was valid but NiFi was not in the appropriate state to process it.
      security:
      - Write - /policies/{resource}: []
      summary: Updates a access policy
      tags:
      - Policies
components:
  schemas:
    TenantEntity:
      type: object
      description: The set of user group IDs associated with this access policy.
      properties:
        bulletins:
          type: array
          description: The bulletins for this component.
          items:
            $ref: '#/components/schemas/BulletinEntity'
        component:
          $ref: '#/components/schemas/TenantDTO'
        disconnectedNodeAcknowledged:
          type: boolean
          description: Acknowledges that this node is disconnected to allow for mutable requests to proceed.
        id:
          type: string
          description: The id of the component.
        permissions:
          $ref: '#/components/schemas/PermissionsDTO'
        position:
          $ref: '#/components/schemas/PositionDTO'
        revision:
          $ref: '#/components/schemas/RevisionDTO'
        uri:
          type: string
          description: The URI for futures requests to the component.
      xml:
        name: tenantEntity
    AccessPolicyEntity:
      type: object
      description: The access policies this user group belongs to. This field was incorrectly defined as an AccessPolicyEntity. For compatibility reasons the field will remain of this type, however only the fields that are present in the AccessPolicySummaryEntity will be populated here.
      properties:
        bulletins:
          type: array
          description: The bulletins for this component.
          items:
            $ref: '#/components/schemas/BulletinEntity'
        component:
          $ref: '#/components/schemas/AccessPolicyDTO'
        disconnectedNodeAcknowledged:
          type: boolean
          description: Acknowledges that this node is disconnected to allow for mutable requests to proceed.
        generated:
          type: string
          description: When this content was generated.
        id:
          type: string
          description: The id of the component.
        permissions:
          $ref: '#/components/schemas/PermissionsDTO'
        position:
          $ref: '#/components/schemas/PositionDTO'
        revision:
          $ref: '#/components/schemas/RevisionDTO'
        uri:
          type: string
          description: The URI for futures requests to the component.
      readOnly: true
      xml:
        name: accessPolicyEntity
    PermissionsDTO:
      type: object
      description: The permissions for this component.
      properties:
        canRead:
          type: boolean
          description: Indicates whether the user can read a given resource.
          readOnly: true
        canWrite:
          type: boolean
          description: Indicates whether the user can write a given resource.
          readOnly: true
    ComponentReferenceDTO:
      type: object
      properties:
        id:
          type: string
          description: The id of the component.
        name:
          type: string
          description: The name of the component.
        parentGroupId:
          type: string
          description: The id of parent process group of this component if applicable.
        position:
          $ref: '#/components/schemas/PositionDTO'
        versionedComponentId:
          type: string
          description: The ID of the corresponding component that is under version control
    BulletinEntity:
      type: object
      description: The bulletins for this component.
      properties:
        bulletin:
          $ref: '#/components/schemas/BulletinDTO'
        canRead:
          type: boolean
          description: Indicates whether the user can read a given resource.
          readOnly: true
        groupId:
          type: string
        id:
          type: integer
          format: int64
        nodeAddress:
          type: string
        sourceId:
          type: string
        timestamp:
          type: string
          description: When this bulletin was generated.
        timestampIso:
          type: string
          description: When this bulletin was generated in ISO format with full date and milliseconds.
      xml:
        name: bulletinEntity
    ComponentReferenceEntity:
      type: object
      description: Component this policy references if applicable.
      properties:
        bulletins:
          type: array
          description: The bulletins for this component.
          items:
            $ref: '#/components/schemas/BulletinEntity'
        component:
          $ref: '#/components/schemas/ComponentReferenceDTO'
        disconnectedNodeAcknowledged:
          type: boolean
          description: Acknowledges that this node is disconnected to allow for mutable requests to proceed.
        id:
          type: string
          description: The id of the component.
        parentGroupId:
          type: string
          description: The id of parent process group of this component if applicable.
        permissions:
          $ref: '#/components/schemas/PermissionsDTO'
        position:
          $ref: '#/components/schemas/PositionDTO'
        revision:
          $ref: '#/components/schemas/RevisionDTO'
        uri:
          type: string
          description: The URI for futures requests to the component.
      xml:
        name: componentReferenceEntity
    BulletinDTO:
      type: object
      properties:
        category:
          type: string
          description: The category of this bulletin.
        groupId:
          type: string
          description: The group id of the source component.
        id:
          type: integer
          format: int64
          description: The id of the bulletin.
        level:
          type: string
          description: The level of the bulletin.
        message:
          type: string
          description: The bulletin message.
        nodeAddress:
          type: string
          description: If clustered, the address of the node from which the bulletin originated.
        sourceId:
          type: string
          description: The id of the source component.
        sourceName:
          type: string
          description: The name of the source component.
        sourceType:
          type: string
          description: The type of the source component
        stackTrace:
          type: string
          description: The stack trace associated with the bulletin, if any.
        timestamp:
          type: string
          description: When this bulletin was generated.
        timestampIso:
          type: string
          description: When this bulletin was generated in ISO format with full date and milliseconds.
    LongParameter:
      type: object
      properties:
        long:
          type: integer
          format: int64
    AccessPolicyDTO:
      type: object
      properties:
        action:
          type: string
          description: The action associated with this access policy.
          enum:
          - read
          - write
        componentReference:
          $ref: '#/components/schemas/ComponentReferenceEntity'
        configurable:
          type: boolean
          description: Whether this policy is configurable.
        id:
          type: string
          description: The id of the component.
        parentGroupId:
          type: string
          description: The id of parent process group of this component if applicable.
        position:
          $ref: '#/components/schemas/PositionDTO'
        resource:
          type: string
          description: The resource for this access policy.
        userGroups:
          type: array
          description: The set of user group IDs associated with this access policy.
          items:
            $ref: '#/components/schemas/TenantEntity'
          uniqueItems: true
        users:
          type: array
          description: The set of user IDs associated with this access policy.
          items:
            $ref: '#/components/schemas/TenantEntity'
          uniqueItems: true
        versionedComponentId:
          type: string
          description: The ID of the corresponding component that is under version control
    PositionDTO:
      type: object
      description: The position of this component in the UI if applicable.
      properties:
        x:
          type: number
          format: double
          description: The x coordinate.
        y:
          type: number
          format: double
          description: The y coordinate.
    ClientIdParameter:
      type: object
      properties:
        clientId:
          type: string
    TenantDTO:
      type: object
      properties:
        configurable:
          type: boolean
          description: Whether this tenant is configurable.
        id:
          type: string
          description: The id of the component.
        identity:
          type: string
          description: The identity of the tenant.
        parentGroupId:
          type: string
          description: The id of parent process group of this component if applicable.
        position:
          $ref: '#/components/schemas/PositionDTO'
        versionedComponentId:
          type: string
          description: The ID of the corresponding component that is under version control
    RevisionDTO:
      type: object
      description: The revision of the Process Group
      properties:
        clientId:
          type: string
          description: 'A client identifier used to make a request.

            By including a client identifier, the API can allow multiple requests without needing the current revision.

            Due to the asynchronous nature of requests/responses this was implemented to allow the client to make numerous requests without having to wait for the previous response to come back

            '
        lastModifier:
          type: string
          description: The user that last modified the flow.
          readOnly: true
        version:
          type: integer
          format: int64
          description: 'NiFi employs an optimistic locking strategy where the client must include a revision in their request when performing an update.

            In a response to a mutable flow request, this field represents the updated base version.

            '
  securitySchemes:
    CookieSecureAuthorizationBearer:
      description: JSON Web Token authentication with session cookie
      in: cookie
      name: __Secure-Authorization-Bearer
      type: apiKey
    HTTPBearerJWT:
      bearerFormat: JWT
      description: HTTP Bearer authentication with JSON Web Token
      scheme: Bearer
      type: http
x-provenance:
  method: harvested
  publisher: Apache NiFi
  source: https://nifi.apache.org/nifi-docs/swagger.yaml
  note: split by refine-openapis from the provider's own published document, verified by fetch (openapi/_original/*.fetch.json);
    stamped by stamp-openapi-provenance.py (roadmap#793)