{
  "openapi": "3.0.1",
  "info": {
    "title": "Carrier Credentials API",
    "description": "Manages carrier credentials and product groups for PL CPQ agencies. All paths are tenanted by organization and agency.",
    "version": "v1.0"
  },
  "servers": [
    {
      "url": "https://api.zywave.com"
    }
  ],
  "security": [],
  "paths": {
    "/v3/quoting/personalLines/v1/org/{orgId}/agency/{agencyId}/credentialManagement/credential": {
      "get": {
        "tags": [
          "Credential"
        ],
        "summary": "Credential — lists carrier credentials for an agency.",
        "parameters": [
          {
            "$ref": "#/components/parameters/organizationId"
          },
          {
            "$ref": "#/components/parameters/agencyId"
          },
          {
            "name": "carrierProductId",
            "in": "query",
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "ownerUserRef",
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "carrierId",
            "in": "query",
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "state",
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "lob",
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "skip",
            "in": "query",
            "description": "Number of records to skip. Mutually exclusive with pageIndex/pageSize — use either skip/take or pageIndex/pageSize, not both.",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "take",
            "in": "query",
            "description": "Number of records to return. Clamped server-side to 1-500; defaults to 100 if omitted.",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "pageIndex",
            "in": "query",
            "description": "Zero-based page index. Must be sent together with pageSize.",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "pageSize",
            "in": "query",
            "description": "Page size. Must be sent together with pageIndex. Clamped server-side to 1-500; defaults to 100 if omitted.",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "security": [
          {
            "oauth2": [
              "api.carriercredentials"
            ]
          },
          {
            "oauth2": [
              "api.carriercredentials:read"
            ]
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PagedResultOfCredential"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "403": {
            "description": "Forbidden",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          }
        }
      },
      "post": {
        "tags": [
          "Credential"
        ],
        "summary": "Credential — creates a new carrier credential.",
        "parameters": [
          {
            "$ref": "#/components/parameters/organizationId"
          },
          {
            "$ref": "#/components/parameters/agencyId"
          }
        ],
        "security": [
          {
            "oauth2": [
              "api.carriercredentials"
            ]
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CreateCredentialDto"
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "Created",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CredentialDto"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "403": {
            "description": "Forbidden",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "422": {
            "description": "Unprocessable Entity",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          }
        }
      }
    },
    "/v3/quoting/personalLines/v1/org/{orgId}/agency/{agencyId}/credentialManagement/credential/{id}": {
      "get": {
        "tags": [
          "Credential"
        ],
        "summary": "Credential — retrieves a single carrier credential by id.",
        "parameters": [
          {
            "$ref": "#/components/parameters/organizationId"
          },
          {
            "$ref": "#/components/parameters/agencyId"
          },
          {
            "$ref": "#/components/parameters/id"
          }
        ],
        "security": [
          {
            "oauth2": [
              "api.carriercredentials"
            ]
          },
          {
            "oauth2": [
              "api.carriercredentials:read"
            ]
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CredentialDto"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "403": {
            "description": "Forbidden",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          }
        }
      },
      "patch": {
        "tags": [
          "Credential"
        ],
        "summary": "Credential — partially updates an existing carrier credential.",
        "parameters": [
          {
            "$ref": "#/components/parameters/organizationId"
          },
          {
            "$ref": "#/components/parameters/agencyId"
          },
          {
            "$ref": "#/components/parameters/id"
          }
        ],
        "security": [
          {
            "oauth2": [
              "api.carriercredentials"
            ]
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/UpdateCredentialDto"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CredentialDto"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "403": {
            "description": "Forbidden",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "422": {
            "description": "Unprocessable Entity",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          }
        }
      },
      "delete": {
        "tags": [
          "Credential"
        ],
        "summary": "Credential — deletes a carrier credential by id.",
        "parameters": [
          {
            "$ref": "#/components/parameters/organizationId"
          },
          {
            "$ref": "#/components/parameters/agencyId"
          },
          {
            "$ref": "#/components/parameters/id"
          },
          {
            "name": "deactivate",
            "in": "query",
            "schema": {
              "type": "boolean",
              "default": false
            }
          }
        ],
        "security": [
          {
            "oauth2": [
              "api.carriercredentials"
            ]
          }
        ],
        "responses": {
          "204": {
            "description": "No Content"
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "403": {
            "description": "Forbidden",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          }
        }
      }
    },
    "/v3/quoting/personalLines/v1/org/{orgId}/agency/{agencyId}/credentialManagement/credential/{id}/scope": {
      "put": {
        "tags": [
          "Credential"
        ],
        "summary": "Credential — replaces the scope assignments for a credential.",
        "parameters": [
          {
            "$ref": "#/components/parameters/organizationId"
          },
          {
            "$ref": "#/components/parameters/agencyId"
          },
          {
            "$ref": "#/components/parameters/id"
          }
        ],
        "security": [
          {
            "oauth2": [
              "api.carriercredentials"
            ]
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/ScopeCellDto"
                }
              }
            }
          }
        },
        "responses": {
          "204": {
            "description": "No Content"
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "403": {
            "description": "Forbidden",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "422": {
            "description": "Unprocessable Entity",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          }
        }
      }
    },
    "/v3/quoting/personalLines/v1/org/{orgId}/agency/{agencyId}/credentialManagement/credential/{id}/login": {
      "put": {
        "tags": [
          "Credential"
        ],
        "summary": "Credential — sets the login for a credential.",
        "parameters": [
          {
            "$ref": "#/components/parameters/organizationId"
          },
          {
            "$ref": "#/components/parameters/agencyId"
          },
          {
            "$ref": "#/components/parameters/id"
          }
        ],
        "security": [
          {
            "oauth2": [
              "api.carriercredentials"
            ]
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/SetLoginDto"
              }
            }
          }
        },
        "responses": {
          "204": {
            "description": "No Content"
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "403": {
            "description": "Forbidden",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          }
        }
      },
      "delete": {
        "tags": [
          "Credential"
        ],
        "summary": "Credential — removes the login from a credential.",
        "parameters": [
          {
            "$ref": "#/components/parameters/organizationId"
          },
          {
            "$ref": "#/components/parameters/agencyId"
          },
          {
            "$ref": "#/components/parameters/id"
          }
        ],
        "security": [
          {
            "oauth2": [
              "api.carriercredentials"
            ]
          }
        ],
        "responses": {
          "204": {
            "description": "No Content"
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "403": {
            "description": "Forbidden",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          }
        }
      }
    },
    "/v3/quoting/personalLines/v1/org/{orgId}/agency/{agencyId}/credentialManagement/credential/{id}/values": {
      "put": {
        "tags": [
          "Credential"
        ],
        "summary": "Credential — replaces the stored values for a credential.",
        "parameters": [
          {
            "$ref": "#/components/parameters/organizationId"
          },
          {
            "$ref": "#/components/parameters/agencyId"
          },
          {
            "$ref": "#/components/parameters/id"
          }
        ],
        "security": [
          {
            "oauth2": [
              "api.carriercredentials"
            ]
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/SetValuesDto"
              }
            }
          }
        },
        "responses": {
          "204": {
            "description": "No Content"
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "403": {
            "description": "Forbidden",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          }
        }
      }
    },
    "/v3/quoting/personalLines/v1/org/{orgId}/agency/{agencyId}/credentialManagement/credential/{id}/health": {
      "get": {
        "tags": [
          "Credential"
        ],
        "summary": "Credential — retrieves the health status of a credential.",
        "parameters": [
          {
            "$ref": "#/components/parameters/organizationId"
          },
          {
            "$ref": "#/components/parameters/agencyId"
          },
          {
            "$ref": "#/components/parameters/id"
          }
        ],
        "security": [
          {
            "oauth2": [
              "api.carriercredentials"
            ]
          },
          {
            "oauth2": [
              "api.carriercredentials:read"
            ]
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HealthDto"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "403": {
            "description": "Forbidden",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          }
        }
      }
    },
    "/v3/quoting/personalLines/v1/org/{orgId}/agency/{agencyId}/credentialManagement/credential/{id}/health/revalidate": {
      "post": {
        "tags": [
          "Credential"
        ],
        "summary": "Credential — triggers revalidation of a credential's health.",
        "parameters": [
          {
            "$ref": "#/components/parameters/organizationId"
          },
          {
            "$ref": "#/components/parameters/agencyId"
          },
          {
            "$ref": "#/components/parameters/id"
          }
        ],
        "security": [
          {
            "oauth2": [
              "api.carriercredentials"
            ]
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HealthDto"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "403": {
            "description": "Forbidden",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          }
        }
      }
    },
    "/v3/quoting/personalLines/v1/org/{orgId}/agency/{agencyId}/credentialManagement/credential/{id}/activity": {
      "get": {
        "tags": [
          "Credential"
        ],
        "summary": "Credential — retrieves the activity log for a credential.",
        "parameters": [
          {
            "$ref": "#/components/parameters/organizationId"
          },
          {
            "$ref": "#/components/parameters/agencyId"
          },
          {
            "$ref": "#/components/parameters/id"
          }
        ],
        "security": [
          {
            "oauth2": [
              "api.carriercredentials"
            ]
          },
          {
            "oauth2": [
              "api.carriercredentials:read"
            ]
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/AuditEntryDto"
                  }
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "403": {
            "description": "Forbidden",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          }
        }
      }
    },
    "/v3/quoting/personalLines/v1/org/{orgId}/agency/{agencyId}/credentialManagement/productGroup": {
      "get": {
        "tags": [
          "ProductGroup"
        ],
        "summary": "ProductGroup — lists product groups for an agency.",
        "parameters": [
          {
            "$ref": "#/components/parameters/organizationId"
          },
          {
            "$ref": "#/components/parameters/agencyId"
          },
          {
            "name": "skip",
            "in": "query",
            "description": "Number of records to skip. Mutually exclusive with pageIndex/pageSize — use either skip/take or pageIndex/pageSize, not both.",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "take",
            "in": "query",
            "description": "Number of records to return. Clamped server-side to 1-500; defaults to 100 if omitted.",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "pageIndex",
            "in": "query",
            "description": "Zero-based page index. Must be sent together with pageSize.",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "pageSize",
            "in": "query",
            "description": "Page size. Must be sent together with pageIndex. Clamped server-side to 1-500; defaults to 100 if omitted.",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "security": [
          {
            "oauth2": [
              "api.carriercredentials"
            ]
          },
          {
            "oauth2": [
              "api.carriercredentials:read"
            ]
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PagedResultOfProductGroupSummary"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "403": {
            "description": "Forbidden",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          }
        }
      },
      "post": {
        "tags": [
          "ProductGroup"
        ],
        "summary": "ProductGroup — creates a new product group.",
        "parameters": [
          {
            "$ref": "#/components/parameters/organizationId"
          },
          {
            "$ref": "#/components/parameters/agencyId"
          }
        ],
        "security": [
          {
            "oauth2": [
              "api.carriercredentials"
            ]
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CreateProductGroupDto"
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "Created",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProductGroupDto"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "403": {
            "description": "Forbidden",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "409": {
            "description": "Conflict",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "422": {
            "description": "Unprocessable Entity",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          }
        }
      }
    },
    "/v3/quoting/personalLines/v1/org/{orgId}/agency/{agencyId}/credentialManagement/productGroup/{id}": {
      "get": {
        "tags": [
          "ProductGroup"
        ],
        "summary": "ProductGroup — retrieves a product group by id.",
        "parameters": [
          {
            "$ref": "#/components/parameters/organizationId"
          },
          {
            "$ref": "#/components/parameters/agencyId"
          },
          {
            "$ref": "#/components/parameters/id"
          }
        ],
        "security": [
          {
            "oauth2": [
              "api.carriercredentials"
            ]
          },
          {
            "oauth2": [
              "api.carriercredentials:read"
            ]
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProductGroupDto"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "403": {
            "description": "Forbidden",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          }
        }
      },
      "patch": {
        "tags": [
          "ProductGroup"
        ],
        "summary": "ProductGroup — partially updates a product group.",
        "parameters": [
          {
            "$ref": "#/components/parameters/organizationId"
          },
          {
            "$ref": "#/components/parameters/agencyId"
          },
          {
            "$ref": "#/components/parameters/id"
          }
        ],
        "security": [
          {
            "oauth2": [
              "api.carriercredentials"
            ]
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/UpdateProductGroupDto"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProductGroupDto"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "403": {
            "description": "Forbidden",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "409": {
            "description": "Conflict",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "422": {
            "description": "Unprocessable Entity",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          }
        }
      },
      "delete": {
        "tags": [
          "ProductGroup"
        ],
        "summary": "ProductGroup — deletes a product group by id.",
        "parameters": [
          {
            "$ref": "#/components/parameters/organizationId"
          },
          {
            "$ref": "#/components/parameters/agencyId"
          },
          {
            "$ref": "#/components/parameters/id"
          },
          {
            "name": "deactivate",
            "in": "query",
            "schema": {
              "type": "boolean",
              "default": false
            }
          }
        ],
        "security": [
          {
            "oauth2": [
              "api.carriercredentials"
            ]
          }
        ],
        "responses": {
          "204": {
            "description": "No Content"
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "403": {
            "description": "Forbidden",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          }
        }
      }
    },
    "/v3/quoting/personalLines/v1/org/{orgId}/agency/{agencyId}/credentialManagement/productGroup/{id}/credential": {
      "get": {
        "tags": [
          "ProductGroup"
        ],
        "summary": "ProductGroup — lists credentials belonging to a product group.",
        "parameters": [
          {
            "$ref": "#/components/parameters/organizationId"
          },
          {
            "$ref": "#/components/parameters/agencyId"
          },
          {
            "$ref": "#/components/parameters/id"
          }
        ],
        "security": [
          {
            "oauth2": [
              "api.carriercredentials"
            ]
          },
          {
            "oauth2": [
              "api.carriercredentials:read"
            ]
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/ProductGroupAssignmentDto"
                  }
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "403": {
            "description": "Forbidden",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          }
        }
      },
      "post": {
        "tags": [
          "ProductGroup"
        ],
        "summary": "ProductGroup — adds credentials to a product group.",
        "parameters": [
          {
            "$ref": "#/components/parameters/organizationId"
          },
          {
            "$ref": "#/components/parameters/agencyId"
          },
          {
            "$ref": "#/components/parameters/id"
          }
        ],
        "security": [
          {
            "oauth2": [
              "api.carriercredentials"
            ]
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/AddProductGroupCredentialsDto"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/ProductGroupAssignmentDto"
                  }
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "403": {
            "description": "Forbidden",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "422": {
            "description": "Unprocessable Entity",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          }
        }
      }
    },
    "/v3/quoting/personalLines/v1/org/{orgId}/agency/{agencyId}/credentialManagement/productGroup/{id}/credential/{credentialId}": {
      "delete": {
        "tags": [
          "ProductGroup"
        ],
        "summary": "ProductGroup — removes a credential from a product group.",
        "parameters": [
          {
            "$ref": "#/components/parameters/organizationId"
          },
          {
            "$ref": "#/components/parameters/agencyId"
          },
          {
            "$ref": "#/components/parameters/id"
          },
          {
            "$ref": "#/components/parameters/credentialId"
          }
        ],
        "security": [
          {
            "oauth2": [
              "api.carriercredentials"
            ]
          }
        ],
        "responses": {
          "204": {
            "description": "No Content"
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "403": {
            "description": "Forbidden",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          }
        }
      }
    },
    "/v3/quoting/personalLines/v1/org/{orgId}/agency/{agencyId}/credentialManagement/productGroup/{id}/coverage": {
      "get": {
        "tags": [
          "ProductGroup"
        ],
        "summary": "ProductGroup — retrieves coverage information for a product group.",
        "parameters": [
          {
            "$ref": "#/components/parameters/organizationId"
          },
          {
            "$ref": "#/components/parameters/agencyId"
          },
          {
            "$ref": "#/components/parameters/id"
          },
          {
            "name": "carrierProductId",
            "in": "query",
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "carrierId",
            "in": "query",
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "security": [
          {
            "oauth2": [
              "api.carriercredentials"
            ]
          },
          {
            "oauth2": [
              "api.carriercredentials:read"
            ]
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CoverageMatrixDto"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "403": {
            "description": "Forbidden",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          }
        }
      }
    }
  },
  "components": {
    "parameters": {
      "organizationId": {
        "name": "organizationId",
        "in": "path",
        "required": true,
        "schema": {
          "type": "string"
        }
      },
      "agencyId": {
        "name": "agencyId",
        "in": "path",
        "required": true,
        "schema": {
          "type": "string"
        }
      },
      "id": {
        "name": "id",
        "in": "path",
        "required": true,
        "schema": {
          "type": "string"
        }
      },
      "credentialId": {
        "name": "credentialId",
        "in": "path",
        "required": true,
        "schema": {
          "type": "string"
        }
      }
    },
    "schemas": {
      "AddProductGroupCredentialFilterDto": {
        "type": "object",
        "properties": {
          "carrierId": {
            "type": "string",
            "format": "uuid",
            "nullable": true
          },
          "state": {
            "type": "string",
            "nullable": true
          },
          "lob": {
            "type": "string",
            "nullable": true
          },
          "ownerUserRef": {
            "type": "string",
            "nullable": true
          }
        }
      },
      "AddProductGroupCredentialsDto": {
        "type": "object",
        "properties": {
          "credentialIds": {
            "type": "array",
            "items": {
              "type": "string",
              "format": "uuid"
            },
            "nullable": true
          },
          "filter": {
            "allOf": [
              {
                "$ref": "#/components/schemas/AddProductGroupCredentialFilterDto"
              }
            ],
            "nullable": true
          }
        }
      },
      "AuditEntryDto": {
        "type": "object",
        "properties": {
          "auditEntryId": {
            "type": "string",
            "format": "uuid"
          },
          "credentialId": {
            "type": "string",
            "format": "uuid"
          },
          "action": {
            "type": "string"
          },
          "performedBy": {
            "type": "string",
            "nullable": true
          },
          "occurredUtc": {
            "type": "string",
            "format": "date-time"
          },
          "detail": {
            "type": "string",
            "nullable": true
          }
        }
      },
      "CoverageCellDto": {
        "type": "object",
        "properties": {
          "state": {
            "type": "string"
          },
          "lob": {
            "type": "string"
          },
          "carrierProductId": {
            "type": "string",
            "format": "uuid"
          },
          "carrierProductName": {
            "type": "string",
            "nullable": true
          },
          "credentialIds": {
            "type": "array",
            "items": {
              "type": "string",
              "format": "uuid"
            }
          }
        }
      },
      "CoverageMatrixDto": {
        "type": "object",
        "properties": {
          "cells": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/CoverageCellDto"
            }
          }
        }
      },
      "CreateCredentialDto": {
        "required": [
          "name"
        ],
        "type": "object",
        "properties": {
          "name": {
            "type": "string"
          },
          "owner": {
            "allOf": [
              {
                "$ref": "#/components/schemas/OwnerDto"
              }
            ],
            "nullable": true
          },
          "producerCode": {
            "type": "string",
            "nullable": true
          },
          "producerSubCode": {
            "type": "string",
            "nullable": true
          },
          "ratingUsername": {
            "type": "string",
            "nullable": true
          },
          "ratingPassword": {
            "type": "string",
            "nullable": true
          },
          "loginSameAsRating": {
            "type": "boolean"
          },
          "login": {
            "allOf": [
              {
                "$ref": "#/components/schemas/SetLoginDto"
              }
            ],
            "nullable": true
          },
          "bridge": {
            "type": "string",
            "nullable": true
          },
          "scope": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ScopeCellDto"
            }
          },
          "providerValues": {
            "type": "object",
            "additionalProperties": {
              "type": "string"
            },
            "nullable": true
          }
        }
      },
      "CreateProductGroupDto": {
        "required": [
          "name"
        ],
        "type": "object",
        "properties": {
          "name": {
            "type": "string"
          },
          "description": {
            "type": "string",
            "nullable": true
          },
          "color": {
            "type": "string",
            "nullable": true
          }
        }
      },
      "PagedResultOfCredential": {
        "type": "object",
        "properties": {
          "items": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/CredentialDto"
            }
          },
          "totalCount": {
            "type": "integer",
            "format": "int32"
          },
          "hasMoreResults": {
            "type": "boolean"
          },
          "pageIndex": {
            "type": "integer",
            "format": "int32"
          },
          "pageSize": {
            "type": "integer",
            "format": "int32"
          },
          "skip": {
            "type": "integer",
            "format": "int32"
          },
          "take": {
            "type": "integer",
            "format": "int32"
          }
        }
      },
      "CredentialDto": {
        "type": "object",
        "properties": {
          "credentialId": {
            "type": "string",
            "format": "uuid"
          },
          "carrierId": {
            "type": "string",
            "format": "uuid"
          },
          "carrierName": {
            "type": "string",
            "nullable": true
          },
          "name": {
            "type": "string"
          },
          "owner": {
            "allOf": [
              {
                "$ref": "#/components/schemas/OwnerDto"
              }
            ],
            "nullable": true
          },
          "producerCode": {
            "type": "string",
            "nullable": true
          },
          "producerSubCode": {
            "type": "string",
            "nullable": true
          },
          "hasRatingCredentials": {
            "type": "boolean"
          },
          "loginSameAsRating": {
            "type": "boolean"
          },
          "hasLoginCredentials": {
            "type": "boolean"
          },
          "bridge": {
            "type": "string",
            "nullable": true
          },
          "active": {
            "type": "boolean"
          },
          "status": {
            "type": "string"
          },
          "scope": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ScopeCellDto"
            }
          },
          "scopeSummary": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ScopeSummaryDto"
              }
            ],
            "nullable": true
          },
          "maskedHints": {
            "allOf": [
              {
                "$ref": "#/components/schemas/MaskedHintsDto"
              }
            ],
            "nullable": true
          },
          "providerValueKeys": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "assignedProductGroupCount": {
            "type": "integer",
            "format": "int32"
          },
          "lastUpdated": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "updatedBy": {
            "type": "string",
            "format": "uuid",
            "nullable": true
          },
          "health": {
            "allOf": [
              {
                "$ref": "#/components/schemas/HealthDto"
              }
            ],
            "nullable": true
          }
        }
      },
      "HealthDto": {
        "type": "object",
        "properties": {
          "credentialId": {
            "type": "string",
            "format": "uuid"
          },
          "status": {
            "type": "string"
          },
          "expiresUtc": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "lastValidatedUtc": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "lastFailureUtc": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "consecutiveFailures": {
            "type": "integer",
            "format": "int32"
          },
          "lastFailureReason": {
            "type": "string",
            "nullable": true
          }
        }
      },
      "MaskedHintsDto": {
        "type": "object",
        "properties": {
          "ratingUsername": {
            "type": "string",
            "nullable": true
          },
          "loginUsername": {
            "type": "string",
            "nullable": true
          }
        }
      },
      "OwnerDto": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string",
            "nullable": true
          },
          "contact": {
            "type": "string",
            "nullable": true
          },
          "userRef": {
            "type": "string",
            "nullable": true
          }
        }
      },
      "ProblemDetails": {
        "type": "object",
        "properties": {
          "type": {
            "type": "string",
            "nullable": true
          },
          "title": {
            "type": "string",
            "nullable": true
          },
          "status": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "detail": {
            "type": "string",
            "nullable": true
          },
          "instance": {
            "type": "string",
            "nullable": true
          }
        }
      },
      "ProductGroupAssignmentDto": {
        "type": "object",
        "properties": {
          "credentialId": {
            "type": "string",
            "format": "uuid"
          },
          "carrierId": {
            "type": "string",
            "format": "uuid"
          },
          "owner": {
            "allOf": [
              {
                "$ref": "#/components/schemas/OwnerDto"
              }
            ],
            "nullable": true
          },
          "scopeSummary": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ScopeSummaryDto"
              }
            ],
            "nullable": true
          },
          "health": {
            "allOf": [
              {
                "$ref": "#/components/schemas/HealthDto"
              }
            ],
            "nullable": true
          }
        }
      },
      "ProductGroupDto": {
        "type": "object",
        "properties": {
          "productGroupId": {
            "type": "string",
            "format": "uuid"
          },
          "name": {
            "type": "string"
          },
          "description": {
            "type": "string",
            "nullable": true
          },
          "color": {
            "type": "string",
            "nullable": true
          },
          "active": {
            "type": "boolean"
          },
          "assignments": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ProductGroupAssignmentDto"
            }
          }
        }
      },
      "PagedResultOfProductGroupSummary": {
        "type": "object",
        "properties": {
          "items": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ProductGroupSummaryDto"
            }
          },
          "totalCount": {
            "type": "integer",
            "format": "int32"
          },
          "hasMoreResults": {
            "type": "boolean"
          },
          "pageIndex": {
            "type": "integer",
            "format": "int32"
          },
          "pageSize": {
            "type": "integer",
            "format": "int32"
          },
          "skip": {
            "type": "integer",
            "format": "int32"
          },
          "take": {
            "type": "integer",
            "format": "int32"
          }
        }
      },
      "ProductGroupSummaryDto": {
        "type": "object",
        "properties": {
          "productGroupId": {
            "type": "string",
            "format": "uuid"
          },
          "name": {
            "type": "string"
          },
          "description": {
            "type": "string",
            "nullable": true
          },
          "color": {
            "type": "string",
            "nullable": true
          },
          "active": {
            "type": "boolean"
          },
          "assignedCredentialCount": {
            "type": "integer",
            "format": "int32"
          }
        }
      },
      "ScopeCellDto": {
        "required": [
          "state",
          "carrierProductId"
        ],
        "type": "object",
        "properties": {
          "state": {
            "type": "string"
          },
          "lob": {
            "type": "string",
            "nullable": true
          },
          "carrierProductId": {
            "type": "string",
            "format": "uuid"
          },
          "carrierProductName": {
            "type": "string",
            "nullable": true
          }
        }
      },
      "ScopeSummaryDto": {
        "type": "object",
        "properties": {
          "states": {
            "type": "integer",
            "format": "int32"
          },
          "lobs": {
            "type": "integer",
            "format": "int32"
          }
        }
      },
      "SetLoginDto": {
        "required": [
          "loginUsername",
          "loginPassword"
        ],
        "type": "object",
        "properties": {
          "loginUsername": {
            "type": "string"
          },
          "loginPassword": {
            "type": "string"
          }
        }
      },
      "SetValuesDto": {
        "required": [
          "values"
        ],
        "type": "object",
        "properties": {
          "values": {
            "type": "object",
            "additionalProperties": {
              "type": "string"
            }
          }
        }
      },
      "UpdateCredentialDto": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string",
            "nullable": true
          },
          "owner": {
            "allOf": [
              {
                "$ref": "#/components/schemas/OwnerDto"
              }
            ],
            "nullable": true
          },
          "producerCode": {
            "type": "string",
            "nullable": true
          },
          "producerSubCode": {
            "type": "string",
            "nullable": true
          },
          "ratingUsername": {
            "type": "string",
            "nullable": true
          },
          "ratingPassword": {
            "type": "string",
            "nullable": true
          },
          "loginSameAsRating": {
            "type": "boolean",
            "nullable": true
          },
          "bridge": {
            "type": "string",
            "nullable": true
          }
        }
      },
      "UpdateProductGroupDto": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string",
            "nullable": true
          },
          "description": {
            "type": "string",
            "nullable": true
          },
          "color": {
            "type": "string",
            "nullable": true
          }
        }
      }
    },
    "securitySchemes": {
      "oauth2": {
        "type": "oauth2",
        "flows": {
          "implicit": {
            "authorizationUrl": "https://sso.zywave.com/connect/authorize",
            "scopes": {
              "api.carriercredentials": "Full access to carrier credentials and product groups",
              "api.carriercredentials:read": "Read carrier credentials and product groups"
            }
          }
        }
      }
    }
  }
}
