SNMP Credential Profiles

Engineer or admin CRUD for reusable SNMP credential profiles. Profiles decouple credentials from individual SNMP targets, allowing multiple targets to share a single set of credentials. When a profile is deleted, linked targets revert to their inline credentials (ON DELETE SET NULL).

Create SNMP Credential Profile

POST /api/v1/snmp-credential-profiles

Request body:

{
  "name": "campus-v2c",
  "description": "SNMPv2c community for campus routers",
  "version": "v2c",
  "community": "public"
}

SNMPv3 example:

{
  "name": "dc-v3-authpriv",
  "description": "SNMPv3 auth+priv for datacenter switches",
  "version": "v3",
  "v3_user": "snmpuser",
  "v3_auth_proto": "SHA",
  "v3_auth_pass": "authpass123",
  "v3_priv_proto": "AES",
  "v3_priv_pass": "privpass123"
}

Validation:

Response: 201 Created

{
  "id": "uuid",
  "name": "campus-v2c",
  "description": "SNMPv2c community for campus routers",
  "version": "v2c",
  "community": "public",
  "v3_user": null,
  "v3_auth_proto": null,
  "v3_auth_pass": null,
  "v3_priv_proto": null,
  "v3_priv_pass": null,
  "created_at": "2026-02-24T12:00:00Z",
  "updated_at": "2026-02-24T12:00:00Z"
}

Error responses:

List SNMP Credential Profiles

GET /api/v1/snmp-credential-profiles

List all credential profiles. Each profile includes a computed target_count field indicating how many SNMP targets reference it.

Response: 200 OK

[
  {
    "id": "uuid",
    "name": "campus-v2c",
    "description": "SNMPv2c community for campus routers",
    "version": "2c",
    "community": "public",
    "v3_user": null,
    "v3_auth_proto": null,
    "v3_auth_pass": null,
    "v3_priv_proto": null,
    "v3_priv_pass": null,
    "target_count": 14,
    "created_at": "2026-02-24T12:00:00Z",
    "updated_at": "2026-02-24T12:00:00Z"
  }
]

Notes:

Error responses:

Get SNMP Credential Profile

GET /api/v1/snmp-credential-profiles/{profileID}

Get a single credential profile by ID.

Path parameters:

Response: 200 OK (single credential profile object, includes target_count)

Error responses:

Update SNMP Credential Profile

PUT /api/v1/snmp-credential-profiles/{profileID}

Partial update of a credential profile. Uses read-merge-write -- only fields present in the request body are updated; other fields are preserved.

Path parameters:

Request body (all fields optional):

{
  "name": "campus-v2c-updated",
  "description": "Updated description",
  "version": "3",
  "community": null,
  "v3_user": "newuser",
  "v3_auth_proto": "SHA",
  "v3_auth_pass": "newauthpass",
  "v3_priv_proto": "AES",
  "v3_priv_pass": "newprivpass"
}

Notes:

Response: 200 OK (updated credential profile object)

Error responses:

Delete SNMP Credential Profile

DELETE /api/v1/snmp-credential-profiles/{profileID}

Delete a credential profile. Linked SNMP targets have their credential_profile_id set to NULL (ON DELETE SET NULL), reverting them to inline credentials.

Path parameters:

Response: 204 No Content

Error responses: