openapi: 3.2.0 info: title: Mesh Policy Engine MPM Changeset Validation API version: 6.0.0 x-provenance: method: harvested authored_by: Cisco Security Cloud Control harvested_by: API Evangelist harvested_on: '2026-08-19' first_party: true note: Published by Cisco. Retrieved unmodified except for this x-provenance block. provider_published: true x-evidence: - type: source url: https://github.com/CiscoDevNet/scc-public-api-docs/blob/main/specs/mesh-policy.yaml - type: raw url: https://raw.githubusercontent.com/CiscoDevNet/scc-public-api-docs/main/specs/mesh-policy.yaml servers: - url: https://api.security.cisco.com/pinacl/api security: - BearerJWT: [] tags: - name: MPM Changeset Validation paths: /mpm/changeset/{changesetId}/error: get: description: 'Roles allowed: support, mpm-rw,mpm-ro' operationId: getChangesetError parameters: - in: path name: changesetId required: true schema: format: uuid type: string responses: '200': content: application/json: schema: $ref: '#/components/schemas/MpmChangesetContentError' description: Ok '400': description: Bad Request '401': description: Unauthorized '403': description: Forbidden '404': description: Not Found '500': description: Internal Server Error summary: Get the Changeset error using changesetId tags: - MPM Changeset Validation put: description: 'Roles allowed: support, mpm-rw' operationId: updateChangesetError parameters: - in: path name: changesetId required: true schema: format: uuid type: string requestBody: content: application/json: schema: $ref: '#/components/schemas/MpmChangesetErrorUpdate' required: true responses: '204': description: No Content '400': description: Bad Request '401': description: Unauthorized '403': description: Forbidden '404': description: Not Found '500': description: Internal Server Error summary: Update changeset content and error objects tags: - MPM Changeset Validation components: schemas: AppChangeError: properties: duplicateId: type: boolean duplicateName: type: boolean id: format: uuid type: string missing: type: boolean ticketError: $ref: '#/components/schemas/TicketError' undeletedRelErrs: $ref: '#/components/schemas/UndeletedAppRelationshipErrors' required: - id type: object MpmChangesetErrorUpdate: properties: content: $ref: '#/components/schemas/MpmChangesetContent' error: $ref: '#/components/schemas/MpmChangesetContentError' type: object UndeletedEndpointRelationshipErrors: properties: grpRefs: items: format: uuid type: string type: array natRuleRefs: items: $ref: '#/components/schemas/ParentNatRuleEndpointRelationship' type: array ruleRefs: items: $ref: '#/components/schemas/ParentRuleRelationship' type: array type: object EndpointGroupChangeError: properties: duplicateId: type: boolean duplicateName: type: boolean epErrs: $ref: '#/components/schemas/RelationshipChanges' epgErrs: $ref: '#/components/schemas/RelationshipChanges' id: format: uuid type: string missing: type: boolean ticketError: $ref: '#/components/schemas/TicketError' undeletedRelErrs: $ref: '#/components/schemas/UndeletedEndpointRelationshipErrors' required: - id type: object PolicyRuleOrderChange: properties: newOrder: items: format: uuid type: string type: array oldOrder: items: format: uuid type: string type: array type: object AppInfoChange: properties: description: type: string name: type: string value: type: string type: object ManagerInfoChange: properties: description: type: string name: type: string type: object TicketError: properties: invalidTicket: type: boolean invalidTicketErr: type: string ticketRequired: type: boolean type: object ManagerChangeBody: properties: apgs: items: $ref: '#/components/schemas/AppGroupChange' type: array aps: items: $ref: '#/components/schemas/AppChange' type: array epgs: items: $ref: '#/components/schemas/EndpointGroupChange' type: array eps: items: $ref: '#/components/schemas/EndpointChange' type: array info: $ref: '#/components/schemas/ManagerInfoChange' policies: items: $ref: '#/components/schemas/PolicyChange' type: array type: object AppGroupChange: properties: action: enum: - CREATE - UPDATE - DELETE type: string body: $ref: '#/components/schemas/AppGroupChangeBody' extId: type: string id: format: uuid type: string required: - action - id type: object PolicyChangeBody: properties: info: $ref: '#/components/schemas/PolicyInfoChange' natRules: items: $ref: '#/components/schemas/NatRuleChange' type: array ruleOrder: $ref: '#/components/schemas/PolicyRuleOrderChange' rules: items: $ref: '#/components/schemas/RuleChange' type: array targets: $ref: '#/components/schemas/TargetRelationshipChanges' type: object NatRuleChange: properties: action: enum: - CREATE - UPDATE - DELETE type: string body: $ref: '#/components/schemas/NatRuleChangeBody' extId: type: string id: format: uuid type: string required: - action - id type: object PolicyInfoChange: properties: description: type: string name: type: string policyType: enum: - SECURITY - GOVERNANCE_PREPEND - GOVERNANCE_APPEND - NAT type: string type: object EndpointChangeBody: properties: info: $ref: '#/components/schemas/EndpointInfoChange' required: - info type: object RuleChangeBody: properties: apgs: $ref: '#/components/schemas/RelationshipChanges' aps: $ref: '#/components/schemas/RelationshipChanges' dstDgs: $ref: '#/components/schemas/MpmDynamicGroupRelationshipChanges' dstEpgs: $ref: '#/components/schemas/RelationshipChanges' dstEps: $ref: '#/components/schemas/RelationshipChanges' info: $ref: '#/components/schemas/RuleInfoChange' srcDgs: $ref: '#/components/schemas/MpmDynamicGroupRelationshipChanges' srcEpgs: $ref: '#/components/schemas/RelationshipChanges' srcEps: $ref: '#/components/schemas/RelationshipChanges' type: object AppGroupInfoChange: properties: description: type: string name: type: string type: object TargetRelationshipChangeError: properties: add: items: type: string type: array natErrs: items: type: string type: array rem: items: type: string type: array ticketError: $ref: '#/components/schemas/TicketError' type: object RuleChangeError: properties: apErrs: $ref: '#/components/schemas/RelationshipChangeError' apgErrs: $ref: '#/components/schemas/RelationshipChangeError' dgsInUnpinnedRule: type: boolean dstDgErrs: $ref: '#/components/schemas/MpmDynamicGroupRelationshipChangeError' dstEpErrs: $ref: '#/components/schemas/RelationshipChangeError' dstEpgErrs: $ref: '#/components/schemas/RelationshipChangeError' duplicateId: type: boolean id: format: uuid type: string missing: type: boolean srcDgErrs: $ref: '#/components/schemas/MpmDynamicGroupRelationshipChangeError' srcEpErrs: $ref: '#/components/schemas/RelationshipChangeError' srcEpgErrs: $ref: '#/components/schemas/RelationshipChangeError' ticketError: $ref: '#/components/schemas/TicketError' required: - id type: object ParentNatRuleEndpointRelationship: properties: behaviour: enum: - MATCH - TRANSLATED type: string direction: enum: - DST - SRC type: string id: format: uuid type: string policyId: format: uuid type: string required: - behaviour - direction - id - policyId type: object NatRuleChangeError: properties: apMatchErrs: items: $ref: '#/components/schemas/NatRuleRelationshipChangesError' type: array apTranslatedErrs: items: $ref: '#/components/schemas/NatRuleRelationshipChangesError' type: array apgMatchErrs: items: $ref: '#/components/schemas/NatRuleRelationshipChangesError' type: array dstEpMatchErrs: items: $ref: '#/components/schemas/NatRuleRelationshipChangesError' type: array dstEpTranslatedErrs: items: $ref: '#/components/schemas/NatRuleRelationshipChangesError' type: array dstEpgMatchErrs: items: $ref: '#/components/schemas/NatRuleRelationshipChangesError' type: array duplicateId: type: boolean id: format: uuid type: string missing: type: boolean srcEpMatchErrs: items: $ref: '#/components/schemas/NatRuleRelationshipChangesError' type: array srcEpTranslatedErrs: items: $ref: '#/components/schemas/NatRuleRelationshipChangesError' type: array srcEpgMatchErrs: items: $ref: '#/components/schemas/NatRuleRelationshipChangesError' type: array ticketError: $ref: '#/components/schemas/TicketError' type: object EndpointGroupChangeBody: properties: epgs: $ref: '#/components/schemas/RelationshipChanges' eps: $ref: '#/components/schemas/RelationshipChanges' info: $ref: '#/components/schemas/EndpointGroupInfoChange' type: object AppGroupChangeBody: properties: apgs: $ref: '#/components/schemas/RelationshipChanges' aps: $ref: '#/components/schemas/RelationshipChanges' info: $ref: '#/components/schemas/AppGroupInfoChange' type: object PolicyChange: properties: action: enum: - CREATE - UPDATE - DELETE type: string body: $ref: '#/components/schemas/PolicyChangeBody' extId: type: string id: format: uuid type: string required: - action - id type: object NatMatchInfoChange: properties: apgs: $ref: '#/components/schemas/RelationshipChanges' aps: $ref: '#/components/schemas/RelationshipChanges' dstEpgs: $ref: '#/components/schemas/RelationshipChanges' dstEps: $ref: '#/components/schemas/RelationshipChanges' srcEpgs: $ref: '#/components/schemas/RelationshipChanges' srcEps: $ref: '#/components/schemas/RelationshipChanges' type: object RuleChange: properties: action: enum: - CREATE - UPDATE - DELETE type: string body: $ref: '#/components/schemas/RuleChangeBody' extId: type: string id: format: uuid type: string required: - action - id type: object EndpointGroupInfoChange: properties: description: type: string name: type: string type: object AppGroupChangeError: properties: apErrs: $ref: '#/components/schemas/RelationshipChanges' apgErrs: $ref: '#/components/schemas/RelationshipChanges' duplicateId: type: boolean duplicateName: type: boolean id: format: uuid type: string missing: type: boolean ticketError: $ref: '#/components/schemas/TicketError' undeletedRelErrs: $ref: '#/components/schemas/UndeletedAppRelationshipErrors' required: - id type: object PolicyChangeError: properties: duplicateId: type: boolean duplicateName: type: boolean id: format: uuid type: string missing: type: boolean natRuleErrors: items: $ref: '#/components/schemas/NatRuleChangeError' type: array ruleErrs: items: $ref: '#/components/schemas/RuleChangeError' type: array ruleOrderErr: type: string targetErrs: $ref: '#/components/schemas/TargetRelationshipChangeError' ticketError: $ref: '#/components/schemas/TicketError' undeletedDeviceSetErrs: items: type: string type: array required: - id type: object RelationshipChanges: properties: add: items: format: uuid type: string type: array rem: items: format: uuid type: string type: array type: object ParentRuleRelationship: properties: direction: enum: - DST - SRC type: string id: format: uuid type: string policyId: format: uuid type: string required: - direction - id - policyId type: object NatRuleChangeBody: properties: info: $ref: '#/components/schemas/NatRuleInfoChange' matchInfo: $ref: '#/components/schemas/NatMatchInfoChange' translatedInfo: $ref: '#/components/schemas/NatTranslatedInfoChange' type: object RuleInfoChange: properties: action: enum: - PERMIT - DENY type: string description: type: string enabled: type: boolean fullyPinned: type: boolean onClose: type: boolean onInit: type: boolean ruleGroup: type: string type: object AppChangeBody: properties: info: $ref: '#/components/schemas/AppInfoChange' required: - info type: object AppChange: properties: action: enum: - CREATE - UPDATE - DELETE type: string body: $ref: '#/components/schemas/AppChangeBody' extId: type: string id: format: uuid type: string required: - action - id type: object ParentNatRuleAppRelationship: properties: behaviour: enum: - MATCH - TRANSLATED type: string id: format: uuid type: string policyId: format: uuid type: string required: - behaviour - id - policyId type: object TargetRelationshipChanges: properties: add: items: type: string type: array rem: items: type: string type: array type: object NatTranslatedInfoChange: properties: ap: $ref: '#/components/schemas/RelationshipChanges' dstEp: $ref: '#/components/schemas/RelationshipChanges' srcEp: $ref: '#/components/schemas/RelationshipChanges' type: object RuleId: properties: id: format: uuid type: string policyId: format: uuid type: string required: - id - policyId type: object MpmChangesetContent: properties: extIds: items: type: string type: array managers: items: $ref: '#/components/schemas/ManagerChange' type: array required: - managers type: object ManagerChangeError: properties: apErrs: items: $ref: '#/components/schemas/AppChangeError' type: array apgErrs: items: $ref: '#/components/schemas/AppGroupChangeError' type: array duplicateId: type: boolean duplicateName: type: boolean epErrs: items: $ref: '#/components/schemas/EndpointChangeError' type: array epgErrs: items: $ref: '#/components/schemas/EndpointGroupChangeError' type: array id: format: uuid type: string missing: type: boolean policyErrs: items: $ref: '#/components/schemas/PolicyChangeError' type: array ticketError: $ref: '#/components/schemas/TicketError' undeletedDeviceSetErrs: items: type: string type: array required: - id type: object EndpointChange: properties: action: enum: - CREATE - UPDATE - DELETE type: string body: $ref: '#/components/schemas/EndpointChangeBody' extId: type: string id: format: uuid type: string required: - action - id type: object MpmDynamicGroupRelationshipChanges: properties: add: items: type: string type: array rem: items: type: string type: array type: object MpmChangesetContentError: properties: managerErrs: items: $ref: '#/components/schemas/ManagerChangeError' type: array type: object UndeletedAppRelationshipErrors: properties: grpRefs: items: format: uuid type: string type: array natRuleRefs: items: $ref: '#/components/schemas/ParentNatRuleAppRelationship' type: array ruleRefs: items: $ref: '#/components/schemas/RuleId' type: array type: object NatRuleInfoChange: properties: appNatType: enum: - MATCH - STATIC type: string description: type: string dstNatType: enum: - MATCH - STATIC type: string enabled: type: boolean ruleGroup: type: string srcNatType: enum: - MATCH - STATIC - HIDE type: string type: object ManagerChange: properties: action: enum: - CREATE - UPDATE - DELETE type: string body: $ref: '#/components/schemas/ManagerChangeBody' extId: type: string id: format: uuid type: string required: - action - id type: object EndpointInfoChange: properties: description: type: string name: type: string value: type: string type: object MpmDynamicGroupRelationshipChangeError: properties: add: items: type: string type: array rem: items: type: string type: array ticketError: $ref: '#/components/schemas/TicketError' type: object EndpointChangeError: properties: duplicateId: type: boolean duplicateName: type: boolean id: format: uuid type: string missing: type: boolean ticketError: $ref: '#/components/schemas/TicketError' undeletedRelErrs: $ref: '#/components/schemas/UndeletedEndpointRelationshipErrors' required: - id type: object RelationshipChangeError: properties: add: items: format: uuid type: string type: array rem: items: format: uuid type: string type: array ticketError: $ref: '#/components/schemas/TicketError' type: object NatRuleRelationshipChangesError: properties: add: items: format: uuid type: string type: array errorMessage: type: string rem: items: format: uuid type: string type: array ticketError: $ref: '#/components/schemas/TicketError' type: object EndpointGroupChange: properties: action: enum: - CREATE - UPDATE - DELETE type: string body: $ref: '#/components/schemas/EndpointGroupChangeBody' extId: type: string id: format: uuid type: string required: - action - id type: object securitySchemes: BearerJWT: bearerFormat: jwt scheme: bearer type: http