naftiko: 1.0.0-alpha2 info: label: Veritas NetBackup REST API — Policies description: 'Veritas NetBackup REST API — Policies. 11 operations. Lead operation: Veritas Netbackup List Backup Policies. Self-contained Naftiko capability covering one Veritas Netbackup business surface.' tags: - Veritas Netbackup - Policies created: '2026-05-19' modified: '2026-05-19' binds: - namespace: env keys: VERITAS_NETBACKUP_API_KEY: VERITAS_NETBACKUP_API_KEY capability: consumes: - type: http namespace: rest-policies baseUri: https://{primaryServer}:1556/netbackup description: Veritas NetBackup REST API — Policies business capability. Self-contained, no shared references. resources: - name: config-policies path: /config/policies operations: - name: listpolicies method: GET description: Veritas Netbackup List Backup Policies outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: page[limit] in: query type: integer description: Maximum number of policies to return - name: page[offset] in: query type: integer description: Number of policies to skip for pagination - name: filter in: query type: string description: 'OData-style filter expression. Supported fields include policyName and policyType. Example: policyName eq ''my-policy''' - name: createpolicy method: POST description: Veritas Netbackup Create a Backup Policy outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: body in: body type: object description: Request body (JSON). required: true - name: config-policies-policyName path: /config/policies/{policyName} operations: - name: getpolicy method: GET description: Veritas Netbackup Get a Backup Policy outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: policyName in: path type: string description: The name of the policy to retrieve required: true - name: updatepolicy method: PUT description: Veritas Netbackup Update a Backup Policy outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: policyName in: path type: string description: The name of the policy to update required: true - name: If-Match in: header type: string description: ETag value for optimistic concurrency control. Must match the current ETag of the policy resource. - name: body in: body type: object description: Request body (JSON). required: true - name: deletepolicy method: DELETE description: Veritas Netbackup Delete a Backup Policy outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: policyName in: path type: string description: The name of the policy to delete required: true - name: config-policies-policyName-clients path: /config/policies/{policyName}/clients operations: - name: listpolicyclients method: GET description: Veritas Netbackup List Clients in a Policy outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: policyName in: path type: string description: The name of the policy required: true - name: updatepolicyclients method: PUT description: Veritas Netbackup Update Clients in a Policy outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: policyName in: path type: string description: The name of the policy required: true - name: body in: body type: object description: Request body (JSON). required: true - name: config-policies-policyName-schedules path: /config/policies/{policyName}/schedules operations: - name: listpolicyschedules method: GET description: Veritas Netbackup List Schedules in a Policy outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: policyName in: path type: string description: The name of the policy required: true - name: config-policies-policyName-schedules-scheduleName path: /config/policies/{policyName}/schedules/{scheduleName} operations: - name: getpolicyschedule method: GET description: Veritas Netbackup Get a Specific Policy Schedule outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: policyName in: path type: string description: The name of the policy required: true - name: scheduleName in: path type: string description: The name of the schedule required: true - name: updatepolicyschedule method: PUT description: Veritas Netbackup Create or Update a Policy Schedule outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: policyName in: path type: string description: The name of the policy required: true - name: scheduleName in: path type: string description: The name of the schedule to create or update required: true - name: body in: body type: object description: Request body (JSON). required: true - name: deletepolicyschedule method: DELETE description: Veritas Netbackup Delete a Policy Schedule outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: policyName in: path type: string description: The name of the policy required: true - name: scheduleName in: path type: string description: The name of the schedule to delete required: true authentication: type: bearer token: '{{env.VERITAS_NETBACKUP_API_KEY}}' exposes: - type: rest namespace: rest-policies-rest port: 8080 description: REST adapter for Veritas NetBackup REST API — Policies. One Spectral-compliant resource per consumed operation, prefixed with /v1. resources: - path: /v1/config/policies name: config-policies description: REST surface for config-policies. operations: - method: GET name: listpolicies description: Veritas Netbackup List Backup Policies call: rest-policies.listpolicies with: page[limit]: rest.page[limit] page[offset]: rest.page[offset] filter: rest.filter outputParameters: - type: object mapping: $. - method: POST name: createpolicy description: Veritas Netbackup Create a Backup Policy call: rest-policies.createpolicy with: body: rest.body outputParameters: - type: object mapping: $. - path: /v1/config/policies/{policyname} name: config-policies-policyname description: REST surface for config-policies-policyName. operations: - method: GET name: getpolicy description: Veritas Netbackup Get a Backup Policy call: rest-policies.getpolicy with: policyName: rest.policyName outputParameters: - type: object mapping: $. - method: PUT name: updatepolicy description: Veritas Netbackup Update a Backup Policy call: rest-policies.updatepolicy with: policyName: rest.policyName If-Match: rest.If-Match body: rest.body outputParameters: - type: object mapping: $. - method: DELETE name: deletepolicy description: Veritas Netbackup Delete a Backup Policy call: rest-policies.deletepolicy with: policyName: rest.policyName outputParameters: - type: object mapping: $. - path: /v1/config/policies/{policyname}/clients name: config-policies-policyname-clients description: REST surface for config-policies-policyName-clients. operations: - method: GET name: listpolicyclients description: Veritas Netbackup List Clients in a Policy call: rest-policies.listpolicyclients with: policyName: rest.policyName outputParameters: - type: object mapping: $. - method: PUT name: updatepolicyclients description: Veritas Netbackup Update Clients in a Policy call: rest-policies.updatepolicyclients with: policyName: rest.policyName body: rest.body outputParameters: - type: object mapping: $. - path: /v1/config/policies/{policyname}/schedules name: config-policies-policyname-schedules description: REST surface for config-policies-policyName-schedules. operations: - method: GET name: listpolicyschedules description: Veritas Netbackup List Schedules in a Policy call: rest-policies.listpolicyschedules with: policyName: rest.policyName outputParameters: - type: object mapping: $. - path: /v1/config/policies/{policyname}/schedules/{schedulename} name: config-policies-policyname-schedules-schedulename description: REST surface for config-policies-policyName-schedules-scheduleName. operations: - method: GET name: getpolicyschedule description: Veritas Netbackup Get a Specific Policy Schedule call: rest-policies.getpolicyschedule with: policyName: rest.policyName scheduleName: rest.scheduleName outputParameters: - type: object mapping: $. - method: PUT name: updatepolicyschedule description: Veritas Netbackup Create or Update a Policy Schedule call: rest-policies.updatepolicyschedule with: policyName: rest.policyName scheduleName: rest.scheduleName body: rest.body outputParameters: - type: object mapping: $. - method: DELETE name: deletepolicyschedule description: Veritas Netbackup Delete a Policy Schedule call: rest-policies.deletepolicyschedule with: policyName: rest.policyName scheduleName: rest.scheduleName outputParameters: - type: object mapping: $. - type: mcp namespace: rest-policies-mcp port: 9090 transport: http description: MCP adapter for Veritas NetBackup REST API — Policies. One tool per consumed operation, routed inline through this capability's consumes block. tools: - name: veritas-netbackup-list-backup-policies description: Veritas Netbackup List Backup Policies hints: readOnly: true destructive: false idempotent: true call: rest-policies.listpolicies with: page[limit]: tools.page[limit] page[offset]: tools.page[offset] filter: tools.filter outputParameters: - type: object mapping: $. - name: veritas-netbackup-create-backup-policy description: Veritas Netbackup Create a Backup Policy hints: readOnly: false destructive: false idempotent: false call: rest-policies.createpolicy with: body: tools.body outputParameters: - type: object mapping: $. - name: veritas-netbackup-get-backup-policy description: Veritas Netbackup Get a Backup Policy hints: readOnly: true destructive: false idempotent: true call: rest-policies.getpolicy with: policyName: tools.policyName outputParameters: - type: object mapping: $. - name: veritas-netbackup-update-backup-policy description: Veritas Netbackup Update a Backup Policy hints: readOnly: false destructive: false idempotent: true call: rest-policies.updatepolicy with: policyName: tools.policyName If-Match: tools.If-Match body: tools.body outputParameters: - type: object mapping: $. - name: veritas-netbackup-delete-backup-policy description: Veritas Netbackup Delete a Backup Policy hints: readOnly: false destructive: true idempotent: true call: rest-policies.deletepolicy with: policyName: tools.policyName outputParameters: - type: object mapping: $. - name: veritas-netbackup-list-clients-policy description: Veritas Netbackup List Clients in a Policy hints: readOnly: true destructive: false idempotent: true call: rest-policies.listpolicyclients with: policyName: tools.policyName outputParameters: - type: object mapping: $. - name: veritas-netbackup-update-clients-policy description: Veritas Netbackup Update Clients in a Policy hints: readOnly: false destructive: false idempotent: true call: rest-policies.updatepolicyclients with: policyName: tools.policyName body: tools.body outputParameters: - type: object mapping: $. - name: veritas-netbackup-list-schedules-policy description: Veritas Netbackup List Schedules in a Policy hints: readOnly: true destructive: false idempotent: true call: rest-policies.listpolicyschedules with: policyName: tools.policyName outputParameters: - type: object mapping: $. - name: veritas-netbackup-get-specific-policy description: Veritas Netbackup Get a Specific Policy Schedule hints: readOnly: true destructive: false idempotent: true call: rest-policies.getpolicyschedule with: policyName: tools.policyName scheduleName: tools.scheduleName outputParameters: - type: object mapping: $. - name: veritas-netbackup-create-update-policy description: Veritas Netbackup Create or Update a Policy Schedule hints: readOnly: false destructive: false idempotent: true call: rest-policies.updatepolicyschedule with: policyName: tools.policyName scheduleName: tools.scheduleName body: tools.body outputParameters: - type: object mapping: $. - name: veritas-netbackup-delete-policy-schedule description: Veritas Netbackup Delete a Policy Schedule hints: readOnly: false destructive: true idempotent: true call: rest-policies.deletepolicyschedule with: policyName: tools.policyName scheduleName: tools.scheduleName outputParameters: - type: object mapping: $.